jsl-ui 9.28.3 → 9.28.4

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 (170) hide show
  1. package/lib/components/IntervalComponent.d.ts +17 -17
  2. package/lib/components/IntervalComponent.js +65 -65
  3. package/lib/components/auto-suggest/AutoSuggestComponent.d.ts +22 -22
  4. package/lib/components/auto-suggest/AutoSuggestComponent.js +47 -47
  5. package/lib/components/button/ButtonComponent.d.ts +18 -18
  6. package/lib/components/button/ButtonComponent.js +29 -29
  7. package/lib/components/checkbox/CheckBoxComponent.d.ts +28 -28
  8. package/lib/components/checkbox/CheckBoxComponent.js +81 -81
  9. package/lib/components/date/DateComponent.d.ts +32 -32
  10. package/lib/components/date/DateComponent.js +89 -89
  11. package/lib/components/date-range/DateRangeComponent.d.ts +35 -35
  12. package/lib/components/date-range/DateRangeComponent.js +121 -123
  13. package/lib/components/date-time/DateTimeComponent.d.ts +15 -15
  14. package/lib/components/date-time/DateTimeComponent.js +39 -39
  15. package/lib/components/dialog/DialogComponent.d.ts +67 -67
  16. package/lib/components/dialog/DialogComponent.js +192 -198
  17. package/lib/components/drop-down/DropDownComponent.d.ts +27 -27
  18. package/lib/components/drop-down/DropDownComponent.js +60 -60
  19. package/lib/components/expander/ExpanderComponent.d.ts +27 -27
  20. package/lib/components/expander/ExpanderComponent.js +87 -89
  21. package/lib/components/form-field/FormComponent.d.ts +12 -12
  22. package/lib/components/form-field/FormComponent.js +23 -23
  23. package/lib/components/form-field/FormFieldComponent.d.ts +39 -39
  24. package/lib/components/form-field/FormFieldComponent.js +138 -138
  25. package/lib/components/grid/GridComponent.d.ts +26 -26
  26. package/lib/components/grid/GridComponent.js +110 -110
  27. package/lib/components/input/InputComponent.d.ts +33 -33
  28. package/lib/components/input/InputComponent.js +126 -126
  29. package/lib/components/loading/LoadingComponent.d.ts +8 -8
  30. package/lib/components/loading/LoadingComponent.js +20 -20
  31. package/lib/components/navigation/NavigationComponent.d.ts +34 -34
  32. package/lib/components/navigation/NavigationComponent.js +47 -45
  33. package/lib/components/notification/Notification.d.ts +19 -19
  34. package/lib/components/notification/Notification.js +65 -65
  35. package/lib/components/number/NumberComponent.d.ts +26 -26
  36. package/lib/components/number/NumberComponent.js +80 -80
  37. package/lib/components/overlay/OverlayComponent.d.ts +27 -27
  38. package/lib/components/overlay/OverlayComponent.js +134 -137
  39. package/lib/components/progress/ProgressComponent.d.ts +18 -18
  40. package/lib/components/progress/ProgressComponent.js +40 -40
  41. package/lib/components/ribbon-menu/RibbonMenuComponent.d.ts +12 -12
  42. package/lib/components/ribbon-menu/RibbonMenuComponent.js +23 -23
  43. package/lib/components/select/SelectComponent.d.ts +79 -79
  44. package/lib/components/select/SelectComponent.js +352 -356
  45. package/lib/components/select/SelectDDAreaComponent.d.ts +32 -32
  46. package/lib/components/select/SelectDDAreaComponent.js +303 -303
  47. package/lib/components/slider/nouislider.d.ts +44 -44
  48. package/lib/components/slider/nouislider.js +2158 -2158
  49. package/lib/components/stack-panel/SplitterComponent.d.ts +21 -21
  50. package/lib/components/stack-panel/SplitterComponent.js +124 -124
  51. package/lib/components/stack-panel/StackPanelComponent.d.ts +20 -20
  52. package/lib/components/stack-panel/StackPanelComponent.js +50 -50
  53. package/lib/components/tabs/TabsComponent.d.ts +40 -40
  54. package/lib/components/tabs/TabsComponent.js +191 -200
  55. package/lib/components/time/TimeComponent.d.ts +29 -29
  56. package/lib/components/time/TimeComponent.js +102 -104
  57. package/lib/components/tree-view/TreeViewComponent.d.ts +23 -23
  58. package/lib/components/tree-view/TreeViewComponent.js +42 -43
  59. package/lib/components/virtual-render/VirtualRenderComponent.d.ts +30 -30
  60. package/lib/components/virtual-render/VirtualRenderComponent.js +90 -92
  61. package/lib/core/culture.d.ts +5 -5
  62. package/lib/core/culture.js +385 -385
  63. package/lib/core/date.d.ts +14 -14
  64. package/lib/core/date.js +346 -346
  65. package/lib/core/helper.d.ts +13 -13
  66. package/lib/core/helper.js +100 -100
  67. package/lib/core/jq.d.ts +37 -37
  68. package/lib/core/jq.js +362 -362
  69. package/lib/core/lang.d.ts +24 -24
  70. package/lib/core/lang.js +24 -24
  71. package/lib/core/numeric.d.ts +7 -7
  72. package/lib/core/numeric.js +139 -139
  73. package/lib/core/polyfills.js +22 -22
  74. package/lib/core.d.ts +6 -6
  75. package/lib/core.js +6 -6
  76. package/lib/grid/filterDialogs/dateRangeFilter.d.ts +7 -7
  77. package/lib/grid/filterDialogs/dateRangeFilter.js +106 -106
  78. package/lib/grid/filterDialogs/excelFilter.d.ts +9 -9
  79. package/lib/grid/filterDialogs/excelFilter.js +250 -250
  80. package/lib/grid/plugins/ext.overlay.d.ts +2 -2
  81. package/lib/grid/plugins/ext.overlay.js +295 -295
  82. package/lib/grid/plugins/slick.cellrangedecorator.d.ts +12 -12
  83. package/lib/grid/plugins/slick.cellrangedecorator.js +68 -68
  84. package/lib/grid/plugins/slick.cellrangeselector.d.ts +1 -1
  85. package/lib/grid/plugins/slick.cellrangeselector.js +144 -144
  86. package/lib/grid/plugins/slick.cellselectionmodel.d.ts +1 -1
  87. package/lib/grid/plugins/slick.cellselectionmodel.js +194 -194
  88. package/lib/grid/plugins/slick.headerbuttons.d.ts +55 -55
  89. package/lib/grid/plugins/slick.headerbuttons.js +156 -156
  90. package/lib/grid/plugins/slick.headermenu.d.ts +74 -74
  91. package/lib/grid/plugins/slick.headermenu.js +260 -260
  92. package/lib/grid/plugins/slick.rowmovemanager.d.ts +18 -18
  93. package/lib/grid/plugins/slick.rowmovemanager.js +249 -249
  94. package/lib/grid/plugins/slick.rowselectionmodel.d.ts +1 -1
  95. package/lib/grid/plugins/slick.rowselectionmodel.js +167 -167
  96. package/lib/grid/slick.core.d.ts +91 -91
  97. package/lib/grid/slick.core.js +574 -574
  98. package/lib/grid/slick.creator.d.ts +81 -81
  99. package/lib/grid/slick.creator.js +726 -726
  100. package/lib/grid/slick.dataview.d.ts +71 -71
  101. package/lib/grid/slick.dataview.js +1069 -1069
  102. package/lib/grid/slick.editors.core.d.ts +4 -4
  103. package/lib/grid/slick.editors.core.js +235 -235
  104. package/lib/grid/slick.editors.date.d.ts +2 -2
  105. package/lib/grid/slick.editors.date.js +125 -125
  106. package/lib/grid/slick.editors.lookup.d.ts +14 -14
  107. package/lib/grid/slick.editors.lookup.js +352 -352
  108. package/lib/grid/slick.editors.nav.d.ts +6 -6
  109. package/lib/grid/slick.editors.nav.js +22 -22
  110. package/lib/grid/slick.formatters.d.ts +17 -17
  111. package/lib/grid/slick.formatters.js +144 -144
  112. package/lib/grid/slick.grid.d.ts +285 -285
  113. package/lib/grid/slick.grid.js +5409 -5409
  114. package/lib/grid/slick.groupitemmetadataprovider.d.ts +39 -39
  115. package/lib/grid/slick.groupitemmetadataprovider.js +165 -165
  116. package/lib/grid/slick.tree.d.ts +33 -33
  117. package/lib/grid/slick.tree.js +208 -208
  118. package/lib/grid.css +705 -1
  119. package/lib/grid.d.ts +13 -13
  120. package/lib/grid.js +13 -13
  121. package/lib/index.css +2195 -8
  122. package/lib/index.css.map +1 -1
  123. package/lib/index.d.ts +55 -56
  124. package/lib/index.js +61 -61
  125. package/lib/index.js.map +1 -1
  126. package/lib/interaction/dataconverter.d.ts +4 -4
  127. package/lib/interaction/dataconverter.js +1 -0
  128. package/lib/interaction/eventhandler.d.ts +13 -13
  129. package/lib/interaction/eventhandler.js +39 -39
  130. package/lib/interaction/moveable.d.ts +39 -39
  131. package/lib/interaction/moveable.js +160 -160
  132. package/lib/interaction/resizable.d.ts +37 -37
  133. package/lib/interaction/resizable.js +109 -109
  134. package/lib/ui/auto.suggest.d.ts +18 -18
  135. package/lib/ui/auto.suggest.js +244 -244
  136. package/lib/ui/date.picker/date-picker-options.d.ts +11 -11
  137. package/lib/ui/date.picker/date-picker-options.js +76 -76
  138. package/lib/ui/date.picker/lib/date-manip.d.ts +74 -74
  139. package/lib/ui/date.picker/lib/date-manip.js +120 -120
  140. package/lib/ui/date.picker/lib/dom.d.ts +23 -23
  141. package/lib/ui/date.picker/lib/dom.js +28 -28
  142. package/lib/ui/date.picker/lib/emitter.d.ts +13 -13
  143. package/lib/ui/date.picker/lib/emitter.js +49 -49
  144. package/lib/ui/date.picker/lib/fns.d.ts +23 -23
  145. package/lib/ui/date.picker/lib/fns.js +39 -39
  146. package/lib/ui/date.picker/mode/base-mode.d.ts +26 -26
  147. package/lib/ui/date.picker/mode/base-mode.js +248 -248
  148. package/lib/ui/date.picker/mode/dropdown-mode.d.ts +28 -28
  149. package/lib/ui/date.picker/mode/dropdown-mode.js +50 -50
  150. package/lib/ui/date.picker/mode/index.d.ts +28 -28
  151. package/lib/ui/date.picker/mode/index.js +18 -18
  152. package/lib/ui/date.picker/mode/modal-mode.d.ts +25 -25
  153. package/lib/ui/date.picker/mode/modal-mode.js +17 -17
  154. package/lib/ui/date.picker/mode/permanent-mode.d.ts +29 -29
  155. package/lib/ui/date.picker/mode/permanent-mode.js +19 -19
  156. package/lib/ui/date.picker/views/day-picker.d.ts +40 -40
  157. package/lib/ui/date.picker/views/day-picker.js +155 -155
  158. package/lib/ui/date.picker/views/month-picker.d.ts +26 -26
  159. package/lib/ui/date.picker/views/month-picker.js +65 -65
  160. package/lib/ui/date.picker/views/year-picker.d.ts +20 -20
  161. package/lib/ui/date.picker/views/year-picker.js +66 -66
  162. package/lib/ui/date.picker.d.ts +66 -66
  163. package/lib/ui/date.picker.js +32 -32
  164. package/lib/ui/dialog.d.ts +22 -22
  165. package/lib/ui/dialog.js +98 -98
  166. package/lib/ui/drop.down.d.ts +52 -52
  167. package/lib/ui/drop.down.js +2112 -2112
  168. package/lib/ui/number.input.d.ts +13 -13
  169. package/lib/ui/number.input.js +56 -56
  170. package/package.json +1 -1
