fwtoolkit 0.1.0-alpha.5 → 0.1.0-alpha.6

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 (118) hide show
  1. package/README.md +41 -9
  2. package/dist/basic.d.ts +70 -0
  3. package/dist/basic.d.ts.map +1 -0
  4. package/dist/basic.js +447 -0
  5. package/dist/basic.js.map +1 -0
  6. package/dist/blob.d.ts +2 -0
  7. package/dist/blob.d.ts.map +1 -0
  8. package/dist/blob.js +12 -0
  9. package/dist/blob.js.map +1 -0
  10. package/dist/content_menu.d.ts +31 -0
  11. package/dist/content_menu.d.ts.map +1 -0
  12. package/dist/content_menu.js +360 -0
  13. package/dist/content_menu.js.map +1 -0
  14. package/dist/datatable_bulk.d.ts +14 -0
  15. package/dist/datatable_bulk.d.ts.map +1 -0
  16. package/dist/datatable_bulk.js +176 -0
  17. package/dist/datatable_bulk.js.map +1 -0
  18. package/dist/dialog.d.ts +18 -0
  19. package/dist/dialog.d.ts.map +1 -0
  20. package/dist/dialog.js +395 -0
  21. package/dist/dialog.js.map +1 -0
  22. package/dist/events.d.ts +2 -0
  23. package/dist/events.d.ts.map +1 -0
  24. package/dist/events.js +11 -0
  25. package/dist/events.js.map +1 -0
  26. package/dist/faq_dialog.d.ts +8 -0
  27. package/dist/faq_dialog.d.ts.map +1 -0
  28. package/dist/faq_dialog.js +63 -0
  29. package/dist/faq_dialog.js.map +1 -0
  30. package/dist/file/dialog.d.ts +27 -0
  31. package/dist/file/dialog.d.ts.map +1 -0
  32. package/dist/file/dialog.js +125 -0
  33. package/dist/file/dialog.js.map +1 -0
  34. package/dist/file/index.d.ts +5 -0
  35. package/dist/file/index.d.ts.map +1 -0
  36. package/dist/file/index.js +6 -0
  37. package/dist/file/index.js.map +1 -0
  38. package/dist/file/new_folder_dialog.d.ts +5 -0
  39. package/dist/file/new_folder_dialog.d.ts.map +1 -0
  40. package/dist/file/new_folder_dialog.js +34 -0
  41. package/dist/file/new_folder_dialog.js.map +1 -0
  42. package/dist/file/selector.d.ts +22 -0
  43. package/dist/file/selector.d.ts.map +1 -0
  44. package/dist/file/selector.js +239 -0
  45. package/dist/file/selector.js.map +1 -0
  46. package/dist/file/templates.d.ts +5 -0
  47. package/dist/file/templates.d.ts.map +1 -0
  48. package/dist/file/templates.js +9 -0
  49. package/dist/file/templates.js.map +1 -0
  50. package/dist/file/tools.d.ts +5 -0
  51. package/dist/file/tools.d.ts.map +1 -0
  52. package/dist/file/tools.js +51 -0
  53. package/dist/file/tools.js.map +1 -0
  54. package/dist/focus.d.ts +3 -0
  55. package/dist/focus.d.ts.map +1 -0
  56. package/dist/focus.js +12 -0
  57. package/dist/focus.js.map +1 -0
  58. package/dist/index.d.ts +18 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +19 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/network.d.ts +11 -0
  63. package/dist/network.d.ts.map +1 -0
  64. package/dist/network.js +113 -0
  65. package/dist/network.js.map +1 -0
  66. package/dist/overview_menu.d.ts +27 -0
  67. package/dist/overview_menu.d.ts.map +1 -0
  68. package/dist/overview_menu.js +536 -0
  69. package/dist/overview_menu.js.map +1 -0
  70. package/dist/settings.d.ts +3 -0
  71. package/dist/settings.d.ts.map +1 -0
  72. package/dist/settings.js +16 -0
  73. package/dist/settings.js.map +1 -0
  74. package/dist/templates.d.ts +7 -0
  75. package/dist/templates.d.ts.map +1 -0
  76. package/dist/templates.js +43 -0
  77. package/dist/templates.js.map +1 -0
  78. package/dist/user.d.ts +6 -0
  79. package/dist/user.d.ts.map +1 -0
  80. package/dist/user.js +45 -0
  81. package/dist/user.js.map +1 -0
  82. package/dist/user_util.d.ts +7 -0
  83. package/dist/user_util.d.ts.map +1 -0
  84. package/dist/user_util.js +19 -0
  85. package/dist/user_util.js.map +1 -0
  86. package/dist/worker.d.ts +2 -0
  87. package/dist/worker.d.ts.map +1 -0
  88. package/dist/worker.js +12 -0
  89. package/dist/worker.js.map +1 -0
  90. package/dist/ws.d.ts +46 -0
  91. package/dist/ws.d.ts.map +1 -0
  92. package/dist/ws.js +329 -0
  93. package/dist/ws.js.map +1 -0
  94. package/package.json +25 -4
  95. package/src/{basic.js → basic.ts} +1 -0
  96. package/src/{blob.js → blob.ts} +1 -0
  97. package/src/{content_menu.js → content_menu.ts} +1 -0
  98. package/src/{datatable_bulk.js → datatable_bulk.ts} +1 -0
  99. package/src/{dialog.js → dialog.ts} +1 -0
  100. package/src/{events.js → events.ts} +1 -0
  101. package/src/{faq_dialog.js → faq_dialog.ts} +1 -0
  102. package/src/file/{dialog.js → dialog.ts} +1 -0
  103. package/src/file/{index.js → index.ts} +1 -0
  104. package/src/file/{new_folder_dialog.js → new_folder_dialog.ts} +1 -0
  105. package/src/file/{selector.js → selector.ts} +1 -0
  106. package/src/file/{templates.js → templates.ts} +1 -0
  107. package/src/file/{tools.js → tools.ts} +1 -0
  108. package/src/{focus.js → focus.ts} +1 -0
  109. package/src/global.d.ts +11 -0
  110. package/src/{index.js → index.ts} +1 -0
  111. package/src/{network.js → network.ts} +1 -0
  112. package/src/{overview_menu.js → overview_menu.ts} +1 -0
  113. package/src/{settings.js → settings.ts} +1 -0
  114. package/src/{templates.js → templates.ts} +1 -0
  115. package/src/{user.js → user.ts} +1 -0
  116. package/src/{user_util.js → user_util.ts} +1 -0
  117. package/src/{worker.js → worker.ts} +1 -0
  118. package/src/{ws.js → ws.ts} +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content_menu.d.ts","sourceRoot":"","sources":["../src/content_menu.ts"],"names":[],"mappings":"AAuDA,qBAAa,WAAW;gBACR,EACR,EAAU,EACV,IAAY,EACZ,OAAe,EACf,IAAoB,EACpB,MAAc,EACd,KAAa,EACb,OAAe,EACf,MAAc,EACd,QAAgB,EAChB,UAAkB,EAClB,OAAe,EAClB;;;;;;;;;;;;;;KAAA;IAiBD,IAAI;IAgCJ,iBAAiB,CAAC,OAAO,KAAA;IAqDzB,kBAAkB;IA+ClB,sBAAsB;IAmCtB,YAAY;IAYZ,cAAc;IA4Bd,IAAI;IASJ,sBAAsB;IAetB,KAAK;IAoBL,OAAO,CAAC,KAAK,KAAA;IAeb,SAAS,CAAC,KAAK,KAAA;IA0Gf,kBAAkB;IAUlB,aAAa,CAAC,KAAK,KAAA;CAQtB"}
