@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.
- 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/types/wcardinal/ui/util/index.d.ts +1 -0
- package/dist/types/wcardinal/ui/util/util-extract.d.ts +13 -2
- package/dist/types/wcardinal/ui/util/util-extractor-canvas.d.ts +18 -0
- package/dist/types/wcardinal/ui/util/util-extractor.d.ts +3 -2
- 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/util/index.js +1 -0
- package/dist/wcardinal/ui/util/index.js.map +1 -1
- package/dist/wcardinal/ui/util/util-extract.js +34 -10
- package/dist/wcardinal/ui/util/util-extract.js.map +1 -1
- package/dist/wcardinal/ui/util/util-extractor-canvas.js +110 -0
- package/dist/wcardinal/ui/util/util-extractor-canvas.js.map +1 -0
- package/dist/wcardinal/ui/util/util-extractor.js +45 -20
- package/dist/wcardinal/ui/util/util-extractor.js.map +1 -1
- 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 +313 -132
- package/dist/wcardinal-ui.js +207 -36
- 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;
|
|
@@ -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
|
|
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):
|
|
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
|
|
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):
|
|
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 = (
|
|
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":"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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();
|