@wcardinal/wcardinal-ui 0.239.0 → 0.240.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 (54) hide show
  1. package/dist/types/wcardinal/ui/d-button-base.d.ts +5 -2
  2. package/dist/types/wcardinal/ui/d-chart-axis-base.d.ts +5 -4
  3. package/dist/types/wcardinal/ui/d-chart-axis-container-impl.d.ts +1 -0
  4. package/dist/types/wcardinal/ui/d-chart-axis-container.d.ts +1 -0
  5. package/dist/types/wcardinal/ui/d-chart-axis.d.ts +1 -0
  6. package/dist/types/wcardinal/ui/d-chart-selection-gridline-container-impl.d.ts +1 -1
  7. package/dist/types/wcardinal/ui/d-chart-selection-gridline-container.d.ts +1 -1
  8. package/dist/types/wcardinal/ui/d-chart-selection-gridline-x.d.ts +1 -1
  9. package/dist/types/wcardinal/ui/d-chart-selection-gridline-y.d.ts +1 -1
  10. package/dist/types/wcardinal/ui/d-chart-selection-marker.d.ts +1 -1
  11. package/dist/types/wcardinal/ui/d-chart-selection-shape-base.d.ts +1 -1
  12. package/dist/types/wcardinal/ui/d-chart-selection-shape.d.ts +1 -1
  13. package/dist/types/wcardinal/ui/d-chart-selection-simple.d.ts +1 -0
  14. package/dist/types/wcardinal/ui/d-chart-selection-sub-impl.d.ts +1 -1
  15. package/dist/types/wcardinal/ui/d-chart-selection-sub.d.ts +1 -1
  16. package/dist/types/wcardinal/ui/d-chart-selection.d.ts +1 -0
  17. package/dist/wcardinal/ui/d-button-base.js +25 -7
  18. package/dist/wcardinal/ui/d-button-base.js.map +1 -1
  19. package/dist/wcardinal/ui/d-button-group.js +7 -1
  20. package/dist/wcardinal/ui/d-button-group.js.map +1 -1
  21. package/dist/wcardinal/ui/d-chart-axis-base.js +19 -9
  22. package/dist/wcardinal/ui/d-chart-axis-base.js.map +1 -1
  23. package/dist/wcardinal/ui/d-chart-axis-container-impl.js +7 -0
  24. package/dist/wcardinal/ui/d-chart-axis-container-impl.js.map +1 -1
  25. package/dist/wcardinal/ui/d-chart-axis-container.js.map +1 -1
  26. package/dist/wcardinal/ui/d-chart-axis.js.map +1 -1
  27. package/dist/wcardinal/ui/d-chart-plot-area-impl.js +2 -2
  28. package/dist/wcardinal/ui/d-chart-plot-area-impl.js.map +1 -1
  29. package/dist/wcardinal/ui/d-chart-selection-gridline-container-impl.js +3 -2
  30. package/dist/wcardinal/ui/d-chart-selection-gridline-container-impl.js.map +1 -1
  31. package/dist/wcardinal/ui/d-chart-selection-gridline-container.js.map +1 -1
  32. package/dist/wcardinal/ui/d-chart-selection-gridline-x.js +2 -0
  33. package/dist/wcardinal/ui/d-chart-selection-gridline-x.js.map +1 -1
  34. package/dist/wcardinal/ui/d-chart-selection-gridline-y.js +2 -0
  35. package/dist/wcardinal/ui/d-chart-selection-gridline-y.js.map +1 -1
  36. package/dist/wcardinal/ui/d-chart-selection-marker.js +2 -0
  37. package/dist/wcardinal/ui/d-chart-selection-marker.js.map +1 -1
  38. package/dist/wcardinal/ui/d-chart-selection-shape-base.js.map +1 -1
  39. package/dist/wcardinal/ui/d-chart-selection-shape.js.map +1 -1
  40. package/dist/wcardinal/ui/d-chart-selection-simple.js +11 -0
  41. package/dist/wcardinal/ui/d-chart-selection-simple.js.map +1 -1
  42. package/dist/wcardinal/ui/d-chart-selection-sub-impl.js +4 -2
  43. package/dist/wcardinal/ui/d-chart-selection-sub-impl.js.map +1 -1
  44. package/dist/wcardinal/ui/d-chart-selection-sub.js.map +1 -1
  45. package/dist/wcardinal/ui/d-chart-selection.js.map +1 -1
  46. package/dist/wcardinal-ui-theme-dark.js +1 -1
  47. package/dist/wcardinal-ui-theme-dark.min.js +1 -1
  48. package/dist/wcardinal-ui-theme-white.js +1 -1
  49. package/dist/wcardinal-ui-theme-white.min.js +1 -1
  50. package/dist/wcardinal-ui.cjs.js +84 -24
  51. package/dist/wcardinal-ui.js +84 -24
  52. package/dist/wcardinal-ui.min.js +2 -2
  53. package/dist/wcardinal-ui.min.js.map +1 -1
  54. package/package.json +1 -1
@@ -64,11 +64,14 @@ export interface DThemeButtonBase<VALUE = unknown> extends DThemeImageBase<VALUE
64
64
  * See {@link DButtonBaseEvents} for event details.
65
65
  */
