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.
- package/README.md +41 -9
- package/dist/basic.d.ts +70 -0
- package/dist/basic.d.ts.map +1 -0
- package/dist/basic.js +447 -0
- package/dist/basic.js.map +1 -0
- package/dist/blob.d.ts +2 -0
- package/dist/blob.d.ts.map +1 -0
- package/dist/blob.js +12 -0
- package/dist/blob.js.map +1 -0
- package/dist/content_menu.d.ts +31 -0
- package/dist/content_menu.d.ts.map +1 -0
- package/dist/content_menu.js +360 -0
- package/dist/content_menu.js.map +1 -0
- package/dist/datatable_bulk.d.ts +14 -0
- package/dist/datatable_bulk.d.ts.map +1 -0
- package/dist/datatable_bulk.js +176 -0
- package/dist/datatable_bulk.js.map +1 -0
- package/dist/dialog.d.ts +18 -0
- package/dist/dialog.d.ts.map +1 -0
- package/dist/dialog.js +395 -0
- package/dist/dialog.js.map +1 -0
- package/dist/events.d.ts +2 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +11 -0
- package/dist/events.js.map +1 -0
- package/dist/faq_dialog.d.ts +8 -0
- package/dist/faq_dialog.d.ts.map +1 -0
- package/dist/faq_dialog.js +63 -0
- package/dist/faq_dialog.js.map +1 -0
- package/dist/file/dialog.d.ts +27 -0
- package/dist/file/dialog.d.ts.map +1 -0
- package/dist/file/dialog.js +125 -0
- package/dist/file/dialog.js.map +1 -0
- package/dist/file/index.d.ts +5 -0
- package/dist/file/index.d.ts.map +1 -0
- package/dist/file/index.js +6 -0
- package/dist/file/index.js.map +1 -0
- package/dist/file/new_folder_dialog.d.ts +5 -0
- package/dist/file/new_folder_dialog.d.ts.map +1 -0
- package/dist/file/new_folder_dialog.js +34 -0
- package/dist/file/new_folder_dialog.js.map +1 -0
- package/dist/file/selector.d.ts +22 -0
- package/dist/file/selector.d.ts.map +1 -0
- package/dist/file/selector.js +239 -0
- package/dist/file/selector.js.map +1 -0
- package/dist/file/templates.d.ts +5 -0
- package/dist/file/templates.d.ts.map +1 -0
- package/dist/file/templates.js +9 -0
- package/dist/file/templates.js.map +1 -0
- package/dist/file/tools.d.ts +5 -0
- package/dist/file/tools.d.ts.map +1 -0
- package/dist/file/tools.js +51 -0
- package/dist/file/tools.js.map +1 -0
- package/dist/focus.d.ts +3 -0
- package/dist/focus.d.ts.map +1 -0
- package/dist/focus.js +12 -0
- package/dist/focus.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/network.d.ts +11 -0
- package/dist/network.d.ts.map +1 -0
- package/dist/network.js +113 -0
- package/dist/network.js.map +1 -0
- package/dist/overview_menu.d.ts +27 -0
- package/dist/overview_menu.d.ts.map +1 -0
- package/dist/overview_menu.js +536 -0
- package/dist/overview_menu.js.map +1 -0
- package/dist/settings.d.ts +3 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +16 -0
- package/dist/settings.js.map +1 -0
- package/dist/templates.d.ts +7 -0
- package/dist/templates.d.ts.map +1 -0
- package/dist/templates.js +43 -0
- package/dist/templates.js.map +1 -0
- package/dist/user.d.ts +6 -0
- package/dist/user.d.ts.map +1 -0
- package/dist/user.js +45 -0
- package/dist/user.js.map +1 -0
- package/dist/user_util.d.ts +7 -0
- package/dist/user_util.d.ts.map +1 -0
- package/dist/user_util.js +19 -0
- package/dist/user_util.js.map +1 -0
- package/dist/worker.d.ts +2 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +12 -0
- package/dist/worker.js.map +1 -0
- package/dist/ws.d.ts +46 -0
- package/dist/ws.d.ts.map +1 -0
- package/dist/ws.js +329 -0
- package/dist/ws.js.map +1 -0
- package/package.json +25 -4
- package/src/{basic.js → basic.ts} +1 -0
- package/src/{blob.js → blob.ts} +1 -0
- package/src/{content_menu.js → content_menu.ts} +1 -0
- package/src/{datatable_bulk.js → datatable_bulk.ts} +1 -0
- package/src/{dialog.js → dialog.ts} +1 -0
- package/src/{events.js → events.ts} +1 -0
- package/src/{faq_dialog.js → faq_dialog.ts} +1 -0
- package/src/file/{dialog.js → dialog.ts} +1 -0
- package/src/file/{index.js → index.ts} +1 -0
- package/src/file/{new_folder_dialog.js → new_folder_dialog.ts} +1 -0
- package/src/file/{selector.js → selector.ts} +1 -0
- package/src/file/{templates.js → templates.ts} +1 -0
- package/src/file/{tools.js → tools.ts} +1 -0
- package/src/{focus.js → focus.ts} +1 -0
- package/src/global.d.ts +11 -0
- package/src/{index.js → index.ts} +1 -0
- package/src/{network.js → network.ts} +1 -0
- package/src/{overview_menu.js → overview_menu.ts} +1 -0
- package/src/{settings.js → settings.ts} +1 -0
- package/src/{templates.js → templates.ts} +1 -0
- package/src/{user.js → user.ts} +1 -0
- package/src/{user_util.js → user_util.ts} +1 -0
- package/src/{worker.js → worker.ts} +1 -0
- 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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"}
|
package/dist/dialog.d.ts
ADDED
|
@@ -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"}
|