@wcardinal/wcardinal-ui 0.442.0 → 0.443.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-picker-color.d.ts +3 -0
- package/dist/types/wcardinal/ui/d-table-column-state.d.ts +4 -1
- package/dist/types/wcardinal/ui/d-table-state.d.ts +4 -0
- package/dist/types/wcardinal/ui/theme/common/new-svg-rounded-checkerboard.d.ts +1 -0
- package/dist/types/wcardinal/ui/theme/common/new-svg-rounded-rect.d.ts +1 -0
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-picker-color.d.ts +3 -0
- package/dist/types/wcardinal/ui/theme/dark/new-dark-svg-rounded-checkerboard.d.ts +1 -0
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-picker-color.d.ts +3 -0
- package/dist/types/wcardinal/ui/theme/white/new-white-svg-rounded-checkerboard.d.ts +1 -0
- package/dist/wcardinal/ui/d-image-piece-impl.js +8 -0
- package/dist/wcardinal/ui/d-image-piece-impl.js.map +1 -1
- package/dist/wcardinal/ui/d-picker-color.js +5 -4
- package/dist/wcardinal/ui/d-picker-color.js.map +1 -1
- package/dist/wcardinal/ui/d-table-body.js +3 -2
- package/dist/wcardinal/ui/d-table-body.js.map +1 -1
- package/dist/wcardinal/ui/d-table-column-state.js.map +1 -1
- package/dist/wcardinal/ui/d-table-state.js +4 -0
- package/dist/wcardinal/ui/d-table-state.js.map +1 -1
- package/dist/wcardinal/ui/theme/common/new-svg-rounded-checkerboard.js +20 -0
- package/dist/wcardinal/ui/theme/common/new-svg-rounded-checkerboard.js.map +1 -0
- package/dist/wcardinal/ui/theme/common/new-svg-rounded-rect.js +15 -0
- package/dist/wcardinal/ui/theme/common/new-svg-rounded-rect.js.map +1 -0
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-button-color-gradient.js +2 -5
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-button-color-gradient.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-button-color.js +3 -6
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-button-color.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-picker-color.js +24 -35
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-picker-color.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-body-cells.js +7 -2
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-body-cells.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/new-dark-svg-rounded-checkerboard.js +5 -0
- package/dist/wcardinal/ui/theme/dark/new-dark-svg-rounded-checkerboard.js.map +1 -0
- package/dist/wcardinal/ui/theme/white/d-theme-white-button-color-gradient.js +2 -5
- package/dist/wcardinal/ui/theme/white/d-theme-white-button-color-gradient.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-button-color.js +3 -6
- package/dist/wcardinal/ui/theme/white/d-theme-white-button-color.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-picker-color.js +24 -35
- package/dist/wcardinal/ui/theme/white/d-theme-white-picker-color.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-table-body-cells.js +7 -2
- package/dist/wcardinal/ui/theme/white/d-theme-white-table-body-cells.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/new-white-svg-rounded-checkerboard.js +5 -0
- package/dist/wcardinal/ui/theme/white/new-white-svg-rounded-checkerboard.js.map +1 -0
- package/dist/wcardinal-ui-theme-dark-en-us.js +71 -49
- 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 +71 -49
- 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 +71 -49
- package/dist/wcardinal-ui-theme-dark.min.js +2 -2
- package/dist/wcardinal-ui-theme-white-en-us.js +71 -49
- 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 +71 -49
- 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 +71 -49
- package/dist/wcardinal-ui-theme-white.min.js +2 -2
- package/dist/wcardinal-ui.cjs.js +127 -103
- package/dist/wcardinal-ui.js +21 -7
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -41,6 +41,9 @@ export interface DThemePickerColor extends DThemeBase {
|
|
|
41
41
|
getRecentTexture(): Texture;
|
|
42
42
|
getInputMargin(): number;
|
|
43
43
|
getInputLabelWidth(): number;
|
|
44
|
+
getSampleWidth(): number;
|
|
45
|
+
getSampleHeight(): number;
|
|
46
|
+
getSampleMargin(): number;
|
|
44
47
|
getSampleCheckerboardOldTexture(): Texture;
|
|
45
48
|
getSampleCheckerboardNewTexture(): Texture;
|
|
46
49
|
getSampleOldTexture(): Texture;
|
|
@@ -2,7 +2,10 @@ import { DBaseStateSet } from "./d-base-state-set";
|
|
|
2
2
|
/**
|
|
3
3
|
* {@link DTable} column state modifier.
|
|
4
4
|
* This function is called on every cells of a column when the cell data is changed.
|
|
5
|
-
*
|
|
5
|
+
*
|
|
6
|
+
* @param row a cell data
|
|
7
|
+
* @param columnIndex a column index of a cell
|
|
8
|
+
* @param state a cell state
|
|
6
9
|
*/
|
|
7
10
|
export type DTableColumnStateModifier<ROW_VALUE> = (row: ROW_VALUE, columnIndex: number, state: DBaseStateSet) => void;
|
|
8
11
|
export interface DTableColumnState<ROW_VALUE> {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const newSvgRoundedCheckerboard: (width: number, height: number, color1: string, color2: string, stroke?: string, strokeWidth?: number, strokeOpacity?: number) => string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const newSvgRoundedRect: (x: number, y: number, width: number, height: number, fill: string, stroke?: string, strokeWidth?: number, strokeOpacity?: number) => string;
|
|
@@ -34,6 +34,9 @@ export declare abstract class DThemeDarkPickerColor extends DThemeDarkBase imple
|
|
|
34
34
|
getRecentTexture(): Texture;
|
|
35
35
|
getInputMargin(): number;
|
|
36
36
|
getInputLabelWidth(): number;
|
|
37
|
+
getSampleWidth(): number;
|
|
38
|
+
getSampleHeight(): number;
|
|
39
|
+
getSampleMargin(): number;
|
|
37
40
|
getSampleCheckerboardOldTexture(): Texture;
|
|
38
41
|
getSampleCheckerboardNewTexture(): Texture;
|
|
39
42
|
getSampleOldTexture(): Texture;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const newDarkSvgRoundedCheckerboard: (width: number, height: number, stroke?: string, strokeWidth?: number, strokeOpacity?: number) => string;
|
|
@@ -34,6 +34,9 @@ export declare abstract class DThemeWhitePickerColor extends DThemeWhiteBase imp
|
|
|
34
34
|
getRecentTexture(): Texture;
|
|
35
35
|
getInputMargin(): number;
|
|
36
36
|
getInputLabelWidth(): number;
|
|
37
|
+
getSampleWidth(): number;
|
|
38
|
+
getSampleHeight(): number;
|
|
39
|
+
getSampleMargin(): number;
|
|
37
40
|
getSampleCheckerboardOldTexture(): Texture;
|
|
38
41
|
getSampleCheckerboardNewTexture(): Texture;
|
|
39
42
|
getSampleOldTexture(): Texture;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const newWhiteSvgRoundedCheckerboard: (width: number, height: number, stroke?: string, strokeWidth?: number, strokeOpacity?: number) => string;
|
|
@@ -122,8 +122,16 @@ var DImagePieceImpl = /** @class */ (function () {
|
|
|
122
122
|
object.alpha = alpha;
|
|
123
123
|
result = true;
|
|
124
124
|
}
|
|
125
|
+
if (!object.visible) {
|
|
126
|
+
object.visible = true;
|
|
127
|
+
result = true;
|
|
128
|
+
}
|
|
125
129
|
return result;
|
|
126
130
|
}
|
|
131
|
+
else if (object.visible) {
|
|
132
|
+
object.visible = false;
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
127
135
|
}
|
|
128
136
|
}
|
|
129
137
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-image-piece-impl.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-image-piece-impl.ts"],"names":[],"mappings":"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","sourcesContent":["import { DisplayObject, Graphics, Sprite, Texture } from \"pixi.js\";\nimport { DApplicationTarget } from \"./d-application-like\";\nimport { DApplications } from \"./d-applications\";\nimport { DBaseStateSet } from \"./d-base-state-set\";\nimport { DStateAwareOrValueMightBe } from \"./d-state-aware\";\nimport { isFunction } from \"./util/is-function\";\nimport { DImagePieceTint } from \"./d-image-piece-tint\";\nimport { DImagePieceTintImpl } from \"./d-image-piece-tint-impl\";\nimport { DImagePieceMarginImpl } from \"./d-image-piece-margin-impl\";\nimport { DImagePieceMargin } from \"./d-image-piece-margin\";\nimport { DImagePieceAlign } from \"./d-image-piece-align\";\nimport { DImagePieceAlignImpl } from \"./d-image-piece-align-impl\";\nimport { DImagePiece, DImagePieceOptions, DThemeImagePiece } from \"./d-image-piece\";\n\nexport interface DImagePieceImplParent extends DApplicationTarget {\n\treadonly state: DBaseStateSet;\n\taddChild(displayObject: DisplayObject): void;\n\tremoveChild(displayObject: DisplayObject): void;\n\ttoDirty(): void;\n\tgetOverflowMask(): Graphics | null;\n}\n\nexport class DImagePieceImpl implements DImagePiece {\n\tprotected _parent: DImagePieceImplParent;\n\tprotected _theme: DThemeImagePiece;\n\n\tprotected _object: DisplayObject | null;\n\tprotected _computed: Texture | DisplayObject | null;\n\tprotected _source: DStateAwareOrValueMightBe<Texture | DisplayObject | null>;\n\tprotected _align: DImagePieceAlignImpl;\n\tprotected _margin: DImagePieceMarginImpl;\n\tprotected _tint: DImagePieceTint;\n\tprotected _rotation: DStateAwareOrValueMightBe<number> | undefined;\n\n\tprotected _onUpdateBound: () => void;\n\n\tconstructor(\n\t\tparent: DImagePieceImplParent,\n\t\ttheme: DThemeImagePiece,\n\t\toptions?: DImagePieceOptions\n\t) {\n\t\tthis._parent = parent;\n\t\tthis._theme = theme;\n\n\t\tthis._object = null;\n\t\tthis._align = new DImagePieceAlignImpl(this, theme, options?.align);\n\t\tthis._margin = new DImagePieceMarginImpl(this, theme, options?.margin);\n\t\tthis._tint = new DImagePieceTintImpl(this, theme, options?.tint);\n\t\tthis._rotation = options?.rotation;\n\t\tthis._source = options?.source;\n\t\tthis._computed = null;\n\n\t\tthis._onUpdateBound = () => {\n\t\t\tthis.onUpdate();\n\t\t};\n\t}\n\n\tget object(): DisplayObject | null {\n\t\treturn this._object;\n\t}\n\n\tget align(): DImagePieceAlign {\n\t\treturn this._align;\n\t}\n\n\tget margin(): DImagePieceMargin {\n\t\treturn this._margin;\n\t}\n\n\tget tint(): DImagePieceTint {\n\t\treturn this._tint;\n\t}\n\n\tget source(): DStateAwareOrValueMightBe<Texture | DisplayObject | null> {\n\t\treturn this._source;\n\t}\n\n\tset source(source: DStateAwareOrValueMightBe<Texture | DisplayObject | null>) {\n\t\tif (this._source !== source) {\n\t\t\tthis._source = source;\n\t\t\tif (this.updateSource()) {\n\t\t\t\tthis.onUpdate();\n\t\t\t}\n\t\t}\n\t}\n\n\tget rotation(): DStateAwareOrValueMightBe<number> {\n\t\treturn this._rotation;\n\t}\n\n\tset rotation(rotation: DStateAwareOrValueMightBe<number>) {\n\t\tif (this._rotation !== rotation) {\n\t\t\tthis._rotation = rotation;\n\t\t\tif (this.updateRotation()) {\n\t\t\t\tDApplications.update(this._parent);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected computeSource(): Texture | DisplayObject | null {\n\t\tconst source = this._source;\n\t\tif (source !== undefined) {\n\t\t\tif (isFunction(source)) {\n\t\t\t\tconst result = source(this._parent.state);\n\t\t\t\tif (result !== undefined) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn source;\n\t\t\t}\n\t\t}\n\t\treturn this._theme.getImageSource(this._parent.state);\n\t}\n\n\tonStateChange(newState: DBaseStateSet, oldState: DBaseStateSet): void {\n\t\tthis.updateTint();\n\t\tthis.updateRotation();\n\t}\n\n\tprotected isTintAware(\n\t\ttarget: DisplayObject | null\n\t): target is DisplayObject & { tint: number } {\n\t\treturn target != null && \"tint\" in target;\n\t}\n\n\t/**\n\t * Updates the tint.\n\t *\n\t * @returns True if the tint is changed.\n\t */\n\tupdateTint(): boolean {\n\t\tconst object = this._object;\n\t\tif (object) {\n\t\t\tif (this.isTintAware(object)) {\n\t\t\t\tconst state = this._parent.state;\n\t\t\t\tconst color = this._tint.getColor(state);\n\t\t\t\tif (color != null) {\n\t\t\t\t\tlet result = false;\n\t\t\t\t\tif (object.tint !== color) {\n\t\t\t\t\t\tobject.tint = color;\n\t\t\t\t\t\tresult = true;\n\t\t\t\t\t}\n\t\t\t\t\tconst alpha = this._tint.getAlpha(state);\n\t\t\t\t\tif (object.alpha !== alpha) {\n\t\t\t\t\t\tobject.alpha = alpha;\n\t\t\t\t\t\tresult = true;\n\t\t\t\t\t}\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected toRotation(theme: DThemeImagePiece, state: DBaseStateSet): number | null {\n\t\tconst rotation = this._rotation;\n\t\tif (rotation != null) {\n\t\t\tif (isFunction(rotation)) {\n\t\t\t\tconst result = rotation(state);\n\t\t\t\tif (result !== undefined) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn rotation;\n\t\t\t}\n\t\t}\n\t\treturn theme.getImageRotation(state);\n\t}\n\n\tupdateRotation(): boolean {\n\t\tconst object = this._object;\n\t\tif (object) {\n\t\t\tconst theme = this._theme;\n\t\t\tconst state = this._parent.state;\n\t\t\tconst rotation = this.toRotation(theme, state);\n\t\t\tif (rotation != null) {\n\t\t\t\tconst transform = object.transform;\n\t\t\t\tif (transform.rotation !== rotation) {\n\t\t\t\t\ttransform.rotation = rotation;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Updates the computed source.\n\t *\n\t * @returns True if the computed source is changed\n\t */\n\tupdateSource(): boolean {\n\t\tconst newComputed = this.computeSource();\n\t\tconst oldComputed = this._computed;\n\t\tif (newComputed !== oldComputed) {\n\t\t\tthis._computed = newComputed;\n\n\t\t\tconst parent = this._parent;\n\t\t\tconst oldObject = this._object;\n\t\t\tconst onUpdateBound = this._onUpdateBound;\n\t\t\tif (newComputed instanceof Texture) {\n\t\t\t\tif (oldComputed instanceof Texture) {\n\t\t\t\t\toldComputed.off(\"update\", onUpdateBound);\n\t\t\t\t\tif (oldObject instanceof Sprite) {\n\t\t\t\t\t\toldObject.texture = newComputed;\n\t\t\t\t\t\tnewComputed.on(\"update\", onUpdateBound);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (oldObject != null) {\n\t\t\t\t\t\tparent.removeChild(oldObject);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst newObject = new Sprite(newComputed);\n\t\t\t\t\tnewObject.anchor.set(0.5, 0.5);\n\t\t\t\t\tconst overflowMask = parent.getOverflowMask();\n\t\t\t\t\tif (overflowMask) {\n\t\t\t\t\t\tnewObject.mask = overflowMask;\n\t\t\t\t\t}\n\t\t\t\t\tnewComputed.on(\"update\", onUpdateBound);\n\t\t\t\t\tparent.addChild(newObject);\n\t\t\t\t\tthis._object = newObject;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (oldComputed instanceof Texture) {\n\t\t\t\t\toldComputed.off(\"update\", onUpdateBound);\n\t\t\t\t\tif (oldObject != null) {\n\t\t\t\t\t\tparent.removeChild(oldObject);\n\t\t\t\t\t\toldObject.destroy();\n\t\t\t\t\t}\n\t\t\t\t} else if (oldObject != null) {\n\t\t\t\t\tparent.removeChild(oldObject);\n\t\t\t\t}\n\n\t\t\t\tif (newComputed != null) {\n\t\t\t\t\tconst overflowMask = parent.getOverflowMask();\n\t\t\t\t\tif (overflowMask) {\n\t\t\t\t\t\tnewComputed.mask = overflowMask;\n\t\t\t\t\t}\n\t\t\t\t\tparent.addChild(newComputed);\n\t\t\t\t}\n\t\t\t\tthis._object = newComputed;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tisRefitable(target: any): boolean {\n\t\treturn target != null && target === this._object;\n\t}\n\n\tdestroy(): void {\n\t\tthis.source = null;\n\t}\n\n\tonUpdate(): void {\n\t\tthis._parent.toDirty();\n\t\tDApplications.update(this._parent);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"d-image-piece-impl.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-image-piece-impl.ts"],"names":[],"mappings":"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","sourcesContent":["import { DisplayObject, Graphics, Sprite, Texture } from \"pixi.js\";\nimport { DApplicationTarget } from \"./d-application-like\";\nimport { DApplications } from \"./d-applications\";\nimport { DBaseStateSet } from \"./d-base-state-set\";\nimport { DStateAwareOrValueMightBe } from \"./d-state-aware\";\nimport { isFunction } from \"./util/is-function\";\nimport { DImagePieceTint } from \"./d-image-piece-tint\";\nimport { DImagePieceTintImpl } from \"./d-image-piece-tint-impl\";\nimport { DImagePieceMarginImpl } from \"./d-image-piece-margin-impl\";\nimport { DImagePieceMargin } from \"./d-image-piece-margin\";\nimport { DImagePieceAlign } from \"./d-image-piece-align\";\nimport { DImagePieceAlignImpl } from \"./d-image-piece-align-impl\";\nimport { DImagePiece, DImagePieceOptions, DThemeImagePiece } from \"./d-image-piece\";\n\nexport interface DImagePieceImplParent extends DApplicationTarget {\n\treadonly state: DBaseStateSet;\n\taddChild(displayObject: DisplayObject): void;\n\tremoveChild(displayObject: DisplayObject): void;\n\ttoDirty(): void;\n\tgetOverflowMask(): Graphics | null;\n}\n\nexport class DImagePieceImpl implements DImagePiece {\n\tprotected _parent: DImagePieceImplParent;\n\tprotected _theme: DThemeImagePiece;\n\n\tprotected _object: DisplayObject | null;\n\tprotected _computed: Texture | DisplayObject | null;\n\tprotected _source: DStateAwareOrValueMightBe<Texture | DisplayObject | null>;\n\tprotected _align: DImagePieceAlignImpl;\n\tprotected _margin: DImagePieceMarginImpl;\n\tprotected _tint: DImagePieceTint;\n\tprotected _rotation: DStateAwareOrValueMightBe<number> | undefined;\n\n\tprotected _onUpdateBound: () => void;\n\n\tconstructor(\n\t\tparent: DImagePieceImplParent,\n\t\ttheme: DThemeImagePiece,\n\t\toptions?: DImagePieceOptions\n\t) {\n\t\tthis._parent = parent;\n\t\tthis._theme = theme;\n\n\t\tthis._object = null;\n\t\tthis._align = new DImagePieceAlignImpl(this, theme, options?.align);\n\t\tthis._margin = new DImagePieceMarginImpl(this, theme, options?.margin);\n\t\tthis._tint = new DImagePieceTintImpl(this, theme, options?.tint);\n\t\tthis._rotation = options?.rotation;\n\t\tthis._source = options?.source;\n\t\tthis._computed = null;\n\n\t\tthis._onUpdateBound = () => {\n\t\t\tthis.onUpdate();\n\t\t};\n\t}\n\n\tget object(): DisplayObject | null {\n\t\treturn this._object;\n\t}\n\n\tget align(): DImagePieceAlign {\n\t\treturn this._align;\n\t}\n\n\tget margin(): DImagePieceMargin {\n\t\treturn this._margin;\n\t}\n\n\tget tint(): DImagePieceTint {\n\t\treturn this._tint;\n\t}\n\n\tget source(): DStateAwareOrValueMightBe<Texture | DisplayObject | null> {\n\t\treturn this._source;\n\t}\n\n\tset source(source: DStateAwareOrValueMightBe<Texture | DisplayObject | null>) {\n\t\tif (this._source !== source) {\n\t\t\tthis._source = source;\n\t\t\tif (this.updateSource()) {\n\t\t\t\tthis.onUpdate();\n\t\t\t}\n\t\t}\n\t}\n\n\tget rotation(): DStateAwareOrValueMightBe<number> {\n\t\treturn this._rotation;\n\t}\n\n\tset rotation(rotation: DStateAwareOrValueMightBe<number>) {\n\t\tif (this._rotation !== rotation) {\n\t\t\tthis._rotation = rotation;\n\t\t\tif (this.updateRotation()) {\n\t\t\t\tDApplications.update(this._parent);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected computeSource(): Texture | DisplayObject | null {\n\t\tconst source = this._source;\n\t\tif (source !== undefined) {\n\t\t\tif (isFunction(source)) {\n\t\t\t\tconst result = source(this._parent.state);\n\t\t\t\tif (result !== undefined) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn source;\n\t\t\t}\n\t\t}\n\t\treturn this._theme.getImageSource(this._parent.state);\n\t}\n\n\tonStateChange(newState: DBaseStateSet, oldState: DBaseStateSet): void {\n\t\tthis.updateTint();\n\t\tthis.updateRotation();\n\t}\n\n\tprotected isTintAware(\n\t\ttarget: DisplayObject | null\n\t): target is DisplayObject & { tint: number } {\n\t\treturn target != null && \"tint\" in target;\n\t}\n\n\t/**\n\t * Updates the tint.\n\t *\n\t * @returns True if the tint is changed.\n\t */\n\tupdateTint(): boolean {\n\t\tconst object = this._object;\n\t\tif (object) {\n\t\t\tif (this.isTintAware(object)) {\n\t\t\t\tconst state = this._parent.state;\n\t\t\t\tconst color = this._tint.getColor(state);\n\t\t\t\tif (color != null) {\n\t\t\t\t\tlet result = false;\n\t\t\t\t\tif (object.tint !== color) {\n\t\t\t\t\t\tobject.tint = color;\n\t\t\t\t\t\tresult = true;\n\t\t\t\t\t}\n\t\t\t\t\tconst alpha = this._tint.getAlpha(state);\n\t\t\t\t\tif (object.alpha !== alpha) {\n\t\t\t\t\t\tobject.alpha = alpha;\n\t\t\t\t\t\tresult = true;\n\t\t\t\t\t}\n\t\t\t\t\tif (!object.visible) {\n\t\t\t\t\t\tobject.visible = true;\n\t\t\t\t\t\tresult = true;\n\t\t\t\t\t}\n\t\t\t\t\treturn result;\n\t\t\t\t} else if (object.visible) {\n\t\t\t\t\tobject.visible = false;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected toRotation(theme: DThemeImagePiece, state: DBaseStateSet): number | null {\n\t\tconst rotation = this._rotation;\n\t\tif (rotation != null) {\n\t\t\tif (isFunction(rotation)) {\n\t\t\t\tconst result = rotation(state);\n\t\t\t\tif (result !== undefined) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn rotation;\n\t\t\t}\n\t\t}\n\t\treturn theme.getImageRotation(state);\n\t}\n\n\tupdateRotation(): boolean {\n\t\tconst object = this._object;\n\t\tif (object) {\n\t\t\tconst theme = this._theme;\n\t\t\tconst state = this._parent.state;\n\t\t\tconst rotation = this.toRotation(theme, state);\n\t\t\tif (rotation != null) {\n\t\t\t\tconst transform = object.transform;\n\t\t\t\tif (transform.rotation !== rotation) {\n\t\t\t\t\ttransform.rotation = rotation;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Updates the computed source.\n\t *\n\t * @returns True if the computed source is changed\n\t */\n\tupdateSource(): boolean {\n\t\tconst newComputed = this.computeSource();\n\t\tconst oldComputed = this._computed;\n\t\tif (newComputed !== oldComputed) {\n\t\t\tthis._computed = newComputed;\n\n\t\t\tconst parent = this._parent;\n\t\t\tconst oldObject = this._object;\n\t\t\tconst onUpdateBound = this._onUpdateBound;\n\t\t\tif (newComputed instanceof Texture) {\n\t\t\t\tif (oldComputed instanceof Texture) {\n\t\t\t\t\toldComputed.off(\"update\", onUpdateBound);\n\t\t\t\t\tif (oldObject instanceof Sprite) {\n\t\t\t\t\t\toldObject.texture = newComputed;\n\t\t\t\t\t\tnewComputed.on(\"update\", onUpdateBound);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (oldObject != null) {\n\t\t\t\t\t\tparent.removeChild(oldObject);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst newObject = new Sprite(newComputed);\n\t\t\t\t\tnewObject.anchor.set(0.5, 0.5);\n\t\t\t\t\tconst overflowMask = parent.getOverflowMask();\n\t\t\t\t\tif (overflowMask) {\n\t\t\t\t\t\tnewObject.mask = overflowMask;\n\t\t\t\t\t}\n\t\t\t\t\tnewComputed.on(\"update\", onUpdateBound);\n\t\t\t\t\tparent.addChild(newObject);\n\t\t\t\t\tthis._object = newObject;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (oldComputed instanceof Texture) {\n\t\t\t\t\toldComputed.off(\"update\", onUpdateBound);\n\t\t\t\t\tif (oldObject != null) {\n\t\t\t\t\t\tparent.removeChild(oldObject);\n\t\t\t\t\t\toldObject.destroy();\n\t\t\t\t\t}\n\t\t\t\t} else if (oldObject != null) {\n\t\t\t\t\tparent.removeChild(oldObject);\n\t\t\t\t}\n\n\t\t\t\tif (newComputed != null) {\n\t\t\t\t\tconst overflowMask = parent.getOverflowMask();\n\t\t\t\t\tif (overflowMask) {\n\t\t\t\t\t\tnewComputed.mask = overflowMask;\n\t\t\t\t\t}\n\t\t\t\t\tparent.addChild(newComputed);\n\t\t\t\t}\n\t\t\t\tthis._object = newComputed;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tisRefitable(target: any): boolean {\n\t\treturn target != null && target === this._object;\n\t}\n\n\tdestroy(): void {\n\t\tthis.source = null;\n\t}\n\n\tonUpdate(): void {\n\t\tthis._parent.toDirty();\n\t\tDApplications.update(this._parent);\n\t}\n}\n"]}
|
|
@@ -361,10 +361,11 @@ var DPickerColor = /** @class */ (function (_super) {
|
|
|
361
361
|
});
|
|
362
362
|
this._inputAndLabelAlpha = inputAndLabelAlpha;
|
|
363
363
|
// Samples
|
|
364
|
-
var sampleWidth = (
|
|
365
|
-
var sampleHeight =
|
|
364
|
+
var sampleWidth = theme.getSampleWidth();
|
|
365
|
+
var sampleHeight = theme.getSampleHeight();
|
|
366
366
|
var sampleX = paddingLeft + (mainWidth - inputMargin) * 0.5 + inputMargin;
|
|
367
367
|
var sampleY = inputY + (inputHeight + inputMargin + inputAndLabelAlpha.height - sampleHeight) * 0.5;
|
|
368
|
+
var sampleMargin = theme.getSampleMargin();
|
|
368
369
|
var sampleCurrentCheckerboardSprite = new Sprite(theme.getSampleCheckerboardOldTexture());
|
|
369
370
|
this._sampleCurrentCheckerboardSprite = sampleCurrentCheckerboardSprite;
|
|
370
371
|
sampleCurrentCheckerboardSprite.x = sampleX;
|
|
@@ -391,7 +392,7 @@ var DPickerColor = /** @class */ (function (_super) {
|
|
|
391
392
|
this.addChild(sampleCurrentSprite);
|
|
392
393
|
var sampleNewCheckerboardSprite = new Sprite(theme.getSampleCheckerboardNewTexture());
|
|
393
394
|
this._sampleNewCheckerboardSprite = sampleNewCheckerboardSprite;
|
|
394
|
-
sampleNewCheckerboardSprite.x = sampleX + sampleWidth;
|
|
395
|
+
sampleNewCheckerboardSprite.x = sampleX + sampleWidth + sampleMargin;
|
|
395
396
|
sampleNewCheckerboardSprite.y = sampleY;
|
|
396
397
|
sampleNewCheckerboardSprite.width = sampleWidth;
|
|
397
398
|
sampleNewCheckerboardSprite.height = sampleHeight;
|
|
@@ -399,7 +400,7 @@ var DPickerColor = /** @class */ (function (_super) {
|
|
|
399
400
|
this.addChild(sampleNewCheckerboardSprite);
|
|
400
401
|
var sampleNewSprite = new Sprite(theme.getSampleNewTexture());
|
|
401
402
|
this._sampleNewSprite = sampleNewSprite;
|
|
402
|
-
sampleNewSprite.x = sampleX + sampleWidth;
|
|
403
|
+
sampleNewSprite.x = sampleX + sampleWidth + sampleMargin;
|
|
403
404
|
sampleNewSprite.y = sampleY;
|
|
404
405
|
sampleNewSprite.tint = this._new.color;
|
|
405
406
|
sampleNewSprite.alpha = this._new.alpha;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-picker-color.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-picker-color.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { InteractionEvent, Point, Sprite, Texture } from \"pixi.js\";\nimport { DApplications } from \"./d-applications\";\nimport { DBase, DBaseOptions, DThemeBase } from \"./d-base\";\nimport { DColorAndAlpha } from \"./d-color-and-alpha\";\nimport { DInputRealAndLabel } from \"./d-input-real-and-label\";\nimport { DInputTextAndLabel } from \"./d-input-text-and-label\";\nimport { DPickerColorAndAlpha } from \"./d-picker-color-and-alpha\";\nimport { DColorRecent } from \"./d-color-recent\";\nimport { UtilHsv } from \"./util/util-hsv\";\nimport { UtilPointerEvent } from \"./util/util-pointer-event\";\nimport { UtilRgb } from \"./util/util-rgb\";\nimport { DBaseInteractive } from \"./d-base-interactive\";\nimport { DColorStandard } from \"./d-color-standard\";\nimport { DSelect } from \"./d-select\";\nimport { DLayoutHorizontal } from \"./d-layout-horizontal\";\nimport { DColorType } from \"./d-color-type\";\nimport { DColorStandards } from \"./d-color-standards\";\nimport { DColorRecents } from \"./d-color-recents\";\n\nexport interface DPickerColorOptions<THEME extends DThemePickerColor = DThemePickerColor>\n\textends DBaseOptions<THEME> {}\n\nexport interface DThemePickerColor extends DThemeBase {\n\tgetMainWidth(): number;\n\tgetMainHeight(): number;\n\tgetMainTexture(): Texture;\n\tgetMainBaseTexture(): Texture;\n\tgetMainPointerTexture(): Texture;\n\tgetMainPointerColor(): number;\n\tgetMainPointerAlpha(): number;\n\n\tgetBaseHeight(): number;\n\tgetBaseMargin(): number;\n\tgetBaseTexture(): Texture;\n\tgetBasePointerTexture(): Texture;\n\tgetBasePointerColor(): number;\n\tgetBasePointerAlpha(): number;\n\n\tgetAlphaHeight(): number;\n\tgetAlphaMargin(): number;\n\tgetAlphaTexture(): Texture;\n\tgetAlphaCheckerboardTexture(): Texture;\n\tgetAlphaPointerTexture(): Texture;\n\tgetAlphaPointerColor(): number;\n\tgetAlphaPointerAlpha(): number;\n\n\tgetRecentMargin(): number;\n\tgetRecentColorMargin(): number;\n\tgetRecentColorWidth(): number;\n\tgetRecentColorHeight(): number;\n\tgetRecentColorCount(): number;\n\tgetRecentCheckerboardTexture(): Texture;\n\tgetRecentTexture(): Texture;\n\n\tgetInputMargin(): number;\n\tgetInputLabelWidth(): number;\n\n\tgetSampleCheckerboardOldTexture(): Texture;\n\tgetSampleCheckerboardNewTexture(): Texture;\n\tgetSampleOldTexture(): Texture;\n\tgetSampleNewTexture(): Texture;\n\n\tgetStandardColorCount(): number;\n\tgetStandardColorWidth(): number;\n\tgetStandardColorHeight(): number;\n\tgetStandardColorMargin(): number;\n\tgetStandardTexture(): Texture;\n\n\ttoColorTypeLabel(type: DColorType): string;\n}\n\nexport class DPickerColor<\n\tTHEME extends DThemePickerColor = DThemePickerColor,\n\tOPTIONS extends DPickerColorOptions<THEME> = DPickerColorOptions<THEME>\n> extends DBase<THEME, OPTIONS> {\n\tprotected _mainBaseSprite!: Sprite;\n\tprotected _mainSprite!: Sprite;\n\tprotected _mainPointerSprite!: Sprite;\n\tprotected _pointerPoint!: Point;\n\tprotected _mainStandardColor!: DLayoutHorizontal;\n\tprotected _onMainMoveBound!: (e: InteractionEvent) => void;\n\tprotected _onMainUpBound!: (e: InteractionEvent) => void;\n\n\tprotected _standardColorSprites!: Sprite[];\n\tprotected _standard!: DColorStandard;\n\n\tprotected _baseSprite!: Sprite;\n\tprotected _basePointerSprite!: Sprite;\n\tprotected _onBaseMoveBound!: (e: InteractionEvent) => void;\n\tprotected _onBaseUpBound!: (e: InteractionEvent) => void;\n\n\tprotected _alphaCheckerboardSprite!: Sprite;\n\tprotected _alphaSprite!: Sprite;\n\tprotected _alphaPointerSprite!: Sprite;\n\tprotected _onAlphaMoveBound!: (e: InteractionEvent) => void;\n\tprotected _onAlphaUpBound!: (e: InteractionEvent) => void;\n\n\tprotected _recentColorSprites!: Sprite[];\n\tprotected _recent!: DColorRecent;\n\n\tprotected _inputAndLabelColor!: DInputTextAndLabel;\n\tprotected _inputAndLabelAlpha!: DInputRealAndLabel;\n\n\tprotected _sampleCurrentCheckerboardSprite!: Sprite;\n\tprotected _sampleCurrentSprite!: Sprite;\n\tprotected _sampleNewCheckerboardSprite!: Sprite;\n\tprotected _sampleNewSprite!: Sprite;\n\n\tprotected _current!: DColorAndAlpha;\n\tprotected _currentPicker!: DPickerColorAndAlpha;\n\tprotected _base!: number;\n\tprotected _new!: DColorAndAlpha;\n\tprotected _newPicker!: DPickerColorAndAlpha;\n\n\tprotected _typeSelector!: DSelect<DColorType>;\n\n\tget current(): DColorAndAlpha {\n\t\treturn this._currentPicker;\n\t}\n\n\tget new(): DColorAndAlpha {\n\t\treturn this._newPicker;\n\t}\n\n\tget recent(): DColorRecent {\n\t\treturn this._recent;\n\t}\n\n\tget standard(): DColorStandard {\n\t\treturn this._standard;\n\t}\n\n\tprotected init(options?: OPTIONS): void {\n\t\tsuper.init(options);\n\n\t\tthis._base = 0xff0000;\n\t\tthis._new = { color: 0xffffff, alpha: 1 };\n\t\tthis._newPicker = new DPickerColorAndAlpha(\n\t\t\tthis._new,\n\t\t\t(color) => {\n\t\t\t\tthis.setColorNew(color);\n\t\t\t},\n\t\t\t(alpha: number) => {\n\t\t\t\tthis.setAlphaNew(alpha);\n\t\t\t}\n\t\t);\n\t\tthis._current = { color: 0xffffff, alpha: 1 };\n\t\tthis._currentPicker = new DPickerColorAndAlpha(\n\t\t\tthis._current,\n\t\t\t(color) => {\n\t\t\t\tthis.setColorCurrent(color);\n\t\t\t},\n\t\t\t(alpha: number) => {\n\t\t\t\tthis.setAlphaCurrent(alpha);\n\t\t\t}\n\t\t);\n\n\t\tconst theme = this.theme;\n\t\tconst padding = this._padding;\n\t\tconst paddingTop = padding.getTop();\n\t\tconst paddingRight = padding.getRight();\n\t\tconst paddingBottom = padding.getBottom();\n\t\tconst paddingLeft = padding.getLeft();\n\t\tthis._pointerPoint = new Point();\n\t\tconst mainWidth = theme.getMainWidth();\n\t\tconst mainHeight = theme.getMainHeight();\n\n\t\tconst typeSelector = new DSelect<DColorType>({\n\t\t\tparent: this,\n\t\t\tvalue: DColorType.STANDARD,\n\t\t\tmenu: {\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: DColorType.STANDARD,\n\t\t\t\t\t\ttext: {\n\t\t\t\t\t\t\tvalue: theme.toColorTypeLabel(DColorType.STANDARD)\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: DColorType.CUSTOM,\n\t\t\t\t\t\ttext: {\n\t\t\t\t\t\t\tvalue: theme.toColorTypeLabel(DColorType.CUSTOM)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\ton: {\n\t\t\t\tchange: (value: DColorType): void => {\n\t\t\t\t\tthis.onTypeChange(value);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tthis._typeSelector = typeSelector;\n\t\ttypeSelector.x = paddingLeft;\n\t\ttypeSelector.y = paddingTop;\n\t\ttypeSelector.width = mainWidth;\n\t\ttypeSelector.interactive = true;\n\t\tthis.addChild(typeSelector);\n\n\t\t// Main\n\t\tconst mainBaseSprite = new Sprite(theme.getMainBaseTexture());\n\t\tthis._mainBaseSprite = mainBaseSprite;\n\t\tmainBaseSprite.x = paddingLeft;\n\t\tmainBaseSprite.y = typeSelector.y + typeSelector.height + theme.getBaseMargin();\n\t\tmainBaseSprite.width = mainWidth;\n\t\tmainBaseSprite.height = mainHeight;\n\t\tmainBaseSprite.interactive = true;\n\t\tmainBaseSprite.visible = false;\n\t\tthis.addChild(mainBaseSprite);\n\n\t\tconst mainSprite = new Sprite(theme.getMainTexture());\n\t\tthis._mainSprite = mainSprite;\n\t\tmainSprite.x = paddingLeft;\n\t\tmainSprite.y = typeSelector.y + typeSelector.height + theme.getBaseMargin();\n\t\tmainSprite.tint = this._base;\n\t\tmainSprite.interactive = false;\n\t\tmainSprite.visible = false;\n\t\tthis.addChild(mainSprite);\n\n\t\t// Main event handling\n\t\tthis._onMainMoveBound = (e: InteractionEvent): void => {\n\t\t\tthis.onMainMove(e);\n\t\t};\n\t\tthis._onMainUpBound = (e: InteractionEvent): void => {\n\t\t\tthis.onMainUp(e);\n\t\t};\n\t\tmainBaseSprite.on(UtilPointerEvent.down, (e: InteractionEvent) => {\n\t\t\tthis.onMainDown(e);\n\t\t});\n\n\t\t// Base color picker\n\t\tconst baseSprite = new Sprite(theme.getBaseTexture());\n\t\tthis._baseSprite = baseSprite;\n\t\tbaseSprite.x = paddingLeft;\n\t\tbaseSprite.y = mainBaseSprite.y + mainBaseSprite.height + theme.getBaseMargin();\n\t\tbaseSprite.interactive = true;\n\t\tbaseSprite.visible = false;\n\t\tthis.addChild(baseSprite);\n\n\t\t// Base event\n\t\tthis._onBaseMoveBound = (e: InteractionEvent): void => {\n\t\t\tthis.onBaseMove(e);\n\t\t};\n\t\tthis._onBaseUpBound = (e: InteractionEvent): void => {\n\t\t\tthis.onBaseUp(e);\n\t\t};\n\t\tbaseSprite.on(UtilPointerEvent.down, (e: InteractionEvent) => {\n\t\t\tthis.onBaseDown(e);\n\t\t});\n\n\t\t// Standard main color\n\t\tthis._standardColorSprites = [];\n\t\tconst standardColorSprites = this._standardColorSprites;\n\t\tconst standardColorCount = theme.getStandardColorCount();\n\t\tconst standardColorWidth = theme.getStandardColorWidth();\n\t\tconst standardColorHeight = theme.getStandardColorHeight();\n\t\tconst standardColorMargin = theme.getStandardColorMargin();\n\t\tconst standardColorY = typeSelector.y + typeSelector.height + theme.getBaseMargin();\n\t\tconst standardTexture = theme.getStandardTexture();\n\t\tconst standard = (this._standard = DColorStandards.getInstance());\n\t\tstandard.on(\"change\", () => {\n\t\t\tthis.onStandardChange();\n\t\t});\n\t\tconst onStandardClick = (e: InteractionEvent) => {\n\t\t\tconst sprite = e.currentTarget;\n\t\t\tif (sprite instanceof Sprite) {\n\t\t\t\tthis.setColorNew(sprite.tint);\n\t\t\t}\n\t\t};\n\t\tfor (let i = 0; i < standardColorCount; ++i) {\n\t\t\tconst x = paddingLeft + (i % 10) * (standardColorWidth + standardColorMargin);\n\t\t\tconst y =\n\t\t\t\tstandardColorY + Math.floor(i / 10) * (standardColorHeight + standardColorMargin);\n\n\t\t\tconst sprite = new Sprite(standardTexture);\n\t\t\tconst standardColor = standard.get(i);\n\t\t\tif (standardColor != null) {\n\t\t\t\tsprite.tint = standardColor;\n\t\t\t\tsprite.alpha = 1;\n\t\t\t} else {\n\t\t\t\tsprite.tint = 0xffffff;\n\t\t\t\tsprite.alpha = 1;\n\t\t\t}\n\t\t\tsprite.x = x;\n\t\t\tsprite.y = y;\n\t\t\tsprite.buttonMode = true;\n\t\t\tsprite.interactive = true;\n\t\t\tsprite.on(UtilPointerEvent.tap, onStandardClick);\n\t\t\tstandardColorSprites.push(sprite);\n\t\t}\n\t\tconst mainStandardColor = new DLayoutHorizontal({\n\t\t\twidth: \"auto\",\n\t\t\theight: \"auto\",\n\t\t\trow: 8,\n\t\t\tchildren: standardColorSprites\n\t\t});\n\t\tthis._mainStandardColor = mainStandardColor;\n\t\tmainStandardColor.visible = true;\n\t\tthis.addChild(mainStandardColor);\n\n\t\t// Alpha picker\n\t\tconst alphaCheckerboardSprite = new Sprite(theme.getAlphaCheckerboardTexture());\n\t\tthis._alphaCheckerboardSprite = alphaCheckerboardSprite;\n\t\talphaCheckerboardSprite.x = padding.getLeft();\n\t\talphaCheckerboardSprite.y = baseSprite.y + theme.getBaseHeight() + theme.getBaseMargin();\n\t\talphaCheckerboardSprite.interactive = false;\n\t\tthis.addChild(alphaCheckerboardSprite);\n\n\t\tconst alphaSprite = new Sprite(theme.getAlphaTexture());\n\t\talphaSprite.tint = this._new.color;\n\t\talphaSprite.interactive = true;\n\t\talphaCheckerboardSprite.addChild(alphaSprite);\n\n\t\t// Alpha event\n\t\tthis._onAlphaMoveBound = (e: InteractionEvent): void => {\n\t\t\tthis.onAlphaMove(e);\n\t\t};\n\t\tthis._onAlphaUpBound = (e: InteractionEvent): void => {\n\t\t\tthis.onAlphaUp(e);\n\t\t};\n\t\talphaSprite.on(UtilPointerEvent.down, (e: InteractionEvent) => {\n\t\t\tthis.onAlphaDown(e);\n\t\t});\n\n\t\t// Pointers\n\t\tconst mainPointerSprite = new Sprite(theme.getMainPointerTexture());\n\t\tthis._mainPointerSprite = mainPointerSprite;\n\t\tmainPointerSprite.x = paddingLeft;\n\t\tmainPointerSprite.y = typeSelector.y + typeSelector.height + theme.getBaseMargin();\n\t\tmainPointerSprite.anchor.x = 0.5;\n\t\tmainPointerSprite.anchor.y = 0.5;\n\t\tmainPointerSprite.tint = theme.getMainPointerColor();\n\t\tmainPointerSprite.alpha = theme.getMainPointerAlpha();\n\t\tmainPointerSprite.interactive = false;\n\t\tmainPointerSprite.visible = false;\n\t\tthis.addChild(mainPointerSprite);\n\n\t\tconst alphaPointerSprite = new Sprite(theme.getAlphaPointerTexture());\n\t\tthis._alphaPointerSprite = alphaPointerSprite;\n\t\talphaPointerSprite.x = mainWidth;\n\t\talphaPointerSprite.y = alphaCheckerboardSprite.height * 0.5;\n\t\talphaPointerSprite.tint = theme.getAlphaPointerColor();\n\t\talphaPointerSprite.alpha = theme.getAlphaPointerAlpha();\n\t\talphaPointerSprite.anchor.set(0.5, 0.5);\n\t\talphaPointerSprite.interactive = false;\n\t\talphaCheckerboardSprite.addChild(alphaPointerSprite);\n\n\t\tconst basePointerSprite = new Sprite(theme.getBasePointerTexture());\n\t\tthis._basePointerSprite = basePointerSprite;\n\t\tbasePointerSprite.x = 0;\n\t\tbasePointerSprite.y = baseSprite.height * 0.5;\n\t\tbasePointerSprite.tint = theme.getBasePointerColor();\n\t\tbasePointerSprite.alpha = theme.getBasePointerAlpha();\n\t\tbasePointerSprite.anchor.set(0.5, 0.5);\n\t\tbasePointerSprite.interactive = false;\n\t\tbaseSprite.addChild(basePointerSprite);\n\n\t\t// Recently used\n\t\tthis._recentColorSprites = [];\n\t\tconst recentColorSprites = this._recentColorSprites;\n\t\tconst recentColorCount = theme.getRecentColorCount();\n\t\tconst recentColorWidth = theme.getRecentColorWidth();\n\t\tconst recentColorHeight = theme.getRecentColorHeight();\n\t\tconst recentColorMargin = theme.getRecentColorMargin();\n\t\tconst recentColorY =\n\t\t\talphaCheckerboardSprite.y + theme.getAlphaHeight() + theme.getRecentMargin();\n\t\tconst recentCheckerboardTexture = theme.getRecentCheckerboardTexture();\n\t\tconst recentTexture = theme.getRecentTexture();\n\t\tconst recent = (this._recent = DColorRecents.getInstance());\n\t\trecent.on(\"change\", () => {\n\t\t\tthis.onRecentChange();\n\t\t});\n\t\tconst onRecentClick = (e: InteractionEvent) => {\n\t\t\tconst sprite = e.currentTarget;\n\t\t\tif (sprite instanceof Sprite) {\n\t\t\t\tthis.setColorNew(sprite.tint);\n\t\t\t\tthis.setAlphaNew(sprite.alpha);\n\t\t\t}\n\t\t};\n\t\tfor (let i = 0; i < recentColorCount; ++i) {\n\t\t\tconst x = paddingLeft + i * (recentColorWidth + recentColorMargin);\n\t\t\tconst y = recentColorY;\n\n\t\t\tconst checkerboardSprite = new Sprite(recentCheckerboardTexture);\n\t\t\tcheckerboardSprite.x = x;\n\t\t\tcheckerboardSprite.y = y;\n\t\t\tcheckerboardSprite.interactive = false;\n\t\t\tthis.addChild(checkerboardSprite);\n\n\t\t\tconst sprite = new Sprite(recentTexture);\n\t\t\tconst recentColorAndAlpha = recent.get(i);\n\t\t\tif (recentColorAndAlpha != null) {\n\t\t\t\tsprite.tint = recentColorAndAlpha.color;\n\t\t\t\tsprite.alpha = recentColorAndAlpha.alpha;\n\t\t\t} else {\n\t\t\t\tsprite.tint = 0xffffff;\n\t\t\t\tsprite.alpha = 0;\n\t\t\t}\n\t\t\tsprite.x = x;\n\t\t\tsprite.y = y;\n\t\t\tsprite.buttonMode = true;\n\t\t\tsprite.interactive = true;\n\t\t\tsprite.on(UtilPointerEvent.tap, onRecentClick);\n\t\t\tthis.addChild(sprite);\n\t\t\trecentColorSprites.push(sprite);\n\t\t}\n\n\t\t// Input color\n\t\tconst inputMargin = theme.getInputMargin();\n\t\tconst inputLabelWidth = theme.getInputLabelWidth();\n\t\tconst inputY = recentColorY + recentColorHeight + inputMargin;\n\t\tconst inputWidth = (mainWidth - inputMargin) * 0.5;\n\t\tconst inputAndLabelColor = new DInputTextAndLabel({\n\t\t\tparent: this,\n\t\t\tx: paddingLeft,\n\t\t\ty: inputY,\n\t\t\twidth: inputWidth,\n\t\t\tlabel: {\n\t\t\t\twidth: inputLabelWidth,\n\t\t\t\ttext: {\n\t\t\t\t\tvalue: \"#\"\n\t\t\t\t},\n\t\t\t\tinteractive: DBaseInteractive.NONE\n\t\t\t},\n\t\t\tinput: {\n\t\t\t\tweight: 1,\n\t\t\t\ttext: {\n\t\t\t\t\tvalue: \"FFFFFF\"\n\t\t\t\t},\n\t\t\t\ton: {\n\t\t\t\t\tinput: (code: string): void => {\n\t\t\t\t\t\tconst color = UtilRgb.fromCode(code);\n\t\t\t\t\t\tif (color != null) {\n\t\t\t\t\t\t\tthis.setColorNew(color);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tthis._inputAndLabelColor = inputAndLabelColor;\n\t\tconst inputHeight = inputAndLabelColor.height;\n\n\t\tconst inputAndLabelAlpha = new DInputRealAndLabel({\n\t\t\tparent: this,\n\t\t\tx: paddingLeft,\n\t\t\ty: inputY + inputHeight + inputMargin,\n\t\t\twidth: inputWidth,\n\t\t\tlabel: {\n\t\t\t\twidth: inputLabelWidth,\n\t\t\t\ttext: {\n\t\t\t\t\tvalue: \"A\"\n\t\t\t\t},\n\t\t\t\tinteractive: DBaseInteractive.NONE\n\t\t\t},\n\t\t\tinput: {\n\t\t\t\tweight: 1,\n\t\t\t\ttext: {\n\t\t\t\t\tvalue: 1\n\t\t\t\t},\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\ton: {\n\t\t\t\t\tinput: (value: number) => {\n\t\t\t\t\t\tthis.setAlphaNew(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tthis._inputAndLabelAlpha = inputAndLabelAlpha;\n\n\t\t// Samples\n\t\tconst sampleWidth = (inputWidth - inputLabelWidth - inputMargin) * 0.5;\n\t\tconst sampleHeight = inputHeight + inputMargin + inputHeight;\n\t\tconst sampleX = paddingLeft + (mainWidth - inputMargin) * 0.5 + inputMargin;\n\t\tconst sampleY =\n\t\t\tinputY + (inputHeight + inputMargin + inputAndLabelAlpha.height - sampleHeight) * 0.5;\n\n\t\tconst sampleCurrentCheckerboardSprite = new Sprite(theme.getSampleCheckerboardOldTexture());\n\t\tthis._sampleCurrentCheckerboardSprite = sampleCurrentCheckerboardSprite;\n\t\tsampleCurrentCheckerboardSprite.x = sampleX;\n\t\tsampleCurrentCheckerboardSprite.y = sampleY;\n\t\tsampleCurrentCheckerboardSprite.width = sampleWidth;\n\t\tsampleCurrentCheckerboardSprite.height = sampleHeight;\n\t\tsampleCurrentCheckerboardSprite.interactive = false;\n\t\tthis.addChild(sampleCurrentCheckerboardSprite);\n\n\t\tconst current = this._current;\n\t\tconst sampleCurrentSprite = new Sprite(theme.getSampleOldTexture());\n\t\tthis._sampleCurrentSprite = sampleCurrentSprite;\n\t\tsampleCurrentSprite.x = sampleX;\n\t\tsampleCurrentSprite.y = sampleY;\n\t\tsampleCurrentSprite.tint = current.color;\n\t\tsampleCurrentSprite.alpha = current.alpha;\n\t\tsampleCurrentSprite.width = sampleWidth;\n\t\tsampleCurrentSprite.height = sampleHeight;\n\t\tsampleCurrentSprite.interactive = true;\n\t\tsampleCurrentSprite.buttonMode = true;\n\t\tsampleCurrentSprite.on(UtilPointerEvent.tap, (): void => {\n\t\t\tthis.setColorNew(current.color);\n\t\t\tthis.setAlphaNew(current.alpha);\n\t\t});\n\t\tthis.addChild(sampleCurrentSprite);\n\n\t\tconst sampleNewCheckerboardSprite = new Sprite(theme.getSampleCheckerboardNewTexture());\n\t\tthis._sampleNewCheckerboardSprite = sampleNewCheckerboardSprite;\n\t\tsampleNewCheckerboardSprite.x = sampleX + sampleWidth;\n\t\tsampleNewCheckerboardSprite.y = sampleY;\n\t\tsampleNewCheckerboardSprite.width = sampleWidth;\n\t\tsampleNewCheckerboardSprite.height = sampleHeight;\n\t\tsampleNewCheckerboardSprite.interactive = false;\n\t\tthis.addChild(sampleNewCheckerboardSprite);\n\n\t\tconst sampleNewSprite = new Sprite(theme.getSampleNewTexture());\n\t\tthis._sampleNewSprite = sampleNewSprite;\n\t\tsampleNewSprite.x = sampleX + sampleWidth;\n\t\tsampleNewSprite.y = sampleY;\n\t\tsampleNewSprite.tint = this._new.color;\n\t\tsampleNewSprite.alpha = this._new.alpha;\n\t\tsampleNewSprite.width = sampleWidth;\n\t\tsampleNewSprite.height = sampleHeight;\n\t\tsampleNewSprite.interactive = false;\n\t\tthis.addChild(sampleNewSprite);\n\n\t\t// Width\n\t\tif (options == null || options.width == null) {\n\t\t\tthis.width = paddingLeft + mainWidth + paddingRight;\n\t\t}\n\n\t\t// Height\n\t\tif (options == null || options.height == null) {\n\t\t\tthis.height =\n\t\t\t\tinputY +\n\t\t\t\tinputAndLabelColor.height +\n\t\t\t\tinputMargin +\n\t\t\t\tinputAndLabelAlpha.height +\n\t\t\t\tpaddingBottom;\n\t\t}\n\t}\n\n\tprotected onMainDown(e: InteractionEvent): void {\n\t\tthis.onMainPick(e.data.global);\n\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer) {\n\t\t\tconst stage = layer.stage;\n\t\t\tstage.on(UtilPointerEvent.move, this._onMainMoveBound);\n\t\t\tstage.on(UtilPointerEvent.up, this._onMainUpBound);\n\t\t\tstage.on(UtilPointerEvent.upoutside, this._onMainUpBound);\n\t\t}\n\t}\n\n\tprotected onMainMove(e: InteractionEvent): void {\n\t\tthis.onMainPick(e.data.global);\n\t}\n\n\tprotected onMainUp(e: InteractionEvent): void {\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer) {\n\t\t\tconst stage = layer.stage;\n\t\t\tstage.off(UtilPointerEvent.move, this._onMainMoveBound);\n\t\t\tstage.off(UtilPointerEvent.up, this._onMainUpBound);\n\t\t}\n\t}\n\n\tprotected toMainHex(b: number, w0: number, w1: number, shift: number): number {\n\t\treturn Math.max(0, Math.min(255, w0 * 255 + w1 * ((b >> shift) & 0xff))) << shift;\n\t}\n\n\tprotected toMainColor(\n\t\tbase: number,\n\t\ttx: number,\n\t\tty: number,\n\t\twidth: number,\n\t\theight: number\n\t): number {\n\t\tconst hw = width * 0.5;\n\t\tconst ux = Math.max(0, Math.min(1, ((tx - hw) * (1 - ty / height) + hw) / width));\n\t\tconst uy = Math.max(0, Math.min(1, ty / height));\n\t\tconst w1 = Math.abs(0.5 * uy - ux);\n\t\tconst w0 = 1 - w1 - uy;\n\t\tconst r = this.toMainHex(base, w0, w1, 16);\n\t\tconst g = this.toMainHex(base, w0, w1, 8);\n\t\tconst b = this.toMainHex(base, w0, w1, 0);\n\t\treturn r | g | b;\n\t}\n\n\tprotected onMainPick(global: Point): void {\n\t\tconst mainBaseSprite = this._mainBaseSprite;\n\t\tconst point = this._pointerPoint;\n\t\tconst theme = this.theme;\n\t\tconst mainWidth = theme.getMainWidth();\n\t\tconst mainHeight = theme.getMainHeight();\n\t\tthis.toLocal(global, undefined, point);\n\t\tconst x = Math.max(0, Math.min(mainWidth, point.x - mainBaseSprite.x));\n\t\tconst y = Math.max(0, Math.min(mainHeight, point.y - mainBaseSprite.y));\n\t\tconst mainPointerSprite = this._mainPointerSprite;\n\t\tmainPointerSprite.position.set(mainBaseSprite.x + x, mainBaseSprite.y + y);\n\t\tthis.onColorNew(this.toMainColor(this._base, x, y, mainWidth, mainHeight));\n\t}\n\n\tprotected setColorCurrent(color: number): void {\n\t\tthis._sampleCurrentSprite.tint = this._current.color = color;\n\t}\n\n\tprotected setAlphaCurrent(alpha: number): void {\n\t\tthis._sampleCurrentSprite.alpha = this._current.alpha = alpha;\n\t}\n\n\tprotected setColorNew(color: number): void {\n\t\tconst theme = this.theme;\n\t\tconst mainWidth = theme.getMainWidth();\n\t\tconst mainHeight = theme.getMainHeight();\n\t\tconst mainBaseSprite = this._mainBaseSprite;\n\n\t\t// Base color\n\t\tconst hsv = UtilHsv.fromRgb(color);\n\t\tthis._mainSprite.tint = this._base = UtilHsv.toRgb(hsv[0], 255, 255);\n\n\t\t// Move the base pointer\n\t\tconst basePointerSprite = this._basePointerSprite;\n\t\tbasePointerSprite.x = Math.max(0, Math.min(1, hsv[0] / 360)) * mainWidth;\n\n\t\t// Move the main pointer\n\t\tconst ns = Math.max(0, Math.min(1, hsv[1] / 255));\n\t\tconst nv = Math.max(0, Math.min(1, 1 - hsv[2] / 255));\n\t\tconst mainPointerSprite = this._mainPointerSprite;\n\t\tmainPointerSprite.tint = nv < 0.45 ? theme.getMainPointerColor() : 0xffffff;\n\t\tmainPointerSprite.position.set(\n\t\t\tmainBaseSprite.x + ns * mainWidth,\n\t\t\tmainBaseSprite.y + nv * mainHeight\n\t\t);\n\n\t\t// New color\n\t\tthis.onColorNew(color);\n\t}\n\n\tprotected onColorNew(color: number): void {\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer) {\n\t\t\tlayer.lock();\n\t\t}\n\t\tthis._sampleNewSprite.tint = this._new.color = color;\n\t\tthis._inputAndLabelColor.input.value = UtilRgb.toCode(color);\n\t\tthis.emit(\"newcolorchange\", color, this);\n\t\tif (layer) {\n\t\t\tlayer.unlock();\n\t\t\tlayer.update();\n\t\t}\n\t}\n\n\tprotected onBaseDown(e: InteractionEvent): void {\n\t\tthis.onBasePick(e.data.global);\n\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer) {\n\t\t\tconst stage = layer.stage;\n\t\t\tstage.on(UtilPointerEvent.move, this._onBaseMoveBound);\n\t\t\tstage.on(UtilPointerEvent.up, this._onBaseUpBound);\n\t\t}\n\t}\n\n\tprotected onBaseMove(e: InteractionEvent): void {\n\t\tthis.onBasePick(e.data.global);\n\t}\n\n\tprotected onBaseUp(e: InteractionEvent): void {\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer) {\n\t\t\tconst stage = layer.stage;\n\t\t\tstage.off(UtilPointerEvent.move, this._onBaseMoveBound);\n\t\t\tstage.off(UtilPointerEvent.up, this._onBaseUpBound);\n\t\t}\n\t}\n\n\tprotected toBaseHex(t: number, shift: number): number {\n\t\treturn Math.max(0, Math.min(255, t * 6 * 255)) << shift;\n\t}\n\n\tprotected toBaseColor(t: number): number {\n\t\tif (t <= 0.167) {\n\t\t\treturn 0xff0000 + this.toBaseHex(t, 8);\n\t\t} else if (t <= 0.333) {\n\t\t\tt = 0.333 - t;\n\t\t\treturn 0x00ff00 + this.toBaseHex(t, 16);\n\t\t} else if (t <= 0.5) {\n\t\t\tt -= 0.333;\n\t\t\treturn 0x00ff00 + this.toBaseHex(t, 0);\n\t\t} else if (t < 0.667) {\n\t\t\tt = 0.667 - t;\n\t\t\treturn 0x0000ff + this.toBaseHex(t, 8);\n\t\t} else if (t < 0.883) {\n\t\t\tt -= 0.667;\n\t\t\treturn 0x0000ff + this.toBaseHex(t, 16);\n\t\t} else {\n\t\t\tt = 0.883 - t;\n\t\t\treturn 0xff0000 + this.toBaseHex(t, 0);\n\t\t}\n\t}\n\n\tprotected onBasePick(global: Point): void {\n\t\tconst point = this._pointerPoint;\n\t\tconst padding = this._padding;\n\t\tconst theme = this.theme;\n\t\tconst mainWidth = theme.getMainWidth();\n\t\tthis.toLocal(global, undefined, point);\n\t\tconst x = Math.max(0, Math.min(mainWidth, point.x - padding.getLeft()));\n\t\tconst basePointerSprite = this._basePointerSprite;\n\t\tbasePointerSprite.x = x;\n\t\tthis.onColorBase(this.toBaseColor(x / mainWidth));\n\t}\n\n\tprotected setColorBase(h: number): void {\n\t\tconst theme = this.theme;\n\t\tconst mainWidth = theme.getMainWidth();\n\t\tconst basePointerSprite = this._basePointerSprite;\n\t\tbasePointerSprite.x = Math.max(0, Math.min(1, h / 360)) * mainWidth;\n\t\tthis.onColorBase(UtilHsv.toRgb(h, 255, 255));\n\t}\n\n\tprotected onColorBase(color: number): void {\n\t\tthis._mainSprite.tint = this._base = color;\n\n\t\tconst mainPointerSprite = this._mainPointerSprite;\n\t\tconst theme = this.theme;\n\t\tconst mainWidth = theme.getMainWidth();\n\t\tconst mainHeight = theme.getMainHeight();\n\t\tconst padding = this._padding;\n\t\tthis.onColorNew(\n\t\t\tthis.toMainColor(\n\t\t\t\tthis._base,\n\t\t\t\tmainPointerSprite.x - padding.getLeft(),\n\t\t\t\tmainPointerSprite.y - padding.getTop(),\n\t\t\t\tmainWidth,\n\t\t\t\tmainHeight\n\t\t\t)\n\t\t);\n\t}\n\n\tprotected onAlphaDown(e: InteractionEvent): void {\n\t\tthis.onAlphaPick(e.data.global);\n\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer) {\n\t\t\tconst stage = layer.stage;\n\t\t\tstage.on(UtilPointerEvent.move, this._onAlphaMoveBound);\n\t\t\tstage.on(UtilPointerEvent.up, this._onAlphaUpBound);\n\t\t}\n\t}\n\n\tprotected onAlphaMove(e: InteractionEvent): void {\n\t\tthis.onAlphaPick(e.data.global);\n\t}\n\n\tprotected onAlphaUp(e: InteractionEvent): void {\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer) {\n\t\t\tconst stage = layer.stage;\n\t\t\tstage.off(UtilPointerEvent.move, this._onAlphaMoveBound);\n\t\t\tstage.off(UtilPointerEvent.up, this._onAlphaUpBound);\n\t\t}\n\t}\n\n\tprotected onAlphaPick(global: Point): void {\n\t\tconst point = this._pointerPoint;\n\t\tconst padding = this._padding;\n\t\tconst theme = this.theme;\n\t\tconst mainWidth = theme.getMainWidth();\n\t\tthis.toLocal(global, undefined, point);\n\t\tconst x = Math.max(0, Math.min(mainWidth, point.x - padding.getLeft()));\n\t\tthis._alphaPointerSprite.x = x;\n\t\tthis.onAlphaNew(x / mainWidth);\n\t}\n\n\tprotected setAlphaNew(alpha: number): void {\n\t\tconst theme = this.theme;\n\t\tconst mainWidth = theme.getMainWidth();\n\t\tthis._alphaPointerSprite.x = Math.max(0, Math.min(1, alpha)) * mainWidth;\n\t\tthis.onAlphaNew(alpha);\n\t}\n\n\tprotected onAlphaNew(alpha: number): void {\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer) {\n\t\t\tlayer.lock();\n\t\t}\n\t\tthis._sampleNewSprite.alpha = this._new.alpha = alpha;\n\t\tthis._inputAndLabelAlpha.input.value = Number(alpha.toFixed(2));\n\t\tthis.emit(\"newalphachange\", alpha, this);\n\t\tif (layer) {\n\t\t\tlayer.unlock();\n\t\t\tlayer.update();\n\t\t}\n\t}\n\n\tprotected onRecentChange(): void {\n\t\tconst sprites = this._recentColorSprites;\n\t\tconst recent = this._recent;\n\t\tfor (let i = 0, imax = sprites.length; i < imax; ++i) {\n\t\t\tconst sprite = sprites[i];\n\t\t\tconst colorAndAlpha = recent.get(i);\n\t\t\tif (colorAndAlpha != null) {\n\t\t\t\tsprite.tint = colorAndAlpha.color;\n\t\t\t\tsprite.alpha = colorAndAlpha.alpha;\n\t\t\t} else {\n\t\t\t\tsprite.tint = 0xffffff;\n\t\t\t\tsprite.alpha = 0;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onStandardChange(): void {\n\t\tconst sprites = this._standardColorSprites;\n\t\tconst standard = this._standard;\n\t\tfor (let i = 0, imax = sprites.length; i < imax; ++i) {\n\t\t\tconst sprite = sprites[i];\n\t\t\tconst color = standard.get(i);\n\t\t\tif (color != null) {\n\t\t\t\tsprite.tint = color;\n\t\t\t\tsprite.alpha = 1;\n\t\t\t} else {\n\t\t\t\tsprite.tint = 0xffffff;\n\t\t\t\tsprite.alpha = 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onTypeChange(type: DColorType): void {\n\t\tswitch (type) {\n\t\t\tcase DColorType.CUSTOM:\n\t\t\t\tthis._mainBaseSprite.visible = true;\n\t\t\t\tthis._mainSprite.visible = true;\n\t\t\t\tthis._mainPointerSprite.visible = true;\n\t\t\t\tthis._baseSprite.visible = true;\n\t\t\t\tthis._mainStandardColor.visible = false;\n\t\t\t\tbreak;\n\t\t\tcase DColorType.STANDARD:\n\t\t\t\tthis._mainBaseSprite.visible = false;\n\t\t\t\tthis._mainSprite.visible = false;\n\t\t\t\tthis._mainPointerSprite.visible = false;\n\t\t\t\tthis._baseSprite.visible = false;\n\t\t\t\tthis._mainStandardColor.visible = true;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DPickerColor\";\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"d-picker-color.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-picker-color.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAoB,KAAK,EAAE,MAAM,EAAW,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,KAAK,EAA4B,MAAM,UAAU,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAyDlD;IAGU,gCAAqB;IAH/B;;IA4wBA,CAAC;IA/tBA,sBAAI,iCAAO;aAAX;YACC,OAAO,IAAI,CAAC,cAAc,CAAC;QAC5B,CAAC;;;OAAA;IAED,sBAAI,6BAAG;aAAP;YACC,OAAO,IAAI,CAAC,UAAU,CAAC;QACxB,CAAC;;;OAAA;IAED,sBAAI,gCAAM;aAAV;YACC,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;;;OAAA;IAED,sBAAI,kCAAQ;aAAZ;YACC,OAAO,IAAI,CAAC,SAAS,CAAC;QACvB,CAAC;;;OAAA;IAES,2BAAI,GAAd,UAAe,OAAiB;QAAhC,iBAsZC;QArZA,iBAAM,IAAI,YAAC,OAAO,CAAC,CAAC;QAEpB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,oBAAoB,CACzC,IAAI,CAAC,IAAI,EACT,UAAC,KAAK;YACL,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,EACD,UAAC,KAAa;YACb,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CACD,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,oBAAoB,CAC7C,IAAI,CAAC,QAAQ,EACb,UAAC,KAAK;YACL,KAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,EACD,UAAC,KAAa;YACb,KAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CACD,CAAC;QAEF,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAM,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QACpC,IAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACxC,IAAM,aAAa,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;QAC1C,IAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,IAAI,KAAK,EAAE,CAAC;QACjC,IAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACvC,IAAM,UAAU,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QAEzC,IAAM,YAAY,GAAG,IAAI,OAAO,CAAa;YAC5C,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,UAAU,CAAC,QAAQ;YAC1B,IAAI,EAAE;gBACL,KAAK,EAAE;oBACN;wBACC,KAAK,EAAE,UAAU,CAAC,QAAQ;wBAC1B,IAAI,EAAE;4BACL,KAAK,EAAE,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC;yBAClD;qBACD;oBACD;wBACC,KAAK,EAAE,UAAU,CAAC,MAAM;wBACxB,IAAI,EAAE;4BACL,KAAK,EAAE,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC;yBAChD;qBACD;iBACD;aACD;YACD,EAAE,EAAE;gBACH,MAAM,EAAE,UAAC,KAAiB;oBACzB,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;aACD;SACD,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,YAAY,CAAC,CAAC,GAAG,WAAW,CAAC;QAC7B,YAAY,CAAC,CAAC,GAAG,UAAU,CAAC;QAC5B,YAAY,CAAC,KAAK,GAAG,SAAS,CAAC;QAC/B,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAE5B,OAAO;QACP,IAAM,cAAc,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,cAAc,CAAC,CAAC,GAAG,WAAW,CAAC;QAC/B,cAAc,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QAChF,cAAc,CAAC,KAAK,GAAG,SAAS,CAAC;QACjC,cAAc,CAAC,MAAM,GAAG,UAAU,CAAC;QACnC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC;QAClC,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAE9B,IAAM,UAAU,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,UAAU,CAAC,CAAC,GAAG,WAAW,CAAC;QAC3B,UAAU,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QAC5E,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC;QAC/B,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAE1B,sBAAsB;QACtB,IAAI,CAAC,gBAAgB,GAAG,UAAC,CAAmB;YAC3C,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,UAAC,CAAmB;YACzC,KAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;QACF,cAAc,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAC,CAAmB;YAC5D,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,oBAAoB;QACpB,IAAM,UAAU,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,UAAU,CAAC,CAAC,GAAG,WAAW,CAAC;QAC3B,UAAU,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QAChF,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;QAC9B,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAE1B,aAAa;QACb,IAAI,CAAC,gBAAgB,GAAG,UAAC,CAAmB;YAC3C,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,UAAC,CAAmB;YACzC,KAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;QACF,UAAU,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAC,CAAmB;YACxD,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAChC,IAAM,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACxD,IAAM,kBAAkB,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;QACzD,IAAM,kBAAkB,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;QACzD,IAAM,mBAAmB,GAAG,KAAK,CAAC,sBAAsB,EAAE,CAAC;QAC3D,IAAM,mBAAmB,GAAG,KAAK,CAAC,sBAAsB,EAAE,CAAC;QAC3D,IAAM,cAAc,GAAG,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QACpF,IAAM,eAAe,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC;QACnD,IAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC;QAClE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE;YACrB,KAAI,CAAC,gBAAgB,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,IAAM,eAAe,GAAG,UAAC,CAAmB;YAC3C,IAAM,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC;YAC/B,IAAI,MAAM,YAAY,MAAM,EAAE;gBAC7B,KAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAC9B;QACF,CAAC,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,EAAE,CAAC,EAAE;YAC5C,IAAM,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,kBAAkB,GAAG,mBAAmB,CAAC,CAAC;YAC9E,IAAM,CAAC,GACN,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,CAAC;YAEnF,IAAM,MAAM,GAAG,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC;YAC3C,IAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,aAAa,IAAI,IAAI,EAAE;gBAC1B,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC;gBAC5B,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;aACjB;iBAAM;gBACN,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;gBACvB,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;aACjB;YACD,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;YACb,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;YACb,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;YACzB,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;YAC1B,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;YACjD,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClC;QACD,IAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC;YAC/C,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE,oBAAoB;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAEjC,eAAe;QACf,IAAM,uBAAuB,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,wBAAwB,GAAG,uBAAuB,CAAC;QACxD,uBAAuB,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC9C,uBAAuB,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QACzF,uBAAuB,CAAC,WAAW,GAAG,KAAK,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;QAEvC,IAAM,WAAW,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;QACxD,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACnC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;QAC/B,uBAAuB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE9C,cAAc;QACd,IAAI,CAAC,iBAAiB,GAAG,UAAC,CAAmB;YAC5C,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,UAAC,CAAmB;YAC1C,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC,CAAC;QACF,WAAW,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAC,CAAmB;YACzD,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,WAAW;QACX,IAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,iBAAiB,CAAC,CAAC,GAAG,WAAW,CAAC;QAClC,iBAAiB,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QACnF,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;QACjC,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;QACjC,iBAAiB,CAAC,IAAI,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;QACrD,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;QACtD,iBAAiB,CAAC,WAAW,GAAG,KAAK,CAAC;QACtC,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAEjC,IAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;QAC9C,kBAAkB,CAAC,CAAC,GAAG,SAAS,CAAC;QACjC,kBAAkB,CAAC,CAAC,GAAG,uBAAuB,CAAC,MAAM,GAAG,GAAG,CAAC;QAC5D,kBAAkB,CAAC,IAAI,GAAG,KAAK,CAAC,oBAAoB,EAAE,CAAC;QACvD,kBAAkB,CAAC,KAAK,GAAG,KAAK,CAAC,oBAAoB,EAAE,CAAC;QACxD,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACxC,kBAAkB,CAAC,WAAW,GAAG,KAAK,CAAC;QACvC,uBAAuB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAErD,IAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;QACxB,iBAAiB,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC;QAC9C,iBAAiB,CAAC,IAAI,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;QACrD,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;QACtD,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,iBAAiB,CAAC,WAAW,GAAG,KAAK,CAAC;QACtC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAEvC,gBAAgB;QAChB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACpD,IAAM,gBAAgB,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;QACrD,IAAM,gBAAgB,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;QACrD,IAAM,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,EAAE,CAAC;QACvD,IAAM,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,EAAE,CAAC;QACvD,IAAM,YAAY,GACjB,uBAAuB,CAAC,CAAC,GAAG,KAAK,CAAC,cAAc,EAAE,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;QAC9E,IAAM,yBAAyB,GAAG,KAAK,CAAC,4BAA4B,EAAE,CAAC;QACvE,IAAM,aAAa,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC/C,IAAM,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE;YACnB,KAAI,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,IAAM,aAAa,GAAG,UAAC,CAAmB;YACzC,IAAM,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC;YAC/B,IAAI,MAAM,YAAY,MAAM,EAAE;gBAC7B,KAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC9B,KAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aAC/B;QACF,CAAC,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,EAAE,EAAE,CAAC,EAAE;YAC1C,IAAM,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,CAAC;YACnE,IAAM,CAAC,GAAG,YAAY,CAAC;YAEvB,IAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,yBAAyB,CAAC,CAAC;YACjE,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC;YACzB,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC;YACzB,kBAAkB,CAAC,WAAW,GAAG,KAAK,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;YAElC,IAAM,MAAM,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;YACzC,IAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,mBAAmB,IAAI,IAAI,EAAE;gBAChC,MAAM,CAAC,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC;gBACxC,MAAM,CAAC,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC;aACzC;iBAAM;gBACN,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;gBACvB,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;aACjB;YACD,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;YACb,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;YACb,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;YACzB,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;YAC1B,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;YAC/C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtB,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAChC;QAED,cAAc;QACd,IAAM,WAAW,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QAC3C,IAAM,eAAe,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC;QACnD,IAAM,MAAM,GAAG,YAAY,GAAG,iBAAiB,GAAG,WAAW,CAAC;QAC9D,IAAM,UAAU,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC;QACnD,IAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAAC;YACjD,MAAM,EAAE,IAAI;YACZ,CAAC,EAAE,WAAW;YACd,CAAC,EAAE,MAAM;YACT,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE;gBACN,KAAK,EAAE,eAAe;gBACtB,IAAI,EAAE;oBACL,KAAK,EAAE,GAAG;iBACV;gBACD,WAAW,EAAE,gBAAgB,CAAC,IAAI;aAClC;YACD,KAAK,EAAE;gBACN,MAAM,EAAE,CAAC;gBACT,IAAI,EAAE;oBACL,KAAK,EAAE,QAAQ;iBACf;gBACD,EAAE,EAAE;oBACH,KAAK,EAAE,UAAC,IAAY;wBACnB,IAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBACrC,IAAI,KAAK,IAAI,IAAI,EAAE;4BAClB,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;yBACxB;oBACF,CAAC;iBACD;aACD;SACD,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;QAC9C,IAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC;QAE9C,IAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAAC;YACjD,MAAM,EAAE,IAAI;YACZ,CAAC,EAAE,WAAW;YACd,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,WAAW;YACrC,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE;gBACN,KAAK,EAAE,eAAe;gBACtB,IAAI,EAAE;oBACL,KAAK,EAAE,GAAG;iBACV;gBACD,WAAW,EAAE,gBAAgB,CAAC,IAAI;aAClC;YACD,KAAK,EAAE;gBACN,MAAM,EAAE,CAAC;gBACT,IAAI,EAAE;oBACL,KAAK,EAAE,CAAC;iBACR;gBACD,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;gBACN,EAAE,EAAE;oBACH,KAAK,EAAE,UAAC,KAAa;wBACpB,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBACzB,CAAC;iBACD;aACD;SACD,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;QAE9C,UAAU;QACV,IAAM,WAAW,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QAC3C,IAAM,YAAY,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;QAC7C,IAAM,OAAO,GAAG,WAAW,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,GAAG,GAAG,WAAW,CAAC;QAC5E,IAAM,OAAO,GACZ,MAAM,GAAG,CAAC,WAAW,GAAG,WAAW,GAAG,kBAAkB,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC;QACvF,IAAM,YAAY,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;QAE7C,IAAM,+BAA+B,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,gCAAgC,GAAG,+BAA+B,CAAC;QACxE,+BAA+B,CAAC,CAAC,GAAG,OAAO,CAAC;QAC5C,+BAA+B,CAAC,CAAC,GAAG,OAAO,CAAC;QAC5C,+BAA+B,CAAC,KAAK,GAAG,WAAW,CAAC;QACpD,+BAA+B,CAAC,MAAM,GAAG,YAAY,CAAC;QACtD,+BAA+B,CAAC,WAAW,GAAG,KAAK,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;QAE/C,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAC;QAChD,mBAAmB,CAAC,CAAC,GAAG,OAAO,CAAC;QAChC,mBAAmB,CAAC,CAAC,GAAG,OAAO,CAAC;QAChC,mBAAmB,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;QACzC,mBAAmB,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC1C,mBAAmB,CAAC,KAAK,GAAG,WAAW,CAAC;QACxC,mBAAmB,CAAC,MAAM,GAAG,YAAY,CAAC;QAC1C,mBAAmB,CAAC,WAAW,GAAG,IAAI,CAAC;QACvC,mBAAmB,CAAC,UAAU,GAAG,IAAI,CAAC;QACtC,mBAAmB,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE;YAC5C,KAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAChC,KAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAEnC,IAAM,2BAA2B,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,CAAC,CAAC;QACxF,IAAI,CAAC,4BAA4B,GAAG,2BAA2B,CAAC;QAChE,2BAA2B,CAAC,CAAC,GAAG,OAAO,GAAG,WAAW,GAAG,YAAY,CAAC;QACrE,2BAA2B,CAAC,CAAC,GAAG,OAAO,CAAC;QACxC,2BAA2B,CAAC,KAAK,GAAG,WAAW,CAAC;QAChD,2BAA2B,CAAC,MAAM,GAAG,YAAY,CAAC;QAClD,2BAA2B,CAAC,WAAW,GAAG,KAAK,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;QAE3C,IAAM,eAAe,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,eAAe,CAAC,CAAC,GAAG,OAAO,GAAG,WAAW,GAAG,YAAY,CAAC;QACzD,eAAe,CAAC,CAAC,GAAG,OAAO,CAAC;QAC5B,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACvC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACxC,eAAe,CAAC,KAAK,GAAG,WAAW,CAAC;QACpC,eAAe,CAAC,MAAM,GAAG,YAAY,CAAC;QACtC,eAAe,CAAC,WAAW,GAAG,KAAK,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAE/B,QAAQ;QACR,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;YAC7C,IAAI,CAAC,KAAK,GAAG,WAAW,GAAG,SAAS,GAAG,YAAY,CAAC;SACpD;QAED,SAAS;QACT,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE;YAC9C,IAAI,CAAC,MAAM;gBACV,MAAM;oBACN,kBAAkB,CAAC,MAAM;oBACzB,WAAW;oBACX,kBAAkB,CAAC,MAAM;oBACzB,aAAa,CAAC;SACf;IACF,CAAC;IAES,iCAAU,GAApB,UAAqB,CAAmB;QACvC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE/B,IAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK,EAAE;YACV,IAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1B,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACvD,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACnD,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SAC1D;IACF,CAAC;IAES,iCAAU,GAApB,UAAqB,CAAmB;QACvC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAES,+BAAQ,GAAlB,UAAmB,CAAmB;QACrC,IAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK,EAAE;YACV,IAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1B,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACxD,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SACpD;IACF,CAAC;IAES,gCAAS,GAAnB,UAAoB,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,KAAa;QACnE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;IACnF,CAAC;IAES,kCAAW,GAArB,UACC,IAAY,EACZ,EAAU,EACV,EAAU,EACV,KAAa,EACb,MAAc;QAEd,IAAM,EAAE,GAAG,KAAK,GAAG,GAAG,CAAC;QACvB,IAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAClF,IAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;QACjD,IAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QACnC,IAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;QACvB,IAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1C,IAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAES,iCAAU,GAApB,UAAqB,MAAa;QACjC,IAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5C,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;QACjC,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACvC,IAAM,UAAU,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACvC,IAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAClD,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IAC5E,CAAC;IAES,sCAAe,GAAzB,UAA0B,KAAa;QACtC,IAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;IAC9D,CAAC;IAES,sCAAe,GAAzB,UAA0B,KAAa;QACtC,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;IAC/D,CAAC;IAES,kCAAW,GAArB,UAAsB,KAAa;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACvC,IAAM,UAAU,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QACzC,IAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;QAE5C,aAAa;QACb,IAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAErE,wBAAwB;QACxB,IAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAClD,iBAAiB,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;QAEzE,wBAAwB;QACxB,IAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAClD,IAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACtD,IAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAClD,iBAAiB,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC5E,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAC7B,cAAc,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS,EACjC,cAAc,CAAC,CAAC,GAAG,EAAE,GAAG,UAAU,CAClC,CAAC;QAEF,YAAY;QACZ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAES,iCAAU,GAApB,UAAqB,KAAa;QACjC,IAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK,EAAE;YACV,KAAK,CAAC,IAAI,EAAE,CAAC;SACb;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,KAAK,EAAE;YACV,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,KAAK,CAAC,MAAM,EAAE,CAAC;SACf;IACF,CAAC;IAES,iCAAU,GAApB,UAAqB,CAAmB;QACvC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE/B,IAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK,EAAE;YACV,IAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1B,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACvD,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SACnD;IACF,CAAC;IAES,iCAAU,GAApB,UAAqB,CAAmB;QACvC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAES,+BAAQ,GAAlB,UAAmB,CAAmB;QACrC,IAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK,EAAE;YACV,IAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1B,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACxD,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SACpD;IACF,CAAC;IAES,gCAAS,GAAnB,UAAoB,CAAS,EAAE,KAAa;QAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC;IACzD,CAAC;IAES,kCAAW,GAArB,UAAsB,CAAS;QAC9B,IAAI,CAAC,IAAI,KAAK,EAAE;YACf,OAAO,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACvC;aAAM,IAAI,CAAC,IAAI,KAAK,EAAE;YACtB,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YACd,OAAO,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACxC;aAAM,IAAI,CAAC,IAAI,GAAG,EAAE;YACpB,CAAC,IAAI,KAAK,CAAC;YACX,OAAO,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACvC;aAAM,IAAI,CAAC,GAAG,KAAK,EAAE;YACrB,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YACd,OAAO,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACvC;aAAM,IAAI,CAAC,GAAG,KAAK,EAAE;YACrB,CAAC,IAAI,KAAK,CAAC;YACX,OAAO,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACxC;aAAM;YACN,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YACd,OAAO,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACvC;IACF,CAAC;IAES,iCAAU,GAApB,UAAqB,MAAa;QACjC,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;QACjC,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACvC,IAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACxE,IAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAClD,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IACnD,CAAC;IAES,mCAAY,GAAtB,UAAuB,CAAS;QAC/B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACvC,IAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAClD,iBAAiB,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;QACpE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IAES,kCAAW,GAArB,UAAsB,KAAa;QAClC,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAE3C,IAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAClD,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACvC,IAAM,UAAU,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QACzC,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,UAAU,CACd,IAAI,CAAC,WAAW,CACf,IAAI,CAAC,KAAK,EACV,iBAAiB,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,EACvC,iBAAiB,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EACtC,SAAS,EACT,UAAU,CACV,CACD,CAAC;IACH,CAAC;IAES,kCAAW,GAArB,UAAsB,CAAmB;QACxC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhC,IAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK,EAAE;YACV,IAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1B,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACxD,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;SACpD;IACF,CAAC;IAES,kCAAW,GAArB,UAAsB,CAAmB;QACxC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAES,gCAAS,GAAnB,UAAoB,CAAmB;QACtC,IAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK,EAAE;YACV,IAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1B,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACzD,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;SACrD;IACF,CAAC;IAES,kCAAW,GAArB,UAAsB,MAAa;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;QACjC,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACvC,IAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAChC,CAAC;IAES,kCAAW,GAArB,UAAsB,KAAa;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACvC,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC;QACzE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAES,iCAAU,GAApB,UAAqB,KAAa;QACjC,IAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK,EAAE;YACV,KAAK,CAAC,IAAI,EAAE,CAAC;SACb;QACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACtD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,KAAK,EAAE;YACV,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,KAAK,CAAC,MAAM,EAAE,CAAC;SACf;IACF,CAAC;IAES,qCAAc,GAAxB;QACC,IAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACzC,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YACrD,IAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,aAAa,IAAI,IAAI,EAAE;gBAC1B,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC;gBAClC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;aACnC;iBAAM;gBACN,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;gBACvB,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;aACjB;SACD;IACF,CAAC;IAES,uCAAgB,GAA1B;QACC,IAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAC3C,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YACrD,IAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,KAAK,IAAI,IAAI,EAAE;gBAClB,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;gBACpB,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;aACjB;iBAAM;gBACN,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;gBACvB,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;aACjB;SACD;IACF,CAAC;IAES,mCAAY,GAAtB,UAAuB,IAAgB;QACtC,QAAQ,IAAI,EAAE;YACb,KAAK,UAAU,CAAC,MAAM;gBACrB,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpC,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;gBAChC,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;gBACvC,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;gBAChC,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,KAAK,CAAC;gBACxC,MAAM;YACP,KAAK,UAAU,CAAC,QAAQ;gBACvB,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrC,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,KAAK,CAAC;gBACxC,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;gBACvC,MAAM;YACP;gBACC,OAAO;SACR;IACF,CAAC;IAES,8BAAO,GAAjB;QACC,OAAO,cAAc,CAAC;IACvB,CAAC;IACF,mBAAC;AAAD,CAAC,AA5wBD,CAGU,KAAK,GAywBd","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { InteractionEvent, Point, Sprite, Texture } from \"pixi.js\";\nimport { DApplications } from \"./d-applications\";\nimport { DBase, DBaseOptions, DThemeBase } from \"./d-base\";\nimport { DColorAndAlpha } from \"./d-color-and-alpha\";\nimport { DInputRealAndLabel } from \"./d-input-real-and-label\";\nimport { DInputTextAndLabel } from \"./d-input-text-and-label\";\nimport { DPickerColorAndAlpha } from \"./d-picker-color-and-alpha\";\nimport { DColorRecent } from \"./d-color-recent\";\nimport { UtilHsv } from \"./util/util-hsv\";\nimport { UtilPointerEvent } from \"./util/util-pointer-event\";\nimport { UtilRgb } from \"./util/util-rgb\";\nimport { DBaseInteractive } from \"./d-base-interactive\";\nimport { DColorStandard } from \"./d-color-standard\";\nimport { DSelect } from \"./d-select\";\nimport { DLayoutHorizontal } from \"./d-layout-horizontal\";\nimport { DColorType } from \"./d-color-type\";\nimport { DColorStandards } from \"./d-color-standards\";\nimport { DColorRecents } from \"./d-color-recents\";\n\nexport interface DPickerColorOptions<THEME extends DThemePickerColor = DThemePickerColor>\n\textends DBaseOptions<THEME> {}\n\nexport interface DThemePickerColor extends DThemeBase {\n\tgetMainWidth(): number;\n\tgetMainHeight(): number;\n\tgetMainTexture(): Texture;\n\tgetMainBaseTexture(): Texture;\n\tgetMainPointerTexture(): Texture;\n\tgetMainPointerColor(): number;\n\tgetMainPointerAlpha(): number;\n\n\tgetBaseHeight(): number;\n\tgetBaseMargin(): number;\n\tgetBaseTexture(): Texture;\n\tgetBasePointerTexture(): Texture;\n\tgetBasePointerColor(): number;\n\tgetBasePointerAlpha(): number;\n\n\tgetAlphaHeight(): number;\n\tgetAlphaMargin(): number;\n\tgetAlphaTexture(): Texture;\n\tgetAlphaCheckerboardTexture(): Texture;\n\tgetAlphaPointerTexture(): Texture;\n\tgetAlphaPointerColor(): number;\n\tgetAlphaPointerAlpha(): number;\n\n\tgetRecentMargin(): number;\n\tgetRecentColorMargin(): number;\n\tgetRecentColorWidth(): number;\n\tgetRecentColorHeight(): number;\n\tgetRecentColorCount(): number;\n\tgetRecentCheckerboardTexture(): Texture;\n\tgetRecentTexture(): Texture;\n\n\tgetInputMargin(): number;\n\tgetInputLabelWidth(): number;\n\n\tgetSampleWidth(): number;\n\tgetSampleHeight(): number;\n\tgetSampleMargin(): number;\n\tgetSampleCheckerboardOldTexture(): Texture;\n\tgetSampleCheckerboardNewTexture(): Texture;\n\tgetSampleOldTexture(): Texture;\n\tgetSampleNewTexture(): Texture;\n\n\tgetStandardColorCount(): number;\n\tgetStandardColorWidth(): number;\n\tgetStandardColorHeight(): number;\n\tgetStandardColorMargin(): number;\n\tgetStandardTexture(): Texture;\n\n\ttoColorTypeLabel(type: DColorType): string;\n}\n\nexport class DPickerColor<\n\tTHEME extends DThemePickerColor = DThemePickerColor,\n\tOPTIONS extends DPickerColorOptions<THEME> = DPickerColorOptions<THEME>\n> extends DBase<THEME, OPTIONS> {\n\tprotected _mainBaseSprite!: Sprite;\n\tprotected _mainSprite!: Sprite;\n\tprotected _mainPointerSprite!: Sprite;\n\tprotected _pointerPoint!: Point;\n\tprotected _mainStandardColor!: DLayoutHorizontal;\n\tprotected _onMainMoveBound!: (e: InteractionEvent) => void;\n\tprotected _onMainUpBound!: (e: InteractionEvent) => void;\n\n\tprotected _standardColorSprites!: Sprite[];\n\tprotected _standard!: DColorStandard;\n\n\tprotected _baseSprite!: Sprite;\n\tprotected _basePointerSprite!: Sprite;\n\tprotected _onBaseMoveBound!: (e: InteractionEvent) => void;\n\tprotected _onBaseUpBound!: (e: InteractionEvent) => void;\n\n\tprotected _alphaCheckerboardSprite!: Sprite;\n\tprotected _alphaSprite!: Sprite;\n\tprotected _alphaPointerSprite!: Sprite;\n\tprotected _onAlphaMoveBound!: (e: InteractionEvent) => void;\n\tprotected _onAlphaUpBound!: (e: InteractionEvent) => void;\n\n\tprotected _recentColorSprites!: Sprite[];\n\tprotected _recent!: DColorRecent;\n\n\tprotected _inputAndLabelColor!: DInputTextAndLabel;\n\tprotected _inputAndLabelAlpha!: DInputRealAndLabel;\n\n\tprotected _sampleCurrentCheckerboardSprite!: Sprite;\n\tprotected _sampleCurrentSprite!: Sprite;\n\tprotected _sampleNewCheckerboardSprite!: Sprite;\n\tprotected _sampleNewSprite!: Sprite;\n\n\tprotected _current!: DColorAndAlpha;\n\tprotected _currentPicker!: DPickerColorAndAlpha;\n\tprotected _base!: number;\n\tprotected _new!: DColorAndAlpha;\n\tprotected _newPicker!: DPickerColorAndAlpha;\n\n\tprotected _typeSelector!: DSelect<DColorType>;\n\n\tget current(): DColorAndAlpha {\n\t\treturn this._currentPicker;\n\t}\n\n\tget new(): DColorAndAlpha {\n\t\treturn this._newPicker;\n\t}\n\n\tget recent(): DColorRecent {\n\t\treturn this._recent;\n\t}\n\n\tget standard(): DColorStandard {\n\t\treturn this._standard;\n\t}\n\n\tprotected init(options?: OPTIONS): void {\n\t\tsuper.init(options);\n\n\t\tthis._base = 0xff0000;\n\t\tthis._new = { color: 0xffffff, alpha: 1 };\n\t\tthis._newPicker = new DPickerColorAndAlpha(\n\t\t\tthis._new,\n\t\t\t(color) => {\n\t\t\t\tthis.setColorNew(color);\n\t\t\t},\n\t\t\t(alpha: number) => {\n\t\t\t\tthis.setAlphaNew(alpha);\n\t\t\t}\n\t\t);\n\t\tthis._current = { color: 0xffffff, alpha: 1 };\n\t\tthis._currentPicker = new DPickerColorAndAlpha(\n\t\t\tthis._current,\n\t\t\t(color) => {\n\t\t\t\tthis.setColorCurrent(color);\n\t\t\t},\n\t\t\t(alpha: number) => {\n\t\t\t\tthis.setAlphaCurrent(alpha);\n\t\t\t}\n\t\t);\n\n\t\tconst theme = this.theme;\n\t\tconst padding = this._padding;\n\t\tconst paddingTop = padding.getTop();\n\t\tconst paddingRight = padding.getRight();\n\t\tconst paddingBottom = padding.getBottom();\n\t\tconst paddingLeft = padding.getLeft();\n\t\tthis._pointerPoint = new Point();\n\t\tconst mainWidth = theme.getMainWidth();\n\t\tconst mainHeight = theme.getMainHeight();\n\n\t\tconst typeSelector = new DSelect<DColorType>({\n\t\t\tparent: this,\n\t\t\tvalue: DColorType.STANDARD,\n\t\t\tmenu: {\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: DColorType.STANDARD,\n\t\t\t\t\t\ttext: {\n\t\t\t\t\t\t\tvalue: theme.toColorTypeLabel(DColorType.STANDARD)\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: DColorType.CUSTOM,\n\t\t\t\t\t\ttext: {\n\t\t\t\t\t\t\tvalue: theme.toColorTypeLabel(DColorType.CUSTOM)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\ton: {\n\t\t\t\tchange: (value: DColorType): void => {\n\t\t\t\t\tthis.onTypeChange(value);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tthis._typeSelector = typeSelector;\n\t\ttypeSelector.x = paddingLeft;\n\t\ttypeSelector.y = paddingTop;\n\t\ttypeSelector.width = mainWidth;\n\t\ttypeSelector.interactive = true;\n\t\tthis.addChild(typeSelector);\n\n\t\t// Main\n\t\tconst mainBaseSprite = new Sprite(theme.getMainBaseTexture());\n\t\tthis._mainBaseSprite = mainBaseSprite;\n\t\tmainBaseSprite.x = paddingLeft;\n\t\tmainBaseSprite.y = typeSelector.y + typeSelector.height + theme.getBaseMargin();\n\t\tmainBaseSprite.width = mainWidth;\n\t\tmainBaseSprite.height = mainHeight;\n\t\tmainBaseSprite.interactive = true;\n\t\tmainBaseSprite.visible = false;\n\t\tthis.addChild(mainBaseSprite);\n\n\t\tconst mainSprite = new Sprite(theme.getMainTexture());\n\t\tthis._mainSprite = mainSprite;\n\t\tmainSprite.x = paddingLeft;\n\t\tmainSprite.y = typeSelector.y + typeSelector.height + theme.getBaseMargin();\n\t\tmainSprite.tint = this._base;\n\t\tmainSprite.interactive = false;\n\t\tmainSprite.visible = false;\n\t\tthis.addChild(mainSprite);\n\n\t\t// Main event handling\n\t\tthis._onMainMoveBound = (e: InteractionEvent): void => {\n\t\t\tthis.onMainMove(e);\n\t\t};\n\t\tthis._onMainUpBound = (e: InteractionEvent): void => {\n\t\t\tthis.onMainUp(e);\n\t\t};\n\t\tmainBaseSprite.on(UtilPointerEvent.down, (e: InteractionEvent) => {\n\t\t\tthis.onMainDown(e);\n\t\t});\n\n\t\t// Base color picker\n\t\tconst baseSprite = new Sprite(theme.getBaseTexture());\n\t\tthis._baseSprite = baseSprite;\n\t\tbaseSprite.x = paddingLeft;\n\t\tbaseSprite.y = mainBaseSprite.y + mainBaseSprite.height + theme.getBaseMargin();\n\t\tbaseSprite.interactive = true;\n\t\tbaseSprite.visible = false;\n\t\tthis.addChild(baseSprite);\n\n\t\t// Base event\n\t\tthis._onBaseMoveBound = (e: InteractionEvent): void => {\n\t\t\tthis.onBaseMove(e);\n\t\t};\n\t\tthis._onBaseUpBound = (e: InteractionEvent): void => {\n\t\t\tthis.onBaseUp(e);\n\t\t};\n\t\tbaseSprite.on(UtilPointerEvent.down, (e: InteractionEvent) => {\n\t\t\tthis.onBaseDown(e);\n\t\t});\n\n\t\t// Standard main color\n\t\tthis._standardColorSprites = [];\n\t\tconst standardColorSprites = this._standardColorSprites;\n\t\tconst standardColorCount = theme.getStandardColorCount();\n\t\tconst standardColorWidth = theme.getStandardColorWidth();\n\t\tconst standardColorHeight = theme.getStandardColorHeight();\n\t\tconst standardColorMargin = theme.getStandardColorMargin();\n\t\tconst standardColorY = typeSelector.y + typeSelector.height + theme.getBaseMargin();\n\t\tconst standardTexture = theme.getStandardTexture();\n\t\tconst standard = (this._standard = DColorStandards.getInstance());\n\t\tstandard.on(\"change\", () => {\n\t\t\tthis.onStandardChange();\n\t\t});\n\t\tconst onStandardClick = (e: InteractionEvent) => {\n\t\t\tconst sprite = e.currentTarget;\n\t\t\tif (sprite instanceof Sprite) {\n\t\t\t\tthis.setColorNew(sprite.tint);\n\t\t\t}\n\t\t};\n\t\tfor (let i = 0; i < standardColorCount; ++i) {\n\t\t\tconst x = paddingLeft + (i % 10) * (standardColorWidth + standardColorMargin);\n\t\t\tconst y =\n\t\t\t\tstandardColorY + Math.floor(i / 10) * (standardColorHeight + standardColorMargin);\n\n\t\t\tconst sprite = new Sprite(standardTexture);\n\t\t\tconst standardColor = standard.get(i);\n\t\t\tif (standardColor != null) {\n\t\t\t\tsprite.tint = standardColor;\n\t\t\t\tsprite.alpha = 1;\n\t\t\t} else {\n\t\t\t\tsprite.tint = 0xffffff;\n\t\t\t\tsprite.alpha = 1;\n\t\t\t}\n\t\t\tsprite.x = x;\n\t\t\tsprite.y = y;\n\t\t\tsprite.buttonMode = true;\n\t\t\tsprite.interactive = true;\n\t\t\tsprite.on(UtilPointerEvent.tap, onStandardClick);\n\t\t\tstandardColorSprites.push(sprite);\n\t\t}\n\t\tconst mainStandardColor = new DLayoutHorizontal({\n\t\t\twidth: \"auto\",\n\t\t\theight: \"auto\",\n\t\t\trow: 8,\n\t\t\tchildren: standardColorSprites\n\t\t});\n\t\tthis._mainStandardColor = mainStandardColor;\n\t\tmainStandardColor.visible = true;\n\t\tthis.addChild(mainStandardColor);\n\n\t\t// Alpha picker\n\t\tconst alphaCheckerboardSprite = new Sprite(theme.getAlphaCheckerboardTexture());\n\t\tthis._alphaCheckerboardSprite = alphaCheckerboardSprite;\n\t\talphaCheckerboardSprite.x = padding.getLeft();\n\t\talphaCheckerboardSprite.y = baseSprite.y + theme.getBaseHeight() + theme.getBaseMargin();\n\t\talphaCheckerboardSprite.interactive = false;\n\t\tthis.addChild(alphaCheckerboardSprite);\n\n\t\tconst alphaSprite = new Sprite(theme.getAlphaTexture());\n\t\talphaSprite.tint = this._new.color;\n\t\talphaSprite.interactive = true;\n\t\talphaCheckerboardSprite.addChild(alphaSprite);\n\n\t\t// Alpha event\n\t\tthis._onAlphaMoveBound = (e: InteractionEvent): void => {\n\t\t\tthis.onAlphaMove(e);\n\t\t};\n\t\tthis._onAlphaUpBound = (e: InteractionEvent): void => {\n\t\t\tthis.onAlphaUp(e);\n\t\t};\n\t\talphaSprite.on(UtilPointerEvent.down, (e: InteractionEvent) => {\n\t\t\tthis.onAlphaDown(e);\n\t\t});\n\n\t\t// Pointers\n\t\tconst mainPointerSprite = new Sprite(theme.getMainPointerTexture());\n\t\tthis._mainPointerSprite = mainPointerSprite;\n\t\tmainPointerSprite.x = paddingLeft;\n\t\tmainPointerSprite.y = typeSelector.y + typeSelector.height + theme.getBaseMargin();\n\t\tmainPointerSprite.anchor.x = 0.5;\n\t\tmainPointerSprite.anchor.y = 0.5;\n\t\tmainPointerSprite.tint = theme.getMainPointerColor();\n\t\tmainPointerSprite.alpha = theme.getMainPointerAlpha();\n\t\tmainPointerSprite.interactive = false;\n\t\tmainPointerSprite.visible = false;\n\t\tthis.addChild(mainPointerSprite);\n\n\t\tconst alphaPointerSprite = new Sprite(theme.getAlphaPointerTexture());\n\t\tthis._alphaPointerSprite = alphaPointerSprite;\n\t\talphaPointerSprite.x = mainWidth;\n\t\talphaPointerSprite.y = alphaCheckerboardSprite.height * 0.5;\n\t\talphaPointerSprite.tint = theme.getAlphaPointerColor();\n\t\talphaPointerSprite.alpha = theme.getAlphaPointerAlpha();\n\t\talphaPointerSprite.anchor.set(0.5, 0.5);\n\t\talphaPointerSprite.interactive = false;\n\t\talphaCheckerboardSprite.addChild(alphaPointerSprite);\n\n\t\tconst basePointerSprite = new Sprite(theme.getBasePointerTexture());\n\t\tthis._basePointerSprite = basePointerSprite;\n\t\tbasePointerSprite.x = 0;\n\t\tbasePointerSprite.y = baseSprite.height * 0.5;\n\t\tbasePointerSprite.tint = theme.getBasePointerColor();\n\t\tbasePointerSprite.alpha = theme.getBasePointerAlpha();\n\t\tbasePointerSprite.anchor.set(0.5, 0.5);\n\t\tbasePointerSprite.interactive = false;\n\t\tbaseSprite.addChild(basePointerSprite);\n\n\t\t// Recently used\n\t\tthis._recentColorSprites = [];\n\t\tconst recentColorSprites = this._recentColorSprites;\n\t\tconst recentColorCount = theme.getRecentColorCount();\n\t\tconst recentColorWidth = theme.getRecentColorWidth();\n\t\tconst recentColorHeight = theme.getRecentColorHeight();\n\t\tconst recentColorMargin = theme.getRecentColorMargin();\n\t\tconst recentColorY =\n\t\t\talphaCheckerboardSprite.y + theme.getAlphaHeight() + theme.getRecentMargin();\n\t\tconst recentCheckerboardTexture = theme.getRecentCheckerboardTexture();\n\t\tconst recentTexture = theme.getRecentTexture();\n\t\tconst recent = (this._recent = DColorRecents.getInstance());\n\t\trecent.on(\"change\", () => {\n\t\t\tthis.onRecentChange();\n\t\t});\n\t\tconst onRecentClick = (e: InteractionEvent) => {\n\t\t\tconst sprite = e.currentTarget;\n\t\t\tif (sprite instanceof Sprite) {\n\t\t\t\tthis.setColorNew(sprite.tint);\n\t\t\t\tthis.setAlphaNew(sprite.alpha);\n\t\t\t}\n\t\t};\n\t\tfor (let i = 0; i < recentColorCount; ++i) {\n\t\t\tconst x = paddingLeft + i * (recentColorWidth + recentColorMargin);\n\t\t\tconst y = recentColorY;\n\n\t\t\tconst checkerboardSprite = new Sprite(recentCheckerboardTexture);\n\t\t\tcheckerboardSprite.x = x;\n\t\t\tcheckerboardSprite.y = y;\n\t\t\tcheckerboardSprite.interactive = false;\n\t\t\tthis.addChild(checkerboardSprite);\n\n\t\t\tconst sprite = new Sprite(recentTexture);\n\t\t\tconst recentColorAndAlpha = recent.get(i);\n\t\t\tif (recentColorAndAlpha != null) {\n\t\t\t\tsprite.tint = recentColorAndAlpha.color;\n\t\t\t\tsprite.alpha = recentColorAndAlpha.alpha;\n\t\t\t} else {\n\t\t\t\tsprite.tint = 0xffffff;\n\t\t\t\tsprite.alpha = 0;\n\t\t\t}\n\t\t\tsprite.x = x;\n\t\t\tsprite.y = y;\n\t\t\tsprite.buttonMode = true;\n\t\t\tsprite.interactive = true;\n\t\t\tsprite.on(UtilPointerEvent.tap, onRecentClick);\n\t\t\tthis.addChild(sprite);\n\t\t\trecentColorSprites.push(sprite);\n\t\t}\n\n\t\t// Input color\n\t\tconst inputMargin = theme.getInputMargin();\n\t\tconst inputLabelWidth = theme.getInputLabelWidth();\n\t\tconst inputY = recentColorY + recentColorHeight + inputMargin;\n\t\tconst inputWidth = (mainWidth - inputMargin) * 0.5;\n\t\tconst inputAndLabelColor = new DInputTextAndLabel({\n\t\t\tparent: this,\n\t\t\tx: paddingLeft,\n\t\t\ty: inputY,\n\t\t\twidth: inputWidth,\n\t\t\tlabel: {\n\t\t\t\twidth: inputLabelWidth,\n\t\t\t\ttext: {\n\t\t\t\t\tvalue: \"#\"\n\t\t\t\t},\n\t\t\t\tinteractive: DBaseInteractive.NONE\n\t\t\t},\n\t\t\tinput: {\n\t\t\t\tweight: 1,\n\t\t\t\ttext: {\n\t\t\t\t\tvalue: \"FFFFFF\"\n\t\t\t\t},\n\t\t\t\ton: {\n\t\t\t\t\tinput: (code: string): void => {\n\t\t\t\t\t\tconst color = UtilRgb.fromCode(code);\n\t\t\t\t\t\tif (color != null) {\n\t\t\t\t\t\t\tthis.setColorNew(color);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tthis._inputAndLabelColor = inputAndLabelColor;\n\t\tconst inputHeight = inputAndLabelColor.height;\n\n\t\tconst inputAndLabelAlpha = new DInputRealAndLabel({\n\t\t\tparent: this,\n\t\t\tx: paddingLeft,\n\t\t\ty: inputY + inputHeight + inputMargin,\n\t\t\twidth: inputWidth,\n\t\t\tlabel: {\n\t\t\t\twidth: inputLabelWidth,\n\t\t\t\ttext: {\n\t\t\t\t\tvalue: \"A\"\n\t\t\t\t},\n\t\t\t\tinteractive: DBaseInteractive.NONE\n\t\t\t},\n\t\t\tinput: {\n\t\t\t\tweight: 1,\n\t\t\t\ttext: {\n\t\t\t\t\tvalue: 1\n\t\t\t\t},\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\ton: {\n\t\t\t\t\tinput: (value: number) => {\n\t\t\t\t\t\tthis.setAlphaNew(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tthis._inputAndLabelAlpha = inputAndLabelAlpha;\n\n\t\t// Samples\n\t\tconst sampleWidth = theme.getSampleWidth();\n\t\tconst sampleHeight = theme.getSampleHeight();\n\t\tconst sampleX = paddingLeft + (mainWidth - inputMargin) * 0.5 + inputMargin;\n\t\tconst sampleY =\n\t\t\tinputY + (inputHeight + inputMargin + inputAndLabelAlpha.height - sampleHeight) * 0.5;\n\t\tconst sampleMargin = theme.getSampleMargin();\n\n\t\tconst sampleCurrentCheckerboardSprite = new Sprite(theme.getSampleCheckerboardOldTexture());\n\t\tthis._sampleCurrentCheckerboardSprite = sampleCurrentCheckerboardSprite;\n\t\tsampleCurrentCheckerboardSprite.x = sampleX;\n\t\tsampleCurrentCheckerboardSprite.y = sampleY;\n\t\tsampleCurrentCheckerboardSprite.width = sampleWidth;\n\t\tsampleCurrentCheckerboardSprite.height = sampleHeight;\n\t\tsampleCurrentCheckerboardSprite.interactive = false;\n\t\tthis.addChild(sampleCurrentCheckerboardSprite);\n\n\t\tconst current = this._current;\n\t\tconst sampleCurrentSprite = new Sprite(theme.getSampleOldTexture());\n\t\tthis._sampleCurrentSprite = sampleCurrentSprite;\n\t\tsampleCurrentSprite.x = sampleX;\n\t\tsampleCurrentSprite.y = sampleY;\n\t\tsampleCurrentSprite.tint = current.color;\n\t\tsampleCurrentSprite.alpha = current.alpha;\n\t\tsampleCurrentSprite.width = sampleWidth;\n\t\tsampleCurrentSprite.height = sampleHeight;\n\t\tsampleCurrentSprite.interactive = true;\n\t\tsampleCurrentSprite.buttonMode = true;\n\t\tsampleCurrentSprite.on(UtilPointerEvent.tap, (): void => {\n\t\t\tthis.setColorNew(current.color);\n\t\t\tthis.setAlphaNew(current.alpha);\n\t\t});\n\t\tthis.addChild(sampleCurrentSprite);\n\n\t\tconst sampleNewCheckerboardSprite = new Sprite(theme.getSampleCheckerboardNewTexture());\n\t\tthis._sampleNewCheckerboardSprite = sampleNewCheckerboardSprite;\n\t\tsampleNewCheckerboardSprite.x = sampleX + sampleWidth + sampleMargin;\n\t\tsampleNewCheckerboardSprite.y = sampleY;\n\t\tsampleNewCheckerboardSprite.width = sampleWidth;\n\t\tsampleNewCheckerboardSprite.height = sampleHeight;\n\t\tsampleNewCheckerboardSprite.interactive = false;\n\t\tthis.addChild(sampleNewCheckerboardSprite);\n\n\t\tconst sampleNewSprite = new Sprite(theme.getSampleNewTexture());\n\t\tthis._sampleNewSprite = sampleNewSprite;\n\t\tsampleNewSprite.x = sampleX + sampleWidth + sampleMargin;\n\t\tsampleNewSprite.y = sampleY;\n\t\tsampleNewSprite.tint = this._new.color;\n\t\tsampleNewSprite.alpha = this._new.alpha;\n\t\tsampleNewSprite.width = sampleWidth;\n\t\tsampleNewSprite.height = sampleHeight;\n\t\tsampleNewSprite.interactive = false;\n\t\tthis.addChild(sampleNewSprite);\n\n\t\t// Width\n\t\tif (options == null || options.width == null) {\n\t\t\tthis.width = paddingLeft + mainWidth + paddingRight;\n\t\t}\n\n\t\t// Height\n\t\tif (options == null || options.height == null) {\n\t\t\tthis.height =\n\t\t\t\tinputY +\n\t\t\t\tinputAndLabelColor.height +\n\t\t\t\tinputMargin +\n\t\t\t\tinputAndLabelAlpha.height +\n\t\t\t\tpaddingBottom;\n\t\t}\n\t}\n\n\tprotected onMainDown(e: InteractionEvent): void {\n\t\tthis.onMainPick(e.data.global);\n\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer) {\n\t\t\tconst stage = layer.stage;\n\t\t\tstage.on(UtilPointerEvent.move, this._onMainMoveBound);\n\t\t\tstage.on(UtilPointerEvent.up, this._onMainUpBound);\n\t\t\tstage.on(UtilPointerEvent.upoutside, this._onMainUpBound);\n\t\t}\n\t}\n\n\tprotected onMainMove(e: InteractionEvent): void {\n\t\tthis.onMainPick(e.data.global);\n\t}\n\n\tprotected onMainUp(e: InteractionEvent): void {\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer) {\n\t\t\tconst stage = layer.stage;\n\t\t\tstage.off(UtilPointerEvent.move, this._onMainMoveBound);\n\t\t\tstage.off(UtilPointerEvent.up, this._onMainUpBound);\n\t\t}\n\t}\n\n\tprotected toMainHex(b: number, w0: number, w1: number, shift: number): number {\n\t\treturn Math.max(0, Math.min(255, w0 * 255 + w1 * ((b >> shift) & 0xff))) << shift;\n\t}\n\n\tprotected toMainColor(\n\t\tbase: number,\n\t\ttx: number,\n\t\tty: number,\n\t\twidth: number,\n\t\theight: number\n\t): number {\n\t\tconst hw = width * 0.5;\n\t\tconst ux = Math.max(0, Math.min(1, ((tx - hw) * (1 - ty / height) + hw) / width));\n\t\tconst uy = Math.max(0, Math.min(1, ty / height));\n\t\tconst w1 = Math.abs(0.5 * uy - ux);\n\t\tconst w0 = 1 - w1 - uy;\n\t\tconst r = this.toMainHex(base, w0, w1, 16);\n\t\tconst g = this.toMainHex(base, w0, w1, 8);\n\t\tconst b = this.toMainHex(base, w0, w1, 0);\n\t\treturn r | g | b;\n\t}\n\n\tprotected onMainPick(global: Point): void {\n\t\tconst mainBaseSprite = this._mainBaseSprite;\n\t\tconst point = this._pointerPoint;\n\t\tconst theme = this.theme;\n\t\tconst mainWidth = theme.getMainWidth();\n\t\tconst mainHeight = theme.getMainHeight();\n\t\tthis.toLocal(global, undefined, point);\n\t\tconst x = Math.max(0, Math.min(mainWidth, point.x - mainBaseSprite.x));\n\t\tconst y = Math.max(0, Math.min(mainHeight, point.y - mainBaseSprite.y));\n\t\tconst mainPointerSprite = this._mainPointerSprite;\n\t\tmainPointerSprite.position.set(mainBaseSprite.x + x, mainBaseSprite.y + y);\n\t\tthis.onColorNew(this.toMainColor(this._base, x, y, mainWidth, mainHeight));\n\t}\n\n\tprotected setColorCurrent(color: number): void {\n\t\tthis._sampleCurrentSprite.tint = this._current.color = color;\n\t}\n\n\tprotected setAlphaCurrent(alpha: number): void {\n\t\tthis._sampleCurrentSprite.alpha = this._current.alpha = alpha;\n\t}\n\n\tprotected setColorNew(color: number): void {\n\t\tconst theme = this.theme;\n\t\tconst mainWidth = theme.getMainWidth();\n\t\tconst mainHeight = theme.getMainHeight();\n\t\tconst mainBaseSprite = this._mainBaseSprite;\n\n\t\t// Base color\n\t\tconst hsv = UtilHsv.fromRgb(color);\n\t\tthis._mainSprite.tint = this._base = UtilHsv.toRgb(hsv[0], 255, 255);\n\n\t\t// Move the base pointer\n\t\tconst basePointerSprite = this._basePointerSprite;\n\t\tbasePointerSprite.x = Math.max(0, Math.min(1, hsv[0] / 360)) * mainWidth;\n\n\t\t// Move the main pointer\n\t\tconst ns = Math.max(0, Math.min(1, hsv[1] / 255));\n\t\tconst nv = Math.max(0, Math.min(1, 1 - hsv[2] / 255));\n\t\tconst mainPointerSprite = this._mainPointerSprite;\n\t\tmainPointerSprite.tint = nv < 0.45 ? theme.getMainPointerColor() : 0xffffff;\n\t\tmainPointerSprite.position.set(\n\t\t\tmainBaseSprite.x + ns * mainWidth,\n\t\t\tmainBaseSprite.y + nv * mainHeight\n\t\t);\n\n\t\t// New color\n\t\tthis.onColorNew(color);\n\t}\n\n\tprotected onColorNew(color: number): void {\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer) {\n\t\t\tlayer.lock();\n\t\t}\n\t\tthis._sampleNewSprite.tint = this._new.color = color;\n\t\tthis._inputAndLabelColor.input.value = UtilRgb.toCode(color);\n\t\tthis.emit(\"newcolorchange\", color, this);\n\t\tif (layer) {\n\t\t\tlayer.unlock();\n\t\t\tlayer.update();\n\t\t}\n\t}\n\n\tprotected onBaseDown(e: InteractionEvent): void {\n\t\tthis.onBasePick(e.data.global);\n\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer) {\n\t\t\tconst stage = layer.stage;\n\t\t\tstage.on(UtilPointerEvent.move, this._onBaseMoveBound);\n\t\t\tstage.on(UtilPointerEvent.up, this._onBaseUpBound);\n\t\t}\n\t}\n\n\tprotected onBaseMove(e: InteractionEvent): void {\n\t\tthis.onBasePick(e.data.global);\n\t}\n\n\tprotected onBaseUp(e: InteractionEvent): void {\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer) {\n\t\t\tconst stage = layer.stage;\n\t\t\tstage.off(UtilPointerEvent.move, this._onBaseMoveBound);\n\t\t\tstage.off(UtilPointerEvent.up, this._onBaseUpBound);\n\t\t}\n\t}\n\n\tprotected toBaseHex(t: number, shift: number): number {\n\t\treturn Math.max(0, Math.min(255, t * 6 * 255)) << shift;\n\t}\n\n\tprotected toBaseColor(t: number): number {\n\t\tif (t <= 0.167) {\n\t\t\treturn 0xff0000 + this.toBaseHex(t, 8);\n\t\t} else if (t <= 0.333) {\n\t\t\tt = 0.333 - t;\n\t\t\treturn 0x00ff00 + this.toBaseHex(t, 16);\n\t\t} else if (t <= 0.5) {\n\t\t\tt -= 0.333;\n\t\t\treturn 0x00ff00 + this.toBaseHex(t, 0);\n\t\t} else if (t < 0.667) {\n\t\t\tt = 0.667 - t;\n\t\t\treturn 0x0000ff + this.toBaseHex(t, 8);\n\t\t} else if (t < 0.883) {\n\t\t\tt -= 0.667;\n\t\t\treturn 0x0000ff + this.toBaseHex(t, 16);\n\t\t} else {\n\t\t\tt = 0.883 - t;\n\t\t\treturn 0xff0000 + this.toBaseHex(t, 0);\n\t\t}\n\t}\n\n\tprotected onBasePick(global: Point): void {\n\t\tconst point = this._pointerPoint;\n\t\tconst padding = this._padding;\n\t\tconst theme = this.theme;\n\t\tconst mainWidth = theme.getMainWidth();\n\t\tthis.toLocal(global, undefined, point);\n\t\tconst x = Math.max(0, Math.min(mainWidth, point.x - padding.getLeft()));\n\t\tconst basePointerSprite = this._basePointerSprite;\n\t\tbasePointerSprite.x = x;\n\t\tthis.onColorBase(this.toBaseColor(x / mainWidth));\n\t}\n\n\tprotected setColorBase(h: number): void {\n\t\tconst theme = this.theme;\n\t\tconst mainWidth = theme.getMainWidth();\n\t\tconst basePointerSprite = this._basePointerSprite;\n\t\tbasePointerSprite.x = Math.max(0, Math.min(1, h / 360)) * mainWidth;\n\t\tthis.onColorBase(UtilHsv.toRgb(h, 255, 255));\n\t}\n\n\tprotected onColorBase(color: number): void {\n\t\tthis._mainSprite.tint = this._base = color;\n\n\t\tconst mainPointerSprite = this._mainPointerSprite;\n\t\tconst theme = this.theme;\n\t\tconst mainWidth = theme.getMainWidth();\n\t\tconst mainHeight = theme.getMainHeight();\n\t\tconst padding = this._padding;\n\t\tthis.onColorNew(\n\t\t\tthis.toMainColor(\n\t\t\t\tthis._base,\n\t\t\t\tmainPointerSprite.x - padding.getLeft(),\n\t\t\t\tmainPointerSprite.y - padding.getTop(),\n\t\t\t\tmainWidth,\n\t\t\t\tmainHeight\n\t\t\t)\n\t\t);\n\t}\n\n\tprotected onAlphaDown(e: InteractionEvent): void {\n\t\tthis.onAlphaPick(e.data.global);\n\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer) {\n\t\t\tconst stage = layer.stage;\n\t\t\tstage.on(UtilPointerEvent.move, this._onAlphaMoveBound);\n\t\t\tstage.on(UtilPointerEvent.up, this._onAlphaUpBound);\n\t\t}\n\t}\n\n\tprotected onAlphaMove(e: InteractionEvent): void {\n\t\tthis.onAlphaPick(e.data.global);\n\t}\n\n\tprotected onAlphaUp(e: InteractionEvent): void {\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer) {\n\t\t\tconst stage = layer.stage;\n\t\t\tstage.off(UtilPointerEvent.move, this._onAlphaMoveBound);\n\t\t\tstage.off(UtilPointerEvent.up, this._onAlphaUpBound);\n\t\t}\n\t}\n\n\tprotected onAlphaPick(global: Point): void {\n\t\tconst point = this._pointerPoint;\n\t\tconst padding = this._padding;\n\t\tconst theme = this.theme;\n\t\tconst mainWidth = theme.getMainWidth();\n\t\tthis.toLocal(global, undefined, point);\n\t\tconst x = Math.max(0, Math.min(mainWidth, point.x - padding.getLeft()));\n\t\tthis._alphaPointerSprite.x = x;\n\t\tthis.onAlphaNew(x / mainWidth);\n\t}\n\n\tprotected setAlphaNew(alpha: number): void {\n\t\tconst theme = this.theme;\n\t\tconst mainWidth = theme.getMainWidth();\n\t\tthis._alphaPointerSprite.x = Math.max(0, Math.min(1, alpha)) * mainWidth;\n\t\tthis.onAlphaNew(alpha);\n\t}\n\n\tprotected onAlphaNew(alpha: number): void {\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer) {\n\t\t\tlayer.lock();\n\t\t}\n\t\tthis._sampleNewSprite.alpha = this._new.alpha = alpha;\n\t\tthis._inputAndLabelAlpha.input.value = Number(alpha.toFixed(2));\n\t\tthis.emit(\"newalphachange\", alpha, this);\n\t\tif (layer) {\n\t\t\tlayer.unlock();\n\t\t\tlayer.update();\n\t\t}\n\t}\n\n\tprotected onRecentChange(): void {\n\t\tconst sprites = this._recentColorSprites;\n\t\tconst recent = this._recent;\n\t\tfor (let i = 0, imax = sprites.length; i < imax; ++i) {\n\t\t\tconst sprite = sprites[i];\n\t\t\tconst colorAndAlpha = recent.get(i);\n\t\t\tif (colorAndAlpha != null) {\n\t\t\t\tsprite.tint = colorAndAlpha.color;\n\t\t\t\tsprite.alpha = colorAndAlpha.alpha;\n\t\t\t} else {\n\t\t\t\tsprite.tint = 0xffffff;\n\t\t\t\tsprite.alpha = 0;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onStandardChange(): void {\n\t\tconst sprites = this._standardColorSprites;\n\t\tconst standard = this._standard;\n\t\tfor (let i = 0, imax = sprites.length; i < imax; ++i) {\n\t\t\tconst sprite = sprites[i];\n\t\t\tconst color = standard.get(i);\n\t\t\tif (color != null) {\n\t\t\t\tsprite.tint = color;\n\t\t\t\tsprite.alpha = 1;\n\t\t\t} else {\n\t\t\t\tsprite.tint = 0xffffff;\n\t\t\t\tsprite.alpha = 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onTypeChange(type: DColorType): void {\n\t\tswitch (type) {\n\t\t\tcase DColorType.CUSTOM:\n\t\t\t\tthis._mainBaseSprite.visible = true;\n\t\t\t\tthis._mainSprite.visible = true;\n\t\t\t\tthis._mainPointerSprite.visible = true;\n\t\t\t\tthis._baseSprite.visible = true;\n\t\t\t\tthis._mainStandardColor.visible = false;\n\t\t\t\tbreak;\n\t\t\tcase DColorType.STANDARD:\n\t\t\t\tthis._mainBaseSprite.visible = false;\n\t\t\t\tthis._mainSprite.visible = false;\n\t\t\t\tthis._mainPointerSprite.visible = false;\n\t\t\t\tthis._baseSprite.visible = false;\n\t\t\t\tthis._mainStandardColor.visible = true;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DPickerColor\";\n\t}\n}\n"]}
|
|
@@ -210,6 +210,7 @@ var DTableBody = /** @class */ (function (_super) {
|
|
|
210
210
|
// State
|
|
211
211
|
var rowState = row.state;
|
|
212
212
|
rowState.lock();
|
|
213
|
+
rowState.add(DTableState.HAS_DATA);
|
|
213
214
|
rowState.set(DTableState.SELECTABLE, isRowSelectable);
|
|
214
215
|
rowState.set(DBaseState.ACTIVE, selection.contains(unmappedIndex));
|
|
215
216
|
rowState.remove(DBaseState.DISABLED);
|
|
@@ -225,7 +226,7 @@ var DTableBody = /** @class */ (function (_super) {
|
|
|
225
226
|
var rowState = row.state;
|
|
226
227
|
rowState.lock();
|
|
227
228
|
rowState.add(DBaseState.DISABLED);
|
|
228
|
-
rowState.removeAll(DTableState.SELECTABLE, DBaseState.ACTIVE);
|
|
229
|
+
rowState.removeAll(DTableState.HAS_DATA, DTableState.SELECTABLE, DBaseState.ACTIVE);
|
|
229
230
|
rowState.unlock();
|
|
230
231
|
// Data
|
|
231
232
|
row.unset();
|
|
@@ -238,7 +239,7 @@ var DTableBody = /** @class */ (function (_super) {
|
|
|
238
239
|
var rowState = row.state;
|
|
239
240
|
rowState.lock();
|
|
240
241
|
rowState.add(DBaseState.DISABLED);
|
|
241
|
-
rowState.removeAll(DTableState.SELECTABLE, DBaseState.ACTIVE);
|
|
242
|
+
rowState.removeAll(DTableState.HAS_DATA, DTableState.SELECTABLE, DBaseState.ACTIVE);
|
|
242
243
|
rowState.unlock();
|
|
243
244
|
// Data
|
|
244
245
|
row.unset();
|