66
66
  export declare class DButtonBase<VALUE = unknown, THEME extends DThemeButtonBase<VALUE> = DThemeButtonBase<VALUE>, OPTIONS extends DButtonBaseOptions<VALUE, THEME> = DButtonBaseOptions<VALUE, THEME>> extends DImageBase<VALUE, THEME, OPTIONS> {
67
- protected _isToggle: boolean;
68
- protected _when: DButtonBaseWhen;
67
+ protected _isToggle?: boolean;
68
+ protected _isGrouped?: boolean;
69
+ protected _when?: DButtonBaseWhen;
69
70
  protected init(options?: OPTIONS): void;
70
71
  protected onShortcut(e: KeyboardEvent): void;
71
72
  get isToggle(): boolean;
73
+ get isGrouped(): boolean;
74
+ set isGrouped(isGrouped: boolean);
72
75
  protected initOnPress(): void;
73
76
  protected getType(): string;
74
77
  protected onClick(e: interaction.InteractionEvent): void;
@@ -23,13 +23,14 @@ export declare class DChartAxisBase<CHART extends DBase = DBase, OPTIONS extends
23
23
  protected _theme: DThemeChartAxisBase;
24
24
  constructor(options?: OPTIONS);
25
25
  get position(): DChartAxisPosition;
26
- protected updateBar(container: DChartAxisContainer<CHART>): void;
27
- protected updateTicksX(domainMin: number, domainMax: number, coordinate: DChartCoordinate<CHART>, majorShapes: EShapeBar[], minorShapes: EShapeBar[], gridlineShapes: EShapeBar[] | undefined, shapePositionY: number, transform: Matrix, plotAreaHeight: number): void;
28
- protected updateTicksY(domainMin: number, domainMax: number, coordinate: DChartCoordinate<CHART>, majorShapes: EShapeBar[], minorShapes: EShapeBar[], gridlineShapes: EShapeBar[] | undefined, shapePositionX: number, transform: Matrix, plotAreaWidth: number): void;
29
- protected updateTicks(container: DChartAxisContainer<CHART>): void;
26
+ protected updateBar(container: DChartAxisContainer<CHART>): boolean;
27
+ protected updateTicksX(domainMin: number, domainMax: number, coordinate: DChartCoordinate<CHART>, majorShapes: EShapeBar[], minorShapes: EShapeBar[], gridlineShapes: EShapeBar[] | undefined, shapePositionY: number, transform: Matrix, plotAreaHeight: number): boolean;
28
+ protected updateTicksY(domainMin: number, domainMax: number, coordinate: DChartCoordinate<CHART>, majorShapes: EShapeBar[], minorShapes: EShapeBar[], gridlineShapes: EShapeBar[] | undefined, shapePositionX: number, transform: Matrix, plotAreaWidth: number): boolean;
29
+ protected updateTicks(container: DChartAxisContainer<CHART>): boolean;
30
30
  bind(container: DChartAxisContainer<CHART>, index: number): void;
31
31
  unbind(): void;
32
32
  update(): void;
33
+ onRender(): void;
33
34
  destroy(): void;
34
35
  protected toTheme(options?: DChartAxisBaseOptions): DThemeChartAxisBase;
35
36
  protected getThemeDefault(): DThemeChartAxisBase;
@@ -17,5 +17,6 @@ export declare class DChartAxisContainerImpl<CHART extends DBase = DBase> implem
17
17
  clear(position: DChartAxisPosition): this;
18
18
  size(position: DChartAxisPosition): number;
19
19
  update(): void;
20
+ onRender(): void;
20
21
  destroy(): void;
21
22
  }
@@ -15,5 +15,6 @@ export interface DChartAxisContainer<CHART extends DBase = DBase> {
15
15
  clear(position: DChartAxisPosition): this;
16
16
  size(position: DChartAxisPosition): number;
17
17
  update(): void;
18
+ onRender(): void;
18
19
  destroy(): void;
19
20
  }
@@ -9,5 +9,6 @@ export interface DChartAxis<CHART extends DBase = DBase> {
9
9
  bind(container: DChartAxisContainer<CHART>, index: number): void;
10
10
  unbind(): void;
11
11
  update(): void;
12
+ onRender(): void;
12
13
  destroy(): void;
13
14
  }
@@ -14,5 +14,5 @@ export declare class DChartSelectionGridlineContainerImpl<CHART extends DBase =
14
14
  unbind(): void;
15
15
  set(container: DChartSeriesContainer<CHART>, mappedPosition: IPoint, series: DChartSeries<CHART>): void;
16
16
  unset(): void;
17
- update(container: DChartSeriesContainer<CHART>, mappedPosition: IPoint): void;
17
+ update(container: DChartSeriesContainer<CHART>, mappedPosition: IPoint): boolean;
18
18
  }
@@ -14,5 +14,5 @@ export interface DChartSelectionGridlineContainer<CHART extends DBase = DBase> {
14
14
  unbind(): void;
15
15
  set(container: DChartSeriesContainer<CHART>, mappedPosition: IPoint, series: DChartSeries<CHART>): void;
16
16
  unset(): void;
17
- update(container: DChartSeriesContainer<CHART>, mappedPosition: IPoint): void;
17
+ update(container: DChartSeriesContainer<CHART>, mappedPosition: IPoint): boolean;
18
18
  }
@@ -3,7 +3,7 @@ import { DBase } from "./d-base";
3
3
  import { DChartSelectionShapeBase } from "./d-chart-selection-shape-base";
4
4
  import { DChartSeriesContainer } from "./d-chart-series-container";
5
5
  export declare class DChartSelectionGridlineX<CHART extends DBase = DBase> extends DChartSelectionShapeBase<CHART> {
6
- update(container: DChartSeriesContainer<CHART>, mappedPosition: IPoint): void;
6
+ update(container: DChartSeriesContainer<CHART>, mappedPosition: IPoint): boolean;
7
7
  protected isVisible(container: DChartSeriesContainer<CHART>, mappedX: number): boolean;
8
8
  protected getType(): string;
9
9
  }
@@ -3,7 +3,7 @@ import { DBase } from "./d-base";
3
3
  import { DChartSelectionShapeBase } from "./d-chart-selection-shape-base";
4
4
  import { DChartSeriesContainer } from "./d-chart-series-container";
5
5
  export declare class DChartSelectionGridlineY<CHART extends DBase = DBase> extends DChartSelectionShapeBase<CHART> {
6
- update(container: DChartSeriesContainer<CHART>, mappedPosition: IPoint): void;
6
+ update(container: DChartSeriesContainer<CHART>, mappedPosition: IPoint): boolean;
7
7
  protected isVisible(container: DChartSeriesContainer<CHART>, mappedY: number): boolean;
8
8
  protected getType(): string;
9
9
  }
@@ -3,7 +3,7 @@ import { DBase } from "./d-base";
3
3
  import { DChartSelectionShapeBase } from "./d-chart-selection-shape-base";
4
4
  import { DChartSeriesContainer } from "./d-chart-series-container";
5
5
  export declare class DChartSelectionMarker<CHART extends DBase = DBase> extends DChartSelectionShapeBase<CHART> {
6
- update(container: DChartSeriesContainer<CHART>, mappedPosition: IPoint): void;
6
+ update(container: DChartSeriesContainer<CHART>, mappedPosition: IPoint): boolean;
7
7
  protected isVisible(container: DChartSeriesContainer<CHART>, mappedPosition: IPoint): boolean;
8
8
  protected getType(): string;
9
9
  }
@@ -19,7 +19,7 @@ export declare abstract class DChartSelectionShapeBase<CHART extends DBase = DBa
19
19
  set(container: DChartSeriesContainer<CHART>, mappedPosition: IPoint, series: DChartSeries<CHART>): void;
20
20
  protected setStyle(this: unknown, shape: EShape, series: DChartSeries<CHART>): void;
21
21
  unset(): void;
22
- abstract update(container: DChartSeriesContainer<CHART>, mappedPosition: IPoint): void;
22
+ abstract update(container: DChartSeriesContainer<CHART>, mappedPosition: IPoint): boolean;
23
23
  protected toTheme(options?: DChartSelectionShapeOptions<CHART>): DThemeChartSelectionShape;
24
24
  protected getTheme(type: string): DThemeChartSelectionShape;
25
25
  protected abstract getType(): string;