@@ -1,26 +1,26 @@
1
- import { IJSLComponent, IJSLVNode } from "jsl-render";
2
- import { INumberInputOptions } from "../../ui/number.input";
3
- import { EventHandler } from "../../interaction/eventhandler";
4
- import { IDataConverter } from "../../interaction/dataconverter";
5
- export interface INumberComponentOptions<T = any> extends INumberInputOptions {
6
- id?: string;
7
- class?: string;
8
- style?: string;
9
- placeholder?: string;
10
- bindTo?: T;
11
- bindMode?: "toModel" | "fromModel" | "both";
12
- property?: keyof T;
13
- converter?: IDataConverter<any, number>;
14
- }
15
- export declare class NumberComponent<T = any> implements IJSLComponent {
16
- private currentDom;
17
- private id;
18
- private options;
19
- constructor(options: INumberComponentOptions<T>);
20
- get onChange(): EventHandler<number>;
21
- render(): IJSLVNode;
22
- getValue(): string;
23
- getValueAsNumber(): number;
24
- setValue(value: number): void;
25
- onCreate(node: IJSLVNode): void;
26
- }
1
+ import { IJSLComponent, IJSLVNode } from "jsl-render";
2
+ import { INumberInputOptions } from "../../ui/number.input";
3
+ import { EventHandler } from "../../interaction/eventhandler";
4
+ import { IDataConverter } from "../../interaction/dataconverter";
5
+ export interface INumberComponentOptions<T = any> extends INumberInputOptions {
6
+ id?: string;
7
+ class?: string;
8
+ style?: string;
9
+ placeholder?: string;
10
+ bindTo?: T;
11
+ bindMode?: "toModel" | "fromModel" | "both";
12
+ property?: keyof T;
13
+ converter?: IDataConverter<any, number>;
14
+ }
15
+ export declare class NumberComponent<T = any> implements IJSLComponent {
16
+ private currentDom;
17
+ private id;
18
+ private options;
19
+ constructor(options: INumberComponentOptions<T>);
20
+ get onChange(): EventHandler<number>;
21
+ render(): IJSLVNode;
22
+ getValue(): string;
23
+ getValueAsNumber(): number;
24
+ setValue(value: number): void;
25
+ onCreate(node: IJSLVNode): void;
26
+ }
@@ -1,80 +1,80 @@
1
- import { NumberInput } from "../../ui/number.input";
2
- import { numeric } from "../../core/numeric";
3
- import { helper } from "../../core/helper";
4
- import { EventHandler } from "../../interaction/eventhandler";
5
- export class NumberComponent {
6
- constructor(options) {
7
- var _a;
8
- this.options = { ...{ onChange: new EventHandler(), bindMode: "toModel" }, ...options };
9
- if (this.options.bindTo != null && this.options.property != null && this.options.value == null) {
10
- this.options.value = (((_a = this.options.converter) === null || _a === void 0 ? void 0 : _a.toUI) ?
11
- this.options.converter.toUI(this.options.bindTo[this.options.property]) :
12
- this.options.bindTo[this.options.property]);
13
- }
14
- this.options.onChange = EventHandler.Create(this.options.onChange);
15
- this.id = options.id || helper.newDomGuid();
16
- }
17
- get onChange() {
18
- return this.options.onChange;
19
- }
20
- render() {
21
- var _a;
22
- let val = this.options.value;
23
- if (this.options.bindMode !== "toModel" && this.options.bindTo != null && this.options.property != null) {
24
- const current = this.getValue();
25
- const newVal = (((_a = this.options.converter) === null || _a === void 0 ? void 0 : _a.toUI) ?
26
- this.options.converter.toUI(this.options.bindTo[this.options.property]) :
27
- this.options.bindTo[this.options.property]);
28
- const newValStr = numeric.format(newVal, this.options.format);
29
- val = newVal;
30
- if (newValStr !== current) {
31
- if (this.currentDom != null) {
32
- this.currentDom.value = newValStr;
33
- }
34
- }
35
- }
36
- return {
37
- tag: "input",
38
- attr: {
39
- id: this.id,
40
- class: this.options.class,
41
- style: this.options.style,
42
- value: numeric.format(val, this.options.format),
43
- placeholder: this.options.placeholder
44
- }
45
- };
46
- }
47
- getValue() {
48
- if (this.currentDom == null) {
49
- return null;
50
- }
51
- return this.currentDom.value;
52
- }
53
- getValueAsNumber() {
54
- return numeric.parse(this.getValue());
55
- }
56
- setValue(value) {
57
- var _a;
58
- this.options.value = value;
59
- if (this.currentDom != null) {
60
- this.currentDom.value = numeric.format(value, this.options.format);
61
- }
62
- if (this.options.bindMode !== "fromModel" && this.options.bindTo && this.options.property) {
63
- this.options.bindTo[this.options.property] =
64
- this.options.bindTo[this.options.property] = ((_a = this.options.converter) === null || _a === void 0 ? void 0 : _a.toData) ? this.options.converter.toData(value) : value;
65
- }
66
- }
67
- onCreate(node) {
68
- this.currentDom = node.dom;
69
- const handler = new EventHandler((value) => {
70
- var _a;
71
- if (this.options.bindTo != null && this.options.bindMode !== "fromModel" && this.options.property != null) {
72
- if (this.options.bindTo && this.options.property) {
73
- this.options.bindTo[this.options.property] = ((_a = this.options.converter) === null || _a === void 0 ? void 0 : _a.toData) ? this.options.converter.toData(value) : value;
74
- }
75
- }
76
- this.options.onChange.notify(value);
77
- });
78
- NumberInput(this.currentDom, { ...this.options, onChange: handler });
79
- }
80
- }
1
+ import { NumberInput } from "../../ui/number.input";
2
+ import { numeric } from "../../core/numeric";
3
+ import { helper } from "../../core/helper";
4
+ import { EventHandler } from "../../interaction/eventhandler";
5
+ export class NumberComponent {
6
+ constructor(options) {
7
+ var _a;
8
+ this.options = { ...{ onChange: new EventHandler(), bindMode: "toModel" }, ...options };
9
+ if (this.options.bindTo != null && this.options.property != null && this.options.value == null) {
10
+ this.options.value = (((_a = this.options.converter) === null || _a === void 0 ? void 0 : _a.toUI) ?
11
+ this.options.converter.toUI(this.options.bindTo[this.options.property]) :
12
+ this.options.bindTo[this.options.property]);
13
+ }
14
+ this.options.onChange = EventHandler.Create(this.options.onChange);
15
+ this.id = options.id || helper.newDomGuid();
16
+ }
17
+ get onChange() {
18
+ return this.options.onChange;
19
+ }
20
+ render() {
21
+ var _a;
22
+ let val = this.options.value;
23
+ if (this.options.bindMode !== "toModel" && this.options.bindTo != null && this.options.property != null) {
24
+ const current = this.getValue();
25
+ const newVal = (((_a = this.options.converter) === null || _a === void 0 ? void 0 : _a.toUI) ?
26
+ this.options.converter.toUI(this.options.bindTo[this.options.property]) :
27
+ this.options.bindTo[this.options.property]);
28
+ const newValStr = numeric.format(newVal, this.options.format);
29
+ val = newVal;
30
+ if (newValStr !== current) {
31
+ if (this.currentDom != null) {
32
+ this.currentDom.value = newValStr;
33
+ }
34
+ }
35
+ }
36
+ return {
37
+ tag: "input",
38
+ attr: {
39
+ id: this.id,
40
+ class: this.options.class,
41
+ style: this.options.style,
42
+ value: numeric.format(val, this.options.format),
43
+ placeholder: this.options.placeholder
44
+ }
45
+ };
46
+ }
47
+ getValue() {
48
+ if (this.currentDom == null) {
49
+ return null;
50
+ }
51
+ return this.currentDom.value;
52
+ }
53
+ getValueAsNumber() {
54
+ return numeric.parse(this.getValue());
55
+ }
56
+ setValue(value) {
57
+ var _a;
58
+ this.options.value = value;
59
+ if (this.currentDom != null) {
60
+ this.currentDom.value = numeric.format(value, this.options.format);
61
+ }
62
+ if (this.options.bindMode !== "fromModel" && this.options.bindTo && this.options.property) {
63
+ this.options.bindTo[this.options.property] =
64
+ this.options.bindTo[this.options.property] = ((_a = this.options.converter) === null || _a === void 0 ? void 0 : _a.toData) ? this.options.converter.toData(value) : value;
65
+ }
66
+ }
67
+ onCreate(node) {
68
+ this.currentDom = node.dom;
69
+ const handler = new EventHandler((value) => {
70
+ var _a;
71
+ if (this.options.bindTo != null && this.options.bindMode !== "fromModel" && this.options.property != null) {
72
+ if (this.options.bindTo && this.options.property) {
73
+ this.options.bindTo[this.options.property] = ((_a = this.options.converter) === null || _a === void 0 ? void 0 : _a.toData) ? this.options.converter.toData(value) : value;
74
+ }
75
+ }
76
+ this.options.onChange.notify(value);
77
+ });
78
+ NumberInput(this.currentDom, { ...this.options, onChange: handler });
79
+ }
80
+ }
@@ -1,27 +1,27 @@
1
- import "./overlay.css";
2
- import { IJSLComponent, IJSLVNode } from "jsl-render";
3
- export interface IOverlayComponentOptions {
4
- content: IJSLVNode | string | IJSLComponent;
5
- showCloseButton?: boolean;
6
- closeOnEscape?: boolean;
7
- closeOnOverlayClick?: boolean;
8
- onClose?: () => void | boolean;
9
- onOpen?: () => void;
10
- animate?: boolean;
11
- direction?: "left" | "top";
12
- size?: string;
13
- class?: string;
14
- style?: string;
15
- }
16
- export declare class OverlayComponent implements IJSLComponent {
17
- static show(options: IOverlayComponentOptions): OverlayComponent;
18
- private static lastRenderedDlg;
19
- private closeIcon;
20
- private onKeydownEvent;
21
- close(): void;
22
- private options;
23
- constructor(options: IOverlayComponentOptions);
24
- onCreate(node: IJSLVNode): void;
25
- render(): IJSLVNode;
26
- private toNode;
27
- }
1
+ import "./overlay.css";
2
+ import { IJSLComponent, IJSLVNode } from "jsl-render";
3
+ export interface IOverlayComponentOptions {
4
+ content: IJSLVNode | string | IJSLComponent;
5
+ showCloseButton?: boolean;
6
+ closeOnEscape?: boolean;
7
+ closeOnOverlayClick?: boolean;
8
+ onClose?: () => void | boolean;
9
+ onOpen?: () => void;
10
+ animate?: boolean;
11
+ direction?: "left" | "top";
12
+ size?: string;
13
+ class?: string;
14
+ style?: string;
15
+ }
16
+ export declare class OverlayComponent implements IJSLComponent {
17
+ static show(options: IOverlayComponentOptions): OverlayComponent;
18
+ private static lastRenderedDlg;
19
+ private closeIcon;
20
+ private onKeydownEvent;
21
+ close(): void;
22
+ private options;
23
+ constructor(options: IOverlayComponentOptions);
24
+ onCreate(node: IJSLVNode): void;
25
+ render(): IJSLVNode;
26
+ private toNode;
27
+ }
@@ -1,137 +1,134 @@
1
- import "./overlay.css";
2
- import { JSLRender } from "jsl-render";
3
- export class OverlayComponent {
4
- constructor(options) {
5
- this.closeIcon = {
6
- tag: "div", content: "✖" /*"🗙"*/, attr: {
7
- class: "overl-close-btn", click: () => {
8
- this.close();
9
- }
10
- }
11
- };
12
- this.options = { closeOnEscape: true, closeOnOverlayClick: true, showCloseButton: true, direction: "left", animate: true, ...options };
13
- if (this.options.closeOnEscape) {
14
- this.onKeydownEvent = document.addEventListener("keydown", (args) => {
15
- if (args.keyCode === 27) { // escape
16
- this.close();
17
- }
18
- });
19
- }
20
- }
21
- static show(options) {
22
- const container = document.createElement("div");
23
- document.body.appendChild(container);
24
- const oldRenderer = JSLRender.lastCreatedRenderer;
25
- const oldLastDlg = OverlayComponent.lastRenderedDlg;
26
- const renderer = new JSLRender(container, oldRenderer != null);
27
- if (oldRenderer != null) {
28
- JSLRender.lastCreatedRenderer = renderer;
29
- }
30
- const o = { ...options };
31
- o.onClose = () => {
32
- if (options.onClose) {
33
- if (options.onClose() === false) {
34
- return;
35
- }
36
- }
37
- document.body.removeChild(container);
38
- JSLRender.lastCreatedRenderer = oldRenderer;
39
- if (oldRenderer != null) {
40
- oldRenderer.refresh();
41
- }
42
- OverlayComponent.lastRenderedDlg = oldLastDlg;
43
- };
44
- const dlg = new OverlayComponent(o);
45
- OverlayComponent.lastRenderedDlg = dlg;
46
- renderer.render(dlg);
47
- return dlg;
48
- }
49
- close() {
50
- if (this.options.onClose) {
51
- if (this.options.onClose() === false) {
52
- return;
53
- }
54
- }
55
- // this.overlay.style.display = "none";
56
- if (this.onKeydownEvent != null) {
57
- document.removeEventListener("keydown", this.onKeydownEvent);
58
- }
59
- }
60
- onCreate(node) {
61
- const bodyDom = node.dom.querySelector(".overl-body");
62
- if (bodyDom != null) {
63
- if (this.options.direction === "left") {
64
- node.dom.style.width = this.options.size;
65
- if (this.options.animate) {
66
- const realWidth = bodyDom.getBoundingClientRect().width;
67
- node.dom.style.left = -realWidth + "px";
68
- JSLRender.animate(node, { attr: "left", from: -realWidth + "px", to: "0px", duration: 500, easing: "easeOutSine" });
69
- }
70
- }
71
- else {
72
- node.dom.style.height = this.options.size;
73
- if (this.options.animate) {
74
- const realHeight = bodyDom.getBoundingClientRect().height;
75
- node.dom.style.top = -realHeight + "px";
76
- JSLRender.animate(node, { attr: "top", from: -realHeight + "px", to: "0px", duration: 500, easing: "easeOutSine" });
77
- }
78
- }
79
- }
80
- else {
81
- console.error("overl-body class not found");
82
- }
83
- }
84
- render() {
85
- const body = this.toNode(this.options.content);
86
- // let styleW = "";
87
- // let styleH = "";
88
- // if (this.options.width != null) {
89
- // styleW += "width:" + this.options.width + ";";
90
- // }
91
- // if (this.options.minWidth != null) {
92
- // styleW += "min-width:" + this.options.minWidth + ";";
93
- // }
94
- // if (this.options.maxWidth != null) {
95
- // styleW += "max-width:" + this.options.maxWidth + ";";
96
- // }
97
- // if (this.options.height != null) {
98
- // styleH += "height:" + this.options.height + ";";
99
- // }
100
- // if (this.options.minHeight != null) {
101
- // styleH += "min-height:" + this.options.minHeight + ";";
102
- // }
103
- // if (this.options.maxHeight != null) {
104
- // styleH += "max-height:" + this.options.maxHeight + ";";
105
- // }
106
- // const headerStyle = this.options.allowMove ? "cursor:move" : undefined;
107
- return {
108
- tag: "div",
109
- attr: {
110
- class: "jsl-overlay-overlay",
111
- click: (e) => {
112
- if (this.options.closeOnOverlayClick && e.target.classList.contains("jsl-overlay-overlay")) {
113
- this.close();
114
- }
115
- }, wheel: (e) => {
116
- e.stopImmediatePropagation();
117
- e.stopPropagation();
118
- }
119
- },
120
- children: [
121
- {
122
- tag: "div", attr: { class: ("overl-body-" + this.options.direction) + " overl-body " + (this.options.class || ""), style: this.options.style }, children: [{
123
- tag: "div", attr: { class: "overl-header" },
124
- children: this.options.showCloseButton ? [this.closeIcon] : []
125
- }, body]
126
- }
127
- ]
128
- // }]
129
- };
130
- }
131
- toNode(content) {
132
- if (typeof content === "string") {
133
- return { tag: "div", content };
134
- }
135
- return content;
136
- }
137
- }
1
+ import "./overlay.css";
2
+ import { JSLRender } from "jsl-render";
3
+ export class OverlayComponent {
4
+ static show(options) {
5
+ const container = document.createElement("div");
6
+ document.body.appendChild(container);
7
+ const oldRenderer = JSLRender.lastCreatedRenderer;
8
+ const oldLastDlg = OverlayComponent.lastRenderedDlg;
9
+ const renderer = new JSLRender(container, oldRenderer != null);
10
+ if (oldRenderer != null) {
11
+ JSLRender.lastCreatedRenderer = renderer;
12
+ }
13
+ const o = { ...options };
14
+ o.onClose = () => {
15
+ if (options.onClose) {
16
+ if (options.onClose() === false) {
17
+ return;
18
+ }
19
+ }
20
+ document.body.removeChild(container);
21
+ JSLRender.lastCreatedRenderer = oldRenderer;
22
+ if (oldRenderer != null) {
23
+ oldRenderer.refresh();
24
+ }
25
+ OverlayComponent.lastRenderedDlg = oldLastDlg;
26
+ };
27
+ const dlg = new OverlayComponent(o);
28
+ OverlayComponent.lastRenderedDlg = dlg;
29
+ renderer.render(dlg);
30
+ return dlg;
31
+ }
32
+ close() {
33
+ if (this.options.onClose) {
34
+ if (this.options.onClose() === false) {
35
+ return;
36
+ }
37
+ }
38
+ // this.overlay.style.display = "none";
39
+ if (this.onKeydownEvent != null) {
40
+ document.removeEventListener("keydown", this.onKeydownEvent);
41
+ }
42
+ }
43
+ constructor(options) {
44
+ this.closeIcon = {
45
+ tag: "div", content: "✖" /*"🗙"*/, attr: {
46
+ class: "overl-close-btn", click: () => {
47
+ this.close();
48
+ }
49
+ }
50
+ };
51
+ this.options = { closeOnEscape: true, closeOnOverlayClick: true, showCloseButton: true, direction: "left", animate: true, ...options };
52
+ if (this.options.closeOnEscape) {
53
+ this.onKeydownEvent = document.addEventListener("keydown", (args) => {
54
+ if (args.keyCode === 27) { // escape
55
+ this.close();
56
+ }
57
+ });
58
+ }
59
+ }
60
+ onCreate(node) {
61
+ const bodyDom = node.dom.querySelector(".overl-body");
62
+ if (bodyDom != null) {
63
+ if (this.options.direction === "left") {
64
+ node.dom.style.width = this.options.size;
65
+ if (this.options.animate) {
66
+ const realWidth = bodyDom.getBoundingClientRect().width;
67
+ node.dom.style.left = -realWidth + "px";
68
+ JSLRender.animate(node, { attr: "left", from: -realWidth + "px", to: "0px", duration: 500, easing: "easeOutSine" });
69
+ }
70
+ }
71
+ else {
72
+ node.dom.style.height = this.options.size;
73
+ if (this.options.animate) {
74
+ const realHeight = bodyDom.getBoundingClientRect().height;
75
+ node.dom.style.top = -realHeight + "px";
76
+ JSLRender.animate(node, { attr: "top", from: -realHeight + "px", to: "0px", duration: 500, easing: "easeOutSine" });
77
+ }
78
+ }
79
+ }
80
+ else {
81
+ console.error("overl-body class not found");
82
+ }
83
+ }
84
+ render() {
85
+ const body = this.toNode(this.options.content);
86
+ // let styleW = "";
87
+ // let styleH = "";
88
+ // if (this.options.width != null) {
89
+ // styleW += "width:" + this.options.width + ";";
90
+ // }
91
+ // if (this.options.minWidth != null) {
92
+ // styleW += "min-width:" + this.options.minWidth + ";";
93
+ // }
94
+ // if (this.options.maxWidth != null) {
95
+ // styleW += "max-width:" + this.options.maxWidth + ";";
96
+ // }
97
+ // if (this.options.height != null) {
98
+ // styleH += "height:" + this.options.height + ";";
99
+ // }
100
+ // if (this.options.minHeight != null) {
101
+ // styleH += "min-height:" + this.options.minHeight + ";";
102
+ // }
103
+ // if (this.options.maxHeight != null) {
104
+ // styleH += "max-height:" + this.options.maxHeight + ";";
105
+ // }
106
+ // const headerStyle = this.options.allowMove ? "cursor:move" : undefined;
107
+ return {
108
+ tag: "div", attr: {
109
+ class: "jsl-overlay-overlay", click: (e) => {
110
+ if (this.options.closeOnOverlayClick && e.target.classList.contains("jsl-overlay-overlay")) {
111
+ this.close();
112
+ }
113
+ }, wheel: (e) => {
114
+ e.stopImmediatePropagation();
115
+ e.stopPropagation();
116
+ }
117
+ }, children: [
118
+ {
119
+ tag: "div", attr: { class: ("overl-body-" + this.options.direction) + " overl-body " + (this.options.class || ""), style: this.options.style }, children: [{
120
+ tag: "div", attr: { class: "overl-header" },
121
+ children: this.options.showCloseButton ? [this.closeIcon] : []
122
+ }, body]
123
+ }
124
+ ]
125
+ // }]
126
+ };
127
+ }
128
+ toNode(content) {
129
+ if (typeof content === "string") {
130
+ return { tag: "div", content };
131
+ }
132
+ return content;
133
+ }
134
+ }
@@ -1,18 +1,18 @@
1
- import "./ProgressStyle.scss";
2
- import { IJSLComponent, IJSLVNode } from "jsl-render";
3
- export interface IProgressComponentOptions {
4
- color?: string;
5
- showPercent?: boolean;
6
- percentFormat?: string;
7
- class?: string;
8
- style?: string;
9
- }
10
- export declare class ProgressComponent implements IJSLComponent {
11
- private progress;
12
- private options?;
13
- constructor(progress: number, options?: IProgressComponentOptions);
14
- isEqual(node: IJSLComponent): boolean;
15
- render(): IJSLVNode;
16
- setProgress(progress: number): void;
17
- getProgress(): number;
18
- }
1
+ import "./ProgressStyle.scss";
2
+ import { IJSLComponent, IJSLVNode } from "jsl-render";
3
+ export interface IProgressComponentOptions {
4
+ color?: string;
5
+ showPercent?: boolean;
6
+ percentFormat?: string;
7
+ class?: string;
8
+ style?: string;
9
+ }
10
+ export declare class ProgressComponent implements IJSLComponent {
11
+ private progress;
12
+ private options?;
13
+ constructor(progress: number, options?: IProgressComponentOptions);
14
+ isEqual(node: IJSLComponent): boolean;
15
+ render(): IJSLVNode;
16
+ setProgress(progress: number): void;
17
+ getProgress(): number;
18
+ }