@web-atoms/web-controls 2.1.266 → 2.1.269

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 (201) hide show
  1. package/dist/mobile-app/MobileApp.js +1 -1
  2. package/dist/mobile-app/MobileApp.js.map +1 -1
  3. package/dist/tsconfig.tsbuildinfo +1 -1
  4. package/package.json +2 -3
  5. package/src/mobile-app/MobileApp.tsx +1 -1
  6. package/dist/ModuleFiles.sys.js +0 -57
  7. package/dist/ModuleFiles.sys.js.map +0 -1
  8. package/dist/auto-complete/AppComboBoxViewModel.sys.js +0 -23
  9. package/dist/auto-complete/AppComboBoxViewModel.sys.js.map +0 -1
  10. package/dist/auto-complete/AutoCompleteBox.sys.js +0 -402
  11. package/dist/auto-complete/AutoCompleteBox.sys.js.map +0 -1
  12. package/dist/auto-complete/AutoCompleteBoxStyle.sys.js +0 -95
  13. package/dist/auto-complete/AutoCompleteBoxStyle.sys.js.map +0 -1
  14. package/dist/auto-complete/ItemHost.sys.js +0 -46
  15. package/dist/auto-complete/ItemHost.sys.js.map +0 -1
  16. package/dist/basic/AtomChips.sys.js +0 -429
  17. package/dist/basic/AtomChips.sys.js.map +0 -1
  18. package/dist/basic/AtomRepeater.sys.js +0 -1319
  19. package/dist/basic/AtomRepeater.sys.js.map +0 -1
  20. package/dist/basic/AtomSuggestions.sys.js +0 -178
  21. package/dist/basic/AtomSuggestions.sys.js.map +0 -1
  22. package/dist/basic/Button.sys.js +0 -71
  23. package/dist/basic/Button.sys.js.map +0 -1
  24. package/dist/basic/Calendar.sys.js +0 -263
  25. package/dist/basic/Calendar.sys.js.map +0 -1
  26. package/dist/basic/CheckBoxList.sys.js +0 -88
  27. package/dist/basic/CheckBoxList.sys.js.map +0 -1
  28. package/dist/basic/Checkbox.sys.js +0 -35
  29. package/dist/basic/Checkbox.sys.js.map +0 -1
  30. package/dist/basic/ComboBox.sys.js +0 -114
  31. package/dist/basic/ComboBox.sys.js.map +0 -1
  32. package/dist/basic/DataGrid.sys.js +0 -415
  33. package/dist/basic/DataGrid.sys.js.map +0 -1
  34. package/dist/basic/DateField.sys.js +0 -120
  35. package/dist/basic/DateField.sys.js.map +0 -1
  36. package/dist/basic/DropDown.sys.js +0 -199
  37. package/dist/basic/DropDown.sys.js.map +0 -1
  38. package/dist/basic/Editable.sys.js +0 -150
  39. package/dist/basic/Editable.sys.js.map +0 -1
  40. package/dist/basic/Expander.sys.js +0 -89
  41. package/dist/basic/Expander.sys.js.map +0 -1
  42. package/dist/basic/Form.sys.js +0 -405
  43. package/dist/basic/Form.sys.js.map +0 -1
  44. package/dist/basic/FormDialog.sys.js +0 -35
  45. package/dist/basic/FormDialog.sys.js.map +0 -1
  46. package/dist/basic/FormField.sys.js +0 -214
  47. package/dist/basic/FormField.sys.js.map +0 -1
  48. package/dist/basic/IElement.sys.js +0 -9
  49. package/dist/basic/IElement.sys.js.map +0 -1
  50. package/dist/basic/Input.sys.js +0 -33
  51. package/dist/basic/Input.sys.js.map +0 -1
  52. package/dist/basic/MaskedInput.sys.js +0 -82
  53. package/dist/basic/MaskedInput.sys.js.map +0 -1
  54. package/dist/basic/MaskedInputDiv.sys.js +0 -122
  55. package/dist/basic/MaskedInputDiv.sys.js.map +0 -1
  56. package/dist/basic/Mix.sys.js +0 -44
  57. package/dist/basic/Mix.sys.js.map +0 -1
  58. package/dist/basic/Panel.sys.js +0 -42
  59. package/dist/basic/Panel.sys.js.map +0 -1
  60. package/dist/basic/PopupButton.sys.js +0 -143
  61. package/dist/basic/PopupButton.sys.js.map +0 -1
  62. package/dist/basic/RadioButtonList.sys.js +0 -79
  63. package/dist/basic/RadioButtonList.sys.js.map +0 -1
  64. package/dist/basic/RefreshLock.sys.js +0 -103
  65. package/dist/basic/RefreshLock.sys.js.map +0 -1
  66. package/dist/basic/Row.sys.js +0 -47
  67. package/dist/basic/Row.sys.js.map +0 -1
  68. package/dist/basic/Switch.sys.js +0 -54
  69. package/dist/basic/Switch.sys.js.map +0 -1
  70. package/dist/basic/TableRepeater.sys.js +0 -61
  71. package/dist/basic/TableRepeater.sys.js.map +0 -1
  72. package/dist/basic/ToggleButtonBar.sys.js +0 -81
  73. package/dist/basic/ToggleButtonBar.sys.js.map +0 -1
  74. package/dist/basic/Tooltip.sys.js +0 -121
  75. package/dist/basic/Tooltip.sys.js.map +0 -1
  76. package/dist/basic/combineClasses.sys.js +0 -15
  77. package/dist/basic/combineClasses.sys.js.map +0 -1
  78. package/dist/basic/in-built/InBuiltStyles.sys.js +0 -55
  79. package/dist/basic/in-built/InBuiltStyles.sys.js.map +0 -1
  80. package/dist/button-bar/AtomButtonBar.sys.js +0 -52
  81. package/dist/button-bar/AtomButtonBar.sys.js.map +0 -1
  82. package/dist/buttons/AtomPopupButton.sys.js +0 -25
  83. package/dist/buttons/AtomPopupButton.sys.js.map +0 -1
  84. package/dist/buttons/AtomPopupButtonStyle.sys.js +0 -35
  85. package/dist/buttons/AtomPopupButtonStyle.sys.js.map +0 -1
  86. package/dist/calendar/AtomCalendar.sys.js +0 -105
  87. package/dist/calendar/AtomCalendar.sys.js.map +0 -1
  88. package/dist/calendar/AtomCalendarStyle.sys.js +0 -186
  89. package/dist/calendar/AtomCalendarStyle.sys.js.map +0 -1
  90. package/dist/calendar/CalendarViewModel.sys.js +0 -165
  91. package/dist/calendar/CalendarViewModel.sys.js.map +0 -1
  92. package/dist/calendar/res/SRCalendar.sys.js +0 -95
  93. package/dist/calendar/res/SRCalendar.sys.js.map +0 -1
  94. package/dist/calendar/res/en-US/SRCalendar.sys.js +0 -81
  95. package/dist/calendar/res/en-US/SRCalendar.sys.js.map +0 -1
  96. package/dist/data-grid/AtomColumn.sys.js +0 -75
  97. package/dist/data-grid/AtomColumn.sys.js.map +0 -1
  98. package/dist/data-grid/AtomDataGrid.sys.js +0 -83
  99. package/dist/data-grid/AtomDataGrid.sys.js.map +0 -1
  100. package/dist/data-grid/AtomDataGridStyle.sys.js +0 -59
  101. package/dist/data-grid/AtomDataGridStyle.sys.js.map +0 -1
  102. package/dist/data-grid/AtomDataGridViewModel.sys.js +0 -98
  103. package/dist/data-grid/AtomDataGridViewModel.sys.js.map +0 -1
  104. package/dist/data-grid/GridTemplate.sys.js +0 -80
  105. package/dist/data-grid/GridTemplate.sys.js.map +0 -1
  106. package/dist/data-pager/AtomDataPager.sys.js +0 -130
  107. package/dist/data-pager/AtomDataPager.sys.js.map +0 -1
  108. package/dist/date-field/AtomDateField.sys.js +0 -67
  109. package/dist/date-field/AtomDateField.sys.js.map +0 -1
  110. package/dist/form/AtomField.sys.js +0 -177
  111. package/dist/form/AtomField.sys.js.map +0 -1
  112. package/dist/form/AtomForm.sys.js +0 -126
  113. package/dist/form/AtomForm.sys.js.map +0 -1
  114. package/dist/form/AtomFormGroup.sys.js +0 -20
  115. package/dist/form/AtomFormGroup.sys.js.map +0 -1
  116. package/dist/form/AtomFormStyle.sys.js +0 -77
  117. package/dist/form/AtomFormStyle.sys.js.map +0 -1
  118. package/dist/form/HelpPopup.sys.js +0 -30
  119. package/dist/form/HelpPopup.sys.js.map +0 -1
  120. package/dist/html-editor/AtomHtmlEditor.sys.js +0 -332
  121. package/dist/html-editor/AtomHtmlEditor.sys.js.map +0 -1
  122. package/dist/html-editor/commands/AddImage.sys.js +0 -96
  123. package/dist/html-editor/commands/AddImage.sys.js.map +0 -1
  124. package/dist/html-editor/commands/AddLink.sys.js +0 -114
  125. package/dist/html-editor/commands/AddLink.sys.js.map +0 -1
  126. package/dist/html-editor/commands/Align.sys.js +0 -44
  127. package/dist/html-editor/commands/Align.sys.js.map +0 -1
  128. package/dist/html-editor/commands/AttachFile.sys.js +0 -110
  129. package/dist/html-editor/commands/AttachFile.sys.js.map +0 -1
  130. package/dist/html-editor/commands/Bold.sys.js +0 -28
  131. package/dist/html-editor/commands/Bold.sys.js.map +0 -1
  132. package/dist/html-editor/commands/ChangeColor.sys.js +0 -62
  133. package/dist/html-editor/commands/ChangeColor.sys.js.map +0 -1
  134. package/dist/html-editor/commands/ChangeFont.sys.js +0 -78
  135. package/dist/html-editor/commands/ChangeFont.sys.js.map +0 -1
  136. package/dist/html-editor/commands/ChangeFontSize.sys.js +0 -36
  137. package/dist/html-editor/commands/ChangeFontSize.sys.js.map +0 -1
  138. package/dist/html-editor/commands/Command.sys.js +0 -64
  139. package/dist/html-editor/commands/Command.sys.js.map +0 -1
  140. package/dist/html-editor/commands/CommandButton.sys.js +0 -113
  141. package/dist/html-editor/commands/CommandButton.sys.js.map +0 -1
  142. package/dist/html-editor/commands/Headings.sys.js +0 -46
  143. package/dist/html-editor/commands/Headings.sys.js.map +0 -1
  144. package/dist/html-editor/commands/HorizontalRule.sys.js +0 -27
  145. package/dist/html-editor/commands/HorizontalRule.sys.js.map +0 -1
  146. package/dist/html-editor/commands/HtmlCommands.sys.js +0 -86
  147. package/dist/html-editor/commands/HtmlCommands.sys.js.map +0 -1
  148. package/dist/html-editor/commands/IndentLess.sys.js +0 -28
  149. package/dist/html-editor/commands/IndentLess.sys.js.map +0 -1
  150. package/dist/html-editor/commands/IndentMore.sys.js +0 -28
  151. package/dist/html-editor/commands/IndentMore.sys.js.map +0 -1
  152. package/dist/html-editor/commands/Italic.sys.js +0 -28
  153. package/dist/html-editor/commands/Italic.sys.js.map +0 -1
  154. package/dist/html-editor/commands/NumberedList.sys.js +0 -28
  155. package/dist/html-editor/commands/NumberedList.sys.js.map +0 -1
  156. package/dist/html-editor/commands/Quote.sys.js +0 -28
  157. package/dist/html-editor/commands/Quote.sys.js.map +0 -1
  158. package/dist/html-editor/commands/RemoveFormat.sys.js +0 -28
  159. package/dist/html-editor/commands/RemoveFormat.sys.js.map +0 -1
  160. package/dist/html-editor/commands/Separator.sys.js +0 -29
  161. package/dist/html-editor/commands/Separator.sys.js.map +0 -1
  162. package/dist/html-editor/commands/Source.sys.js +0 -114
  163. package/dist/html-editor/commands/Source.sys.js.map +0 -1
  164. package/dist/html-editor/commands/StrikeThrough.sys.js +0 -28
  165. package/dist/html-editor/commands/StrikeThrough.sys.js.map +0 -1
  166. package/dist/html-editor/commands/Underline.sys.js +0 -28
  167. package/dist/html-editor/commands/Underline.sys.js.map +0 -1
  168. package/dist/html-editor/commands/Unlink.sys.js +0 -28
  169. package/dist/html-editor/commands/Unlink.sys.js.map +0 -1
  170. package/dist/html-editor/commands/UnorderedList.sys.js +0 -28
  171. package/dist/html-editor/commands/UnorderedList.sys.js.map +0 -1
  172. package/dist/mobile/pages/AtomPageFrame.sys.js +0 -250
  173. package/dist/mobile/pages/AtomPageFrame.sys.js.map +0 -1
  174. package/dist/mobile/pages/AtomPageFrameStyle.sys.js +0 -69
  175. package/dist/mobile/pages/AtomPageFrameStyle.sys.js.map +0 -1
  176. package/dist/mobile/pages/AtomPageFrameTemplate.sys.js +0 -58
  177. package/dist/mobile/pages/AtomPageFrameTemplate.sys.js.map +0 -1
  178. package/dist/mobile/pages/Page.sys.js +0 -31
  179. package/dist/mobile/pages/Page.sys.js.map +0 -1
  180. package/dist/mobile/pages/PageFrameViewModel.sys.js +0 -190
  181. package/dist/mobile/pages/PageFrameViewModel.sys.js.map +0 -1
  182. package/dist/mobile/pages/TitleTemplate.sys.js +0 -32
  183. package/dist/mobile/pages/TitleTemplate.sys.js.map +0 -1
  184. package/dist/mobile-app/MobileApp.sys.js +0 -420
  185. package/dist/mobile-app/MobileApp.sys.js.map +0 -1
  186. package/dist/player/AtomVideoPlayer.sys.js +0 -280
  187. package/dist/player/AtomVideoPlayer.sys.js.map +0 -1
  188. package/dist/player/TrackProgress.sys.js +0 -33
  189. package/dist/player/TrackProgress.sys.js.map +0 -1
  190. package/dist/setupBridge.sys.js +0 -108
  191. package/dist/setupBridge.sys.js.map +0 -1
  192. package/dist/switch/AtomSwitch.sys.js +0 -56
  193. package/dist/switch/AtomSwitch.sys.js.map +0 -1
  194. package/dist/switch/AtomSwitchStyle.sys.js +0 -85
  195. package/dist/switch/AtomSwitchStyle.sys.js.map +0 -1
  196. package/dist/time-field/AtomTimeField.sys.js +0 -122
  197. package/dist/time-field/AtomTimeField.sys.js.map +0 -1
  198. package/dist/time-field/AtomTimeFieldStyle.sys.js +0 -31
  199. package/dist/time-field/AtomTimeFieldStyle.sys.js.map +0 -1
  200. package/dist/toggle-view/AtomToggleView.sys.js +0 -113
  201. package/dist/toggle-view/AtomToggleView.sys.js.map +0 -1
