@wcardinal/wcardinal-ui 0.411.0 → 0.413.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/types/wcardinal/ui/d-indicator-processing.d.ts +8 -7
- package/dist/types/wcardinal/ui/d-pagination.d.ts +5 -5
- package/dist/types/wcardinal/ui/d-table-body-cell.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-table-body-row.d.ts +9 -9
- package/dist/types/wcardinal/ui/d-table-body.d.ts +5 -7
- package/dist/types/wcardinal/ui/d-table-category-cell.d.ts +37 -0
- package/dist/types/wcardinal/ui/d-table-category-column-impl.d.ts +24 -0
- package/dist/types/wcardinal/ui/d-table-category-column.d.ts +10 -0
- package/dist/types/wcardinal/ui/d-table-category-container-impl.d.ts +12 -0
- package/dist/types/wcardinal/ui/d-table-category-container.d.ts +4 -0
- package/dist/types/wcardinal/ui/d-table-category.d.ts +13 -12
- package/dist/types/wcardinal/ui/d-table-column-container-impl.d.ts +25 -0
- package/dist/types/wcardinal/ui/d-table-column-container.d.ts +12 -0
- package/dist/types/wcardinal/ui/d-table-column-impl.d.ts +44 -0
- package/dist/types/wcardinal/ui/d-table-column.d.ts +22 -19
- package/dist/types/wcardinal/ui/d-table-header-cell-check.d.ts +1 -1
- package/dist/types/wcardinal/ui/d-table-header-cell.d.ts +34 -12
- package/dist/types/wcardinal/ui/d-table-header.d.ts +8 -9
- package/dist/types/wcardinal/ui/d-table-row.d.ts +8 -9
- package/dist/types/wcardinal/ui/d-table-state.d.ts +8 -0
- package/dist/types/wcardinal/ui/d-table.d.ts +15 -18
- package/dist/types/wcardinal/ui/index.d.ts +7 -0
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-table-header-cell.d.ts +1 -0
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-table-header.d.ts +1 -0
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-table-header-cell.d.ts +1 -0
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-table-header.d.ts +1 -0
- package/dist/wcardinal/ui/d-base.js +2 -2
- package/dist/wcardinal/ui/d-base.js.map +1 -1
- package/dist/wcardinal/ui/d-indicator-processing.js +20 -15
- package/dist/wcardinal/ui/d-indicator-processing.js.map +1 -1
- package/dist/wcardinal/ui/d-pagination.js +5 -5
- package/dist/wcardinal/ui/d-pagination.js.map +1 -1
- package/dist/wcardinal/ui/d-table-body-cell.js.map +1 -1
- package/dist/wcardinal/ui/d-table-body-row.js +4 -4
- package/dist/wcardinal/ui/d-table-body-row.js.map +1 -1
- package/dist/wcardinal/ui/d-table-body.js +6 -15
- package/dist/wcardinal/ui/d-table-body.js.map +1 -1
- package/dist/wcardinal/ui/d-table-category-cell.js +244 -2
- package/dist/wcardinal/ui/d-table-category-cell.js.map +1 -1
- package/dist/wcardinal/ui/d-table-category-column-impl.js +222 -0
- package/dist/wcardinal/ui/d-table-category-column-impl.js.map +1 -0
- package/dist/wcardinal/ui/d-table-category-column.js +6 -0
- package/dist/wcardinal/ui/d-table-category-column.js.map +1 -0
- package/dist/wcardinal/ui/d-table-category-container-impl.js +149 -0
- package/dist/wcardinal/ui/d-table-category-container-impl.js.map +1 -0
- package/dist/wcardinal/ui/d-table-category-container.js +2 -0
- package/dist/wcardinal/ui/d-table-category-container.js.map +1 -0
- package/dist/wcardinal/ui/d-table-category.js +49 -7
- package/dist/wcardinal/ui/d-table-category.js.map +1 -1
- package/dist/wcardinal/ui/d-table-column-container-impl.js +126 -0
- package/dist/wcardinal/ui/d-table-column-container-impl.js.map +1 -0
- package/dist/wcardinal/ui/d-table-column-container.js +2 -0
- package/dist/wcardinal/ui/d-table-column-container.js.map +1 -0
- package/dist/wcardinal/ui/d-table-column-impl.js +375 -0
- package/dist/wcardinal/ui/d-table-column-impl.js.map +1 -0
- package/dist/wcardinal/ui/d-table-column.js.map +1 -1
- package/dist/wcardinal/ui/d-table-header-cell-check.js.map +1 -1
- package/dist/wcardinal/ui/d-table-header-cell.js +245 -48
- package/dist/wcardinal/ui/d-table-header-cell.js.map +1 -1
- package/dist/wcardinal/ui/d-table-header.js +8 -22
- package/dist/wcardinal/ui/d-table-header.js.map +1 -1
- package/dist/wcardinal/ui/d-table-row.js +7 -5
- package/dist/wcardinal/ui/d-table-row.js.map +1 -1
- package/dist/wcardinal/ui/d-table-state.js +9 -1
- package/dist/wcardinal/ui/d-table-state.js.map +1 -1
- package/dist/wcardinal/ui/d-table.js +69 -631
- package/dist/wcardinal/ui/d-table.js.map +1 -1
- package/dist/wcardinal/ui/index.js +7 -0
- package/dist/wcardinal/ui/index.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header-cell.js +7 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header-cell.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header.js +7 -0
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-table-header-cell.js +7 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-table-header-cell.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-table-header.js +7 -0
- package/dist/wcardinal/ui/theme/white/d-theme-white-table-header.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark-en-us.js +14 -2
- package/dist/wcardinal-ui-theme-dark-en-us.min.js +2 -2
- package/dist/wcardinal-ui-theme-dark-en-us.min.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark-ja-jp.js +14 -2
- package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +2 -2
- package/dist/wcardinal-ui-theme-dark-ja-jp.min.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark.js +14 -2
- package/dist/wcardinal-ui-theme-dark.min.js +2 -2
- package/dist/wcardinal-ui-theme-white-en-us.js +14 -2
- package/dist/wcardinal-ui-theme-white-en-us.min.js +2 -2
- package/dist/wcardinal-ui-theme-white-en-us.min.js.map +1 -1
- package/dist/wcardinal-ui-theme-white-ja-jp.js +14 -2
- package/dist/wcardinal-ui-theme-white-ja-jp.min.js +2 -2
- package/dist/wcardinal-ui-theme-white-ja-jp.min.js.map +1 -1
- package/dist/wcardinal-ui-theme-white.js +14 -2
- package/dist/wcardinal-ui-theme-white.min.js +2 -2
- package/dist/wcardinal-ui.cjs.js +1545 -753
- package/dist/wcardinal-ui.js +1882 -1114
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-indicator-processing.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-indicator-processing.ts"],"names":[],"mappings":"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","sourcesContent":["import { DisplayObject, Texture } from \"pixi.js\";\nimport { DBaseState } from \"./d-base-state\";\nimport { DStateAwareOrValueMightBe } from \"./d-state-aware\";\nimport { DThemes } from \"./theme/d-themes\";\nimport { DImageBase } from \"./d-image-base\";\n\nexport interface DIndicatorProcessingDelayOptions {\n\tdone?: number;\n\tclose?: number | null;\n}\n\nexport interface DIndicatorProcessingTextOptions<VALUE> {\n\tenabled?: boolean;\n\tvalue?: DStateAwareOrValueMightBe<VALUE>;\n}\n\nexport interface DIndicatorProcessingImageOptions {\n\tenabled?: boolean;\n\tindex?: number;\n\tsource?: DStateAwareOrValueMightBe<Texture | DisplayObject | null>;\n\trotation?: DStateAwareOrValueMightBe<number>;\n}\n\nexport interface DIndicatorProcessingOptions<VALUE> {\n\tdelay?: DIndicatorProcessingDelayOptions;\n\ttext?: DIndicatorProcessingTextOptions<VALUE>;\n\timage?: DIndicatorProcessingImageOptions;\n}\n\nexport interface DThemeIndicatorProcessing<VALUE = unknown> {\n\tgetProcessDoneDelay(): number;\n\tgetProcessCloseDelay(): number | null;\n\n\tisProcessTextEnabled(): boolean;\n\tnewProcessTextValue(): DStateAwareOrValueMightBe<VALUE>;\n\n\tisProcessImageEnabled(): boolean;\n\tgetProcessImageIndex(): number;\n\tnewProcessImageSource(): DStateAwareOrValueMightBe<Texture | DisplayObject | null>;\n\tnewProcessImageRotation(): DStateAwareOrValueMightBe<number>;\n}\n\nconst STATE_INITIAL = 0;\nconst STATE_STARTED = 1;\nconst STATE_RESOLVED = 2;\nconst STATE_REJECTED = 3;\ntype STATE =\n\t| typeof STATE_INITIAL\n\t| typeof STATE_STARTED\n\t| typeof STATE_RESOLVED\n\t| typeof STATE_REJECTED;\n\nexport class DIndicatorProcessing<VALUE> {\n\tprotected _parent: DImageBase<VALUE>;\n\tprotected _state: STATE;\n\tprotected _startTime: number;\n\tprotected _delayDone: number;\n\tprotected _delayClose: number | null;\n\tprotected _timeoutId?: number;\n\tprotected _closeTimeoutId?: number;\n\tprotected _isTextEnabled: boolean;\n\tprotected _textValue: DStateAwareOrValueMightBe<VALUE>;\n\tprotected _textValueBackup?: DStateAwareOrValueMightBe<VALUE>;\n\tprotected _isImageEnabled: boolean;\n\tprotected _imageIndex: number;\n\tprotected _imageSource: DStateAwareOrValueMightBe<Texture | DisplayObject | null>;\n\tprotected _imageRotation: DStateAwareOrValueMightBe<number>;\n\tprotected _imageSourceBackup?: DStateAwareOrValueMightBe<Texture | DisplayObject | null>;\n\tprotected _imageRotationBackup?: DStateAwareOrValueMightBe<number>;\n\tprotected _wasReadOnly: boolean;\n\n\tconstructor(parent: DImageBase<VALUE>, options?: DIndicatorProcessingOptions<VALUE>) {\n\t\tthis._parent = parent;\n\t\tthis._state = STATE_INITIAL;\n\t\tthis._startTime = 0;\n\n\t\t// Delay\n\t\tconst theme = this.theme;\n\t\tconst delay = options?.delay;\n\t\tthis._delayDone = delay?.done ?? theme.getProcessDoneDelay();\n\t\tconst delayClose = delay?.close;\n\t\tthis._delayClose = delayClose !== undefined ? delayClose : theme.getProcessCloseDelay();\n\n\t\t// Text\n\t\tconst text = options?.text;\n\t\tthis._isTextEnabled = text?.enabled ?? theme.isProcessTextEnabled();\n\t\tthis._textValue = text?.value ?? theme.newProcessTextValue();\n\n\t\t// Image\n\t\tconst image = options?.image;\n\t\tthis._isImageEnabled = image?.enabled ?? theme.isProcessImageEnabled();\n\t\tthis._imageIndex = image?.index ?? theme.getProcessImageIndex();\n\t\tthis._imageSource = image?.source ?? theme.newProcessImageSource();\n\t\tthis._imageRotation = image?.rotation ?? theme.newProcessImageRotation();\n\n\t\t// State\n\t\tthis._wasReadOnly = false;\n\t}\n\n\tstart(): this {\n\t\tconst state = this._state;\n\t\tif (state === STATE_INITIAL) {\n\t\t\tthis._state = STATE_STARTED;\n\t\t\tthis.onBegin();\n\t\t} else if (state === STATE_RESOLVED || state === STATE_REJECTED) {\n\t\t\tthis._state = STATE_STARTED;\n\t\t\tthis.onEnd();\n\t\t\tthis.onBegin();\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected onBegin(): void {\n\t\tthis._startTime = Date.now();\n\t\tconst timeoutId = this._timeoutId;\n\t\tif (timeoutId != null) {\n\t\t\tclearTimeout(timeoutId);\n\t\t}\n\t\tconst closeTimeoutId = this._closeTimeoutId;\n\t\tif (closeTimeoutId != null) {\n\t\t\tclearTimeout(closeTimeoutId);\n\t\t}\n\n\t\tconst parent = this._parent;\n\t\tconst state = parent.state;\n\t\tstate.lock();\n\t\tstate.ticker.remove(DBaseState.PROCESSING).add(DBaseState.PROCESSING, 32);\n\t\tstate.removeAll(DBaseState.SUCCEEDED, DBaseState.FAILED);\n\t\tthis._wasReadOnly = state.isReadOnly;\n\t\tif (!this._wasReadOnly) {\n\t\t\tstate.add(DBaseState.READ_ONLY);\n\t\t}\n\t\tstate.unlock();\n\n\t\tif (this._isTextEnabled) {\n\t\t\tthis._textValueBackup = parent.text.value;\n\t\t\tconst textValue = this._textValue;\n\t\t\tif (textValue !== undefined) {\n\t\t\t\tparent.text = textValue;\n\t\t\t}\n\t\t}\n\n\t\tif (this._isImageEnabled) {\n\t\t\tconst image = parent.image.get(this._imageIndex);\n\t\t\tif (image != null) {\n\t\t\t\tthis._imageSourceBackup = image.source;\n\t\t\t\tthis._imageRotationBackup = image.rotation;\n\t\t\t\tconst imageSource = this._imageSource;\n\t\t\t\tif (imageSource !== undefined) {\n\t\t\t\t\timage.source = imageSource;\n\t\t\t\t}\n\t\t\t\tconst imageRotation = this._imageRotation;\n\t\t\t\tif (imageRotation !== undefined) {\n\t\t\t\t\timage.rotation = imageRotation;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tend(): this {\n\t\tconst state = this._state;\n\t\tif (state === STATE_STARTED || state === STATE_RESOLVED || state === STATE_REJECTED) {\n\t\t\tthis._state = STATE_INITIAL;\n\t\t\tthis.onEnd();\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected onEnd(): void {\n\t\tconst timeoutId = this._timeoutId;\n\t\tif (timeoutId != null) {\n\t\t\tclearTimeout(timeoutId);\n\t\t}\n\t\tconst closeTimeoutId = this._closeTimeoutId;\n\t\tif (closeTimeoutId != null) {\n\t\t\tclearTimeout(closeTimeoutId);\n\t\t}\n\n\t\tconst parent = this._parent;\n\t\tconst state = parent.state;\n\t\tstate.lock();\n\t\tstate.ticker.remove(DBaseState.PROCESSING);\n\t\tstate.removeAll(DBaseState.SUCCEEDED, DBaseState.FAILED);\n\t\tif (!this._wasReadOnly) {\n\t\t\tstate.remove(DBaseState.READ_ONLY);\n\t\t}\n\t\tstate.unlock();\n\n\t\tif (this._isTextEnabled) {\n\t\t\tparent.text = this._textValueBackup;\n\t\t}\n\n\t\tif (this._isImageEnabled) {\n\t\t\tconst image = parent.image.get(this._imageIndex);\n\t\t\tif (image != null) {\n\t\t\t\timage.source = this._imageSourceBackup;\n\t\t\t\timage.rotation = this._imageRotationBackup;\n\t\t\t}\n\t\t}\n\t}\n\n\tresolve(message?: DStateAwareOrValueMightBe<VALUE>): void {\n\t\tif (this._state === STATE_STARTED) {\n\t\t\tthis._state = STATE_RESOLVED;\n\t\t\tconst elapsedTime = Date.now() - this._startTime;\n\t\t\tconst delay = this._delayDone - elapsedTime;\n\t\t\tif (0 < delay) {\n\t\t\t\tthis._timeoutId = window.setTimeout((): void => {\n\t\t\t\t\tthis._timeoutId = undefined;\n\t\t\t\t\tthis.onResolved(message);\n\t\t\t\t}, delay);\n\t\t\t} else {\n\t\t\t\tthis.onResolved(message);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onResolved(message?: DStateAwareOrValueMightBe<VALUE>): void {\n\t\tconst parent = this._parent;\n\t\tif (this._isTextEnabled && message != null) {\n\t\t\tparent.text = message;\n\t\t}\n\t\tconst state = parent.state;\n\t\tstate.lock();\n\t\tstate.ticker.remove(DBaseState.PROCESSING);\n\t\tstate.add(DBaseState.SUCCEEDED);\n\t\tstate.remove(DBaseState.FAILED);\n\t\tif (!this._wasReadOnly) {\n\t\t\tstate.remove(DBaseState.READ_ONLY);\n\t\t}\n\t\tstate.unlock();\n\n\t\tthis.onDone(this._delayClose);\n\t}\n\n\treject(message?: DStateAwareOrValueMightBe<VALUE>): void {\n\t\tif (this._state === STATE_STARTED) {\n\t\t\tthis._state = STATE_REJECTED;\n\t\t\tconst elapsedTime = Date.now() - this._startTime;\n\t\t\tconst delay = this._delayDone - elapsedTime;\n\t\t\tif (0 < delay) {\n\t\t\t\tthis._timeoutId = window.setTimeout((): void => {\n\t\t\t\t\tthis._timeoutId = undefined;\n\t\t\t\t\tthis.onRejected(message);\n\t\t\t\t}, delay);\n\t\t\t} else {\n\t\t\t\tthis.onRejected(message);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onRejected(message?: DStateAwareOrValueMightBe<VALUE>): void {\n\t\tconst parent = this._parent;\n\t\tif (this._isTextEnabled && message != null) {\n\t\t\tparent.text = message;\n\t\t}\n\t\tconst state = parent.state;\n\t\tstate.lock();\n\t\tstate.ticker.remove(DBaseState.PROCESSING);\n\t\tstate.add(DBaseState.FAILED);\n\t\tstate.remove(DBaseState.SUCCEEDED);\n\t\tif (!this._wasReadOnly) {\n\t\t\tstate.remove(DBaseState.READ_ONLY);\n\t\t}\n\t\tstate.unlock();\n\n\t\tthis.onDone(this._delayClose);\n\t}\n\n\tprotected onDone(delay: number | null): void {\n\t\tif (delay != null) {\n\t\t\tthis._closeTimeoutId = window.setTimeout(() => {\n\t\t\t\tthis._closeTimeoutId = undefined;\n\t\t\t\tthis.end();\n\t\t\t}, delay);\n\t\t} else {\n\t\t\tthis.end();\n\t\t}\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DIndicatorProcessing\";\n\t}\n\n\tget theme(): DThemeIndicatorProcessing<VALUE> {\n\t\treturn DThemes.get(this.getType());\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"d-indicator-processing.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-indicator-processing.ts"],"names":[],"mappings":"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","sourcesContent":["import { DisplayObject, Texture } from \"pixi.js\";\nimport { DBaseState } from \"./d-base-state\";\nimport { DStateAwareOrValueMightBe } from \"./d-state-aware\";\nimport { DThemes } from \"./theme/d-themes\";\nimport { DImageBase } from \"./d-image-base\";\n\nexport interface DIndicatorProcessingDelayOptions {\n\tdone?: number;\n\tclose?: number | null;\n}\n\nexport interface DIndicatorProcessingTextOptions<VALUE> {\n\tenabled?: boolean;\n\tvalue?: DStateAwareOrValueMightBe<VALUE>;\n}\n\nexport interface DIndicatorProcessingImageOptions {\n\tenabled?: boolean;\n\tindex?: number;\n\tsource?: DStateAwareOrValueMightBe<Texture | DisplayObject | null>;\n\trotation?: DStateAwareOrValueMightBe<number>;\n}\n\nexport interface DIndicatorProcessingOptions<VALUE> {\n\tdelay?: DIndicatorProcessingDelayOptions;\n\ttext?: DIndicatorProcessingTextOptions<VALUE>;\n\timage?: DIndicatorProcessingImageOptions;\n}\n\nexport interface DThemeIndicatorProcessing<VALUE = unknown> {\n\tgetProcessDoneDelay(): number;\n\tgetProcessCloseDelay(): number | null;\n\n\tisProcessTextEnabled(): boolean;\n\tnewProcessTextValue(): DStateAwareOrValueMightBe<VALUE>;\n\n\tisProcessImageEnabled(): boolean;\n\tgetProcessImageIndex(): number;\n\tnewProcessImageSource(): DStateAwareOrValueMightBe<Texture | DisplayObject | null>;\n\tnewProcessImageRotation(): DStateAwareOrValueMightBe<number>;\n}\n\nexport const DIndicatorProcessingState = {\n\tINITIAL: 0,\n\tSTARTED: 1,\n\tRESOLVED: 2,\n\tREJECTED: 3\n} as const;\n\nexport type DIndicatorProcessingState =\n\t(typeof DIndicatorProcessingState)[keyof typeof DIndicatorProcessingState];\n\nexport class DIndicatorProcessing<VALUE> {\n\tprotected _parent: DImageBase<VALUE>;\n\tprotected _state: DIndicatorProcessingState;\n\tprotected _startTime: number;\n\tprotected _delayDone: number;\n\tprotected _delayClose: number | null;\n\tprotected _timeoutId?: number;\n\tprotected _closeTimeoutId?: number;\n\tprotected _isTextEnabled: boolean;\n\tprotected _textValue: DStateAwareOrValueMightBe<VALUE>;\n\tprotected _textValueBackup?: DStateAwareOrValueMightBe<VALUE>;\n\tprotected _isImageEnabled: boolean;\n\tprotected _imageIndex: number;\n\tprotected _imageSource: DStateAwareOrValueMightBe<Texture | DisplayObject | null>;\n\tprotected _imageRotation: DStateAwareOrValueMightBe<number>;\n\tprotected _imageSourceBackup?: DStateAwareOrValueMightBe<Texture | DisplayObject | null>;\n\tprotected _imageRotationBackup?: DStateAwareOrValueMightBe<number>;\n\tprotected _wasReadOnly: boolean;\n\n\tconstructor(parent: DImageBase<VALUE>, options?: DIndicatorProcessingOptions<VALUE>) {\n\t\tthis._parent = parent;\n\t\tthis._state = DIndicatorProcessingState.INITIAL;\n\t\tthis._startTime = 0;\n\n\t\t// Delay\n\t\tconst theme = this.theme;\n\t\tconst delay = options?.delay;\n\t\tthis._delayDone = delay?.done ?? theme.getProcessDoneDelay();\n\t\tconst delayClose = delay?.close;\n\t\tthis._delayClose = delayClose !== undefined ? delayClose : theme.getProcessCloseDelay();\n\n\t\t// Text\n\t\tconst text = options?.text;\n\t\tthis._isTextEnabled = text?.enabled ?? theme.isProcessTextEnabled();\n\t\tthis._textValue = text?.value ?? theme.newProcessTextValue();\n\n\t\t// Image\n\t\tconst image = options?.image;\n\t\tthis._isImageEnabled = image?.enabled ?? theme.isProcessImageEnabled();\n\t\tthis._imageIndex = image?.index ?? theme.getProcessImageIndex();\n\t\tthis._imageSource = image?.source ?? theme.newProcessImageSource();\n\t\tthis._imageRotation = image?.rotation ?? theme.newProcessImageRotation();\n\n\t\t// State\n\t\tthis._wasReadOnly = false;\n\t}\n\n\tstart(): this {\n\t\tconst state = this._state;\n\t\tif (state === DIndicatorProcessingState.INITIAL) {\n\t\t\tthis._state = DIndicatorProcessingState.STARTED;\n\t\t\tthis.onBegin();\n\t\t} else if (\n\t\t\tstate === DIndicatorProcessingState.RESOLVED ||\n\t\t\tstate === DIndicatorProcessingState.REJECTED\n\t\t) {\n\t\t\tthis._state = DIndicatorProcessingState.STARTED;\n\t\t\tthis.onEnd();\n\t\t\tthis.onBegin();\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected onBegin(): void {\n\t\tthis._startTime = Date.now();\n\t\tconst timeoutId = this._timeoutId;\n\t\tif (timeoutId != null) {\n\t\t\tclearTimeout(timeoutId);\n\t\t}\n\t\tconst closeTimeoutId = this._closeTimeoutId;\n\t\tif (closeTimeoutId != null) {\n\t\t\tclearTimeout(closeTimeoutId);\n\t\t}\n\n\t\tconst parent = this._parent;\n\t\tconst state = parent.state;\n\t\tstate.lock();\n\t\tstate.ticker.remove(DBaseState.PROCESSING).add(DBaseState.PROCESSING, 32);\n\t\tstate.removeAll(DBaseState.SUCCEEDED, DBaseState.FAILED);\n\t\tthis._wasReadOnly = state.isReadOnly;\n\t\tif (!this._wasReadOnly) {\n\t\t\tstate.add(DBaseState.READ_ONLY);\n\t\t}\n\t\tstate.unlock();\n\n\t\tif (this._isTextEnabled) {\n\t\t\tthis._textValueBackup = parent.text.value;\n\t\t\tconst textValue = this._textValue;\n\t\t\tif (textValue !== undefined) {\n\t\t\t\tparent.text = textValue;\n\t\t\t}\n\t\t}\n\n\t\tif (this._isImageEnabled) {\n\t\t\tconst image = parent.image.get(this._imageIndex);\n\t\t\tif (image != null) {\n\t\t\t\tthis._imageSourceBackup = image.source;\n\t\t\t\tthis._imageRotationBackup = image.rotation;\n\t\t\t\tconst imageSource = this._imageSource;\n\t\t\t\tif (imageSource !== undefined) {\n\t\t\t\t\timage.source = imageSource;\n\t\t\t\t}\n\t\t\t\tconst imageRotation = this._imageRotation;\n\t\t\t\tif (imageRotation !== undefined) {\n\t\t\t\t\timage.rotation = imageRotation;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tend(): this {\n\t\tconst state = this._state;\n\t\tif (\n\t\t\tstate === DIndicatorProcessingState.STARTED ||\n\t\t\tstate === DIndicatorProcessingState.RESOLVED ||\n\t\t\tstate === DIndicatorProcessingState.REJECTED\n\t\t) {\n\t\t\tthis._state = DIndicatorProcessingState.INITIAL;\n\t\t\tthis.onEnd();\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected onEnd(): void {\n\t\tconst timeoutId = this._timeoutId;\n\t\tif (timeoutId != null) {\n\t\t\tclearTimeout(timeoutId);\n\t\t}\n\t\tconst closeTimeoutId = this._closeTimeoutId;\n\t\tif (closeTimeoutId != null) {\n\t\t\tclearTimeout(closeTimeoutId);\n\t\t}\n\n\t\tconst parent = this._parent;\n\t\tconst state = parent.state;\n\t\tstate.lock();\n\t\tstate.ticker.remove(DBaseState.PROCESSING);\n\t\tstate.removeAll(DBaseState.SUCCEEDED, DBaseState.FAILED);\n\t\tif (!this._wasReadOnly) {\n\t\t\tstate.remove(DBaseState.READ_ONLY);\n\t\t}\n\t\tstate.unlock();\n\n\t\tif (this._isTextEnabled) {\n\t\t\tparent.text = this._textValueBackup;\n\t\t}\n\n\t\tif (this._isImageEnabled) {\n\t\t\tconst image = parent.image.get(this._imageIndex);\n\t\t\tif (image != null) {\n\t\t\t\timage.source = this._imageSourceBackup;\n\t\t\t\timage.rotation = this._imageRotationBackup;\n\t\t\t}\n\t\t}\n\t}\n\n\tresolve(message?: DStateAwareOrValueMightBe<VALUE>): void {\n\t\tif (this._state === DIndicatorProcessingState.STARTED) {\n\t\t\tthis._state = DIndicatorProcessingState.RESOLVED;\n\t\t\tconst elapsedTime = Date.now() - this._startTime;\n\t\t\tconst delay = this._delayDone - elapsedTime;\n\t\t\tif (0 < delay) {\n\t\t\t\tthis._timeoutId = window.setTimeout((): void => {\n\t\t\t\t\tthis._timeoutId = undefined;\n\t\t\t\t\tthis.onResolved(message);\n\t\t\t\t}, delay);\n\t\t\t} else {\n\t\t\t\tthis.onResolved(message);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onResolved(message?: DStateAwareOrValueMightBe<VALUE>): void {\n\t\tconst parent = this._parent;\n\t\tif (this._isTextEnabled && message != null) {\n\t\t\tparent.text = message;\n\t\t}\n\t\tconst state = parent.state;\n\t\tstate.lock();\n\t\tstate.ticker.remove(DBaseState.PROCESSING);\n\t\tstate.add(DBaseState.SUCCEEDED);\n\t\tstate.remove(DBaseState.FAILED);\n\t\tif (!this._wasReadOnly) {\n\t\t\tstate.remove(DBaseState.READ_ONLY);\n\t\t}\n\t\tstate.unlock();\n\n\t\tthis.onDone(this._delayClose);\n\t}\n\n\treject(message?: DStateAwareOrValueMightBe<VALUE>): void {\n\t\tif (this._state === DIndicatorProcessingState.STARTED) {\n\t\t\tthis._state = DIndicatorProcessingState.REJECTED;\n\t\t\tconst elapsedTime = Date.now() - this._startTime;\n\t\t\tconst delay = this._delayDone - elapsedTime;\n\t\t\tif (0 < delay) {\n\t\t\t\tthis._timeoutId = window.setTimeout((): void => {\n\t\t\t\t\tthis._timeoutId = undefined;\n\t\t\t\t\tthis.onRejected(message);\n\t\t\t\t}, delay);\n\t\t\t} else {\n\t\t\t\tthis.onRejected(message);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onRejected(message?: DStateAwareOrValueMightBe<VALUE>): void {\n\t\tconst parent = this._parent;\n\t\tif (this._isTextEnabled && message != null) {\n\t\t\tparent.text = message;\n\t\t}\n\t\tconst state = parent.state;\n\t\tstate.lock();\n\t\tstate.ticker.remove(DBaseState.PROCESSING);\n\t\tstate.add(DBaseState.FAILED);\n\t\tstate.remove(DBaseState.SUCCEEDED);\n\t\tif (!this._wasReadOnly) {\n\t\t\tstate.remove(DBaseState.READ_ONLY);\n\t\t}\n\t\tstate.unlock();\n\n\t\tthis.onDone(this._delayClose);\n\t}\n\n\tprotected onDone(delay: number | null): void {\n\t\tif (delay != null) {\n\t\t\tthis._closeTimeoutId = window.setTimeout(() => {\n\t\t\t\tthis._closeTimeoutId = undefined;\n\t\t\t\tthis.end();\n\t\t\t}, delay);\n\t\t} else {\n\t\t\tthis.end();\n\t\t}\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DIndicatorProcessing\";\n\t}\n\n\tget theme(): DThemeIndicatorProcessing<VALUE> {\n\t\treturn DThemes.get(this.getType());\n\t}\n}\n"]}
|
|
@@ -223,7 +223,7 @@ var DPagination = /** @class */ (function (_super) {
|
|
|
223
223
|
};
|
|
224
224
|
/**
|
|
225
225
|
* Goes to the last page.
|
|
226
|
-
* Unlike {@link
|
|
226
|
+
* Unlike {@link value}, this method emits the change event if silently is not true.
|
|
227
227
|
*
|
|
228
228
|
* @param silently true to suppress the change event
|
|
229
229
|
* @returns true if succeeded.
|
|
@@ -233,7 +233,7 @@ var DPagination = /** @class */ (function (_super) {
|
|
|
233
233
|
};
|
|
234
234
|
/**
|
|
235
235
|
* Goes to the given page.
|
|
236
|
-
* Unlike {@link
|
|
236
|
+
* Unlike {@link value}, this method emits the change event if silently is not true.
|
|
237
237
|
*
|
|
238
238
|
* @param index a page index
|
|
239
239
|
* @param silently true to suppress the change event
|
|
@@ -282,7 +282,7 @@ var DPagination = /** @class */ (function (_super) {
|
|
|
282
282
|
};
|
|
283
283
|
/**
|
|
284
284
|
* Goes to the next page.
|
|
285
|
-
* Unlike {@link
|
|
285
|
+
* Unlike {@link value}, this method emits the change event if silently is not true.
|
|
286
286
|
*
|
|
287
287
|
* @param silently true to suppress the change event
|
|
288
288
|
* @returns true if succeeded.
|
|
@@ -320,7 +320,7 @@ var DPagination = /** @class */ (function (_super) {
|
|
|
320
320
|
};
|
|
321
321
|
/**
|
|
322
322
|
* Goes to the previous page.
|
|
323
|
-
* Unlike {@link
|
|
323
|
+
* Unlike {@link value}, this method emits the change event if silently is not true.
|
|
324
324
|
*
|
|
325
325
|
* @param silently true to suppress the change event
|
|
326
326
|
* @returns true if succeeded.
|
|
@@ -358,7 +358,7 @@ var DPagination = /** @class */ (function (_super) {
|
|
|
358
358
|
};
|
|
359
359
|
/**
|
|
360
360
|
* Goes to the top page.
|
|
361
|
-
* Unlike {@link
|
|
361
|
+
* Unlike {@link value}, this method emits the change event if silently is not true.
|
|
362
362
|
*
|
|
363
363
|
* @param silently true to suppress the change event
|
|
364
364
|
* @returns true if succeeded.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-pagination.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-pagination.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DButton } from \"./d-button\";\nimport {\n\tDLayoutHorizontal,\n\tDLayoutHorizontalOptions,\n\tDThemeLayoutHorizontal\n} from \"./d-layout-horizontal\";\nimport { DPaginationDots } from \"./d-pagination-dots\";\nimport { DPaginationButtonLast, DPaginationButtonLastOptions } from \"./d-pagination-button-last\";\nimport { DPaginationButtonNext, DPaginationButtonNextOptions } from \"./d-pagination-button-next\";\nimport { DPaginationButtonPage, DPaginationButtonPageOptions } from \"./d-pagination-button-page\";\nimport {\n\tDPaginationButtonPrevious,\n\tDPaginationButtonPreviousOptions\n} from \"./d-pagination-button-previous\";\nimport { DPaginationButtonTop, DPaginationButtonTopOptions } from \"./d-pagination-button-top\";\nimport { isNumber } from \"./util/is-number\";\nimport { DPaginationPage, DPaginationPageOptions } from \"./d-pagination-page\";\nimport { DLayoutSpace, DLayoutSpaceOptions } from \"./d-layout-space\";\nimport { DImageBase } from \"./d-image-base\";\nimport { DApplications } from \"./d-applications\";\n\nexport interface DPaginationButtonOptions {\n\t/**\n\t * {@link DPagination} top button options.\n\t */\n\ttop?: DPaginationButtonTopOptions | boolean | null;\n\n\t/**\n\t * {@link DPagination} previous button options.\n\t */\n\tprevious?: DPaginationButtonPreviousOptions | boolean | null;\n\n\t/**\n\t * {@link DPagination} page button options.\n\t */\n\tpage?: DPaginationButtonPageOptions;\n\n\t/**\n\t * {@link DPagination} next button options.\n\t */\n\tnext?: DPaginationButtonNextOptions | boolean | null;\n\n\t/**\n\t * {@link DPagination} last button options.\n\t */\n\tlast?: DPaginationButtonLastOptions | boolean | null;\n\n\t/**\n\t * A space between page buttons and next / previous buttons.\n\t */\n\tspace?: DLayoutSpaceOptions | boolean | number | null;\n}\n\nexport interface DPaginationOptions<THEME extends DThemePagination>\n\textends DLayoutHorizontalOptions<THEME> {\n\t/**\n\t * An index number of a selected page.\n\t */\n\tvalue?: number;\n\n\t/**\n\t * An index number of a selected page.\n\t *\n\t * @deprecated in favor of {@link value}.\n\t */\n\tselected?: number;\n\n\t/**\n\t * A total number of pages.\n\t */\n\tsize?: number;\n\n\t/**\n\t * A total number of pages.\n\t *\n\t * @deprecated in favor of {@link size};\n\t */\n\ttotal?: number;\n\n\t/**\n\t * {@link DPagination} button options.\n\t */\n\tbutton?: DPaginationButtonOptions;\n\n\t/**\n\t * {@link DPagination} page options.\n\t */\n\tpage?: DPaginationPageOptions;\n}\n\nexport interface DThemePagination extends DThemeLayoutHorizontal {\n\tgetButtonSpace(): number;\n}\n\nexport class DPagination<\n\tTHEME extends DThemePagination = DThemePagination,\n\tOPTIONS extends DPaginationOptions<THEME> = DPaginationOptions<THEME>\n> extends DLayoutHorizontal<THEME, OPTIONS> {\n\tprotected _size: number;\n\tprotected _value: number;\n\n\tprotected _buttonTop?: DButton<string> | null;\n\tprotected _buttonPrevious?: DButton<string> | null;\n\tprotected _spaceLeft?: DLayoutSpace | null;\n\tprotected _dots0?: DPaginationDots;\n\tprotected _buttonPages0?: DButton<number>[];\n\tprotected _page?: DPaginationPage;\n\tprotected _buttonPages1?: DButton<number>[];\n\tprotected _dots1?: DPaginationDots;\n\tprotected _spaceRight?: DLayoutSpace | null;\n\tprotected _buttonNext?: DButton<string> | null;\n\tprotected _buttonLast?: DButton<string> | null;\n\n\tconstructor(options?: OPTIONS) {\n\t\tsuper(options);\n\n\t\tif (options != null) {\n\t\t\tthis._size = options.size ?? options.total ?? 10;\n\t\t\tthis._value = options.value ?? options.selected ?? 0;\n\t\t} else {\n\t\t\tthis._size = 10;\n\t\t\tthis._value = 0;\n\t\t}\n\n\t\tconst buttonTop = this.buttonTop;\n\t\tif (buttonTop != null) {\n\t\t\tthis.addChild(buttonTop);\n\t\t}\n\t\tconst buttonPrevious = this.buttonPrevious;\n\t\tif (buttonPrevious != null) {\n\t\t\tthis.addChild(buttonPrevious);\n\t\t}\n\t\tconst spaceLeft = this.spaceLeft;\n\t\tif (spaceLeft != null) {\n\t\t\tthis.addChild(spaceLeft);\n\t\t}\n\t\tconst buttonPages0 = this.buttonPages0;\n\t\tconst buttonPages0Length = buttonPages0.length;\n\t\tthis.addChild(buttonPages0[0]);\n\t\tthis.addChild(this.dots0);\n\t\tfor (let i = 1; i < buttonPages0Length; ++i) {\n\t\t\tthis.addChild(buttonPages0[i]);\n\t\t}\n\t\tthis.addChild(this.page);\n\t\tconst buttonPages1 = this.buttonPages1;\n\t\tconst buttonPages1Length = buttonPages1.length;\n\t\tfor (let i = 0, imax = buttonPages1Length - 1; i < imax; ++i) {\n\t\t\tthis.addChild(buttonPages1[i]);\n\t\t}\n\t\tthis.addChild(this.dots1);\n\t\tthis.addChild(buttonPages1[buttonPages1Length - 1]);\n\t\tconst spaceRight = this.spaceRight;\n\t\tif (spaceRight != null) {\n\t\t\tthis.addChild(spaceRight);\n\t\t}\n\t\tconst buttonNext = this.buttonNext;\n\t\tif (buttonNext != null) {\n\t\t\tthis.addChild(buttonNext);\n\t\t}\n\t\tconst buttonLast = this.buttonLast;\n\t\tif (buttonLast != null) {\n\t\t\tthis.addChild(buttonLast);\n\t\t}\n\t}\n\n\t/**\n\t * Sets a value that is an index of a current page.\n\t *\n\t * @param value a value that is an index of a page\n\t */\n\tset value(value: number) {\n\t\tif (0 <= value && value < this._size && this._value !== value) {\n\t\t\tthis._value = value;\n\t\t\tthis.toDirty();\n\t\t\tDApplications.update(this);\n\t\t}\n\t}\n\n\t/**\n\t * Returns a value that is an index of a current page.\n\t *\n\t * @returns a value that is an index of a selected page.\n\t */\n\tget value(): number {\n\t\treturn this._value;\n\t}\n\n\t/**\n\t * Selects a page.\n\t *\n\t * @param index an index of a page\n\t * @deprecated in favor of {@link value}.\n\t */\n\tset selected(index: number) {\n\t\tthis.value = index;\n\t}\n\n\t/**\n\t * Returns an index of the selected page.\n\t *\n\t * @returns an index of the selected page.\n\t * @deprecated in favor of {@link value}.\n\t */\n\tget selected(): number {\n\t\treturn this.value;\n\t}\n\n\t/**\n\t * Sets a number of total pages.\n\t *\n\t * @param size a number of pages\n\t */\n\tset size(size: number) {\n\t\tif (0 <= size && this._size !== size) {\n\t\t\tthis._size = size;\n\t\t\tif (size === 0) {\n\t\t\t\tthis._value = -1;\n\t\t\t} else {\n\t\t\t\tthis._value = Math.max(0, Math.min(this._size - 1, this._value));\n\t\t\t}\n\t\t\tthis.toDirty();\n\t\t\tDApplications.update(this);\n\t\t}\n\t}\n\n\t/**\n\t * Returns a number of total pages.\n\t *\n\t * @returns a number of total pages.\n\t */\n\tget size(): number {\n\t\treturn this._size;\n\t}\n\n\t/**\n\t * Sets a number of total pages.\n\t *\n\t * @param total a number of pages\n\t * @deprecated in favor of {@link size}\n\t */\n\tset total(total: number) {\n\t\tthis.size = total;\n\t}\n\n\t/**\n\t * Returns a number of total pages.\n\t *\n\t * @returns a number of total pages.\n\t * @deprecated in favor of {@link size}\n\t */\n\tget total(): number {\n\t\treturn this.size;\n\t}\n\n\tprotected get dots0(): DPaginationDots {\n\t\tlet result = this._dots0;\n\t\tif (result == null) {\n\t\t\tresult = this.newDots();\n\t\t\tthis._dots0 = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected get dots1(): DPaginationDots {\n\t\tlet result = this._dots1;\n\t\tif (result == null) {\n\t\t\tresult = this.newDots();\n\t\t\tthis._dots1 = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newDots(): DPaginationDots {\n\t\treturn new DPaginationDots();\n\t}\n\n\tprotected get buttonLast(): DButton<string> | null {\n\t\tlet result = this._buttonLast;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newButtonLast();\n\t\t\tthis._buttonLast = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonLast(): DButton<string> | null {\n\t\tconst last = this._options?.button?.last;\n\t\tif (last !== null && last !== false && last !== undefined) {\n\t\t\tconst result = new DPaginationButtonLast(last !== true ? last : undefined);\n\t\t\tresult.on(\"active\", () => {\n\t\t\t\tthis.onButtonLastActive();\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onButtonLastActive(): void {\n\t\tthis.goToLast();\n\t}\n\n\t/**\n\t * Goes to the last page.\n\t * Unlike {@link #value}, this method emits the change event if silently is not true.\n\t *\n\t * @param silently true to suppress the change event\n\t * @returns true if succeeded.\n\t */\n\tgoToLast(silently?: boolean): boolean {\n\t\treturn this.goTo(this._size - 1, silently);\n\t}\n\n\t/**\n\t * Goes to the given page.\n\t * Unlike {@link #value}, this method emits the change event if silently is not true.\n\t *\n\t * @param index a page index\n\t * @param silently true to suppress the change event\n\t * @returns this\n\t */\n\tgoTo(index: number, silently?: boolean): boolean {\n\t\tif (0 <= index && index < this._size && this._value !== index) {\n\t\t\tconst oldIndex = this._value;\n\t\t\tthis._value = index;\n\t\t\tif (silently !== true) {\n\t\t\t\tthis.emit(\"change\", index, oldIndex, this);\n\t\t\t}\n\t\t\tthis.toDirty();\n\t\t\tDApplications.update(this);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected get buttonNext(): DButton<string> | null {\n\t\tlet result = this._buttonNext;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newButtonNext();\n\t\t\tthis._buttonNext = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonNext(): DButton<string> | null {\n\t\tconst next = this._options?.button?.next;\n\t\tif (next !== null && next !== false) {\n\t\t\tconst result = new DPaginationButtonNext(next !== true ? next : undefined);\n\t\t\tresult.on(\"active\", (): void => {\n\t\t\t\tthis.onButtonNextActive();\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onButtonNextActive(): void {\n\t\tthis.goToNext();\n\t}\n\n\t/**\n\t * Goes to the next page.\n\t * Unlike {@link #value}, this method emits the change event if silently is not true.\n\t *\n\t * @param silently true to suppress the change event\n\t * @returns true if succeeded.\n\t */\n\tgoToNext(silently?: boolean): boolean {\n\t\treturn this.goTo(this._value + 1, silently);\n\t}\n\n\tprotected get buttonPrevious(): DButton<string> | null {\n\t\tlet result = this._buttonPrevious;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newButtonPrevious();\n\t\t\tthis._buttonPrevious = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonPrevious(): DButton<string> | null {\n\t\tconst previous = this._options?.button?.previous;\n\t\tif (previous !== null && previous !== false) {\n\t\t\tconst result = new DPaginationButtonPrevious(previous !== true ? previous : undefined);\n\t\t\tresult.on(\"active\", (): void => {\n\t\t\t\tthis.onButtonPreviousActive();\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onButtonPreviousActive(): void {\n\t\tthis.goToPrevious();\n\t}\n\n\t/**\n\t * Goes to the previous page.\n\t * Unlike {@link #value}, this method emits the change event if silently is not true.\n\t *\n\t * @param silently true to suppress the change event\n\t * @returns true if succeeded.\n\t */\n\tgoToPrevious(silently?: boolean): boolean {\n\t\treturn this.goTo(this._value - 1, silently);\n\t}\n\n\tprotected get buttonTop(): DButton<string> | null {\n\t\tlet result = this._buttonTop;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newButtonTop();\n\t\t\tthis._buttonTop = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonTop(): DButton<string> | null {\n\t\tconst top = this._options?.button?.top;\n\t\tif (top !== null && top !== false && top !== undefined) {\n\t\t\tconst result = new DPaginationButtonTop(top !== true ? top : undefined);\n\t\t\tresult.on(\"active\", (): void => {\n\t\t\t\tthis.onButtonTopActive();\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onButtonTopActive(): void {\n\t\tthis.goToTop();\n\t}\n\n\t/**\n\t * Goes to the top page.\n\t * Unlike {@link #value}, this method emits the change event if silently is not true.\n\t *\n\t * @param silently true to suppress the change event\n\t * @returns true if succeeded.\n\t */\n\tgoToTop(silently?: boolean): boolean {\n\t\treturn this.goTo(0, silently);\n\t}\n\n\tprotected newButtonPage(): DButton<number> {\n\t\tconst result = new DPaginationButtonPage(this._options?.button?.page);\n\t\tresult.on(\"active\", (): void => {\n\t\t\tthis.onButtonPageActive(result);\n\t\t});\n\t\treturn result;\n\t}\n\n\tprotected get buttonPages0(): DButton<number>[] {\n\t\tlet result = this._buttonPages0;\n\t\tif (result == null) {\n\t\t\tresult = this.newButtonPages0();\n\t\t\tthis._buttonPages0 = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonPages0(): DButton<number>[] {\n\t\treturn [\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage()\n\t\t];\n\t}\n\n\tprotected allocButtonPages0(size: number): void {\n\t\tconst buttonPages0 = this.buttonPages0;\n\t\tconst buttonPages0Length = buttonPages0.length;\n\t\tconst index = this.getChildIndex(buttonPages0[buttonPages0Length - 1]) + 1;\n\t\tfor (let i = 0, imax = size - buttonPages0Length; i < imax; ++i) {\n\t\t\tconst buttonPage = this.newButtonPage();\n\t\t\tthis.addChildAt(buttonPage, index + i);\n\t\t\tbuttonPages0.push(buttonPage);\n\t\t}\n\t}\n\n\tprotected get buttonPages1(): DButton<number>[] {\n\t\tlet result = this._buttonPages1;\n\t\tif (result == null) {\n\t\t\tresult = this.newButtonPages1();\n\t\t\tthis._buttonPages1 = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonPages1(): DButton<number>[] {\n\t\treturn [\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage()\n\t\t];\n\t}\n\n\tprotected allocButtonPages1(size: number): void {\n\t\tconst buttonPages1 = this.buttonPages1;\n\t\tconst buttonPages1Length = buttonPages1.length;\n\t\tconst index = this.getChildIndex(buttonPages1[0]);\n\t\tfor (let i = 0, imax = size - buttonPages1Length; i < imax; ++i) {\n\t\t\tconst buttonPage = this.newButtonPage();\n\t\t\tthis.addChildAt(buttonPage, index);\n\t\t\tbuttonPages1.unshift(buttonPage);\n\t\t}\n\t}\n\n\tprotected get page(): DPaginationPage {\n\t\tlet result = this._page;\n\t\tif (result == null) {\n\t\t\tresult = this.newPage();\n\t\t\tthis._page = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newPage(): DPaginationPage {\n\t\treturn new DPaginationPage(this._options?.page);\n\t}\n\n\tprotected onButtonPageActive(button: DButton<number>): void {\n\t\tconst text = button.text.value;\n\t\tif (isNumber(text)) {\n\t\t\tthis.goTo(text - 1);\n\t\t\tif (button.state.isFocused) {\n\t\t\t\tbutton.state.isHovered = false;\n\t\t\t\tthis.page.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected get spaceLeft(): DLayoutSpace | null {\n\t\tlet result = this._spaceLeft;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newSpaceLeft();\n\t\t\tthis._spaceLeft = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newSpaceLeft(): DLayoutSpace | null {\n\t\tif (this.buttonTop != null || this.buttonPrevious != null) {\n\t\t\treturn this.newSpace();\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected get spaceRight(): DLayoutSpace | null {\n\t\tlet result = this._spaceRight;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newSpaceRight();\n\t\t\tthis._spaceRight = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newSpaceRight(): DLayoutSpace | null {\n\t\tif (this.buttonLast != null || this.buttonNext != null) {\n\t\t\treturn this.newSpace();\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected newSpace(): DLayoutSpace | null {\n\t\tconst space = this._options?.button?.space;\n\t\tif (space !== null && space !== false) {\n\t\t\tif (space === true || space === undefined) {\n\t\t\t\treturn new DLayoutSpace({\n\t\t\t\t\tweight: 1\n\t\t\t\t});\n\t\t\t} else if (isNumber(space)) {\n\t\t\t\treturn new DLayoutSpace({\n\t\t\t\t\twidth: space\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn new DLayoutSpace(space);\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onReflow(): void {\n\t\tthis.update();\n\t\tsuper.onReflow();\n\t}\n\n\tprotected update(): void {\n\t\tconst size = this._size;\n\t\tconst value = this._value;\n\t\tif (size <= 0) {\n\t\t\tthis.doUpdate0(value, size);\n\t\t} else {\n\t\t\tif (this._auto.width.isOn) {\n\t\t\t\tthis.doUpdate2(value, size, 0, 0, 0, 0);\n\t\t\t} else {\n\t\t\t\tthis.doUpdate1(value, size);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected doUpdate0(value: number, size: number): void {\n\t\tconst buttonTop = this.buttonTop;\n\t\tif (buttonTop != null) {\n\t\t\tbuttonTop.state.isEnabled = false;\n\t\t}\n\t\tconst buttonPrevious = this.buttonPrevious;\n\t\tif (buttonPrevious != null) {\n\t\t\tbuttonPrevious.state.isEnabled = false;\n\t\t}\n\n\t\tthis.hideDots(this.dots0);\n\n\t\tconst buttonPages0 = this.buttonPages0;\n\t\tfor (let i = 0, imax = buttonPages0.length; i < imax; ++i) {\n\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t}\n\n\t\tthis.hidePage(this.page);\n\n\t\tconst buttonPages1 = this.buttonPages1;\n\t\tfor (let i = 0, imax = buttonPages1.length; i < imax; ++i) {\n\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t}\n\n\t\tthis.hideDots(this.dots1);\n\n\t\tconst buttonNext = this.buttonNext;\n\t\tif (buttonNext != null) {\n\t\t\tbuttonNext.state.isEnabled = false;\n\t\t}\n\t\tconst buttonLast = this.buttonLast;\n\t\tif (buttonLast) {\n\t\t\tbuttonLast.state.isEnabled = false;\n\t\t}\n\t}\n\n\tprotected doUpdate1(value: number, size: number): void {\n\t\tlet required = 0;\n\t\tlet nrequired = 0;\n\n\t\tconst buttonTop = this.buttonTop;\n\t\tif (buttonTop != null) {\n\t\t\trequired += buttonTop.width;\n\t\t\tnrequired += 1;\n\t\t}\n\t\tconst buttonPrevious = this.buttonPrevious;\n\t\tif (buttonPrevious != null) {\n\t\t\trequired += buttonPrevious.width;\n\t\t\tnrequired += 1;\n\t\t}\n\n\t\tconst spaceLeft = this.spaceLeft;\n\t\tif (spaceLeft != null) {\n\t\t\tif (spaceLeft.weight < 0) {\n\t\t\t\trequired += spaceLeft.width;\n\t\t\t}\n\t\t\tnrequired += 1;\n\t\t}\n\n\t\tconst page = this.page;\n\t\trequired += page.width;\n\t\tnrequired += 1;\n\n\t\tconst spaceRight = this.spaceRight;\n\t\tif (spaceRight != null) {\n\t\t\tif (spaceRight.weight < 0) {\n\t\t\t\trequired += spaceRight.width;\n\t\t\t}\n\t\t\tnrequired += 1;\n\t\t}\n\n\t\tconst buttonNext = this.buttonNext;\n\t\tif (buttonNext != null) {\n\t\t\trequired += buttonNext.width;\n\t\t\tnrequired += 1;\n\t\t}\n\t\tconst buttonLast = this.buttonLast;\n\t\tif (buttonLast) {\n\t\t\trequired += buttonLast.width;\n\t\t\tnrequired += 1;\n\t\t}\n\n\t\tconst marginHorizontal = this._margin.horizontal;\n\t\tif (2 <= nrequired) {\n\t\t\trequired += (nrequired - 1) * marginHorizontal;\n\t\t}\n\n\t\tconst padding = this.padding;\n\t\tconst space = this.width - (padding.getLeft() + padding.getRight());\n\t\tif (space <= required) {\n\t\t\tthis.doUpdate2(value, size, 4, 4, 0, 0);\n\t\t} else {\n\t\t\tconst buttonPages0 = this.buttonPages0;\n\t\t\tconst buttonPage0Width = buttonPages0[0].width;\n\t\t\tconst nrequired0 = value;\n\t\t\tconst required0 = nrequired0 * (buttonPage0Width + marginHorizontal);\n\n\t\t\tconst buttonPages1 = this.buttonPages1;\n\t\t\tconst buttonPage1Width = buttonPages1[0].width;\n\t\t\tconst nrequired1 = size - (value + 1);\n\t\t\tconst required1 = nrequired1 * (buttonPage1Width + marginHorizontal);\n\n\t\t\tif (required + required0 + required1 <= space) {\n\t\t\t\tthis.doUpdate2(value, size, 0, 0, 0, 0);\n\t\t\t} else {\n\t\t\t\tconst dots1 = this.dots1;\n\t\t\t\tconst dots1Width = dots1.width;\n\t\t\t\tconst dots0 = this.dots0;\n\t\t\t\tconst dots0Width = dots0.width;\n\t\t\t\tconst m0 = marginHorizontal + buttonPage0Width;\n\t\t\t\tconst m1 = marginHorizontal + buttonPage1Width;\n\t\t\t\tconst required0n = dots0Width + m0;\n\t\t\t\tconst required1n = dots1Width + m1;\n\t\t\t\tconst required0m = required0n + m0;\n\t\t\t\tconst required1m = required1n + m1;\n\t\t\t\tif (required0 <= required1) {\n\t\t\t\t\tif (3 <= nrequired1 && required + required0 + required1m <= space) {\n\t\t\t\t\t\tconst l = space - (required + required0 + required1m);\n\t\t\t\t\t\tconst n1 = Math.floor(l / m1);\n\t\t\t\t\t\tthis.doUpdate2(value, size, 0, 1, 0, n1);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t3 <= nrequired0 &&\n\t\t\t\t\t\t3 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0m + required1m <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst l = space - (required + required0m + required1m);\n\t\t\t\t\t\tconst n1 = Math.floor((l * 0.5) / m1);\n\t\t\t\t\t\tconst n0 = Math.floor((l - n1 * m1) / m0);\n\t\t\t\t\t\tthis.doUpdate2(value, size, 1, 1, n0, n1);\n\t\t\t\t\t} else if (2 <= nrequired1 && required + required0 + required1n <= space) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 0, 2, 0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t3 <= nrequired0 &&\n\t\t\t\t\t\t2 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0m + required1n <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst l = space - (required + required0m + required1n);\n\t\t\t\t\t\tconst n0 = Math.floor(l / m0);\n\t\t\t\t\t\tthis.doUpdate2(value, size, 1, 2, n0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t2 <= nrequired0 &&\n\t\t\t\t\t\t2 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0n + required1n <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 2, 2, 0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t1 <= nrequired0 &&\n\t\t\t\t\t\t1 <= nrequired1 &&\n\t\t\t\t\t\trequired + dots0Width + dots1Width <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 3, 3, 0, 0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 4, 4, 0, 0);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (3 <= nrequired0 && required + required0m + required1 <= space) {\n\t\t\t\t\t\tconst l = space - (required + required0m + required1);\n\t\t\t\t\t\tconst n0 = Math.floor(l / m0);\n\t\t\t\t\t\tthis.doUpdate2(value, size, 1, 0, n0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t3 <= nrequired0 &&\n\t\t\t\t\t\t3 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0m + required1m <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst l = space - (required + required0m + required1m);\n\t\t\t\t\t\tconst n0 = Math.floor((l * 0.5) / m0);\n\t\t\t\t\t\tconst n1 = Math.floor((l - n0 * m0) / m1);\n\t\t\t\t\t\tthis.doUpdate2(value, size, 1, 1, n0, n1);\n\t\t\t\t\t} else if (2 <= nrequired0 && required + required0n + required1 <= space) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 2, 0, 0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t2 <= nrequired0 &&\n\t\t\t\t\t\t3 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0n + required1m <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst l = space - (required + required0n + required1m);\n\t\t\t\t\t\tconst n1 = Math.floor(l / m1);\n\t\t\t\t\t\tthis.doUpdate2(value, size, 2, 1, 0, n1);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t2 <= nrequired0 &&\n\t\t\t\t\t\t2 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0n + required1n <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 2, 2, 0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t1 <= nrequired0 &&\n\t\t\t\t\t\t1 <= nrequired1 &&\n\t\t\t\t\t\trequired + dots0Width + dots1Width <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 3, 3, 0, 0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 4, 4, 0, 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected doUpdate2(\n\t\tvalue: number,\n\t\tsize: number,\n\t\tleft: 0 | 1 | 2 | 3 | 4,\n\t\tright: 0 | 1 | 2 | 3 | 4,\n\t\tnleft1: number,\n\t\tnright1: number\n\t): void {\n\t\tconst buttonTop = this.buttonTop;\n\t\tif (buttonTop != null) {\n\t\t\tbuttonTop.state.isEnabled = 0 < value;\n\t\t}\n\t\tconst buttonPrevious = this.buttonPrevious;\n\t\tif (buttonPrevious != null) {\n\t\t\tbuttonPrevious.state.isEnabled = 0 < value;\n\t\t}\n\n\t\tconst buttonPages0 = this.buttonPages0;\n\t\tswitch (left) {\n\t\t\tcase 0:\n\t\t\t\tthis.hideDots(this.dots0);\n\t\t\t\tthis.allocButtonPages0(value);\n\t\t\t\tfor (let i = 0, imax = buttonPages0.length; i < imax; ++i) {\n\t\t\t\t\tif (i < value) {\n\t\t\t\t\t\tthis.showPage(buttonPages0[i], i);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tthis.showDots(this.dots0, 1, value - 2 - nleft1);\n\t\t\t\tthis.allocButtonPages0(2 + nleft1);\n\t\t\t\tthis.showPage(buttonPages0[0], 0);\n\t\t\t\tfor (let i = 1, imax = buttonPages0.length - nleft1 - 1; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t\t\t}\n\t\t\t\tfor (let i = 0, imax = 1 + nleft1; i < imax; ++i) {\n\t\t\t\t\tthis.showPage(\n\t\t\t\t\t\tbuttonPages0[buttonPages0.length - imax + i],\n\t\t\t\t\t\tvalue - 1 - (imax - 1) + i\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tthis.showDots(this.dots0, 0, value - 2);\n\t\t\t\tfor (let i = 0, imax = buttonPages0.length - 1; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t\t\t}\n\t\t\t\tthis.showPage(buttonPages0[buttonPages0.length - 1], value - 1);\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tthis.showDots(this.dots0, 0, value - 1);\n\t\t\t\tfor (let i = 0, imax = buttonPages0.length; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tthis.hideDots(this.dots0);\n\t\t\t\tfor (let i = 0, imax = buttonPages0.length; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\n\t\tthis.showPage(this.page, value);\n\n\t\tconst buttonPages1 = this.buttonPages1;\n\t\tswitch (right) {\n\t\t\tcase 0:\n\t\t\t\tthis.allocButtonPages1(size - (value + 1));\n\t\t\t\tfor (let i = 0, imax = buttonPages1.length; i < imax; ++i) {\n\t\t\t\t\tconst j = value + 1 + i;\n\t\t\t\t\tif (j < size) {\n\t\t\t\t\t\tthis.showPage(buttonPages1[i], j);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.hideDots(this.dots1);\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tthis.allocButtonPages1(2 + nright1);\n\t\t\t\tfor (let i = 0, imax = 1 + nright1; i < imax; ++i) {\n\t\t\t\t\tthis.showPage(buttonPages1[i], value + 1 + i);\n\t\t\t\t}\n\t\t\t\tfor (let i = 1 + nright1, imax = buttonPages1.length - 1; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t\t\t}\n\t\t\t\tthis.showPage(buttonPages1[buttonPages1.length - 1], size - 1);\n\t\t\t\tthis.showDots(this.dots1, value + 2 + nright1, size - 2);\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tthis.showPage(buttonPages1[0], value + 1);\n\t\t\t\tfor (let i = 1, imax = buttonPages1.length; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t\t\t}\n\t\t\t\tthis.showDots(this.dots1, value + 2, size - 1);\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tfor (let i = 0, imax = buttonPages1.length; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t\t\t}\n\t\t\t\tthis.showDots(this.dots1, value + 1, size - 1);\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tfor (let i = 0, imax = buttonPages1.length; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t\t\t}\n\t\t\t\tthis.hideDots(this.dots1);\n\t\t\t\tbreak;\n\t\t}\n\n\t\tconst buttonNext = this.buttonNext;\n\t\tif (buttonNext != null) {\n\t\t\tbuttonNext.state.isEnabled = value < size - 1;\n\t\t}\n\t\tconst buttonLast = this.buttonLast;\n\t\tif (buttonLast != null) {\n\t\t\tbuttonLast.state.isEnabled = value < size - 1;\n\t\t}\n\t}\n\n\tprotected showPage(button: DImageBase<number>, index: number): void {\n\t\tbutton.text = index + 1;\n\t\tbutton.show();\n\t}\n\n\tprotected hidePage(button: DImageBase<number>): void {\n\t\tbutton.hide();\n\t}\n\n\tprotected showDots(dots: DPaginationDots, from: number, to: number): void {\n\t\tdots.show();\n\t}\n\n\tprotected hideDots(dots: DPaginationDots): void {\n\t\tdots.hide();\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DPagination\";\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"d-pagination.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-pagination.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DButton } from \"./d-button\";\nimport {\n\tDLayoutHorizontal,\n\tDLayoutHorizontalOptions,\n\tDThemeLayoutHorizontal\n} from \"./d-layout-horizontal\";\nimport { DPaginationDots } from \"./d-pagination-dots\";\nimport { DPaginationButtonLast, DPaginationButtonLastOptions } from \"./d-pagination-button-last\";\nimport { DPaginationButtonNext, DPaginationButtonNextOptions } from \"./d-pagination-button-next\";\nimport { DPaginationButtonPage, DPaginationButtonPageOptions } from \"./d-pagination-button-page\";\nimport {\n\tDPaginationButtonPrevious,\n\tDPaginationButtonPreviousOptions\n} from \"./d-pagination-button-previous\";\nimport { DPaginationButtonTop, DPaginationButtonTopOptions } from \"./d-pagination-button-top\";\nimport { isNumber } from \"./util/is-number\";\nimport { DPaginationPage, DPaginationPageOptions } from \"./d-pagination-page\";\nimport { DLayoutSpace, DLayoutSpaceOptions } from \"./d-layout-space\";\nimport { DImageBase } from \"./d-image-base\";\nimport { DApplications } from \"./d-applications\";\n\nexport interface DPaginationButtonOptions {\n\t/**\n\t * {@link DPagination} top button options.\n\t */\n\ttop?: DPaginationButtonTopOptions | boolean | null;\n\n\t/**\n\t * {@link DPagination} previous button options.\n\t */\n\tprevious?: DPaginationButtonPreviousOptions | boolean | null;\n\n\t/**\n\t * {@link DPagination} page button options.\n\t */\n\tpage?: DPaginationButtonPageOptions;\n\n\t/**\n\t * {@link DPagination} next button options.\n\t */\n\tnext?: DPaginationButtonNextOptions | boolean | null;\n\n\t/**\n\t * {@link DPagination} last button options.\n\t */\n\tlast?: DPaginationButtonLastOptions | boolean | null;\n\n\t/**\n\t * A space between page buttons and next / previous buttons.\n\t */\n\tspace?: DLayoutSpaceOptions | boolean | number | null;\n}\n\nexport interface DPaginationOptions<THEME extends DThemePagination>\n\textends DLayoutHorizontalOptions<THEME> {\n\t/**\n\t * An index number of a selected page.\n\t */\n\tvalue?: number;\n\n\t/**\n\t * An index number of a selected page.\n\t *\n\t * @deprecated in favor of {@link value}.\n\t */\n\tselected?: number;\n\n\t/**\n\t * A total number of pages.\n\t */\n\tsize?: number;\n\n\t/**\n\t * A total number of pages.\n\t *\n\t * @deprecated in favor of {@link size};\n\t */\n\ttotal?: number;\n\n\t/**\n\t * {@link DPagination} button options.\n\t */\n\tbutton?: DPaginationButtonOptions;\n\n\t/**\n\t * {@link DPagination} page options.\n\t */\n\tpage?: DPaginationPageOptions;\n}\n\nexport interface DThemePagination extends DThemeLayoutHorizontal {\n\tgetButtonSpace(): number;\n}\n\nexport class DPagination<\n\tTHEME extends DThemePagination = DThemePagination,\n\tOPTIONS extends DPaginationOptions<THEME> = DPaginationOptions<THEME>\n> extends DLayoutHorizontal<THEME, OPTIONS> {\n\tprotected _size: number;\n\tprotected _value: number;\n\n\tprotected _buttonTop?: DButton<string> | null;\n\tprotected _buttonPrevious?: DButton<string> | null;\n\tprotected _spaceLeft?: DLayoutSpace | null;\n\tprotected _dots0?: DPaginationDots;\n\tprotected _buttonPages0?: DButton<number>[];\n\tprotected _page?: DPaginationPage;\n\tprotected _buttonPages1?: DButton<number>[];\n\tprotected _dots1?: DPaginationDots;\n\tprotected _spaceRight?: DLayoutSpace | null;\n\tprotected _buttonNext?: DButton<string> | null;\n\tprotected _buttonLast?: DButton<string> | null;\n\n\tconstructor(options?: OPTIONS) {\n\t\tsuper(options);\n\n\t\tif (options != null) {\n\t\t\tthis._size = options.size ?? options.total ?? 10;\n\t\t\tthis._value = options.value ?? options.selected ?? 0;\n\t\t} else {\n\t\t\tthis._size = 10;\n\t\t\tthis._value = 0;\n\t\t}\n\n\t\tconst buttonTop = this.buttonTop;\n\t\tif (buttonTop != null) {\n\t\t\tthis.addChild(buttonTop);\n\t\t}\n\t\tconst buttonPrevious = this.buttonPrevious;\n\t\tif (buttonPrevious != null) {\n\t\t\tthis.addChild(buttonPrevious);\n\t\t}\n\t\tconst spaceLeft = this.spaceLeft;\n\t\tif (spaceLeft != null) {\n\t\t\tthis.addChild(spaceLeft);\n\t\t}\n\t\tconst buttonPages0 = this.buttonPages0;\n\t\tconst buttonPages0Length = buttonPages0.length;\n\t\tthis.addChild(buttonPages0[0]);\n\t\tthis.addChild(this.dots0);\n\t\tfor (let i = 1; i < buttonPages0Length; ++i) {\n\t\t\tthis.addChild(buttonPages0[i]);\n\t\t}\n\t\tthis.addChild(this.page);\n\t\tconst buttonPages1 = this.buttonPages1;\n\t\tconst buttonPages1Length = buttonPages1.length;\n\t\tfor (let i = 0, imax = buttonPages1Length - 1; i < imax; ++i) {\n\t\t\tthis.addChild(buttonPages1[i]);\n\t\t}\n\t\tthis.addChild(this.dots1);\n\t\tthis.addChild(buttonPages1[buttonPages1Length - 1]);\n\t\tconst spaceRight = this.spaceRight;\n\t\tif (spaceRight != null) {\n\t\t\tthis.addChild(spaceRight);\n\t\t}\n\t\tconst buttonNext = this.buttonNext;\n\t\tif (buttonNext != null) {\n\t\t\tthis.addChild(buttonNext);\n\t\t}\n\t\tconst buttonLast = this.buttonLast;\n\t\tif (buttonLast != null) {\n\t\t\tthis.addChild(buttonLast);\n\t\t}\n\t}\n\n\t/**\n\t * Sets a value that is an index of a current page.\n\t *\n\t * @param value a value that is an index of a page\n\t */\n\tset value(value: number) {\n\t\tif (0 <= value && value < this._size && this._value !== value) {\n\t\t\tthis._value = value;\n\t\t\tthis.toDirty();\n\t\t\tDApplications.update(this);\n\t\t}\n\t}\n\n\t/**\n\t * Returns a value that is an index of a current page.\n\t *\n\t * @returns a value that is an index of a selected page.\n\t */\n\tget value(): number {\n\t\treturn this._value;\n\t}\n\n\t/**\n\t * Selects a page.\n\t *\n\t * @param index an index of a page\n\t * @deprecated in favor of {@link value}.\n\t */\n\tset selected(index: number) {\n\t\tthis.value = index;\n\t}\n\n\t/**\n\t * Returns an index of the selected page.\n\t *\n\t * @returns an index of the selected page.\n\t * @deprecated in favor of {@link value}.\n\t */\n\tget selected(): number {\n\t\treturn this.value;\n\t}\n\n\t/**\n\t * Sets a number of total pages.\n\t *\n\t * @param size a number of pages\n\t */\n\tset size(size: number) {\n\t\tif (0 <= size && this._size !== size) {\n\t\t\tthis._size = size;\n\t\t\tif (size === 0) {\n\t\t\t\tthis._value = -1;\n\t\t\t} else {\n\t\t\t\tthis._value = Math.max(0, Math.min(this._size - 1, this._value));\n\t\t\t}\n\t\t\tthis.toDirty();\n\t\t\tDApplications.update(this);\n\t\t}\n\t}\n\n\t/**\n\t * Returns a number of total pages.\n\t *\n\t * @returns a number of total pages.\n\t */\n\tget size(): number {\n\t\treturn this._size;\n\t}\n\n\t/**\n\t * Sets a number of total pages.\n\t *\n\t * @param total a number of pages\n\t * @deprecated in favor of {@link size}\n\t */\n\tset total(total: number) {\n\t\tthis.size = total;\n\t}\n\n\t/**\n\t * Returns a number of total pages.\n\t *\n\t * @returns a number of total pages.\n\t * @deprecated in favor of {@link size}\n\t */\n\tget total(): number {\n\t\treturn this.size;\n\t}\n\n\tprotected get dots0(): DPaginationDots {\n\t\tlet result = this._dots0;\n\t\tif (result == null) {\n\t\t\tresult = this.newDots();\n\t\t\tthis._dots0 = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected get dots1(): DPaginationDots {\n\t\tlet result = this._dots1;\n\t\tif (result == null) {\n\t\t\tresult = this.newDots();\n\t\t\tthis._dots1 = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newDots(): DPaginationDots {\n\t\treturn new DPaginationDots();\n\t}\n\n\tprotected get buttonLast(): DButton<string> | null {\n\t\tlet result = this._buttonLast;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newButtonLast();\n\t\t\tthis._buttonLast = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonLast(): DButton<string> | null {\n\t\tconst last = this._options?.button?.last;\n\t\tif (last !== null && last !== false && last !== undefined) {\n\t\t\tconst result = new DPaginationButtonLast(last !== true ? last : undefined);\n\t\t\tresult.on(\"active\", () => {\n\t\t\t\tthis.onButtonLastActive();\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onButtonLastActive(): void {\n\t\tthis.goToLast();\n\t}\n\n\t/**\n\t * Goes to the last page.\n\t * Unlike {@link value}, this method emits the change event if silently is not true.\n\t *\n\t * @param silently true to suppress the change event\n\t * @returns true if succeeded.\n\t */\n\tgoToLast(silently?: boolean): boolean {\n\t\treturn this.goTo(this._size - 1, silently);\n\t}\n\n\t/**\n\t * Goes to the given page.\n\t * Unlike {@link value}, this method emits the change event if silently is not true.\n\t *\n\t * @param index a page index\n\t * @param silently true to suppress the change event\n\t * @returns this\n\t */\n\tgoTo(index: number, silently?: boolean): boolean {\n\t\tif (0 <= index && index < this._size && this._value !== index) {\n\t\t\tconst oldIndex = this._value;\n\t\t\tthis._value = index;\n\t\t\tif (silently !== true) {\n\t\t\t\tthis.emit(\"change\", index, oldIndex, this);\n\t\t\t}\n\t\t\tthis.toDirty();\n\t\t\tDApplications.update(this);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected get buttonNext(): DButton<string> | null {\n\t\tlet result = this._buttonNext;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newButtonNext();\n\t\t\tthis._buttonNext = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonNext(): DButton<string> | null {\n\t\tconst next = this._options?.button?.next;\n\t\tif (next !== null && next !== false) {\n\t\t\tconst result = new DPaginationButtonNext(next !== true ? next : undefined);\n\t\t\tresult.on(\"active\", (): void => {\n\t\t\t\tthis.onButtonNextActive();\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onButtonNextActive(): void {\n\t\tthis.goToNext();\n\t}\n\n\t/**\n\t * Goes to the next page.\n\t * Unlike {@link value}, this method emits the change event if silently is not true.\n\t *\n\t * @param silently true to suppress the change event\n\t * @returns true if succeeded.\n\t */\n\tgoToNext(silently?: boolean): boolean {\n\t\treturn this.goTo(this._value + 1, silently);\n\t}\n\n\tprotected get buttonPrevious(): DButton<string> | null {\n\t\tlet result = this._buttonPrevious;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newButtonPrevious();\n\t\t\tthis._buttonPrevious = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonPrevious(): DButton<string> | null {\n\t\tconst previous = this._options?.button?.previous;\n\t\tif (previous !== null && previous !== false) {\n\t\t\tconst result = new DPaginationButtonPrevious(previous !== true ? previous : undefined);\n\t\t\tresult.on(\"active\", (): void => {\n\t\t\t\tthis.onButtonPreviousActive();\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onButtonPreviousActive(): void {\n\t\tthis.goToPrevious();\n\t}\n\n\t/**\n\t * Goes to the previous page.\n\t * Unlike {@link value}, this method emits the change event if silently is not true.\n\t *\n\t * @param silently true to suppress the change event\n\t * @returns true if succeeded.\n\t */\n\tgoToPrevious(silently?: boolean): boolean {\n\t\treturn this.goTo(this._value - 1, silently);\n\t}\n\n\tprotected get buttonTop(): DButton<string> | null {\n\t\tlet result = this._buttonTop;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newButtonTop();\n\t\t\tthis._buttonTop = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonTop(): DButton<string> | null {\n\t\tconst top = this._options?.button?.top;\n\t\tif (top !== null && top !== false && top !== undefined) {\n\t\t\tconst result = new DPaginationButtonTop(top !== true ? top : undefined);\n\t\t\tresult.on(\"active\", (): void => {\n\t\t\t\tthis.onButtonTopActive();\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onButtonTopActive(): void {\n\t\tthis.goToTop();\n\t}\n\n\t/**\n\t * Goes to the top page.\n\t * Unlike {@link value}, this method emits the change event if silently is not true.\n\t *\n\t * @param silently true to suppress the change event\n\t * @returns true if succeeded.\n\t */\n\tgoToTop(silently?: boolean): boolean {\n\t\treturn this.goTo(0, silently);\n\t}\n\n\tprotected newButtonPage(): DButton<number> {\n\t\tconst result = new DPaginationButtonPage(this._options?.button?.page);\n\t\tresult.on(\"active\", (): void => {\n\t\t\tthis.onButtonPageActive(result);\n\t\t});\n\t\treturn result;\n\t}\n\n\tprotected get buttonPages0(): DButton<number>[] {\n\t\tlet result = this._buttonPages0;\n\t\tif (result == null) {\n\t\t\tresult = this.newButtonPages0();\n\t\t\tthis._buttonPages0 = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonPages0(): DButton<number>[] {\n\t\treturn [\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage()\n\t\t];\n\t}\n\n\tprotected allocButtonPages0(size: number): void {\n\t\tconst buttonPages0 = this.buttonPages0;\n\t\tconst buttonPages0Length = buttonPages0.length;\n\t\tconst index = this.getChildIndex(buttonPages0[buttonPages0Length - 1]) + 1;\n\t\tfor (let i = 0, imax = size - buttonPages0Length; i < imax; ++i) {\n\t\t\tconst buttonPage = this.newButtonPage();\n\t\t\tthis.addChildAt(buttonPage, index + i);\n\t\t\tbuttonPages0.push(buttonPage);\n\t\t}\n\t}\n\n\tprotected get buttonPages1(): DButton<number>[] {\n\t\tlet result = this._buttonPages1;\n\t\tif (result == null) {\n\t\t\tresult = this.newButtonPages1();\n\t\t\tthis._buttonPages1 = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonPages1(): DButton<number>[] {\n\t\treturn [\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage()\n\t\t];\n\t}\n\n\tprotected allocButtonPages1(size: number): void {\n\t\tconst buttonPages1 = this.buttonPages1;\n\t\tconst buttonPages1Length = buttonPages1.length;\n\t\tconst index = this.getChildIndex(buttonPages1[0]);\n\t\tfor (let i = 0, imax = size - buttonPages1Length; i < imax; ++i) {\n\t\t\tconst buttonPage = this.newButtonPage();\n\t\t\tthis.addChildAt(buttonPage, index);\n\t\t\tbuttonPages1.unshift(buttonPage);\n\t\t}\n\t}\n\n\tprotected get page(): DPaginationPage {\n\t\tlet result = this._page;\n\t\tif (result == null) {\n\t\t\tresult = this.newPage();\n\t\t\tthis._page = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newPage(): DPaginationPage {\n\t\treturn new DPaginationPage(this._options?.page);\n\t}\n\n\tprotected onButtonPageActive(button: DButton<number>): void {\n\t\tconst text = button.text.value;\n\t\tif (isNumber(text)) {\n\t\t\tthis.goTo(text - 1);\n\t\t\tif (button.state.isFocused) {\n\t\t\t\tbutton.state.isHovered = false;\n\t\t\t\tthis.page.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected get spaceLeft(): DLayoutSpace | null {\n\t\tlet result = this._spaceLeft;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newSpaceLeft();\n\t\t\tthis._spaceLeft = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newSpaceLeft(): DLayoutSpace | null {\n\t\tif (this.buttonTop != null || this.buttonPrevious != null) {\n\t\t\treturn this.newSpace();\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected get spaceRight(): DLayoutSpace | null {\n\t\tlet result = this._spaceRight;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newSpaceRight();\n\t\t\tthis._spaceRight = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newSpaceRight(): DLayoutSpace | null {\n\t\tif (this.buttonLast != null || this.buttonNext != null) {\n\t\t\treturn this.newSpace();\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected newSpace(): DLayoutSpace | null {\n\t\tconst space = this._options?.button?.space;\n\t\tif (space !== null && space !== false) {\n\t\t\tif (space === true || space === undefined) {\n\t\t\t\treturn new DLayoutSpace({\n\t\t\t\t\tweight: 1\n\t\t\t\t});\n\t\t\t} else if (isNumber(space)) {\n\t\t\t\treturn new DLayoutSpace({\n\t\t\t\t\twidth: space\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn new DLayoutSpace(space);\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onReflow(): void {\n\t\tthis.update();\n\t\tsuper.onReflow();\n\t}\n\n\tprotected update(): void {\n\t\tconst size = this._size;\n\t\tconst value = this._value;\n\t\tif (size <= 0) {\n\t\t\tthis.doUpdate0(value, size);\n\t\t} else {\n\t\t\tif (this._auto.width.isOn) {\n\t\t\t\tthis.doUpdate2(value, size, 0, 0, 0, 0);\n\t\t\t} else {\n\t\t\t\tthis.doUpdate1(value, size);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected doUpdate0(value: number, size: number): void {\n\t\tconst buttonTop = this.buttonTop;\n\t\tif (buttonTop != null) {\n\t\t\tbuttonTop.state.isEnabled = false;\n\t\t}\n\t\tconst buttonPrevious = this.buttonPrevious;\n\t\tif (buttonPrevious != null) {\n\t\t\tbuttonPrevious.state.isEnabled = false;\n\t\t}\n\n\t\tthis.hideDots(this.dots0);\n\n\t\tconst buttonPages0 = this.buttonPages0;\n\t\tfor (let i = 0, imax = buttonPages0.length; i < imax; ++i) {\n\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t}\n\n\t\tthis.hidePage(this.page);\n\n\t\tconst buttonPages1 = this.buttonPages1;\n\t\tfor (let i = 0, imax = buttonPages1.length; i < imax; ++i) {\n\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t}\n\n\t\tthis.hideDots(this.dots1);\n\n\t\tconst buttonNext = this.buttonNext;\n\t\tif (buttonNext != null) {\n\t\t\tbuttonNext.state.isEnabled = false;\n\t\t}\n\t\tconst buttonLast = this.buttonLast;\n\t\tif (buttonLast) {\n\t\t\tbuttonLast.state.isEnabled = false;\n\t\t}\n\t}\n\n\tprotected doUpdate1(value: number, size: number): void {\n\t\tlet required = 0;\n\t\tlet nrequired = 0;\n\n\t\tconst buttonTop = this.buttonTop;\n\t\tif (buttonTop != null) {\n\t\t\trequired += buttonTop.width;\n\t\t\tnrequired += 1;\n\t\t}\n\t\tconst buttonPrevious = this.buttonPrevious;\n\t\tif (buttonPrevious != null) {\n\t\t\trequired += buttonPrevious.width;\n\t\t\tnrequired += 1;\n\t\t}\n\n\t\tconst spaceLeft = this.spaceLeft;\n\t\tif (spaceLeft != null) {\n\t\t\tif (spaceLeft.weight < 0) {\n\t\t\t\trequired += spaceLeft.width;\n\t\t\t}\n\t\t\tnrequired += 1;\n\t\t}\n\n\t\tconst page = this.page;\n\t\trequired += page.width;\n\t\tnrequired += 1;\n\n\t\tconst spaceRight = this.spaceRight;\n\t\tif (spaceRight != null) {\n\t\t\tif (spaceRight.weight < 0) {\n\t\t\t\trequired += spaceRight.width;\n\t\t\t}\n\t\t\tnrequired += 1;\n\t\t}\n\n\t\tconst buttonNext = this.buttonNext;\n\t\tif (buttonNext != null) {\n\t\t\trequired += buttonNext.width;\n\t\t\tnrequired += 1;\n\t\t}\n\t\tconst buttonLast = this.buttonLast;\n\t\tif (buttonLast) {\n\t\t\trequired += buttonLast.width;\n\t\t\tnrequired += 1;\n\t\t}\n\n\t\tconst marginHorizontal = this._margin.horizontal;\n\t\tif (2 <= nrequired) {\n\t\t\trequired += (nrequired - 1) * marginHorizontal;\n\t\t}\n\n\t\tconst padding = this.padding;\n\t\tconst space = this.width - (padding.getLeft() + padding.getRight());\n\t\tif (space <= required) {\n\t\t\tthis.doUpdate2(value, size, 4, 4, 0, 0);\n\t\t} else {\n\t\t\tconst buttonPages0 = this.buttonPages0;\n\t\t\tconst buttonPage0Width = buttonPages0[0].width;\n\t\t\tconst nrequired0 = value;\n\t\t\tconst required0 = nrequired0 * (buttonPage0Width + marginHorizontal);\n\n\t\t\tconst buttonPages1 = this.buttonPages1;\n\t\t\tconst buttonPage1Width = buttonPages1[0].width;\n\t\t\tconst nrequired1 = size - (value + 1);\n\t\t\tconst required1 = nrequired1 * (buttonPage1Width + marginHorizontal);\n\n\t\t\tif (required + required0 + required1 <= space) {\n\t\t\t\tthis.doUpdate2(value, size, 0, 0, 0, 0);\n\t\t\t} else {\n\t\t\t\tconst dots1 = this.dots1;\n\t\t\t\tconst dots1Width = dots1.width;\n\t\t\t\tconst dots0 = this.dots0;\n\t\t\t\tconst dots0Width = dots0.width;\n\t\t\t\tconst m0 = marginHorizontal + buttonPage0Width;\n\t\t\t\tconst m1 = marginHorizontal + buttonPage1Width;\n\t\t\t\tconst required0n = dots0Width + m0;\n\t\t\t\tconst required1n = dots1Width + m1;\n\t\t\t\tconst required0m = required0n + m0;\n\t\t\t\tconst required1m = required1n + m1;\n\t\t\t\tif (required0 <= required1) {\n\t\t\t\t\tif (3 <= nrequired1 && required + required0 + required1m <= space) {\n\t\t\t\t\t\tconst l = space - (required + required0 + required1m);\n\t\t\t\t\t\tconst n1 = Math.floor(l / m1);\n\t\t\t\t\t\tthis.doUpdate2(value, size, 0, 1, 0, n1);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t3 <= nrequired0 &&\n\t\t\t\t\t\t3 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0m + required1m <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst l = space - (required + required0m + required1m);\n\t\t\t\t\t\tconst n1 = Math.floor((l * 0.5) / m1);\n\t\t\t\t\t\tconst n0 = Math.floor((l - n1 * m1) / m0);\n\t\t\t\t\t\tthis.doUpdate2(value, size, 1, 1, n0, n1);\n\t\t\t\t\t} else if (2 <= nrequired1 && required + required0 + required1n <= space) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 0, 2, 0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t3 <= nrequired0 &&\n\t\t\t\t\t\t2 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0m + required1n <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst l = space - (required + required0m + required1n);\n\t\t\t\t\t\tconst n0 = Math.floor(l / m0);\n\t\t\t\t\t\tthis.doUpdate2(value, size, 1, 2, n0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t2 <= nrequired0 &&\n\t\t\t\t\t\t2 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0n + required1n <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 2, 2, 0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t1 <= nrequired0 &&\n\t\t\t\t\t\t1 <= nrequired1 &&\n\t\t\t\t\t\trequired + dots0Width + dots1Width <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 3, 3, 0, 0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 4, 4, 0, 0);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (3 <= nrequired0 && required + required0m + required1 <= space) {\n\t\t\t\t\t\tconst l = space - (required + required0m + required1);\n\t\t\t\t\t\tconst n0 = Math.floor(l / m0);\n\t\t\t\t\t\tthis.doUpdate2(value, size, 1, 0, n0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t3 <= nrequired0 &&\n\t\t\t\t\t\t3 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0m + required1m <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst l = space - (required + required0m + required1m);\n\t\t\t\t\t\tconst n0 = Math.floor((l * 0.5) / m0);\n\t\t\t\t\t\tconst n1 = Math.floor((l - n0 * m0) / m1);\n\t\t\t\t\t\tthis.doUpdate2(value, size, 1, 1, n0, n1);\n\t\t\t\t\t} else if (2 <= nrequired0 && required + required0n + required1 <= space) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 2, 0, 0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t2 <= nrequired0 &&\n\t\t\t\t\t\t3 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0n + required1m <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst l = space - (required + required0n + required1m);\n\t\t\t\t\t\tconst n1 = Math.floor(l / m1);\n\t\t\t\t\t\tthis.doUpdate2(value, size, 2, 1, 0, n1);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t2 <= nrequired0 &&\n\t\t\t\t\t\t2 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0n + required1n <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 2, 2, 0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t1 <= nrequired0 &&\n\t\t\t\t\t\t1 <= nrequired1 &&\n\t\t\t\t\t\trequired + dots0Width + dots1Width <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 3, 3, 0, 0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 4, 4, 0, 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected doUpdate2(\n\t\tvalue: number,\n\t\tsize: number,\n\t\tleft: 0 | 1 | 2 | 3 | 4,\n\t\tright: 0 | 1 | 2 | 3 | 4,\n\t\tnleft1: number,\n\t\tnright1: number\n\t): void {\n\t\tconst buttonTop = this.buttonTop;\n\t\tif (buttonTop != null) {\n\t\t\tbuttonTop.state.isEnabled = 0 < value;\n\t\t}\n\t\tconst buttonPrevious = this.buttonPrevious;\n\t\tif (buttonPrevious != null) {\n\t\t\tbuttonPrevious.state.isEnabled = 0 < value;\n\t\t}\n\n\t\tconst buttonPages0 = this.buttonPages0;\n\t\tswitch (left) {\n\t\t\tcase 0:\n\t\t\t\tthis.hideDots(this.dots0);\n\t\t\t\tthis.allocButtonPages0(value);\n\t\t\t\tfor (let i = 0, imax = buttonPages0.length; i < imax; ++i) {\n\t\t\t\t\tif (i < value) {\n\t\t\t\t\t\tthis.showPage(buttonPages0[i], i);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tthis.showDots(this.dots0, 1, value - 2 - nleft1);\n\t\t\t\tthis.allocButtonPages0(2 + nleft1);\n\t\t\t\tthis.showPage(buttonPages0[0], 0);\n\t\t\t\tfor (let i = 1, imax = buttonPages0.length - nleft1 - 1; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t\t\t}\n\t\t\t\tfor (let i = 0, imax = 1 + nleft1; i < imax; ++i) {\n\t\t\t\t\tthis.showPage(\n\t\t\t\t\t\tbuttonPages0[buttonPages0.length - imax + i],\n\t\t\t\t\t\tvalue - 1 - (imax - 1) + i\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tthis.showDots(this.dots0, 0, value - 2);\n\t\t\t\tfor (let i = 0, imax = buttonPages0.length - 1; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t\t\t}\n\t\t\t\tthis.showPage(buttonPages0[buttonPages0.length - 1], value - 1);\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tthis.showDots(this.dots0, 0, value - 1);\n\t\t\t\tfor (let i = 0, imax = buttonPages0.length; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tthis.hideDots(this.dots0);\n\t\t\t\tfor (let i = 0, imax = buttonPages0.length; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\n\t\tthis.showPage(this.page, value);\n\n\t\tconst buttonPages1 = this.buttonPages1;\n\t\tswitch (right) {\n\t\t\tcase 0:\n\t\t\t\tthis.allocButtonPages1(size - (value + 1));\n\t\t\t\tfor (let i = 0, imax = buttonPages1.length; i < imax; ++i) {\n\t\t\t\t\tconst j = value + 1 + i;\n\t\t\t\t\tif (j < size) {\n\t\t\t\t\t\tthis.showPage(buttonPages1[i], j);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.hideDots(this.dots1);\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tthis.allocButtonPages1(2 + nright1);\n\t\t\t\tfor (let i = 0, imax = 1 + nright1; i < imax; ++i) {\n\t\t\t\t\tthis.showPage(buttonPages1[i], value + 1 + i);\n\t\t\t\t}\n\t\t\t\tfor (let i = 1 + nright1, imax = buttonPages1.length - 1; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t\t\t}\n\t\t\t\tthis.showPage(buttonPages1[buttonPages1.length - 1], size - 1);\n\t\t\t\tthis.showDots(this.dots1, value + 2 + nright1, size - 2);\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tthis.showPage(buttonPages1[0], value + 1);\n\t\t\t\tfor (let i = 1, imax = buttonPages1.length; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t\t\t}\n\t\t\t\tthis.showDots(this.dots1, value + 2, size - 1);\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tfor (let i = 0, imax = buttonPages1.length; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t\t\t}\n\t\t\t\tthis.showDots(this.dots1, value + 1, size - 1);\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tfor (let i = 0, imax = buttonPages1.length; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t\t\t}\n\t\t\t\tthis.hideDots(this.dots1);\n\t\t\t\tbreak;\n\t\t}\n\n\t\tconst buttonNext = this.buttonNext;\n\t\tif (buttonNext != null) {\n\t\t\tbuttonNext.state.isEnabled = value < size - 1;\n\t\t}\n\t\tconst buttonLast = this.buttonLast;\n\t\tif (buttonLast != null) {\n\t\t\tbuttonLast.state.isEnabled = value < size - 1;\n\t\t}\n\t}\n\n\tprotected showPage(button: DImageBase<number>, index: number): void {\n\t\tbutton.text = index + 1;\n\t\tbutton.show();\n\t}\n\n\tprotected hidePage(button: DImageBase<number>): void {\n\t\tbutton.hide();\n\t}\n\n\tprotected showDots(dots: DPaginationDots, from: number, to: number): void {\n\t\tdots.show();\n\t}\n\n\tprotected hideDots(dots: DPaginationDots): void {\n\t\tdots.hide();\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DPagination\";\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-table-body-cell.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-body-cell.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { InteractionEvent, Point } from \"pixi.js\";\nimport { DBase } from \"./d-base\";\nimport { DTableColumn } from \"./d-table-column\";\nimport { DTableDataSupplimental } from \"./d-table-data\";\n\nexport type DTableBodyCellOnChange<ROW, VALUE, EMITTER = any> = (\n\tnewValue: VALUE,\n\toldValue: VALUE,\n\trow: ROW,\n\trowIndex: number,\n\tcolumnIndex: number,\n\tcolumn: DTableColumn<ROW, VALUE>,\n\temitter: EMITTER\n) => void;\n\nexport interface DTableBodyCell<ROW, VALUE> extends DBase {\n\t/**\n\t * A row data if exists.\n\t * Otherwise, Undefined.\n\t *\n\t * @returns a row data or undefined.\n\t */\n\treadonly row?: ROW;\n\n\t/**\n\t * A row index if a row data exists.\n\t * Otherise, -1.\n\t *\n\t * @returns a row index or -1.\n\t */\n\treadonly rowIndex: number;\n\n\t/**\n\t * A column index.\n\t */\n\treadonly columnIndex: number;\n\n\t/**\n\t * A column.\n\t */\n\treadonly column: DTableColumn<ROW, VALUE>;\n\n\tset(\n\t\tvalue: unknown,\n\t\trow: ROW,\n\t\tsupplimental: DTableDataSupplimental | null,\n\t\trowIndex: number,\n\t\tcolumnIndex: number,\n\t\tforcibly?: boolean\n\t): void;\n\tunset(): void;\n\n\t/**\n\t * Called when the selection type is not {@link DTableDataSelectionType}'s NONE\n\t * and a cell is clicked. Returning true will prevent the row selection.\n\t * Otherwise, a clicked row will be selected.\n\t *\n\t * @param e\n\t * @param local\n\t * @return true to prevent the row selection\n\t */\n\tonRowSelect?(e: InteractionEvent, local: Point): boolean;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"d-table-body-cell.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-body-cell.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { InteractionEvent, Point } from \"pixi.js\";\nimport { DBase } from \"./d-base\";\nimport { DTableColumn } from \"./d-table-column\";\nimport { DTableDataSupplimental } from \"./d-table-data\";\n\nexport type DTableBodyCellOnChange<ROW, VALUE = unknown, EMITTER = any> = (\n\tnewValue: VALUE,\n\toldValue: VALUE,\n\trow: ROW,\n\trowIndex: number,\n\tcolumnIndex: number,\n\tcolumn: DTableColumn<ROW, VALUE>,\n\temitter: EMITTER\n) => void;\n\nexport interface DTableBodyCell<ROW, VALUE = unknown> extends DBase {\n\t/**\n\t * A row data if exists.\n\t * Otherwise, Undefined.\n\t *\n\t * @returns a row data or undefined.\n\t */\n\treadonly row?: ROW;\n\n\t/**\n\t * A row index if a row data exists.\n\t * Otherise, -1.\n\t *\n\t * @returns a row index or -1.\n\t */\n\treadonly rowIndex: number;\n\n\t/**\n\t * A column index.\n\t */\n\treadonly columnIndex: number;\n\n\t/**\n\t * A column.\n\t */\n\treadonly column: DTableColumn<ROW, VALUE>;\n\n\tset(\n\t\tvalue: unknown,\n\t\trow: ROW,\n\t\tsupplimental: DTableDataSupplimental | null,\n\t\trowIndex: number,\n\t\tcolumnIndex: number,\n\t\tforcibly?: boolean\n\t): void;\n\tunset(): void;\n\n\t/**\n\t * Called when the selection type is not {@link DTableDataSelectionType}'s NONE\n\t * and a cell is clicked. Returning true will prevent the row selection.\n\t * Otherwise, a clicked row will be selected.\n\t *\n\t * @param e\n\t * @param local\n\t * @return true to prevent the row selection\n\t */\n\tonRowSelect?(e: InteractionEvent, local: Point): boolean;\n}\n"]}
|
|
@@ -34,8 +34,8 @@ import { DTableState } from "./d-table-state";
|
|
|
34
34
|
import { toMerged } from "./util/to-merged";
|
|
35
35
|
var DTableBodyRow = /** @class */ (function (_super) {
|
|
36
36
|
__extends(DTableBodyRow, _super);
|
|
37
|
-
function DTableBodyRow(onChange, isEven, columnIndexToCellOptions, options) {
|
|
38
|
-
var _this = _super.call(this, options) || this;
|
|
37
|
+
function DTableBodyRow(onChange, isEven, columnIndexToCellOptions, columns, frozen, options) {
|
|
38
|
+
var _this = _super.call(this, columns, frozen, options) || this;
|
|
39
39
|
_this._index = -1;
|
|
40
40
|
_this._onChange = onChange;
|
|
41
41
|
_this._onCellChangeBound = function (newValue, oldValue, row, rowIndex, columnIndex, column) {
|
|
@@ -43,7 +43,7 @@ var DTableBodyRow = /** @class */ (function (_super) {
|
|
|
43
43
|
};
|
|
44
44
|
_this._columnIndexToCellOptions = columnIndexToCellOptions;
|
|
45
45
|
_this.state.isAlternated = !isEven;
|
|
46
|
-
_this.initCells(
|
|
46
|
+
_this.initCells();
|
|
47
47
|
return _this;
|
|
48
48
|
}
|
|
49
49
|
DTableBodyRow.prototype.onCellChange = function (newValue, oldValue, row, rowIndex, columnIndex, column) {
|
|
@@ -187,7 +187,7 @@ var DTableBodyRow = /** @class */ (function (_super) {
|
|
|
187
187
|
DTableBodyRow.prototype.toCellOptions = function (columnIndex, column, options) {
|
|
188
188
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
189
189
|
var _p;
|
|
190
|
-
var result = toMerged(column.body, options.cell);
|
|
190
|
+
var result = toMerged(column.body, options === null || options === void 0 ? void 0 : options.cell);
|
|
191
191
|
// Weight
|
|
192
192
|
result.weight = column.weight;
|
|
193
193
|
// Width
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-table-body-row.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-body-row.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DBase } from \"./d-base\";\nimport { DBaseStateSet } from \"./d-base-state-set\";\nimport { DTableBodyCell, DTableBodyCellOnChange } from \"./d-table-body-cell\";\nimport { DTableBodyCellActionDialog } from \"./d-table-body-cell-action-dialog\";\nimport { DTableBodyCellActionMenu } from \"./d-table-body-cell-action-menu\";\nimport { DTableBodyCellActionPromise } from \"./d-table-body-cell-action-promise\";\nimport { DTableBodyCellButton } from \"./d-table-body-cell-button\";\nimport { DTableBodyCellCheck } from \"./d-table-body-cell-check\";\nimport { DTableBodyCellColor } from \"./d-table-body-cell-color\";\nimport { DTableBodyCellDate } from \"./d-table-body-cell-date\";\nimport { DTableBodyCellDatetime } from \"./d-table-body-cell-datetime\";\nimport { DTableBodyCellIndex } from \"./d-table-body-cell-index\";\nimport { DTableBodyCellInputInteger } from \"./d-table-body-cell-input-integer\";\nimport { DTableBodyCellInputReal } from \"./d-table-body-cell-input-real\";\nimport { DTableBodyCellInputText } from \"./d-table-body-cell-input-text\";\nimport { DTableBodyCellInputTextArea } from \"./d-table-body-cell-input-text-area\";\nimport { DTableBodyCellInputTree } from \"./d-table-body-cell-input-tree\";\nimport { DTableBodyCellLink } from \"./d-table-body-cell-link\";\nimport { DTableBodyCellOptions } from \"./d-table-body-cell-options\";\nimport { DTableBodyCellSelectDialog } from \"./d-table-body-cell-select-dialog\";\nimport { DTableBodyCellSelectMenu } from \"./d-table-body-cell-select-menu\";\nimport { DTableBodyCellSelectMultiple } from \"./d-table-body-cell-select-multiple\";\nimport { DTableBodyCellSelectPromise } from \"./d-table-body-cell-select-promise\";\nimport { DTableBodyCellText } from \"./d-table-body-cell-text\";\nimport { DTableBodyCellTextArea } from \"./d-table-body-cell-text-area\";\nimport { DTableBodyCellTime } from \"./d-table-body-cell-time\";\nimport { DTableBodyCellTree } from \"./d-table-body-cell-tree\";\nimport { DTableColumn } from \"./d-table-column\";\nimport { DTableColumnType } from \"./d-table-column-type\";\nimport { DTableColumnUpdate } from \"./d-table-column-update\";\nimport { DTableDataSupplimental } from \"./d-table-data\";\nimport { DTableDataSelectionType } from \"./d-table-data-selection\";\nimport { DTableRow, DTableRowOptions, DThemeTableRow } from \"./d-table-row\";\nimport { DTableState } from \"./d-table-state\";\nimport { toMerged } from \"./util/to-merged\";\n\nexport interface DTableBodyRowSelectionOptions {\n\ttype?: DTableDataSelectionType;\n}\n\nexport interface DTableBodyRowOptions<ROW, THEME extends DThemeTableBodyRow = DThemeTableBodyRow>\n\textends DTableRowOptions<ROW, DTableColumn<ROW, unknown>, THEME> {\n\theight?: number;\n\tcell?: DTableBodyCellOptions<ROW>;\n\tselection?: DTableBodyRowSelectionOptions;\n}\n\nexport interface DThemeTableBodyRow extends DThemeTableRow {}\n\nexport type DTableBodyRowOnChange<ROW, VALUE, EMITTER = any> = (\n\tnewValue: VALUE,\n\toldValue: VALUE,\n\trow: ROW,\n\trowIndex: number,\n\tcolumnIndex: number,\n\tcolumn: DTableColumn<ROW, VALUE>,\n\temitter: EMITTER\n) => void;\n\nexport class DTableBodyRow<\n\tROW,\n\tTHEME extends DThemeTableBodyRow = DThemeTableBodyRow,\n\tOPTIONS extends DTableBodyRowOptions<ROW, THEME> = DTableBodyRowOptions<ROW, THEME>\n> extends DTableRow<ROW, DTableColumn<ROW, unknown>, THEME, OPTIONS> {\n\tprotected _value?: ROW;\n\tprotected _supplimental?: DTableDataSupplimental | null;\n\tprotected _index: number;\n\tprotected _onChange: DTableBodyRowOnChange<ROW, unknown>;\n\tprotected _onCellChangeBound: DTableBodyCellOnChange<ROW, any>;\n\tprotected _columnIndexToCellOptions: Map<number, DTableBodyCellOptions<ROW>>;\n\n\tconstructor(\n\t\tonChange: DTableBodyRowOnChange<ROW, unknown>,\n\t\tisEven: boolean,\n\t\tcolumnIndexToCellOptions: Map<number, DTableBodyCellOptions<ROW>>,\n\t\toptions: OPTIONS\n\t) {\n\t\tsuper(options);\n\n\t\tthis._index = -1;\n\t\tthis._onChange = onChange;\n\t\tthis._onCellChangeBound = (\n\t\t\tnewValue,\n\t\t\toldValue,\n\t\t\trow,\n\t\t\trowIndex,\n\t\t\tcolumnIndex,\n\t\t\tcolumn\n\t\t): void => {\n\t\t\tthis.onCellChange(newValue, oldValue, row, rowIndex, columnIndex, column);\n\t\t};\n\t\tthis._columnIndexToCellOptions = columnIndexToCellOptions;\n\t\tthis.state.isAlternated = !isEven;\n\t\tthis.initCells(options, this._columns, this._frozen);\n\t}\n\n\tprotected onCellChange(\n\t\tnewValue: unknown,\n\t\toldValue: unknown,\n\t\trow: ROW,\n\t\trowIndex: number,\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, unknown>\n\t): void {\n\t\tthis.emit(\"change\", newValue, oldValue, row, rowIndex, columnIndex, this);\n\t\tif (column.update === DTableColumnUpdate.ROW) {\n\t\t\tconst value = this._value;\n\t\t\tconst supplimental = this._supplimental;\n\t\t\tconst index = this._index;\n\t\t\tif (value !== undefined && supplimental !== undefined) {\n\t\t\t\tthis.set(value, supplimental, index, true);\n\t\t\t}\n\t\t}\n\t\tthis._onChange(newValue, oldValue, row, rowIndex, columnIndex, column, this);\n\t}\n\n\tprotected newCell(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, unknown>,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\toptions: OPTIONS\n\t): DBase {\n\t\tconst onChange = this._onCellChangeBound;\n\t\tconst columnIndexToCellOptions = this._columnIndexToCellOptions;\n\t\tlet cellOptions = columnIndexToCellOptions.get(columnIndex);\n\t\tif (cellOptions == null) {\n\t\t\tcellOptions = this.toCellOptions(columnIndex, column, options);\n\t\t\tcolumnIndexToCellOptions.set(columnIndex, cellOptions);\n\t\t}\n\t\tif (column.editing.enable !== false) {\n\t\t\treturn this.newCellEditable(columnIndex, column, onChange, cellOptions);\n\t\t} else {\n\t\t\tconst cell = this.newCellUnediable(columnIndex, column, onChange, cellOptions);\n\t\t\tif (column.type !== DTableColumnType.TREE) {\n\t\t\t\tcell.state.isReadOnly = true;\n\t\t\t}\n\t\t\treturn cell;\n\t\t}\n\t}\n\n\tprotected newCellEditable(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, any>,\n\t\tonChange: DTableBodyCellOnChange<ROW, any>,\n\t\toptions: any\n\t): DBase {\n\t\tswitch (column.type) {\n\t\t\tcase DTableColumnType.INDEX:\n\t\t\t\treturn new DTableBodyCellIndex(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TEXT:\n\t\t\t\treturn new DTableBodyCellInputText(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TEXT_AREA:\n\t\t\t\treturn new DTableBodyCellInputTextArea(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TREE:\n\t\t\t\treturn new DTableBodyCellInputTree(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.INTEGER:\n\t\t\t\treturn new DTableBodyCellInputInteger(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.REAL:\n\t\t\t\treturn new DTableBodyCellInputReal(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.CHECK:\n\t\t\tcase DTableColumnType.CHECK_SINGLE:\n\t\t\t\treturn new DTableBodyCellCheck(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.COLOR:\n\t\t\t\treturn new DTableBodyCellColor(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.BUTTON:\n\t\t\t\treturn new DTableBodyCellButton(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.LINK:\n\t\t\t\treturn new DTableBodyCellLink(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.SELECT:\n\t\t\t\treturn this.newCellSelect(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.ACTION:\n\t\t\t\treturn this.newCellAction(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.DATE:\n\t\t\t\treturn new DTableBodyCellDate(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.DATETIME:\n\t\t\t\treturn new DTableBodyCellDatetime(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TIME:\n\t\t\t\treturn new DTableBodyCellTime(columnIndex, column, onChange, options);\n\t\t\tdefault:\n\t\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t}\n\t}\n\n\tprotected newCellUnediable(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, any>,\n\t\tonChange: DTableBodyCellOnChange<ROW, any>,\n\t\toptions: any\n\t): DBase {\n\t\tswitch (column.type) {\n\t\t\tcase DTableColumnType.INDEX:\n\t\t\t\treturn new DTableBodyCellIndex(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TEXT:\n\t\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TEXT_AREA:\n\t\t\t\treturn new DTableBodyCellTextArea(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TREE:\n\t\t\t\treturn new DTableBodyCellTree(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.INTEGER:\n\t\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.REAL:\n\t\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.CHECK:\n\t\t\tcase DTableColumnType.CHECK_SINGLE:\n\t\t\t\treturn new DTableBodyCellCheck(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.COLOR:\n\t\t\t\treturn new DTableBodyCellColor(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.BUTTON:\n\t\t\t\treturn new DTableBodyCellButton(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.LINK:\n\t\t\t\treturn new DTableBodyCellLink(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.SELECT:\n\t\t\t\treturn this.newCellSelect(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.ACTION:\n\t\t\t\treturn this.newCellAction(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.DATE:\n\t\t\t\treturn new DTableBodyCellDate(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.DATETIME:\n\t\t\t\treturn new DTableBodyCellDatetime(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TIME:\n\t\t\t\treturn new DTableBodyCellTime(columnIndex, column, onChange, options);\n\t\t\tdefault:\n\t\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t}\n\t}\n\n\tprotected newCellSelect(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, any>,\n\t\tonChange: DTableBodyCellOnChange<ROW, any>,\n\t\toptions: any\n\t): DBase {\n\t\tconst selecting = column.selecting;\n\t\tif (selecting.menu != null) {\n\t\t\treturn new DTableBodyCellSelectMenu(columnIndex, column, onChange, options);\n\t\t} else if (selecting.multiple != null) {\n\t\t\treturn new DTableBodyCellSelectMultiple(columnIndex, column, onChange, options);\n\t\t} else if (selecting.dialog != null) {\n\t\t\treturn new DTableBodyCellSelectDialog(columnIndex, column, onChange, options);\n\t\t} else if (selecting.promise != null) {\n\t\t\treturn new DTableBodyCellSelectPromise(columnIndex, column, onChange, options);\n\t\t} else {\n\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t}\n\t}\n\n\tprotected newCellAction(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, any>,\n\t\tonChange: DTableBodyCellOnChange<ROW, any>,\n\t\toptions: any\n\t): DBase {\n\t\tconst selecting = column.selecting;\n\t\tif (selecting.menu != null) {\n\t\t\treturn new DTableBodyCellActionMenu(columnIndex, column, onChange, options);\n\t\t} else if (selecting.dialog != null) {\n\t\t\treturn new DTableBodyCellActionDialog(columnIndex, column, onChange, options);\n\t\t} else if (selecting.promise != null) {\n\t\t\treturn new DTableBodyCellActionPromise(columnIndex, column, onChange, options);\n\t\t} else {\n\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t}\n\t}\n\n\tprotected toCellOptions(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, unknown>,\n\t\toptions: OPTIONS\n\t): DTableBodyCellOptions<ROW> {\n\t\tconst result = toMerged(column.body, options.cell);\n\n\t\t// Weight\n\t\tresult.weight = column.weight;\n\n\t\t// Width\n\t\tresult.width = column.width;\n\n\t\t// State\n\t\tresult.state ??= column.state.initial;\n\n\t\t// Text formatter\n\t\tconst columnFormatter = column.formatter;\n\t\tif (columnFormatter != null) {\n\t\t\tconst text = (result.text ??= {});\n\t\t\ttext.formatter ??= columnFormatter;\n\t\t}\n\n\t\t// Text align horizontal\n\t\tconst columnAlign = column.align;\n\t\tif (columnAlign != null) {\n\t\t\tconst text = (result.text ??= {});\n\t\t\tconst textAlign = (text.align ??= {});\n\t\t\ttextAlign.horizontal ??= columnAlign;\n\t\t}\n\n\t\t// Editing\n\t\tconst columnEditing = column.editing;\n\t\tif (columnEditing.enable !== false) {\n\t\t\tconst editing = ((result as any).editing ??= {});\n\t\t\tediting.formatter ??= columnEditing.formatter;\n\t\t\tediting.unformatter ??= columnEditing.unformatter;\n\t\t\tediting.validator ??= columnEditing.validator;\n\t\t}\n\n\t\t// Link\n\t\tconst columnLink = column.link;\n\t\tif (columnLink !== undefined) {\n\t\t\t(result as any).link = columnLink;\n\t\t}\n\n\t\t// Selecting\n\t\tconst columnSelecting = column.selecting;\n\t\tconst columnSelectingMenu = columnSelecting.menu ?? columnSelecting.multiple;\n\t\tif (columnSelectingMenu !== undefined) {\n\t\t\t(result as any).menu = columnSelectingMenu;\n\t\t}\n\n\t\tconst selectionType = options?.selection?.type ?? DTableDataSelectionType.NONE;\n\t\tif (selectionType !== DTableDataSelectionType.NONE) {\n\t\t\t(result as any).when = \"DOUBLE_CLICKED\";\n\t\t\tresult.cursor = (state: DBaseStateSet): string | undefined => {\n\t\t\t\tif (state.in(DTableState.SELECTABLE)) {\n\t\t\t\t\treturn \"pointer\";\n\t\t\t\t}\n\t\t\t\treturn undefined;\n\t\t\t};\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DTableBodyRow\";\n\t}\n\n\t/**\n\t * Returns a row data if exists.\n\t * Returns undefined if a row data does not exit.\n\t *\n\t * @returns a row data or undefined.\n\t */\n\tget value(): ROW | undefined {\n\t\treturn this._value;\n\t}\n\n\t/**\n\t * Returns a row index if a row data exists.\n\t * Returns -1 if a row data does not exit.\n\t *\n\t * @returns a row index or -1.\n\t */\n\tget index(): number {\n\t\treturn this._index;\n\t}\n\n\tprotected isCell(target: any): target is DTableBodyCell<unknown, unknown> {\n\t\treturn target != null && \"set\" in target;\n\t}\n\n\tset(\n\t\tvalue: ROW,\n\t\tsupplimental: DTableDataSupplimental | null,\n\t\trowIndex: number,\n\t\tforcibly?: boolean\n\t): void {\n\t\tif (\n\t\t\tforcibly ||\n\t\t\tthis._value !== value ||\n\t\t\tthis._supplimental !== supplimental ||\n\t\t\tthis._index !== rowIndex\n\t\t) {\n\t\t\tthis._value = value;\n\t\t\tthis._supplimental = supplimental;\n\t\t\tthis._index = rowIndex;\n\n\t\t\tconst cells = this.children;\n\t\t\tconst cellsLength = cells.length;\n\t\t\tconst columns = this._columns;\n\t\t\tconst columnsLength = columns.length;\n\t\t\tfor (let i = 0; i < cellsLength; ++i) {\n\t\t\t\tconst cell = cells[i];\n\t\t\t\tconst columnIndex = columnsLength - 1 - i;\n\t\t\t\tconst column = columns[columnIndex];\n\t\t\t\tif (this.isCell(cell)) {\n\t\t\t\t\tcell.set(\n\t\t\t\t\t\tcolumn.getter(value, columnIndex),\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tsupplimental,\n\t\t\t\t\t\trowIndex,\n\t\t\t\t\t\tcolumnIndex,\n\t\t\t\t\t\tforcibly\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.onSet(value, rowIndex);\n\t\t}\n\t}\n\n\tprotected onSet(value: ROW, rowIndex: number): void {\n\t\tthis.emit(\"set\", value, rowIndex, this);\n\t}\n\n\tunset(): void {\n\t\tif (this._value !== undefined) {\n\t\t\tthis._value = undefined;\n\t\t\tthis._index = -1;\n\n\t\t\tconst cells = this.children;\n\t\t\tconst cellsLength = cells.length;\n\t\t\tfor (let i = 0; i < cellsLength; ++i) {\n\t\t\t\tconst cell = cells[i];\n\t\t\t\tif (this.isCell(cell)) {\n\t\t\t\t\tcell.unset();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.onUnset();\n\t\t}\n\t}\n\n\tprotected onUnset(): void {\n\t\tthis.emit(\"unset\", this);\n\t}\n\n\tprotected getContentPositionX(): number {\n\t\tconst parent = this.parent;\n\t\tif (parent) {\n\t\t\tconst content = parent.parent;\n\t\t\tif (content) {\n\t\t\t\treturn content.position.x;\n\t\t\t}\n\t\t}\n\t\treturn 0;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"d-table-body-row.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-body-row.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DBase } from \"./d-base\";\nimport { DBaseStateSet } from \"./d-base-state-set\";\nimport { DTableBodyCell, DTableBodyCellOnChange } from \"./d-table-body-cell\";\nimport { DTableBodyCellActionDialog } from \"./d-table-body-cell-action-dialog\";\nimport { DTableBodyCellActionMenu } from \"./d-table-body-cell-action-menu\";\nimport { DTableBodyCellActionPromise } from \"./d-table-body-cell-action-promise\";\nimport { DTableBodyCellButton } from \"./d-table-body-cell-button\";\nimport { DTableBodyCellCheck } from \"./d-table-body-cell-check\";\nimport { DTableBodyCellColor } from \"./d-table-body-cell-color\";\nimport { DTableBodyCellDate } from \"./d-table-body-cell-date\";\nimport { DTableBodyCellDatetime } from \"./d-table-body-cell-datetime\";\nimport { DTableBodyCellIndex } from \"./d-table-body-cell-index\";\nimport { DTableBodyCellInputInteger } from \"./d-table-body-cell-input-integer\";\nimport { DTableBodyCellInputReal } from \"./d-table-body-cell-input-real\";\nimport { DTableBodyCellInputText } from \"./d-table-body-cell-input-text\";\nimport { DTableBodyCellInputTextArea } from \"./d-table-body-cell-input-text-area\";\nimport { DTableBodyCellInputTree } from \"./d-table-body-cell-input-tree\";\nimport { DTableBodyCellLink } from \"./d-table-body-cell-link\";\nimport { DTableBodyCellOptions } from \"./d-table-body-cell-options\";\nimport { DTableBodyCellSelectDialog } from \"./d-table-body-cell-select-dialog\";\nimport { DTableBodyCellSelectMenu } from \"./d-table-body-cell-select-menu\";\nimport { DTableBodyCellSelectMultiple } from \"./d-table-body-cell-select-multiple\";\nimport { DTableBodyCellSelectPromise } from \"./d-table-body-cell-select-promise\";\nimport { DTableBodyCellText } from \"./d-table-body-cell-text\";\nimport { DTableBodyCellTextArea } from \"./d-table-body-cell-text-area\";\nimport { DTableBodyCellTime } from \"./d-table-body-cell-time\";\nimport { DTableBodyCellTree } from \"./d-table-body-cell-tree\";\nimport { DTableColumn } from \"./d-table-column\";\nimport { DTableColumnType } from \"./d-table-column-type\";\nimport { DTableColumnUpdate } from \"./d-table-column-update\";\nimport { DTableDataSupplimental } from \"./d-table-data\";\nimport { DTableDataSelectionType } from \"./d-table-data-selection\";\nimport { DTableRow, DTableRowOptions, DThemeTableRow } from \"./d-table-row\";\nimport { DTableState } from \"./d-table-state\";\nimport { toMerged } from \"./util/to-merged\";\n\nexport interface DTableBodyRowSelectionOptions {\n\ttype?: DTableDataSelectionType;\n}\n\nexport interface DTableBodyRowOptions<ROW, THEME extends DThemeTableBodyRow = DThemeTableBodyRow>\n\textends DTableRowOptions<THEME> {\n\theight?: number;\n\tcell?: DTableBodyCellOptions<ROW>;\n\tselection?: DTableBodyRowSelectionOptions;\n}\n\nexport interface DThemeTableBodyRow extends DThemeTableRow {}\n\nexport type DTableBodyRowOnChange<ROW, VALUE = unknown, EMITTER = any> = (\n\tnewValue: VALUE,\n\toldValue: VALUE,\n\trow: ROW,\n\trowIndex: number,\n\tcolumnIndex: number,\n\tcolumn: DTableColumn<ROW, VALUE>,\n\temitter: EMITTER\n) => void;\n\nexport class DTableBodyRow<\n\tROW,\n\tTHEME extends DThemeTableBodyRow = DThemeTableBodyRow,\n\tOPTIONS extends DTableBodyRowOptions<ROW, THEME> = DTableBodyRowOptions<ROW, THEME>\n> extends DTableRow<ROW, DTableColumn<ROW>, THEME, OPTIONS> {\n\tprotected _value?: ROW;\n\tprotected _supplimental?: DTableDataSupplimental | null;\n\tprotected _index: number;\n\tprotected _onChange: DTableBodyRowOnChange<ROW>;\n\tprotected _onCellChangeBound: DTableBodyCellOnChange<ROW, any>;\n\tprotected _columnIndexToCellOptions: Map<number, DTableBodyCellOptions<ROW>>;\n\n\tconstructor(\n\t\tonChange: DTableBodyRowOnChange<ROW>,\n\t\tisEven: boolean,\n\t\tcolumnIndexToCellOptions: Map<number, DTableBodyCellOptions<ROW>>,\n\t\tcolumns: DTableColumn<ROW>[],\n\t\tfrozen: number,\n\t\toptions: OPTIONS\n\t) {\n\t\tsuper(columns, frozen, options);\n\n\t\tthis._index = -1;\n\t\tthis._onChange = onChange;\n\t\tthis._onCellChangeBound = (\n\t\t\tnewValue,\n\t\t\toldValue,\n\t\t\trow,\n\t\t\trowIndex,\n\t\t\tcolumnIndex,\n\t\t\tcolumn\n\t\t): void => {\n\t\t\tthis.onCellChange(newValue, oldValue, row, rowIndex, columnIndex, column);\n\t\t};\n\t\tthis._columnIndexToCellOptions = columnIndexToCellOptions;\n\t\tthis.state.isAlternated = !isEven;\n\t\tthis.initCells();\n\t}\n\n\tprotected onCellChange(\n\t\tnewValue: unknown,\n\t\toldValue: unknown,\n\t\trow: ROW,\n\t\trowIndex: number,\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW>\n\t): void {\n\t\tthis.emit(\"change\", newValue, oldValue, row, rowIndex, columnIndex, this);\n\t\tif (column.update === DTableColumnUpdate.ROW) {\n\t\t\tconst value = this._value;\n\t\t\tconst supplimental = this._supplimental;\n\t\t\tconst index = this._index;\n\t\t\tif (value !== undefined && supplimental !== undefined) {\n\t\t\t\tthis.set(value, supplimental, index, true);\n\t\t\t}\n\t\t}\n\t\tthis._onChange(newValue, oldValue, row, rowIndex, columnIndex, column, this);\n\t}\n\n\tprotected newCell(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW>,\n\t\tcolumns: DTableColumn<ROW>[],\n\t\toptions?: OPTIONS\n\t): DBase {\n\t\tconst onChange = this._onCellChangeBound;\n\t\tconst columnIndexToCellOptions = this._columnIndexToCellOptions;\n\t\tlet cellOptions = columnIndexToCellOptions.get(columnIndex);\n\t\tif (cellOptions == null) {\n\t\t\tcellOptions = this.toCellOptions(columnIndex, column, options);\n\t\t\tcolumnIndexToCellOptions.set(columnIndex, cellOptions);\n\t\t}\n\t\tif (column.editing.enable !== false) {\n\t\t\treturn this.newCellEditable(columnIndex, column, onChange, cellOptions);\n\t\t} else {\n\t\t\tconst cell = this.newCellUnediable(columnIndex, column, onChange, cellOptions);\n\t\t\tif (column.type !== DTableColumnType.TREE) {\n\t\t\t\tcell.state.isReadOnly = true;\n\t\t\t}\n\t\t\treturn cell;\n\t\t}\n\t}\n\n\tprotected newCellEditable(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, any>,\n\t\tonChange: DTableBodyCellOnChange<ROW, any>,\n\t\toptions: any\n\t): DBase {\n\t\tswitch (column.type) {\n\t\t\tcase DTableColumnType.INDEX:\n\t\t\t\treturn new DTableBodyCellIndex(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TEXT:\n\t\t\t\treturn new DTableBodyCellInputText(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TEXT_AREA:\n\t\t\t\treturn new DTableBodyCellInputTextArea(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TREE:\n\t\t\t\treturn new DTableBodyCellInputTree(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.INTEGER:\n\t\t\t\treturn new DTableBodyCellInputInteger(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.REAL:\n\t\t\t\treturn new DTableBodyCellInputReal(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.CHECK:\n\t\t\tcase DTableColumnType.CHECK_SINGLE:\n\t\t\t\treturn new DTableBodyCellCheck(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.COLOR:\n\t\t\t\treturn new DTableBodyCellColor(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.BUTTON:\n\t\t\t\treturn new DTableBodyCellButton(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.LINK:\n\t\t\t\treturn new DTableBodyCellLink(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.SELECT:\n\t\t\t\treturn this.newCellSelect(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.ACTION:\n\t\t\t\treturn this.newCellAction(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.DATE:\n\t\t\t\treturn new DTableBodyCellDate(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.DATETIME:\n\t\t\t\treturn new DTableBodyCellDatetime(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TIME:\n\t\t\t\treturn new DTableBodyCellTime(columnIndex, column, onChange, options);\n\t\t\tdefault:\n\t\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t}\n\t}\n\n\tprotected newCellUnediable(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, any>,\n\t\tonChange: DTableBodyCellOnChange<ROW, any>,\n\t\toptions: any\n\t): DBase {\n\t\tswitch (column.type) {\n\t\t\tcase DTableColumnType.INDEX:\n\t\t\t\treturn new DTableBodyCellIndex(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TEXT:\n\t\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TEXT_AREA:\n\t\t\t\treturn new DTableBodyCellTextArea(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TREE:\n\t\t\t\treturn new DTableBodyCellTree(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.INTEGER:\n\t\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.REAL:\n\t\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.CHECK:\n\t\t\tcase DTableColumnType.CHECK_SINGLE:\n\t\t\t\treturn new DTableBodyCellCheck(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.COLOR:\n\t\t\t\treturn new DTableBodyCellColor(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.BUTTON:\n\t\t\t\treturn new DTableBodyCellButton(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.LINK:\n\t\t\t\treturn new DTableBodyCellLink(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.SELECT:\n\t\t\t\treturn this.newCellSelect(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.ACTION:\n\t\t\t\treturn this.newCellAction(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.DATE:\n\t\t\t\treturn new DTableBodyCellDate(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.DATETIME:\n\t\t\t\treturn new DTableBodyCellDatetime(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TIME:\n\t\t\t\treturn new DTableBodyCellTime(columnIndex, column, onChange, options);\n\t\t\tdefault:\n\t\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t}\n\t}\n\n\tprotected newCellSelect(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, any>,\n\t\tonChange: DTableBodyCellOnChange<ROW, any>,\n\t\toptions: any\n\t): DBase {\n\t\tconst selecting = column.selecting;\n\t\tif (selecting.menu != null) {\n\t\t\treturn new DTableBodyCellSelectMenu(columnIndex, column, onChange, options);\n\t\t} else if (selecting.multiple != null) {\n\t\t\treturn new DTableBodyCellSelectMultiple(columnIndex, column, onChange, options);\n\t\t} else if (selecting.dialog != null) {\n\t\t\treturn new DTableBodyCellSelectDialog(columnIndex, column, onChange, options);\n\t\t} else if (selecting.promise != null) {\n\t\t\treturn new DTableBodyCellSelectPromise(columnIndex, column, onChange, options);\n\t\t} else {\n\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t}\n\t}\n\n\tprotected newCellAction(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW>,\n\t\tonChange: DTableBodyCellOnChange<ROW>,\n\t\toptions: any\n\t): DBase {\n\t\tconst selecting = column.selecting;\n\t\tif (selecting.menu != null) {\n\t\t\treturn new DTableBodyCellActionMenu(columnIndex, column, onChange, options);\n\t\t} else if (selecting.dialog != null) {\n\t\t\treturn new DTableBodyCellActionDialog(columnIndex, column, onChange, options);\n\t\t} else if (selecting.promise != null) {\n\t\t\treturn new DTableBodyCellActionPromise(columnIndex, column, onChange, options);\n\t\t} else {\n\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t}\n\t}\n\n\tprotected toCellOptions(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW>,\n\t\toptions?: OPTIONS\n\t): DTableBodyCellOptions<ROW> {\n\t\tconst result = toMerged(column.body, options?.cell);\n\n\t\t// Weight\n\t\tresult.weight = column.weight;\n\n\t\t// Width\n\t\tresult.width = column.width;\n\n\t\t// State\n\t\tresult.state ??= column.state.initial;\n\n\t\t// Text formatter\n\t\tconst columnFormatter = column.formatter;\n\t\tif (columnFormatter != null) {\n\t\t\tconst text = (result.text ??= {});\n\t\t\ttext.formatter ??= columnFormatter;\n\t\t}\n\n\t\t// Text align horizontal\n\t\tconst columnAlign = column.align;\n\t\tif (columnAlign != null) {\n\t\t\tconst text = (result.text ??= {});\n\t\t\tconst textAlign = (text.align ??= {});\n\t\t\ttextAlign.horizontal ??= columnAlign;\n\t\t}\n\n\t\t// Editing\n\t\tconst columnEditing = column.editing;\n\t\tif (columnEditing.enable !== false) {\n\t\t\tconst editing = ((result as any).editing ??= {});\n\t\t\tediting.formatter ??= columnEditing.formatter;\n\t\t\tediting.unformatter ??= columnEditing.unformatter;\n\t\t\tediting.validator ??= columnEditing.validator;\n\t\t}\n\n\t\t// Link\n\t\tconst columnLink = column.link;\n\t\tif (columnLink !== undefined) {\n\t\t\t(result as any).link = columnLink;\n\t\t}\n\n\t\t// Selecting\n\t\tconst columnSelecting = column.selecting;\n\t\tconst columnSelectingMenu = columnSelecting.menu ?? columnSelecting.multiple;\n\t\tif (columnSelectingMenu !== undefined) {\n\t\t\t(result as any).menu = columnSelectingMenu;\n\t\t}\n\n\t\tconst selectionType = options?.selection?.type ?? DTableDataSelectionType.NONE;\n\t\tif (selectionType !== DTableDataSelectionType.NONE) {\n\t\t\t(result as any).when = \"DOUBLE_CLICKED\";\n\t\t\tresult.cursor = (state: DBaseStateSet): string | undefined => {\n\t\t\t\tif (state.in(DTableState.SELECTABLE)) {\n\t\t\t\t\treturn \"pointer\";\n\t\t\t\t}\n\t\t\t\treturn undefined;\n\t\t\t};\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DTableBodyRow\";\n\t}\n\n\t/**\n\t * Returns a row data if exists.\n\t * Returns undefined if a row data does not exit.\n\t *\n\t * @returns a row data or undefined.\n\t */\n\tget value(): ROW | undefined {\n\t\treturn this._value;\n\t}\n\n\t/**\n\t * Returns a row index if a row data exists.\n\t * Returns -1 if a row data does not exit.\n\t *\n\t * @returns a row index or -1.\n\t */\n\tget index(): number {\n\t\treturn this._index;\n\t}\n\n\tprotected isCell(target: any): target is DTableBodyCell<unknown, unknown> {\n\t\treturn target != null && \"set\" in target;\n\t}\n\n\tset(\n\t\tvalue: ROW,\n\t\tsupplimental: DTableDataSupplimental | null,\n\t\trowIndex: number,\n\t\tforcibly?: boolean\n\t): void {\n\t\tif (\n\t\t\tforcibly ||\n\t\t\tthis._value !== value ||\n\t\t\tthis._supplimental !== supplimental ||\n\t\t\tthis._index !== rowIndex\n\t\t) {\n\t\t\tthis._value = value;\n\t\t\tthis._supplimental = supplimental;\n\t\t\tthis._index = rowIndex;\n\n\t\t\tconst cells = this.children;\n\t\t\tconst cellsLength = cells.length;\n\t\t\tconst columns = this._columns;\n\t\t\tconst columnsLength = columns.length;\n\t\t\tfor (let i = 0; i < cellsLength; ++i) {\n\t\t\t\tconst cell = cells[i];\n\t\t\t\tconst columnIndex = columnsLength - 1 - i;\n\t\t\t\tconst column = columns[columnIndex];\n\t\t\t\tif (this.isCell(cell)) {\n\t\t\t\t\tcell.set(\n\t\t\t\t\t\tcolumn.getter(value, columnIndex),\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tsupplimental,\n\t\t\t\t\t\trowIndex,\n\t\t\t\t\t\tcolumnIndex,\n\t\t\t\t\t\tforcibly\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.onSet(value, rowIndex);\n\t\t}\n\t}\n\n\tprotected onSet(value: ROW, rowIndex: number): void {\n\t\tthis.emit(\"set\", value, rowIndex, this);\n\t}\n\n\tunset(): void {\n\t\tif (this._value !== undefined) {\n\t\t\tthis._value = undefined;\n\t\t\tthis._index = -1;\n\n\t\t\tconst cells = this.children;\n\t\t\tconst cellsLength = cells.length;\n\t\t\tfor (let i = 0; i < cellsLength; ++i) {\n\t\t\t\tconst cell = cells[i];\n\t\t\t\tif (this.isCell(cell)) {\n\t\t\t\t\tcell.unset();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.onUnset();\n\t\t}\n\t}\n\n\tprotected onUnset(): void {\n\t\tthis.emit(\"unset\", this);\n\t}\n\n\tprotected getContentPositionX(): number {\n\t\tconst parent = this.parent;\n\t\tif (parent) {\n\t\t\tconst content = parent.parent;\n\t\t\tif (content) {\n\t\t\t\treturn content.position.x;\n\t\t\t}\n\t\t}\n\t\treturn 0;\n\t}\n}\n"]}
|