@wcardinal/wcardinal-ui 0.305.0 → 0.307.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 (72) hide show
  1. package/dist/types/wcardinal/ui/d-controller-focus-impl.d.ts +2 -1
  2. package/dist/types/wcardinal/ui/d-controller-focus.d.ts +2 -1
  3. package/dist/types/wcardinal/ui/d-controller-keyboard-impl.d.ts +11 -0
  4. package/dist/types/wcardinal/ui/d-controller-keyboard.d.ts +1 -7
  5. package/dist/types/wcardinal/ui/index.d.ts +1 -0
  6. package/dist/types/wcardinal/ui/shape/variant/e-shape-group-size-editor.d.ts +2 -2
  7. package/dist/types/wcardinal/ui/shape/variant/e-shape-group-size-shadowed.d.ts +2 -2
  8. package/dist/types/wcardinal/ui/shape/variant/e-shape-group-size-viewer.d.ts +2 -2
  9. package/dist/types/wcardinal/ui/shape/variant/e-shape-group-size.d.ts +2 -2
  10. package/dist/wcardinal/ui/d-controller-focus-impl.js +10 -3
  11. package/dist/wcardinal/ui/d-controller-focus-impl.js.map +1 -1
  12. package/dist/wcardinal/ui/d-controller-focus.js.map +1 -1
  13. package/dist/wcardinal/ui/d-controller-keyboard-impl.js +66 -0
  14. package/dist/wcardinal/ui/d-controller-keyboard-impl.js.map +1 -0
  15. package/dist/wcardinal/ui/d-controller-keyboard.js +1 -61
  16. package/dist/wcardinal/ui/d-controller-keyboard.js.map +1 -1
  17. package/dist/wcardinal/ui/d-controllers.js +2 -2
  18. package/dist/wcardinal/ui/d-controllers.js.map +1 -1
  19. package/dist/wcardinal/ui/index.js +1 -0
  20. package/dist/wcardinal/ui/index.js.map +1 -1
  21. package/dist/wcardinal/ui/shape/variant/e-shape-embedded-layer.js +8 -1
  22. package/dist/wcardinal/ui/shape/variant/e-shape-embedded-layer.js.map +1 -1
  23. package/dist/wcardinal/ui/shape/variant/e-shape-group-size-editor.js +2 -1
  24. package/dist/wcardinal/ui/shape/variant/e-shape-group-size-editor.js.map +1 -1
  25. package/dist/wcardinal/ui/shape/variant/e-shape-group-size-shadowed.js +2 -2
  26. package/dist/wcardinal/ui/shape/variant/e-shape-group-size-shadowed.js.map +1 -1
  27. package/dist/wcardinal/ui/shape/variant/e-shape-group-size-viewer.js +2 -1
  28. package/dist/wcardinal/ui/shape/variant/e-shape-group-size-viewer.js.map +1 -1
  29. package/dist/wcardinal/ui/shape/variant/e-shape-group-size.js.map +1 -1
  30. package/dist/wcardinal/ui/theme/dark/d-theme-dark-base.js +15 -9
  31. package/dist/wcardinal/ui/theme/dark/d-theme-dark-base.js.map +1 -1
  32. package/dist/wcardinal/ui/theme/dark/d-theme-dark-dialog-processing-message.js +0 -8
  33. package/dist/wcardinal/ui/theme/dark/d-theme-dark-dialog-processing-message.js.map +1 -1
  34. package/dist/wcardinal/ui/theme/dark/d-theme-dark-list-items.js +5 -5
  35. package/dist/wcardinal/ui/theme/dark/d-theme-dark-list-items.js.map +1 -1
  36. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-body-cells.js +2 -2
  37. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-body-cells.js.map +1 -1
  38. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-body-row.js +1 -1
  39. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-body-row.js.map +1 -1
  40. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-body.js +1 -1
  41. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-body.js.map +1 -1
  42. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header-cell.js +1 -1
  43. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header-cell.js.map +1 -1
  44. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header.js +2 -2
  45. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header.js.map +1 -1
  46. package/dist/wcardinal/ui/theme/white/d-theme-white-base.js +15 -9
  47. package/dist/wcardinal/ui/theme/white/d-theme-white-base.js.map +1 -1
  48. package/dist/wcardinal/ui/theme/white/d-theme-white-dialog-processing-message.js +0 -8
  49. package/dist/wcardinal/ui/theme/white/d-theme-white-dialog-processing-message.js.map +1 -1
  50. package/dist/wcardinal/ui/theme/white/d-theme-white-list-items.js +1 -1
  51. package/dist/wcardinal/ui/theme/white/d-theme-white-list-items.js.map +1 -1
  52. package/dist/wcardinal/ui/theme/white/d-theme-white-table-body-cells.js +2 -2
  53. package/dist/wcardinal/ui/theme/white/d-theme-white-table-body-cells.js.map +1 -1
  54. package/dist/wcardinal/ui/theme/white/d-theme-white-table-body-row.js +1 -1
  55. package/dist/wcardinal/ui/theme/white/d-theme-white-table-body-row.js.map +1 -1
  56. package/dist/wcardinal/ui/theme/white/d-theme-white-table-body.js +1 -1
  57. package/dist/wcardinal/ui/theme/white/d-theme-white-table-body.js.map +1 -1
  58. package/dist/wcardinal/ui/theme/white/d-theme-white-table-header-cell.js +1 -1
  59. package/dist/wcardinal/ui/theme/white/d-theme-white-table-header-cell.js.map +1 -1
  60. package/dist/wcardinal/ui/theme/white/d-theme-white-table-header.js +2 -2
  61. package/dist/wcardinal/ui/theme/white/d-theme-white-table-header.js.map +1 -1
  62. package/dist/wcardinal-ui-theme-dark.js +28 -30
  63. package/dist/wcardinal-ui-theme-dark.min.js +2 -2
  64. package/dist/wcardinal-ui-theme-dark.min.js.map +1 -1
  65. package/dist/wcardinal-ui-theme-white.js +24 -26
  66. package/dist/wcardinal-ui-theme-white.min.js +2 -2
  67. package/dist/wcardinal-ui-theme-white.min.js.map +1 -1
  68. package/dist/wcardinal-ui.cjs.js +82 -72
  69. package/dist/wcardinal-ui.js +32 -18
  70. package/dist/wcardinal-ui.min.js +2 -2
  71. package/dist/wcardinal-ui.min.js.map +1 -1
  72. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
+ import { utils } from "pixi.js";
1
2
  import { DControllerFocus, DFocusable, DFocusableContainer, DFocusableMightBe } from "./d-controller-focus";
