jsl-ui 9.28.2 → 9.28.3

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 -68
  3. package/lib/components/auto-suggest/AutoSuggestComponent.d.ts +22 -22
  4. package/lib/components/auto-suggest/AutoSuggestComponent.js +47 -49
  5. package/lib/components/button/ButtonComponent.d.ts +18 -18
  6. package/lib/components/button/ButtonComponent.js +29 -46
  7. package/lib/components/checkbox/CheckBoxComponent.d.ts +28 -28
  8. package/lib/components/checkbox/CheckBoxComponent.js +81 -98
  9. package/lib/components/date/DateComponent.d.ts +32 -32
  10. package/lib/components/date/DateComponent.js +89 -106
  11. package/lib/components/date-range/DateRangeComponent.d.ts +35 -35
  12. package/lib/components/date-range/DateRangeComponent.js +123 -136
  13. package/lib/components/date-time/DateTimeComponent.d.ts +15 -15
  14. package/lib/components/date-time/DateTimeComponent.js +39 -53
  15. package/lib/components/dialog/DialogComponent.d.ts +67 -67
  16. package/lib/components/dialog/DialogComponent.js +198 -251
  17. package/lib/components/drop-down/DropDownComponent.d.ts +27 -27
  18. package/lib/components/drop-down/DropDownComponent.js +60 -74
  19. package/lib/components/expander/ExpanderComponent.d.ts +27 -27
  20. package/lib/components/expander/ExpanderComponent.js +89 -90
  21. package/lib/components/form-field/FormComponent.d.ts +12 -12
  22. package/lib/components/form-field/FormComponent.js +23 -26
  23. package/lib/components/form-field/FormFieldComponent.d.ts +39 -39
  24. package/lib/components/form-field/FormFieldComponent.js +138 -140
  25. package/lib/components/grid/GridComponent.d.ts +26 -26
  26. package/lib/components/grid/GridComponent.js +110 -116
  27. package/lib/components/input/InputComponent.d.ts +33 -33
  28. package/lib/components/input/InputComponent.js +126 -147
  29. package/lib/components/loading/LoadingComponent.d.ts +8 -8
  30. package/lib/components/loading/LoadingComponent.js +20 -22
  31. package/lib/components/navigation/NavigationComponent.d.ts +34 -34
  32. package/lib/components/navigation/NavigationComponent.js +45 -70
  33. package/lib/components/notification/Notification.d.ts +19 -19
  34. package/lib/components/notification/Notification.js +65 -69
  35. package/lib/components/number/NumberComponent.d.ts +26 -26
  36. package/lib/components/number/NumberComponent.js +80 -98
  37. package/lib/components/overlay/OverlayComponent.d.ts +27 -27
  38. package/lib/components/overlay/OverlayComponent.js +137 -149
  39. package/lib/components/progress/ProgressComponent.d.ts +18 -18
  40. package/lib/components/progress/ProgressComponent.js +40 -42
  41. package/lib/components/ribbon-menu/RibbonMenuComponent.d.ts +12 -12
  42. package/lib/components/ribbon-menu/RibbonMenuComponent.js +23 -34
  43. package/lib/components/select/SelectComponent.d.ts +79 -79
  44. package/lib/components/select/SelectComponent.js +356 -369
  45. package/lib/components/select/SelectDDAreaComponent.d.ts +32 -32
  46. package/lib/components/select/SelectDDAreaComponent.js +303 -317
  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 -126
  51. package/lib/components/stack-panel/StackPanelComponent.d.ts +20 -20
  52. package/lib/components/stack-panel/StackPanelComponent.js +50 -64
  53. package/lib/components/tabs/TabsComponent.d.ts +40 -40
  54. package/lib/components/tabs/TabsComponent.js +200 -204
  55. package/lib/components/time/TimeComponent.d.ts +29 -29
  56. package/lib/components/time/TimeComponent.js +104 -113
  57. package/lib/components/tree-view/TreeViewComponent.d.ts +23 -23
  58. package/lib/components/tree-view/TreeViewComponent.js +43 -45
  59. package/lib/components/virtual-render/VirtualRenderComponent.d.ts +30 -30
  60. package/lib/components/virtual-render/VirtualRenderComponent.js +92 -104
  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 -350
  65. package/lib/core/helper.d.ts +13 -13
  66. package/lib/core/helper.js +100 -104
  67. package/lib/core/jq.d.ts +37 -37
  68. package/lib/core/jq.js +362 -371
  69. package/lib/core/lang.d.ts +24 -24
  70. package/lib/core/lang.js +24 -28
  71. package/lib/core/numeric.d.ts +7 -7
  72. package/lib/core/numeric.js +139 -143
  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 -156
  78. package/lib/grid/filterDialogs/excelFilter.d.ts +9 -9
  79. package/lib/grid/filterDialogs/excelFilter.js +250 -316
  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 -1080
  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 -353
  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 -5412
  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 -220
  118. package/lib/grid.css +1 -705
  119. package/lib/grid.d.ts +13 -13
  120. package/lib/grid.js +13 -13
  121. package/lib/index.css +8 -2195
  122. package/lib/index.css.map +1 -1
  123. package/lib/index.d.ts +56 -55
  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 +0 -1
  128. package/lib/interaction/eventhandler.d.ts +13 -13
  129. package/lib/interaction/eventhandler.js +39 -42
  130. package/lib/interaction/moveable.d.ts +39 -39
  131. package/lib/interaction/moveable.js +160 -174
  132. package/lib/interaction/resizable.d.ts +37 -37
  133. package/lib/interaction/resizable.js +109 -123
  134. package/lib/ui/auto.suggest.d.ts +18 -18
  135. package/lib/ui/auto.suggest.js +244 -259
  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 -43
  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 -113
  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 -67
  170. package/package.json +1 -1
