@wcardinal/wcardinal-ui 0.442.0 → 0.444.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.
Files changed (75) hide show
  1. package/dist/types/wcardinal/ui/d-picker-color.d.ts +3 -0
  2. package/dist/types/wcardinal/ui/d-table-column-state.d.ts +4 -1
  3. package/dist/types/wcardinal/ui/d-table-state.d.ts +4 -0
  4. package/dist/types/wcardinal/ui/theme/common/new-svg-rounded-checkerboard.d.ts +1 -0
  5. package/dist/types/wcardinal/ui/theme/common/new-svg-rounded-rect.d.ts +1 -0
  6. package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-picker-color.d.ts +3 -0
  7. package/dist/types/wcardinal/ui/theme/dark/new-dark-svg-rounded-checkerboard.d.ts +1 -0
  8. package/dist/types/wcardinal/ui/theme/white/d-theme-white-picker-color.d.ts +3 -0
  9. package/dist/types/wcardinal/ui/theme/white/new-white-svg-rounded-checkerboard.d.ts +1 -0
  10. package/dist/types/wcardinal/ui/util/index.d.ts +1 -0
  11. package/dist/types/wcardinal/ui/util/util-extract.d.ts +13 -2
  12. package/dist/types/wcardinal/ui/util/util-extractor-canvas.d.ts +18 -0
  13. package/dist/types/wcardinal/ui/util/util-extractor.d.ts +3 -2
  14. package/dist/wcardinal/ui/d-image-piece-impl.js +8 -0
  15. package/dist/wcardinal/ui/d-image-piece-impl.js.map +1 -1
  16. package/dist/wcardinal/ui/d-picker-color.js +5 -4
  17. package/dist/wcardinal/ui/d-picker-color.js.map +1 -1
  18. package/dist/wcardinal/ui/d-table-body.js +3 -2
  19. package/dist/wcardinal/ui/d-table-body.js.map +1 -1
  20. package/dist/wcardinal/ui/d-table-column-state.js.map +1 -1
  21. package/dist/wcardinal/ui/d-table-state.js +4 -0
  22. package/dist/wcardinal/ui/d-table-state.js.map +1 -1
  23. package/dist/wcardinal/ui/theme/common/new-svg-rounded-checkerboard.js +20 -0
  24. package/dist/wcardinal/ui/theme/common/new-svg-rounded-checkerboard.js.map +1 -0
  25. package/dist/wcardinal/ui/theme/common/new-svg-rounded-rect.js +15 -0
  26. package/dist/wcardinal/ui/theme/common/new-svg-rounded-rect.js.map +1 -0
  27. package/dist/wcardinal/ui/theme/dark/d-theme-dark-button-color-gradient.js +2 -5
  28. package/dist/wcardinal/ui/theme/dark/d-theme-dark-button-color-gradient.js.map +1 -1
  29. package/dist/wcardinal/ui/theme/dark/d-theme-dark-button-color.js +3 -6
  30. package/dist/wcardinal/ui/theme/dark/d-theme-dark-button-color.js.map +1 -1
  31. package/dist/wcardinal/ui/theme/dark/d-theme-dark-picker-color.js +24 -35
  32. package/dist/wcardinal/ui/theme/dark/d-theme-dark-picker-color.js.map +1 -1
  33. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-body-cells.js +7 -2
  34. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-body-cells.js.map +1 -1
  35. package/dist/wcardinal/ui/theme/dark/new-dark-svg-rounded-checkerboard.js +5 -0
  36. package/dist/wcardinal/ui/theme/dark/new-dark-svg-rounded-checkerboard.js.map +1 -0
  37. package/dist/wcardinal/ui/theme/white/d-theme-white-button-color-gradient.js +2 -5
  38. package/dist/wcardinal/ui/theme/white/d-theme-white-button-color-gradient.js.map +1 -1
  39. package/dist/wcardinal/ui/theme/white/d-theme-white-button-color.js +3 -6
  40. package/dist/wcardinal/ui/theme/white/d-theme-white-button-color.js.map +1 -1
  41. package/dist/wcardinal/ui/theme/white/d-theme-white-picker-color.js +24 -35
  42. package/dist/wcardinal/ui/theme/white/d-theme-white-picker-color.js.map +1 -1
  43. package/dist/wcardinal/ui/theme/white/d-theme-white-table-body-cells.js +7 -2
  44. package/dist/wcardinal/ui/theme/white/d-theme-white-table-body-cells.js.map +1 -1
  45. package/dist/wcardinal/ui/theme/white/new-white-svg-rounded-checkerboard.js +5 -0
  46. package/dist/wcardinal/ui/theme/white/new-white-svg-rounded-checkerboard.js.map +1 -0
  47. package/dist/wcardinal/ui/util/index.js +1 -0
  48. package/dist/wcardinal/ui/util/index.js.map +1 -1
  49. package/dist/wcardinal/ui/util/util-extract.js +34 -10
  50. package/dist/wcardinal/ui/util/util-extract.js.map +1 -1
  51. package/dist/wcardinal/ui/util/util-extractor-canvas.js +110 -0
  52. package/dist/wcardinal/ui/util/util-extractor-canvas.js.map +1 -0
  53. package/dist/wcardinal/ui/util/util-extractor.js +45 -20
  54. package/dist/wcardinal/ui/util/util-extractor.js.map +1 -1
  55. package/dist/wcardinal-ui-theme-dark-en-us.js +71 -49
  56. package/dist/wcardinal-ui-theme-dark-en-us.min.js +2 -2
  57. package/dist/wcardinal-ui-theme-dark-en-us.min.js.map +1 -1
  58. package/dist/wcardinal-ui-theme-dark-ja-jp.js +71 -49
  59. package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +2 -2
  60. package/dist/wcardinal-ui-theme-dark-ja-jp.min.js.map +1 -1
  61. package/dist/wcardinal-ui-theme-dark.js +71 -49
  62. package/dist/wcardinal-ui-theme-dark.min.js +2 -2
  63. package/dist/wcardinal-ui-theme-white-en-us.js +71 -49
  64. package/dist/wcardinal-ui-theme-white-en-us.min.js +2 -2
  65. package/dist/wcardinal-ui-theme-white-en-us.min.js.map +1 -1
  66. package/dist/wcardinal-ui-theme-white-ja-jp.js +71 -49
  67. package/dist/wcardinal-ui-theme-white-ja-jp.min.js +2 -2
  68. package/dist/wcardinal-ui-theme-white-ja-jp.min.js.map +1 -1
  69. package/dist/wcardinal-ui-theme-white.js +71 -49
  70. package/dist/wcardinal-ui-theme-white.min.js +2 -2
  71. package/dist/wcardinal-ui.cjs.js +313 -132
  72. package/dist/wcardinal-ui.js +207 -36
  73. package/dist/wcardinal-ui.min.js +2 -2
  74. package/dist/wcardinal-ui.min.js.map +1 -1
  75. 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