2
- export declare class DControllerFocusImpl implements DControllerFocus {
3
+ export declare class DControllerFocusImpl extends utils.EventEmitter implements DControllerFocus {
3
4
  private _focused;
4
5
  focus(focusable: DFocusable | null): DFocusable | null;
5
6
  blur(focusable: DFocusable | null): DFocusable | null;
@@ -1,3 +1,4 @@
1
+ import { utils } from "pixi.js";
1
2
  import { DBaseStateSet } from "./d-base-state-set";
2
3
  export interface DFocusableMightBe {
3
4
  parent: DFocusableContainer | null;
@@ -9,7 +10,7 @@ export interface DFocusableContainer extends DFocusableMightBe {
9
10
  export interface DFocusable extends DFocusableMightBe {
10
11
  readonly state: DBaseStateSet;
11
12
  }
12
- export interface DControllerFocus {
13
+ export interface DControllerFocus extends utils.EventEmitter {
13
14
  focus(focusable: DFocusable | null): DFocusable | null;
14
15
  blur(focusable: DFocusable): DFocusable | null;
15
16
  clear(): DFocusable | null;
@@ -0,0 +1,11 @@
1
+ import { Container, utils } from "pixi.js";
2
+ import { DControllerFocus } from "./d-controller-focus";
3
+ export declare class DControllerKeyboardImpl extends utils.EventEmitter {
4
+ init(element: HTMLElement, stage: Container, focusController: DControllerFocus): void;
5
+ protected hasOnKeyDown(target: any): target is {
6
+ onKeyDown(e: KeyboardEvent): boolean;
7
+ };
8
+ protected hasOnKeyUp(target: any): target is {
9
+ onKeyUp(e: KeyboardEvent): boolean;
10
+ };
11
+ }
@@ -1,11 +1,5 @@
1
1
  import { Container, utils } from "pixi.js";
2
2
  import { DControllerFocus } from "./d-controller-focus";
3
- export declare class DControllerKeyboard extends utils.EventEmitter {
3
+ export interface DControllerKeyboard extends utils.EventEmitter {
4
4
  init(element: HTMLElement, stage: Container, focusController: DControllerFocus): void;
5
- protected hasOnKeyDown(target: any): target is {
6
- onKeyDown(e: KeyboardEvent): boolean;
7
- };
8
- protected hasOnKeyUp(target: any): target is {
9
- onKeyUp(e: KeyboardEvent): boolean;
10
- };
11
5
  }
@@ -188,6 +188,7 @@ export * from "./d-controller-command";
188
188
  export * from "./d-controller-document";
189
189
  export * from "./d-controller-focus-impl";
190
190
  export * from "./d-controller-focus";
191
+ export * from "./d-controller-keyboard-impl";
191
192
  export * from "./d-controller-keyboard";
192
193
  export * from "./d-controllers";
193
194
  export * from "./d-coordinate";
@@ -11,7 +11,7 @@ export declare class EShapeGroupSizeEditor implements EShapeGroupSize {
11
11
  protected _workRectForFit: Rectangle;
12
12
  protected _isFittable: boolean;
13
13
  constructor(parent: EShapeGroupSizeParent, x: number, y: number, isFittable: boolean);
14
- init(): void;
14
+ init(): this;
15
15
  get x(): number;
16
16
  set x(x: number);
17
17
  get y(): number;
@@ -22,7 +22,7 @@ export declare class EShapeGroupSizeEditor implements EShapeGroupSize {
22
22
  copyFrom(point: IPoint): this;
23
23
  copyTo(point: IPoint): IPoint;
24
24
  equals(point: IPoint): boolean;
25
- fit(): void;
25
+ fit(): this;
26
26
  protected doFit(): void;
27
27
  protected reset(children: EShape[], layouts: EShapeLayout[], size: IPoint): void;
28
28
  calcRect(result: Rectangle): Rectangle;
@@ -5,7 +5,7 @@ export declare class EShapeGroupSizeShadowed implements EShapeGroupSize {
5
5
  protected _parent: EShapeGroupSizeParent;
6
6
  protected _size: Point;
7
7
  constructor(parent: EShapeGroupSizeParent, x: number, y: number);
8
- init(): void;
8
+ init(): this;
9
9
  get x(): number;
10
10
  set x(x: number);
11
11
  get y(): number;
@@ -16,6 +16,6 @@ export declare class EShapeGroupSizeShadowed implements EShapeGroupSize {
16
16
  copyFrom(point: IPoint): this;
17
17
  copyTo(point: IPoint): IPoint;
18
18
  equals(point: IPoint): boolean;
19
- fit(): void;
19
+ fit(): this;
20
20
  protected onChange(ox: number, oy: number): void;
21
21
  }
@@ -17,12 +17,12 @@ export declare class EShapeGroupSizeViewer implements EShapeGroupSize {
17
17
  get y(): number;
18
18
  set y(y: number);
19
19
  get base(): IPoint;
20
- init(): void;
20
+ init(): this;
21
21
  clone(): EShapeGroupSizeViewer;
22
22
  set(x?: number, y?: number): this;
23
23
  copyFrom(p: IPoint): this;
24
24
  copyTo(p: IPoint): IPoint;
25
25
  equals(p: IPoint): boolean;
26
- fit(): void;
26
+ fit(): this;
27
27
  protected onChange(): void;
28
28
  }
@@ -2,8 +2,8 @@ import { IPoint, ObservablePoint } from "pixi.js";
2
2
  export interface EShapeGroupSize {
3
3
  x: number;
4
4
  y: number;
5
- init(): void;
6
- fit(): void;
5
+ init(): this;
6
+ fit(): this;
7
7
  clone(): ObservablePoint;
8
8
  copyFrom(p: IPoint): this;
9
9
  copyTo(p: IPoint): IPoint;
@@ -2,9 +2,14 @@
2
2
  * Copyright (C) 2019 Toshiba Corporation
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
- var DControllerFocusImpl = /** @class */ (function () {
5
+ import { __extends } from "tslib";
6
+ import { utils } from "pixi.js";
7
+ var DControllerFocusImpl = /** @class */ (function (_super) {
8
+ __extends(DControllerFocusImpl, _super);
6
9
  function DControllerFocusImpl() {
7
- this._focused = null;
10
+ var _this = _super !== null && _super.apply(this, arguments) || this;
11
+ _this._focused = null;
12
+ return _this;
8
13
  }
9
14
  DControllerFocusImpl.prototype.focus = function (focusable) {
10
15
  var previous = this._focused;
@@ -16,6 +21,7 @@ var DControllerFocusImpl = /** @class */ (function () {
16
21
  if (this.isFocusable(focusable)) {
17
22
  focusable.state.isFocused = true;
18
23
  }
24
+ this.emit("change", focusable, previous, this);
19
25
  return previous;
20
26
  }
21
27
  return null;
@@ -24,6 +30,7 @@ var DControllerFocusImpl = /** @class */ (function () {
24
30
  if (focusable != null && this._focused === focusable) {
25
31
  this._focused = null;
26
32
  focusable.state.isFocused = false;
33
+ this.emit("change", null, focusable, this);
27
34
  return focusable;
28
35
  }
29
36
  return null;
@@ -250,6 +257,6 @@ var DControllerFocusImpl = /** @class */ (function () {
250
257
  return target != null && "state" in target && target.state.isFocusReverse;
251
258
  };
252
259
  return DControllerFocusImpl;
253
- }());
260
+ }(utils.EventEmitter));
254
261
  export { DControllerFocusImpl };
255
262
  //# sourceMappingURL=d-controller-focus-impl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"d-controller-focus-impl.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-controller-focus-impl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH;IAAA;QACS,aAAQ,GAAsB,IAAI,CAAC;IAgR5C,CAAC;IA9QA,oCAAK,GAAL,UAAM,SAA4B;QACjC,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC3B,IAAI,QAAQ,IAAI,IAAI,EAAE;gBACrB,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;aACjC;YAED,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC1B,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;gBAChC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;aACjC;YACD,OAAO,QAAQ,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,mCAAI,GAAJ,UAAK,SAA4B;QAChC,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;YACrD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YAClC,OAAO,SAAS,CAAC;SACjB;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,oCAAK,GAAL;QACC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,kCAAG,GAAH,UAAI,SAA4B,EAAE,SAAkB;QACnD,IAAI,SAAS,EAAE;YACd,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SAC7B;aAAM;YACN,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC5B;IACF,CAAC;IAED,kCAAG,GAAH;QACC,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,yCAAU,GAAV,UAAW,gBAA0C;QACpD,IAAI,OAAO,GAAmD,gBAAgB,CAAC;QAC/E,OAAO,OAAO,IAAI,IAAI,EAAE;YACvB,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;gBAC9B,OAAO,OAAO,CAAC;aACf;iBAAM;gBACN,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;aACzB;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,mCAAI,GAAJ,UACC,MAAyB,EACzB,cAAuB,EACvB,sBAA+B,EAC/B,SAAkB,EAClB,IAAc;QAEd,IAAI,SAAS,EAAE;YACd,IAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,sBAAsB,CAAC,CAAC;YAC7E,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,OAAO,MAAM,CAAC;aACd;YACD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBACnC,OAAO,IAAI,CAAC;aACZ;YACD,IAAM,QAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC7B,IAAI,QAAM,IAAI,IAAI,EAAE;gBACnB,IAAM,QAAQ,GAAG,QAAM,CAAC,QAAQ,CAAC;gBACjC,IAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvC,IAAI,CAAC,IAAI,KAAK,EAAE;oBACf,IAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;oBACvC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAM,CAAC,EAAE;wBAChC,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;4BACpC,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;4BACrD,IAAI,KAAK,IAAI,IAAI,EAAE;gCAClB,OAAO,KAAK,CAAC;6BACb;yBACD;wBACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAM,EAAE,IAAI,CAAC,EAAE;4BACpC,IAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;4BAC1D,IAAI,KAAK,IAAI,IAAI,EAAE;gCAClB,OAAO,KAAK,CAAC;6BACb;yBACD;wBACD,KAAK,IAAI,CAAC,GAAG,cAAc,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;4BACjD,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;4BACrD,IAAI,KAAK,IAAI,IAAI,EAAE;gCAClB,OAAO,KAAK,CAAC;6BACb;yBACD;qBACD;yBAAM;wBACN,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,EAAE,CAAC,EAAE;4BAChD,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;4BACrD,IAAI,KAAK,IAAI,IAAI,EAAE;gCAClB,OAAO,KAAK,CAAC;6BACb;yBACD;wBACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAM,EAAE,IAAI,CAAC,EAAE;4BACpC,IAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;4BAC1D,IAAI,KAAK,IAAI,IAAI,EAAE;gCAClB,OAAO,KAAK,CAAC;6BACb;yBACD;wBACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE;4BAChC,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;4BACrD,IAAI,KAAK,IAAI,IAAI,EAAE;gCAClB,OAAO,KAAK,CAAC;6BACb;yBACD;qBACD;iBACD;aACD;SACD;aAAM;YACN,IAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,sBAAsB,CAAC,CAAC;YACjF,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,OAAO,MAAM,CAAC;aACd;YAED,IAAM,QAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC7B,IAAI,QAAM,IAAI,IAAI,EAAE;gBACnB,IAAM,QAAQ,GAAG,QAAM,CAAC,QAAQ,CAAC;gBACjC,IAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvC,IAAI,CAAC,IAAI,KAAK,EAAE;oBACf,IAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;oBACvC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAM,CAAC,EAAE;wBAChC,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,EAAE,CAAC,EAAE;4BAChD,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;4BACzD,IAAI,KAAK,IAAI,IAAI,EAAE;gCAClB,OAAO,KAAK,CAAC;6BACb;yBACD;wBACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAM,EAAE,IAAI,CAAC,EAAE;4BACpC,IAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;4BAC1D,IAAI,KAAK,IAAI,IAAI,EAAE;gCAClB,OAAO,KAAK,CAAC;6BACb;yBACD;wBACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE;4BAChC,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;4BACzD,IAAI,KAAK,IAAI,IAAI,EAAE;gCAClB,OAAO,KAAK,CAAC;6BACb;yBACD;qBACD;yBAAM;wBACN,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;4BACpC,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;4BACzD,IAAI,KAAK,IAAI,IAAI,EAAE;gCAClB,OAAO,KAAK,CAAC;6BACb;yBACD;wBACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAM,EAAE,IAAI,CAAC,EAAE;4BACpC,IAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;4BAC1D,IAAI,KAAK,IAAI,IAAI,EAAE;gCAClB,OAAO,KAAK,CAAC;6BACb;yBACD;wBACD,KAAK,IAAI,CAAC,GAAG,cAAc,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;4BACjD,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;4BACzD,IAAI,KAAK,IAAI,IAAI,EAAE;gCAClB,OAAO,KAAK,CAAC;6BACb;yBACD;qBACD;iBACD;aACD;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,uCAAQ,GAAlB,UACC,MAAyB,EACzB,cAAuB,EACvB,sBAA+B;QAE/B,gBAAgB;QAChB,IAAI,cAAc,EAAE;YACnB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;gBAC7B,OAAO,MAAM,CAAC;aACd;SACD;QAED,kBAAkB;QAClB,IAAI,sBAAsB,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE;YAClF,IAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YACjC,IAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;YACvC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;gBAChC,KAAK,IAAI,CAAC,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;oBAC7C,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBACrD,IAAI,KAAK,IAAI,IAAI,EAAE;wBAClB,OAAO,KAAK,CAAC;qBACb;iBACD;aACD;iBAAM;gBACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,EAAE,CAAC,EAAE;oBACxC,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBACrD,IAAI,KAAK,IAAI,IAAI,EAAE;wBAClB,OAAO,KAAK,CAAC;qBACb;iBACD;aACD;SACD;QAED,gBAAgB;QAChB,OAAO,IAAI,CAAC;IACb,CAAC;IAES,2CAAY,GAAtB,UACC,MAAyB,EACzB,cAAuB,EACvB,sBAA+B;QAE/B,kBAAkB;QAClB,IAAI,sBAAsB,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE;YAClF,IAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YACjC,IAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;YACvC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;gBAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,EAAE,CAAC,EAAE;oBACxC,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBACzD,IAAI,KAAK,IAAI,IAAI,EAAE;wBAClB,OAAO,KAAK,CAAC;qBACb;iBACD;aACD;iBAAM;gBACN,KAAK,IAAI,CAAC,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;oBAC7C,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBACzD,IAAI,KAAK,IAAI,IAAI,EAAE;wBAClB,OAAO,KAAK,CAAC;qBACb;iBACD;aACD;SACD;QAED,gBAAgB;QAChB,IAAI,cAAc,EAAE;YACnB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;gBAC7B,OAAO,MAAM,CAAC;aACd;SACD;QAED,gBAAgB;QAChB,OAAO,IAAI,CAAC;IACb,CAAC;IAES,0CAAW,GAArB,UAAsB,MAAW;QAChC,OAAO,CACN,MAAM,IAAI,IAAI;YACd,OAAO,IAAI,MAAM;YACjB,MAAM,CAAC,KAAK,CAAC,SAAS;YACtB,MAAM,CAAC,KAAK,CAAC,WAAW;YACxB,MAAM,CAAC,OAAO,CACd,CAAC;IACH,CAAC;IAES,mDAAoB,GAA9B,UAA+B,MAAW;QACzC,OAAO,MAAM,IAAI,IAAI,IAAI,UAAU,IAAI,MAAM,CAAC;IAC/C,CAAC;IAES,0CAAW,GAArB,UAAsB,MAAW,EAAE,IAAa;QAC/C,IAAI,MAAM,KAAK,IAAI,EAAE;YACpB,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,OAAO,CAAC;IAC1F,CAAC;IAES,6CAAc,GAAxB,UAAyB,MAAW;QACnC,OAAO,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;IAC3E,CAAC;IACF,2BAAC;AAAD,CAAC,AAjRD,IAiRC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n\tDControllerFocus,\n\tDFocusable,\n\tDFocusableContainer,\n\tDFocusableMightBe\n} from \"./d-controller-focus\";\n\nexport class DControllerFocusImpl implements DControllerFocus {\n\tprivate _focused: DFocusable | null = null;\n\n\tfocus(focusable: DFocusable | null): DFocusable | null {\n\t\tconst previous = this._focused;\n\t\tif (previous !== focusable) {\n\t\t\tif (previous != null) {\n\t\t\t\tprevious.state.isFocused = false;\n\t\t\t}\n\n\t\t\tthis._focused = focusable;\n\t\t\tif (this.isFocusable(focusable)) {\n\t\t\t\tfocusable.state.isFocused = true;\n\t\t\t}\n\t\t\treturn previous;\n\t\t}\n\t\treturn null;\n\t}\n\n\tblur(focusable: DFocusable | null): DFocusable | null {\n\t\tif (focusable != null && this._focused === focusable) {\n\t\t\tthis._focused = null;\n\t\t\tfocusable.state.isFocused = false;\n\t\t\treturn focusable;\n\t\t}\n\t\treturn null;\n\t}\n\n\tclear(): DFocusable | null {\n\t\treturn this.focus(null);\n\t}\n\n\tset(focusable: DFocusable | null, isFocused: boolean): DFocusable | null {\n\t\tif (isFocused) {\n\t\t\treturn this.focus(focusable);\n\t\t} else {\n\t\t\treturn this.blur(focusable);\n\t\t}\n\t}\n\n\tget(): DFocusable | null {\n\t\treturn this._focused;\n\t}\n\n\tfindParent(mightBeFocusable: DFocusableMightBe | null): DFocusable | null {\n\t\tlet current: DFocusableMightBe | DFocusableContainer | null = mightBeFocusable;\n\t\twhile (current != null) {\n\t\t\tif (this.isFocusable(current)) {\n\t\t\t\treturn current;\n\t\t\t} else {\n\t\t\t\tcurrent = current.parent;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tfind(\n\t\ttarget: DFocusableMightBe,\n\t\tincludesTarget: boolean,\n\t\tincludesTargetChildren: boolean,\n\t\tdirection: boolean,\n\t\troot?: unknown\n\t): DFocusable | null {\n\t\tif (direction) {\n\t\t\tconst result = this.findNext(target, includesTarget, includesTargetChildren);\n\t\t\tif (result != null) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tif (this.isFocusRoot(target, root)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tconst parent = target.parent;\n\t\t\tif (parent != null) {\n\t\t\t\tconst children = parent.children;\n\t\t\t\tconst index = children.indexOf(target);\n\t\t\t\tif (0 <= index) {\n\t\t\t\t\tconst childrenLength = children.length;\n\t\t\t\t\tif (this.isFocusReverse(parent)) {\n\t\t\t\t\t\tfor (let i = index - 1; 0 <= i; --i) {\n\t\t\t\t\t\t\tconst found = this.findNext(children[i], true, true);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!this.isFocusRoot(parent, root)) {\n\t\t\t\t\t\t\tconst found = this.find(parent, false, false, true, root);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (let i = childrenLength - 1; index <= i; --i) {\n\t\t\t\t\t\t\tconst found = this.findNext(children[i], true, true);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (let i = index + 1; i < childrenLength; ++i) {\n\t\t\t\t\t\t\tconst found = this.findNext(children[i], true, true);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!this.isFocusRoot(parent, root)) {\n\t\t\t\t\t\t\tconst found = this.find(parent, false, false, true, root);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (let i = 0; i <= index; ++i) {\n\t\t\t\t\t\t\tconst found = this.findNext(children[i], true, true);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconst result = this.findPrevious(target, includesTarget, includesTargetChildren);\n\t\t\tif (result != null) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tconst parent = target.parent;\n\t\t\tif (parent != null) {\n\t\t\t\tconst children = parent.children;\n\t\t\t\tconst index = children.indexOf(target);\n\t\t\t\tif (0 <= index) {\n\t\t\t\t\tconst childrenLength = children.length;\n\t\t\t\t\tif (this.isFocusReverse(parent)) {\n\t\t\t\t\t\tfor (let i = index + 1; i < childrenLength; ++i) {\n\t\t\t\t\t\t\tconst found = this.findPrevious(children[i], true, true);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!this.isFocusRoot(parent, root)) {\n\t\t\t\t\t\t\tconst found = this.find(parent, true, false, false, root);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (let i = 0; i <= index; ++i) {\n\t\t\t\t\t\t\tconst found = this.findPrevious(children[i], true, true);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (let i = index - 1; 0 <= i; --i) {\n\t\t\t\t\t\t\tconst found = this.findPrevious(children[i], true, true);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!this.isFocusRoot(parent, root)) {\n\t\t\t\t\t\t\tconst found = this.find(parent, true, false, false, root);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (let i = childrenLength - 1; index <= i; --i) {\n\t\t\t\t\t\t\tconst found = this.findPrevious(children[i], true, true);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected findNext(\n\t\ttarget: DFocusableMightBe,\n\t\tincludesTarget: boolean,\n\t\tincludesTargetChildren: boolean\n\t): DFocusable | null {\n\t\t// Target itself\n\t\tif (includesTarget) {\n\t\t\tif (this.isFocusable(target)) {\n\t\t\t\treturn target;\n\t\t\t}\n\t\t}\n\n\t\t// Target children\n\t\tif (includesTargetChildren && this.isFocusableContainer(target) && target.visible) {\n\t\t\tconst children = target.children;\n\t\t\tconst childrenLength = children.length;\n\t\t\tif (this.isFocusReverse(target)) {\n\t\t\t\tfor (let i = childrenLength - 1; 0 <= i; --i) {\n\t\t\t\t\tconst found = this.findNext(children[i], true, true);\n\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\treturn found;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = 0; i < childrenLength; ++i) {\n\t\t\t\t\tconst found = this.findNext(children[i], true, true);\n\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\treturn found;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Found nothing\n\t\treturn null;\n\t}\n\n\tprotected findPrevious(\n\t\ttarget: DFocusableMightBe,\n\t\tincludesTarget: boolean,\n\t\tincludesTargetChildren: boolean\n\t): DFocusable | null {\n\t\t// Target children\n\t\tif (includesTargetChildren && this.isFocusableContainer(target) && target.visible) {\n\t\t\tconst children = target.children;\n\t\t\tconst childrenLength = children.length;\n\t\t\tif (this.isFocusReverse(target)) {\n\t\t\t\tfor (let i = 0; i < childrenLength; ++i) {\n\t\t\t\t\tconst found = this.findPrevious(children[i], true, true);\n\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\treturn found;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = childrenLength - 1; 0 <= i; --i) {\n\t\t\t\t\tconst found = this.findPrevious(children[i], true, true);\n\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\treturn found;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Target itself\n\t\tif (includesTarget) {\n\t\t\tif (this.isFocusable(target)) {\n\t\t\t\treturn target;\n\t\t\t}\n\t\t}\n\n\t\t// Found nothing\n\t\treturn null;\n\t}\n\n\tprotected isFocusable(target: any): target is DFocusable {\n\t\treturn (\n\t\t\ttarget != null &&\n\t\t\t\"state\" in target &&\n\t\t\ttarget.state.inEnabled &&\n\t\t\ttarget.state.isFocusable &&\n\t\t\ttarget.visible\n\t\t);\n\t}\n\n\tprotected isFocusableContainer(target: any): target is DFocusableContainer {\n\t\treturn target != null && \"children\" in target;\n\t}\n\n\tprotected isFocusRoot(target: any, root: unknown): target is DFocusable {\n\t\tif (target === root) {\n\t\t\treturn true;\n\t\t}\n\t\treturn target != null && \"state\" in target && target.state.isFocusRoot && target.visible;\n\t}\n\n\tprotected isFocusReverse(target: any): boolean {\n\t\treturn target != null && \"state\" in target && target.state.isFocusReverse;\n\t}\n}\n"]}
1
+ {"version":3,"file":"d-controller-focus-impl.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-controller-focus-impl.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { utils } from \"pixi.js\";\nimport {\n\tDControllerFocus,\n\tDFocusable,\n\tDFocusableContainer,\n\tDFocusableMightBe\n} from \"./d-controller-focus\";\n\nexport class DControllerFocusImpl extends utils.EventEmitter implements DControllerFocus {\n\tprivate _focused: DFocusable | null = null;\n\n\tfocus(focusable: DFocusable | null): DFocusable | null {\n\t\tconst previous = this._focused;\n\t\tif (previous !== focusable) {\n\t\t\tif (previous != null) {\n\t\t\t\tprevious.state.isFocused = false;\n\t\t\t}\n\n\t\t\tthis._focused = focusable;\n\t\t\tif (this.isFocusable(focusable)) {\n\t\t\t\tfocusable.state.isFocused = true;\n\t\t\t}\n\n\t\t\tthis.emit(\"change\", focusable, previous, this);\n\n\t\t\treturn previous;\n\t\t}\n\t\treturn null;\n\t}\n\n\tblur(focusable: DFocusable | null): DFocusable | null {\n\t\tif (focusable != null && this._focused === focusable) {\n\t\t\tthis._focused = null;\n\t\t\tfocusable.state.isFocused = false;\n\t\t\tthis.emit(\"change\", null, focusable, this);\n\t\t\treturn focusable;\n\t\t}\n\t\treturn null;\n\t}\n\n\tclear(): DFocusable | null {\n\t\treturn this.focus(null);\n\t}\n\n\tset(focusable: DFocusable | null, isFocused: boolean): DFocusable | null {\n\t\tif (isFocused) {\n\t\t\treturn this.focus(focusable);\n\t\t} else {\n\t\t\treturn this.blur(focusable);\n\t\t}\n\t}\n\n\tget(): DFocusable | null {\n\t\treturn this._focused;\n\t}\n\n\tfindParent(mightBeFocusable: DFocusableMightBe | null): DFocusable | null {\n\t\tlet current: DFocusableMightBe | DFocusableContainer | null = mightBeFocusable;\n\t\twhile (current != null) {\n\t\t\tif (this.isFocusable(current)) {\n\t\t\t\treturn current;\n\t\t\t} else {\n\t\t\t\tcurrent = current.parent;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tfind(\n\t\ttarget: DFocusableMightBe,\n\t\tincludesTarget: boolean,\n\t\tincludesTargetChildren: boolean,\n\t\tdirection: boolean,\n\t\troot?: unknown\n\t): DFocusable | null {\n\t\tif (direction) {\n\t\t\tconst result = this.findNext(target, includesTarget, includesTargetChildren);\n\t\t\tif (result != null) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tif (this.isFocusRoot(target, root)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tconst parent = target.parent;\n\t\t\tif (parent != null) {\n\t\t\t\tconst children = parent.children;\n\t\t\t\tconst index = children.indexOf(target);\n\t\t\t\tif (0 <= index) {\n\t\t\t\t\tconst childrenLength = children.length;\n\t\t\t\t\tif (this.isFocusReverse(parent)) {\n\t\t\t\t\t\tfor (let i = index - 1; 0 <= i; --i) {\n\t\t\t\t\t\t\tconst found = this.findNext(children[i], true, true);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!this.isFocusRoot(parent, root)) {\n\t\t\t\t\t\t\tconst found = this.find(parent, false, false, true, root);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (let i = childrenLength - 1; index <= i; --i) {\n\t\t\t\t\t\t\tconst found = this.findNext(children[i], true, true);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (let i = index + 1; i < childrenLength; ++i) {\n\t\t\t\t\t\t\tconst found = this.findNext(children[i], true, true);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!this.isFocusRoot(parent, root)) {\n\t\t\t\t\t\t\tconst found = this.find(parent, false, false, true, root);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (let i = 0; i <= index; ++i) {\n\t\t\t\t\t\t\tconst found = this.findNext(children[i], true, true);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconst result = this.findPrevious(target, includesTarget, includesTargetChildren);\n\t\t\tif (result != null) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tconst parent = target.parent;\n\t\t\tif (parent != null) {\n\t\t\t\tconst children = parent.children;\n\t\t\t\tconst index = children.indexOf(target);\n\t\t\t\tif (0 <= index) {\n\t\t\t\t\tconst childrenLength = children.length;\n\t\t\t\t\tif (this.isFocusReverse(parent)) {\n\t\t\t\t\t\tfor (let i = index + 1; i < childrenLength; ++i) {\n\t\t\t\t\t\t\tconst found = this.findPrevious(children[i], true, true);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!this.isFocusRoot(parent, root)) {\n\t\t\t\t\t\t\tconst found = this.find(parent, true, false, false, root);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (let i = 0; i <= index; ++i) {\n\t\t\t\t\t\t\tconst found = this.findPrevious(children[i], true, true);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (let i = index - 1; 0 <= i; --i) {\n\t\t\t\t\t\t\tconst found = this.findPrevious(children[i], true, true);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!this.isFocusRoot(parent, root)) {\n\t\t\t\t\t\t\tconst found = this.find(parent, true, false, false, root);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (let i = childrenLength - 1; index <= i; --i) {\n\t\t\t\t\t\t\tconst found = this.findPrevious(children[i], true, true);\n\t\t\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected findNext(\n\t\ttarget: DFocusableMightBe,\n\t\tincludesTarget: boolean,\n\t\tincludesTargetChildren: boolean\n\t): DFocusable | null {\n\t\t// Target itself\n\t\tif (includesTarget) {\n\t\t\tif (this.isFocusable(target)) {\n\t\t\t\treturn target;\n\t\t\t}\n\t\t}\n\n\t\t// Target children\n\t\tif (includesTargetChildren && this.isFocusableContainer(target) && target.visible) {\n\t\t\tconst children = target.children;\n\t\t\tconst childrenLength = children.length;\n\t\t\tif (this.isFocusReverse(target)) {\n\t\t\t\tfor (let i = childrenLength - 1; 0 <= i; --i) {\n\t\t\t\t\tconst found = this.findNext(children[i], true, true);\n\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\treturn found;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = 0; i < childrenLength; ++i) {\n\t\t\t\t\tconst found = this.findNext(children[i], true, true);\n\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\treturn found;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Found nothing\n\t\treturn null;\n\t}\n\n\tprotected findPrevious(\n\t\ttarget: DFocusableMightBe,\n\t\tincludesTarget: boolean,\n\t\tincludesTargetChildren: boolean\n\t): DFocusable | null {\n\t\t// Target children\n\t\tif (includesTargetChildren && this.isFocusableContainer(target) && target.visible) {\n\t\t\tconst children = target.children;\n\t\t\tconst childrenLength = children.length;\n\t\t\tif (this.isFocusReverse(target)) {\n\t\t\t\tfor (let i = 0; i < childrenLength; ++i) {\n\t\t\t\t\tconst found = this.findPrevious(children[i], true, true);\n\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\treturn found;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = childrenLength - 1; 0 <= i; --i) {\n\t\t\t\t\tconst found = this.findPrevious(children[i], true, true);\n\t\t\t\t\tif (found != null) {\n\t\t\t\t\t\treturn found;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Target itself\n\t\tif (includesTarget) {\n\t\t\tif (this.isFocusable(target)) {\n\t\t\t\treturn target;\n\t\t\t}\n\t\t}\n\n\t\t// Found nothing\n\t\treturn null;\n\t}\n\n\tprotected isFocusable(target: any): target is DFocusable {\n\t\treturn (\n\t\t\ttarget != null &&\n\t\t\t\"state\" in target &&\n\t\t\ttarget.state.inEnabled &&\n\t\t\ttarget.state.isFocusable &&\n\t\t\ttarget.visible\n\t\t);\n\t}\n\n\tprotected isFocusableContainer(target: any): target is DFocusableContainer {\n\t\treturn target != null && \"children\" in target;\n\t}\n\n\tprotected isFocusRoot(target: any, root: unknown): target is DFocusable {\n\t\tif (target === root) {\n\t\t\treturn true;\n\t\t}\n\t\treturn target != null && \"state\" in target && target.state.isFocusRoot && target.visible;\n\t}\n\n\tprotected isFocusReverse(target: any): boolean {\n\t\treturn target != null && \"state\" in target && target.state.isFocusReverse;\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"d-controller-focus.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-controller-focus.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DBaseStateSet } from \"./d-base-state-set\";\n\nexport interface DFocusableMightBe {\n\tparent: DFocusableContainer | null;\n\tvisible: boolean;\n}\n\nexport interface DFocusableContainer extends DFocusableMightBe {\n\tchildren: DFocusableMightBe[];\n}\n\nexport interface DFocusable extends DFocusableMightBe {\n\treadonly state: DBaseStateSet;\n}\n\nexport interface DControllerFocus {\n\tfocus(focusable: DFocusable | null): DFocusable | null;\n\tblur(focusable: DFocusable): DFocusable | null;\n\tclear(): DFocusable | null;\n\n\tset(focusable: DFocusable | null, isFocused: boolean): DFocusable | null;\n\tget(): DFocusable | null;\n\n\t/**\n\t * Searches a focusable and returns a firstly-found focusable.\n\t * If no focusable is found, returns null.\n\t * The search starts from the given target in the depth-first manner.\n\t * If the root is given, the search will be limited to the root's children.\n\t * The root itself will not be checked.\n\t * This method assumes the root is the one of the parents of the given target.\n\t *\n\t * @param target a target where a search starts at\n\t * @param includesTarget true to check the target itself\n\t * @param includesTargetChildren true to check the target's children\n\t * @param direction true to search in the descending order\n\t * @param root a root of a search\n\t */\n\tfind(\n\t\ttarget: DFocusableMightBe,\n\t\tincludesTarget: boolean,\n\t\tincludesTargetChildren: boolean,\n\t\tdirection: boolean,\n\t\troot?: unknown\n\t): DFocusable | null;\n\n\t/**\n\t * Returns the closest focusable parent of the specified target.\n\t * If the specified target is focusable, returns the specified target.\n\t *\n\t * @param mightBeFocusable the node a search starts from\n\t */\n\tfindParent(mightBeFocusable: DFocusableMightBe | null): DFocusable | null;\n}\n"]}
1
+ {"version":3,"file":"d-controller-focus.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-controller-focus.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { utils } from \"pixi.js\";\nimport { DBaseStateSet } from \"./d-base-state-set\";\n\nexport interface DFocusableMightBe {\n\tparent: DFocusableContainer | null;\n\tvisible: boolean;\n}\n\nexport interface DFocusableContainer extends DFocusableMightBe {\n\tchildren: DFocusableMightBe[];\n}\n\nexport interface DFocusable extends DFocusableMightBe {\n\treadonly state: DBaseStateSet;\n}\n\nexport interface DControllerFocus extends utils.EventEmitter {\n\tfocus(focusable: DFocusable | null): DFocusable | null;\n\tblur(focusable: DFocusable): DFocusable | null;\n\tclear(): DFocusable | null;\n\n\tset(focusable: DFocusable | null, isFocused: boolean): DFocusable | null;\n\tget(): DFocusable | null;\n\n\t/**\n\t * Searches a focusable and returns a firstly-found focusable.\n\t * If no focusable is found, returns null.\n\t * The search starts from the given target in the depth-first manner.\n\t * If the root is given, the search will be limited to the root's children.\n\t * The root itself will not be checked.\n\t * This method assumes the root is the one of the parents of the given target.\n\t *\n\t * @param target a target where a search starts at\n\t * @param includesTarget true to check the target itself\n\t * @param includesTargetChildren true to check the target's children\n\t * @param direction true to search in the descending order\n\t * @param root a root of a search\n\t */\n\tfind(\n\t\ttarget: DFocusableMightBe,\n\t\tincludesTarget: boolean,\n\t\tincludesTargetChildren: boolean,\n\t\tdirection: boolean,\n\t\troot?: unknown\n\t): DFocusable | null;\n\n\t/**\n\t * Returns the closest focusable parent of the specified target.\n\t * If the specified target is focusable, returns the specified target.\n\t *\n\t * @param mightBeFocusable the node a search starts from\n\t */\n\tfindParent(mightBeFocusable: DFocusableMightBe | null): DFocusable | null;\n}\n"]}
@@ -0,0 +1,66 @@
1
+ /*
2
+ * Copyright (C) 2019 Toshiba Corporation
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { __extends } from "tslib";
6
+ import { utils } from "pixi.js";
7
+ import { UtilKeyboardEvent } from "./util/util-keyboard-event";
8
+ var DControllerKeyboardImpl = /** @class */ (function (_super) {
9
+ __extends(DControllerKeyboardImpl, _super);
10
+ function DControllerKeyboardImpl() {
11
+ return _super !== null && _super.apply(this, arguments) || this;
12
+ }
13
+ DControllerKeyboardImpl.prototype.init = function (element, stage, focusController) {
14
+ var _this = this;
15
+ element.addEventListener("keydown", function (e) {
16
+ _this.emit("keydown", e);
17
+ var focused = focusController.get();
18
+ if (focused != null) {
19
+ var current = focused;
20
+ while (current != null) {
21
+ if (_this.hasOnKeyDown(current)) {
22
+ if (current.onKeyDown(e)) {
23
+ return;
24
+ }
25
+ }
26
+ current = current.parent;
27
+ }
28
+ }
29
+ if (UtilKeyboardEvent.isFocusKey(e)) {
30
+ var direction = UtilKeyboardEvent.getFocusDirection(e);
31
+ var next = focused != null
32
+ ? focusController.find(focused, false, focused.state.isFocusRoot || direction, direction)
33
+ : focusController.find(stage, false, true, direction);
34
+ if (next != null) {
35
+ focusController.focus(next);
36
+ e.preventDefault();
37
+ e.stopImmediatePropagation();
38
+ }
39
+ }
40
+ });
41
+ element.addEventListener("keyup", function (e) {
42
+ _this.emit("keyup", e);
43
+ var focused = focusController.get();
44
+ if (focused != null) {
45
+ var current = focused;
46
+ while (current != null) {
47
+ if (_this.hasOnKeyUp(current)) {
48
+ if (current.onKeyUp(e)) {
49
+ return;
50
+ }
51
+ }
52
+ current = current.parent;
53
+ }
54
+ }
55
+ });
56
+ };
57
+ DControllerKeyboardImpl.prototype.hasOnKeyDown = function (target) {
58
+ return "onKeyDown" in target;
59
+ };
60
+ DControllerKeyboardImpl.prototype.hasOnKeyUp = function (target) {
61
+ return "onKeyUp" in target;
62
+ };
63
+ return DControllerKeyboardImpl;
64
+ }(utils.EventEmitter));
65
+ export { DControllerKeyboardImpl };
66
+ //# sourceMappingURL=d-controller-keyboard-impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"d-controller-keyboard-impl.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-controller-keyboard-impl.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAa,KAAK,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D;IAA6C,2CAAkB;IAA/D;;IA8DA,CAAC;IA7DA,sCAAI,GAAJ,UAAK,OAAoB,EAAE,KAAgB,EAAE,eAAiC;QAA9E,iBAoDC;QAnDA,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAC,CAAgB;YACpD,KAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAExB,IAAM,OAAO,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC;YACtC,IAAI,OAAO,IAAI,IAAI,EAAE;gBACpB,IAAI,OAAO,GAA4C,OAAO,CAAC;gBAC/D,OAAO,OAAO,IAAI,IAAI,EAAE;oBACvB,IAAI,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;wBAC/B,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;4BACzB,OAAO;yBACP;qBACD;oBACD,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;iBACzB;aACD;YAED,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;gBACpC,IAAM,SAAS,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBACzD,IAAM,IAAI,GACT,OAAO,IAAI,IAAI;oBACd,CAAC,CAAC,eAAe,CAAC,IAAI,CACpB,OAAO,EACP,KAAK,EACL,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,SAAS,EACtC,SAAS,CACR;oBACH,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;gBACxD,IAAI,IAAI,IAAI,IAAI,EAAE;oBACjB,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC5B,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,CAAC,CAAC,wBAAwB,EAAE,CAAC;iBAC7B;aACD;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAC,CAAgB;YAClD,KAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAEtB,IAAM,OAAO,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC;YACtC,IAAI,OAAO,IAAI,IAAI,EAAE;gBACpB,IAAI,OAAO,GAA4C,OAAO,CAAC;gBAC/D,OAAO,OAAO,IAAI,IAAI,EAAE;oBACvB,IAAI,KAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;wBAC7B,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BACvB,OAAO;yBACP;qBACD;oBACD,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;iBACzB;aACD;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAES,8CAAY,GAAtB,UAAuB,MAAW;QACjC,OAAO,WAAW,IAAI,MAAM,CAAC;IAC9B,CAAC;IAES,4CAAU,GAApB,UAAqB,MAAW;QAC/B,OAAO,SAAS,IAAI,MAAM,CAAC;IAC5B,CAAC;IACF,8BAAC;AAAD,CAAC,AA9DD,CAA6C,KAAK,CAAC,YAAY,GA8D9D","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Container, utils } from \"pixi.js\";\nimport { DControllerFocus, DFocusable, DFocusableContainer } from \"./d-controller-focus\";\nimport { UtilKeyboardEvent } from \"./util/util-keyboard-event\";\n\nexport class DControllerKeyboardImpl extends utils.EventEmitter {\n\tinit(element: HTMLElement, stage: Container, focusController: DControllerFocus): void {\n\t\telement.addEventListener(\"keydown\", (e: KeyboardEvent): void => {\n\t\t\tthis.emit(\"keydown\", e);\n\n\t\t\tconst focused = focusController.get();\n\t\t\tif (focused != null) {\n\t\t\t\tlet current: DFocusable | DFocusableContainer | null = focused;\n\t\t\t\twhile (current != null) {\n\t\t\t\t\tif (this.hasOnKeyDown(current)) {\n\t\t\t\t\t\tif (current.onKeyDown(e)) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcurrent = current.parent;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (UtilKeyboardEvent.isFocusKey(e)) {\n\t\t\t\tconst direction = UtilKeyboardEvent.getFocusDirection(e);\n\t\t\t\tconst next =\n\t\t\t\t\tfocused != null\n\t\t\t\t\t\t? focusController.find(\n\t\t\t\t\t\t\t\tfocused,\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\tfocused.state.isFocusRoot || direction,\n\t\t\t\t\t\t\t\tdirection\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: focusController.find(stage, false, true, direction);\n\t\t\t\tif (next != null) {\n\t\t\t\t\tfocusController.focus(next);\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopImmediatePropagation();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\telement.addEventListener(\"keyup\", (e: KeyboardEvent): void => {\n\t\t\tthis.emit(\"keyup\", e);\n\n\t\t\tconst focused = focusController.get();\n\t\t\tif (focused != null) {\n\t\t\t\tlet current: DFocusable | DFocusableContainer | null = focused;\n\t\t\t\twhile (current != null) {\n\t\t\t\t\tif (this.hasOnKeyUp(current)) {\n\t\t\t\t\t\tif (current.onKeyUp(e)) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcurrent = current.parent;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected hasOnKeyDown(target: any): target is { onKeyDown(e: KeyboardEvent): boolean } {\n\t\treturn \"onKeyDown\" in target;\n\t}\n\n\tprotected hasOnKeyUp(target: any): target is { onKeyUp(e: KeyboardEvent): boolean } {\n\t\treturn \"onKeyUp\" in target;\n\t}\n}\n"]}
@@ -2,65 +2,5 @@
2
2
  * Copyright (C) 2019 Toshiba Corporation
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
- import { __extends } from "tslib";
6
- import { utils } from "pixi.js";
7
- import { UtilKeyboardEvent } from "./util/util-keyboard-event";
8
- var DControllerKeyboard = /** @class */ (function (_super) {
9
- __extends(DControllerKeyboard, _super);
10
- function DControllerKeyboard() {
11
- return _super !== null && _super.apply(this, arguments) || this;
12
- }
13
- DControllerKeyboard.prototype.init = function (element, stage, focusController) {
14
- var _this = this;
15
- element.addEventListener("keydown", function (e) {
16
- _this.emit("keydown", e);
17
- var focused = focusController.get();
18
- if (focused != null) {
19
- var current = focused;
20
- while (current != null) {
21
- if (_this.hasOnKeyDown(current)) {
22
- if (current.onKeyDown(e)) {
23
- return;
24
- }
25
- }
26
- current = current.parent;
27
- }
28
- }
29
- if (UtilKeyboardEvent.isFocusKey(e)) {
30
- var direction = UtilKeyboardEvent.getFocusDirection(e);
31
- var next = focused != null
32
- ? focusController.find(focused, false, focused.state.isFocusRoot || direction, direction)
33
- : focusController.find(stage, false, true, direction);
34
- if (next != null) {
35
- focusController.focus(next);
36
- e.preventDefault();
37
- e.stopImmediatePropagation();
38
- }
39
- }
40
- });
41
- element.addEventListener("keyup", function (e) {
42
- _this.emit("keyup", e);
43
- var focused = focusController.get();
44
- if (focused != null) {
45
- var current = focused;
46
- while (current != null) {
47
- if (_this.hasOnKeyUp(current)) {
48
- if (current.onKeyUp(e)) {
49
- return;
50
- }
51
- }
52
- current = current.parent;
53
- }
54
- }
55
- });
56
- };
57
- DControllerKeyboard.prototype.hasOnKeyDown = function (target) {
58
- return "onKeyDown" in target;
59
- };
60
- DControllerKeyboard.prototype.hasOnKeyUp = function (target) {
61
- return "onKeyUp" in target;
62
- };
63
- return DControllerKeyboard;
64
- }(utils.EventEmitter));
65
- export { DControllerKeyboard };
5
+ export {};
66
6
  //# sourceMappingURL=d-controller-keyboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"d-controller-keyboard.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-controller-keyboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAa,KAAK,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D;IAAyC,uCAAkB;IAA3D;;IA8DA,CAAC;IA7DA,kCAAI,GAAJ,UAAK,OAAoB,EAAE,KAAgB,EAAE,eAAiC;QAA9E,iBAoDC;QAnDA,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAC,CAAgB;YACpD,KAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAExB,IAAM,OAAO,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC;YACtC,IAAI,OAAO,IAAI,IAAI,EAAE;gBACpB,IAAI,OAAO,GAA4C,OAAO,CAAC;gBAC/D,OAAO,OAAO,IAAI,IAAI,EAAE;oBACvB,IAAI,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;wBAC/B,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;4BACzB,OAAO;yBACP;qBACD;oBACD,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;iBACzB;aACD;YAED,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;gBACpC,IAAM,SAAS,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBACzD,IAAM,IAAI,GACT,OAAO,IAAI,IAAI;oBACd,CAAC,CAAC,eAAe,CAAC,IAAI,CACpB,OAAO,EACP,KAAK,EACL,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,SAAS,EACtC,SAAS,CACR;oBACH,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;gBACxD,IAAI,IAAI,IAAI,IAAI,EAAE;oBACjB,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC5B,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,CAAC,CAAC,wBAAwB,EAAE,CAAC;iBAC7B;aACD;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAC,CAAgB;YAClD,KAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAEtB,IAAM,OAAO,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC;YACtC,IAAI,OAAO,IAAI,IAAI,EAAE;gBACpB,IAAI,OAAO,GAA4C,OAAO,CAAC;gBAC/D,OAAO,OAAO,IAAI,IAAI,EAAE;oBACvB,IAAI,KAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;wBAC7B,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BACvB,OAAO;yBACP;qBACD;oBACD,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;iBACzB;aACD;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAES,0CAAY,GAAtB,UAAuB,MAAW;QACjC,OAAO,WAAW,IAAI,MAAM,CAAC;IAC9B,CAAC;IAES,wCAAU,GAApB,UAAqB,MAAW;QAC/B,OAAO,SAAS,IAAI,MAAM,CAAC;IAC5B,CAAC;IACF,0BAAC;AAAD,CAAC,AA9DD,CAAyC,KAAK,CAAC,YAAY,GA8D1D","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Container, utils } from \"pixi.js\";\nimport { DControllerFocus, DFocusable, DFocusableContainer } from \"./d-controller-focus\";\nimport { UtilKeyboardEvent } from \"./util/util-keyboard-event\";\n\nexport class DControllerKeyboard extends utils.EventEmitter {\n\tinit(element: HTMLElement, stage: Container, focusController: DControllerFocus): void {\n\t\telement.addEventListener(\"keydown\", (e: KeyboardEvent): void => {\n\t\t\tthis.emit(\"keydown\", e);\n\n\t\t\tconst focused = focusController.get();\n\t\t\tif (focused != null) {\n\t\t\t\tlet current: DFocusable | DFocusableContainer | null = focused;\n\t\t\t\twhile (current != null) {\n\t\t\t\t\tif (this.hasOnKeyDown(current)) {\n\t\t\t\t\t\tif (current.onKeyDown(e)) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcurrent = current.parent;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (UtilKeyboardEvent.isFocusKey(e)) {\n\t\t\t\tconst direction = UtilKeyboardEvent.getFocusDirection(e);\n\t\t\t\tconst next =\n\t\t\t\t\tfocused != null\n\t\t\t\t\t\t? focusController.find(\n\t\t\t\t\t\t\t\tfocused,\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\tfocused.state.isFocusRoot || direction,\n\t\t\t\t\t\t\t\tdirection\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: focusController.find(stage, false, true, direction);\n\t\t\t\tif (next != null) {\n\t\t\t\t\tfocusController.focus(next);\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopImmediatePropagation();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\telement.addEventListener(\"keyup\", (e: KeyboardEvent): void => {\n\t\t\tthis.emit(\"keyup\", e);\n\n\t\t\tconst focused = focusController.get();\n\t\t\tif (focused != null) {\n\t\t\t\tlet current: DFocusable | DFocusableContainer | null = focused;\n\t\t\t\twhile (current != null) {\n\t\t\t\t\tif (this.hasOnKeyUp(current)) {\n\t\t\t\t\t\tif (current.onKeyUp(e)) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcurrent = current.parent;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected hasOnKeyDown(target: any): target is { onKeyDown(e: KeyboardEvent): boolean } {\n\t\treturn \"onKeyDown\" in target;\n\t}\n\n\tprotected hasOnKeyUp(target: any): target is { onKeyUp(e: KeyboardEvent): boolean } {\n\t\treturn \"onKeyUp\" in target;\n\t}\n}\n"]}
1
+ {"version":3,"file":"d-controller-keyboard.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-controller-keyboard.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Container, utils } from \"pixi.js\";\nimport { DControllerFocus } from \"./d-controller-focus\";\n\nexport interface DControllerKeyboard extends utils.EventEmitter {\n\tinit(element: HTMLElement, stage: Container, focusController: DControllerFocus): void;\n}\n"]}
@@ -3,14 +3,14 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { DControllerCommandImpl } from "./d-controller-command-impl";
6
- import { DControllerKeyboard } from "./d-controller-keyboard";
6
+ import { DControllerKeyboardImpl } from "./d-controller-keyboard-impl";
7
7
  var DControllers = /** @class */ (function () {
8
8
  function DControllers() {
9
9
  }
10
10
  // Keyboard
11
11
  DControllers.getKeyboardController = function () {
12
12
  if (this.KEYBOARD == null) {
13
- this.KEYBOARD = new DControllerKeyboard();
13
+ this.KEYBOARD = new DControllerKeyboardImpl();
14
14
  }
15
15
  return this.KEYBOARD;
16
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"d-controllers.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-controllers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D;IAAA;IAgDA,CAAC;IA3CA,WAAW;IACJ,kCAAqB,GAA5B;QACC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;YAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;SAC1C;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAEM,kCAAqB,GAA5B,UAA6B,QAA6B;QACzD,IAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,MAAM,CAAC;IACf,CAAC;IAED,UAAU;IACH,iCAAoB,GAA3B;QACC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;YACzB,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAsB,EAAE,CAAC;SAC5C;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAEM,iCAAoB,GAA3B,UAA4B,QAA4B;QACvD,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QACxB,OAAO,MAAM,CAAC;IACf,CAAC;IAED,WAAW;IACJ,kCAAqB,GAA5B;QACC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;SACjC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAEM,kCAAqB,GAA5B,UACC,QAAuC;QAEvC,IAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,MAAM,CAAC;IACf,CAAC;IACF,mBAAC;AAAD,CAAC,AAhDD,IAgDC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DControllerCommand } from \"./d-controller-command\";\nimport { DControllerCommandImpl } from \"./d-controller-command-impl\";\nimport { DControllerDocument } from \"./d-controller-document\";\nimport { DControllerKeyboard } from \"./d-controller-keyboard\";\nimport { DDocument } from \"./d-document\";\n\nexport class DControllers {\n\tprotected static KEYBOARD: DControllerKeyboard | null;\n\tprotected static COMMAND: DControllerCommand | null;\n\tprotected static DOCUMENT: DControllerDocument<any> | null;\n\n\t// Keyboard\n\tstatic getKeyboardController(): DControllerKeyboard {\n\t\tif (this.KEYBOARD == null) {\n\t\t\tthis.KEYBOARD = new DControllerKeyboard();\n\t\t}\n\t\treturn this.KEYBOARD;\n\t}\n\n\tstatic setKeyboardController(instance: DControllerKeyboard): DControllerKeyboard | null {\n\t\tconst result = this.KEYBOARD;\n\t\tthis.KEYBOARD = instance;\n\t\treturn result;\n\t}\n\n\t// Command\n\tstatic getCommandController(): DControllerCommand {\n\t\tif (this.COMMAND == null) {\n\t\t\tthis.COMMAND = new DControllerCommandImpl();\n\t\t}\n\t\treturn this.COMMAND;\n\t}\n\n\tstatic setCommandController(instance: DControllerCommand): DControllerCommand | null {\n\t\tconst result = this.COMMAND;\n\t\tthis.COMMAND = instance;\n\t\treturn result;\n\t}\n\n\t// Document\n\tstatic getDocumentController<DOCUMENT extends DDocument>(): DControllerDocument<DOCUMENT> {\n\t\tif (this.DOCUMENT == null) {\n\t\t\tthrow new Error(\"Not supported\");\n\t\t}\n\t\treturn this.DOCUMENT;\n\t}\n\n\tstatic setDocumentController<DOCUMENT extends DDocument>(\n\t\tinstance: DControllerDocument<DOCUMENT>\n\t): DControllerDocument<DOCUMENT> | null {\n\t\tconst result = this.DOCUMENT;\n\t\tthis.DOCUMENT = instance;\n\t\treturn result;\n\t}\n}\n"]}
1
+ {"version":3,"file":"d-controllers.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-controllers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAGvE;IAAA;IAgDA,CAAC;IA3CA,WAAW;IACJ,kCAAqB,GAA5B;QACC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;YAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAuB,EAAE,CAAC;SAC9C;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAEM,kCAAqB,GAA5B,UAA6B,QAA6B;QACzD,IAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,MAAM,CAAC;IACf,CAAC;IAED,UAAU;IACH,iCAAoB,GAA3B;QACC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;YACzB,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAsB,EAAE,CAAC;SAC5C;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAEM,iCAAoB,GAA3B,UAA4B,QAA4B;QACvD,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QACxB,OAAO,MAAM,CAAC;IACf,CAAC;IAED,WAAW;IACJ,kCAAqB,GAA5B;QACC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;SACjC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAEM,kCAAqB,GAA5B,UACC,QAAuC;QAEvC,IAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,MAAM,CAAC;IACf,CAAC;IACF,mBAAC;AAAD,CAAC,AAhDD,IAgDC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DControllerCommand } from \"./d-controller-command\";\nimport { DControllerCommandImpl } from \"./d-controller-command-impl\";\nimport { DControllerDocument } from \"./d-controller-document\";\nimport { DControllerKeyboard } from \"./d-controller-keyboard\";\nimport { DControllerKeyboardImpl } from \"./d-controller-keyboard-impl\";\nimport { DDocument } from \"./d-document\";\n\nexport class DControllers {\n\tprotected static KEYBOARD: DControllerKeyboard | null;\n\tprotected static COMMAND: DControllerCommand | null;\n\tprotected static DOCUMENT: DControllerDocument<any> | null;\n\n\t// Keyboard\n\tstatic getKeyboardController(): DControllerKeyboard {\n\t\tif (this.KEYBOARD == null) {\n\t\t\tthis.KEYBOARD = new DControllerKeyboardImpl();\n\t\t}\n\t\treturn this.KEYBOARD;\n\t}\n\n\tstatic setKeyboardController(instance: DControllerKeyboard): DControllerKeyboard | null {\n\t\tconst result = this.KEYBOARD;\n\t\tthis.KEYBOARD = instance;\n\t\treturn result;\n\t}\n\n\t// Command\n\tstatic getCommandController(): DControllerCommand {\n\t\tif (this.COMMAND == null) {\n\t\t\tthis.COMMAND = new DControllerCommandImpl();\n\t\t}\n\t\treturn this.COMMAND;\n\t}\n\n\tstatic setCommandController(instance: DControllerCommand): DControllerCommand | null {\n\t\tconst result = this.COMMAND;\n\t\tthis.COMMAND = instance;\n\t\treturn result;\n\t}\n\n\t// Document\n\tstatic getDocumentController<DOCUMENT extends DDocument>(): DControllerDocument<DOCUMENT> {\n\t\tif (this.DOCUMENT == null) {\n\t\t\tthrow new Error(\"Not supported\");\n\t\t}\n\t\treturn this.DOCUMENT;\n\t}\n\n\tstatic setDocumentController<DOCUMENT extends DDocument>(\n\t\tinstance: DControllerDocument<DOCUMENT>\n\t): DControllerDocument<DOCUMENT> | null {\n\t\tconst result = this.DOCUMENT;\n\t\tthis.DOCUMENT = instance;\n\t\treturn result;\n\t}\n}\n"]}
@@ -192,6 +192,7 @@ export * from "./d-controller-command";
192
192
  export * from "./d-controller-document";
193
193
  export * from "./d-controller-focus-impl";
194
194
  export * from "./d-controller-focus";
195
+ export * from "./d-controller-keyboard-impl";
195
196
  export * from "./d-controller-keyboard";
196
197
  export * from "./d-controllers";
197
198
  export * from "./d-coordinate";