@wcardinal/wcardinal-ui 0.413.0 → 0.415.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 (43) hide show
  1. package/dist/types/wcardinal/ui/d-select.d.ts +1 -1
  2. package/dist/types/wcardinal/ui/d-table-category-cell.d.ts +3 -20
  3. package/dist/types/wcardinal/ui/d-table-category-column-impl.d.ts +1 -2
  4. package/dist/types/wcardinal/ui/d-table-category-container-impl.d.ts +1 -1
  5. package/dist/types/wcardinal/ui/d-table-cell-edge.d.ts +69 -0
  6. package/dist/types/wcardinal/ui/d-table-column-impl.d.ts +2 -0
  7. package/dist/types/wcardinal/ui/d-table-column.d.ts +2 -0
  8. package/dist/types/wcardinal/ui/d-table-data.d.ts +3 -3
  9. package/dist/types/wcardinal/ui/d-table-header-cell.d.ts +3 -19
  10. package/dist/types/wcardinal/ui/d-tree-data.d.ts +1 -1
  11. package/dist/wcardinal/ui/d-select.js.map +1 -1
  12. package/dist/wcardinal/ui/d-table-category-cell.js +5 -207
  13. package/dist/wcardinal/ui/d-table-category-cell.js.map +1 -1
  14. package/dist/wcardinal/ui/d-table-category-column-impl.js +19 -34
  15. package/dist/wcardinal/ui/d-table-category-column-impl.js.map +1 -1
  16. package/dist/wcardinal/ui/d-table-category-container-impl.js +14 -7
  17. package/dist/wcardinal/ui/d-table-category-container-impl.js.map +1 -1
  18. package/dist/wcardinal/ui/d-table-cell-edge.js +557 -0
  19. package/dist/wcardinal/ui/d-table-cell-edge.js.map +1 -0
  20. package/dist/wcardinal/ui/d-table-column-impl.js +2 -0
  21. package/dist/wcardinal/ui/d-table-column-impl.js.map +1 -1
  22. package/dist/wcardinal/ui/d-table-column.js.map +1 -1
  23. package/dist/wcardinal/ui/d-table-data.js.map +1 -1
  24. package/dist/wcardinal/ui/d-table-header-cell.js +6 -200
  25. package/dist/wcardinal/ui/d-table-header-cell.js.map +1 -1
  26. package/dist/wcardinal/ui/d-tree-data.js.map +1 -1
  27. package/dist/wcardinal-ui-theme-dark-en-us.js +1 -1
  28. package/dist/wcardinal-ui-theme-dark-en-us.min.js +1 -1
  29. package/dist/wcardinal-ui-theme-dark-ja-jp.js +1 -1
  30. package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +1 -1
  31. package/dist/wcardinal-ui-theme-dark.js +1 -1
  32. package/dist/wcardinal-ui-theme-dark.min.js +1 -1
  33. package/dist/wcardinal-ui-theme-white-en-us.js +1 -1
  34. package/dist/wcardinal-ui-theme-white-en-us.min.js +1 -1
  35. package/dist/wcardinal-ui-theme-white-ja-jp.js +1 -1
  36. package/dist/wcardinal-ui-theme-white-ja-jp.min.js +1 -1
  37. package/dist/wcardinal-ui-theme-white.js +1 -1
  38. package/dist/wcardinal-ui-theme-white.min.js +1 -1
  39. package/dist/wcardinal-ui.cjs.js +558 -407
  40. package/dist/wcardinal-ui.js +558 -407
  41. package/dist/wcardinal-ui.min.js +2 -2
  42. package/dist/wcardinal-ui.min.js.map +1 -1
  43. package/package.json +2 -2
