@wcardinal/wcardinal-ui 0.445.0 → 0.447.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 (38) hide show
  1. package/README.md +24 -28
  2. package/dist/types/wcardinal/ui/d-base-state-set-impl.d.ts +3 -1
  3. package/dist/types/wcardinal/ui/d-base-state-set.d.ts +3 -1
  4. package/dist/types/wcardinal/ui/d-dialog.d.ts +9 -1
  5. package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-dialog.d.ts +1 -0
  6. package/dist/types/wcardinal/ui/theme/white/d-theme-white-dialog.d.ts +1 -0
  7. package/dist/wcardinal/ui/d-base-state-set-impl.js +9 -1
  8. package/dist/wcardinal/ui/d-base-state-set-impl.js.map +1 -1
  9. package/dist/wcardinal/ui/d-base-state-set.js.map +1 -1
  10. package/dist/wcardinal/ui/d-dialog.js +48 -2
  11. package/dist/wcardinal/ui/d-dialog.js.map +1 -1
  12. package/dist/wcardinal/ui/d-table.js +2 -1
  13. package/dist/wcardinal/ui/d-table.js.map +1 -1
  14. package/dist/wcardinal/ui/theme/dark/d-theme-dark-dialog.js +3 -0
  15. package/dist/wcardinal/ui/theme/dark/d-theme-dark-dialog.js.map +1 -1
  16. package/dist/wcardinal/ui/theme/white/d-theme-white-dialog.js +3 -0
  17. package/dist/wcardinal/ui/theme/white/d-theme-white-dialog.js.map +1 -1
  18. package/dist/wcardinal-ui-theme-dark-en-us.js +4 -1
  19. package/dist/wcardinal-ui-theme-dark-en-us.min.js +2 -2
  20. package/dist/wcardinal-ui-theme-dark-en-us.min.js.map +1 -1
  21. package/dist/wcardinal-ui-theme-dark-ja-jp.js +4 -1
  22. package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +2 -2
  23. package/dist/wcardinal-ui-theme-dark-ja-jp.min.js.map +1 -1
  24. package/dist/wcardinal-ui-theme-dark.js +4 -1
  25. package/dist/wcardinal-ui-theme-dark.min.js +2 -2
  26. package/dist/wcardinal-ui-theme-white-en-us.js +4 -1
  27. package/dist/wcardinal-ui-theme-white-en-us.min.js +2 -2
  28. package/dist/wcardinal-ui-theme-white-en-us.min.js.map +1 -1
  29. package/dist/wcardinal-ui-theme-white-ja-jp.js +4 -1
  30. package/dist/wcardinal-ui-theme-white-ja-jp.min.js +2 -2
  31. package/dist/wcardinal-ui-theme-white-ja-jp.min.js.map +1 -1
  32. package/dist/wcardinal-ui-theme-white.js +4 -1
  33. package/dist/wcardinal-ui-theme-white.min.js +2 -2
  34. package/dist/wcardinal-ui.cjs.js +66 -5
  35. package/dist/wcardinal-ui.js +60 -5
  36. package/dist/wcardinal-ui.min.js +2 -2
  37. package/dist/wcardinal-ui.min.js.map +1 -1
  38. package/package.json +1 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
- ### About
1
+ ### WinterCardinal UI
2
2
 
3
- A WebGL-based UI library.
3
+ WebGL-based UI library
4
4
 
5
5
  ### Installation
6
6
 
@@ -13,12 +13,12 @@ npm i @wcardinal/wcardinal-ui
13
13
  Please note that this package has no default exports.
14
14
 
15
15
  ```javascript
16
- import { loadAll, loadThemeWhiteAll, DApplication, DButtonCheck } from "@wcardinal/wcardinal-ui";
16
+ import { loadAll, loadThemeWhiteEnUsAll, DApplication, DButtonCheck } from "@wcardinal/wcardinal-ui";
17
17
 
18
18
  // Loads all the optional modules and the white theme.
19
- // This is required for the tree shaking as explained later.
19
+ // This is required for the tree shaking.
20
20
  loadAll();
21
- loadThemeWhiteAll();
21
+ loadThemeWhiteEnUsAll();
22
22
 
23
23
  // Make a new application
24
24
  const application = new DApplication();
@@ -35,30 +35,30 @@ new DButtonCheck({
35
35
  #### CDN
36
36
 
37
37
  ```html
38
- <script src="https://cdn.jsdelivr.net/npm/pixi.js/dist/pixi.min.js"></script>
38
+ <script src="https://cdn.jsdelivr.net/npm/pixi.js@5.3.12/dist/pixi.min.js"></script>
39
39
  <script src="https://cdn.jsdelivr.net/npm/@wcardinal/wcardinal-ui/dist/wcardinal-ui.min.js"></script>
40
40
  <script src="https://cdn.jsdelivr.net/npm/@wcardinal/wcardinal-ui/dist/wcardinal-ui-theme-white.min.js"></script>
41
41
  <script>
42
- (function(){
43
- 'use strict';
42
+ (() => {
43
+ "use strict";
44
44
 
45
45
  // Make a new application
46
- var application = new wcardinal.ui.DApplication();
46
+ const application = new wcardinal.ui.DApplication();
47
47
 
48
48
  // Make a new check button
49
49
  new wcardinal.ui.DButtonCheck({
50
50
  parent: application.stage,
51
51
  text: {
52
- value: 'Check'
52
+ value: "Check"
53
53
  }
54
54
  });
55
- }());
55
+ })();
56
56
  </script>
57
57
  ```
58
58
 
59
59
  All the classes are in `wcardinal.ui`.
60
- Please note that `loadAll` and `loadThemeWhiteALl` is not required in this case.
61
- Prebuild files `wcardinal-ui.min.js` and `wcardinal-ui-theme-white.min.js` call `loadAll` and `loadThemeWhiteAll` for you.
60
+ Please note that `loadAll` and `loadThemeWhiteEnUsAll` is not required in this case.
61
+ Prebuild files `wcardinal-ui.min.js` and `wcardinal-ui-theme-white.min.js` call `loadAll` and `loadThemeWhiteEnUsAll` for you.
62
62
 
63
63
  See [sample/cdn](https://winter-cardinal.github.io/winter-cardinal-ui/sample/white/other/cdn.html) for a complete example.
64
64
 
@@ -69,15 +69,15 @@ because all the UI classes and their themes are included.
69
69
  This is why the tree shaking is important for this library.
70
70
 
71
71
  `loadAll` loads all the optional modules (e.g., `DMenuItemCheck`).
72
- And `loadThemeWhiteAll` loads the white theme (e.g., `DThemeWhite`).
72
+ And `loadThemeWhiteEnUsAll` loads the white theme (e.g., `DThemeWhite`).
73
73
  To remove unnecessary modules from your build, pick `load*` functions you need.
74
74
 
75
75
  ```javascript
76
- import { loadThemeWhiteAll } from '@wcardinal/wcardinal-ui';
76
+ import { loadThemeWhiteEnUsAll } from "@wcardinal/wcardinal-ui";
77
77
 
78
78
  // Loads the white theme only.
79
79
  // `DMenuItemCheck` will not be in your compiled package, for instance.
80
- loadThemeWhiteAll();
80
+ loadThemeWhiteEnUsAll();
81
81
  ```
82
82
 
83
83
  ### Documentation
@@ -86,6 +86,7 @@ loadThemeWhiteAll();
86
86
  * Samples
87
87
  * [White theme](https://winter-cardinal.github.io/winter-cardinal-ui/sample/white/)
88
88
  * [Dark theme](https://winter-cardinal.github.io/winter-cardinal-ui/sample/dark/)
89
+ * [Starter](https://github.com/winter-cardinal/winter-cardinal-starter)
89
90
 
90
91
  ### Requirements
91
92
 
@@ -96,17 +97,17 @@ loadThemeWhiteAll();
96
97
  * Not required if your theme doesn't use it
97
98
  * Stencil support
98
99
 
99
- ### How to build
100
+ ### How to Build
100
101
 
101
102
  The following commands are for building `@wcardinal/wcardinal-ui` itself.
102
103
 
103
- #### JS for release
104
+ #### JS for Release
104
105
 
105
106
  ```shell
106
107
  npm run build
107
108
  ```
108
109
 
109
- #### JS for development
110
+ #### JS for Development
110
111
 
111
112
  ```shell
112
113
  npm run watch:ts
@@ -118,13 +119,13 @@ and then in an another terminal
118
119
  npm run watch:rollup
119
120
  ```
120
121
 
121
- #### Development server
122
+ #### Development Server
122
123
 
123
124
  ```shell
124
125
  npm start
125
126
  ```
126
127
 
127
- #### API document
128
+ #### API Document
128
129
 
129
130
  Update `gitRevision` in `typedoc.json` and then do
130
131
 
@@ -132,7 +133,7 @@ Update `gitRevision` in `typedoc.json` and then do
132
133
  npm run build:api
133
134
  ```
134
135
 
135
- #### Sample index page
136
+ #### Sample Index Page
136
137
 
137
138
  ```shell
138
139
  npm run build:sample:index
@@ -145,7 +146,7 @@ npm run build:sample:index
145
146
  npm run build:sample:dark
146
147
  ```
147
148
 
148
- #### Samples for GitHub pages
149
+ #### Samples for GitHub Pages
149
150
 
150
151
  ```shell
151
152
  npm run build
@@ -165,11 +166,6 @@ To fix all the auto-fixable lint errors, do the following:
165
166
  npm run lint:fix
166
167
  ```
167
168
 
168
- ### TODO
169
-
170
- * DTable select / action arguments.
171
- * Provides DText text style accessors.
172
-
173
169
  ### License
174
170
 
175
171
  Apache License Version 2.0.