@@ -0,0 +1,360 @@
1
+ // @ts-nocheck
2
+ const menuTemplate = ({ id, classes, height, width, zIndex, menu, scroll, page }) => `<div tabindex="-1" role="incontent_menu"
3
+ class="ui-content-menu ui-corner-all ui-widget ui-widget-content ui-front"
4
+ ${id ? `aria-describedby="${id}"` : ""} style="z-index: ${zIndex};">
5
+ <div ${id ? `id="${id}"` : ""} class="ui-content-menu-content ui-widget-content${classes ? ` ${classes}` : ""}${scroll ? " ui-scrollable" : ""}" style="width: ${width}; height: ${height};">
6
+ <div>
7
+ <ul class="content-menu-list">
8
+ ${menu.content
9
+ .map((menuItem, index) => {
10
+ switch (menuItem.type) {
11
+ case "header":
12
+ return `<li><span class="content-menu-item-header" title="${menuItem.tooltip}">${typeof menuItem.title === "function"
13
+ ? menuItem.title(page)
14
+ : menuItem.title}</span></li>`;
15
+ case "separator":
16
+ return '<li><hr class="content-menu-item-divider"/></li>';
17
+ default:
18
+ return `<li tabindex="0" data-index="${index}" class="content-menu-item${menuItem.disabled && menuItem.disabled(page)
19
+ ? " disabled"
20
+ : menuItem.selected
21
+ ? " selected"
22
+ : ""}" title='${menuItem.tooltip}'>
23
+ ${typeof menuItem.title === "function"
24
+ ? menuItem.title(page)
25
+ : menuItem.title} ${menuItem.icon
26
+ ? `<span class="content-menu-item-icon"><i class="fa fa-${menuItem.icon}"></i></span>`
27
+ : ""}
28
+ </li>`;
29
+ }
30
+ })
31
+ .join("")}
32
+ </ul>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ <div class="ui-widget-overlay ui-front" style="z-index: ${zIndex - 1}"></div>`;
37
+ export class ContentMenu {
38
+ constructor({ id = false, page = false, classes = false, menu = { content: [] }, height = false, width = false, onClose = false, scroll = false, dialogEl = false, backdropEl = false, menuPos = false }) {
39
+ this.id = id;
40
+ this.page = page;
41
+ this.classes = classes;
42
+ this.menu = menu;
43
+ this.height = height ? `${height}px` : "auto";
44
+ this.width = width ? `${width}px` : "auto";
45
+ this.onClose = onClose;
46
+ this.scroll = scroll;
47
+ this.dialogEl = dialogEl;
48
+ this.backdropEl = backdropEl;
49
+ this.menuPos = menuPos;
50
+ this.focusedIndex = 0;
51
+ this.previouslyFocusedElement = null;
52
+ }
53
+ open() {
54
+ if (this.dialogEl) {
55
+ return;
56
+ }
57
+ this.previouslyFocusedElement = document.activeElement;
58
+ document.body.insertAdjacentHTML("beforeend", menuTemplate({
59
+ id: this.id,
60
+ classes: this.classes,
61
+ height: this.height,
62
+ width: this.width,
63
+ zIndex: this.getHighestDialogZIndex() + 2,
64
+ menu: this.menu,
65
+ scroll: this.scroll,
66
+ page: this.page
67
+ }));
68
+ this.backdropEl = document.body.lastElementChild;
69
+ this.dialogEl = this.backdropEl.previousElementSibling;
70
+ if (this.menuPos?.X && this.menuPos?.Y) {
71
+ this.positionDialog();
72
+ }
73
+ else {
74
+ this.centerDialog();
75
+ }
76
+ this.checkAndAddColumns();
77
+ this.bind();
78
+ this.focusFirstMenuItem();
79
+ }
80
+ renderColumnsHtml(columns) {
81
+ const itemsPerColumn = Math.ceil(this.menu.content.length / columns);
82
+ let html = '<div class="content-menu-columns">';
83
+ for (let col = 0; col < columns; col++) {
84
+ const start = col * itemsPerColumn;
85
+ const end = Math.min(start + itemsPerColumn, this.menu.content.length);
86
+ if (start >= this.menu.content.length) {
87
+ break;
88
+ }
89
+ html += '<ul class="content-menu-list">';
90
+ for (let i = start; i < end; i++) {
91
+ const menuItem = this.menu.content[i];
92
+ switch (menuItem.type) {
93
+ case "header":
94
+ html += `<li><span class="content-menu-item-header" title="${menuItem.tooltip}">${typeof menuItem.title === "function"
95
+ ? menuItem.title(this.page)
96
+ : menuItem.title}</span></li>`;
97
+ break;
98
+ case "separator":
99
+ html +=
100
+ '<li><hr class="content-menu-item-divider"/></li>';
101
+ break;
102
+ default:
103
+ html += `<li tabindex="0" data-index="${i}" class="content-menu-item${menuItem.disabled && menuItem.disabled(this.page)
104
+ ? " disabled"
105
+ : menuItem.selected
106
+ ? " selected"
107
+ : ""}" title='${menuItem.tooltip}'>
108
+ ${typeof menuItem.title === "function"
109
+ ? menuItem.title(this.page)
110
+ : menuItem.title} ${menuItem.icon
111
+ ? `<span class="content-menu-item-icon"><i class="fa fa-${menuItem.icon}"></i></span>`
112
+ : ""}
113
+ </li>`;
114
+ }
115
+ }
116
+ html += "</ul>";
117
+ }
118
+ html += "</div>";
119
+ return html;
120
+ }
121
+ checkAndAddColumns() {
122
+ const dialogRect = this.dialogEl.getBoundingClientRect();
123
+ const viewportHeight = window.innerHeight;
124
+ const viewportWidth = window.innerWidth;
125
+ const maxHeight = viewportHeight * 0.9;
126
+ const maxWidth = viewportWidth * 0.95;
127
+ if (dialogRect.height >= maxHeight) {
128
+ const contentEl = this.dialogEl.querySelector(".ui-content-menu-content");
129
+ const contentDiv = contentEl.querySelector(":scope > div");
130
+ let columns = 2;
131
+ while (columns <= 6) {
132
+ contentDiv.innerHTML = this.renderColumnsHtml(columns);
133
+ const columnsDiv = contentDiv.querySelector(".content-menu-columns");
134
+ if (columnsDiv) {
135
+ const naturalWidth = columnsDiv.scrollWidth + 20;
136
+ contentEl.style.width = `${naturalWidth}px`;
137
+ }
138
+ const newRect = this.dialogEl.getBoundingClientRect();
139
+ if (newRect.height < maxHeight && newRect.width < maxWidth) {
140
+ if (this.menuPos?.X && this.menuPos?.Y) {
141
+ this.positionDialog();
142
+ }
143
+ else {
144
+ this.centerDialog();
145
+ }
146
+ return;
147
+ }
148
+ columns++;
149
+ }
150
+ // Fallback: restore single column with scrolling
151
+ contentDiv.innerHTML = `<ul class="content-menu-list">${this.renderSingleColumnHtml()}</ul>`;
152
+ contentEl.style.width = this.width;
153
+ this.dialogEl
154
+ .querySelector(".ui-content-menu-content")
155
+ .classList.add("ui-scrollable");
156
+ if (this.menuPos?.X && this.menuPos?.Y) {
157
+ this.positionDialog();
158
+ }
159
+ else {
160
+ this.centerDialog();
161
+ }
162
+ }
163
+ }
164
+ renderSingleColumnHtml() {
165
+ return this.menu.content
166
+ .map((menuItem, index) => {
167
+ switch (menuItem.type) {
168
+ case "header":
169
+ return `<li><span class="content-menu-item-header" title="${menuItem.tooltip}">${typeof menuItem.title === "function"
170
+ ? menuItem.title(this.page)
171
+ : menuItem.title}</span></li>`;
172
+ case "separator":
173
+ return '<li><hr class="content-menu-item-divider"/></li>';
174
+ default:
175
+ return `<li tabindex="0" data-index="${index}" class="content-menu-item${menuItem.disabled && menuItem.disabled(this.page)
176
+ ? " disabled"
177
+ : menuItem.selected
178
+ ? " selected"
179
+ : ""}" title='${menuItem.tooltip}'>
180
+ ${typeof menuItem.title === "function"
181
+ ? menuItem.title(this.page)
182
+ : menuItem.title} ${menuItem.icon
183
+ ? `<span class="content-menu-item-icon"><i class="fa fa-${menuItem.icon}"></i></span>`
184
+ : ""}
185
+ </li>`;
186
+ }
187
+ })
188
+ .join("");
189
+ }
190
+ centerDialog() {
191
+ const totalWidth = window.innerWidth, totalHeight = window.innerHeight, dialogRect = this.dialogEl.getBoundingClientRect(), dialogWidth = dialogRect.width + 10, dialogHeight = dialogRect.height + 10, scrollTopOffset = window.pageYOffset, scrollLeftOffset = window.pageXOffset;
192
+ this.dialogEl.style.top = `${(totalHeight - dialogHeight) / 2 + scrollTopOffset}px`;
193
+ this.dialogEl.style.left = `${(totalWidth - dialogWidth) / 2 + scrollLeftOffset}px`;
194
+ }
195
+ positionDialog() {
196
+ const dialogHeight = this.dialogEl.getBoundingClientRect().height + 10, dialogWidth = this.dialogEl.getBoundingClientRect().width + 10, scrollTopOffset = window.pageYOffset, clientHeight = window.document.documentElement.clientHeight, clientWidth = window.document.documentElement.clientWidth;
197
+ // We try to ensure that the menu is seen in the browser at the preferred location.
198
+ // Adjustments are made in case it doesn't fit.
199
+ let top = this.menuPos.Y, left = this.menuPos.X;
200
+ if (top + dialogHeight > scrollTopOffset + clientHeight) {
201
+ top -= top + dialogHeight - (scrollTopOffset + clientHeight);
202
+ }
203
+ if (top < scrollTopOffset) {
204
+ top = scrollTopOffset + 10;
205
+ }
206
+ if (left + dialogWidth > clientWidth) {
207
+ left -= left + dialogWidth - clientWidth;
208
+ }
209
+ this.dialogEl.style.top = `${top}px`;
210
+ this.dialogEl.style.left = `${left}px`;
211
+ }
212
+ bind() {
213
+ this.backdropEl.addEventListener("click", () => this.close());
214
+ this.dialogEl.addEventListener("click", event => this.onclick(event));
215
+ this.dialogEl.addEventListener("keydown", event => this.onKeyDown(event));
216
+ this.dialogEl.focus();
217
+ }
218
+ getHighestDialogZIndex() {
219
+ let zIndex = 100;
220
+ document
221
+ .querySelectorAll("div.ui-content-menu")
222
+ .forEach(dialogEl => (zIndex = Math.max(zIndex, dialogEl.style.zIndex)));
223
+ document
224
+ .querySelectorAll("div.ui-dialog")
225
+ .forEach(dialogEl => (zIndex = Math.max(zIndex, dialogEl.style.zIndex)));
226
+ return zIndex;
227
+ }
228
+ close() {
229
+ if (!this.dialogEl || !this.dialogEl.parentElement) {
230
+ return;
231
+ }
232
+ this.dialogEl.parentElement.removeChild(this.dialogEl);
233
+ this.backdropEl.parentElement.removeChild(this.backdropEl);
234
+ // Restore focus to the previously focused element
235
+ if (this.previouslyFocusedElement &&
236
+ this.previouslyFocusedElement.focus) {
237
+ this.previouslyFocusedElement.focus();
238
+ }
239
+ if (this.onClose) {
240
+ this.onClose();
241
+ }
242
+ }
243
+ onclick(event) {
244
+ event.preventDefault();
245
+ event.stopImmediatePropagation();
246
+ const target = event.target.closest("li.content-menu-item");
247
+ if (target) {
248
+ const menuNumber = target.dataset.index;
249
+ const menuItem = this.menu.content[menuNumber];
250
+ if (menuItem.disabled?.(this.page)) {
251
+ return;
252
+ }
253
+ menuItem.action(this.page);
254
+ this.close();
255
+ }
256
+ }
257
+ onKeyDown(event) {
258
+ const { key } = event;
259
+ const menuItems = this.dialogEl.querySelectorAll("li.content-menu-item:not(.disabled)");
260
+ const columnsDiv = this.dialogEl.querySelector(".content-menu-columns");
261
+ const totalColumns = columnsDiv
262
+ ? columnsDiv.querySelectorAll(".content-menu-list").length
263
+ : 1;
264
+ const itemsPerColumn = totalColumns > 1
265
+ ? Math.ceil(menuItems.length / totalColumns)
266
+ : menuItems.length;
267
+ switch (key) {
268
+ case "Escape":
269
+ this.close();
270
+ break;
271
+ case "ArrowUp":
272
+ event.preventDefault();
273
+ this.focusedIndex =
274
+ (this.focusedIndex - 1 + menuItems.length) %
275
+ menuItems.length;
276
+ this.focusMenuItem(this.focusedIndex);
277
+ break;
278
+ case "ArrowDown":
279
+ event.preventDefault();
280
+ this.focusedIndex = (this.focusedIndex + 1) % menuItems.length;
281
+ this.focusMenuItem(this.focusedIndex);
282
+ break;
283
+ case "ArrowLeft":
284
+ if (totalColumns <= 1) {
285
+ break;
286
+ }
287
+ event.preventDefault();
288
+ {
289
+ const currentCol = Math.floor(this.focusedIndex / itemsPerColumn);
290
+ const currentRow = this.focusedIndex % itemsPerColumn;
291
+ if (currentCol > 0) {
292
+ let newIndex = (currentCol - 1) * itemsPerColumn + currentRow;
293
+ const prevColEnd = Math.min(currentCol * itemsPerColumn, menuItems.length);
294
+ if (newIndex >= prevColEnd) {
295
+ newIndex = prevColEnd - 1;
296
+ }
297
+ this.focusedIndex = newIndex;
298
+ this.focusMenuItem(this.focusedIndex);
299
+ }
300
+ }
301
+ break;
302
+ case "ArrowRight":
303
+ if (totalColumns <= 1) {
304
+ break;
305
+ }
306
+ event.preventDefault();
307
+ {
308
+ const currentCol = Math.floor(this.focusedIndex / itemsPerColumn);
309
+ const currentRow = this.focusedIndex % itemsPerColumn;
310
+ if (currentCol < totalColumns - 1) {
311
+ let newIndex = (currentCol + 1) * itemsPerColumn + currentRow;
312
+ const nextColEnd = Math.min((currentCol + 2) * itemsPerColumn, menuItems.length);
313
+ if (newIndex >= nextColEnd) {
314
+ newIndex = nextColEnd - 1;
315
+ }
316
+ this.focusedIndex = newIndex;
317
+ this.focusMenuItem(this.focusedIndex);
318
+ }
319
+ }
320
+ break;
321
+ case "Tab":
322
+ event.preventDefault();
323
+ if (event.shiftKey) {
324
+ this.focusedIndex =
325
+ (this.focusedIndex - 1 + menuItems.length) %
326
+ menuItems.length;
327
+ }
328
+ else {
329
+ this.focusedIndex =
330
+ (this.focusedIndex + 1) % menuItems.length;
331
+ }
332
+ this.focusMenuItem(this.focusedIndex);
333
+ break;
334
+ case "Enter":
335
+ case " ": {
336
+ event.preventDefault();
337
+ const menuItem = this.menu.content[this.focusedIndex];
338
+ if (!menuItem.disabled?.(this.page)) {
339
+ menuItem.action(this.page);
340
+ this.close();
341
+ }
342
+ break;
343
+ }
344
+ }
345
+ }
346
+ focusFirstMenuItem() {
347
+ const menuItems = this.dialogEl.querySelectorAll("li.content-menu-item:not(.disabled)");
348
+ if (menuItems.length > 0) {
349
+ this.focusedIndex = 0;
350
+ this.focusMenuItem(this.focusedIndex);
351
+ }
352
+ }
353
+ focusMenuItem(index) {
354
+ const menuItems = this.dialogEl.querySelectorAll("li.content-menu-item:not(.disabled)");
355
+ if (menuItems[index]) {
356
+ menuItems[index].focus();
357
+ }
358
+ }
359
+ }
360
+ //# sourceMappingURL=content_menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content_menu.js","sourceRoot":"","sources":["../src/content_menu.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export declare class DatatableBulk {
2
+ constructor(page: any, model: any, checkboxColumn: any);
3
+ init(table: any): void;
4
+ update(): void;
5
+ bindEvents(): void;
6
+ destroy(): void;
7
+ onKeyDown(event: any): void;
8
+ toggleSelectAll(checked: any): void;
9
+ onTableCheckChange(): void;
10
+ isAllChecked(): number;
11
+ onClick(event: any): void;
12
+ getHTML(): string;
13
+ }
14
+ //# sourceMappingURL=datatable_bulk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datatable_bulk.d.ts","sourceRoot":"","sources":["../src/datatable_bulk.ts"],"names":[],"mappings":"AAQA,qBAAa,aAAa;gBACV,IAAI,KAAA,EAAE,KAAK,KAAA,EAAE,cAAc,KAAA;IAQvC,IAAI,CAAC,KAAK,KAAA;IAKV,MAAM;IAMN,UAAU;IAaV,OAAO;IA+BP,SAAS,CAAC,KAAK,KAAA;IA6Cf,eAAe,CAAC,OAAO,KAAA;IAevB,kBAAkB;IAUlB,YAAY;IAQZ,OAAO,CAAC,KAAK,KAAA;IAiDb,OAAO;CASV"}
@@ -0,0 +1,176 @@
1
+ // @ts-nocheck
2
+ import { keyName } from "w3c-keyname";
3
+ import { whenReady } from "./basic.js";
4
+ import { ContentMenu } from "./content_menu.js";
5
+ let bulkId = 0;
6
+ export class DatatableBulk {
7
+ constructor(page, model, checkboxColumn) {
8
+ this.page = page;
9
+ this.model = model;
10
+ this.checkboxColumn = checkboxColumn;
11
+ this.id = `dt-bulk-${++bulkId}`;
12
+ }
13
+ init(table) {
14
+ this.table = table;
15
+ whenReady().then(() => this.bindEvents());
16
+ }
17
+ update() {
18
+ this.model.content = this.model.content.sort((a, b) => a.order - b.order);
19
+ }
20
+ bindEvents() {
21
+ // Store the bound functions as instance variables so we can remove them later
22
+ this.boundOnClick = this.onClick.bind(this);
23
+ this.boundOnTableCheckChange = this.onTableCheckChange.bind(this);
24
+ this.boundOnKeyDown = this.onKeyDown.bind(this);
25
+ this.page.dom.addEventListener("click", this.boundOnClick);
26
+ this.table.dom.addEventListener("change", this.boundOnTableCheckChange);
27
+ this.table.dom.addEventListener("keydown", this.boundOnKeyDown);
28
+ this.onTableCheckChange();
29
+ }
30
+ // The new destroy() method removes all event listeners that were added and cleans up DOM elements.
31
+ destroy() {
32
+ if (this.page && this.page.dom && this.boundOnClick) {
33
+ this.page.dom.removeEventListener("click", this.boundOnClick);
34
+ }
35
+ if (this.table && this.table.dom) {
36
+ if (this.boundOnTableCheckChange) {
37
+ this.table.dom.removeEventListener("change", this.boundOnTableCheckChange);
38
+ }
39
+ if (this.boundOnKeyDown) {
40
+ this.table.dom.removeEventListener("keydown", this.boundOnKeyDown);
41
+ }
42
+ }
43
+ // Remove the bulk element from the DOM if it exists
44
+ const el = document.getElementById(this.id);
45
+ if (el && el.parentNode) {
46
+ el.parentNode.removeChild(el);
47
+ }
48
+ // Clear any references to help garbage collection
49
+ this.page = null;
50
+ this.table = null;
51
+ this.model = null;
52
+ }
53
+ onKeyDown(event) {
54
+ const key = keyName(event);
55
+ const el = this.page.dom.querySelector(`#${this.id}`);
56
+ if (!el) {
57
+ return;
58
+ }
59
+ if (key === "Enter" && this.page.getSelected().length > 0) {
60
+ // Open the content menu when Enter is pressed and at least one row is selected
61
+ event.preventDefault();
62
+ event.stopImmediatePropagation();
63
+ event.stopPropagation();
64
+ const contentMenu = new ContentMenu({
65
+ menu: this.model,
66
+ width: 280,
67
+ page: this.page,
68
+ menuPos: {
69
+ X: Number.parseInt(el.getBoundingClientRect().left),
70
+ Y: Number.parseInt(el.getBoundingClientRect().bottom)
71
+ }
72
+ });
73
+ contentMenu.open();
74
+ }
75
+ else if (key === " " &&
76
+ event.target === el.querySelector("input[type=checkbox]")) {
77
+ // Toggle "Select All" when Space is pressed on the checkbox
78
+ event.preventDefault();
79
+ event.stopImmediatePropagation();
80
+ event.stopPropagation();
81
+ const isChecked = this.isAllChecked();
82
+ this.toggleSelectAll(!isChecked);
83
+ }
84
+ else if ((event.ctrlKey || event.metaKey) && key === "a") {
85
+ // Select all when Ctrl+A is pressed
86
+ const isChecked = this.isAllChecked();
87
+ this.toggleSelectAll(!isChecked);
88
+ event.preventDefault();
89
+ event.stopImmediatePropagation();
90
+ event.stopPropagation();
91
+ }
92
+ }
93
+ toggleSelectAll(checked) {
94
+ // Update the DataTable instance
95
+ if (this.table) {
96
+ this.table.data.data.forEach(row => {
97
+ if (row.cells[this.checkboxColumn]) {
98
+ row.cells[this.checkboxColumn].data = checked;
99
+ row.cells[this.checkboxColumn].text = String(checked);
100
+ }
101
+ });
102
+ this.table.update();
103
+ }
104
+ this.onTableCheckChange();
105
+ }
106
+ onTableCheckChange() {
107
+ const el = this.page.dom.querySelector(`#${this.id}`);
108
+ if (!el) {
109
+ return;
110
+ }
111
+ const allChecked = this.isAllChecked();
112
+ el.querySelector("input[type=checkbox]").checked = allChecked;
113
+ }
114
+ isAllChecked() {
115
+ const checkboxes = Array.from(this.table.dom.querySelectorAll("input.entry-select[type=checkbox]"));
116
+ const unchecked = checkboxes.filter(box => !box.checked);
117
+ return !unchecked.length && checkboxes.length;
118
+ }
119
+ onClick(event) {
120
+ const target = event.target;
121
+ if (target.matches(`#${this.id} *`)) {
122
+ event.preventDefault();
123
+ event.stopImmediatePropagation();
124
+ event.stopPropagation();
125
+ if (target.matches(".dt-bulk-dropdown, .dt-bulk-dropdown *")) {
126
+ // Dropdown
127
+ const el = document.querySelector(`#${this.id}`);
128
+ if (el) {
129
+ const contentMenu = new ContentMenu({
130
+ menu: this.model,
131
+ width: 280,
132
+ page: this.page,
133
+ menuPos: {
134
+ X: Number.parseInt(event.pageX),
135
+ Y: Number.parseInt(event.pageY)
136
+ }
137
+ });
138
+ contentMenu.open();
139
+ }
140
+ }
141
+ else if (target.matches(".fw-check + label, .fw-check + label *")) {
142
+ // Click on bulk checkbox
143
+ const isChecked = this.isAllChecked();
144
+ this.toggleSelectAll(!isChecked);
145
+ target
146
+ .closest("div.datatable-wrapper")
147
+ .querySelector("input[type=checkbox]").checked = !isChecked;
148
+ this.onTableCheckChange();
149
+ }
150
+ }
151
+ else if (target.matches(".fw-data-table .entry-select + label")) {
152
+ // The browser will try to scroll the checkbox into view and that will break the page layout.
153
+ event.preventDefault();
154
+ event.stopImmediatePropagation();
155
+ event.stopPropagation();
156
+ const tr = target.closest("tr");
157
+ const index = parseInt(tr.dataset.index);
158
+ const row = this.table.data.data[index];
159
+ const cell = row.cells[this.checkboxColumn];
160
+ cell.data = !cell.data;
161
+ cell.text = String(cell.data);
162
+ this.table.update();
163
+ this.onTableCheckChange();
164
+ }
165
+ }
166
+ getHTML() {
167
+ return `<div id="${this.id}" class="dt-bulk" role="group" aria-label="Bulk actions">
168
+ <input type="checkbox" id="${this.id}_check" class="fw-check" aria-label="Select all">
169
+ <label for="${this.id}_check"></label>
170
+ <span class="dt-bulk-dropdown" tabindex="0" role="button" aria-label="Open bulk actions menu">
171
+ <i class="fa fa-caret-down"></i>
172
+ </span>
173
+ </div>`;
174
+ }
175
+ }
176
+ //# sourceMappingURL=datatable_bulk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datatable_bulk.js","sourceRoot":"","sources":["../src/datatable_bulk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export declare class Dialog {
2
+ constructor(options: any);
3
+ setButtons(buttons: any): void;
4
+ open(): void;
5
+ refreshButtons(): void;
6
+ refreshNote(): void;
7
+ centerDialog(): void;
8
+ adjustDialogToScroll(): void;
9
+ moveDialog(x: any, y: any): void;
10
+ onScroll(_event: any): void;
11
+ onKeydown(event: any): void;
12
+ bind(): void;
13
+ nextDialogZIndex(): number;
14
+ getFocusableElements(): unknown[];
15
+ getInitialFocusElement(): any;
16
+ close(): void;
17
+ }
18
+ //# sourceMappingURL=dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../src/dialog.ts"],"names":[],"mappings":"AA+FA,qBAAa,MAAM;gBACH,OAAO,KAAA;IAwCnB,UAAU,CAAC,OAAO,KAAA;IAsBlB,IAAI;IAsEJ,cAAc;IAKd,WAAW;IAMX,YAAY;IAYZ,oBAAoB;IAYpB,UAAU,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA;IAcf,QAAQ,CAAC,MAAM,KAAA;IASf,SAAS,CAAC,KAAK,KAAA;IA+Bf,IAAI;IA6EJ,gBAAgB;IAYhB,oBAAoB;IAsBpB,sBAAsB;IAiCtB,KAAK;CAuBR"}