@@ -9,7 +9,7 @@ export interface DSelectEvents<VALUE, EMITTER> extends DDropdownBaseEvents<VALUE
9
9
  /**
10
10
  * Triggered when a selection is changed.
11
11
  *
12
- * @param newVAlue a newly-selected value
12
+ * @param newValue a newly-selected value
13
13
  * @param oldValue a previously-selected value
14
14
  * @param item a newly-selected item
15
15
  * @param emitter an emitter
@@ -1,7 +1,8 @@
1
- import { InteractionEvent, InteractionManager, Point } from "pixi.js";
1
+ import { InteractionEvent } from "pixi.js";
2
2
  import { DImage, DImageOptions, DThemeImage } from "./d-image";
3
3
  import { DTableCategoryColumn } from "./d-table-category-column";
4
4
  import { DBaseStateSet } from "./d-base-state-set";
5
+ import { DTableCellEdge } from "./d-table-cell-edge";
5
6
  export interface DTableCategoryCellCategory {
6
7
  readonly children: DTableCategoryCell[];
7
8
  readonly state: DBaseStateSet;
@@ -11,35 +12,17 @@ export interface DTableCategoryCellOptions<THEME extends DThemeTableCategoryCell
11
12
  export interface DThemeTableCategoryCell extends DThemeImage<string | null> {
12
13
  getEdgeWidth(): number;
13
14
  }
14
- export declare const DTableCategoryCellEdge: {
15
- readonly NONE: 0;
16
- readonly LEFT: 1;
17
- readonly RIGHT: 2;
18
- readonly BOTH: 3;
19
- };
20
- export type DTableCategoryCellEdge = (typeof DTableCategoryCellEdge)[keyof typeof DTableCategoryCellEdge];
21
15
  export declare class DTableCategoryCell<THEME extends DThemeTableCategoryCell = DThemeTableCategoryCell, OPTIONS extends DTableCategoryCellOptions<THEME> = DTableCategoryCellOptions<THEME>> extends DImage<string | null, THEME, OPTIONS> {
22
16
  protected _category: DTableCategoryCellCategory;
23
17
  protected _column: DTableCategoryColumn;
24
18
  protected _columnIndex: number;
25
- protected _checkWork?: Point;
26
- protected _onHoveredBound?: (e: InteractionEvent) => void;
27
- protected _resizableEdges?: DTableCategoryCellEdge;
28
- protected _edgeSize: number;
29
- protected _wasResizing: boolean;
19
+ protected _edge: DTableCellEdge<DTableCategoryCell>;
30
20
  constructor(category: DTableCategoryCellCategory, columnIndex: number, column: DTableCategoryColumn, options?: OPTIONS);
31
21
  get column(): DTableCategoryColumn;
32
22
  get columnIndex(): number;
33
23
  get category(): DTableCategoryCellCategory;
34
24
  protected onDown(e: InteractionEvent): void;
35
- protected findLeftResizableCell(columnIndex: number): DTableCategoryCell | null;
36
- protected findRightResizableCellOfWeight(columnIndex: number): DTableCategoryCell | null;
37
- protected checkIfEdgeResizable(columnIndex: number): boolean;
38
- protected getResizableEdges(): DTableCategoryCellEdge;
39
25
  protected onOver(e: InteractionEvent): void;
40
26
  protected onOut(e: InteractionEvent): void;
41
- protected onHovered(e: InteractionEvent): void;
42
- protected toClickPosition(e: InteractionEvent): number;
43
- protected onDownEdge(onDownPoint: number, columnIndex: number, interactionManager: InteractionManager): void;
44
27
  protected getType(): string;
45
28
  }
@@ -9,11 +9,10 @@ export declare class DTableCategoryColumnImpl<ROW_VALUE, CELL_VALUE, DIALOG_VALU
9
9
  protected _isLocked: boolean;
10
10
  offset: number;
11
11
  protected _columns: DTableColumn<ROW_VALUE, CELL_VALUE, DIALOG_VALUE, DIALOG>[];
12
- protected _nresizable: number;
12
+ readonly resizable: boolean;
13
13
  protected _onResizeBound: (column: DTableColumn<ROW_VALUE, CELL_VALUE, DIALOG_VALUE, DIALOG>) => void;
14
14
  constructor(index: number, column: DTableColumn<ROW_VALUE, CELL_VALUE, DIALOG_VALUE, DIALOG>);
15
15
  protected onResize(): void;
16
- get resizable(): boolean;
17
16
  get weight(): number | undefined;
18
17
  set weight(weight: number);
19
18
  get minWeight(): number;
@@ -7,6 +7,6 @@ export declare class DTableCategoryContainerImpl<ROW_VALUE, CELL_VALUE, DIALOG_V
7
7
  readonly items: DTableCategory[];
8
8
  constructor(columns: DTableColumn<ROW_VALUE, CELL_VALUE, DIALOG_VALUE, DIALOG>[], frozen: number, options?: DTableCategoryOptions);
9
9
  protected toCount(columns: DTableColumn<ROW_VALUE, CELL_VALUE, DIALOG_VALUE, DIALOG>[]): number;
10
- protected isCategory(index: number, a: string | string[] | undefined, b: string | string[] | undefined): boolean;
10
+ protected isEqual(index: number, a: string | string[] | undefined, b: string | string[] | undefined): boolean;
11
11
  protected toColumns(index: number, columns: DTableColumn<ROW_VALUE, CELL_VALUE, DIALOG_VALUE, DIALOG>[], frozen: number): DTableCategoryColumn[];
12
12
  }
@@ -0,0 +1,69 @@
1
+ import { DisplayObject, IPointData, InteractionEvent, InteractionManager, Point, utils } from "pixi.js";
2
+ import { DBaseStateSet } from "./d-base-state-set";
3
+ import { DApplicationTarget } from "./d-application-like";
4
+ export declare const DTableCellEdgeHovered: {
5
+ readonly NONE: 0;
6
+ readonly LEFT: 1;
7
+ readonly RIGHT: 2;
8
+ readonly BOTH: 3;
9
+ };
10
+ export type DTableCellEdgeHovered = (typeof DTableCellEdgeHovered)[keyof typeof DTableCellEdgeHovered];
11
+ export type DTableCellEdgeData0<CELL> = [0, CELL];
12
+ export type DTableCellEdgeData1<CELL> = [1, CELL, CELL];
13
+ export type DTableCellEdgeData2<CELL> = [2, CELL, CELL, CELL[]];
14
+ export type DTableCellEdgeData3<CELL> = [3, CELL, CELL, CELL[]];
15
+ export type DTableCellEdgeData<CELL> = DTableCellEdgeData0<CELL> | DTableCellEdgeData1<CELL> | DTableCellEdgeData2<CELL> | DTableCellEdgeData3<CELL>;
16
+ export interface DTableCellEdgeRow<CELL> {
17
+ readonly state: DBaseStateSet;
18
+ readonly children: CELL[];
19
+ }
20
+ export interface DTableCellEdgeColumn {
21
+ weight?: number;
22
+ readonly minWeight: number;
23
+ width?: number;
24
+ readonly minWidth: number;
25
+ readonly resizable: boolean;
26
+ }
27
+ export interface DTableCellEdgeCell extends DApplicationTarget, utils.EventEmitter {
28
+ readonly state: DBaseStateSet;
29
+ readonly column: DTableCellEdgeColumn;
30
+ readonly columnIndex: number;
31
+ readonly cursor: string;
32
+ readonly width: number;
33
+ readonly weight: number;
34
+ toLocal(position: IPointData, from?: DisplayObject, point?: Point, skipUpdate?: boolean): Point;
35
+ }
36
+ export declare class DTableCellEdge<CELL extends DTableCellEdgeCell> {
37
+ protected _row: DTableCellEdgeRow<CELL>;
38
+ protected _cell: CELL;
39
+ protected _columnIndex: number;
40
+ protected _checkWork?: Point;
41
+ protected _onHoveredBound?: (e: InteractionEvent) => void;
42
+ protected _left?: DTableCellEdgeData<CELL> | null;
43
+ protected _right?: DTableCellEdgeData<CELL> | null;
44
+ protected _size: number;
45
+ protected _dragged: boolean;
46
+ protected _minWidth: number;
47
+ constructor(row: DTableCellEdgeRow<CELL>, cell: CELL, columnIndex: number, size: number);
48
+ protected findResizableCell(columnIndex: number, direction: boolean, weight: boolean | null): CELL | null;
49
+ protected findCells(columnIndex: number, direction: boolean, weight: boolean): CELL[];
50
+ protected calcData(columnIndex: number): DTableCellEdgeData<CELL> | null;
51
+ get left(): DTableCellEdgeData<CELL> | null;
52
+ get right(): DTableCellEdgeData<CELL> | null;
53
+ onDown(e: InteractionEvent): boolean;
54
+ protected onDown_(onDownPoint: number, data: DTableCellEdgeData<CELL>, interactionManager: InteractionManager): void;
55
+ onOver(e: InteractionEvent): void;
56
+ onOut(e: InteractionEvent): void;
57
+ protected onHovered(e: InteractionEvent): void;
58
+ protected toX(e: InteractionEvent): number;
59
+ protected onDown0(onDownPoint: number, data: DTableCellEdgeData0<CELL>, interactionManager: InteractionManager): void;
60
+ protected onDown1(onDownPoint: number, data: DTableCellEdgeData1<CELL>, interactionManager: InteractionManager): void;
61
+ protected onDown2(onDownPoint: number, data: DTableCellEdgeData2<CELL>, interactionManager: InteractionManager): void;
62
+ protected onDown2a(onDownPoint: number, data: DTableCellEdgeData2<CELL>, interactionManager: InteractionManager): void;
63
+ protected onDown2b(onDownPoint: number, data: DTableCellEdgeData2<CELL>, interactionManager: InteractionManager): void;
64
+ protected onDown3(onDownPoint: number, data: DTableCellEdgeData3<CELL>, interactionManager: InteractionManager): void;
65
+ protected onDown3a(onDownPoint: number, data: DTableCellEdgeData3<CELL>, interactionManager: InteractionManager): void;
66
+ protected onDown3b(onDownPoint: number, data: DTableCellEdgeData3<CELL>, interactionManager: InteractionManager): void;
67
+ protected newOnUp(onMove: (e: InteractionEvent) => void, interactionManager: InteractionManager): () => void;
68
+ isClicked(e?: InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent): boolean;
69
+ }
@@ -16,7 +16,9 @@ import { DTableColumnUpdate } from "./d-table-column-update";
16
16
  import { DTableHeaderCellOptions, DThemeTableHeaderCell } from "./d-table-header-cell";
17
17
  export declare class DTableColumnImpl<ROW_VALUE, CELL_VALUE, DIALOG_VALUE = CELL_VALUE, DIALOG extends DTableColumnSelectingDialog<DIALOG_VALUE> = DTableColumnSelectingDialog<DIALOG_VALUE>> extends utils.EventEmitter implements DTableColumn<ROW_VALUE, CELL_VALUE, DIALOG_VALUE, DIALOG> {
18
18
  protected _weight?: number;
19
+ readonly minWeight: number;
19
20
  protected _width?: number;
21
+ readonly minWidth: number;
20
22
  readonly resizable: boolean;
21
23
  readonly type: DTableColumnType;
22
24
  readonly label: string;
@@ -73,7 +73,9 @@ export interface DTableColumnOptions<ROW_VALUE, CELL_VALUE = any, DIALOG_VALUE =
73
73
  }
74
74
  export interface DTableColumn<ROW_VALUE, CELL_VALUE = unknown, DIALOG_VALUE = CELL_VALUE, DIALOG extends DTableColumnSelectingDialog<DIALOG_VALUE> = DTableColumnSelectingDialog<DIALOG_VALUE>> extends utils.EventEmitter {
75
75
  weight?: number;
76
+ minWeight: number;
76
77
  width?: number;
78
+ minWidth: number;
77
79
  readonly resizable: boolean;
78
80
  readonly type: DTableColumnType;
79
81
  label: string;
@@ -40,10 +40,10 @@ export interface DTableDataMapped<ROW> {
40
40
  * If called iteratee explicitly returns false, stops an iteration.
41
41
  *
42
42
  * @param iteratee an function called on each mapped datum
43
- * @param ifrom an index to start an iteration
44
- * @param ito an index before which an interation stops
43
+ * @param istart an index to start an iteration
44
+ * @param iend an index before which an interation stops
45
45
  */