@@ -64,7 +64,9 @@ export declare class DBaseStateSetImpl implements DBaseStateSet {
64
64
  protected setAllString(addeds: string[], removeds: string[]): this;
65
65
  protected setAllObject(addeds: DBaseStateAndValue[], removeds: string[]): this;
66
66
  clear(): this;
67
- valueOf(state: string, def?: number | null): number | null | undefined;
67
+ valueOf(state: string): number | null | undefined;
68
+ valueOf(state: string, def: number): number;
69
+ valueOf(state: string, def: number | null): number | null;
68
70
  each(iteratee: (state: string, value: number | null) => void): this;
69
71
  size(): number;
70
72
  copy(other: DBaseStateSet): this;
@@ -162,7 +162,9 @@ export interface DBaseStateSet {
162
162
  setAll(addeds: DBaseStateAndValue[] | null, removeds: string[] | null): this;
163
163
  setAll(addeds: string[] | DBaseStateAndValue[] | null, removeds: string[] | null): this;
164
164
  clear(): this;
165
- valueOf(state: string, def?: number | null): number | null | undefined;
165
+ valueOf(state: string): number | null | undefined;
166
+ valueOf(state: string, def: number): number;
167
+ valueOf(state: string, def: number | null): number | null;
166
168
  each(iteratee: (state: string, value: number | null) => void): this;
167
169
  size(): number;
168
170
  copy(state: DBaseStateSet): this;
@@ -1,4 +1,4 @@
1
- import { Point, Rectangle } from "pixi.js";
1
+ import { DisplayObject, Point, Rectangle } from "pixi.js";
2
2
  import { DAnimation } from "./d-animation";
3
3
  import { DApplicationLayerLike } from "./d-application-layer-like";
4
4
  import { DBase, DBaseEvents, DBaseOptions, DThemeBase } from "./d-base";
@@ -44,6 +44,7 @@ export interface DDialogOptions<THEME extends DThemeDialog = DThemeDialog, EMITT
44
44
  * A dialog mode.
45
45
  */
46
46
  mode?: DDialogMode | keyof typeof DDialogMode;
47
+ alwaysOnTop?: boolean;
47
48
  sticky?: boolean;
48
49
  gesture?: boolean | DDialogGestureOptions;
49
50
  align?: DDialogAlign | null | keyof typeof DDialogAlign;
@@ -59,6 +60,7 @@ export interface DThemeDialog extends DThemeBase {
59
60
  getMode(): DDialogMode;
60
61
  closeOn(mode: DDialogMode): DDialogCloseOn;
61
62
  isSticky(mode: DDialogMode): boolean;
63
+ isAlwaysOnTop(): boolean;
62
64
  isGestureEnabled(mode: DDialogMode): boolean;
63
65
  getGestureMode(mode: DDialogMode): DDialogGestureMode;
64
66
  getOffsetX(mode: DDialogMode): number;
@@ -90,6 +92,8 @@ export declare class DDialog<VALUE = void, THEME extends DThemeDialog = DThemeDi
90
92
  protected _focused?: DFocusable | null;
91
93
  protected _overlay: UtilOverlay;
92
94
  protected _mode: DDialogMode;
95
+ protected _alwaysOnTop: boolean;
96
+ protected _onParentChildAddedBound?: () => void;
93
97
  protected _sticky: boolean;
94
98
  protected _onPrerenderBound: () => void;
95
99
  protected _align: DDialogAlign | null;
@@ -102,6 +106,8 @@ export declare class DDialog<VALUE = void, THEME extends DThemeDialog = DThemeDi
102
106
  get mode(): DDialogMode;
103
107
  get align(): DDialogAlign | null;
104
108
  set algin(align: DDialogAlign | null);
109
+ get alwaysOnTop(): boolean;
110
+ set alwaysOnTop(alwaysOnTop: boolean);
105
111
  get gesture(): DDialogGesture<this>;
106
112
  get layer(): DApplicationLayerLike | null;
107
113
  protected toGestureOptions(mode: DDialogMode, theme: THEME, options?: OPTIONS): DDialogGestureOptions;
@@ -119,6 +125,8 @@ export declare class DDialog<VALUE = void, THEME extends DThemeDialog = DThemeDi
119
125
  * @returns a value of this dialog
120
126
  */
121
127
  open(opener?: DDialogOpener): Promise<VALUE>;
128
+ protected onParentChildAdded(): void;
129
+ protected compareAlwaysOnTop(this: unknown, a: DisplayObject, b: DisplayObject): number;
122
130
  protected onPrerender(): void;
123
131
  protected onOpen(): void;
124
132
  isOpened(): boolean;
@@ -14,6 +14,7 @@ export declare class DThemeDarkDialog extends DThemeDarkBase implements DThemeDi
14
14
  getMode(): DDialogMode;
15
15
  closeOn(mode: DDialogMode): DDialogCloseOn;
16
16
  isSticky(mode: DDialogMode): boolean;
17
+ isAlwaysOnTop(): boolean;
17
18
  isGestureEnabled(mode: DDialogMode): boolean;
18
19
  getGestureMode(mode: DDialogMode): DDialogGestureMode;
19
20
  getOffsetX(mode: DDialogMode): number;
@@ -14,6 +14,7 @@ export declare class DThemeWhiteDialog extends DThemeWhiteBase implements DTheme
14
14
  getMode(): DDialogMode;
15
15
  closeOn(mode: DDialogMode): DDialogCloseOn;
16
16
  isSticky(mode: DDialogMode): boolean;
17
+ isAlwaysOnTop(): boolean;
17
18
  isGestureEnabled(mode: DDialogMode): boolean;
18
19
  getGestureMode(mode: DDialogMode): DDialogGestureMode;
19
20
  getOffsetX(mode: DDialogMode): number;
@@ -389,11 +389,19 @@ var DBaseStateSetImpl = /** @class */ (function () {
389
389
  DBaseStateSetImpl.prototype.valueOf = function (state, def) {
390
390
  var result = this._local.get(state);
391
391
  if (result !== undefined) {
392
+ if (result == null && def !== undefined) {
393
+ return def;
394
+ }
392
395
  return result;
393
396
  }
394
397
  var parent = this._parent;
395
398
  if (parent != null) {
396
- return parent.valueOf(state, def);
399
+ if (def !== undefined) {
400
+ return parent.valueOf(state, def);
401
+ }
402
+ else {
403
+ return parent.valueOf(state);
404
+ }
397
405
  }
398
406
  return def;
399
407
  };
@@ -1 +1 @@
1
- {"version":3,"file":"d-base-state-set-impl.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-base-state-set-impl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAK5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C;IAMC;QACC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,sBAAI,oCAAK;aAAT;YACC,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;;;OAAA;IAED,sBAAI,qCAAM;aAAV;YACC,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;aAED,UAAW,MAA4B;YACtC,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE;gBAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;gBACtB,IAAI,CAAC,GAAG,EAAE,CAAC;aACX;QACF,CAAC;;;OARA;IAUD,0CAAc,GAAd,UAAe,QAAuB,EAAE,QAAuB;QAC9D,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QACxB,IAAI,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC;IAED,sBAAI,sCAAO;aAAX;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC3B,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC3B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;aACvB;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,sCAAU,GAApB;QACC,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,sBAAI,qCAAM;aAAV;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YAC1B,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aACtB;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,qCAAS,GAAnB;QACC,OAAO,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,8BAAE,GAAF,UAAG,KAAa,EAAE,KAAqB;QACtC,IAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,8BAAE,GAAF,UAAG,KAAa,EAAE,KAAqB;QACtC,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,8BAAE,GAAF,UAAG,KAAa,EAAE,KAAqB;QACtC,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,OAAO,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,iCAAK,GAAL,UAAM,KAAa,EAAE,KAAqB;QACzC,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,OAAO,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,gCAAI,GAAJ,UAAK,YAAsB;QAC1B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,kCAAM,GAAN;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IAES,iCAAK,GAAf;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IAES,+BAAG,GAAb;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IAES,sCAAU,GAApB,UAAqB,KAAa,EAAE,KAAoB;QACvD,IAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,KAAK,CAAC;IACvC,CAAC;IAED,+BAAG,GAAH,UAAI,KAAa,EAAE,KAA2B;QAA3B,sBAAA,EAAA,YAA2B;QAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,6CAAiB,GAA3B,UAA4B,MAAgB;QAC3C,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YACpD,IAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,EAAE;gBAClC,OAAO,IAAI,CAAC;aACZ;SACD;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAES,6CAAiB,GAA3B,UAA4B,MAA4B;QACvD,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YACpD,IAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,IAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE;gBACzC,OAAO,IAAI,CAAC;aACZ;SACD;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IASD,kCAAM,GAAN,UAAO,KAAoE;QAC1E,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;YACpB,OAAO,IAAI,CAAC,YAAY,CAAC,SAA4B,CAAC,CAAC,CAAC,yCAAyC;SACjG;aAAM,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;YAC1B,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE;gBACrB,IAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;oBACtB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAiB,CAAC,CAAC;iBAC5C;qBAAM;oBACN,OAAO,IAAI,CAAC,YAAY,CAAC,KAA6B,CAAC,CAAC;iBACxD;aACD;YACD,OAAO,IAAI,CAAC;SACZ;aAAM;YACN,OAAO,IAAI,CAAC,YAAY,CAAC,SAAwC,CAAC,CAAC,CAAC,yCAAyC;SAC7G;IACF,CAAC;IAES,wCAAY,GAAtB,UAAuB,MAAgB;QACtC,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE;YACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;gBACpD,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;aAC3B;YACD,IAAI,CAAC,GAAG,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,wCAAY,GAAtB,UAAuB,MAA4B;QAClD,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE;YACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;gBACpD,IAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;aACpC;YACD,IAAI,CAAC,GAAG,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,wCAAY,GAAtB,UAAuB,OAAe;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,kCAAM,GAAN,UAAO,KAAa;QACnB,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;YAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,GAAG,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,+CAAmB,GAA7B,UAA8B,MAAgB;QAC7C,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YACpD,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;gBACzB,OAAO,IAAI,CAAC;aACZ;SACD;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAES,+CAAmB,GAA7B,UAA8B,MAA4B;QACzD,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YACpD,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;gBAC/B,OAAO,IAAI,CAAC;aACZ;SACD;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAWD,qCAAS,GAAT,UACC,KAAwF;QAExF,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;YACtB,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SACpC;aAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,SAA4B,CAAC,CAAC,CAAC,yCAAyC;SACpG;aAAM,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;YAC1B,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE;gBACrB,IAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;oBACtB,OAAO,IAAI,CAAC,eAAe,CAAC,KAAiB,CAAC,CAAC;iBAC/C;qBAAM;oBACN,OAAO,IAAI,CAAC,eAAe,CAAC,KAA6B,CAAC,CAAC;iBAC3D;aACD;YACD,OAAO,IAAI,CAAC;SACZ;aAAM;YACN,OAAO,IAAI,CAAC,eAAe,CAAC,SAAwC,CAAC,CAAC,CAAC,yCAAyC;SAChH;IACF,CAAC;IAES,4CAAgB,GAA1B,UAA2B,OAA0B;QAArD,iBAgBC;QAfA,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,KAAK,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,KAAK;YAC1B,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;gBACnB,IAAI,CAAC,OAAO,EAAE;oBACb,OAAO,GAAG,IAAI,CAAC;oBACf,KAAI,CAAC,KAAK,EAAE,CAAC;iBACb;gBACD,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACpB;QACF,CAAC,CAAC,CAAC;QACH,IAAI,OAAO,EAAE;YACZ,IAAI,CAAC,GAAG,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,2CAAe,GAAzB,UAA0B,MAAgB;QACzC,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;gBACpD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;aACxB;YACD,IAAI,CAAC,GAAG,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,2CAAe,GAAzB,UAA0B,MAA4B;QACrD,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;gBACpD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aAC9B;YACD,IAAI,CAAC,GAAG,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAQD,+BAAG,GAAH,UACC,KAAoB,EACpB,MAAwC,EACxC,KAA+B;QAE/B,IAAI,MAAM,KAAK,IAAI,EAAE;YACpB,IAAI,KAAK,IAAI,IAAI,EAAE;gBAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAChB;SACD;aAAM,IAAI,MAAM,KAAK,KAAK,EAAE;YAC5B,IAAI,KAAK,IAAI,IAAI,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACnB;SACD;aAAM,IAAI,MAAM,IAAI,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC9C,IAAI,KAAK,KAAK,IAAI,EAAE;gBACnB,IAAI,KAAK,IAAI,IAAI,EAAE;oBAClB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;iBACxB;aACD;iBAAM,IAAI,KAAK,KAAK,KAAK,EAAE;gBAC3B,IAAI,KAAK,IAAI,IAAI,EAAE;oBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnB;aACD;iBAAM;gBACN,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;aACxC;SACD;aAAM;YACN,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;SACvC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,iCAAK,GAAf,UAAgB,KAAoB,EAAE,KAAoB,EAAE,OAAuB;QAClF,IAAI,KAAK,IAAI,IAAI,EAAE;YAClB,IAAI,OAAO,IAAI,IAAI,EAAE;gBACpB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;oBAChE,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC9C,IAAI,CAAC,GAAG,EAAE,CAAC;iBACX;aACD;iBAAM;gBACN,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aACvB;SACD;aAAM,IAAI,OAAO,IAAI,IAAI,EAAE;YAC3B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SACrB;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAUD,kCAAM,GAAN,UAAO,KAA6C,EAAE,MAAiC;QACtF,IAAI,MAAM,KAAK,IAAI,EAAE;YACpB,IAAI,KAAK,IAAI,IAAI,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACnB;SACD;aAAM,IAAI,MAAM,KAAK,KAAK,EAAE;YAC5B,IAAI,KAAK,IAAI,IAAI,EAAE;gBAClB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aACtB;SACD;aAAM;YACN,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE;gBACtC,IAAI,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE;oBACxC,IAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;wBACpB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAiB,EAAE,MAAM,CAAC,CAAC;qBACpD;yBAAM;wBACN,OAAO,IAAI,CAAC,YAAY,CAAC,KAA6B,EAAE,MAAM,CAAC,CAAC;qBAChE;iBACD;qBAAM;oBACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnB;aACD;iBAAM,IAAI,MAAM,IAAI,IAAI,EAAE;gBAC1B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;aACvB;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,wCAAY,GAAtB,UAAuB,MAAgB,EAAE,QAAkB;QAC1D,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE;YACzE,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;gBACpD,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;aAC3B;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;gBACtD,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1B;YACD,IAAI,CAAC,GAAG,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,wCAAY,GAAtB,UAAuB,MAA4B,EAAE,QAAkB;QACtE,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE;YACzE,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;gBACpD,IAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;aACpC;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;gBACtD,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1B;YACD,IAAI,CAAC,GAAG,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,iCAAK,GAAL;QACC,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,IAAI,CAAC,GAAG,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,mCAAO,GAAP,UAAQ,KAAa,EAAE,GAAmB;QACzC,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,MAAM,KAAK,SAAS,EAAE;YACzB,OAAO,MAAM,CAAC;SACd;QACD,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SAClC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,gCAAI,GAAJ,UAAK,QAAuD;QAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAC,KAAoB,EAAE,KAAa;YACvD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACb,CAAC;IAED,gCAAI,GAAJ;QACC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,gCAAI,GAAJ,UAAK,KAAoB;QACxB,IAAI,KAAK,YAAY,iBAAiB,EAAE;YACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAM,OAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,OAAK,CAAC,KAAK,EAAE,CAAC;YACd,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,KAAoB,EAAE,KAAa;gBACvD,OAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,sBAAI,wCAAS;aAAb;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;aAED,UAAc,SAAkB;YAC/B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACzC,CAAC;;;OAJA;IAMD,sBAAI,wCAAS;aAAb;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;;;OAAA;IAED,sBAAI,wCAAS;aAAb;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;;;OAAA;IAED,sBAAI,2CAAY;aAAhB;YACC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;;;OAAA;IAED,sBAAI,uCAAQ;aAAZ;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;aAED,UAAa,QAAiB;YAC7B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvC,CAAC;;;OAJA;IAMD,sBAAI,uCAAQ;aAAZ;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;;;OAAA;IAED,sBAAI,uCAAQ;aAAZ;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;;;OAAA;IAED,sBAAI,0CAAW;aAAf;YACC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;;;OAAA;IAED,sBAAI,wCAAS;aAAb;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;aAED,UAAc,SAAkB;YAC/B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACzC,CAAC;;;OAJA;IAMD,sBAAI,wCAAS;aAAb;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;;;OAAA;IAED,sBAAI,wCAAS;aAAb;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;;;OAAA;IAED,sBAAI,2CAAY;aAAhB;YACC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;;;OAAA;IAED,sBAAI,yCAAU;aAAd;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;aAED,UAAe,UAAmB;YACjC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC5C,CAAC;;;OAJA;IAMD,sBAAI,yCAAU;aAAd;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;;;OAAA;IAED,sBAAI,yCAAU;aAAd;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;;;OAAA;IAED,sBAAI,4CAAa;aAAjB;YACC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;;;OAAA;IAED,sBAAI,wCAAS;aAAb;YACC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;aAED,UAAc,SAAkB;YAC/B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;;;OAJA;IAMD,sBAAI,wCAAS;aAAb;YACC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;;;OAAA;IAED,sBAAI,wCAAS;aAAb;YACC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;;;OAAA;IAED,sBAAI,2CAAY;aAAhB;YACC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;;;OAAA;IAED,sBAAI,yCAAU;aAAd;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;aAED,UAAe,UAAmB;YACjC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC3C,CAAC;;;OAJA;IAMD,sBAAI,yCAAU;aAAd;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;;;OAAA;IAED,sBAAI,yCAAU;aAAd;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;;;OAAA;IAED,sBAAI,4CAAa;aAAjB;YACC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;;;OAAA;IAED,sBAAI,2CAAY;aAAhB;YACC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACxE,CAAC;;;OAAA;IAED,sBAAI,0CAAW;aAAf;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;aAED,UAAgB,WAAoB;YACnC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC;;;OAJA;IAMD,sBAAI,0CAAW;aAAf;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;;;OAAA;IAED,sBAAI,0CAAW;aAAf;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;;;OAAA;IAED,sBAAI,6CAAc;aAAlB;YACC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;;;OAAA;IAED,sBAAI,wCAAS;aAAb;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;aAED,UAAc,SAAkB;YAC/B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACzC,CAAC;;;OAJA;IAMD,sBAAI,wCAAS;aAAb;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;;;OAAA;IAED,sBAAI,wCAAS;aAAb;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;;;OAAA;IAED,sBAAI,2CAAY;aAAhB;YACC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;;;OAAA;IAED,sBAAI,0CAAW;aAAf;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;aAED,UAAgB,WAAoB;YACnC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC9C,CAAC;;;OAJA;IAMD,sBAAI,0CAAW;aAAf;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;;;OAAA;IAED,sBAAI,0CAAW;aAAf;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;;;OAAA;IAED,sBAAI,6CAAc;aAAlB;YACC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;;;OAAA;IAED,sBAAI,6CAAc;aAAlB;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC1C,CAAC;aAED,UAAmB,cAAuB;YACzC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACpD,CAAC;;;OAJA;IAMD,sBAAI,6CAAc;aAAlB;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC1C,CAAC;;;OAAA;IAED,sBAAI,6CAAc;aAAlB;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC1C,CAAC;;;OAAA;IAED,sBAAI,gDAAiB;aAArB;YACC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC7C,CAAC;;;OAAA;IAED,sBAAI,0CAAW;aAAf;YACC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACzC,CAAC;aAED,UAAgB,WAAoB;YACnC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;;;OAJA;IAMD,sBAAI,0CAAW;aAAf;YACC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACzC,CAAC;;;OAAA;IAED,sBAAI,0CAAW;aAAf;YACC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACzC,CAAC;;;OAAA;IAED,sBAAI,6CAAc;aAAlB;YACC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC5C,CAAC;;;OAAA;IAED,sBAAI,4CAAa;aAAjB;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC;aAED,UAAkB,WAAoB;YACrC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC/C,CAAC;;;OAJA;IAMD,sBAAI,4CAAa;aAAjB;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC;;;OAAA;IAED,sBAAI,4CAAa;aAAjB;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC;;;OAAA;IAED,sBAAI,+CAAgB;aAApB;YACC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC;;;OAAA;IAED,sBAAI,wCAAS;aAAb;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;aAED,UAAc,OAAgB;YAC7B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;;;OAJA;IAMD,sBAAI,wCAAS;aAAb;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;;;OAAA;IAED,sBAAI,wCAAS;aAAb;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;;;OAAA;IAED,sBAAI,2CAAY;aAAhB;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;;;OAAA;IAED,sBAAI,2CAAY;aAAhB;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;aAED,UAAiB,UAAmB;YACnC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC7C,CAAC;;;OAJA;IAMD,sBAAI,2CAAY;aAAhB;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;;;OAAA;IAED,sBAAI,2CAAY;aAAhB;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;;;OAAA;IAED,sBAAI,8CAAe;aAAnB;YACC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;;;OAAA;IAED,sBAAI,0CAAW;aAAf;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;aAED,UAAgB,SAAkB;YACjC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3C,CAAC;;;OAJA;IAMD,sBAAI,0CAAW;aAAf;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;;;OAAA;IAED,sBAAI,0CAAW;aAAf;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;;;OAAA;IAED,sBAAI,6CAAc;aAAlB;YACC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;;;OAAA;IAED,sBAAI,uCAAQ;aAAZ;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;aAED,UAAa,MAAe;YAC3B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;;;OAJA;IAMD,sBAAI,uCAAQ;aAAZ;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;;;OAAA;IAED,sBAAI,uCAAQ;aAAZ;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;;;OAAA;IAED,sBAAI,0CAAW;aAAf;YACC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;;;OAAA;IAED,sBAAI,uCAAQ;aAAZ;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;aAED,UAAa,QAAiB;YAC7B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvC,CAAC;;;OAJA;IAMD,sBAAI,uCAAQ;aAAZ;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;;;OAAA;IAED,sBAAI,uCAAQ;aAAZ;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;;;OAAA;IAED,sBAAI,0CAAW;aAAf;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;;;OAAA;IAED,sBAAI,wCAAS;aAAb;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;aAED,UAAc,SAAkB;YAC/B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACzC,CAAC;;;OAJA;IAMD,sBAAI,wCAAS;aAAb;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;;;OAAA;IAED,sBAAI,wCAAS;aAAb;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;;;OAAA;IAED,sBAAI,2CAAY;aAAhB;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;;;OAAA;IAED,sBAAI,2CAAY;aAAhB;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;aAED,UAAiB,YAAqB;YACrC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAC/C,CAAC;;;OAJA;IAMD,sBAAI,2CAAY;aAAhB;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;;;OAAA;IAED,sBAAI,2CAAY;aAAhB;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;;;OAAA;IAED,sBAAI,8CAAe;aAAnB;YACC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;;;OAAA;IAED,oCAAQ,GAAR;QACC,IAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAC,KAAoB,EAAE,KAAa;YACvD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,OAAO;YACN,KAAK,EAAE,MAAM;SACb,CAAC;IACH,CAAC;IAED,oCAAQ,GAAR;QACC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxC,CAAC;IACF,wBAAC;AAAD,CAAC,AAr1BD,IAq1BC","sourcesContent":["/*\n * Copyright (C) 2020 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DBaseState } from \"./d-base-state\";\nimport { DBaseStateAndValue } from \"./d-base-state-and-value\";\nimport { DBaseStateMatcher } from \"./d-base-state-matcher\";\nimport { DBaseStateSet } from \"./d-base-state-set\";\nimport { DBaseStateSetBlinker } from \"./d-base-state-set-blinker\";\nimport { DBaseStateSetBlinkerImpl } from \"./d-base-state-set-blinker-impl\";\nimport { DBaseStateSetLike } from \"./d-base-state-set-like\";\nimport { DBaseStateSetTicker } from \"./d-base-state-set-ticker\";\nimport { DBaseStateSetTickerImpl } from \"./d-base-state-set-ticker-impl\";\nimport { isArray } from \"./util/is-array\";\nimport { isFunction } from \"./util/is-function\";\nimport { isNumber } from \"./util/is-number\";\nimport { isString } from \"./util/is-string\";\n\nexport class DBaseStateSetImpl implements DBaseStateSet {\n\tprotected _local: Map<string, number | null>;\n\tprotected _parent: DBaseStateSet | null;\n\tprotected _blinker?: DBaseStateSetBlinker;\n\tprotected _ticker?: DBaseStateSetTicker;\n\n\tconstructor() {\n\t\tthis._local = new Map<string, number | null>();\n\t\tthis._parent = null;\n\t}\n\n\tget local(): Map<string, number | null> {\n\t\treturn this._local;\n\t}\n\n\tget parent(): DBaseStateSet | null {\n\t\treturn this._parent;\n\t}\n\n\tset parent(parent: DBaseStateSet | null) {\n\t\tif (this._parent !== parent) {\n\t\t\tthis.begin();\n\t\t\tthis._parent = parent;\n\t\t\tthis.end();\n\t\t}\n\t}\n\n\tonParentChange(newState: DBaseStateSet, oldState: DBaseStateSet): void {\n\t\tthis._parent = oldState;\n\t\tthis.begin();\n\t\tthis._parent = newState;\n\t\tthis.end();\n\t}\n\n\tget blinker(): DBaseStateSetBlinker {\n\t\tlet result = this._blinker;\n\t\tif (result == null) {\n\t\t\tresult = this.newBlinker();\n\t\t\tthis._blinker = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newBlinker(): DBaseStateSetBlinker {\n\t\treturn new DBaseStateSetBlinkerImpl(this);\n\t}\n\n\tget ticker(): DBaseStateSetTicker {\n\t\tlet result = this._ticker;\n\t\tif (result == null) {\n\t\t\tresult = this.newTicker();\n\t\t\tthis._ticker = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newTicker(): DBaseStateSetTicker {\n\t\treturn new DBaseStateSetTickerImpl(this);\n\t}\n\n\tis(state: string, value?: number | null): boolean {\n\t\tconst v = this._local.get(state);\n\t\treturn v !== undefined && (value === undefined || value === v);\n\t}\n\n\tin(state: string, value?: number | null): boolean {\n\t\treturn this.is(state, value) || this.under(state, value);\n\t}\n\n\ton(state: string, value?: number | null): boolean {\n\t\tconst parent = this._parent;\n\t\treturn parent != null && parent.is(state, value);\n\t}\n\n\tunder(state: string, value?: number | null): boolean {\n\t\tconst parent = this._parent;\n\t\treturn parent != null && parent.in(state, value);\n\t}\n\n\tlock(callOnChange?: boolean): this {\n\t\treturn this;\n\t}\n\n\tunlock(): this {\n\t\treturn this;\n\t}\n\n\tprotected begin(): this {\n\t\treturn this;\n\t}\n\n\tprotected end(): this {\n\t\treturn this;\n\t}\n\n\tprotected checkAdded(added: string, value: number | null): boolean {\n\t\tconst v = this._local.get(added);\n\t\treturn v === undefined || v !== value;\n\t}\n\n\tadd(state: string, value: number | null = null): this {\n\t\tif (this.checkAdded(state, value)) {\n\t\t\tthis.begin();\n\t\t\tthis._local.set(state, value);\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected checkAddedsString(states: string[]): boolean {\n\t\tconst local = this._local;\n\t\tfor (let i = 0, imax = states.length; i < imax; ++i) {\n\t\t\tconst v = local.get(states[i]);\n\t\t\tif (v === undefined || v !== null) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected checkAddedsObject(states: DBaseStateAndValue[]): boolean {\n\t\tconst local = this._local;\n\t\tfor (let i = 0, imax = states.length; i < imax; ++i) {\n\t\t\tconst state = states[i];\n\t\t\tconst v = local.get(state.state);\n\t\t\tif (v === undefined || v !== state.value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\taddAll(states: string[]): this;\n\taddAll(states: DBaseStateAndValue[]): this;\n\taddAll(states: string[] | DBaseStateAndValue[]): this;\n\n\taddAll(...states: string[]): this;\n\taddAll(...states: DBaseStateAndValue[]): this;\n\n\taddAll(first: string | string[] | DBaseStateAndValue | DBaseStateAndValue[]): this {\n\t\tif (isString(first)) {\n\t\t\treturn this.addAllString(arguments as any as string[]); // eslint-disable-line prefer-rest-params\n\t\t} else if (isArray(first)) {\n\t\t\tif (0 < first.length) {\n\t\t\t\tconst element = first[0];\n\t\t\t\tif (isString(element)) {\n\t\t\t\t\treturn this.addAllString(first as string[]);\n\t\t\t\t} else {\n\t\t\t\t\treturn this.addAllObject(first as DBaseStateAndValue[]);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this;\n\t\t} else {\n\t\t\treturn this.addAllObject(arguments as any as DBaseStateAndValue[]); // eslint-disable-line prefer-rest-params\n\t\t}\n\t}\n\n\tprotected addAllString(states: string[]): this {\n\t\tif (this.checkAddedsString(states)) {\n\t\t\tthis.begin();\n\t\t\tconst local = this._local;\n\t\t\tfor (let i = 0, imax = states.length; i < imax; ++i) {\n\t\t\t\tlocal.set(states[i], null);\n\t\t\t}\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected addAllObject(states: DBaseStateAndValue[]): this {\n\t\tif (this.checkAddedsObject(states)) {\n\t\t\tthis.begin();\n\t\t\tconst local = this._local;\n\t\t\tfor (let i = 0, imax = states.length; i < imax; ++i) {\n\t\t\t\tconst state = states[i];\n\t\t\t\tlocal.set(state.state, state.value);\n\t\t\t}\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected checkRemoved(removed: string): boolean {\n\t\treturn this._local.has(removed);\n\t}\n\n\tremove(state: string): this {\n\t\tif (this.checkRemoved(state)) {\n\t\t\tthis.begin();\n\t\t\tthis._local.delete(state);\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected checkRemovedsString(states: string[]): boolean {\n\t\tconst local = this._local;\n\t\tfor (let i = 0, imax = states.length; i < imax; ++i) {\n\t\t\tif (local.has(states[i])) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected checkRemovedsObject(states: DBaseStateAndValue[]): boolean {\n\t\tconst local = this._local;\n\t\tfor (let i = 0, imax = states.length; i < imax; ++i) {\n\t\t\tif (local.has(states[i].state)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tremoveAll(states: string[]): this;\n\tremoveAll(states: DBaseStateAndValue[]): this;\n\tremoveAll(states: string[] | DBaseStateAndValue[]): this;\n\n\tremoveAll(...states: string[]): this;\n\tremoveAll(...states: DBaseStateAndValue[]): this;\n\n\tremoveAll(matcher: DBaseStateMatcher): this;\n\n\tremoveAll(\n\t\tfirst: string | string[] | DBaseStateAndValue | DBaseStateAndValue[] | DBaseStateMatcher\n\t): this {\n\t\tif (isFunction(first)) {\n\t\t\treturn this.removeAllMatcher(first);\n\t\t} else if (isString(first)) {\n\t\t\treturn this.removeAllString(arguments as any as string[]); // eslint-disable-line prefer-rest-params\n\t\t} else if (isArray(first)) {\n\t\t\tif (0 < first.length) {\n\t\t\t\tconst element = first[0];\n\t\t\t\tif (isString(element)) {\n\t\t\t\t\treturn this.removeAllString(first as string[]);\n\t\t\t\t} else {\n\t\t\t\t\treturn this.removeAllObject(first as DBaseStateAndValue[]);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this;\n\t\t} else {\n\t\t\treturn this.removeAllObject(arguments as any as DBaseStateAndValue[]); // eslint-disable-line prefer-rest-params\n\t\t}\n\t}\n\n\tprotected removeAllMatcher(matcher: DBaseStateMatcher): this {\n\t\tlet isDirty = false;\n\t\tconst local = this._local;\n\t\tlocal.forEach((value, state): void => {\n\t\t\tif (matcher(state)) {\n\t\t\t\tif (!isDirty) {\n\t\t\t\t\tisDirty = true;\n\t\t\t\t\tthis.begin();\n\t\t\t\t}\n\t\t\t\tlocal.delete(state);\n\t\t\t}\n\t\t});\n\t\tif (isDirty) {\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected removeAllString(states: string[]): this {\n\t\tif (this.checkRemovedsString(states)) {\n\t\t\tthis.begin();\n\t\t\tconst local = this._local;\n\t\t\tfor (let i = 0, imax = states.length; i < imax; ++i) {\n\t\t\t\tlocal.delete(states[i]);\n\t\t\t}\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected removeAllObject(states: DBaseStateAndValue[]): this {\n\t\tif (this.checkRemovedsObject(states)) {\n\t\t\tthis.begin();\n\t\t\tconst local = this._local;\n\t\t\tfor (let i = 0, imax = states.length; i < imax; ++i) {\n\t\t\t\tlocal.delete(states[i].state);\n\t\t\t}\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tset(state: string, on: boolean): this;\n\tset(state: string, value: number | null, on: boolean): this;\n\n\tset(added: string | null, removed: string | null): this;\n\tset(added: string | null, value: number | null, removed: string | null): this;\n\n\tset(\n\t\tfirst: string | null,\n\t\tsecond: string | number | boolean | null,\n\t\tthird?: string | boolean | null\n\t): this {\n\t\tif (second === true) {\n\t\t\tif (first != null) {\n\t\t\t\tthis.add(first);\n\t\t\t}\n\t\t} else if (second === false) {\n\t\t\tif (first != null) {\n\t\t\t\tthis.remove(first);\n\t\t\t}\n\t\t} else if (second == null || isNumber(second)) {\n\t\t\tif (third === true) {\n\t\t\t\tif (first != null) {\n\t\t\t\t\tthis.add(first, second);\n\t\t\t\t}\n\t\t\t} else if (third === false) {\n\t\t\t\tif (first != null) {\n\t\t\t\t\tthis.remove(first);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn this.doSet(first, second, third);\n\t\t\t}\n\t\t} else {\n\t\t\treturn this.doSet(first, null, second);\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected doSet(added: string | null, value: number | null, removed?: string | null): this {\n\t\tif (added != null) {\n\t\t\tif (removed != null) {\n\t\t\t\tif (this.checkAdded(added, value) || this.checkRemoved(removed)) {\n\t\t\t\t\tthis.begin();\n\t\t\t\t\tthis._local.set(added, value).delete(removed);\n\t\t\t\t\tthis.end();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.add(added, value);\n\t\t\t}\n\t\t} else if (removed != null) {\n\t\t\tthis.remove(removed);\n\t\t}\n\t\treturn this;\n\t}\n\n\tsetAll(states: string[], on: boolean): this;\n\tsetAll(states: DBaseStateAndValue[], on: boolean): this;\n\tsetAll(states: string[] | DBaseStateAndValue[], on: boolean): this;\n\n\tsetAll(addeds: string[] | null, removeds: string[] | null): this;\n\tsetAll(addeds: DBaseStateAndValue[] | null, removeds: string[] | null): this;\n\tsetAll(addeds: string[] | DBaseStateAndValue[] | null, removeds: string[] | null): this;\n\n\tsetAll(first: string[] | DBaseStateAndValue[] | null, second: string[] | null | boolean): this {\n\t\tif (second === true) {\n\t\t\tif (first != null) {\n\t\t\t\tthis.addAll(first);\n\t\t\t}\n\t\t} else if (second === false) {\n\t\t\tif (first != null) {\n\t\t\t\tthis.removeAll(first);\n\t\t\t}\n\t\t} else {\n\t\t\tif (first != null && 0 < first.length) {\n\t\t\t\tif (second != null && 0 < second.length) {\n\t\t\t\t\tconst added = first[0];\n\t\t\t\t\tif (isString(added)) {\n\t\t\t\t\t\treturn this.setAllString(first as string[], second);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn this.setAllObject(first as DBaseStateAndValue[], second);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.addAll(first);\n\t\t\t\t}\n\t\t\t} else if (second != null) {\n\t\t\t\tthis.removeAll(second);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected setAllString(addeds: string[], removeds: string[]): this {\n\t\tif (this.checkAddedsString(addeds) || this.checkRemovedsString(removeds)) {\n\t\t\tthis.begin();\n\t\t\tconst local = this._local;\n\t\t\tfor (let i = 0, imax = addeds.length; i < imax; ++i) {\n\t\t\t\tlocal.set(addeds[i], null);\n\t\t\t}\n\t\t\tfor (let i = 0, imax = removeds.length; i < imax; ++i) {\n\t\t\t\tlocal.delete(removeds[i]);\n\t\t\t}\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected setAllObject(addeds: DBaseStateAndValue[], removeds: string[]): this {\n\t\tif (this.checkAddedsObject(addeds) || this.checkRemovedsString(removeds)) {\n\t\t\tthis.begin();\n\t\t\tconst local = this._local;\n\t\t\tfor (let i = 0, imax = addeds.length; i < imax; ++i) {\n\t\t\t\tconst added = addeds[i];\n\t\t\t\tlocal.set(added.state, added.value);\n\t\t\t}\n\t\t\tfor (let i = 0, imax = removeds.length; i < imax; ++i) {\n\t\t\t\tlocal.delete(removeds[i]);\n\t\t\t}\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tclear(): this {\n\t\tconst local = this._local;\n\t\tif (0 < local.size) {\n\t\t\tthis.begin();\n\t\t\tlocal.clear();\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tvalueOf(state: string, def?: number | null): number | null | undefined {\n\t\tconst result = this._local.get(state);\n\t\tif (result !== undefined) {\n\t\t\treturn result;\n\t\t}\n\t\tconst parent = this._parent;\n\t\tif (parent != null) {\n\t\t\treturn parent.valueOf(state, def);\n\t\t}\n\t\treturn def;\n\t}\n\n\teach(iteratee: (state: string, value: number | null) => void): this {\n\t\tthis._local.forEach((value: number | null, state: string): void => {\n\t\t\titeratee(state, value);\n\t\t});\n\t\treturn this;\n\t}\n\n\tsize(): number {\n\t\treturn this._local.size;\n\t}\n\n\tcopy(other: DBaseStateSet): this {\n\t\tif (other instanceof DBaseStateSetImpl) {\n\t\t\tthis.begin();\n\t\t\tconst local = this._local;\n\t\t\tlocal.clear();\n\t\t\tother.local.forEach((value: number | null, state: string): void => {\n\t\t\t\tlocal.set(state, value);\n\t\t\t});\n\t\t\tthis._parent = other.parent;\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tget isHovered(): boolean {\n\t\treturn this.is(DBaseState.HOVERED);\n\t}\n\n\tset isHovered(isHovered: boolean) {\n\t\tthis.set(DBaseState.HOVERED, isHovered);\n\t}\n\n\tget inHovered(): boolean {\n\t\treturn this.in(DBaseState.HOVERED);\n\t}\n\n\tget onHovered(): boolean {\n\t\treturn this.on(DBaseState.HOVERED);\n\t}\n\n\tget underHovered(): boolean {\n\t\treturn this.under(DBaseState.HOVERED);\n\t}\n\n\tget isActive(): boolean {\n\t\treturn this.is(DBaseState.ACTIVE);\n\t}\n\n\tset isActive(isActive: boolean) {\n\t\tthis.set(DBaseState.ACTIVE, isActive);\n\t}\n\n\tget inActive(): boolean {\n\t\treturn this.in(DBaseState.ACTIVE);\n\t}\n\n\tget onActive(): boolean {\n\t\treturn this.on(DBaseState.ACTIVE);\n\t}\n\n\tget underActive(): boolean {\n\t\treturn this.under(DBaseState.ACTIVE);\n\t}\n\n\tget isPressed(): boolean {\n\t\treturn this.is(DBaseState.PRESSED);\n\t}\n\n\tset isPressed(isPressed: boolean) {\n\t\tthis.set(DBaseState.PRESSED, isPressed);\n\t}\n\n\tget inPressed(): boolean {\n\t\treturn this.in(DBaseState.PRESSED);\n\t}\n\n\tget onPressed(): boolean {\n\t\treturn this.on(DBaseState.PRESSED);\n\t}\n\n\tget underPressed(): boolean {\n\t\treturn this.under(DBaseState.PRESSED);\n\t}\n\n\tget isReadOnly(): boolean {\n\t\treturn this.is(DBaseState.READ_ONLY);\n\t}\n\n\tset isReadOnly(isReadOnly: boolean) {\n\t\tthis.set(DBaseState.READ_ONLY, isReadOnly);\n\t}\n\n\tget inReadOnly(): boolean {\n\t\treturn this.in(DBaseState.READ_ONLY);\n\t}\n\n\tget onReadOnly(): boolean {\n\t\treturn this.on(DBaseState.READ_ONLY);\n\t}\n\n\tget underReadOnly(): boolean {\n\t\treturn this.under(DBaseState.READ_ONLY);\n\t}\n\n\tget isEnabled(): boolean {\n\t\treturn !this.is(DBaseState.DISABLED);\n\t}\n\n\tset isEnabled(isEnabled: boolean) {\n\t\tthis.set(DBaseState.DISABLED, !isEnabled);\n\t}\n\n\tget inEnabled(): boolean {\n\t\treturn !this.in(DBaseState.DISABLED);\n\t}\n\n\tget onEnabled(): boolean {\n\t\treturn !this.on(DBaseState.DISABLED);\n\t}\n\n\tget underEnabled(): boolean {\n\t\treturn !this.under(DBaseState.DISABLED);\n\t}\n\n\tget isDisabled(): boolean {\n\t\treturn this.is(DBaseState.DISABLED);\n\t}\n\n\tset isDisabled(isDisabled: boolean) {\n\t\tthis.set(DBaseState.DISABLED, isDisabled);\n\t}\n\n\tget inDisabled(): boolean {\n\t\treturn this.in(DBaseState.DISABLED);\n\t}\n\n\tget onDisabled(): boolean {\n\t\treturn this.on(DBaseState.DISABLED);\n\t}\n\n\tget underDisabled(): boolean {\n\t\treturn this.under(DBaseState.DISABLED);\n\t}\n\n\tget isActionable(): boolean {\n\t\treturn !this.in(DBaseState.DISABLED) && !this.in(DBaseState.READ_ONLY);\n\t}\n\n\tget isGesturing(): boolean {\n\t\treturn this.is(DBaseState.GESTURING);\n\t}\n\n\tset isGesturing(isGesturing: boolean) {\n\t\tthis.set(DBaseState.GESTURING, isGesturing);\n\t}\n\n\tget inGesturing(): boolean {\n\t\treturn this.in(DBaseState.GESTURING);\n\t}\n\n\tget onGesturing(): boolean {\n\t\treturn this.on(DBaseState.GESTURING);\n\t}\n\n\tget underGesturing(): boolean {\n\t\treturn this.under(DBaseState.GESTURING);\n\t}\n\n\tget isFocused(): boolean {\n\t\treturn this.is(DBaseState.FOCUSED);\n\t}\n\n\tset isFocused(isFocused: boolean) {\n\t\tthis.set(DBaseState.FOCUSED, isFocused);\n\t}\n\n\tget inFocused(): boolean {\n\t\treturn this.in(DBaseState.FOCUSED);\n\t}\n\n\tget onFocused(): boolean {\n\t\treturn this.on(DBaseState.FOCUSED);\n\t}\n\n\tget underFocused(): boolean {\n\t\treturn this.under(DBaseState.FOCUSED);\n\t}\n\n\tget isFocusRoot(): boolean {\n\t\treturn this.is(DBaseState.FOCUS_ROOT);\n\t}\n\n\tset isFocusRoot(isFocusRoot: boolean) {\n\t\tthis.set(DBaseState.FOCUS_ROOT, isFocusRoot);\n\t}\n\n\tget inFocusRoot(): boolean {\n\t\treturn this.in(DBaseState.FOCUS_ROOT);\n\t}\n\n\tget onFocusRoot(): boolean {\n\t\treturn this.on(DBaseState.FOCUS_ROOT);\n\t}\n\n\tget underFocusRoot(): boolean {\n\t\treturn this.under(DBaseState.FOCUS_ROOT);\n\t}\n\n\tget isFocusReverse(): boolean {\n\t\treturn this.is(DBaseState.FOCUS_REVERSE);\n\t}\n\n\tset isFocusReverse(isFocusReverse: boolean) {\n\t\tthis.set(DBaseState.FOCUS_REVERSE, isFocusReverse);\n\t}\n\n\tget inFocusReverse(): boolean {\n\t\treturn this.in(DBaseState.FOCUS_REVERSE);\n\t}\n\n\tget onFocusReverse(): boolean {\n\t\treturn this.on(DBaseState.FOCUS_REVERSE);\n\t}\n\n\tget underFocusReverse(): boolean {\n\t\treturn this.under(DBaseState.FOCUS_REVERSE);\n\t}\n\n\tget isFocusable(): boolean {\n\t\treturn !this.is(DBaseState.UNFOCUSABLE);\n\t}\n\n\tset isFocusable(isFocusable: boolean) {\n\t\tthis.set(DBaseState.UNFOCUSABLE, !isFocusable);\n\t}\n\n\tget inFocusable(): boolean {\n\t\treturn !this.in(DBaseState.UNFOCUSABLE);\n\t}\n\n\tget onFocusable(): boolean {\n\t\treturn !this.on(DBaseState.UNFOCUSABLE);\n\t}\n\n\tget underFocusable(): boolean {\n\t\treturn !this.under(DBaseState.UNFOCUSABLE);\n\t}\n\n\tget isUnfocusable(): boolean {\n\t\treturn this.is(DBaseState.UNFOCUSABLE);\n\t}\n\n\tset isUnfocusable(unfocusable: boolean) {\n\t\tthis.set(DBaseState.UNFOCUSABLE, unfocusable);\n\t}\n\n\tget inUnfocusable(): boolean {\n\t\treturn this.in(DBaseState.UNFOCUSABLE);\n\t}\n\n\tget onUnfocusable(): boolean {\n\t\treturn this.on(DBaseState.UNFOCUSABLE);\n\t}\n\n\tget underUnfocusable(): boolean {\n\t\treturn this.under(DBaseState.UNFOCUSABLE);\n\t}\n\n\tget isInvalid(): boolean {\n\t\treturn this.is(DBaseState.INVALID);\n\t}\n\n\tset isInvalid(invalid: boolean) {\n\t\tthis.set(DBaseState.INVALID, invalid);\n\t}\n\n\tget inInvalid(): boolean {\n\t\treturn this.in(DBaseState.INVALID);\n\t}\n\n\tget onInvalid(): boolean {\n\t\treturn this.on(DBaseState.INVALID);\n\t}\n\n\tget underInvalid(): boolean {\n\t\treturn this.on(DBaseState.INVALID);\n\t}\n\n\tget isProcessing(): boolean {\n\t\treturn this.is(DBaseState.PROCESSING);\n\t}\n\n\tset isProcessing(processing: boolean) {\n\t\tthis.set(DBaseState.PROCESSING, processing);\n\t}\n\n\tget inProcessing(): boolean {\n\t\treturn this.in(DBaseState.PROCESSING);\n\t}\n\n\tget onProcessing(): boolean {\n\t\treturn this.on(DBaseState.PROCESSING);\n\t}\n\n\tget underProcessing(): boolean {\n\t\treturn this.under(DBaseState.PROCESSING);\n\t}\n\n\tget isSucceeded(): boolean {\n\t\treturn this.is(DBaseState.SUCCEEDED);\n\t}\n\n\tset isSucceeded(succeeded: boolean) {\n\t\tthis.set(DBaseState.SUCCEEDED, succeeded);\n\t}\n\n\tget inSucceeded(): boolean {\n\t\treturn this.in(DBaseState.SUCCEEDED);\n\t}\n\n\tget onSucceeded(): boolean {\n\t\treturn this.on(DBaseState.SUCCEEDED);\n\t}\n\n\tget underSucceeded(): boolean {\n\t\treturn this.under(DBaseState.SUCCEEDED);\n\t}\n\n\tget isFailed(): boolean {\n\t\treturn this.is(DBaseState.FAILED);\n\t}\n\n\tset isFailed(failed: boolean) {\n\t\tthis.set(DBaseState.FAILED, failed);\n\t}\n\n\tget inFailed(): boolean {\n\t\treturn this.in(DBaseState.FAILED);\n\t}\n\n\tget onFailed(): boolean {\n\t\treturn this.on(DBaseState.FAILED);\n\t}\n\n\tget underFailed(): boolean {\n\t\treturn this.under(DBaseState.FAILED);\n\t}\n\n\tget isWarned(): boolean {\n\t\treturn this.is(DBaseState.WARNED);\n\t}\n\n\tset isWarned(isWarned: boolean) {\n\t\tthis.set(DBaseState.WARNED, isWarned);\n\t}\n\n\tget inWarned(): boolean {\n\t\treturn this.in(DBaseState.WARNED);\n\t}\n\n\tget onWarned(): boolean {\n\t\treturn this.on(DBaseState.WARNED);\n\t}\n\n\tget underWarned(): boolean {\n\t\treturn this.on(DBaseState.WARNED);\n\t}\n\n\tget isChanged(): boolean {\n\t\treturn this.is(DBaseState.CHANGED);\n\t}\n\n\tset isChanged(isChanged: boolean) {\n\t\tthis.set(DBaseState.CHANGED, isChanged);\n\t}\n\n\tget inChanged(): boolean {\n\t\treturn this.in(DBaseState.CHANGED);\n\t}\n\n\tget onChanged(): boolean {\n\t\treturn this.on(DBaseState.CHANGED);\n\t}\n\n\tget underChanged(): boolean {\n\t\treturn this.on(DBaseState.CHANGED);\n\t}\n\n\tget isAlternated(): boolean {\n\t\treturn this.is(DBaseState.ALTERNATED);\n\t}\n\n\tset isAlternated(isAlternated: boolean) {\n\t\tthis.set(DBaseState.ALTERNATED, isAlternated);\n\t}\n\n\tget inAlternated(): boolean {\n\t\treturn this.in(DBaseState.ALTERNATED);\n\t}\n\n\tget onAlternated(): boolean {\n\t\treturn this.on(DBaseState.ALTERNATED);\n\t}\n\n\tget underAlternated(): boolean {\n\t\treturn this.on(DBaseState.ALTERNATED);\n\t}\n\n\ttoObject(): DBaseStateSetLike {\n\t\tconst states: string[] = [];\n\t\tthis._local.forEach((value: number | null, state: string): void => {\n\t\t\tstates.push(state);\n\t\t});\n\t\treturn {\n\t\t\tlocal: states\n\t\t};\n\t}\n\n\ttoString(): string {\n\t\treturn JSON.stringify(this.toObject());\n\t}\n}\n"]}
1
+ {"version":3,"file":"d-base-state-set-impl.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-base-state-set-impl.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2020 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DBaseState } from \"./d-base-state\";\nimport { DBaseStateAndValue } from \"./d-base-state-and-value\";\nimport { DBaseStateMatcher } from \"./d-base-state-matcher\";\nimport { DBaseStateSet } from \"./d-base-state-set\";\nimport { DBaseStateSetBlinker } from \"./d-base-state-set-blinker\";\nimport { DBaseStateSetBlinkerImpl } from \"./d-base-state-set-blinker-impl\";\nimport { DBaseStateSetLike } from \"./d-base-state-set-like\";\nimport { DBaseStateSetTicker } from \"./d-base-state-set-ticker\";\nimport { DBaseStateSetTickerImpl } from \"./d-base-state-set-ticker-impl\";\nimport { isArray } from \"./util/is-array\";\nimport { isFunction } from \"./util/is-function\";\nimport { isNumber } from \"./util/is-number\";\nimport { isString } from \"./util/is-string\";\n\nexport class DBaseStateSetImpl implements DBaseStateSet {\n\tprotected _local: Map<string, number | null>;\n\tprotected _parent: DBaseStateSet | null;\n\tprotected _blinker?: DBaseStateSetBlinker;\n\tprotected _ticker?: DBaseStateSetTicker;\n\n\tconstructor() {\n\t\tthis._local = new Map<string, number | null>();\n\t\tthis._parent = null;\n\t}\n\n\tget local(): Map<string, number | null> {\n\t\treturn this._local;\n\t}\n\n\tget parent(): DBaseStateSet | null {\n\t\treturn this._parent;\n\t}\n\n\tset parent(parent: DBaseStateSet | null) {\n\t\tif (this._parent !== parent) {\n\t\t\tthis.begin();\n\t\t\tthis._parent = parent;\n\t\t\tthis.end();\n\t\t}\n\t}\n\n\tonParentChange(newState: DBaseStateSet, oldState: DBaseStateSet): void {\n\t\tthis._parent = oldState;\n\t\tthis.begin();\n\t\tthis._parent = newState;\n\t\tthis.end();\n\t}\n\n\tget blinker(): DBaseStateSetBlinker {\n\t\tlet result = this._blinker;\n\t\tif (result == null) {\n\t\t\tresult = this.newBlinker();\n\t\t\tthis._blinker = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newBlinker(): DBaseStateSetBlinker {\n\t\treturn new DBaseStateSetBlinkerImpl(this);\n\t}\n\n\tget ticker(): DBaseStateSetTicker {\n\t\tlet result = this._ticker;\n\t\tif (result == null) {\n\t\t\tresult = this.newTicker();\n\t\t\tthis._ticker = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newTicker(): DBaseStateSetTicker {\n\t\treturn new DBaseStateSetTickerImpl(this);\n\t}\n\n\tis(state: string, value?: number | null): boolean {\n\t\tconst v = this._local.get(state);\n\t\treturn v !== undefined && (value === undefined || value === v);\n\t}\n\n\tin(state: string, value?: number | null): boolean {\n\t\treturn this.is(state, value) || this.under(state, value);\n\t}\n\n\ton(state: string, value?: number | null): boolean {\n\t\tconst parent = this._parent;\n\t\treturn parent != null && parent.is(state, value);\n\t}\n\n\tunder(state: string, value?: number | null): boolean {\n\t\tconst parent = this._parent;\n\t\treturn parent != null && parent.in(state, value);\n\t}\n\n\tlock(callOnChange?: boolean): this {\n\t\treturn this;\n\t}\n\n\tunlock(): this {\n\t\treturn this;\n\t}\n\n\tprotected begin(): this {\n\t\treturn this;\n\t}\n\n\tprotected end(): this {\n\t\treturn this;\n\t}\n\n\tprotected checkAdded(added: string, value: number | null): boolean {\n\t\tconst v = this._local.get(added);\n\t\treturn v === undefined || v !== value;\n\t}\n\n\tadd(state: string, value: number | null = null): this {\n\t\tif (this.checkAdded(state, value)) {\n\t\t\tthis.begin();\n\t\t\tthis._local.set(state, value);\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected checkAddedsString(states: string[]): boolean {\n\t\tconst local = this._local;\n\t\tfor (let i = 0, imax = states.length; i < imax; ++i) {\n\t\t\tconst v = local.get(states[i]);\n\t\t\tif (v === undefined || v !== null) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected checkAddedsObject(states: DBaseStateAndValue[]): boolean {\n\t\tconst local = this._local;\n\t\tfor (let i = 0, imax = states.length; i < imax; ++i) {\n\t\t\tconst state = states[i];\n\t\t\tconst v = local.get(state.state);\n\t\t\tif (v === undefined || v !== state.value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\taddAll(states: string[]): this;\n\taddAll(states: DBaseStateAndValue[]): this;\n\taddAll(states: string[] | DBaseStateAndValue[]): this;\n\n\taddAll(...states: string[]): this;\n\taddAll(...states: DBaseStateAndValue[]): this;\n\n\taddAll(first: string | string[] | DBaseStateAndValue | DBaseStateAndValue[]): this {\n\t\tif (isString(first)) {\n\t\t\treturn this.addAllString(arguments as any as string[]); // eslint-disable-line prefer-rest-params\n\t\t} else if (isArray(first)) {\n\t\t\tif (0 < first.length) {\n\t\t\t\tconst element = first[0];\n\t\t\t\tif (isString(element)) {\n\t\t\t\t\treturn this.addAllString(first as string[]);\n\t\t\t\t} else {\n\t\t\t\t\treturn this.addAllObject(first as DBaseStateAndValue[]);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this;\n\t\t} else {\n\t\t\treturn this.addAllObject(arguments as any as DBaseStateAndValue[]); // eslint-disable-line prefer-rest-params\n\t\t}\n\t}\n\n\tprotected addAllString(states: string[]): this {\n\t\tif (this.checkAddedsString(states)) {\n\t\t\tthis.begin();\n\t\t\tconst local = this._local;\n\t\t\tfor (let i = 0, imax = states.length; i < imax; ++i) {\n\t\t\t\tlocal.set(states[i], null);\n\t\t\t}\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected addAllObject(states: DBaseStateAndValue[]): this {\n\t\tif (this.checkAddedsObject(states)) {\n\t\t\tthis.begin();\n\t\t\tconst local = this._local;\n\t\t\tfor (let i = 0, imax = states.length; i < imax; ++i) {\n\t\t\t\tconst state = states[i];\n\t\t\t\tlocal.set(state.state, state.value);\n\t\t\t}\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected checkRemoved(removed: string): boolean {\n\t\treturn this._local.has(removed);\n\t}\n\n\tremove(state: string): this {\n\t\tif (this.checkRemoved(state)) {\n\t\t\tthis.begin();\n\t\t\tthis._local.delete(state);\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected checkRemovedsString(states: string[]): boolean {\n\t\tconst local = this._local;\n\t\tfor (let i = 0, imax = states.length; i < imax; ++i) {\n\t\t\tif (local.has(states[i])) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected checkRemovedsObject(states: DBaseStateAndValue[]): boolean {\n\t\tconst local = this._local;\n\t\tfor (let i = 0, imax = states.length; i < imax; ++i) {\n\t\t\tif (local.has(states[i].state)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tremoveAll(states: string[]): this;\n\tremoveAll(states: DBaseStateAndValue[]): this;\n\tremoveAll(states: string[] | DBaseStateAndValue[]): this;\n\n\tremoveAll(...states: string[]): this;\n\tremoveAll(...states: DBaseStateAndValue[]): this;\n\n\tremoveAll(matcher: DBaseStateMatcher): this;\n\n\tremoveAll(\n\t\tfirst: string | string[] | DBaseStateAndValue | DBaseStateAndValue[] | DBaseStateMatcher\n\t): this {\n\t\tif (isFunction(first)) {\n\t\t\treturn this.removeAllMatcher(first);\n\t\t} else if (isString(first)) {\n\t\t\treturn this.removeAllString(arguments as any as string[]); // eslint-disable-line prefer-rest-params\n\t\t} else if (isArray(first)) {\n\t\t\tif (0 < first.length) {\n\t\t\t\tconst element = first[0];\n\t\t\t\tif (isString(element)) {\n\t\t\t\t\treturn this.removeAllString(first as string[]);\n\t\t\t\t} else {\n\t\t\t\t\treturn this.removeAllObject(first as DBaseStateAndValue[]);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this;\n\t\t} else {\n\t\t\treturn this.removeAllObject(arguments as any as DBaseStateAndValue[]); // eslint-disable-line prefer-rest-params\n\t\t}\n\t}\n\n\tprotected removeAllMatcher(matcher: DBaseStateMatcher): this {\n\t\tlet isDirty = false;\n\t\tconst local = this._local;\n\t\tlocal.forEach((value, state): void => {\n\t\t\tif (matcher(state)) {\n\t\t\t\tif (!isDirty) {\n\t\t\t\t\tisDirty = true;\n\t\t\t\t\tthis.begin();\n\t\t\t\t}\n\t\t\t\tlocal.delete(state);\n\t\t\t}\n\t\t});\n\t\tif (isDirty) {\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected removeAllString(states: string[]): this {\n\t\tif (this.checkRemovedsString(states)) {\n\t\t\tthis.begin();\n\t\t\tconst local = this._local;\n\t\t\tfor (let i = 0, imax = states.length; i < imax; ++i) {\n\t\t\t\tlocal.delete(states[i]);\n\t\t\t}\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected removeAllObject(states: DBaseStateAndValue[]): this {\n\t\tif (this.checkRemovedsObject(states)) {\n\t\t\tthis.begin();\n\t\t\tconst local = this._local;\n\t\t\tfor (let i = 0, imax = states.length; i < imax; ++i) {\n\t\t\t\tlocal.delete(states[i].state);\n\t\t\t}\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tset(state: string, on: boolean): this;\n\tset(state: string, value: number | null, on: boolean): this;\n\n\tset(added: string | null, removed: string | null): this;\n\tset(added: string | null, value: number | null, removed: string | null): this;\n\n\tset(\n\t\tfirst: string | null,\n\t\tsecond: string | number | boolean | null,\n\t\tthird?: string | boolean | null\n\t): this {\n\t\tif (second === true) {\n\t\t\tif (first != null) {\n\t\t\t\tthis.add(first);\n\t\t\t}\n\t\t} else if (second === false) {\n\t\t\tif (first != null) {\n\t\t\t\tthis.remove(first);\n\t\t\t}\n\t\t} else if (second == null || isNumber(second)) {\n\t\t\tif (third === true) {\n\t\t\t\tif (first != null) {\n\t\t\t\t\tthis.add(first, second);\n\t\t\t\t}\n\t\t\t} else if (third === false) {\n\t\t\t\tif (first != null) {\n\t\t\t\t\tthis.remove(first);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn this.doSet(first, second, third);\n\t\t\t}\n\t\t} else {\n\t\t\treturn this.doSet(first, null, second);\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected doSet(added: string | null, value: number | null, removed?: string | null): this {\n\t\tif (added != null) {\n\t\t\tif (removed != null) {\n\t\t\t\tif (this.checkAdded(added, value) || this.checkRemoved(removed)) {\n\t\t\t\t\tthis.begin();\n\t\t\t\t\tthis._local.set(added, value).delete(removed);\n\t\t\t\t\tthis.end();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.add(added, value);\n\t\t\t}\n\t\t} else if (removed != null) {\n\t\t\tthis.remove(removed);\n\t\t}\n\t\treturn this;\n\t}\n\n\tsetAll(states: string[], on: boolean): this;\n\tsetAll(states: DBaseStateAndValue[], on: boolean): this;\n\tsetAll(states: string[] | DBaseStateAndValue[], on: boolean): this;\n\n\tsetAll(addeds: string[] | null, removeds: string[] | null): this;\n\tsetAll(addeds: DBaseStateAndValue[] | null, removeds: string[] | null): this;\n\tsetAll(addeds: string[] | DBaseStateAndValue[] | null, removeds: string[] | null): this;\n\n\tsetAll(first: string[] | DBaseStateAndValue[] | null, second: string[] | null | boolean): this {\n\t\tif (second === true) {\n\t\t\tif (first != null) {\n\t\t\t\tthis.addAll(first);\n\t\t\t}\n\t\t} else if (second === false) {\n\t\t\tif (first != null) {\n\t\t\t\tthis.removeAll(first);\n\t\t\t}\n\t\t} else {\n\t\t\tif (first != null && 0 < first.length) {\n\t\t\t\tif (second != null && 0 < second.length) {\n\t\t\t\t\tconst added = first[0];\n\t\t\t\t\tif (isString(added)) {\n\t\t\t\t\t\treturn this.setAllString(first as string[], second);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn this.setAllObject(first as DBaseStateAndValue[], second);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.addAll(first);\n\t\t\t\t}\n\t\t\t} else if (second != null) {\n\t\t\t\tthis.removeAll(second);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected setAllString(addeds: string[], removeds: string[]): this {\n\t\tif (this.checkAddedsString(addeds) || this.checkRemovedsString(removeds)) {\n\t\t\tthis.begin();\n\t\t\tconst local = this._local;\n\t\t\tfor (let i = 0, imax = addeds.length; i < imax; ++i) {\n\t\t\t\tlocal.set(addeds[i], null);\n\t\t\t}\n\t\t\tfor (let i = 0, imax = removeds.length; i < imax; ++i) {\n\t\t\t\tlocal.delete(removeds[i]);\n\t\t\t}\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected setAllObject(addeds: DBaseStateAndValue[], removeds: string[]): this {\n\t\tif (this.checkAddedsObject(addeds) || this.checkRemovedsString(removeds)) {\n\t\t\tthis.begin();\n\t\t\tconst local = this._local;\n\t\t\tfor (let i = 0, imax = addeds.length; i < imax; ++i) {\n\t\t\t\tconst added = addeds[i];\n\t\t\t\tlocal.set(added.state, added.value);\n\t\t\t}\n\t\t\tfor (let i = 0, imax = removeds.length; i < imax; ++i) {\n\t\t\t\tlocal.delete(removeds[i]);\n\t\t\t}\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tclear(): this {\n\t\tconst local = this._local;\n\t\tif (0 < local.size) {\n\t\t\tthis.begin();\n\t\t\tlocal.clear();\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tvalueOf(state: string): number | null | undefined;\n\tvalueOf(state: string, def: number): number;\n\tvalueOf(state: string, def: number | null): number | null;\n\tvalueOf(state: string, def?: number | null): number | null | undefined {\n\t\tconst result = this._local.get(state);\n\t\tif (result !== undefined) {\n\t\t\tif (result == null && def !== undefined) {\n\t\t\t\treturn def;\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t\tconst parent = this._parent;\n\t\tif (parent != null) {\n\t\t\tif (def !== undefined) {\n\t\t\t\treturn parent.valueOf(state, def);\n\t\t\t} else {\n\t\t\t\treturn parent.valueOf(state);\n\t\t\t}\n\t\t}\n\t\treturn def;\n\t}\n\n\teach(iteratee: (state: string, value: number | null) => void): this {\n\t\tthis._local.forEach((value: number | null, state: string): void => {\n\t\t\titeratee(state, value);\n\t\t});\n\t\treturn this;\n\t}\n\n\tsize(): number {\n\t\treturn this._local.size;\n\t}\n\n\tcopy(other: DBaseStateSet): this {\n\t\tif (other instanceof DBaseStateSetImpl) {\n\t\t\tthis.begin();\n\t\t\tconst local = this._local;\n\t\t\tlocal.clear();\n\t\t\tother.local.forEach((value: number | null, state: string): void => {\n\t\t\t\tlocal.set(state, value);\n\t\t\t});\n\t\t\tthis._parent = other.parent;\n\t\t\tthis.end();\n\t\t}\n\t\treturn this;\n\t}\n\n\tget isHovered(): boolean {\n\t\treturn this.is(DBaseState.HOVERED);\n\t}\n\n\tset isHovered(isHovered: boolean) {\n\t\tthis.set(DBaseState.HOVERED, isHovered);\n\t}\n\n\tget inHovered(): boolean {\n\t\treturn this.in(DBaseState.HOVERED);\n\t}\n\n\tget onHovered(): boolean {\n\t\treturn this.on(DBaseState.HOVERED);\n\t}\n\n\tget underHovered(): boolean {\n\t\treturn this.under(DBaseState.HOVERED);\n\t}\n\n\tget isActive(): boolean {\n\t\treturn this.is(DBaseState.ACTIVE);\n\t}\n\n\tset isActive(isActive: boolean) {\n\t\tthis.set(DBaseState.ACTIVE, isActive);\n\t}\n\n\tget inActive(): boolean {\n\t\treturn this.in(DBaseState.ACTIVE);\n\t}\n\n\tget onActive(): boolean {\n\t\treturn this.on(DBaseState.ACTIVE);\n\t}\n\n\tget underActive(): boolean {\n\t\treturn this.under(DBaseState.ACTIVE);\n\t}\n\n\tget isPressed(): boolean {\n\t\treturn this.is(DBaseState.PRESSED);\n\t}\n\n\tset isPressed(isPressed: boolean) {\n\t\tthis.set(DBaseState.PRESSED, isPressed);\n\t}\n\n\tget inPressed(): boolean {\n\t\treturn this.in(DBaseState.PRESSED);\n\t}\n\n\tget onPressed(): boolean {\n\t\treturn this.on(DBaseState.PRESSED);\n\t}\n\n\tget underPressed(): boolean {\n\t\treturn this.under(DBaseState.PRESSED);\n\t}\n\n\tget isReadOnly(): boolean {\n\t\treturn this.is(DBaseState.READ_ONLY);\n\t}\n\n\tset isReadOnly(isReadOnly: boolean) {\n\t\tthis.set(DBaseState.READ_ONLY, isReadOnly);\n\t}\n\n\tget inReadOnly(): boolean {\n\t\treturn this.in(DBaseState.READ_ONLY);\n\t}\n\n\tget onReadOnly(): boolean {\n\t\treturn this.on(DBaseState.READ_ONLY);\n\t}\n\n\tget underReadOnly(): boolean {\n\t\treturn this.under(DBaseState.READ_ONLY);\n\t}\n\n\tget isEnabled(): boolean {\n\t\treturn !this.is(DBaseState.DISABLED);\n\t}\n\n\tset isEnabled(isEnabled: boolean) {\n\t\tthis.set(DBaseState.DISABLED, !isEnabled);\n\t}\n\n\tget inEnabled(): boolean {\n\t\treturn !this.in(DBaseState.DISABLED);\n\t}\n\n\tget onEnabled(): boolean {\n\t\treturn !this.on(DBaseState.DISABLED);\n\t}\n\n\tget underEnabled(): boolean {\n\t\treturn !this.under(DBaseState.DISABLED);\n\t}\n\n\tget isDisabled(): boolean {\n\t\treturn this.is(DBaseState.DISABLED);\n\t}\n\n\tset isDisabled(isDisabled: boolean) {\n\t\tthis.set(DBaseState.DISABLED, isDisabled);\n\t}\n\n\tget inDisabled(): boolean {\n\t\treturn this.in(DBaseState.DISABLED);\n\t}\n\n\tget onDisabled(): boolean {\n\t\treturn this.on(DBaseState.DISABLED);\n\t}\n\n\tget underDisabled(): boolean {\n\t\treturn this.under(DBaseState.DISABLED);\n\t}\n\n\tget isActionable(): boolean {\n\t\treturn !this.in(DBaseState.DISABLED) && !this.in(DBaseState.READ_ONLY);\n\t}\n\n\tget isGesturing(): boolean {\n\t\treturn this.is(DBaseState.GESTURING);\n\t}\n\n\tset isGesturing(isGesturing: boolean) {\n\t\tthis.set(DBaseState.GESTURING, isGesturing);\n\t}\n\n\tget inGesturing(): boolean {\n\t\treturn this.in(DBaseState.GESTURING);\n\t}\n\n\tget onGesturing(): boolean {\n\t\treturn this.on(DBaseState.GESTURING);\n\t}\n\n\tget underGesturing(): boolean {\n\t\treturn this.under(DBaseState.GESTURING);\n\t}\n\n\tget isFocused(): boolean {\n\t\treturn this.is(DBaseState.FOCUSED);\n\t}\n\n\tset isFocused(isFocused: boolean) {\n\t\tthis.set(DBaseState.FOCUSED, isFocused);\n\t}\n\n\tget inFocused(): boolean {\n\t\treturn this.in(DBaseState.FOCUSED);\n\t}\n\n\tget onFocused(): boolean {\n\t\treturn this.on(DBaseState.FOCUSED);\n\t}\n\n\tget underFocused(): boolean {\n\t\treturn this.under(DBaseState.FOCUSED);\n\t}\n\n\tget isFocusRoot(): boolean {\n\t\treturn this.is(DBaseState.FOCUS_ROOT);\n\t}\n\n\tset isFocusRoot(isFocusRoot: boolean) {\n\t\tthis.set(DBaseState.FOCUS_ROOT, isFocusRoot);\n\t}\n\n\tget inFocusRoot(): boolean {\n\t\treturn this.in(DBaseState.FOCUS_ROOT);\n\t}\n\n\tget onFocusRoot(): boolean {\n\t\treturn this.on(DBaseState.FOCUS_ROOT);\n\t}\n\n\tget underFocusRoot(): boolean {\n\t\treturn this.under(DBaseState.FOCUS_ROOT);\n\t}\n\n\tget isFocusReverse(): boolean {\n\t\treturn this.is(DBaseState.FOCUS_REVERSE);\n\t}\n\n\tset isFocusReverse(isFocusReverse: boolean) {\n\t\tthis.set(DBaseState.FOCUS_REVERSE, isFocusReverse);\n\t}\n\n\tget inFocusReverse(): boolean {\n\t\treturn this.in(DBaseState.FOCUS_REVERSE);\n\t}\n\n\tget onFocusReverse(): boolean {\n\t\treturn this.on(DBaseState.FOCUS_REVERSE);\n\t}\n\n\tget underFocusReverse(): boolean {\n\t\treturn this.under(DBaseState.FOCUS_REVERSE);\n\t}\n\n\tget isFocusable(): boolean {\n\t\treturn !this.is(DBaseState.UNFOCUSABLE);\n\t}\n\n\tset isFocusable(isFocusable: boolean) {\n\t\tthis.set(DBaseState.UNFOCUSABLE, !isFocusable);\n\t}\n\n\tget inFocusable(): boolean {\n\t\treturn !this.in(DBaseState.UNFOCUSABLE);\n\t}\n\n\tget onFocusable(): boolean {\n\t\treturn !this.on(DBaseState.UNFOCUSABLE);\n\t}\n\n\tget underFocusable(): boolean {\n\t\treturn !this.under(DBaseState.UNFOCUSABLE);\n\t}\n\n\tget isUnfocusable(): boolean {\n\t\treturn this.is(DBaseState.UNFOCUSABLE);\n\t}\n\n\tset isUnfocusable(unfocusable: boolean) {\n\t\tthis.set(DBaseState.UNFOCUSABLE, unfocusable);\n\t}\n\n\tget inUnfocusable(): boolean {\n\t\treturn this.in(DBaseState.UNFOCUSABLE);\n\t}\n\n\tget onUnfocusable(): boolean {\n\t\treturn this.on(DBaseState.UNFOCUSABLE);\n\t}\n\n\tget underUnfocusable(): boolean {\n\t\treturn this.under(DBaseState.UNFOCUSABLE);\n\t}\n\n\tget isInvalid(): boolean {\n\t\treturn this.is(DBaseState.INVALID);\n\t}\n\n\tset isInvalid(invalid: boolean) {\n\t\tthis.set(DBaseState.INVALID, invalid);\n\t}\n\n\tget inInvalid(): boolean {\n\t\treturn this.in(DBaseState.INVALID);\n\t}\n\n\tget onInvalid(): boolean {\n\t\treturn this.on(DBaseState.INVALID);\n\t}\n\n\tget underInvalid(): boolean {\n\t\treturn this.on(DBaseState.INVALID);\n\t}\n\n\tget isProcessing(): boolean {\n\t\treturn this.is(DBaseState.PROCESSING);\n\t}\n\n\tset isProcessing(processing: boolean) {\n\t\tthis.set(DBaseState.PROCESSING, processing);\n\t}\n\n\tget inProcessing(): boolean {\n\t\treturn this.in(DBaseState.PROCESSING);\n\t}\n\n\tget onProcessing(): boolean {\n\t\treturn this.on(DBaseState.PROCESSING);\n\t}\n\n\tget underProcessing(): boolean {\n\t\treturn this.under(DBaseState.PROCESSING);\n\t}\n\n\tget isSucceeded(): boolean {\n\t\treturn this.is(DBaseState.SUCCEEDED);\n\t}\n\n\tset isSucceeded(succeeded: boolean) {\n\t\tthis.set(DBaseState.SUCCEEDED, succeeded);\n\t}\n\n\tget inSucceeded(): boolean {\n\t\treturn this.in(DBaseState.SUCCEEDED);\n\t}\n\n\tget onSucceeded(): boolean {\n\t\treturn this.on(DBaseState.SUCCEEDED);\n\t}\n\n\tget underSucceeded(): boolean {\n\t\treturn this.under(DBaseState.SUCCEEDED);\n\t}\n\n\tget isFailed(): boolean {\n\t\treturn this.is(DBaseState.FAILED);\n\t}\n\n\tset isFailed(failed: boolean) {\n\t\tthis.set(DBaseState.FAILED, failed);\n\t}\n\n\tget inFailed(): boolean {\n\t\treturn this.in(DBaseState.FAILED);\n\t}\n\n\tget onFailed(): boolean {\n\t\treturn this.on(DBaseState.FAILED);\n\t}\n\n\tget underFailed(): boolean {\n\t\treturn this.under(DBaseState.FAILED);\n\t}\n\n\tget isWarned(): boolean {\n\t\treturn this.is(DBaseState.WARNED);\n\t}\n\n\tset isWarned(isWarned: boolean) {\n\t\tthis.set(DBaseState.WARNED, isWarned);\n\t}\n\n\tget inWarned(): boolean {\n\t\treturn this.in(DBaseState.WARNED);\n\t}\n\n\tget onWarned(): boolean {\n\t\treturn this.on(DBaseState.WARNED);\n\t}\n\n\tget underWarned(): boolean {\n\t\treturn this.on(DBaseState.WARNED);\n\t}\n\n\tget isChanged(): boolean {\n\t\treturn this.is(DBaseState.CHANGED);\n\t}\n\n\tset isChanged(isChanged: boolean) {\n\t\tthis.set(DBaseState.CHANGED, isChanged);\n\t}\n\n\tget inChanged(): boolean {\n\t\treturn this.in(DBaseState.CHANGED);\n\t}\n\n\tget onChanged(): boolean {\n\t\treturn this.on(DBaseState.CHANGED);\n\t}\n\n\tget underChanged(): boolean {\n\t\treturn this.on(DBaseState.CHANGED);\n\t}\n\n\tget isAlternated(): boolean {\n\t\treturn this.is(DBaseState.ALTERNATED);\n\t}\n\n\tset isAlternated(isAlternated: boolean) {\n\t\tthis.set(DBaseState.ALTERNATED, isAlternated);\n\t}\n\n\tget inAlternated(): boolean {\n\t\treturn this.in(DBaseState.ALTERNATED);\n\t}\n\n\tget onAlternated(): boolean {\n\t\treturn this.on(DBaseState.ALTERNATED);\n\t}\n\n\tget underAlternated(): boolean {\n\t\treturn this.on(DBaseState.ALTERNATED);\n\t}\n\n\ttoObject(): DBaseStateSetLike {\n\t\tconst states: string[] = [];\n\t\tthis._local.forEach((value: number | null, state: string): void => {\n\t\t\tstates.push(state);\n\t\t});\n\t\treturn {\n\t\t\tlocal: states\n\t\t};\n\t}\n\n\ttoString(): string {\n\t\treturn JSON.stringify(this.toObject());\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"d-base-state-set.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-base-state-set.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2020 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DBaseStateAndValue } from \"./d-base-state-and-value\";\nimport { DBaseStateSetBlinker } from \"./d-base-state-set-blinker\";\nimport { DBaseStateSetLike } from \"./d-base-state-set-like\";\nimport { DBaseStateSetTicker } from \"./d-base-state-set-ticker\";\n\nexport interface DBaseStateSet {\n\tparent: DBaseStateSet | null;\n\treadonly blinker: DBaseStateSetBlinker;\n\treadonly ticker: DBaseStateSetTicker;\n\n\tisHovered: boolean;\n\treadonly inHovered: boolean;\n\treadonly onHovered: boolean;\n\treadonly underHovered: boolean;\n\tisActive: boolean;\n\treadonly inActive: boolean;\n\treadonly onActive: boolean;\n\treadonly underActive: boolean;\n\tisPressed: boolean;\n\treadonly inPressed: boolean;\n\treadonly onPressed: boolean;\n\treadonly underPressed: boolean;\n\tisReadOnly: boolean;\n\treadonly inReadOnly: boolean;\n\treadonly onReadOnly: boolean;\n\treadonly underReadOnly: boolean;\n\tisEnabled: boolean;\n\treadonly inEnabled: boolean;\n\treadonly onEnabled: boolean;\n\treadonly underEnabled: boolean;\n\tisDisabled: boolean;\n\treadonly inDisabled: boolean;\n\treadonly onDisabled: boolean;\n\treadonly underDisabled: boolean;\n\tisActionable: boolean;\n\tisGesturing: boolean;\n\treadonly inGesturing: boolean;\n\treadonly onGesturing: boolean;\n\treadonly underGesturing: boolean;\n\tisFocused: boolean;\n\treadonly inFocused: boolean;\n\treadonly onFocused: boolean;\n\treadonly underFocused: boolean;\n\tisFocusable: boolean;\n\treadonly inFocusable: boolean;\n\treadonly onFocusable: boolean;\n\treadonly underFocusable: boolean;\n\tisUnfocusable: boolean;\n\treadonly inUnfocusable: boolean;\n\treadonly onUnfocusable: boolean;\n\treadonly underUnfocusable: boolean;\n\tisFocusRoot: boolean;\n\treadonly inFocusRoot: boolean;\n\treadonly onFocusRoot: boolean;\n\treadonly underFocusRoot: boolean;\n\tisFocusReverse: boolean;\n\treadonly inFocusReverse: boolean;\n\treadonly onFocusReverse: boolean;\n\treadonly underFocusReverse: boolean;\n\tisInvalid: boolean;\n\treadonly inInvalid: boolean;\n\treadonly onInvalid: boolean;\n\treadonly underInvalid: boolean;\n\tisProcessing: boolean;\n\treadonly inProcessing: boolean;\n\treadonly onProcessing: boolean;\n\treadonly underProcessing: boolean;\n\tisSucceeded: boolean;\n\treadonly inSucceeded: boolean;\n\treadonly onSucceeded: boolean;\n\treadonly underSucceeded: boolean;\n\tisFailed: boolean;\n\treadonly inFailed: boolean;\n\treadonly onFailed: boolean;\n\treadonly underFailed: boolean;\n\tisWarned: boolean;\n\treadonly inWarned: boolean;\n\treadonly onWarned: boolean;\n\treadonly underWarned: boolean;\n\tisChanged: boolean;\n\treadonly inChanged: boolean;\n\treadonly onChanged: boolean;\n\treadonly underChanged: boolean;\n\tisAlternated: boolean;\n\treadonly inAlternated: boolean;\n\treadonly onAlternated: boolean;\n\treadonly underAlternated: boolean;\n\n\t/**\n\t * Returns true if the given state is on.\n\t * If the given value is undefined, values assigned to states are ignored.\n\t * If the given value is not undefined, values assigned to states are taken into account.\n\t *\n\t * @param state a state\n\t * @param value a state value\n\t * @return true if the given state is on\n\t */\n\tis(state: string, value?: number | null): boolean;\n\n\t/**\n\t * Returns true if the given state is on or if one of the parents has the given state.\n\t * If the given value is undefined, values assigned to states are ignored.\n\t * If the given value is not undefined, values assigned to states are taken into account.\n\t *\n\t * @param state a state\n\t * @param value a state value\n\t * @return true if the given state is on or if one of the parents has the given state.\n\t */\n\tin(state: string, value?: number | null): boolean;\n\n\t/**\n\t * Returns true if the direct parent has the given state.\n\t * If the given value is undefined, values assigned to states are ignored.\n\t * If the given value is not undefined, values assigned to states are taken into account.\n\t *\n\t * @param state a state\n\t * @param value a state value\n\t * @return true if the direct parent has the given state.\n\t */\n\ton(state: string, value?: number | null): boolean;\n\n\t/**\n\t * Returns true if one of the parents has the given state.\n\t * If the given value is undefined, values assigned to states are ignored.\n\t * If the given value is not undefined, values assigned to states are taken into account.\n\t *\n\t * @param state a state\n\t * @param value a state value\n\t * @return true if one of the parents has the given state.\n\t */\n\tunder(state: string, value?: number | null): boolean;\n\n\t/**\n\t * Locks this state set.\n\t * The locked state set delays calling the change event handler.\n\t *\n\t * @param callOnChange false to stop calling the change event handler when unlocked\n\t * @return this\n\t */\n\tlock(callOnChange?: boolean): this;\n\n\t/**\n\t * Unlocks this state set and calls the change event handler if this state set has changed.\n\t * However, if this state set is locked with the `callOnChange` of false, the change event handler is not called.\n\t *\n\t * @return this\n\t */\n\tunlock(): this;\n\n\tadd(state: string, value?: number | null): this;\n\n\taddAll(states: string[]): this;\n\taddAll(states: DBaseStateAndValue[]): this;\n\taddAll(states: string[] | DBaseStateAndValue[]): this;\n\n\taddAll(...states: string[]): this;\n\taddAll(...states: DBaseStateAndValue[]): this;\n\n\tremove(state: string): this;\n\n\tremoveAll(states: string[]): this;\n\tremoveAll(states: DBaseStateAndValue[]): this;\n\tremoveAll(states: string[] | DBaseStateAndValue[]): this;\n\n\tremoveAll(...states: string[]): this;\n\tremoveAll(...states: DBaseStateAndValue[]): this;\n\n\tremoveAll(matcher: (state: string) => void | boolean): this;\n\n\tset(state: string, on: boolean): this;\n\tset(state: string, value: number | null, on: boolean): this;\n\n\tset(added: string | null, removed: string | null): this;\n\tset(added: string | null, value: number | null, removed: string | null): this;\n\n\tsetAll(states: string[], on: boolean): this;\n\tsetAll(states: DBaseStateAndValue[], on: boolean): this;\n\tsetAll(states: string[] | DBaseStateAndValue[], on: boolean): this;\n\n\tsetAll(addeds: string[] | null, removeds: string[] | null): this;\n\tsetAll(addeds: DBaseStateAndValue[] | null, removeds: string[] | null): this;\n\tsetAll(addeds: string[] | DBaseStateAndValue[] | null, removeds: string[] | null): this;\n\n\tclear(): this;\n\n\tvalueOf(state: string, def?: number | null): number | null | undefined;\n\n\teach(iteratee: (state: string, value: number | null) => void): this;\n\tsize(): number;\n\tcopy(state: DBaseStateSet): this;\n\n\tonParentChange(newState: DBaseStateSet, oldState: DBaseStateSet): void;\n\n\ttoObject(): DBaseStateSetLike;\n\ttoString(): string;\n}\n"]}
1
+ {"version":3,"file":"d-base-state-set.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-base-state-set.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2020 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DBaseStateAndValue } from \"./d-base-state-and-value\";\nimport { DBaseStateSetBlinker } from \"./d-base-state-set-blinker\";\nimport { DBaseStateSetLike } from \"./d-base-state-set-like\";\nimport { DBaseStateSetTicker } from \"./d-base-state-set-ticker\";\n\nexport interface DBaseStateSet {\n\tparent: DBaseStateSet | null;\n\treadonly blinker: DBaseStateSetBlinker;\n\treadonly ticker: DBaseStateSetTicker;\n\n\tisHovered: boolean;\n\treadonly inHovered: boolean;\n\treadonly onHovered: boolean;\n\treadonly underHovered: boolean;\n\tisActive: boolean;\n\treadonly inActive: boolean;\n\treadonly onActive: boolean;\n\treadonly underActive: boolean;\n\tisPressed: boolean;\n\treadonly inPressed: boolean;\n\treadonly onPressed: boolean;\n\treadonly underPressed: boolean;\n\tisReadOnly: boolean;\n\treadonly inReadOnly: boolean;\n\treadonly onReadOnly: boolean;\n\treadonly underReadOnly: boolean;\n\tisEnabled: boolean;\n\treadonly inEnabled: boolean;\n\treadonly onEnabled: boolean;\n\treadonly underEnabled: boolean;\n\tisDisabled: boolean;\n\treadonly inDisabled: boolean;\n\treadonly onDisabled: boolean;\n\treadonly underDisabled: boolean;\n\tisActionable: boolean;\n\tisGesturing: boolean;\n\treadonly inGesturing: boolean;\n\treadonly onGesturing: boolean;\n\treadonly underGesturing: boolean;\n\tisFocused: boolean;\n\treadonly inFocused: boolean;\n\treadonly onFocused: boolean;\n\treadonly underFocused: boolean;\n\tisFocusable: boolean;\n\treadonly inFocusable: boolean;\n\treadonly onFocusable: boolean;\n\treadonly underFocusable: boolean;\n\tisUnfocusable: boolean;\n\treadonly inUnfocusable: boolean;\n\treadonly onUnfocusable: boolean;\n\treadonly underUnfocusable: boolean;\n\tisFocusRoot: boolean;\n\treadonly inFocusRoot: boolean;\n\treadonly onFocusRoot: boolean;\n\treadonly underFocusRoot: boolean;\n\tisFocusReverse: boolean;\n\treadonly inFocusReverse: boolean;\n\treadonly onFocusReverse: boolean;\n\treadonly underFocusReverse: boolean;\n\tisInvalid: boolean;\n\treadonly inInvalid: boolean;\n\treadonly onInvalid: boolean;\n\treadonly underInvalid: boolean;\n\tisProcessing: boolean;\n\treadonly inProcessing: boolean;\n\treadonly onProcessing: boolean;\n\treadonly underProcessing: boolean;\n\tisSucceeded: boolean;\n\treadonly inSucceeded: boolean;\n\treadonly onSucceeded: boolean;\n\treadonly underSucceeded: boolean;\n\tisFailed: boolean;\n\treadonly inFailed: boolean;\n\treadonly onFailed: boolean;\n\treadonly underFailed: boolean;\n\tisWarned: boolean;\n\treadonly inWarned: boolean;\n\treadonly onWarned: boolean;\n\treadonly underWarned: boolean;\n\tisChanged: boolean;\n\treadonly inChanged: boolean;\n\treadonly onChanged: boolean;\n\treadonly underChanged: boolean;\n\tisAlternated: boolean;\n\treadonly inAlternated: boolean;\n\treadonly onAlternated: boolean;\n\treadonly underAlternated: boolean;\n\n\t/**\n\t * Returns true if the given state is on.\n\t * If the given value is undefined, values assigned to states are ignored.\n\t * If the given value is not undefined, values assigned to states are taken into account.\n\t *\n\t * @param state a state\n\t * @param value a state value\n\t * @return true if the given state is on\n\t */\n\tis(state: string, value?: number | null): boolean;\n\n\t/**\n\t * Returns true if the given state is on or if one of the parents has the given state.\n\t * If the given value is undefined, values assigned to states are ignored.\n\t * If the given value is not undefined, values assigned to states are taken into account.\n\t *\n\t * @param state a state\n\t * @param value a state value\n\t * @return true if the given state is on or if one of the parents has the given state.\n\t */\n\tin(state: string, value?: number | null): boolean;\n\n\t/**\n\t * Returns true if the direct parent has the given state.\n\t * If the given value is undefined, values assigned to states are ignored.\n\t * If the given value is not undefined, values assigned to states are taken into account.\n\t *\n\t * @param state a state\n\t * @param value a state value\n\t * @return true if the direct parent has the given state.\n\t */\n\ton(state: string, value?: number | null): boolean;\n\n\t/**\n\t * Returns true if one of the parents has the given state.\n\t * If the given value is undefined, values assigned to states are ignored.\n\t * If the given value is not undefined, values assigned to states are taken into account.\n\t *\n\t * @param state a state\n\t * @param value a state value\n\t * @return true if one of the parents has the given state.\n\t */\n\tunder(state: string, value?: number | null): boolean;\n\n\t/**\n\t * Locks this state set.\n\t * The locked state set delays calling the change event handler.\n\t *\n\t * @param callOnChange false to stop calling the change event handler when unlocked\n\t * @return this\n\t */\n\tlock(callOnChange?: boolean): this;\n\n\t/**\n\t * Unlocks this state set and calls the change event handler if this state set has changed.\n\t * However, if this state set is locked with the `callOnChange` of false, the change event handler is not called.\n\t *\n\t * @return this\n\t */\n\tunlock(): this;\n\n\tadd(state: string, value?: number | null): this;\n\n\taddAll(states: string[]): this;\n\taddAll(states: DBaseStateAndValue[]): this;\n\taddAll(states: string[] | DBaseStateAndValue[]): this;\n\n\taddAll(...states: string[]): this;\n\taddAll(...states: DBaseStateAndValue[]): this;\n\n\tremove(state: string): this;\n\n\tremoveAll(states: string[]): this;\n\tremoveAll(states: DBaseStateAndValue[]): this;\n\tremoveAll(states: string[] | DBaseStateAndValue[]): this;\n\n\tremoveAll(...states: string[]): this;\n\tremoveAll(...states: DBaseStateAndValue[]): this;\n\n\tremoveAll(matcher: (state: string) => void | boolean): this;\n\n\tset(state: string, on: boolean): this;\n\tset(state: string, value: number | null, on: boolean): this;\n\n\tset(added: string | null, removed: string | null): this;\n\tset(added: string | null, value: number | null, removed: string | null): this;\n\n\tsetAll(states: string[], on: boolean): this;\n\tsetAll(states: DBaseStateAndValue[], on: boolean): this;\n\tsetAll(states: string[] | DBaseStateAndValue[], on: boolean): this;\n\n\tsetAll(addeds: string[] | null, removeds: string[] | null): this;\n\tsetAll(addeds: DBaseStateAndValue[] | null, removeds: string[] | null): this;\n\tsetAll(addeds: string[] | DBaseStateAndValue[] | null, removeds: string[] | null): this;\n\n\tclear(): this;\n\n\tvalueOf(state: string): number | null | undefined;\n\tvalueOf(state: string, def: number): number;\n\tvalueOf(state: string, def: number | null): number | null;\n\n\teach(iteratee: (state: string, value: number | null) => void): this;\n\tsize(): number;\n\tcopy(state: DBaseStateSet): this;\n\n\tonParentChange(newState: DBaseStateSet, oldState: DBaseStateSet): void;\n\n\ttoObject(): DBaseStateSetLike;\n\ttoString(): string;\n}\n"]}
@@ -38,7 +38,7 @@ var DDialog = /** @class */ (function (_super) {
38
38
  }
39
39
  DDialog.prototype.init = function (options) {
40
40
  var _this = this;
41
- var _a, _b;
41
+ var _a, _b, _c;
42
42
  _super.prototype.init.call(this, options);
43
43
  this._onPrerenderBound = function () {
44
44
  _this.onPrerender();
@@ -48,8 +48,10 @@ var DDialog = /** @class */ (function (_super) {
48
48
  var theme = this.theme;
49
49
  var mode = toEnum((_a = options === null || options === void 0 ? void 0 : options.mode) !== null && _a !== void 0 ? _a : theme.getMode(), DDialogMode);
50
50
  this._mode = mode;
51
+ // Always On Top
52
+ this._alwaysOnTop = (_b = options === null || options === void 0 ? void 0 : options.alwaysOnTop) !== null && _b !== void 0 ? _b : theme.isAlwaysOnTop();
51
53
  // Sticky
52
- this._sticky = (_b = options === null || options === void 0 ? void 0 : options.sticky) !== null && _b !== void 0 ? _b : theme.isSticky(mode);
54
+ this._sticky = (_c = options === null || options === void 0 ? void 0 : options.sticky) !== null && _c !== void 0 ? _c : theme.isSticky(mode);
53
55
  // Close On
54
56
  var closeOn = this.toCloseOn(mode, theme, options);
55
57
  this._closeOn = closeOn;
@@ -130,6 +132,16 @@ var DDialog = /** @class */ (function (_super) {
130
132
  enumerable: false,
131
133
  configurable: true
132
134
  });
135
+ Object.defineProperty(DDialog.prototype, "alwaysOnTop", {
136
+ get: function () {
137
+ return this._alwaysOnTop;
138
+ },
139
+ set: function (alwaysOnTop) {
140
+ this._alwaysOnTop = alwaysOnTop;
141
+ },
142
+ enumerable: false,
143
+ configurable: true
144
+ });
133
145
  Object.defineProperty(DDialog.prototype, "gesture", {
134
146
  get: function () {
135
147
  return this._gesture;
@@ -236,6 +248,7 @@ var DDialog = /** @class */ (function (_super) {
236
248
  */
237
249
  DDialog.prototype.open = function (opener) {
238
250
  var _this = this;
251
+ var _a;
239
252
  var result = this._promise;
240
253
  if (result == null) {
241
254
  result = new Promise(function (resolve, reject) {
@@ -279,11 +292,37 @@ var DDialog = /** @class */ (function (_super) {
279
292
  gesture.constraint(this, layer, position.x, position.y);
280
293
  }
281
294
  }
295
+ // Always On Top
296
+ if (this._alwaysOnTop) {
297
+ var parent_2 = this.parent;
298
+ if (parent_2 != null) {
299
+ parent_2.on("childAdded", ((_a = this._onParentChildAddedBound) !== null && _a !== void 0 ? _a : (this._onParentChildAddedBound = function () {
300
+ _this.onParentChildAdded();
301
+ })));
302
+ this.onParentChildAdded();
303
+ }
304
+ }
282
305
  // Done
283
306
  this.onOpen();
284
307
  }
285
308
  return result;
286
309
  };
310
+ DDialog.prototype.onParentChildAdded = function () {
311
+ var parent = this.parent;
312
+ if (parent != null) {
313
+ parent.children.sort(this.compareAlwaysOnTop);
314
+ }
315
+ };
316
+ DDialog.prototype.compareAlwaysOnTop = function (a, b) {
317
+ var at = a instanceof DDialog && a.alwaysOnTop;
318
+ var bt = b instanceof DDialog && b.alwaysOnTop;
319
+ if (at) {
320
+ return bt ? 0 : +1;
321
+ }
322
+ else {
323
+ return bt ? -1 : 0;
324
+ }
325
+ };
287
326
  DDialog.prototype.onPrerender = function () {
288
327
  var _a;
289
328
  var layer = this._layer;
@@ -379,6 +418,13 @@ var DDialog = /** @class */ (function (_super) {
379
418
  this.visible = false;
380
419
  this.onAnimationEnd(true);
381
420
  }
421
+ // Always On Top
422
+ if (this._alwaysOnTop) {
423
+ var parent_3 = this.parent;
424
+ if (parent_3 != null) {
425
+ parent_3.off("childAdded", this._onParentChildAddedBound);
426
+ }
427
+ }
382
428
  this.emit("close", this);
383
429
  };
384
430
  DDialog.prototype.onKeyDown = function (e) {