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,200 +1,191 @@
1
- import "./TabsStyle.scss";
2
- import { refresh } from "jsl-render";
3
- import { helper } from "../../core/helper";
4
- export class TabsComponent {
5
- constructor(options) {
6
- var _a, _b, _c;
7
- this.options = options;
8
- this.State = { selectedIndex: null };
9
- this.options = (_a = this.options) !== null && _a !== void 0 ? _a : {};
10
- this.options.tabs = (_b = this.options.tabs) !== null && _b !== void 0 ? _b : [];
11
- this.options.selectedIndex = (_c = this.options.selectedIndex) !== null && _c !== void 0 ? _c : 0;
12
- }
13
- getActiveTabIndex() {
14
- var _a;
15
- return (_a = this.State.selectedIndex) !== null && _a !== void 0 ? _a : this.options.selectedIndex;
16
- }
17
- render() {
18
- var _a, _b, _c, _d, _e;
19
- this.checkForDuplicateIds();
20
- let index = -1;
21
- const activeIndex = (_a = this.State.selectedIndex) !== null && _a !== void 0 ? _a : this.options.selectedIndex;
22
- if (activeIndex > -1 &&
23
- this.options.tabs[activeIndex].content == null &&
24
- this.options.tabs[activeIndex].onCreate) {
25
- this.options.tabs[activeIndex].content = this.options.tabs[activeIndex].onCreate();
26
- }
27
- const tabs = [];
28
- for (let idx = 0; idx < this.options.tabs.length; idx++) {
29
- if (!this.options.tabs[idx].id) {
30
- this.options.tabs[idx].id = helper.newDomGuid();
31
- }
32
- if (idx === activeIndex) {
33
- tabs.push({
34
- tag: "div",
35
- attr: {
36
- class: "tab-content " + ((_b = this.options.contentClass) !== null && _b !== void 0 ? _b : ""),
37
- style: { "max-height": ((_c = this.options.maxHeight) !== null && _c !== void 0 ? _c : "100%") },
38
- id: this.options.tabs[idx].id
39
- },
40
- children: [this.toNode(this.options.tabs[idx].content)]
41
- });
42
- }
43
- else if (this.options.preserveContent) {
44
- tabs.push({
45
- tag: "div",
46
- attr: {
47
- class: "tab-content tab-hidden " + ((_d = this.options.contentClass) !== null && _d !== void 0 ? _d : ""),
48
- style: { "max-height": ((_e = this.options.maxHeight) !== null && _e !== void 0 ? _e : "100%") },
49
- id: this.options.tabs[idx].id
50
- },
51
- children: [this.toNode(this.options.tabs[idx].content)]
52
- });
53
- }
54
- }
55
- return {
56
- tag: "div", attr: { class: "stabcomponent " + (this.options.class || ""), style: this.options.style },
57
- children: [
58
- {
59
- tag: "div", attr: { class: "tab-header-row" },
60
- children: this.options.tabs.map((x) => {
61
- index++;
62
- const currIndex = index;
63
- return {
64
- tag: "div",
65
- attr: {
66
- class: "tab-item " + (index === activeIndex ? "active " : "") + (this.options.tabs[currIndex].enabled === false ? "disabled " : ""),
67
- click: (evt) => {
68
- var _a;
69
- if ((_a = this.options.tabs[currIndex].enabled) !== null && _a !== void 0 ? _a : true) {
70
- this.SetSelectedTab(currIndex);
71
- if (this.options.onSelect) {
72
- this.options.onSelect(currIndex);
73
- }
74
- }
75
- }
76
- }, children: [
77
- { tag: "span", attr: { style: "vertical-align: middle; vertical-align: -webkit-baseline-middle; vertical-align: -moz-middle-with-baseline;" }, children: [this.toNode(x.header, "span")] },
78
- this.options.tabs[index].canClose
79
- ?
80
- {
81
- tag: "div",
82
- attr: {
83
- class: "close-button",
84
- click: (evt) => {
85
- var _a;
86
- if ((_a = this.options.tabs[currIndex].enabled) !== null && _a !== void 0 ? _a : true) {
87
- evt.stopPropagation();
88
- this.closeTabIndex(currIndex, true);
89
- }
90
- }
91
- },
92
- content: "X"
93
- }
94
- :
95
- undefined
96
- ]
97
- };
98
- })
99
- },
100
- ...tabs
101
- ]
102
- };
103
- }
104
- AddTab(tabItem) {
105
- var _a;
106
- tabItem.enabled = (_a = tabItem.enabled) !== null && _a !== void 0 ? _a : true;
107
- this.options.tabs.push(tabItem);
108
- this.checkForDuplicateIds();
109
- return this.options.tabs.length - 1;
110
- }
111
- EnableAll() {
112
- for (let i = 0; i < this.options.tabs.length; i++) {
113
- this.options.tabs[i].enabled = true;
114
- }
115
- if (this.renderer != null) {
116
- this.renderer.refresh();
117
- }
118
- else {
119
- refresh();
120
- }
121
- }
122
- DisableAll() {
123
- for (let i = 0; i < this.options.tabs.length; i++) {
124
- this.options.tabs[i].enabled = false;
125
- }
126
- if (this.renderer != null) {
127
- this.renderer.refresh();
128
- }
129
- else {
130
- refresh();
131
- }
132
- }
133
- GetByID(id) {
134
- return this.options.tabs.filter((f) => f.id === id)[0];
135
- }
136
- closeTabIndex(index, raiseSelectEvent) {
137
- var _a, _b;
138
- // console.log("closing tab index " + index);
139
- if (this.options.tabs[index].onClosing) {
140
- if (this.options.tabs[index].onClosing() === false) {
141
- return false;
142
- }
143
- }
144
- this.options.tabs = this.options.tabs.filter((_, currIdx) => currIdx !== index);
145
- let newSelectedIndex = (_b = (_a = this.State.selectedIndex) !== null && _a !== void 0 ? _a : this.options.selectedIndex) !== null && _b !== void 0 ? _b : 0;
146
- if (this.options.tabs.length <= newSelectedIndex) {
147
- newSelectedIndex--;
148
- this.SetSelectedTab(newSelectedIndex);
149
- }
150
- if (raiseSelectEvent) {
151
- if (this.options.onSelect) {
152
- this.options.onSelect(newSelectedIndex);
153
- }
154
- }
155
- return true;
156
- }
157
- // public onCreate(node: IJSLVNode) {
158
- // this.ref = node.dom as HTMLDivElement;
159
- // }
160
- // public onUpdate(node: IJSLVNode) {
161
- // this.ref = node.dom as HTMLDivElement;
162
- // }
163
- onInit(renderer) {
164
- this.renderer = renderer;
165
- }
166
- SetSelectedTab(index) {
167
- var _a;
168
- if (((_a = this.options.tabs[index]) === null || _a === void 0 ? void 0 : _a.onCreate) != null && this.options.tabs[index].content == null) {
169
- this.options.tabs[index].content = this.options.tabs[index].onCreate();
170
- }
171
- this.options.selectedIndex = index;
172
- this.State.selectedIndex = index;
173
- if (this.renderer != null) {
174
- this.renderer.refresh();
175
- }
176
- else {
177
- refresh();
178
- }
179
- }
180
- toNode(content, tag) {
181
- if (content == null) {
182
- return undefined;
183
- }
184
- if (typeof content === "string") {
185
- return { tag: tag !== null && tag !== void 0 ? tag : "div", content };
186
- }
187
- return content;
188
- }
189
- checkForDuplicateIds() {
190
- if (this.options.tabs == null || this.options.tabs.length === 0) {
191
- return;
192
- }
193
- const ids = {};
194
- for (const tab of this.options.tabs) {
195
- if (tab.id && ids[tab.id] !== undefined) {
196
- throw new Error("Tab Control has duplicate id " + tab.id);
197
- }
198
- }
199
- }
200
- }
1
+ import "./TabsStyle.scss";
2
+ import { refresh } from "jsl-render";
3
+ import { helper } from "../../core/helper";
4
+ export class TabsComponent {
5
+ constructor(options) {
6
+ var _a, _b, _c;
7
+ this.options = options;
8
+ this.State = { selectedIndex: null };
9
+ this.options = (_a = this.options) !== null && _a !== void 0 ? _a : {};
10
+ this.options.tabs = (_b = this.options.tabs) !== null && _b !== void 0 ? _b : [];
11
+ this.options.selectedIndex = (_c = this.options.selectedIndex) !== null && _c !== void 0 ? _c : 0;
12
+ }
13
+ getActiveTabIndex() {
14
+ var _a;
15
+ return (_a = this.State.selectedIndex) !== null && _a !== void 0 ? _a : this.options.selectedIndex;
16
+ }
17
+ render() {
18
+ var _a, _b, _c, _d, _e;
19
+ this.checkForDuplicateIds();
20
+ let index = -1;
21
+ const activeIndex = (_a = this.State.selectedIndex) !== null && _a !== void 0 ? _a : this.options.selectedIndex;
22
+ if (activeIndex > -1 &&
23
+ this.options.tabs[activeIndex].content == null &&
24
+ this.options.tabs[activeIndex].onCreate) {
25
+ this.options.tabs[activeIndex].content = this.options.tabs[activeIndex].onCreate();
26
+ }
27
+ const tabs = [];
28
+ for (let idx = 0; idx < this.options.tabs.length; idx++) {
29
+ if (!this.options.tabs[idx].id) {
30
+ this.options.tabs[idx].id = helper.newDomGuid();
31
+ }
32
+ if (idx === activeIndex) {
33
+ tabs.push({
34
+ tag: "div", attr: {
35
+ class: "tab-content " + ((_b = this.options.contentClass) !== null && _b !== void 0 ? _b : ""),
36
+ style: { "max-height": ((_c = this.options.maxHeight) !== null && _c !== void 0 ? _c : "100%") },
37
+ id: this.options.tabs[idx].id
38
+ },
39
+ children: [this.toNode(this.options.tabs[idx].content)]
40
+ });
41
+ }
42
+ else if (this.options.preserveContent) {
43
+ tabs.push({
44
+ tag: "div", attr: {
45
+ class: "tab-content tab-hidden " + ((_d = this.options.contentClass) !== null && _d !== void 0 ? _d : ""),
46
+ style: { "max-height": ((_e = this.options.maxHeight) !== null && _e !== void 0 ? _e : "100%") },
47
+ id: this.options.tabs[idx].id
48
+ },
49
+ children: [this.toNode(this.options.tabs[idx].content)]
50
+ });
51
+ }
52
+ }
53
+ return {
54
+ tag: "div", attr: { class: "stabcomponent " + (this.options.class || ""), style: this.options.style }, children: [
55
+ {
56
+ tag: "div", attr: { class: "tab-header-row" }, children: this.options.tabs.map((x) => {
57
+ index++;
58
+ const currIndex = index;
59
+ return {
60
+ tag: "div", attr: {
61
+ class: "tab-item " + (index === activeIndex ? "active " : "") + (this.options.tabs[currIndex].enabled === false ? "disabled " : ""),
62
+ click: (evt) => {
63
+ var _a;
64
+ if ((_a = this.options.tabs[currIndex].enabled) !== null && _a !== void 0 ? _a : true) {
65
+ this.SetSelectedTab(currIndex);
66
+ if (this.options.onSelect) {
67
+ this.options.onSelect(currIndex);
68
+ }
69
+ }
70
+ }
71
+ }, children: [
72
+ { tag: "span", attr: { style: "vertical-align: middle; vertical-align: -webkit-baseline-middle; vertical-align: -moz-middle-with-baseline;" }, children: [this.toNode(x.header, "span")] },
73
+ this.options.tabs[index].canClose
74
+ ?
75
+ {
76
+ tag: "div", attr: {
77
+ class: "close-button", click: (evt) => {
78
+ var _a;
79
+ if ((_a = this.options.tabs[currIndex].enabled) !== null && _a !== void 0 ? _a : true) {
80
+ evt.stopPropagation();
81
+ this.closeTabIndex(currIndex, true);
82
+ }
83
+ }
84
+ }, content: "X"
85
+ }
86
+ :
87
+ undefined
88
+ ]
89
+ };
90
+ })
91
+ }, ...tabs
92
+ ]
93
+ };
94
+ }
95
+ AddTab(tabItem) {
96
+ var _a;
97
+ tabItem.enabled = (_a = tabItem.enabled) !== null && _a !== void 0 ? _a : true;
98
+ this.options.tabs.push(tabItem);
99
+ this.checkForDuplicateIds();
100
+ return this.options.tabs.length - 1;
101
+ }
102
+ EnableAll() {
103
+ for (let i = 0; i < this.options.tabs.length; i++) {
104
+ this.options.tabs[i].enabled = true;
105
+ }
106
+ if (this.renderer != null) {
107
+ this.renderer.refresh();
108
+ }
109
+ else {
110
+ refresh();
111
+ }
112
+ }
113
+ DisableAll() {
114
+ for (let i = 0; i < this.options.tabs.length; i++) {
115
+ this.options.tabs[i].enabled = false;
116
+ }
117
+ if (this.renderer != null) {
118
+ this.renderer.refresh();
119
+ }
120
+ else {
121
+ refresh();
122
+ }
123
+ }
124
+ GetByID(id) {
125
+ return this.options.tabs.filter((f) => f.id === id)[0];
126
+ }
127
+ closeTabIndex(index, raiseSelectEvent) {
128
+ var _a, _b;
129
+ // console.log("closing tab index " + index);
130
+ if (this.options.tabs[index].onClosing) {
131
+ if (this.options.tabs[index].onClosing() === false) {
132
+ return false;
133
+ }
134
+ }
135
+ this.options.tabs = this.options.tabs.filter((_, currIdx) => currIdx !== index);
136
+ let newSelectedIndex = (_b = (_a = this.State.selectedIndex) !== null && _a !== void 0 ? _a : this.options.selectedIndex) !== null && _b !== void 0 ? _b : 0;
137
+ if (this.options.tabs.length <= newSelectedIndex) {
138
+ newSelectedIndex--;
139
+ this.SetSelectedTab(newSelectedIndex);
140
+ }
141
+ if (raiseSelectEvent) {
142
+ if (this.options.onSelect) {
143
+ this.options.onSelect(newSelectedIndex);
144
+ }
145
+ }
146
+ return true;
147
+ }
148
+ // public onCreate(node: IJSLVNode) {
149
+ // this.ref = node.dom as HTMLDivElement;
150
+ // }
151
+ // public onUpdate(node: IJSLVNode) {
152
+ // this.ref = node.dom as HTMLDivElement;
153
+ // }
154
+ onInit(renderer) {
155
+ this.renderer = renderer;
156
+ }
157
+ SetSelectedTab(index) {
158
+ var _a;
159
+ if (((_a = this.options.tabs[index]) === null || _a === void 0 ? void 0 : _a.onCreate) != null && this.options.tabs[index].content == null) {
160
+ this.options.tabs[index].content = this.options.tabs[index].onCreate();
161
+ }
162
+ this.options.selectedIndex = index;
163
+ this.State.selectedIndex = index;
164
+ if (this.renderer != null) {
165
+ this.renderer.refresh();
166
+ }
167
+ else {
168
+ refresh();
169
+ }
170
+ }
171
+ toNode(content, tag) {
172
+ if (content == null) {
173
+ return undefined;
174
+ }
175
+ if (typeof content === "string") {
176
+ return { tag: tag !== null && tag !== void 0 ? tag : "div", content };
177
+ }
178
+ return content;
179
+ }
180
+ checkForDuplicateIds() {
181
+ if (this.options.tabs == null || this.options.tabs.length === 0) {
182
+ return;
183
+ }
184
+ const ids = {};
185
+ for (const tab of this.options.tabs) {
186
+ if (tab.id && ids[tab.id] !== undefined) {
187
+ throw new Error("Tab Control has duplicate id " + tab.id);
188
+ }
189
+ }
190
+ }
191
+ }
@@ -1,29 +1,29 @@
1
- import "./TimeComponent.scss";
2
- import { IJSLComponent, IJSLVNode } from "jsl-render";
3
- import { EventHandler } from "../../interaction/eventhandler";
4
- import { IDataConverter } from "../../interaction/dataconverter";
5
- export interface ITimeComponentOptions<T> {
6
- id?: string;
7
- class?: string;
8
- style?: string;
9
- placeholder?: string;
10
- value?: Date;
11
- onChange?: EventHandler<Date> | ((v?: Date) => void);
12
- bindTo?: T;
13
- property?: keyof T;
14
- bindMode?: "toModel" | "fromModel" | "both";
15
- converter?: IDataConverter<any, Date>;
16
- enabled?: boolean;
17
- inputMode?: "HourMinute" | "HourMinuteSecond";
18
- }
19
- export declare class TimeComponent<T = any> implements IJSLComponent {
20
- private options;
21
- private currentDom;
22
- constructor(options: ITimeComponentOptions<T>);
23
- render(): IJSLVNode;
24
- onCreate(node: IJSLVNode): void;
25
- onUpdate(node: IJSLVNode): void;
26
- getValue(): string;
27
- getValueAsDate(datePart: Date): Date;
28
- private raiseChangeEvent;
29
- }
1
+ import "./TimeComponent.scss";
2
+ import { IJSLComponent, IJSLVNode } from "jsl-render";
3
+ import { EventHandler } from "../../interaction/eventhandler";
4
+ import { IDataConverter } from "../../interaction/dataconverter";
5
+ export interface ITimeComponentOptions<T> {
6
+ id?: string;
7
+ class?: string;
8
+ style?: string;
9
+ placeholder?: string;
10
+ value?: Date;
11
+ onChange?: EventHandler<Date> | ((v?: Date) => void);
12
+ bindTo?: T;
13
+ property?: keyof T;
14
+ bindMode?: "toModel" | "fromModel" | "both";
15
+ converter?: IDataConverter<any, Date>;
16
+ enabled?: boolean;
17
+ inputMode?: "HourMinute" | "HourMinuteSecond";
18
+ }
19
+ export declare class TimeComponent<T = any> implements IJSLComponent {
20
+ private options;
21
+ private currentDom;
22
+ constructor(options: ITimeComponentOptions<T>);
23
+ render(): IJSLVNode;
24
+ onCreate(node: IJSLVNode): void;
25
+ onUpdate(node: IJSLVNode): void;
26
+ getValue(): string;
27
+ getValueAsDate(datePart: Date): Date;
28
+ private raiseChangeEvent;
29
+ }