@@ -1,1319 +0,0 @@
1
- System.register(["@web-atoms/core/dist/core/AtomBinder", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/core/BindableProperty", "@web-atoms/core/dist/core/Colors", "@web-atoms/core/dist/core/StringHelper", "@web-atoms/core/dist/core/WatchProperty", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/StyleRule", "@web-atoms/core/dist/web/controls/AtomControl", "@web-atoms/core/dist/web/services/PopupService", "@web-atoms/core/dist/web/styles/CSS"], function (_export, _context) {
2
- "use strict";
3
-
4
- var AtomBinder, Bind, BindableProperty, Colors, StringHelper, WatchProperty, XNode, StyleRule, AtomControl, PopupControl, PopupWindow, CSS, SelectAllControl, AtomRepeater, __decorate, __metadata, __rest, popupCSS, getParentRepeaterItem, MatchTrue, MatchFalse, ArrowToString, MatchCaseInsensitive, MatchAnyCaseInsensitive, SameObjectValue, getFirstChild, hoverItem, dragOver;
5
-
6
- function askSuggestion(items, itemRenderer, match, options) {
7
- class Suggestions extends PopupWindow {
8
- create() {
9
- var _a;
10
-
11
- this.title = (_a = options === null || options === void 0 ? void 0 : options.title) !== null && _a !== void 0 ? _a : "Select";
12
- this.render(XNode.create("div", {
13
- class: popupCSS
14
- }, XNode.create("input", {
15
- type: "search",
16
- value: Bind.twoWaysImmediate(() => this.search),
17
- autofocus: true
18
- }), XNode.create("div", {
19
- class: "items"
20
- }, XNode.create(AtomRepeater, {
21
- class: "presenter",
22
- itemRenderer: itemRenderer,
23
- visibilityFilter: Bind.oneWay(() => match(this.search)),
24
- eventItemClick: e => {
25
- this.close(e.detail);
26
- },
27
- items: items
28
- }))));
29
- }
30
-
31
- }
32
-
33
- __decorate([BindableProperty, __metadata("design:type", String)], Suggestions.prototype, "search", void 0);
34
-
35
- options !== null && options !== void 0 ? options : options = {};
36
-
37
- if (typeof options.maximize === "undefined") {
38
- if (typeof options.width === "undefined") {
39
- options.maxWidth = "90%";
40
- options.minWidth = "300px";
41
- }
42
-
43
- if (typeof options.height === "undefined") {
44
- options.height = "80%";
45
- }
46
- }
47
-
48
- return Suggestions.showModal(options);
49
- }
50
-
51
- function askSuggestionPopup(opener, items, itemRenderer, match, selectedItem) {
52
- const updateSearch = ("search" in opener);
53
- const itemsInOpener = ("items" in opener);
54
-
55
- class Suggestions extends PopupControl {
56
- get items() {
57
- return itemsInOpener ? this.opener.items : items;
58
- }
59
-
60
- onPropertyChanged(name) {
61
- if (updateSearch && name === "search") {
62
- opener.search = this.search;
63
- }
64
-
65
- super.onPropertyChanged(name);
66
- }
67
-
68
- create() {
69
- this.anchorItem = selectedItem;
70
- this.opener = opener;
71
-
72
- if (selectedItem) {
73
- this.anchorIndex = items.indexOf(selectedItem);
74
- }
75
-
76
- if (itemsInOpener) {
77
- this.render(XNode.create("div", {
78
- "data-suggestion-popup": "suggestion-popup"
79
- }, XNode.create("input", {
80
- type: "search",
81
- value: Bind.twoWaysImmediate(() => this.search),
82
- eventKeydown: e => this.onKey(e),
83
- autofocus: true
84
- }), XNode.create("div", {
85
- class: "items"
86
- }, XNode.create(AtomRepeater, {
87
- class: "presenter",
88
- selectedItem: Bind.oneWay(() => this.anchorItem),
89
- itemRenderer: itemRenderer,
90
- visibilityFilter: Bind.oneWay(() => match(this.search)),
91
- eventItemClick: e => {
92
- this.close(e.detail);
93
- },
94
- items: Bind.oneWay(() => this.opener.items)
95
- }))));
96
- return;
97
- }
98
-
99
- this.render(XNode.create("div", {
100
- "data-suggestion-popup": "suggestion-popup"
101
- }, XNode.create("input", {
102
- type: "search",
103
- value: Bind.twoWaysImmediate(() => this.search),
104
- eventKeydown: e => this.onKey(e),
105
- autofocus: true
106
- }), XNode.create("div", {
107
- class: "items"
108
- }, XNode.create(AtomRepeater, {
109
- class: "presenter",
110
- selectedItem: Bind.oneWay(() => this.anchorItem),
111
- itemRenderer: itemRenderer,
112
- visibilityFilter: Bind.oneWay(() => match(this.search)),
113
- scrollToSelection: true,
114
- eventItemClick: e => {
115
- this.close(e.detail);
116
- },
117
- items: items
118
- }))));
119
- }
120
-
121
- onKey(e) {
122
- var _a;
123
-
124
- const suggested = match ? (_a = this.items) === null || _a === void 0 ? void 0 : _a.filter(match(this.search)) : this.items;
125
-
126
- switch (e.key) {
127
- case "Enter":
128
- const anchorItem = this.anchorItem;
129
-
130
- if (!anchorItem) {
131
- return;
132
- }
133
-
134
- this.anchorIndex = 0;
135
- this.close(anchorItem);
136
- this.anchorItem = null;
137
- this.search = "";
138
- break;
139
-
140
- case "ArrowDown":
141
- if (suggested) {
142
- if (!this.anchorItem) {
143
- this.anchorIndex = 0;
144
- } else {
145
- if (this.anchorIndex < suggested.length - 1) {
146
- this.anchorIndex++;
147
- }
148
- }
149
-
150
- this.anchorItem = suggested[this.anchorIndex];
151
- }
152
-
153
- break;
154
-
155
- case "ArrowUp":
156
- if (suggested) {
157
- if (!this.anchorItem) {
158
- return;
159
- }
160
-
161
- if (this.anchorIndex) {
162
- this.anchorIndex--;
163
- }
164
-
165
- this.anchorItem = suggested[this.anchorIndex];
166
- }
167
-
168
- break;
169
- }
170
- }
171
-
172
- }
173
-
174
- __decorate([BindableProperty, __metadata("design:type", String)], Suggestions.prototype, "search", void 0);
175
-
176
- return Suggestions.showControl(opener);
177
- }
178
-
179
- function SelectorCheckBox(_a, ...nodes) {
180
- var {
181
- text,
182
- icon = "far fa-square",
183
- iconSelected = "fas fa-check-square"
184
- } = _a,
185
- a = __rest(_a, ["text", "icon", "iconSelected"]);
186
-
187
- if (text) {
188
- return XNode.create("label", null, XNode.create("i", {
189
- class: icon,
190
- "data-click-event": "item-select"
191
- }), XNode.create("i", {
192
- class: iconSelected,
193
- "data-click-event": "item-deselect"
194
- }), XNode.create("span", {
195
- "data-no-wrap": "true",
196
- text: text
197
- }), ...nodes);
198
- }
199
-
200
- return XNode.create("label", null, XNode.create("i", {
201
- class: icon,
202
- "data-click-event": "item-select"
203
- }), XNode.create("i", {
204
- class: iconSelected,
205
- "data-click-event": "item-deselect"
206
- }), ...nodes);
207
- }
208
-
209
- function SelectAll(_a, ...nodes) {
210
- var {
211
- text = "Select All",
212
- icon = "far fa-square",
213
- iconSelected = "fas fa-check-square"
214
- } = _a,
215
- a = __rest(_a, ["text", "icon", "iconSelected"]);
216
-
217
- if (text) {
218
- return XNode.create(SelectAllControl, Object.assign({
219
- for: "label"
220
- }, a), XNode.create("i", {
221
- class: icon,
222
- "data-ui-type": "item-select"
223
- }), XNode.create("i", {
224
- class: iconSelected,
225
- "data-ui-type": "item-deselect"
226
- }), XNode.create("span", {
227
- "data-no-wrap": "true",
228
- text: text
229
- }));
230
- }
231
-
232
- return XNode.create(SelectAllControl, Object.assign({
233
- for: "label"
234
- }, a), XNode.create("i", {
235
- class: icon,
236
- "data-ui-type": "item-select"
237
- }), XNode.create("i", {
238
- class: iconSelected,
239
- "data-ui-type": "item-deselect"
240
- }), ...nodes);
241
- }
242
-
243
- function disposeChildren(owner, e) {
244
- if (!e) {
245
- return;
246
- }
247
-
248
- let s = e.firstElementChild;
249
-
250
- while (s) {
251
- const c = s;
252
- s = s.nextElementSibling;
253
- const ac = c.atomControl;
254
-
255
- if (ac) {
256
- ac.dispose();
257
- continue;
258
- }
259
-
260
- disposeChildren(owner, c);
261
- owner.unbind(c);
262
- owner.unbindEvent(c);
263
- }
264
-
265
- e.innerHTML = "";
266
- }
267
-
268
- function disposeChild(owner, e) {
269
- const ac = e.atomControl;
270
-
271
- if (ac) {
272
- ac.dispose();
273
- return;
274
- }
275
-
276
- disposeChildren(owner, e);
277
- owner.unbind(e);
278
- owner.unbindEvent(e);
279
- e.remove();
280
- }
281
-
282
- function defaultComparer(left, right) {
283
- if (left && right) {
284
- if (left instanceof Date) {
285
- if (right instanceof Date) {
286
- return left.getTime() === right.getTime();
287
- }
288
-
289
- return false;
290
- }
291
- }
292
-
293
- return left === right;
294
- }
295
-
296
- function updateDragDrop(e, force = false) {
297
- if (!e) {
298
- return;
299
- }
300
-
301
- if (force) {
302
- e.draggable = false;
303
- } else {
304
- force = e.draggable;
305
- }
306
-
307
- e = e.firstElementChild;
308
-
309
- while (e) {
310
- updateDragDrop(e, force);
311
- e = e.nextElementSibling;
312
- }
313
- }
314
-
315
- _export({
316
- askSuggestion: askSuggestion,
317
- askSuggestionPopup: askSuggestionPopup,
318
- SelectorCheckBox: SelectorCheckBox,
319
- SelectAll: SelectAll,
320
- disposeChildren: disposeChildren,
321
- disposeChild: disposeChild,
322
- defaultComparer: defaultComparer,
323
- default: void 0
324
- });
325
-
326
- return {
327
- setters: [function (_webAtomsCoreDistCoreAtomBinder) {
328
- AtomBinder = _webAtomsCoreDistCoreAtomBinder.AtomBinder;
329
- }, function (_webAtomsCoreDistCoreBind) {
330
- Bind = _webAtomsCoreDistCoreBind.default;
331
- }, function (_webAtomsCoreDistCoreBindableProperty) {
332
- BindableProperty = _webAtomsCoreDistCoreBindableProperty.BindableProperty;
333
- }, function (_webAtomsCoreDistCoreColors) {
334
- Colors = _webAtomsCoreDistCoreColors.default;
335
- }, function (_webAtomsCoreDistCoreStringHelper) {
336
- StringHelper = _webAtomsCoreDistCoreStringHelper.StringHelper;
337
- }, function (_webAtomsCoreDistCoreWatchProperty) {
338
- WatchProperty = _webAtomsCoreDistCoreWatchProperty.default;
339
- }, function (_webAtomsCoreDistCoreXNode) {
340
- XNode = _webAtomsCoreDistCoreXNode.default;
341
- }, function (_webAtomsCoreDistStyleStyleRule) {
342
- StyleRule = _webAtomsCoreDistStyleStyleRule.default;
343
- }, function (_webAtomsCoreDistWebControlsAtomControl) {
344
- AtomControl = _webAtomsCoreDistWebControlsAtomControl.AtomControl;
345
- }, function (_webAtomsCoreDistWebServicesPopupService) {
346
- PopupControl = _webAtomsCoreDistWebServicesPopupService.PopupControl;
347
- PopupWindow = _webAtomsCoreDistWebServicesPopupService.PopupWindow;
348
- }, function (_webAtomsCoreDistWebStylesCSS) {
349
- CSS = _webAtomsCoreDistWebStylesCSS.default;
350
- }],
351
- execute: function () {
352
- __decorate = void 0 && (void 0).__decorate || function (decorators, target, key, desc) {
353
- var c = arguments.length,
354
- r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
355
- d;
356
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
357
- return c > 3 && r && Object.defineProperty(target, key, r), r;
358
- };
359
-
360
- __metadata = void 0 && (void 0).__metadata || function (k, v) {
361
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
362
- };
363
-
364
- __rest = void 0 && (void 0).__rest || function (s, e) {
365
- var t = {};
366
-
367
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
368
-
369
- if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
370
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
371
- }
372
- return t;
373
- };
374
-
375
- popupCSS = CSS(StyleRule().height(500).width(300).verticalFlexLayout({
376
- alignItems: "stretch"
377
- }).child(StyleRule(".items").flexStretch().overflow("auto").child(StyleRule(".presenter").child(StyleRule("*").padding(5)).child(StyleRule("[data-selected-item=true]").backgroundColor(Colors.lightGreen)))));
378
-
379
- _export("getParentRepeaterItem", getParentRepeaterItem = target => {
380
- let eventName;
381
- let repeater;
382
- let index;
383
- let root;
384
-
385
- while (target) {
386
- const a = target.atomControl;
387
-
388
- if (a !== undefined && a instanceof AtomRepeater) {
389
- repeater = a;
390
- break;
391
- }
392
-
393
- if (index === undefined) {
394
- const itemIndex = target.dataset.itemIndex;
395
-
396
- if (typeof itemIndex !== "undefined") {
397
- root = target;
398
- index = ~~itemIndex;
399
- }
400
- }
401
-
402
- if (eventName === undefined) {
403
- const itemClickEvent = target.dataset.clickEvent;
404
-
405
- if (itemClickEvent) {
406
- eventName = itemClickEvent.replace(/-([a-z])/g, g => g[1].toUpperCase());
407
- }
408
- }
409
-
410
- target = target.parentElement;
411
- }
412
-
413
- if (index === void 0 || repeater === void 0) {
414
- return undefined;
415
- }
416
-
417
- const item = repeater.items[~~index];
418
- return [eventName, repeater, item, index, root];
419
- });
420
-
421
- _export("MatchTrue", MatchTrue = (...a) => true);
422
-
423
- _export("MatchFalse", MatchFalse = (...a) => false);
424
-
425
- _export("ArrowToString", ArrowToString = item => {
426
- var _a, _b;
427
-
428
- return (_b = (_a = item.label) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : item.toString();
429
- });
430
-
431
- _export("MatchCaseInsensitive", MatchCaseInsensitive = textField => {
432
- textField !== null && textField !== void 0 ? textField : textField = ArrowToString;
433
- return s => {
434
- if (!s) {
435
- return MatchTrue;
436
- }
437
-
438
- const r = StringHelper.createContainsRegExp(s);
439
- return item => r.test(textField(item));
440
- };
441
- });
442
-
443
- _export("MatchAnyCaseInsensitive", MatchAnyCaseInsensitive = textField => {
444
- textField !== null && textField !== void 0 ? textField : textField = ArrowToString;
445
- return s => {
446
- if (!s) {
447
- return MatchTrue;
448
- }
449
-
450
- const r = StringHelper.createContainsAnyWordRegExp(s);
451
- return item => r.test(textField(item));
452
- };
453
- });
454
-
455
- _export("SameObjectValue", SameObjectValue = item => item);
456
-
457
- CSS(StyleRule().height(250).width(300).verticalFlexLayout({
458
- alignItems: "stretch"
459
- }).child(StyleRule(".items").flexStretch().overflow("auto").child(StyleRule(".presenter").child(StyleRule("*").padding(5)).child(StyleRule("[data-selected-item=true]").backgroundColor(Colors.lightGreen)))), "*[data-suggestion-popup=suggestion-popup]");
460
- CSS(StyleRule().nested(StyleRule("i[data-click-event]").padding(5)).nested(StyleRule("[data-no-wrap=true]").whiteSpace("nowrap")), "*[data-selected-item]");
461
- CSS(StyleRule().nested(StyleRule("i[data-click-event=item-select]").padding(5)).displayNone(" i[data-click-event=item-select]"), "*[data-selected-item=true]");
462
- CSS(StyleRule().displayNone(" i[data-click-event=item-deselect]"), "*[data-selected-item=false]");
463
- CSS(StyleRule().flexLayout({
464
- alignItems: "center",
465
- justifyContent: "flex-start"
466
- }).margin(0).nested(StyleRule("i[data-ui-type]").padding(5)).nested(StyleRule("[data-no-wrap=true]").whiteSpace("nowrap")).displayNone("[data-is-selected=true] i[data-ui-type=item-select]").displayNone("[data-is-selected=false] i[data-ui-type=item-deselect]"), "*[data-select-all=select-all]");
467
- SelectAllControl = class SelectAllControl extends AtomControl {
468
- preCreate() {
469
- this.element.dataset.selectAll = "select-all";
470
- this.items = [];
471
- this.selectedItems = [];
472
- this.render(XNode.create(SelectAllControl, {
473
- "data-is-selected": Bind.oneWay(() => this.items.length > 0 && this.items.length === this.selectedItems.length, false)
474
- }));
475
- this.bindEvent(this.element, "click", () => {
476
- const si = this.selectedItems;
477
- const items = this.items;
478
-
479
- if (!si) {
480
- return;
481
- }
482
-
483
- if (!items) {
484
- return;
485
- }
486
-
487
- if (items.length === 0) {
488
- return;
489
- }
490
-
491
- if (items.length === si.length) {
492
- si.clear();
493
- } else {
494
- si.length = 0;
495
- si.push(...items);
496
- si.refresh();
497
- }
498
- });
499
- }
500
-
501
- };
502
-
503
- __decorate([BindableProperty, __metadata("design:type", Array)], SelectAllControl.prototype, "items", void 0);
504
-
505
- __decorate([BindableProperty, __metadata("design:type", Array)], SelectAllControl.prototype, "selectedItems", void 0);
506
-
507
- getFirstChild = container => {
508
- let child = container.firstElementChild;
509
-
510
- while (child && child.dataset.itemIndex === void 0) {
511
- child = child.nextElementSibling;
512
- }
513
-
514
- return child;
515
- };
516
-
517
- _export("default", AtomRepeater = class AtomRepeater extends AtomControl {
518
- constructor() {
519
- super(...arguments);
520
- this.bubbleEvents = true;
521
- }
522
-
523
- get allSelected() {
524
- const selectedItems = this.selectedItems;
525
- const items = this.items;
526
-
527
- if (!(items && selectedItems)) {
528
- return false;
529
- }
530
-
531
- return items.length && items.length === selectedItems.length;
532
- }
533
-
534
- get value() {
535
- var _a;
536
-
537
- if (this.initialValue !== undefined) {
538
- return this.initialValue;
539
- }
540
-
541
- const sp = this.selectedItem;
542
-
543
- if (sp === undefined) {
544
- return sp;
545
- }
546
-
547
- const vp = (_a = this.valuePath) !== null && _a !== void 0 ? _a : SameObjectValue;
548
- return vp(sp);
549
- }
550
-
551
- set value(v) {
552
- var _a, _b;
553
-
554
- this.initialValue = v;
555
-
556
- if (!this.items || !this.items.length) {
557
- AtomBinder.refreshValue(this, "value");
558
- return;
559
- }
560
-
561
- const vp = (_a = this.valuePath) !== null && _a !== void 0 ? _a : SameObjectValue;
562
- const c = (_b = this.comparer) !== null && _b !== void 0 ? _b : defaultComparer;
563
- const selectedItem = this.items.find(item => c(vp(item), v));
564
- this.selectedItem = selectedItem;
565
- delete this.initialValue;
566
- }
567
-
568
- get selectedItem() {
569
- var _a;
570
-
571
- return (_a = this.selectedItems) === null || _a === void 0 ? void 0 : _a[0];
572
- }
573
-
574
- set selectedItem(value) {
575
- var _a;
576
-
577
- const si = (_a = this.selectedItems) !== null && _a !== void 0 ? _a : this.selectedItems = [];
578
- const first = si[0];
579
-
580
- if (value === first) {
581
- return;
582
- }
583
-
584
- si.set(0, value);
585
- }
586
-
587
- onPropertyChanged(name) {
588
- var _a, _b;
589
-
590
- switch (name) {
591
- case "items":
592
- (_a = this.itemsDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
593
- const items = this.items;
594
- const d = items === null || items === void 0 ? void 0 : items.watch((target, type, index, item) => {
595
- switch (type) {
596
- case "add":
597
- case "remove":
598
- case "set":
599
- this.updatePartial(type, index, item);
600
- break;
601
- }
602
-
603
- this.updateItems();
604
- this.dispatchCustomEvent("items-updated", {
605
- type,
606
- items,
607
- index
608
- });
609
- AtomBinder.refreshValue(this, "selectedItem");
610
- AtomBinder.refreshValue(this, "value");
611
- });
612
-
613
- if (d) {
614
- this.itemsDisposable = this.registerDisposable(d);
615
- }
616
-
617
- const iv = this.initialValue;
618
-
619
- if (iv) {
620
- this.value = iv;
621
- }
622
-
623
- this.updateItems();
624
- this.dispatchCustomEvent("items-updated", {
625
- type: "reset",
626
- items,
627
- index: 0
628
- });
629
-
630
- if (this.scrollToSelection) {
631
- this.bringSelectionIntoView();
632
- }
633
-
634
- break;
635
-
636
- case "selectedItems":
637
- (_b = this.selectedItemsDisposable) === null || _b === void 0 ? void 0 : _b.dispose();
638
- const selectedItems = this.selectedItems;
639
- const sd = selectedItems === null || selectedItems === void 0 ? void 0 : selectedItems.watch(() => {
640
- this.updateClasses();
641
-
642
- if (this.scrollToSelection) {
643
- this.bringSelectionIntoView();
644
- }
645
-
646
- if (this.selectedItem) {
647
- delete this.initialValue;
648
- }
649
-
650
- AtomBinder.refreshValue(this, "selectedItem");
651
- AtomBinder.refreshValue(this, "value");
652
- AtomBinder.refreshValue(this, "allSelected");
653
- this.dispatchCustomEvent("selection-updated", selectedItems);
654
- });
655
-
656
- if (sd) {
657
- this.selectedItemsDisposable = this.registerDisposable(sd);
658
- }
659
-
660
- this.updateClasses();
661
- this.dispatchCustomEvent("selection-updated", selectedItems);
662
- AtomBinder.refreshValue(this, "allSelected");
663
- break;
664
-
665
- case "itemRenderer":
666
- case "watch":
667
- this.updateItems();
668
- break;
669
-
670
- case "visibilityFilter":
671
- this.updateVisibility();
672
- break;
673
-
674
- case "header":
675
- case "headerRenderer":
676
- this.updateHeaderFooter("header", this.headerPresenter, this.header, this.headerRenderer, true);
677
- break;
678
-
679
- case "footer":
680
- case "footerRenderer":
681
- this.updateHeaderFooter("footer", this.footerPresenter, this.footer, this.footerRenderer);
682
- break;
683
- }
684
- }
685
-
686
- bringSelectionIntoView(force) {
687
- if (force) {
688
- const selection = this.selectedItem;
689
-
690
- if (selection) {
691
- const element = this.elementForItem(selection);
692
- element === null || element === void 0 ? void 0 : element.scrollIntoView();
693
- }
694
-
695
- return;
696
- }
697
-
698
- if (this.bringIntoViewId) {
699
- clearTimeout(this.bringIntoViewId);
700
- }
701
-
702
- this.bringIntoViewId = setTimeout(() => {
703
- clearTimeout(this.bringIntoViewId);
704
- this.bringIntoViewId = undefined;
705
- this.bringSelectionIntoView(true);
706
- }, 100);
707
- }
708
-
709
- forEach(action, container) {
710
- var _a;
711
-
712
- container !== null && container !== void 0 ? container : container = (_a = this.itemsPresenter) !== null && _a !== void 0 ? _a : this.element;
713
- const items = this.items;
714
- let start = getFirstChild(container);
715
-
716
- while (start) {
717
- const index = start.dataset.itemIndex;
718
- const item = items[~~index];
719
- action(item, start);
720
- start = start.nextElementSibling;
721
- }
722
- }
723
-
724
- *any(fx, itemSelector, container) {
725
- var _a;
726
-
727
- container !== null && container !== void 0 ? container : container = (_a = this.itemsPresenter) !== null && _a !== void 0 ? _a : this.element;
728
- const items = this.items;
729
- let node = getFirstChild(container);
730
-
731
- while (node) {
732
- const index = node.dataset.itemIndex;
733
- const item = items[~~index];
734
- let element = node;
735
-
736
- if (itemSelector) {
737
- element = element.querySelector(itemSelector);
738
- }
739
-
740
- const ie = {
741
- item,
742
- element
743
- };
744
-
745
- if (fx) {
746
- if (fx(item)) {
747
- yield ie;
748
- }
749
-
750
- continue;
751
- }
752
-
753
- yield ie;
754
- node = node.nextElementSibling;
755
- }
756
- }
757
-
758
- *all(container) {
759
- var _a;
760
-
761
- container !== null && container !== void 0 ? container : container = (_a = this.itemsPresenter) !== null && _a !== void 0 ? _a : this.element;
762
- const items = this.items;
763
- let element = getFirstChild(container);
764
-
765
- while (element) {
766
- const index = element.dataset.itemIndex;
767
- const item = items[~~index];
768
- yield {
769
- item,
770
- element
771
- };
772
- element = element.nextElementSibling;
773
- }
774
- }
775
-
776
- elementForItem(itemToFind, container) {
777
- var _a;
778
-
779
- container !== null && container !== void 0 ? container : container = (_a = this.itemsPresenter) !== null && _a !== void 0 ? _a : this.element;
780
- const items = this.items;
781
- let element = getFirstChild(container);
782
-
783
- while (element) {
784
- const index = element.dataset.itemIndex;
785
- const item = items[~~index];
786
-
787
- if (item === itemToFind) {
788
- return element;
789
- }
790
-
791
- element = element.nextElementSibling;
792
- }
793
- }
794
-
795
- refreshItem(item, fx, index = -1) {
796
- if (index === -1) {
797
- index = this.items.indexOf(item);
798
- }
799
-
800
- if (fx === null || fx === void 0 ? void 0 : fx.then) {
801
- const finalize = () => {
802
- this.refreshItem(item, undefined, index);
803
- };
804
-
805
- fx.then(finalize, finalize);
806
- return;
807
- }
808
-
809
- this.updatePartial("set", index, item);
810
- }
811
-
812
- updatePartial(key, index, item, container) {
813
- var _a, _b, _c, _d, _e, _f;
814
-
815
- const items = this.items;
816
-
817
- if (!items) {
818
- return;
819
- }
820
-
821
- const ir = this.itemRenderer;
822
-
823
- if (!ir) {
824
- return;
825
- }
826
-
827
- container !== null && container !== void 0 ? container : container = (_a = this.itemsPresenter) !== null && _a !== void 0 ? _a : this.element;
828
- let start = getFirstChild(container);
829
- let ei;
830
-
831
- while (start) {
832
- ei = ~~start.dataset.itemIndex;
833
-
834
- if (ei === index) {
835
- break;
836
- }
837
-
838
- start = start.nextElementSibling;
839
- }
840
-
841
- if (key !== "add" && !start) {
842
- return;
843
- }
844
-
845
- const vp = (_b = this.valuePath) !== null && _b !== void 0 ? _b : it => it;
846
- const si = ((_c = this.selectedItems) !== null && _c !== void 0 ? _c : []).map(vp);
847
- const isRemove = key === "remove";
848
-
849
- if (isRemove || key === "set") {
850
- const current = start;
851
- start = start.nextElementSibling;
852
- const ac = current.atomControl;
853
-
854
- if (ac) {
855
- ac.dispose();
856
- } else {
857
- this.unbind(current);
858
- this.unbindEvent(current);
859
- }
860
-
861
- current.remove();
862
- }
863
-
864
- if (!isRemove) {
865
- const en = ir(item);
866
- const ea = (_d = en.attributes) !== null && _d !== void 0 ? _d : en.attributes = {};
867
- const v = vp(item);
868
- const e = document.createElement((_f = (_e = ea.for) !== null && _e !== void 0 ? _e : en.name) !== null && _f !== void 0 ? _f : "div");
869
- e.dataset.itemIndex = (index++).toString();
870
- e.dataset.selectedItem = si.indexOf(v) !== -1 ? "true" : "false";
871
-
872
- if (this.enableDragDrop) {
873
- updateDragDrop(e);
874
- }
875
-
876
- if (start) {
877
- container.insertBefore(e, start);
878
- } else {
879
- container.appendChild(e);
880
- }
881
-
882
- this.render(en, e, this);
883
- }
884
-
885
- while (start) {
886
- const ci = items[index];
887
- const cv = vp(ci);
888
- start.dataset.itemIndex = (index++).toString();
889
- start.dataset.selectedItem = si.indexOf(cv) !== -1 ? "true" : "false";
890
- start = start.nextElementSibling;
891
- }
892
- }
893
-
894
- updateItems(container, force) {
895
- var _a, _b, _c, _d, _e, _f;
896
-
897
- if (this.deferUpdates && !force) {
898
- if (this.deferredUpdateId) {
899
- return;
900
- }
901
-
902
- this.deferredUpdateId = setTimeout(() => {
903
- this.deferredUpdateId = 0;
904
- this.updateItems(container, true);
905
- }, 1);
906
- return;
907
- }
908
-
909
- container !== null && container !== void 0 ? container : container = (_a = this.itemsPresenter) !== null && _a !== void 0 ? _a : this.element;
910
- disposeChildren(this, container);
911
- this.onPropertyChanged("header");
912
- const ir = this.itemRenderer;
913
-
914
- if (!ir) {
915
- this.onPropertyChanged("footer");
916
- return;
917
- }
918
-
919
- const items = this.items;
920
-
921
- if (!items) {
922
- this.onPropertyChanged("footer");
923
- return;
924
- }
925
-
926
- const vp = (_b = this.valuePath) !== null && _b !== void 0 ? _b : it => it;
927
- const si = ((_c = this.selectedItems) !== null && _c !== void 0 ? _c : []).map(vp);
928
- let i = 0;
929
-
930
- for (const iterator of items) {
931
- const e = ir(iterator);
932
- const ea = (_d = e.attributes) !== null && _d !== void 0 ? _d : e.attributes = {};
933
- const v = vp(iterator);
934
- const element = document.createElement((_f = (_e = ea.for) !== null && _e !== void 0 ? _e : e.name) !== null && _f !== void 0 ? _f : "div");
935
- element.dataset.itemIndex = (i++).toString();
936
- element.dataset.selectedItem = si.indexOf(v) !== -1 ? "true" : "false";
937
- this.render(e, element, this);
938
-
939
- if (this.enableDragDrop) {
940
- updateDragDrop(element);
941
- }
942
-
943
- container.appendChild(element);
944
- }
945
-
946
- this.onPropertyChanged("footer");
947
- }
948
-
949
- dispatchCustomEvent(type, detail) {
950
- var _a;
951
-
952
- type = StringHelper.fromHyphenToCamel(type);
953
- (_a = this.element) === null || _a === void 0 ? void 0 : _a.dispatchEvent(new CustomEvent(type, {
954
- detail,
955
- bubbles: false,
956
- cancelable: true
957
- }));
958
- }
959
-
960
- updateClasses() {
961
- var _a, _b, _c;
962
-
963
- const container = (_a = this.itemsPresenter) !== null && _a !== void 0 ? _a : this.element;
964
- const items = this.items;
965
- let element = getFirstChild(container);
966
- const vp = (_b = this.valuePath) !== null && _b !== void 0 ? _b : i => i;
967
- const si = ((_c = this.selectedItems) !== null && _c !== void 0 ? _c : []).map(vp);
968
-
969
- while (element) {
970
- const index = ~~element.dataset.itemIndex;
971
- const item = items[index];
972
- const v = vp(item);
973
- element.dataset.selectedItem = si.indexOf(v) !== -1 ? "true" : "false";
974
- element = element.nextElementSibling;
975
- }
976
- }
977
-
978
- updateVisibility() {
979
- var _a, _b;
980
-
981
- const container = (_a = this.itemsPresenter) !== null && _a !== void 0 ? _a : this.element;
982
- const items = this.items;
983
- let element = container.firstElementChild;
984
- const vf = (_b = this.visibilityFilter) !== null && _b !== void 0 ? _b : MatchTrue;
985
-
986
- while (element) {
987
- const index = ~~element.dataset.itemIndex;
988
- const item = items[index];
989
- element.style.display = vf(item) ? "" : "none";
990
- element = element.nextElementSibling;
991
- }
992
- }
993
-
994
- updateHeaderFooter(name, presenter, item, itemRenderer, insert) {
995
- var _a, _b, _c, _d;
996
-
997
- presenter !== null && presenter !== void 0 ? presenter : presenter = (_a = this.itemsPresenter) !== null && _a !== void 0 ? _a : this.itemsPresenter = this.element;
998
-
999
- if (!presenter) {
1000
- return;
1001
- }
1002
-
1003
- let current;
1004
-
1005
- if (insert) {
1006
- current = presenter.firstElementChild;
1007
-
1008
- while (current && current.dataset[name] !== name) {
1009
- current = current.nextElementSibling;
1010
- }
1011
- } else {
1012
- current = presenter.lastElementChild;
1013
-
1014
- while (current && current.dataset[name] !== name) {
1015
- current = current.previousElementSibling;
1016
- }
1017
- }
1018
-
1019
- if (current) {
1020
- disposeChild(this, current);
1021
- }
1022
-
1023
- if (!(item && itemRenderer)) {
1024
- return;
1025
- }
1026
-
1027
- const node = itemRenderer(item);
1028
- const element = document.createElement((_d = (_c = (_b = node.attributes) === null || _b === void 0 ? void 0 : _b.for) !== null && _c !== void 0 ? _c : node.name) !== null && _d !== void 0 ? _d : "div");
1029
- element.dataset[name] = name;
1030
- this.render(node, element, this);
1031
-
1032
- if (insert) {
1033
- presenter.insertBefore(element, presenter.firstElementChild);
1034
- } else {
1035
- presenter.appendChild(element);
1036
- }
1037
- }
1038
-
1039
- dispatchHeaderFooterEvent(eventName, type, originalTarget) {
1040
- const detail = this[type];
1041
- const ce = new CustomEvent(eventName !== null && eventName !== void 0 ? eventName : `${type}Click`, {
1042
- detail,
1043
- bubbles: this.bubbleEvents,
1044
- cancelable: true
1045
- });
1046
- originalTarget.dispatchEvent(ce);
1047
-
1048
- if (!ce.defaultPrevented) {
1049
- this.onPropertyChanged(type);
1050
- }
1051
- }
1052
-
1053
- dispatchItemEvent(eventName, item, recreate, originalTarget) {
1054
- const ce = new CustomEvent(eventName !== null && eventName !== void 0 ? eventName : "itemClick", {
1055
- detail: item,
1056
- bubbles: this.bubbleEvents,
1057
- cancelable: true
1058
- });
1059
- originalTarget.dispatchEvent(ce);
1060
-
1061
- if (recreate && ce.executed && !ce.defaultPrevented) {
1062
- this.refreshItem(item, ce.promise);
1063
- }
1064
- }
1065
-
1066
- dispatchClickEvent(e, data) {
1067
- var _a;
1068
-
1069
- let {
1070
- clickEvent = "itemClick",
1071
- recreate,
1072
- header,
1073
- footer,
1074
- itemIndex
1075
- } = data;
1076
- clickEvent = clickEvent.replace(/-([a-z])/g, g => g[1].toUpperCase());
1077
-
1078
- if (header) {
1079
- this.dispatchHeaderFooterEvent(clickEvent, header, e.target);
1080
- return;
1081
- }
1082
-
1083
- if (footer) {
1084
- this.dispatchHeaderFooterEvent(clickEvent, header, e.target);
1085
- return;
1086
- }
1087
-
1088
- if (itemIndex === void 0 || itemIndex === null) {
1089
- return;
1090
- }
1091
-
1092
- let index = ~~itemIndex;
1093
- const item = this.items[index];
1094
-
1095
- if (clickEvent === "itemSelect" || clickEvent === "itemDeselect") {
1096
- const si = (_a = this.selectedItems) !== null && _a !== void 0 ? _a : this.selectedItems = [];
1097
-
1098
- if (si) {
1099
- index = si.indexOf(item);
1100
-
1101
- if (index === -1) {
1102
- if (this.allowMultipleSelection) {
1103
- si.add(item);
1104
- } else {
1105
- si.set(0, item);
1106
- }
1107
- } else {
1108
- si.removeAt(index);
1109
- }
1110
- }
1111
- }
1112
-
1113
- if (item) {
1114
- this.dispatchItemEvent(clickEvent, item, recreate, e.target);
1115
- }
1116
- }
1117
-
1118
- });
1119
-
1120
- __decorate([BindableProperty, __metadata("design:type", Boolean)], AtomRepeater.prototype, "allowMultipleSelection", void 0);
1121
-
1122
- __decorate([BindableProperty, __metadata("design:type", Array)], AtomRepeater.prototype, "selectedItems", void 0);
1123
-
1124
- __decorate([BindableProperty, __metadata("design:type", Object)], AtomRepeater.prototype, "itemsPresenter", void 0);
1125
-
1126
- __decorate([BindableProperty, __metadata("design:type", Array)], AtomRepeater.prototype, "items", void 0);
1127
-
1128
- __decorate([BindableProperty, __metadata("design:type", Object)], AtomRepeater.prototype, "watch", void 0);
1129
-
1130
- __decorate([BindableProperty, __metadata("design:type", Function)], AtomRepeater.prototype, "visibilityFilter", void 0);
1131
-
1132
- __decorate([BindableProperty, __metadata("design:type", Function)], AtomRepeater.prototype, "enableFunc", void 0);
1133
-
1134
- __decorate([BindableProperty, __metadata("design:type", Function)], AtomRepeater.prototype, "itemRenderer", void 0);
1135
-
1136
- __decorate([BindableProperty, __metadata("design:type", Function)], AtomRepeater.prototype, "valuePath", void 0);
1137
-
1138
- __decorate([BindableProperty, __metadata("design:type", Function)], AtomRepeater.prototype, "comparer", void 0);
1139
-
1140
- __decorate([BindableProperty, __metadata("design:type", Boolean)], AtomRepeater.prototype, "deferUpdates", void 0);
1141
-
1142
- __decorate([BindableProperty, __metadata("design:type", Object)], AtomRepeater.prototype, "header", void 0);
1143
-
1144
- __decorate([BindableProperty, __metadata("design:type", Object)], AtomRepeater.prototype, "headerRenderer", void 0);
1145
-
1146
- __decorate([BindableProperty, __metadata("design:type", Object)], AtomRepeater.prototype, "footer", void 0);
1147
-
1148
- __decorate([BindableProperty, __metadata("design:type", Object)], AtomRepeater.prototype, "footerRenderer", void 0);
1149
-
1150
- __decorate([BindableProperty, __metadata("design:type", Object)], AtomRepeater.prototype, "enableDragDrop", void 0);
1151
-
1152
- __decorate([WatchProperty, __metadata("design:type", Object), __metadata("design:paramtypes", [])], AtomRepeater.prototype, "allSelected", null);
1153
-
1154
- hoverItem = {
1155
- repeater: null,
1156
- target: null,
1157
- item: null,
1158
- placeholder: null
1159
- };
1160
- document.body.addEventListener("dragstart", e => {
1161
- const {
1162
- target
1163
- } = e;
1164
-
1165
- if (target.draggable) {
1166
- const ri = getParentRepeaterItem(target);
1167
-
1168
- if (!ri) {
1169
- return;
1170
- }
1171
-
1172
- const [type, repeater, item, index] = ri;
1173
-
1174
- if (!repeater || !repeater.enableDragDrop) {
1175
- return;
1176
- }
1177
-
1178
- const placeholder = document.createElement("div");
1179
- placeholder.style.width = target.offsetWidth + "px";
1180
- placeholder.style.height = target.offsetHeight + "px";
1181
- placeholder.style.backgroundColor = Colors.lightGray.toString();
1182
- placeholder.style.border = "solid 1px gray";
1183
- placeholder.style.borderRadius = "10px";
1184
- hoverItem = {
1185
- repeater,
1186
- target,
1187
- item,
1188
- placeholder
1189
- };
1190
- e.dataTransfer.dropEffect = "move";
1191
- setTimeout(() => {
1192
- target.style.display = "none";
1193
- target.parentElement.insertBefore(placeholder, target);
1194
- }, 0);
1195
- }
1196
- });
1197
- document.body.addEventListener("dragend", e => {
1198
- var _a, _b;
1199
-
1200
- if (!(hoverItem === null || hoverItem === void 0 ? void 0 : hoverItem.placeholder)) {
1201
- return;
1202
- }
1203
-
1204
- const {
1205
- item,
1206
- placeholder,
1207
- repeater
1208
- } = hoverItem;
1209
- let start = placeholder;
1210
- let index = -1;
1211
-
1212
- while (start) {
1213
- const itemIndex = (_b = (_a = start.previousElementSibling) === null || _a === void 0 ? void 0 : _a.dataset) === null || _b === void 0 ? void 0 : _b.itemIndex;
1214
-
1215
- if (itemIndex !== void 0) {
1216
- index = ~~itemIndex;
1217
- }
1218
-
1219
- if (start.parentElement.atomControl) {
1220
- break;
1221
- }
1222
-
1223
- start = start.parentElement;
1224
- }
1225
-
1226
- const targetRepeater = start.parentElement.atomControl;
1227
- placeholder.remove();
1228
- hoverItem.placeholder = null;
1229
- repeater.items.remove(item);
1230
- index++;
1231
- const ce = new CustomEvent("itemDropped", {
1232
- detail: {
1233
- item,
1234
- index
1235
- }
1236
- });
1237
-
1238
- if (ce.defaultPrevented) {
1239
- return;
1240
- }
1241
-
1242
- const {
1243
- detail
1244
- } = ce;
1245
- targetRepeater.items.insert(detail.index, detail.item);
1246
- });
1247
-
1248
- dragOver = e => {
1249
- if (hoverItem) {
1250
- const {
1251
- placeholder
1252
- } = hoverItem;
1253
-
1254
- if (e.target === placeholder) {
1255
- return;
1256
- }
1257
- }
1258
-
1259
- const ri = getParentRepeaterItem(e.target);
1260
-
1261
- if (!ri) {
1262
- return;
1263
- }
1264
-
1265
- const [type, repeater, item, index, target] = ri;
1266
-
1267
- if (!repeater) {
1268
- return;
1269
- }
1270
-
1271
- if (hoverItem) {
1272
- const {
1273
- placeholder
1274
- } = hoverItem;
1275
- e.preventDefault();
1276
- const mp = {
1277
- x: e.clientX,
1278
- y: e.clientY
1279
- };
1280
-
1281
- const isBefore = (co, n) => n.x <= co.x + co.width * 0.3 || n.y <= co.y + co.height * 0.3;
1282
-
1283
- const isAfter = (co, n) => n.x >= co.x + co.width * 0.7 || n.y >= co.y + co.height * 0.7;
1284
-
1285
- const targetBounds = target.getBoundingClientRect();
1286
-
1287
- if (isAfter(targetBounds, mp)) {
1288
- const next = target.nextElementSibling;
1289
-
1290
- if (next === placeholder) {
1291
- return;
1292
- }
1293
-
1294
- placeholder.remove();
1295
- target.insertAdjacentElement("afterend", placeholder);
1296
- return;
1297
- }
1298
-
1299
- if (isBefore(targetBounds, mp)) {
1300
- const previous = target.previousElementSibling;
1301
-
1302
- if (previous === placeholder) {
1303
- return;
1304
- }
1305
-
1306
- placeholder.remove();
1307
- target.insertAdjacentElement("beforebegin", placeholder);
1308
- }
1309
-
1310
- return;
1311
- }
1312
- };
1313
-
1314
- document.body.addEventListener("dragover", dragOver);
1315
- document.body.addEventListener("dragenter", dragOver);
1316
- }
1317
- };
1318
- });
1319
- //# sourceMappingURL=AtomRepeater.sys.js.map