46
- each(iteratee: DTableDataMappedEachIteratee<ROW>, ifrom?: number, iend?: number): void;
46
+ each(iteratee: DTableDataMappedEachIteratee<ROW>, istart?: number, iend?: number): void;
47
47
  }
48
48
  export type DTableDataEachIteratee<ROW> = (row: ROW, index: number) => void | boolean;
49
49
  export interface DTableDataOptions<ROW, EMITTER = any> {
@@ -1,10 +1,11 @@
1
- import { InteractionEvent, InteractionManager, Point } from "pixi.js";
1
+ import { InteractionEvent, Point } from "pixi.js";
2
2
  import { DImage, DImageOptions, DThemeImage } from "./d-image";
3
3
  import { DTableColumn } from "./d-table-column";
4
4
  import { DTableDataComparator, DTableDataSorter } from "./d-table-data-sorter";
5
5
  import { DTableHeaderTable } from "./d-table-header";
6
6
  import { DTableHeaderCellCheck, DTableHeaderCellCheckOptions } from "./d-table-header-cell-check";
7
7
  import { DBaseStateSet } from "./d-base-state-set";
8
+ import { DTableCellEdge } from "./d-table-cell-edge";
8
9
  export interface DTableHeaderCellHeader<ROW> {
9
10
  readonly table: DTableHeaderTable<ROW> | null;
10
11
  readonly children: DTableHeaderCell<ROW>[];
@@ -16,13 +17,6 @@ export interface DTableHeaderCellOptions<ROW, THEME extends DThemeTableHeaderCel
16
17
  export interface DThemeTableHeaderCell extends DThemeImage<string | null> {
17
18
  getEdgeWidth(): number;
18
19
  }
19
- export declare const DTableHeaderCellEdge: {
20
- readonly NONE: 0;
21
- readonly LEFT: 1;
22
- readonly RIGHT: 2;
23
- readonly BOTH: 3;
24
- };
25
- export type DTableHeaderCellEdge = (typeof DTableHeaderCellEdge)[keyof typeof DTableHeaderCellEdge];
26
20
  export declare class DTableHeaderCell<ROW, THEME extends DThemeTableHeaderCell = DThemeTableHeaderCell, OPTIONS extends DTableHeaderCellOptions<ROW, THEME> = DTableHeaderCellOptions<ROW, THEME>> extends DImage<string | null, THEME, OPTIONS> {
27
21
  protected _sorter?: DTableDataSorter<ROW>;
28
22
  protected _onSorterChangeBound?: () => void;
@@ -31,30 +25,20 @@ export declare class DTableHeaderCell<ROW, THEME extends DThemeTableHeaderCell =
31
25
  protected _columnIndex: number;
32
26
  protected _check: DTableHeaderCellCheck<ROW>;
33
27
  protected _checkWork?: Point;
34
- protected _onHoveredBound?: (e: InteractionEvent) => void;
35
- protected _resizableEdges?: DTableHeaderCellEdge;
36
- protected _edgeSize: number;
37
- protected _wasResizing: boolean;
28
+ protected _edge: DTableCellEdge<DTableHeaderCell<ROW>>;
38
29
  constructor(header: DTableHeaderCellHeader<ROW>, columnIndex: number, column: DTableColumn<ROW>, options?: OPTIONS);
39
30
  get column(): DTableColumn<ROW>;
40
31
  get columnIndex(): number;
41
32
  get header(): DTableHeaderCellHeader<ROW>;
42
33
  get check(): DTableHeaderCellCheck<ROW>;
43
34
  protected onDown(e: InteractionEvent): void;
44
- protected findLeftResizableCell(columnIndex: number): DTableHeaderCell<ROW> | null;
45
- protected findRightResizableCellOfWeight(columnIndex: number): DTableHeaderCell<ROW> | null;
46
- protected checkIfEdgeResizable(columnIndex: number): boolean;
47
- protected getResizableEdges(): DTableHeaderCellEdge;
48
35
  protected onOver(e: InteractionEvent): void;
49
36
  protected onOut(e: InteractionEvent): void;
50
- protected onHovered(e: InteractionEvent): void;
51
- protected onDownEdge(onDownPoint: number, columnIndex: number, interactionManager: InteractionManager): void;
52
37
  get sorter(): DTableDataSorter<ROW> | null;
53
38
  get comparator(): DTableDataComparator<ROW> | null;
54
39
  protected onSorterChange(): void;
55
40
  protected toClickPosition(e: InteractionEvent): number;
56
41
  protected isCheckClicked(e?: InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent): boolean;
57
- protected isEdgeClicked(e?: InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent): boolean;
58
42
  protected onClick(e: InteractionEvent): void;
59
43
  activate(e?: InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent): void;
60
44
  protected onActivate(e?: InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent): void;
@@ -78,7 +78,7 @@ export interface DTreeDataLike<NODE extends DTreeNode> {
78
78
  /**
79
79
  * Removes the given node.
80
80
  *
81
- * @param item a node to be removed
81
+ * @param target a node to be removed
82
82
  * @return true if succeeded
83
83
  */
84
84
  remove(target: NODE): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"d-select.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-select.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n\tDDropdownBase,\n\tDDropdownBaseEvents,\n\tDDropdownBaseOptions,\n\tDThemeDropdownBase\n} from \"./d-dropdown-base\";\nimport { DMenu } from \"./d-menu\";\nimport { DMenuItem } from \"./d-menu-item\";\nimport { DMenuItemMenu } from \"./d-menu-item-menu\";\nimport { DOnOptions } from \"./d-on-options\";\n\n/**\n * {@link DSelect} events.\n */\nexport interface DSelectEvents<VALUE, EMITTER>\n\textends DDropdownBaseEvents<VALUE, DMenuItem<VALUE> | null, EMITTER> {\n\t/**\n\t * Triggered when a selection is changed.\n\t *\n\t * @param newVAlue a newly-selected value\n\t * @param oldValue a previously-selected value\n\t * @param item a newly-selected item\n\t * @param emitter an emitter\n\t */\n\tchange(\n\t\tnewValue: VALUE | null,\n\t\toldValue: VALUE | null,\n\t\titem: DMenuItem<VALUE> | null,\n\t\temitter: EMITTER\n\t): void;\n}\n\n/**\n * {@link DSelect} \"on\" options.\n */\nexport interface DSelectOnOptions<VALUE, EMITTER>\n\textends Partial<DSelectEvents<VALUE, EMITTER>>,\n\t\tDOnOptions {}\n\n/**\n * {@link DSelect} options.\n */\nexport interface DSelectOptions<\n\tVALUE = unknown,\n\tTHEME extends DThemeSelect<VALUE> = DThemeSelect<VALUE>,\n\tEMITTER = any\n> extends DDropdownBaseOptions<VALUE, DMenuItem<VALUE> | null, THEME, EMITTER> {\n\t/**\n\t * A default value.\n\t */\n\tvalue?: VALUE | null;\n\n\ton?: DSelectOnOptions<VALUE, EMITTER>;\n}\n\n/**\n * {@link DSelect} theme.\n */\nexport interface DThemeSelect<VALUE = unknown>\n\textends DThemeDropdownBase<DMenuItem<VALUE> | null> {}\n\n/**\n * A selector class.\n */\nexport class DSelect<\n\tVALUE = unknown,\n\tTHEME extends DThemeSelect<VALUE> = DThemeSelect<VALUE>,\n\tOPTIONS extends DSelectOptions<VALUE, THEME> = DSelectOptions<VALUE, THEME>\n> extends DDropdownBase<VALUE, DMenuItem<VALUE> | null, THEME, OPTIONS> {\n\tprotected _value: VALUE | null;\n\n\tconstructor(options?: OPTIONS) {\n\t\tsuper(options);\n\n\t\t// Default value\n\t\tthis._value = null;\n\t\tconst value = options?.value;\n\t\tif (value != null) {\n\t\t\tthis.value = value;\n\t\t}\n\t}\n\n\tprotected onMenuSelect(newValue: VALUE, item: DMenuItem<VALUE>, menu: DMenu<VALUE>): void {\n\t\tsuper.onMenuSelect(newValue, item, menu);\n\t\tconst oldValue = this._value;\n\t\tif (oldValue !== newValue) {\n\t\t\tthis._value = newValue;\n\t\t\tthis.text = item;\n\t\t\tthis.onValueChange(newValue, oldValue, item);\n\t\t}\n\t}\n\n\tprotected onMenuReplaced(newMenu: DMenu<VALUE>, oldMenu?: DMenu<VALUE>): void {\n\t\tsuper.onMenuReplaced(newMenu, oldMenu);\n\n\t\t// Update the value\n\t\tconst value = this._value;\n\t\tconst item = this.findMenuItem(newMenu, value);\n\t\tif (item != null) {\n\t\t\tthis._value = value;\n\t\t\tthis.text = item;\n\t\t} else {\n\t\t\tthis._value = null;\n\t\t\tthis.text = null;\n\t\t}\n\t}\n\n\tprotected onValueChange(\n\t\tnewValue: VALUE | null,\n\t\toldValue: VALUE | null,\n\t\titem: DMenuItem<VALUE> | null\n\t): void {\n\t\tthis.emit(\"change\", newValue, oldValue, item, this);\n\t}\n\n\tprotected findMenuItem(menu: DMenu<VALUE>, value: VALUE | null): DMenuItem<VALUE> | null {\n\t\tconst children = menu.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tconst child = children[i];\n\t\t\tif (child instanceof DMenuItemMenu) {\n\t\t\t\tconst result = this.findMenuItem(child.menu, value);\n\t\t\t\tif (result != null) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t} else if (child instanceof DMenuItem) {\n\t\t\t\tif (child.value === value) {\n\t\t\t\t\treturn child;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**\n\t * Returns a selected value or null.\n\t */\n\tget value(): VALUE | null {\n\t\treturn this._value;\n\t}\n\n\t/**\n\t * Sets to the specified value.\n\t */\n\tset value(value: VALUE | null) {\n\t\tif (this._value !== value) {\n\t\t\tconst item = this.findMenuItem(this.menu, value);\n\t\t\tif (item != null) {\n\t\t\t\tthis._value = value;\n\t\t\t\tthis.text = item;\n\t\t\t} else {\n\t\t\t\tthis._value = null;\n\t\t\t\tthis.text = null;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DSelect\";\n\t}\n}\n"]}
1
+ {"version":3,"file":"d-select.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-select.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n\tDDropdownBase,\n\tDDropdownBaseEvents,\n\tDDropdownBaseOptions,\n\tDThemeDropdownBase\n} from \"./d-dropdown-base\";\nimport { DMenu } from \"./d-menu\";\nimport { DMenuItem } from \"./d-menu-item\";\nimport { DMenuItemMenu } from \"./d-menu-item-menu\";\nimport { DOnOptions } from \"./d-on-options\";\n\n/**\n * {@link DSelect} events.\n */\nexport interface DSelectEvents<VALUE, EMITTER>\n\textends DDropdownBaseEvents<VALUE, DMenuItem<VALUE> | null, EMITTER> {\n\t/**\n\t * Triggered when a selection is changed.\n\t *\n\t * @param newValue a newly-selected value\n\t * @param oldValue a previously-selected value\n\t * @param item a newly-selected item\n\t * @param emitter an emitter\n\t */\n\tchange(\n\t\tnewValue: VALUE | null,\n\t\toldValue: VALUE | null,\n\t\titem: DMenuItem<VALUE> | null,\n\t\temitter: EMITTER\n\t): void;\n}\n\n/**\n * {@link DSelect} \"on\" options.\n */\nexport interface DSelectOnOptions<VALUE, EMITTER>\n\textends Partial<DSelectEvents<VALUE, EMITTER>>,\n\t\tDOnOptions {}\n\n/**\n * {@link DSelect} options.\n */\nexport interface DSelectOptions<\n\tVALUE = unknown,\n\tTHEME extends DThemeSelect<VALUE> = DThemeSelect<VALUE>,\n\tEMITTER = any\n> extends DDropdownBaseOptions<VALUE, DMenuItem<VALUE> | null, THEME, EMITTER> {\n\t/**\n\t * A default value.\n\t */\n\tvalue?: VALUE | null;\n\n\ton?: DSelectOnOptions<VALUE, EMITTER>;\n}\n\n/**\n * {@link DSelect} theme.\n */\nexport interface DThemeSelect<VALUE = unknown>\n\textends DThemeDropdownBase<DMenuItem<VALUE> | null> {}\n\n/**\n * A selector class.\n */\nexport class DSelect<\n\tVALUE = unknown,\n\tTHEME extends DThemeSelect<VALUE> = DThemeSelect<VALUE>,\n\tOPTIONS extends DSelectOptions<VALUE, THEME> = DSelectOptions<VALUE, THEME>\n> extends DDropdownBase<VALUE, DMenuItem<VALUE> | null, THEME, OPTIONS> {\n\tprotected _value: VALUE | null;\n\n\tconstructor(options?: OPTIONS) {\n\t\tsuper(options);\n\n\t\t// Default value\n\t\tthis._value = null;\n\t\tconst value = options?.value;\n\t\tif (value != null) {\n\t\t\tthis.value = value;\n\t\t}\n\t}\n\n\tprotected onMenuSelect(newValue: VALUE, item: DMenuItem<VALUE>, menu: DMenu<VALUE>): void {\n\t\tsuper.onMenuSelect(newValue, item, menu);\n\t\tconst oldValue = this._value;\n\t\tif (oldValue !== newValue) {\n\t\t\tthis._value = newValue;\n\t\t\tthis.text = item;\n\t\t\tthis.onValueChange(newValue, oldValue, item);\n\t\t}\n\t}\n\n\tprotected onMenuReplaced(newMenu: DMenu<VALUE>, oldMenu?: DMenu<VALUE>): void {\n\t\tsuper.onMenuReplaced(newMenu, oldMenu);\n\n\t\t// Update the value\n\t\tconst value = this._value;\n\t\tconst item = this.findMenuItem(newMenu, value);\n\t\tif (item != null) {\n\t\t\tthis._value = value;\n\t\t\tthis.text = item;\n\t\t} else {\n\t\t\tthis._value = null;\n\t\t\tthis.text = null;\n\t\t}\n\t}\n\n\tprotected onValueChange(\n\t\tnewValue: VALUE | null,\n\t\toldValue: VALUE | null,\n\t\titem: DMenuItem<VALUE> | null\n\t): void {\n\t\tthis.emit(\"change\", newValue, oldValue, item, this);\n\t}\n\n\tprotected findMenuItem(menu: DMenu<VALUE>, value: VALUE | null): DMenuItem<VALUE> | null {\n\t\tconst children = menu.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tconst child = children[i];\n\t\t\tif (child instanceof DMenuItemMenu) {\n\t\t\t\tconst result = this.findMenuItem(child.menu, value);\n\t\t\t\tif (result != null) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t} else if (child instanceof DMenuItem) {\n\t\t\t\tif (child.value === value) {\n\t\t\t\t\treturn child;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**\n\t * Returns a selected value or null.\n\t */\n\tget value(): VALUE | null {\n\t\treturn this._value;\n\t}\n\n\t/**\n\t * Sets to the specified value.\n\t */\n\tset value(value: VALUE | null) {\n\t\tif (this._value !== value) {\n\t\t\tconst item = this.findMenuItem(this.menu, value);\n\t\t\tif (item != null) {\n\t\t\t\tthis._value = value;\n\t\t\t\tthis.text = item;\n\t\t\t} else {\n\t\t\t\tthis._value = null;\n\t\t\t\tthis.text = null;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DSelect\";\n\t}\n}\n"]}
@@ -3,17 +3,8 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { __extends } from "tslib";
6
- import { Point } from "pixi.js";
7
6
  import { DImage } from "./d-image";
8
- import { DTableState } from "./d-table-state";
9
- import { DApplications } from "./d-applications";
10
- import { UtilPointerEvent } from "./util/util-pointer-event";
11
- export var DTableCategoryCellEdge = {
12
- NONE: 0,
13
- LEFT: 1,
14
- RIGHT: 2,
15
- BOTH: 3
16
- };
7
+ import { DTableCellEdge } from "./d-table-cell-edge";
17
8
  var DTableCategoryCell = /** @class */ (function (_super) {
18
9
  __extends(DTableCategoryCell, _super);
19
10
  function DTableCategoryCell(category, columnIndex, column, options) {
@@ -21,8 +12,7 @@ var DTableCategoryCell = /** @class */ (function (_super) {
21
12
  _this._category = category;
22
13
  _this._columnIndex = columnIndex;
23
14
  _this._column = column;
24
- _this._edgeSize = _this.theme.getEdgeWidth();
25
- _this._wasResizing = false;
15
+ _this._edge = new DTableCellEdge(_this._category, _this, columnIndex, _this.theme.getEdgeWidth());
26
16
  return _this;
27
17
  }
28
18
  Object.defineProperty(DTableCategoryCell.prototype, "column", {
@@ -47,209 +37,17 @@ var DTableCategoryCell = /** @class */ (function (_super) {
47
37
  configurable: true
48
38
  });
49
39
  DTableCategoryCell.prototype.onDown = function (e) {
50
- var edges = this.state.valueOf(DTableState.HOVERED_ON_EDGE);
51
- if (edges != null) {
52
- this._wasResizing = true;
53
- var layer = DApplications.getLayer(this);
54
- if (layer != null) {
55
- var interactionManager = layer.renderer.plugins.interaction;
56
- var columnIndex = this._columnIndex;
57
- if (edges === DTableCategoryCellEdge.LEFT) {
58
- this.onDownEdge(e.data.global.x, columnIndex - 1, interactionManager);
59
- }
60
- else {
61
- this.onDownEdge(e.data.global.x, columnIndex, interactionManager);
62
- }
63
- }
64
- }
65
- else {
66
- this._wasResizing = false;
40
+ if (!this._edge.onDown(e)) {
67
41
  _super.prototype.onDown.call(this, e);
68
42
  }
69
43
  };
70
- DTableCategoryCell.prototype.findLeftResizableCell = function (columnIndex) {
71
- var children = this._category.children;
72
- var childrenLength = children.length;
73
- for (var i = columnIndex; 0 <= i; --i) {
74
- var child = children[childrenLength - i - 1];
75
- if (child.column.resizable) {
76
- return child;
77
- }
78
- }
79
- return null;
80
- };
81
- DTableCategoryCell.prototype.findRightResizableCellOfWeight = function (columnIndex) {
82
- var children = this._category.children;
83
- var childrenLength = children.length;
84
- for (var i = columnIndex + 1; i < childrenLength; ++i) {
85
- var child = children[childrenLength - i - 1];
86
- var childColumn = child.column;
87
- if (childColumn.resizable) {
88
- var childColumnWeight = childColumn.weight;
89
- if (childColumnWeight != null) {
90
- return child;
91
- }
92
- }
93
- }
94
- return null;
95
- };
96
- DTableCategoryCell.prototype.checkIfEdgeResizable = function (columnIndex) {
97
- var target = this.findLeftResizableCell(columnIndex);
98
- if (target != null) {
99
- if (target.column.weight != null) {
100
- return this.findRightResizableCellOfWeight(target.columnIndex) != null;
101
- }
102
- else {
103
- return true;
104
- }
105
- }
106
- return false;
107
- };
108
- DTableCategoryCell.prototype.getResizableEdges = function () {
109
- var result = this._resizableEdges;
110
- if (result == null) {
111
- var columnIndex = this._columnIndex;
112
- if (this.checkIfEdgeResizable(columnIndex - 1)) {
113
- if (this.checkIfEdgeResizable(columnIndex)) {
114
- result = DTableCategoryCellEdge.BOTH;
115
- }
116
- else {
117
- result = DTableCategoryCellEdge.LEFT;
118
- }
119
- }
120
- else {
121
- if (this.checkIfEdgeResizable(columnIndex)) {
122
- result = DTableCategoryCellEdge.RIGHT;
123
- }
124
- else {
125
- result = DTableCategoryCellEdge.NONE;
126
- }
127
- }
128
- this._resizableEdges = result;
129
- }
130
- return result;
131
- };
132
44
  DTableCategoryCell.prototype.onOver = function (e) {
133
- var _this = this;
134
- var _a;
135
45
  _super.prototype.onOver.call(this, e);
136
- if (this.getResizableEdges() !== DTableCategoryCellEdge.NONE) {
137
- var onHoveredBound = ((_a = this._onHoveredBound) !== null && _a !== void 0 ? _a : (this._onHoveredBound = function (event) {
138
- _this.onHovered(event);
139
- }));
140
- this.on(UtilPointerEvent.move, onHoveredBound);
141
- // Since the cursor is set by InteractionManager before this method is called,
142
- // the cursor need to be overriden.
143
- this.onHovered(e);
144
- var layer = DApplications.getLayer(this);
145
- if (layer != null) {
146
- layer.renderer.plugins.interaction.cursor = this.cursor;
147
- }
148
- }
46
+ this._edge.onOver(e);
149
47
  };
150
48
  DTableCategoryCell.prototype.onOut = function (e) {
151
49
  _super.prototype.onOut.call(this, e);
152
- var onHoveredBound = this._onHoveredBound;
153
- if (onHoveredBound != null) {
154
- this.state.remove(DTableState.HOVERED_ON_EDGE);
155
- this.off(UtilPointerEvent.move, onHoveredBound);
156
- }
157
- };
158
- DTableCategoryCell.prototype.onHovered = function (e) {
159
- var width = this.width;
160
- var x = this.toClickPosition(e);
161
- var edgeSize = this._edgeSize;
162
- if (0 <= x && x <= edgeSize) {
163
- if (this.getResizableEdges() & DTableCategoryCellEdge.LEFT) {
164
- this.state.add(DTableState.HOVERED_ON_EDGE, DTableCategoryCellEdge.LEFT);
165
- }
166
- else {
167
- this.state.remove(DTableState.HOVERED_ON_EDGE);
168
- }
169
- }
170
- else if (width - edgeSize <= x && x <= width) {
171
- if (this.getResizableEdges() & DTableCategoryCellEdge.RIGHT) {
172
- this.state.add(DTableState.HOVERED_ON_EDGE, DTableCategoryCellEdge.RIGHT);
173
- }
174
- else {
175
- this.state.remove(DTableState.HOVERED_ON_EDGE);
176
- }
177
- }
178
- else {
179
- this.state.remove(DTableState.HOVERED_ON_EDGE);
180
- }
181
- };
182
- DTableCategoryCell.prototype.toClickPosition = function (e) {
183
- var _a;
184
- var checkWork = ((_a = this._checkWork) !== null && _a !== void 0 ? _a : (this._checkWork = new Point()));
185
- return e.data.getLocalPosition(this, checkWork).x;
186
- };
187
- DTableCategoryCell.prototype.onDownEdge = function (onDownPoint, columnIndex, interactionManager) {
188
- // Find the resizable cell
189
- var left = this.findLeftResizableCell(columnIndex);
190
- if (left == null) {
191
- // No resizable cell
192
- return;
193
- }
194
- var category = this._category;
195
- var leftColumn = left.column;
196
- var leftOldWidth = left.width;
197
- var leftOldWeight = left.weight;
198
- if (leftColumn.weight == null) {
199
- category.state.add(DTableState.RESIZING);
200
- var leftMinWidth_1 = leftColumn.minWidth;
201
- var onMove_1 = function (e) {
202
- leftColumn.width = Math.max(leftMinWidth_1, leftOldWidth + e.data.global.x - onDownPoint);
203
- };
204
- var onUp_1 = function (e) {
205
- category.state.remove(DTableState.RESIZING);
206
- interactionManager.off(UtilPointerEvent.move, onMove_1);
207
- interactionManager.off(UtilPointerEvent.up, onUp_1);
208
- interactionManager.off(UtilPointerEvent.upoutside, onUp_1);
209
- interactionManager.off(UtilPointerEvent.cancel, onUp_1);
210
- };
211
- interactionManager.on(UtilPointerEvent.move, onMove_1);
212
- interactionManager.on(UtilPointerEvent.up, onUp_1);
213
- interactionManager.on(UtilPointerEvent.upoutside, onUp_1);
214
- interactionManager.on(UtilPointerEvent.cancel, onUp_1);
215
- }
216
- else {
217
- var right = this.findRightResizableCellOfWeight(left.columnIndex);
218
- if (right == null) {
219
- // No right resizable cell found
220
- return;
221
- }
222
- var rightColumn_1 = right.column;
223
- var rightOldWeight = right.weight;
224
- var rightOldWidth = right.width;
225
- var totalWidth_1 = leftOldWidth + rightOldWidth;
226
- var totalWeight_1 = leftOldWeight + rightOldWeight;
227
- var leftMinWeight_1 = leftColumn.minWeight;
228
- var rightMinWeight = rightColumn_1.minWeight;
229
- var leftMaxWeight_1 = totalWeight_1 - rightMinWeight;
230
- if (totalWidth_1 <= 0 || leftMaxWeight_1 <= leftMinWeight_1) {
231
- // The left and right resizable cells doesn't non-zero width
232
- return;
233
- }
234
- category.state.add(DTableState.RESIZING);
235
- var onMove_2 = function (e) {
236
- var leftNewWidth = Math.max(0, Math.min(totalWidth_1, leftOldWidth + e.data.global.x - onDownPoint));
237
- var leftNewWeight = Math.max(leftMinWeight_1, Math.min(leftMaxWeight_1, totalWeight_1 * (leftNewWidth / totalWidth_1)));
238
- leftColumn.weight = leftNewWeight;
239
- rightColumn_1.weight = totalWeight_1 - leftNewWeight;
240
- };
241
- var onUp_2 = function (e) {
242
- category.state.remove(DTableState.RESIZING);
243
- interactionManager.off(UtilPointerEvent.move, onMove_2);
244
- interactionManager.off(UtilPointerEvent.up, onUp_2);
245
- interactionManager.off(UtilPointerEvent.upoutside, onUp_2);
246
- interactionManager.off(UtilPointerEvent.cancel, onUp_2);
247
- };
248
- interactionManager.on(UtilPointerEvent.move, onMove_2);
249
- interactionManager.on(UtilPointerEvent.up, onUp_2);
250
- interactionManager.on(UtilPointerEvent.upoutside, onUp_2);
251
- interactionManager.on(UtilPointerEvent.cancel, onUp_2);
252
- }
50
+ this._edge.onOut(e);
253
51
  };
254
52
  DTableCategoryCell.prototype.getType = function () {
255
53
  return "DTableCategoryCell";
@@ -1 +1 @@
1
- {"version":3,"file":"d-table-category-cell.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-category-cell.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, InteractionManager, Point } from \"pixi.js\";\nimport { DImage, DImageOptions, DThemeImage } from \"./d-image\";\nimport { DTableCategoryColumn } from \"./d-table-category-column\";\nimport { DTableState } from \"./d-table-state\";\nimport { DApplications } from \"./d-applications\";\nimport { DBaseStateSet } from \"./d-base-state-set\";\nimport { UtilPointerEvent } from \"./util/util-pointer-event\";\n\nexport interface DTableCategoryCellCategory {\n\treadonly children: DTableCategoryCell[];\n\treadonly state: DBaseStateSet;\n}\n\nexport interface DTableCategoryCellOptions<\n\tTHEME extends DThemeTableCategoryCell = DThemeTableCategoryCell\n> extends DImageOptions<string | null, THEME> {}\n\nexport interface DThemeTableCategoryCell extends DThemeImage<string | null> {\n\tgetEdgeWidth(): number;\n}\n\nexport const DTableCategoryCellEdge = {\n\tNONE: 0,\n\tLEFT: 1,\n\tRIGHT: 2,\n\tBOTH: 3\n} as const;\n\nexport type DTableCategoryCellEdge =\n\t(typeof DTableCategoryCellEdge)[keyof typeof DTableCategoryCellEdge];\n\nexport class DTableCategoryCell<\n\tTHEME extends DThemeTableCategoryCell = DThemeTableCategoryCell,\n\tOPTIONS extends DTableCategoryCellOptions<THEME> = DTableCategoryCellOptions<THEME>\n> extends DImage<string | null, THEME, OPTIONS> {\n\tprotected _category: DTableCategoryCellCategory;\n\tprotected _column: DTableCategoryColumn;\n\tprotected _columnIndex: number;\n\n\tprotected _checkWork?: Point;\n\tprotected _onHoveredBound?: (e: InteractionEvent) => void;\n\tprotected _resizableEdges?: DTableCategoryCellEdge;\n\tprotected _edgeSize: number;\n\tprotected _wasResizing: boolean;\n\n\tconstructor(\n\t\tcategory: DTableCategoryCellCategory,\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableCategoryColumn,\n\t\toptions?: OPTIONS\n\t) {\n\t\tsuper(options);\n\n\t\tthis._category = category;\n\t\tthis._columnIndex = columnIndex;\n\t\tthis._column = column;\n\t\tthis._edgeSize = this.theme.getEdgeWidth();\n\t\tthis._wasResizing = false;\n\t}\n\n\tget column(): DTableCategoryColumn {\n\t\treturn this._column;\n\t}\n\n\tget columnIndex(): number {\n\t\treturn this._columnIndex;\n\t}\n\n\tget category(): DTableCategoryCellCategory {\n\t\treturn this._category;\n\t}\n\n\tprotected override onDown(e: InteractionEvent): void {\n\t\tconst edges = this.state.valueOf(DTableState.HOVERED_ON_EDGE);\n\t\tif (edges != null) {\n\t\t\tthis._wasResizing = true;\n\t\t\tconst layer = DApplications.getLayer(this);\n\t\t\tif (layer != null) {\n\t\t\t\tconst interactionManager = layer.renderer.plugins.interaction;\n\t\t\t\tconst columnIndex = this._columnIndex;\n\t\t\t\tif (edges === DTableCategoryCellEdge.LEFT) {\n\t\t\t\t\tthis.onDownEdge(e.data.global.x, columnIndex - 1, interactionManager);\n\t\t\t\t} else {\n\t\t\t\t\tthis.onDownEdge(e.data.global.x, columnIndex, interactionManager);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis._wasResizing = false;\n\t\t\tsuper.onDown(e);\n\t\t}\n\t}\n\n\tprotected findLeftResizableCell(columnIndex: number): DTableCategoryCell | null {\n\t\tconst children = this._category.children;\n\t\tconst childrenLength = children.length;\n\t\tfor (let i = columnIndex; 0 <= i; --i) {\n\t\t\tconst child = children[childrenLength - i - 1];\n\t\t\tif (child.column.resizable) {\n\t\t\t\treturn child;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected findRightResizableCellOfWeight(columnIndex: number): DTableCategoryCell | null {\n\t\tconst children = this._category.children;\n\t\tconst childrenLength = children.length;\n\t\tfor (let i = columnIndex + 1; i < childrenLength; ++i) {\n\t\t\tconst child = children[childrenLength - i - 1];\n\t\t\tconst childColumn = child.column;\n\t\t\tif (childColumn.resizable) {\n\t\t\t\tconst childColumnWeight = childColumn.weight;\n\t\t\t\tif (childColumnWeight != null) {\n\t\t\t\t\treturn child;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected checkIfEdgeResizable(columnIndex: number): boolean {\n\t\tconst target = this.findLeftResizableCell(columnIndex);\n\t\tif (target != null) {\n\t\t\tif (target.column.weight != null) {\n\t\t\t\treturn this.findRightResizableCellOfWeight(target.columnIndex) != null;\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected getResizableEdges(): DTableCategoryCellEdge {\n\t\tlet result = this._resizableEdges;\n\t\tif (result == null) {\n\t\t\tconst columnIndex = this._columnIndex;\n\t\t\tif (this.checkIfEdgeResizable(columnIndex - 1)) {\n\t\t\t\tif (this.checkIfEdgeResizable(columnIndex)) {\n\t\t\t\t\tresult = DTableCategoryCellEdge.BOTH;\n\t\t\t\t} else {\n\t\t\t\t\tresult = DTableCategoryCellEdge.LEFT;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this.checkIfEdgeResizable(columnIndex)) {\n\t\t\t\t\tresult = DTableCategoryCellEdge.RIGHT;\n\t\t\t\t} else {\n\t\t\t\t\tresult = DTableCategoryCellEdge.NONE;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._resizableEdges = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected override onOver(e: InteractionEvent): void {\n\t\tsuper.onOver(e);\n\n\t\tif (this.getResizableEdges() !== DTableCategoryCellEdge.NONE) {\n\t\t\tconst onHoveredBound = (this._onHoveredBound ??= (event: InteractionEvent): void => {\n\t\t\t\tthis.onHovered(event);\n\t\t\t});\n\t\t\tthis.on(UtilPointerEvent.move, onHoveredBound);\n\n\t\t\t// Since the cursor is set by InteractionManager before this method is called,\n\t\t\t// the cursor need to be overriden.\n\t\t\tthis.onHovered(e);\n\t\t\tconst layer = DApplications.getLayer(this);\n\t\t\tif (layer != null) {\n\t\t\t\tlayer.renderer.plugins.interaction.cursor = this.cursor;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected override onOut(e: InteractionEvent): void {\n\t\tsuper.onOut(e);\n\n\t\tconst onHoveredBound = this._onHoveredBound;\n\t\tif (onHoveredBound != null) {\n\t\t\tthis.state.remove(DTableState.HOVERED_ON_EDGE);\n\t\t\tthis.off(UtilPointerEvent.move, onHoveredBound);\n\t\t}\n\t}\n\n\tprotected onHovered(e: InteractionEvent): void {\n\t\tconst width = this.width;\n\t\tconst x = this.toClickPosition(e);\n\t\tconst edgeSize = this._edgeSize;\n\t\tif (0 <= x && x <= edgeSize) {\n\t\t\tif (this.getResizableEdges() & DTableCategoryCellEdge.LEFT) {\n\t\t\t\tthis.state.add(DTableState.HOVERED_ON_EDGE, DTableCategoryCellEdge.LEFT);\n\t\t\t} else {\n\t\t\t\tthis.state.remove(DTableState.HOVERED_ON_EDGE);\n\t\t\t}\n\t\t} else if (width - edgeSize <= x && x <= width) {\n\t\t\tif (this.getResizableEdges() & DTableCategoryCellEdge.RIGHT) {\n\t\t\t\tthis.state.add(DTableState.HOVERED_ON_EDGE, DTableCategoryCellEdge.RIGHT);\n\t\t\t} else {\n\t\t\t\tthis.state.remove(DTableState.HOVERED_ON_EDGE);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.state.remove(DTableState.HOVERED_ON_EDGE);\n\t\t}\n\t}\n\n\tprotected toClickPosition(e: InteractionEvent): number {\n\t\tconst checkWork = (this._checkWork ??= new Point());\n\t\treturn e.data.getLocalPosition(this, checkWork).x;\n\t}\n\n\tprotected onDownEdge(\n\t\tonDownPoint: number,\n\t\tcolumnIndex: number,\n\t\tinteractionManager: InteractionManager\n\t): void {\n\t\t// Find the resizable cell\n\t\tconst left = this.findLeftResizableCell(columnIndex);\n\t\tif (left == null) {\n\t\t\t// No resizable cell\n\t\t\treturn;\n\t\t}\n\n\t\tconst category = this._category;\n\t\tconst leftColumn = left.column;\n\t\tconst leftOldWidth = left.width;\n\t\tconst leftOldWeight = left.weight;\n\t\tif (leftColumn.weight == null) {\n\t\t\tcategory.state.add(DTableState.RESIZING);\n\t\t\tconst leftMinWidth = leftColumn.minWidth;\n\t\t\tconst onMove = (e: InteractionEvent): void => {\n\t\t\t\tleftColumn.width = Math.max(\n\t\t\t\t\tleftMinWidth,\n\t\t\t\t\tleftOldWidth + e.data.global.x - onDownPoint\n\t\t\t\t);\n\t\t\t};\n\t\t\tconst onUp = (e: InteractionEvent) => {\n\t\t\t\tcategory.state.remove(DTableState.RESIZING);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.move, onMove);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.up, onUp);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.upoutside, onUp);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.cancel, onUp);\n\t\t\t};\n\t\t\tinteractionManager.on(UtilPointerEvent.move, onMove);\n\t\t\tinteractionManager.on(UtilPointerEvent.up, onUp);\n\t\t\tinteractionManager.on(UtilPointerEvent.upoutside, onUp);\n\t\t\tinteractionManager.on(UtilPointerEvent.cancel, onUp);\n\t\t} else {\n\t\t\tconst right = this.findRightResizableCellOfWeight(left.columnIndex);\n\t\t\tif (right == null) {\n\t\t\t\t// No right resizable cell found\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst rightColumn = right.column;\n\t\t\tconst rightOldWeight = right.weight;\n\t\t\tconst rightOldWidth = right.width;\n\t\t\tconst totalWidth = leftOldWidth + rightOldWidth;\n\t\t\tconst totalWeight = leftOldWeight + rightOldWeight;\n\t\t\tconst leftMinWeight = leftColumn.minWeight;\n\t\t\tconst rightMinWeight = rightColumn.minWeight;\n\t\t\tconst leftMaxWeight = totalWeight - rightMinWeight;\n\t\t\tif (totalWidth <= 0 || leftMaxWeight <= leftMinWeight) {\n\t\t\t\t// The left and right resizable cells doesn't non-zero width\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcategory.state.add(DTableState.RESIZING);\n\t\t\tconst onMove = (e: InteractionEvent): void => {\n\t\t\t\tconst leftNewWidth = Math.max(\n\t\t\t\t\t0,\n\t\t\t\t\tMath.min(totalWidth, leftOldWidth + e.data.global.x - onDownPoint)\n\t\t\t\t);\n\t\t\t\tconst leftNewWeight = Math.max(\n\t\t\t\t\tleftMinWeight,\n\t\t\t\t\tMath.min(leftMaxWeight, totalWeight * (leftNewWidth / totalWidth))\n\t\t\t\t);\n\t\t\t\tleftColumn.weight = leftNewWeight;\n\t\t\t\trightColumn.weight = totalWeight - leftNewWeight;\n\t\t\t};\n\t\t\tconst onUp = (e: InteractionEvent) => {\n\t\t\t\tcategory.state.remove(DTableState.RESIZING);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.move, onMove);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.up, onUp);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.upoutside, onUp);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.cancel, onUp);\n\t\t\t};\n\t\t\tinteractionManager.on(UtilPointerEvent.move, onMove);\n\t\t\tinteractionManager.on(UtilPointerEvent.up, onUp);\n\t\t\tinteractionManager.on(UtilPointerEvent.upoutside, onUp);\n\t\t\tinteractionManager.on(UtilPointerEvent.cancel, onUp);\n\t\t}\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DTableCategoryCell\";\n\t}\n}\n"]}
1
+ {"version":3,"file":"d-table-category-cell.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-category-cell.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAGH,OAAO,EAAE,MAAM,EAA8B,MAAM,WAAW,CAAC;AAG/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAerD;IAGU,sCAAqC;IAM9C,4BACC,QAAoC,EACpC,WAAmB,EACnB,MAA4B,EAC5B,OAAiB;QAJlB,YAMC,kBAAM,OAAO,CAAC,SAWd;QATA,KAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,KAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,KAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,KAAI,CAAC,KAAK,GAAG,IAAI,cAAc,CAC9B,KAAI,CAAC,SAAS,EACd,KAAI,EACJ,WAAW,EACX,KAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CACzB,CAAC;;IACH,CAAC;IAED,sBAAI,sCAAM;aAAV;YACC,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;;;OAAA;IAED,sBAAI,2CAAW;aAAf;YACC,OAAO,IAAI,CAAC,YAAY,CAAC;QAC1B,CAAC;;;OAAA;IAED,sBAAI,wCAAQ;aAAZ;YACC,OAAO,IAAI,CAAC,SAAS,CAAC;QACvB,CAAC;;;OAAA;IAEkB,mCAAM,GAAzB,UAA0B,CAAmB;QAC5C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAC1B,iBAAM,MAAM,YAAC,CAAC,CAAC,CAAC;SAChB;IACF,CAAC;IAEkB,mCAAM,GAAzB,UAA0B,CAAmB;QAC5C,iBAAM,MAAM,YAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAEkB,kCAAK,GAAxB,UAAyB,CAAmB;QAC3C,iBAAM,KAAK,YAAC,CAAC,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAES,oCAAO,GAAjB;QACC,OAAO,oBAAoB,CAAC;IAC7B,CAAC;IACF,yBAAC;AAAD,CAAC,AA3DD,CAGU,MAAM,GAwDf","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { InteractionEvent } from \"pixi.js\";\nimport { DImage, DImageOptions, DThemeImage } from \"./d-image\";\nimport { DTableCategoryColumn } from \"./d-table-category-column\";\nimport { DBaseStateSet } from \"./d-base-state-set\";\nimport { DTableCellEdge } from \"./d-table-cell-edge\";\n\nexport interface DTableCategoryCellCategory {\n\treadonly children: DTableCategoryCell[];\n\treadonly state: DBaseStateSet;\n}\n\nexport interface DTableCategoryCellOptions<\n\tTHEME extends DThemeTableCategoryCell = DThemeTableCategoryCell\n> extends DImageOptions<string | null, THEME> {}\n\nexport interface DThemeTableCategoryCell extends DThemeImage<string | null> {\n\tgetEdgeWidth(): number;\n}\n\nexport class DTableCategoryCell<\n\tTHEME extends DThemeTableCategoryCell = DThemeTableCategoryCell,\n\tOPTIONS extends DTableCategoryCellOptions<THEME> = DTableCategoryCellOptions<THEME>\n> extends DImage<string | null, THEME, OPTIONS> {\n\tprotected _category: DTableCategoryCellCategory;\n\tprotected _column: DTableCategoryColumn;\n\tprotected _columnIndex: number;\n\tprotected _edge: DTableCellEdge<DTableCategoryCell>;\n\n\tconstructor(\n\t\tcategory: DTableCategoryCellCategory,\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableCategoryColumn,\n\t\toptions?: OPTIONS\n\t) {\n\t\tsuper(options);\n\n\t\tthis._category = category;\n\t\tthis._columnIndex = columnIndex;\n\t\tthis._column = column;\n\t\tthis._edge = new DTableCellEdge<DTableCategoryCell>(\n\t\t\tthis._category,\n\t\t\tthis,\n\t\t\tcolumnIndex,\n\t\t\tthis.theme.getEdgeWidth()\n\t\t);\n\t}\n\n\tget column(): DTableCategoryColumn {\n\t\treturn this._column;\n\t}\n\n\tget columnIndex(): number {\n\t\treturn this._columnIndex;\n\t}\n\n\tget category(): DTableCategoryCellCategory {\n\t\treturn this._category;\n\t}\n\n\tprotected override onDown(e: InteractionEvent): void {\n\t\tif (!this._edge.onDown(e)) {\n\t\t\tsuper.onDown(e);\n\t\t}\n\t}\n\n\tprotected override onOver(e: InteractionEvent): void {\n\t\tsuper.onOver(e);\n\t\tthis._edge.onOver(e);\n\t}\n\n\tprotected override onOut(e: InteractionEvent): void {\n\t\tsuper.onOut(e);\n\t\tthis._edge.onOut(e);\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DTableCategoryCell\";\n\t}\n}\n"]}