- * The state given at the third parameter is a state of a cell.
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> {
@@ -18,6 +18,10 @@ export declare const DTableState: {
18
18
  * Cells of a right-most frozen column.
19
19
  */
20
20
  FROZEN_END: string;
21
+ /**
22
+ * Rows with data
23
+ */
24
+ HAS_DATA: string;
21
25
  /**
22
26
  * Header cells of sortable columns.
23
27
  */
@@ -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;
@@ -57,6 +57,7 @@ export * from "./util-gesture-tap";
57
57
  export * from "./util-gesture-target";
58
58
  export * from "./util-gesture";
59
59
  export * from "./util-extract";
60
+ export * from "./util-extractor-canvas";
60
61
  export * from "./util-extractor-pixels";
61
62
  export * from "./util-extractor";
62
63
  export * from "./util-file-downloader";
@@ -1,8 +1,9 @@
1
- import { Renderer, RenderTexture, utils } from "pixi.js";
1
+ import { Renderer, RenderTexture } from "pixi.js";
2
2
  import { DApplicationLayerLike } from "../d-application-layer-like";
3
3
  import { DApplicationLike } from "../d-application-like";
4
4
  import { DBase } from "../d-base";
5
5
  import { UtilExtractorPixels } from "./util-extractor-pixels";
6
+ import { UtilExtractorCanvas } from "./util-extractor-canvas";
6
7
  export interface UtilExtractTextureResolutionOptions {
7
8
  size: number;
8
9
  }
@@ -41,6 +42,7 @@ export interface UtilExtractFileOptions extends UtilExtractBase64Options {
41
42
  }
42
43
  export declare class UtilExtract {
43
44
  protected static WORK_RENDER_TEXTURE?: RenderTexture;
45
+ protected static WORK_CANVAS?: UtilExtractorCanvas;
44
46
  static texture(options: UtilExtractTextureOptions): RenderTexture;
45
47
  /**
46
48
  * Extracts pixels from the target.
@@ -51,7 +53,16 @@ export declare class UtilExtract {
51
53
  * @returns extracted pixels
52
54
  */
53
55
  static pixels(options: UtilExtractPixelsOptions): UtilExtractorPixels;
54
- static canvas(options: UtilExtractCanvasOptions): utils.CanvasRenderTarget;
56
+ static canvas(options: UtilExtractCanvasOptions): UtilExtractorCanvas;
57
+ /**
58
+ * Extracts Base64 data URL from the target.
59
+ * This method internally creates a render texture and a canvas render target.
60
+ * They are used to extract pixels from the target.
61
+ * To free the allocated render texture and canvas render target, please call {@link destroy()}.
62
+ *
63
+ * @param options an extraction options
64
+ * @returns extracted Base64 data URL
65
+ */
55
66
  static base64(options: UtilExtractBase64Options): string;
56
67
  static file(options: UtilExtractFileOptions): void;
57
68
  /**
@@ -0,0 +1,18 @@
1
+ export declare class UtilExtractorCanvas {
2
+ protected _element: HTMLCanvasElement | null;
3
+ protected _context: CanvasRenderingContext2D | null;
4
+ constructor(width: number, height: number);
5
+ get element(): HTMLCanvasElement;
6
+ getElement(): HTMLCanvasElement | null;
7
+ get canvas(): HTMLCanvasElement;
8
+ get context(): CanvasRenderingContext2D;
9
+ getContext(): CanvasRenderingContext2D | null;
10
+ get resolution(): number;
11
+ get width(): number;
12
+ set width(width: number);
13
+ get height(): number;
14
+ set height(height: number);
15
+ clear(): void;
16
+ resize(width: number, height: number): void;
17
+ destroy(): void;
18
+ }
@@ -1,9 +1,10 @@
1
- import { Renderer, RenderTexture, utils } from "pixi.js";
1
+ import { Renderer, RenderTexture } from "pixi.js";
2
2
  import { DBase } from "../d-base";
3
3
  import { UtilExtractorPixels } from "./util-extractor-pixels";
4
+ import { UtilExtractorCanvas } from "./util-extractor-canvas";
4
5
  export declare class UtilExtractor {
5
6
  static toTexture(target: DBase, resolution?: number, clear?: boolean, skipUpdateTransform?: boolean): RenderTexture;
6
7
  static toPixels(renderTexture: RenderTexture, renderer: Renderer): UtilExtractorPixels;
7
- static toCanvas(pixels: UtilExtractorPixels, scale?: number, ignorePremutipliedAlpha?: boolean): utils.CanvasRenderTarget;
8
+ static toCanvas(pixels: UtilExtractorPixels, scale?: number, ignorePremutipliedAlpha?: boolean, result?: UtilExtractorCanvas): UtilExtractorCanvas;
8
9
  static toBase64(canvas: HTMLCanvasElement, format?: string, quality?: number): string;
9
10
  }
@@ -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 = (inputWidth - inputLabelWidth - inputMargin) * 0.5;
365
- var sampleHeight = inputHeight + inputMargin + inputHeight;
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":"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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\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();