API
API
Classes
PivotFieldManager

PivotFieldManager

Properties

static defaults: ROptions readonly

각 클래스별 기본 설정 값들. 하위 클래스에서 재정의한다. 객체 인스턴스의 _op에는 명시적으로 설정된 값들만 들어가므로, 효과 값(effective value)을 읽을 때는 항상 이 기본값을 fallback으로 사용해야 한다.(single-source-of-truth)

default: undefined

Methods

bool(prop): boolean (opens in a new tab)

boolean (opens in a new tab) 타입의 옵션 값에 특화된 prop() 메서드. prop()과 달리 boolean (opens in a new tab)으로 변환해서 반환한다.
해석 순서는 prop()과 동일하다(명시값(_op)preset → 클래스 defaults).

ParameterTypeDescription
prop설정 항목 이름

return boolean (opens in a new tab) 타입의 옵션 값.

boolAt(path): boolean (opens in a new tab)

점(dot) 표기법으로 경로를 지정해서 boolean (opens in a new tab) 타입의 옵션 값을 반환한다.

ParameterTypeDescription
pathstring (opens in a new tab)경로 문자열

return 경로에 해당하는 boolean (opens in a new tab) 타입의 옵션 값 또는 false

clean(recursive?): this

_op에 명시적으로 설정되어 있지만 값이 현재 defaults와 동일한 항목들을 제거해 _op를 minimal delta 상태로 정규화한다.

[주의] 대부분의 경우 호출할 필요가 없다.

  • 효과 값(prop/num/props)은 영향 없음.
  • 직렬화(saveOptions)도 어차피 defaults와 같은 값을 필터링하므로 결과가 동일하다. 즉 외부 저장 결과는 clean 전후가 같다.

clean이 실제로 차이를 만드는 경우는 다음과 같다.

  • _op의 메모리 사용을 줄이고 싶을 때(loadOptions로 큰 source를 읽어들인 직후 등).
  • getOption()/saveOption()처럼 _op의 own value를 그대로 반환하는 API의 결과를 "사용자가 명시했는가"의 의미로 사용해야 할 때(예: 디자이너 UI의 "기본값 사용 중" 표시). 이 경우 clean 후에는 defaults와 같은 값들이 undefined로 보고된다.
ParameterTypeDescription
recursiveboolean (opens in a new tab)true로 지정하면 모든 자식 모델에 대해서도 재귀적으로 수행한다. 기본값: true

return 모델 객체 자신

clearOptions(recursive?, render?): this

명시적으로 설정된 모든 모델 설정 값들을 제거한다.

ParameterTypeDescription
recursiveboolean (opens in a new tab)true로 지정하면 모든 자식 모델에 대해서도 재귀적으로 제거한다. 기본값: false
renderboolean (opens in a new tab)true로 지정하면 옵션 변경 시 컨트롤을 다시 그린다. 기본값: true

return 모델 객체 자신

deleteAt(path, render?): any (opens in a new tab)

명시적으로 설정된 하위 모델의 설정 값을 제거해서 모델의 기본 값이 적용되도록 한다.
path 매개변수는 하위 모델의 속성 이름을 점(.)으로 구분해서 지정한다. 예를 들어, "axis.x"는 axis 모델의 x 속성을 의미한다.
render와 force 매개변수는 toggleOption과 동일하다.

ParameterType
pathstring (opens in a new tab)
renderboolean (opens in a new tab)

dispose(): null

객체를 해제하고 null을 반환한다.
사용 예: this._obj = this._obj.dispose();

return null

getOption(option): any (opens in a new tab)

옵션 값을 읽는다.
prop()과 달리 효과 값이 아닌 명시적으로 설정된 값만 읽는다. 설정되지 않은 옵션은 undefined를 반환한다.

ParameterTypeDescription
optionstring (opens in a new tab)설정 항목 이름

return 명시적으로 설정된 값 또는 undefined

getOptionAt(path): any (opens in a new tab)

점(dot) 표기법으로 경로를 지정해서 옵션 값을 읽는다.

ParameterTypeDescription
pathstring (opens in a new tab)경로 문자열

return 경로에 해당하는 옵션 값 또는 undefined

init(): this

특정 부모에 마운팅되지 않은 독립된 옵션 객체를 초기화한다.

initAndLoad(source): this

특정 부모에 마운팅되지 않은 독립된 옵션 객체를 초기화하고, source 객체로부터 옵션 값을 읽어서 설정한다.

ParameterType
sourceany (opens in a new tab)

invertOptions(source?): any (opens in a new tab)