@@ -1,204 +1,200 @@
1
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
2
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
3
- if (ar || !(i in from)) {
4
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
5
- ar[i] = from[i];
6
- }
7
- }
8
- return to.concat(ar || Array.prototype.slice.call(from));
9
- };
10
- import "./TabsStyle.scss";
11
- import { refresh } from "jsl-render";
12
- import { helper } from "../../core/helper";
13
- var TabsComponent = /** @class */ (function () {
14
- function TabsComponent(options) {
15
- var _a, _b, _c;
16
- this.options = options;
17
- this.State = { selectedIndex: null };
18
- this.options = (_a = this.options) !== null && _a !== void 0 ? _a : {};
19
- this.options.tabs = (_b = this.options.tabs) !== null && _b !== void 0 ? _b : [];
20
- this.options.selectedIndex = (_c = this.options.selectedIndex) !== null && _c !== void 0 ? _c : 0;
21
- }
22
- TabsComponent.prototype.getActiveTabIndex = function () {
23
- var _a;
24
- return (_a = this.State.selectedIndex) !== null && _a !== void 0 ? _a : this.options.selectedIndex;
25
- };
26
- TabsComponent.prototype.render = function () {
27
- var _this = this;
28
- var _a, _b, _c, _d, _e;
29
- this.checkForDuplicateIds();
30
- var index = -1;
31
- var activeIndex = (_a = this.State.selectedIndex) !== null && _a !== void 0 ? _a : this.options.selectedIndex;
32
- if (activeIndex > -1 &&
33
- this.options.tabs[activeIndex].content == null &&
34
- this.options.tabs[activeIndex].onCreate) {
35
- this.options.tabs[activeIndex].content = this.options.tabs[activeIndex].onCreate();
36
- }
37
- var tabs = [];
38
- for (var idx = 0; idx < this.options.tabs.length; idx++) {
39
- if (!this.options.tabs[idx].id) {
40
- this.options.tabs[idx].id = helper.newDomGuid();
41
- }
42
- if (idx === activeIndex) {
43
- tabs.push({
44
- tag: "div", attr: {
45
- class: "tab-content " + ((_b = this.options.contentClass) !== null && _b !== void 0 ? _b : ""),
46
- style: { "max-height": ((_c = this.options.maxHeight) !== null && _c !== void 0 ? _c : "100%") },
47
- id: this.options.tabs[idx].id
48
- },
49
- children: [this.toNode(this.options.tabs[idx].content)]
50
- });
51
- }
52
- else if (this.options.preserveContent) {
53
- tabs.push({
54
- tag: "div", attr: {
55
- class: "tab-content tab-hidden " + ((_d = this.options.contentClass) !== null && _d !== void 0 ? _d : ""),
56
- style: { "max-height": ((_e = this.options.maxHeight) !== null && _e !== void 0 ? _e : "100%") },
57
- id: this.options.tabs[idx].id
58
- },
59
- children: [this.toNode(this.options.tabs[idx].content)]
60
- });
61
- }
62
- }
63
- return {
64
- tag: "div", attr: { class: "stabcomponent " + (this.options.class || ""), style: this.options.style }, children: __spreadArray([
65
- {
66
- tag: "div", attr: { class: "tab-header-row" }, children: this.options.tabs.map(function (x) {
67
- index++;
68
- var currIndex = index;
69
- return {
70
- tag: "div", attr: {
71
- class: "tab-item " + (index === activeIndex ? "active " : "") + (_this.options.tabs[currIndex].enabled === false ? "disabled " : ""),
72
- click: function (evt) {
73
- var _a;
74
- if ((_a = _this.options.tabs[currIndex].enabled) !== null && _a !== void 0 ? _a : true) {
75
- _this.SetSelectedTab(currIndex);
76
- if (_this.options.onSelect) {
77
- _this.options.onSelect(currIndex);
78
- }
79
- }
80
- }
81
- }, children: [
82
- { tag: "span", attr: { style: "vertical-align: middle; vertical-align: -webkit-baseline-middle; vertical-align: -moz-middle-with-baseline;" }, children: [_this.toNode(x.header, "span")] },
83
- _this.options.tabs[index].canClose
84
- ?
85
- {
86
- tag: "div", attr: {
87
- class: "close-button", click: function (evt) {
88
- var _a;
89
- if ((_a = _this.options.tabs[currIndex].enabled) !== null && _a !== void 0 ? _a : true) {
90
- evt.stopPropagation();
91
- _this.closeTabIndex(currIndex, true);
92
- }
93
- }
94
- }, content: "X"
95
- }
96
- :
97
- undefined
98
- ]
99
- };
100
- })
101
- }
102
- ], tabs, true)
103
- };
104
- };
105
- TabsComponent.prototype.AddTab = function (tabItem) {
106
- var _a;
107
- tabItem.enabled = (_a = tabItem.enabled) !== null && _a !== void 0 ? _a : true;
108
- this.options.tabs.push(tabItem);
109
- this.checkForDuplicateIds();
110
- return this.options.tabs.length - 1;
111
- };
112
- TabsComponent.prototype.EnableAll = function () {
113
- for (var i = 0; i < this.options.tabs.length; i++) {
114
- this.options.tabs[i].enabled = true;
115
- }
116
- if (this.renderer != null) {
117
- this.renderer.refresh();
118
- }
119
- else {
120
- refresh();
121
- }
122
- };
123
- TabsComponent.prototype.DisableAll = function () {
124
- for (var i = 0; i < this.options.tabs.length; i++) {
125
- this.options.tabs[i].enabled = false;
126
- }
127
- if (this.renderer != null) {
128
- this.renderer.refresh();
129
- }
130
- else {
131
- refresh();
132
- }
133
- };
134
- TabsComponent.prototype.GetByID = function (id) {
135
- return this.options.tabs.filter(function (f) { return f.id === id; })[0];
136
- };
137
- TabsComponent.prototype.closeTabIndex = function (index, raiseSelectEvent) {
138
- var _a, _b;
139
- // console.log("closing tab index " + index);
140
- if (this.options.tabs[index].onClosing) {
141
- if (this.options.tabs[index].onClosing() === false) {
142
- return false;
143
- }
144
- }
145
- this.options.tabs = this.options.tabs.filter(function (_, currIdx) { return currIdx !== index; });
146
- var newSelectedIndex = (_b = (_a = this.State.selectedIndex) !== null && _a !== void 0 ? _a : this.options.selectedIndex) !== null && _b !== void 0 ? _b : 0;
147
- if (this.options.tabs.length <= newSelectedIndex) {
148
- newSelectedIndex--;
149
- this.SetSelectedTab(newSelectedIndex);
150
- }
151
- if (raiseSelectEvent) {
152
- if (this.options.onSelect) {
153
- this.options.onSelect(newSelectedIndex);
154
- }
155
- }
156
- return true;
157
- };
158
- // public onCreate(node: IJSLVNode) {
159
- // this.ref = node.dom as HTMLDivElement;
160
- // }
161
- // public onUpdate(node: IJSLVNode) {
162
- // this.ref = node.dom as HTMLDivElement;
163
- // }
164
- TabsComponent.prototype.onInit = function (renderer) {
165
- this.renderer = renderer;
166
- };
167
- TabsComponent.prototype.SetSelectedTab = function (index) {
168
- var _a;
169
- if (((_a = this.options.tabs[index]) === null || _a === void 0 ? void 0 : _a.onCreate) != null && this.options.tabs[index].content == null) {
170
- this.options.tabs[index].content = this.options.tabs[index].onCreate();
171
- }
172
- this.options.selectedIndex = index;
173
- this.State.selectedIndex = index;
174
- if (this.renderer != null) {
175
- this.renderer.refresh();
176
- }
177
- else {
178
- refresh();
179
- }
180
- };
181
- TabsComponent.prototype.toNode = function (content, tag) {
182
- if (content == null) {
183
- return undefined;
184
- }
185
- if (typeof content === "string") {
186
- return { tag: tag !== null && tag !== void 0 ? tag : "div", content: content };
187
- }
188
- return content;
189
- };
190
- TabsComponent.prototype.checkForDuplicateIds = function () {
191
- if (this.options.tabs == null || this.options.tabs.length === 0) {
192
- return;
193
- }
194
- var ids = {};
195
- for (var _i = 0, _a = this.options.tabs; _i < _a.length; _i++) {
196
- var tab = _a[_i];
197
- if (tab.id && ids[tab.id] !== undefined) {
198
- throw new Error("Tab Control has duplicate id " + tab.id);
199
- }
200
- }
201
- };
202
- return TabsComponent;
203
- }());
204
- export { TabsComponent };
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,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
+ }