@@ -21,5 +21,5 @@ export interface DChartSelectionShape<CHART extends DBase = DBase> {
21
21
  unbind(): void;
22
22
  set(container: DChartSeriesContainer<CHART>, mappedPosition: IPoint, series: DChartSeries<CHART>): void;
23
23
  unset(): void;
24
- update(container: DChartSeriesContainer<CHART>, mappedPosition: IPoint): void;
24
+ update(container: DChartSeriesContainer<CHART>, mappedPosition: IPoint): boolean;
25
25
  }
@@ -28,4 +28,5 @@ export declare class DChartSelectionSimple<CHART extends DBase = DBase> extends
28
28
  get selected(): DChartSelectionSub<CHART>;
29
29
  get hovered(): DChartSelectionSub<CHART>;
30
30
  update(): void;
31
+ onRender(): void;
31
32
  }
@@ -30,5 +30,5 @@ export declare class DChartSelectionSubImpl<CHART extends DBase = DBase> extends
30
30
  set(series: DChartSeries<CHART>, result: DChartSeriesHitResult | DChartSelectionSub<CHART>): void;
31
31
  protected setStyle(this: unknown, shape: EShape, series: DChartSeries<CHART>): void;
32
32
  unset(): void;
33
- update(): void;
33
+ update(): boolean;
34
34
  }
@@ -23,5 +23,5 @@ export interface DChartSelectionSub<CHART extends DBase = DBase> extends utils.E
23
23
  unbind(): void;
24
24
  set(series: DChartSeries<CHART>, result: DChartSeriesHitResult | DChartSelectionSub<CHART>): void;
25
25
  unset(): void;
26
- update(): void;
26
+ update(): boolean;
27
27
  }
@@ -15,4 +15,5 @@ export interface DChartSelection<CHART extends DBase = DBase> extends utils.Even
15
15
  bind(container: DChartSeriesContainer<CHART>): void;
16
16
  unbind(): void;
17
17
  update(): void;
18
+ onRender(): void;
18
19
  }