sourceupdateOptions에 적용했을 때 그 변경을 되돌리는 역(inverse) update 페이로드현재 상태 기준으로 계산해 반환한다. redo 적용 전에 호출해야 한다(현재 값이 곧 "before"다). command의 undo용 스냅샷을 최소 델타로 만들기 위한 것이다:

const inverse = model.invertOptions(options); model.updateOptions(options);
model.updateOptions(inverse);

키 종류별 처리(다형적으로 자식에 위임):

  • 자식 모델: child.invertOptions(source[key])로 위임한다. RCollection은 이를 override해 추가/삭제/재정렬까지 되돌리는 구조 역델타를 만든다.
  • 스칼라/외부 키: 해당 키의 현재 값을 force 스냅샷한다(default였던 값도 포함하므로 undo가 default로 되돌릴 수 있다). source의 값 자체는 키 선택자로만 쓰이고 무시된다.

source가 일반 객체가 아니면(undefined/원시값/배열) base로선 되돌릴 키가 없으므로 **no-op 역({})**을 반환한다. 배열 source나 _doSetSimple로 상태를 통째 세팅하는 소스를 실제로 다루는 클래스는 이 메서드를 override한다(RCollection이 그 예로, 배열/{items,updateMode} source의 구조 역델타를 만든다).

ParameterType
sourceany (opens in a new tab)

loadOptions(source, clear?): this

source 객체로부터 모델 설정 값을 읽어서 적용한다.

[정책] load는 source에 명시된 값을 "사용자 의도"로 그대로 보존한다. 즉 source의 값이 현재 defaults와 같더라도 _op에 그대로 기록된다. 이는 단순한 성능 최적화가 아니라 의미상 의도된 동작이다:

  • defaults는 라이브러리 버전업 시 변경될 수 있다.
  • load 시점에 "defaults와 같다"는 이유로 키를 버리면, 이후 defaults가 바뀌었을 때 저장본이 표현하던 값이 조용히 달라진다.
  • 그대로 보존하면 사용자가 명시적으로 지정한 값이 항상 우선한다.

직렬화(saveOptions)는 어차피 defaults와 같은 값을 필터링하므로, 외부에 저장되는 결과의 크기와 내용에는 영향이 없다. 추가 비용은 _op에 약간의 메모리뿐이다. (메모리 정리나 getOption()의 "사용자 명시 여부" 의미가 필요한 특수 케이스에 한해서만 clean()을 명시적으로 호출한다.)

ParameterTypeDescription
sourceany (opens in a new tab)
clearboolean (opens in a new tab)기본 true. 적용 전에 기존 설정을 모두 비운다(재귀). 즉 source는 모델 전체를
표현하는 완전한 옵션 트리로 간주되어, source에 없는 기존 값은 사라진다(전체 교체).
false이면 부분 reload가 된다: 기존 설정을 비우지 않고 source에 포함된 키만 load
의미로 다시 적용하고, 빠진 키는 그대로 보존한다. 특정 하위 트리만 통째로 갈아끼울 때 유용하다.
[updateOptions와의 차이] clear=false도 "포함된 키만 적용"이지만 의미가 다르다.
  • updateOptions: 값이 현재 effective 값과 같으면 건너뛰고, 객체 값은 부분 병합한다.
  • loadOptions(source, false): 포함된 키는 load 의미로 적용한다. 즉 defaults와 같아도 _op에 그대로 기록하고, 객체/자식 값은 부분 병합이 아니라 통째 교체한다. |

num(prop): number (opens in a new tab)

숫자 타입의 옵션 값에 특화된 prop() 메서드. prop()과 달리 숫자로 변환해서 반환한다.
해석 순서는 prop()과 동일하다(명시값(_op)preset → 클래스 defaults).

ParameterTypeDescription
prop설정 항목 이름

return 숫자 타입의 옵션 값. 어디에서도 숫자를 얻지 못하면 NaN.

numAt(path): number (opens in a new tab)

점(dot) 표기법으로 경로를 지정해서 숫자 타입의 옵션 값을 반환한다.

ParameterTypeDescription
pathstring (opens in a new tab)경로 문자열

return 경로에 해당하는 숫자 타입의 옵션 값 또는 NaN

preset(preset, recursive?): this

이 인스턴스의 preset(그룹/공유 기본값)을 설정한다.
preset이 설정되면 prop/num/bool/props 등 효과 값 조회 시 이 인스턴스에 명시되지 않은 옵션을 클래스 defaults보다 먼저 preset에서 가져온다 (해석 순서: _op → preset → defaults).

preset은 동일 클래스의 인스턴스를 전제한다(따라서 defaults가 동일하므로 preset의 명시값 delta만 참조해도 충분하다). 내부적으로 preset._op(명시값 delta)를 라이브로 참조하므로 원본 preset의 이후 변경이 전파된다. 직렬화(saveOptions)의 minimal-delta 기준은 여전히 클래스 defaults이며 preset은 읽기 전용 오버레이로만 작용한다.

ParameterTypeDescription
presetROptionable<PivotFieldConfiguration>이 인스턴스가 기본값으로 상속할 동일 클래스 옵션 모델
recursiveboolean (opens in a new tab)true이면 자식 모델까지 재귀적으로 preset을 설정한다. 기본값 true

prop(prop): PivotFieldConfiguration\[K]

옵션의 효과 값(effective value)을 반환한다.
해석 순서는 명시값(_op)preset → 클래스 defaults이다. 이 인스턴스에 명시적으로 설정된 값이 있으면 그 값을, 없고 preset이 설정돼 있으면 preset의 명시값을, 그것도 없으면 클래스 defaults의 기본값을 반환한다.
옵션 값을 읽을 때는 options.prop 직접 접근 대신 이 메서드를 사용한다.

ParameterTypeDescription
prop설정 항목 이름

propAt(path): any (opens in a new tab)

점(dot) 표기법으로 경로를 지정해서 옵션의 효과 값(effective value)을 반환한다.

ParameterTypeDescription
pathstring (opens in a new tab)경로 문자열

return 경로에 해당하는 옵션 값 또는 undefined

propIs(prop, value): boolean (opens in a new tab)

옵션 값이 특정 값과 일치하는지 여부를 반환한다.

ParameterTypeDescription
propkeyof PivotFieldConfiguration설정 항목 이름
valueany (opens in a new tab)비교할 값

return 일치 여부

propIsNot(prop, value): boolean (opens in a new tab)

옵션 값이 특정 값과 일치하지 않는지 여부를 반환한다.

ParameterTypeDescription
propkeyof PivotFieldConfiguration설정 항목 이름
valueany (opens in a new tab)비교할 값

return 불일치 여부

props(props): Pick (opens in a new tab)<OP, K>

지정한 옵션들의 효과 값(effective value)을 묶어서 반환한다.
여러 옵션을 destructuring으로 한꺼번에 읽을 때 사용한다. 각 항목의 해석 순서는 prop()과 동일하다(명시값(_op)preset → 클래스 defaults).

const { color, radius } = this.props('color', 'radius');
ParameterTypeDescription
propsArray (opens in a new tab)<>설정 항목 이름들

removeOption(prop, render?): this

명시적으로 설정된 모델 설정 값을 제거해서 모델의 기본 값이 적용되도록 한다.
prop이 자식 모델 이름인 경우에는 해당 자식의 clearOptions(true)를 호출한다.

ParameterTypeDescription
propkeyof PivotFieldConfiguration설정 항목 이름
renderboolean (opens in a new tab)true로 지정하면 옵션 변경 시 컨트롤을 다시 그린다. 기본값 true

return 모델 객체 자신

saveOption(prop): PivotFieldConfiguration[K]{ columns: any;filters: any;rows: any;values: any; }

옵션 값을 읽는다.
prop()과 달리 효과 값이 아닌 명시적으로 설정된 값만 읽는다. 설정되지 않은 옵션은 undefined를 반환한다.

ParameterTypeDescription
prop설정 항목 이름

return 명시적으로 설정된 값 또는 undefined

saveOptions(props?, recursive?, includeDefs?, force?): Partial (opens in a new tab)<OP>

모델의 설정 값을 json 객체로 직렬화한다.

ParameterTypeDescription
propsArray<keyof PivotFieldConfiguration>{ columns: any;filters: any;rows: any;values: any; }저장할 속성 필터.
  • (keyof OP)[] 배열: 해당 키들만 저장.
  • 객체 ({ [K in keyof OP]?: any }): 객체에 정의된 키들만 저장. 자식 모델 키의 값으로 객체를 지정하면 해당 자식의 saveOptions(childFilter, true, includeDefs, force) 호출 시 필터로 전달된다.
  • 생략 또는 빈 배열: 모든 속성 저장. | | recursive | boolean (opens in a new tab) | 자식 모델까지 재귀 저장 여부. | | includeDefs | boolean (opens in a new tab) | 기본값과 동일한 값도 저장 여부. | | force | boolean (opens in a new tab) | true이면 props로 명시된 속성은 _opdefaults에 값이 없더라도 결과에 포함된다 (일반 옵션은 undefined, 명시된 자식은 빈 {}이라도 포함). props가 없을 때는 무시된다. |