@@ -44,7 +44,17 @@ var DButtonBase = /** @class */ (function (_super) {
44
44
  };
45
45
  Object.defineProperty(DButtonBase.prototype, "isToggle", {
46
46
  get: function () {
47
- return this._isToggle;
47
+ return !!this._isToggle;
48
+ },
49
+ enumerable: false,
50
+ configurable: true
51
+ });
52
+ Object.defineProperty(DButtonBase.prototype, "isGrouped", {
53
+ get: function () {
54
+ return !!this._isGrouped;
55
+ },
56
+ set: function (isGrouped) {
57
+ this._isGrouped = isGrouped;
48
58
  },
49
59
  enumerable: false,
50
60
  configurable: true
@@ -87,9 +97,17 @@ var DButtonBase = /** @class */ (function (_super) {
87
97
  return _super.prototype.onDblClick.call(this, e, interactionManager);
88
98
  };
89
99
  DButtonBase.prototype.activate = function (e) {
90
- if (this.isToggle) {
91
- this.onToggleStart(e);
92
- this.onToggleEnd(e);
100
+ if (this._isToggle) {
101
+ if (this._isGrouped) {
102
+ if (!this.state.isActive) {
103
+ this.onToggleStart(e);
104
+ this.onToggleEnd(e);
105
+ }
106
+ }
107
+ else {
108
+ this.onToggleStart(e);
109
+ this.onToggleEnd(e);
110
+ }
93
111
  }
94
112
  else {
95
113
  this.onActivate(e);
@@ -103,7 +121,7 @@ var DButtonBase = /** @class */ (function (_super) {
103
121
  };
104
122
  DButtonBase.prototype.toggle = function () {
105
123
  if (this.state.isActionable) {
106
- if (this.isToggle) {
124
+ if (this._isToggle) {
107
125
  this.onToggleStart();
108
126
  this.onToggleEnd();
109
127
  }
@@ -122,7 +140,7 @@ var DButtonBase = /** @class */ (function (_super) {
122
140
  };
123
141
  DButtonBase.prototype.onActivateKeyDown = function (e) {
124
142
  if (this.state.isActionable) {
125
- if (this.isToggle) {
143
+ if (this._isToggle) {
126
144
  this.onToggleStart(e);
127
145
  }
128
146
  else {
@@ -132,7 +150,7 @@ var DButtonBase = /** @class */ (function (_super) {
132
150
  };
133
151
  DButtonBase.prototype.onActivateKeyUp = function (e) {
134
152
  if (this.state.isActionable) {
135
- if (this.isToggle) {
153
+ if (this._isToggle) {
136
154
  this.onToggleEnd(e);
137
155
  }
138
156
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"d-button-base.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-button-base.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { interaction } from \"pixi.js\";\nimport { DApplications } from \"./d-applications\";\nimport { DButtonBaseWhen } from \"./d-button-base-when\";\nimport { DButtonGroup } from \"./d-button-group\";\nimport { DImageBase, DImageBaseEvents, DImageBaseOptions, DThemeImageBase } from \"./d-image-base\";\nimport { DOnOptions } from \"./d-on-options\";\nimport { toEnum } from \"./util/to-enum\";\nimport { UtilKeyboardEvent } from \"./util/util-keyboard-event\";\nimport { UtilPointerEvent } from \"./util/util-pointer-event\";\n\n/**\n * {@link DButtonBase} events.\n */\nexport interface DButtonBaseEvents<VALUE, EMITTER> extends DImageBaseEvents<VALUE, EMITTER> {\n\t/**\n\t * Triggered when the button is activated.\n\t *\n\t * @param emitter an emitter\n\t */\n\tactive(emitter: EMITTER): void;\n\n\t/**\n\t * Triggered when the button is inactivated.\n\t *\n\t * @param emitter an emitter\n\t */\n\tinactive(emitter: EMITTER): void;\n}\n\n/**\n * {@link DButtonBase} \"on\" options.\n */\nexport interface DButtonBaseOnOptions<VALUE, EMITTER>\n\textends Partial<DButtonBaseEvents<VALUE, EMITTER>>,\n\t\tDOnOptions {}\n\n/**\n * {@link DButtonBase} options.\n */\nexport interface DButtonBaseOptions<\n\tVALUE = unknown,\n\tTHEME extends DThemeButtonBase<VALUE> = DThemeButtonBase<VALUE>,\n\tEMITTER = any\n> extends DImageBaseOptions<VALUE, THEME, EMITTER> {\n\t/**\n\t * True to turn a toggle mode on.\n\t */\n\ttoggle?: boolean;\n\n\t/**\n\t * A button group.\n\t */\n\tgroup?: DButtonGroup;\n\n\t/**\n\t * An option when to activate a button.\n\t */\n\twhen?: DButtonBaseWhen | keyof typeof DButtonBaseWhen;\n\n\t/**\n\t * Mappings of event names and handlers.\n\t */\n\ton?: DButtonBaseOnOptions<VALUE, EMITTER>;\n}\n\n/**\n * {@link DButtonBase} theme.\n */\nexport interface DThemeButtonBase<VALUE = unknown> extends DThemeImageBase<VALUE> {\n\t/**\n\t * Returns true to turn a toggle mode on.\n\t */\n\tisToggle(): boolean;\n\n\t/**\n\t * Returns when to activate a button.\n\t */\n\tgetWhen(): DButtonBaseWhen;\n}\n\n/**\n * A base class for button classes.\n * See {@link DButtonBaseEvents} for event details.\n */\nexport class DButtonBase<\n\tVALUE = unknown,\n\tTHEME extends DThemeButtonBase<VALUE> = DThemeButtonBase<VALUE>,\n\tOPTIONS extends DButtonBaseOptions<VALUE, THEME> = DButtonBaseOptions<VALUE, THEME>\n> extends DImageBase<VALUE, THEME, OPTIONS> {\n\tprotected _isToggle!: boolean;\n\tprotected _when!: DButtonBaseWhen;\n\n\tprotected init(options?: OPTIONS): void {\n\t\tsuper.init(options);\n\n\t\tconst theme = this.theme;\n\t\tthis._isToggle = options?.toggle ?? theme.isToggle();\n\t\tthis._when = toEnum(options?.when ?? theme.getWhen(), DButtonBaseWhen);\n\n\t\t// Event handlers\n\t\tthis.on(UtilPointerEvent.tap, (e: interaction.InteractionEvent): void => {\n\t\t\tthis.onClick(e);\n\t\t});\n\t\tthis.initOnPress();\n\n\t\t// Group\n\t\tconst group = options?.group;\n\t\tif (group) {\n\t\t\tgroup.add(this);\n\t\t}\n\t}\n\n\tprotected onShortcut(e: KeyboardEvent): void {\n\t\tif (this.state.isActionable) {\n\t\t\tthis.activate(e);\n\t\t}\n\t\tsuper.onShortcut(e);\n\t}\n\n\tget isToggle(): boolean {\n\t\treturn this._isToggle;\n\t}\n\n\tprotected initOnPress(): void {\n\t\tlet interactionManager: interaction.InteractionManager | null = null;\n\n\t\tconst onUp = (): void => {\n\t\t\tthis.state.isPressed = false;\n\t\t\tif (interactionManager != null) {\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\tinteractionManager = null;\n\t\t\t}\n\t\t};\n\n\t\tthis.on(UtilPointerEvent.down, (): void => {\n\t\t\tthis.state.isPressed = true;\n\t\t\tconst layer = DApplications.getLayer(this);\n\t\t\tif (layer) {\n\t\t\t\tinteractionManager = layer.renderer.plugins.interaction;\n\t\t\t\tinteractionManager.on(UtilPointerEvent.up, onUp);\n\t\t\t\tinteractionManager.on(UtilPointerEvent.upoutside, onUp);\n\t\t\t\tinteractionManager.on(UtilPointerEvent.cancel, onUp);\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DButton\";\n\t}\n\n\tprotected onClick(e: interaction.InteractionEvent): void {\n\t\tif (this._when === DButtonBaseWhen.CLICKED && this.state.isActionable) {\n\t\t\tthis.activate(e);\n\t\t}\n\t}\n\n\tprotected onDblClick(\n\t\te: MouseEvent | TouchEvent,\n\t\tinteractionManager: interaction.InteractionManager\n\t): boolean {\n\t\tif (this._when === DButtonBaseWhen.DOUBLE_CLICKED && this.state.isActionable) {\n\t\t\tthis.activate(e);\n\t\t}\n\t\treturn super.onDblClick(e, interactionManager);\n\t}\n\n\tactivate(e?: interaction.InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent): void {\n\t\tif (this.isToggle) {\n\t\t\tthis.onToggleStart(e);\n\t\t\tthis.onToggleEnd(e);\n\t\t} else {\n\t\t\tthis.onActivate(e);\n\t\t}\n\t}\n\n\tprotected onActivate(\n\t\te?: interaction.InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent\n\t): void {\n\t\tthis.emit(\"active\", this);\n\t}\n\n\tprotected onInactivate(\n\t\te?: interaction.InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent\n\t): void {\n\t\tthis.emit(\"inactive\", this);\n\t}\n\n\ttoggle(): void {\n\t\tif (this.state.isActionable) {\n\t\t\tif (this.isToggle) {\n\t\t\t\tthis.onToggleStart();\n\t\t\t\tthis.onToggleEnd();\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onToggleStart(\n\t\te?: interaction.InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent\n\t): void {\n\t\tthis.state.isActive = !this.state.isActive;\n\t}\n\n\tprotected onToggleEnd(\n\t\te?: interaction.InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent\n\t): void {\n\t\tif (this.state.isActive) {\n\t\t\tthis.onActivate(e);\n\t\t} else {\n\t\t\tthis.onInactivate(e);\n\t\t}\n\t}\n\n\tprotected onActivateKeyDown(e: KeyboardEvent): void {\n\t\tif (this.state.isActionable) {\n\t\t\tif (this.isToggle) {\n\t\t\t\tthis.onToggleStart(e);\n\t\t\t} else {\n\t\t\t\tthis.state.isPressed = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onActivateKeyUp(e: KeyboardEvent): void {\n\t\tif (this.state.isActionable) {\n\t\t\tif (this.isToggle) {\n\t\t\t\tthis.onToggleEnd(e);\n\t\t\t} else {\n\t\t\t\tif (this.state.isPressed) {\n\t\t\t\t\tthis.onActivate(e);\n\t\t\t\t}\n\t\t\t\tthis.state.isPressed = false;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onKeyDown(e: KeyboardEvent): boolean {\n\t\tif (UtilKeyboardEvent.isActivateKey(e)) {\n\t\t\tthis.onActivateKeyDown(e);\n\t\t}\n\n\t\treturn super.onKeyDown(e);\n\t}\n\n\tprotected onKeyUp(e: KeyboardEvent): boolean {\n\t\tif (UtilKeyboardEvent.isActivateKey(e)) {\n\t\t\tthis.onActivateKeyUp(e);\n\t\t}\n\n\t\treturn super.onKeyUp(e);\n\t}\n\n\tdestroy(): void {\n\t\tthis._options?.group?.remove(this);\n\t\tsuper.destroy();\n\t}\n}\n"]}
1
+ {"version":3,"file":"d-button-base.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-button-base.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { interaction } from \"pixi.js\";\nimport { DApplications } from \"./d-applications\";\nimport { DButtonBaseWhen } from \"./d-button-base-when\";\nimport { DButtonGroup } from \"./d-button-group\";\nimport { DImageBase, DImageBaseEvents, DImageBaseOptions, DThemeImageBase } from \"./d-image-base\";\nimport { DOnOptions } from \"./d-on-options\";\nimport { toEnum } from \"./util/to-enum\";\nimport { UtilKeyboardEvent } from \"./util/util-keyboard-event\";\nimport { UtilPointerEvent } from \"./util/util-pointer-event\";\n\n/**\n * {@link DButtonBase} events.\n */\nexport interface DButtonBaseEvents<VALUE, EMITTER> extends DImageBaseEvents<VALUE, EMITTER> {\n\t/**\n\t * Triggered when the button is activated.\n\t *\n\t * @param emitter an emitter\n\t */\n\tactive(emitter: EMITTER): void;\n\n\t/**\n\t * Triggered when the button is inactivated.\n\t *\n\t * @param emitter an emitter\n\t */\n\tinactive(emitter: EMITTER): void;\n}\n\n/**\n * {@link DButtonBase} \"on\" options.\n */\nexport interface DButtonBaseOnOptions<VALUE, EMITTER>\n\textends Partial<DButtonBaseEvents<VALUE, EMITTER>>,\n\t\tDOnOptions {}\n\n/**\n * {@link DButtonBase} options.\n */\nexport interface DButtonBaseOptions<\n\tVALUE = unknown,\n\tTHEME extends DThemeButtonBase<VALUE> = DThemeButtonBase<VALUE>,\n\tEMITTER = any\n> extends DImageBaseOptions<VALUE, THEME, EMITTER> {\n\t/**\n\t * True to turn a toggle mode on.\n\t */\n\ttoggle?: boolean;\n\n\t/**\n\t * A button group.\n\t */\n\tgroup?: DButtonGroup;\n\n\t/**\n\t * An option when to activate a button.\n\t */\n\twhen?: DButtonBaseWhen | keyof typeof DButtonBaseWhen;\n\n\t/**\n\t * Mappings of event names and handlers.\n\t */\n\ton?: DButtonBaseOnOptions<VALUE, EMITTER>;\n}\n\n/**\n * {@link DButtonBase} theme.\n */\nexport interface DThemeButtonBase<VALUE = unknown> extends DThemeImageBase<VALUE> {\n\t/**\n\t * Returns true to turn a toggle mode on.\n\t */\n\tisToggle(): boolean;\n\n\t/**\n\t * Returns when to activate a button.\n\t */\n\tgetWhen(): DButtonBaseWhen;\n}\n\n/**\n * A base class for button classes.\n * See {@link DButtonBaseEvents} for event details.\n */\nexport class DButtonBase<\n\tVALUE = unknown,\n\tTHEME extends DThemeButtonBase<VALUE> = DThemeButtonBase<VALUE>,\n\tOPTIONS extends DButtonBaseOptions<VALUE, THEME> = DButtonBaseOptions<VALUE, THEME>\n> extends DImageBase<VALUE, THEME, OPTIONS> {\n\tprotected _isToggle?: boolean;\n\tprotected _isGrouped?: boolean;\n\tprotected _when?: DButtonBaseWhen;\n\n\tprotected init(options?: OPTIONS): void {\n\t\tsuper.init(options);\n\n\t\tconst theme = this.theme;\n\t\tthis._isToggle = options?.toggle ?? theme.isToggle();\n\t\tthis._when = toEnum(options?.when ?? theme.getWhen(), DButtonBaseWhen);\n\n\t\t// Event handlers\n\t\tthis.on(UtilPointerEvent.tap, (e: interaction.InteractionEvent): void => {\n\t\t\tthis.onClick(e);\n\t\t});\n\t\tthis.initOnPress();\n\n\t\t// Group\n\t\tconst group = options?.group;\n\t\tif (group) {\n\t\t\tgroup.add(this);\n\t\t}\n\t}\n\n\tprotected onShortcut(e: KeyboardEvent): void {\n\t\tif (this.state.isActionable) {\n\t\t\tthis.activate(e);\n\t\t}\n\t\tsuper.onShortcut(e);\n\t}\n\n\tget isToggle(): boolean {\n\t\treturn !!this._isToggle;\n\t}\n\n\tget isGrouped(): boolean {\n\t\treturn !!this._isGrouped;\n\t}\n\n\tset isGrouped(isGrouped: boolean) {\n\t\tthis._isGrouped = isGrouped;\n\t}\n\n\tprotected initOnPress(): void {\n\t\tlet interactionManager: interaction.InteractionManager | null = null;\n\n\t\tconst onUp = (): void => {\n\t\t\tthis.state.isPressed = false;\n\t\t\tif (interactionManager != null) {\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\tinteractionManager = null;\n\t\t\t}\n\t\t};\n\n\t\tthis.on(UtilPointerEvent.down, (): void => {\n\t\t\tthis.state.isPressed = true;\n\t\t\tconst layer = DApplications.getLayer(this);\n\t\t\tif (layer) {\n\t\t\t\tinteractionManager = layer.renderer.plugins.interaction;\n\t\t\t\tinteractionManager.on(UtilPointerEvent.up, onUp);\n\t\t\t\tinteractionManager.on(UtilPointerEvent.upoutside, onUp);\n\t\t\t\tinteractionManager.on(UtilPointerEvent.cancel, onUp);\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DButton\";\n\t}\n\n\tprotected onClick(e: interaction.InteractionEvent): void {\n\t\tif (this._when === DButtonBaseWhen.CLICKED && this.state.isActionable) {\n\t\t\tthis.activate(e);\n\t\t}\n\t}\n\n\tprotected onDblClick(\n\t\te: MouseEvent | TouchEvent,\n\t\tinteractionManager: interaction.InteractionManager\n\t): boolean {\n\t\tif (this._when === DButtonBaseWhen.DOUBLE_CLICKED && this.state.isActionable) {\n\t\t\tthis.activate(e);\n\t\t}\n\t\treturn super.onDblClick(e, interactionManager);\n\t}\n\n\tactivate(e?: interaction.InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent): void {\n\t\tif (this._isToggle) {\n\t\t\tif (this._isGrouped) {\n\t\t\t\tif (!this.state.isActive) {\n\t\t\t\t\tthis.onToggleStart(e);\n\t\t\t\t\tthis.onToggleEnd(e);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.onToggleStart(e);\n\t\t\t\tthis.onToggleEnd(e);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.onActivate(e);\n\t\t}\n\t}\n\n\tprotected onActivate(\n\t\te?: interaction.InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent\n\t): void {\n\t\tthis.emit(\"active\", this);\n\t}\n\n\tprotected onInactivate(\n\t\te?: interaction.InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent\n\t): void {\n\t\tthis.emit(\"inactive\", this);\n\t}\n\n\ttoggle(): void {\n\t\tif (this.state.isActionable) {\n\t\t\tif (this._isToggle) {\n\t\t\t\tthis.onToggleStart();\n\t\t\t\tthis.onToggleEnd();\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onToggleStart(\n\t\te?: interaction.InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent\n\t): void {\n\t\tthis.state.isActive = !this.state.isActive;\n\t}\n\n\tprotected onToggleEnd(\n\t\te?: interaction.InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent\n\t): void {\n\t\tif (this.state.isActive) {\n\t\t\tthis.onActivate(e);\n\t\t} else {\n\t\t\tthis.onInactivate(e);\n\t\t}\n\t}\n\n\tprotected onActivateKeyDown(e: KeyboardEvent): void {\n\t\tif (this.state.isActionable) {\n\t\t\tif (this._isToggle) {\n\t\t\t\tthis.onToggleStart(e);\n\t\t\t} else {\n\t\t\t\tthis.state.isPressed = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onActivateKeyUp(e: KeyboardEvent): void {\n\t\tif (this.state.isActionable) {\n\t\t\tif (this._isToggle) {\n\t\t\t\tthis.onToggleEnd(e);\n\t\t\t} else {\n\t\t\t\tif (this.state.isPressed) {\n\t\t\t\t\tthis.onActivate(e);\n\t\t\t\t}\n\t\t\t\tthis.state.isPressed = false;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onKeyDown(e: KeyboardEvent): boolean {\n\t\tif (UtilKeyboardEvent.isActivateKey(e)) {\n\t\t\tthis.onActivateKeyDown(e);\n\t\t}\n\n\t\treturn super.onKeyDown(e);\n\t}\n\n\tprotected onKeyUp(e: KeyboardEvent): boolean {\n\t\tif (UtilKeyboardEvent.isActivateKey(e)) {\n\t\t\tthis.onActivateKeyUp(e);\n\t\t}\n\n\t\treturn super.onKeyUp(e);\n\t}\n\n\tdestroy(): void {\n\t\tthis._options?.group?.remove(this);\n\t\tsuper.destroy();\n\t}\n}\n"]}
@@ -32,6 +32,7 @@ var DButtonGroup = /** @class */ (function (_super) {
32
32
  var index = buttons.indexOf(button);
33
33
  if (index < 0) {
34
34
  this._buttons.push(button);
35
+ button.isGrouped = true;
35
36
  var isEnabled = this._isEnabled;
36
37
  if (isEnabled != null) {
37
38
  button.state.isEnabled = isEnabled;
@@ -68,6 +69,7 @@ var DButtonGroup = /** @class */ (function (_super) {
68
69
  var index = buttons.indexOf(button);
69
70
  if (0 <= index) {
70
71
  buttons.splice(index, 1);
72
+ button.isGrouped = false;
71
73
  button.off("active", this._onActiveBound);
72
74
  if (this._active === button) {
73
75
  this.active = null;
@@ -80,7 +82,11 @@ var DButtonGroup = /** @class */ (function (_super) {
80
82
  return 0 <= index;
81
83
  };
82
84
  DButtonGroup.prototype.clear = function () {
83
- this._buttons.length = 0;
85
+ var buttons = this._buttons;
86
+ for (var i = 0, imax = buttons.length; i < imax; ++i) {
87
+ buttons[i].isGrouped = false;
88
+ }
89
+ buttons.length = 0;
84
90
  this.active = null;
85
91
  };
86
92
  DButtonGroup.prototype.size = function () {
@@ -1 +1 @@
1
- {"version":3,"file":"d-button-group.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-button-group.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { utils } from \"pixi.js\";\nimport { DButtonBase } from \"./d-button-base\";\nimport { DOnOptions } from \"./d-on-options\";\n\n/**\n * {@link DButtonGroup} events.\n */\nexport interface DButtonGroupEvents<BUTTON, EMITTER> {\n\t/**\n\t * Triggered when the active button is changed.\n\t *\n\t * @param emitter an emitter\n\t */\n\tactive(newActive: BUTTON | null, oldActive: BUTTON | null, emitter: EMITTER): void;\n}\n\n/**\n * {@link DButtonGroup} \"on\" options.\n */\nexport interface DButtonGroupOnOptions<BUTTON, EMITTER>\n\textends Partial<DButtonGroupEvents<BUTTON, EMITTER>>,\n\t\tDOnOptions {}\n\nexport interface DButtonGroupOptions<\n\tBUTTON extends DButtonBase<any, any, any> = DButtonBase<any, any, any>,\n\tEMITTER = any\n> {\n\ton?: DButtonGroupOnOptions<BUTTON, EMITTER>;\n}\n\nexport class DButtonGroup<\n\tBUTTON extends DButtonBase<any, any, any> = DButtonBase<any, any, any>,\n\tOPTIONS extends DButtonGroupOptions<BUTTON> = DButtonGroupOptions<BUTTON>\n> extends utils.EventEmitter {\n\tprotected _buttons: BUTTON[];\n\tprotected _active: BUTTON | null;\n\tprotected _onActiveBound: (button: BUTTON) => void;\n\tprotected _isEnabled?: boolean;\n\n\tconstructor(options?: OPTIONS) {\n\t\tsuper();\n\n\t\tthis._buttons = [];\n\t\tthis._active = null;\n\t\tthis._onActiveBound = (button: BUTTON): void => {\n\t\t\tthis.active = button;\n\t\t};\n\n\t\t// Events\n\t\tconst on = options?.on;\n\t\tif (on != null) {\n\t\t\tfor (const name in on) {\n\t\t\t\tconst handler = on[name];\n\t\t\t\tif (handler) {\n\t\t\t\t\tthis.on(name, handler);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Done\n\t\tthis.emit(\"init\", this);\n\t}\n\n\tadd(button: BUTTON): void {\n\t\tconst buttons = this._buttons;\n\t\tconst index = buttons.indexOf(button);\n\t\tif (index < 0) {\n\t\t\tthis._buttons.push(button);\n\t\t\tconst isEnabled = this._isEnabled;\n\t\t\tif (isEnabled != null) {\n\t\t\t\tbutton.state.isEnabled = isEnabled;\n\t\t\t}\n\t\t\tbutton.on(\"active\", this._onActiveBound);\n\t\t\tif (button.state.isActive) {\n\t\t\t\tthis.active = button;\n\t\t\t}\n\t\t}\n\t}\n\n\tget active(): BUTTON | null {\n\t\treturn this._active;\n\t}\n\n\tset active(newActive: BUTTON | null) {\n\t\tif ((newActive == null || newActive.isToggle) && this._active !== newActive) {\n\t\t\tconst oldActive = this._active;\n\t\t\tthis._active = null;\n\t\t\tconst buttons = this._buttons;\n\t\t\tfor (let i = 0, imax = buttons.length; i < imax; ++i) {\n\t\t\t\tconst button = buttons[i];\n\t\t\t\tif (button !== newActive && button.isToggle && button.state.isActive) {\n\t\t\t\t\tbutton.toggle();\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.emit(\"active\", newActive, oldActive, this);\n\t\t}\n\t}\n\n\tremove(button: BUTTON): void {\n\t\tconst buttons = this._buttons;\n\t\tconst index = buttons.indexOf(button);\n\t\tif (0 <= index) {\n\t\t\tbuttons.splice(index, 1);\n\t\t\tbutton.off(\"active\", this._onActiveBound);\n\t\t\tif (this._active === button) {\n\t\t\t\tthis.active = null;\n\t\t\t}\n\t\t}\n\t}\n\n\tcontains(button: BUTTON): boolean {\n\t\tconst buttons = this._buttons;\n\t\tconst index = buttons.indexOf(button);\n\t\treturn 0 <= index;\n\t}\n\n\tclear(): void {\n\t\tthis._buttons.length = 0;\n\t\tthis.active = null;\n\t}\n\n\tsize(): number {\n\t\treturn this._buttons.length;\n\t}\n\n\teach(iteratee: (button: BUTTON) => boolean | void): void {\n\t\tconst buttons = this._buttons;\n\t\tfor (let i = 0, imax = buttons.length; i < imax; ++i) {\n\t\t\tconst button = buttons[i];\n\t\t\tif (iteratee(button) === false) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tdisable(): void {\n\t\tconst buttons = this._buttons;\n\t\tfor (let i = 0, imax = buttons.length; i < imax; ++i) {\n\t\t\tbuttons[i].state.isDisabled = true;\n\t\t}\n\t\tthis._isEnabled = false;\n\t}\n\n\tenable(): void {\n\t\tconst buttons = this._buttons;\n\t\tfor (let i = 0, imax = buttons.length; i < imax; ++i) {\n\t\t\tbuttons[i].state.isDisabled = false;\n\t\t}\n\t\tthis._isEnabled = true;\n\t}\n\n\tdestroy(): void {\n\t\tthis.clear();\n\t}\n}\n"]}
1
+ {"version":3,"file":"d-button-group.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-button-group.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { utils } from \"pixi.js\";\nimport { DButtonBase } from \"./d-button-base\";\nimport { DOnOptions } from \"./d-on-options\";\n\n/**\n * {@link DButtonGroup} events.\n */\nexport interface DButtonGroupEvents<BUTTON, EMITTER> {\n\t/**\n\t * Triggered when the active button is changed.\n\t *\n\t * @param emitter an emitter\n\t */\n\tactive(newActive: BUTTON | null, oldActive: BUTTON | null, emitter: EMITTER): void;\n}\n\n/**\n * {@link DButtonGroup} \"on\" options.\n */\nexport interface DButtonGroupOnOptions<BUTTON, EMITTER>\n\textends Partial<DButtonGroupEvents<BUTTON, EMITTER>>,\n\t\tDOnOptions {}\n\nexport interface DButtonGroupOptions<\n\tBUTTON extends DButtonBase<any, any, any> = DButtonBase<any, any, any>,\n\tEMITTER = any\n> {\n\ton?: DButtonGroupOnOptions<BUTTON, EMITTER>;\n}\n\nexport class DButtonGroup<\n\tBUTTON extends DButtonBase<any, any, any> = DButtonBase<any, any, any>,\n\tOPTIONS extends DButtonGroupOptions<BUTTON> = DButtonGroupOptions<BUTTON>\n> extends utils.EventEmitter {\n\tprotected _buttons: BUTTON[];\n\tprotected _active: BUTTON | null;\n\tprotected _onActiveBound: (button: BUTTON) => void;\n\tprotected _isEnabled?: boolean;\n\n\tconstructor(options?: OPTIONS) {\n\t\tsuper();\n\n\t\tthis._buttons = [];\n\t\tthis._active = null;\n\t\tthis._onActiveBound = (button: BUTTON): void => {\n\t\t\tthis.active = button;\n\t\t};\n\n\t\t// Events\n\t\tconst on = options?.on;\n\t\tif (on != null) {\n\t\t\tfor (const name in on) {\n\t\t\t\tconst handler = on[name];\n\t\t\t\tif (handler) {\n\t\t\t\t\tthis.on(name, handler);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Done\n\t\tthis.emit(\"init\", this);\n\t}\n\n\tadd(button: BUTTON): void {\n\t\tconst buttons = this._buttons;\n\t\tconst index = buttons.indexOf(button);\n\t\tif (index < 0) {\n\t\t\tthis._buttons.push(button);\n\t\t\tbutton.isGrouped = true;\n\t\t\tconst isEnabled = this._isEnabled;\n\t\t\tif (isEnabled != null) {\n\t\t\t\tbutton.state.isEnabled = isEnabled;\n\t\t\t}\n\t\t\tbutton.on(\"active\", this._onActiveBound);\n\t\t\tif (button.state.isActive) {\n\t\t\t\tthis.active = button;\n\t\t\t}\n\t\t}\n\t}\n\n\tget active(): BUTTON | null {\n\t\treturn this._active;\n\t}\n\n\tset active(newActive: BUTTON | null) {\n\t\tif ((newActive == null || newActive.isToggle) && this._active !== newActive) {\n\t\t\tconst oldActive = this._active;\n\t\t\tthis._active = null;\n\t\t\tconst buttons = this._buttons;\n\t\t\tfor (let i = 0, imax = buttons.length; i < imax; ++i) {\n\t\t\t\tconst button = buttons[i];\n\t\t\t\tif (button !== newActive && button.isToggle && button.state.isActive) {\n\t\t\t\t\tbutton.toggle();\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.emit(\"active\", newActive, oldActive, this);\n\t\t}\n\t}\n\n\tremove(button: BUTTON): void {\n\t\tconst buttons = this._buttons;\n\t\tconst index = buttons.indexOf(button);\n\t\tif (0 <= index) {\n\t\t\tbuttons.splice(index, 1);\n\t\t\tbutton.isGrouped = false;\n\t\t\tbutton.off(\"active\", this._onActiveBound);\n\t\t\tif (this._active === button) {\n\t\t\t\tthis.active = null;\n\t\t\t}\n\t\t}\n\t}\n\n\tcontains(button: BUTTON): boolean {\n\t\tconst buttons = this._buttons;\n\t\tconst index = buttons.indexOf(button);\n\t\treturn 0 <= index;\n\t}\n\n\tclear(): void {\n\t\tconst buttons = this._buttons;\n\t\tfor (let i = 0, imax = buttons.length; i < imax; ++i) {\n\t\t\tbuttons[i].isGrouped = false;\n\t\t}\n\t\tbuttons.length = 0;\n\t\tthis.active = null;\n\t}\n\n\tsize(): number {\n\t\treturn this._buttons.length;\n\t}\n\n\teach(iteratee: (button: BUTTON) => boolean | void): void {\n\t\tconst buttons = this._buttons;\n\t\tfor (let i = 0, imax = buttons.length; i < imax; ++i) {\n\t\t\tconst button = buttons[i];\n\t\t\tif (iteratee(button) === false) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tdisable(): void {\n\t\tconst buttons = this._buttons;\n\t\tfor (let i = 0, imax = buttons.length; i < imax; ++i) {\n\t\t\tbuttons[i].state.isDisabled = true;\n\t\t}\n\t\tthis._isEnabled = false;\n\t}\n\n\tenable(): void {\n\t\tconst buttons = this._buttons;\n\t\tfor (let i = 0, imax = buttons.length; i < imax; ++i) {\n\t\t\tbuttons[i].state.isDisabled = false;\n\t\t}\n\t\tthis._isEnabled = true;\n\t}\n\n\tdestroy(): void {\n\t\tthis.clear();\n\t}\n}\n"]}
@@ -65,8 +65,9 @@ var DChartAxisBase = /** @class */ (function () {
65
65
  break;
66
66
  }
67
67
  shape.allowUploadedUpdate();
68
- DApplications.update(plotArea);
68
+ return true;
69
69
  }
70
+ return false;
70
71
  };
71
72
  DChartAxisBase.prototype.updateTicksX = function (domainMin, domainMax, coordinate, majorShapes, minorShapes, gridlineShapes, shapePositionY, transform, plotAreaHeight) {
72
73
  var tick = this._tick;
@@ -127,6 +128,7 @@ var DChartAxisBase = /** @class */ (function () {
127
128
  minorShape.visible = false;
128
129
  }
129
130
  }
131
+ return true;
130
132
  };
131
133
  DChartAxisBase.prototype.updateTicksY = function (domainMin, domainMax, coordinate, majorShapes, minorShapes, gridlineShapes, shapePositionX, transform, plotAreaWidth) {
132
134
  var tick = this._tick;
@@ -187,6 +189,7 @@ var DChartAxisBase = /** @class */ (function () {
187
189
  minorShape.visible = false;
188
190
  }
189
191
  }
192
+ return true;
190
193
  };
191
194
  DChartAxisBase.prototype.updateTicks = function (container) {
192
195
  var tick = this._tick;
@@ -207,8 +210,7 @@ var DChartAxisBase = /** @class */ (function () {
207
210
  var domainFrom = coordinate.unmap(coordinate.transform.unmap(bounds.x));
208
211
  var domainTo = coordinate.unmap(coordinate.transform.unmap(bounds.x + bounds.width));
209
212
  var plotAreaHeight = plotArea.height;
210
- this.updateTicksX(domainFrom, domainTo, coordinate, majorShapes, minorShapes, gridlineShapes, 0 - padding, transform, plotAreaHeight);
211
- DApplications.update(plotArea);
213
+ return this.updateTicksX(domainFrom, domainTo, coordinate, majorShapes, minorShapes, gridlineShapes, 0 - padding, transform, plotAreaHeight);
212
214
  }
213
215
  break;
214
216
  case DChartAxisPosition.BOTTOM:
@@ -217,8 +219,7 @@ var DChartAxisBase = /** @class */ (function () {
217
219
  var domainFrom = coordinate.unmap(coordinate.transform.unmap(bounds.x));
218
220
  var domainTo = coordinate.unmap(coordinate.transform.unmap(bounds.x + bounds.width));
219
221
  var plotAreaHeight = plotArea.height;
220
- this.updateTicksX(domainFrom, domainTo, coordinate, majorShapes, minorShapes, gridlineShapes, plotAreaHeight + padding, transform, plotAreaHeight);
221
- DApplications.update(plotArea);
222
+ return this.updateTicksX(domainFrom, domainTo, coordinate, majorShapes, minorShapes, gridlineShapes, plotAreaHeight + padding, transform, plotAreaHeight);
222
223
  }
223
224
  break;
224
225
  case DChartAxisPosition.LEFT:
@@ -227,8 +228,7 @@ var DChartAxisBase = /** @class */ (function () {
227
228
  var domainFrom = coordinate.unmap(coordinate.transform.unmap(bounds.y));
228
229
  var domainTo = coordinate.unmap(coordinate.transform.unmap(bounds.y + bounds.height));
229
230
  var plotAreaWidth = plotArea.width;
230
- this.updateTicksY(domainFrom, domainTo, coordinate, majorShapes, minorShapes, gridlineShapes, 0 - padding, transform, plotAreaWidth);
231
- DApplications.update(plotArea);
231
+ return this.updateTicksY(domainFrom, domainTo, coordinate, majorShapes, minorShapes, gridlineShapes, 0 - padding, transform, plotAreaWidth);
232
232
  }
233
233
  break;
234
234
  case DChartAxisPosition.RIGHT:
@@ -237,12 +237,12 @@ var DChartAxisBase = /** @class */ (function () {
237
237
  var domainFrom = coordinate.unmap(coordinate.transform.unmap(bounds.y));
238
238
  var domainTo = coordinate.unmap(coordinate.transform.unmap(bounds.y + bounds.height));
239
239
  var plotAreaWidth = plotArea.width;
240
- this.updateTicksY(domainFrom, domainTo, coordinate, majorShapes, minorShapes, gridlineShapes, plotAreaWidth + padding, transform, plotAreaWidth);
241
- DApplications.update(plotArea);
240
+ return this.updateTicksY(domainFrom, domainTo, coordinate, majorShapes, minorShapes, gridlineShapes, plotAreaWidth + padding, transform, plotAreaWidth);
242
241
  }
243
242
  break;
244
243
  }
245
244
  }
245
+ return false;
246
246
  };
247
247
  DChartAxisBase.prototype.bind = function (container, index) {
248
248
  this._container = container;
@@ -375,6 +375,16 @@ var DChartAxisBase = /** @class */ (function () {
375
375
  this._container = undefined;
376
376
  };
377
377
  DChartAxisBase.prototype.update = function () {
378
+ var container = this._container;
379
+ if (container) {
380
+ var isBarUpdated = this.updateBar(container);
381
+ var isTicksUpdated = this.updateTicks(container);
382
+ if (isBarUpdated || isTicksUpdated) {
383
+ DApplications.update(container.plotArea);
384
+ }
385
+ }
386
+ };
387
+ DChartAxisBase.prototype.onRender = function () {
378
388
  var container = this._container;
379
389
  if (container) {
380
390
  this.updateBar(container);