saveTo(target, props?, recursive?, includeDefs?, force?): Partial (opens in a new tab)<OP>

모델의 설정 값을 target 객체에 복사해서 저장한다.

ParameterType
targetPartial (opens in a new tab)<OP>
propsArray<keyof PivotFieldConfiguration>{ columns: any;filters: any;rows: any;values: any; }
recursiveboolean (opens in a new tab)
includeDefsboolean (opens in a new tab)
forceboolean (opens in a new tab)

str(prop): string (opens in a new tab)

문자열 타입의 옵션 값에 특화된 prop() 메서드. prop()과 달리 문자열로 변환해서 반환한다.
해석 순서는 prop()과 동일하다(명시값(_op)preset → 클래스 defaults).
어디에서도 값을 얻지 못하면 String(undefined)"undefined" 문자열이 반환되며, 값이 null이면 "null"이 된다. 미설정 시 기본값이 필요하면 strDef를 사용한다.

ParameterTypeDescription
prop설정 항목 이름

return 문자열로 변환한 옵션 값

strAt(path): string (opens in a new tab)

점(dot) 표기법으로 경로를 지정해서 문자열 타입의 옵션 값을 반환한다.
해석은 str과 동일하며, 경로가 유효하지 않으면 undefined를 반환한다.

ParameterTypeDescription
pathstring (opens in a new tab)경로 문자열

return 경로에 해당하는 문자열 옵션 값 또는 undefined

toggleAt(path, render?): any (opens in a new tab)

boolean (opens in a new tab) 타입의 모델 설정 값을 반대 값으로 변경한다.
path 매개변수는 하위 모델의 속성 이름을 점(.)으로 구분해서 지정한다. 예를 들어, "axis.x"는 axis 모델의 x 속성을 의미한다.
render와 force 매개변수는 toggleOption과 동일하다.

ParameterType
pathstring (opens in a new tab)
renderboolean (opens in a new tab)

toggleOption(prop, render?): this

boolean (opens in a new tab) 타입의 모델 설정 값을 반대 값으로 변경한다.
prop이 자식 모델 이름인 경우에는 아무것도 하지 않고 무시된다.

ParameterTypeDescription
propkeyof PivotFieldConfiguration설정 항목 이름
renderboolean (opens in a new tab)true로 지정하면 옵션 변경 시 컨트롤을 다시 그린다. 기본값 true

return 모델 객체 자신

updateAt(path, value, render?, force?): any (opens in a new tab)

하위 모델의 설정 값을 변경한다.
path 매개변수는 하위 모델의 속성 이름을 점(.)으로 구분해서 지정한다. 예를 들어, "axis.x"는 axis 모델의 x 속성을 의미한다.
render와 force 매개변수는 updateOption과 동일하다.

ParameterType
pathstring (opens in a new tab)
valueany (opens in a new tab)
renderboolean (opens in a new tab)
forceboolean (opens in a new tab)

updateOption(prop, value, render?, force?): this

하나의 속성 값을 설정한다.
여러 속성들을 한꺼번에 변경할 때는 updateOptions를 사용한다. 기본적으로 이전 값과 다른 경우에만 적용된다. 특히, 속성값이 객체인 경우 객체 속성만 바뀐 경우 적용되지 않는다. 바꾸고 싶다면 force 매개변수를 true로 지정해서 호출한다.
또, prop 매개변수가 하위 모델 이름인 경우 하위 모델의 updateOptions를 호출한 것과 동일하다.

ParameterTypeDescription
prop설정 항목 이름
valuePivotFieldConfiguration\[K]설정 값
renderboolean (opens in a new tab)true로 지정하면 옵션 변경 시 컨트롤을 다시 그린다. 기본값: true
forceboolean (opens in a new tab)지정한 값이 이전 값과 동일한 경우에도 적용한다. 기본값: false

return 모델 객체 자신

updateOptions(source?, render?): this

모델 설정 값들을 변경한다.
source에 자식 모델 이름의 키가 포함되면 해당 값은 자식 모델의 updateOptions에 위임된다.

ParameterTypeDescription
sourcePartial (opens in a new tab)<OP>설정 옵션들이 포함된 json 객체
renderboolean (opens in a new tab)true로 지정하면 옵션 변경 시 컨트롤을 다시 그린다. 기본값 true

return 모델 객체 자신