@dodlhuat/basix 1.2.0 → 1.2.1
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 +56 -1
- package/css/accordion.scss +86 -87
- package/css/alert.scss +137 -137
- package/css/button.scss +48 -0
- package/css/calendar.scss +957 -0
- package/css/card.scss +65 -65
- package/css/chart.scss +270 -157
- package/css/chat-bubbles.scss +134 -68
- package/css/chips.scss +109 -19
- package/css/colors.scss +32 -32
- package/css/datepicker.scss +336 -336
- package/css/defaults.scss +90 -90
- package/css/docs.scss +529 -0
- package/css/editor.scss +36 -0
- package/css/file-uploader.scss +1 -1
- package/css/flyout-menu.scss +361 -361
- package/css/form.scss +0 -15
- package/css/gallery.scss +65 -6
- package/css/grid.scss +41 -40
- package/css/group-picker.scss +345 -0
- package/css/guitar-chords.css +250 -250
- package/css/icons.scss +330 -330
- package/css/parameters.scss +3 -3
- package/css/placeholder.scss +33 -33
- package/css/popover.scss +206 -0
- package/css/progress.scss +76 -32
- package/css/properties.scss +51 -36
- package/css/push-menu.scss +302 -174
- package/css/reset.scss +39 -39
- package/css/scrollbar.scss +62 -5
- package/css/sidebar-nav.scss +92 -0
- package/css/spinner.scss +65 -65
- package/css/stepper.scss +48 -12
- package/css/style.css +3159 -254
- package/css/style.css.map +1 -1
- package/css/style.min.css +1 -1
- package/css/style.scss +51 -45
- package/css/table.scss +199 -199
- package/css/tabs.scss +154 -123
- package/css/timeline.scss +83 -38
- package/css/timepicker.scss +100 -5
- package/css/toast.scss +81 -81
- package/css/virtual-dropdown.scss +35 -29
- package/js/calendar.js +532 -0
- package/js/calendar.ts +706 -0
- package/js/chart.js +573 -257
- package/js/chart.ts +692 -0
- package/js/code-viewer.js +10 -10
- package/js/code-viewer.ts +188 -188
- package/js/datepicker.ts +627 -627
- package/js/docs-nav.js +204 -0
- package/js/dropdown.ts +179 -179
- package/js/editor.js +50 -6
- package/js/editor.ts +483 -444
- package/js/file-uploader.js +1 -0
- package/js/file-uploader.ts +1 -0
- package/js/flyout-menu.js +14 -14
- package/js/flyout-menu.ts +249 -249
- package/js/form-builder.js +106 -106
- package/js/gallery.js +14 -8
- package/js/gallery.ts +245 -236
- package/js/group-picker.js +342 -0
- package/js/group-picker.ts +447 -0
- package/js/guitar-chords.js +268 -268
- package/js/lazy-loader.js +121 -121
- package/js/modal.ts +166 -166
- package/js/popover.js +163 -0
- package/js/popover.ts +219 -0
- package/js/position.js +108 -0
- package/js/position.ts +111 -0
- package/js/push-menu.js +113 -0
- package/js/push-menu.ts +284 -145
- package/js/request.js +50 -50
- package/js/scroll.ts +47 -47
- package/js/scrollbar.js +13 -0
- package/js/scrollbar.ts +324 -307
- package/js/select.ts +216 -216
- package/js/sidebar-nav.js +41 -0
- package/js/sidebar-nav.ts +66 -0
- package/js/table.ts +452 -452
- package/js/tabs.ts +279 -279
- package/js/theme.js +17 -6
- package/js/theme.ts +234 -224
- package/js/toast.ts +137 -137
- package/js/tooltip.js +6 -60
- package/js/tooltip.ts +184 -251
- package/js/tsconfig.json +18 -18
- package/js/utils.ts +83 -83
- package/js/virtual-dropdown.js +25 -25
- package/js/virtual-dropdown.ts +365 -365
- package/package.json +39 -39
- package/js/index.js +0 -816
- package/js/index.ts +0 -987
package/js/form-builder.js
CHANGED
|
@@ -1,107 +1,107 @@
|
|
|
1
|
-
let dragged_element = null;
|
|
2
|
-
let action = 'copy';
|
|
3
|
-
let row_count = 1;
|
|
4
|
-
|
|
5
|
-
let formbuilder = {
|
|
6
|
-
init() {
|
|
7
|
-
document.querySelectorAll('.draggable').forEach(function (element) {
|
|
8
|
-
element.removeEventListener("dragstart", dragAction);
|
|
9
|
-
element.addEventListener("dragstart", dragAction);
|
|
10
|
-
});
|
|
11
|
-
initDropzones();
|
|
12
|
-
},
|
|
13
|
-
addRow() {
|
|
14
|
-
document.querySelector('.form-content').innerHTML += buildRowElement();
|
|
15
|
-
},
|
|
16
|
-
addColumn() {
|
|
17
|
-
|
|
18
|
-
},
|
|
19
|
-
removeRow() {
|
|
20
|
-
|
|
21
|
-
},
|
|
22
|
-
removeColumn() {
|
|
23
|
-
|
|
24
|
-
},
|
|
25
|
-
load(file_name) {
|
|
26
|
-
load(file_name).then((data) => {
|
|
27
|
-
console.log(data);
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const moveAction = function (event) {
|
|
33
|
-
dragged_element = event.target;
|
|
34
|
-
action = 'move';
|
|
35
|
-
}
|
|
36
|
-
const dragAction = function (event) {
|
|
37
|
-
dragged_element = event.target;
|
|
38
|
-
action = 'copy';
|
|
39
|
-
}
|
|
40
|
-
const addMoveListeners = function () {
|
|
41
|
-
document.querySelectorAll('.movable').forEach(function (element) {
|
|
42
|
-
element.removeEventListener("dragstart", moveAction);
|
|
43
|
-
element.addEventListener("dragstart", moveAction);
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
const load = async function (file_name) {
|
|
48
|
-
const url = new URL(file_name,
|
|
49
|
-
document.currentScript && document.currentScript.src || location.href)
|
|
50
|
-
// fetch and parse template as string
|
|
51
|
-
let template = await fetch(url)
|
|
52
|
-
template = await template.text()
|
|
53
|
-
template = new DOMParser().parseFromString(template, 'text/html')
|
|
54
|
-
.querySelector('template')
|
|
55
|
-
if (!template) throw new TypeError('No template element found')
|
|
56
|
-
return template.innerHTML.trim()
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
const buildRowElement = function () {
|
|
60
|
-
const row = document.createElement('div');
|
|
61
|
-
row_count++;
|
|
62
|
-
row.setAttribute('data-row-id', String(row_count));
|
|
63
|
-
row.className = 'row';
|
|
64
|
-
const col = document.createElement('div');
|
|
65
|
-
col.className = 'column';
|
|
66
|
-
const dropzone = document.createElement('div');
|
|
67
|
-
dropzone.className = 'dropzone';
|
|
68
|
-
col.innerHTML = dropzone.outerHTML;
|
|
69
|
-
row.innerHTML = col.outerHTML;
|
|
70
|
-
return row.outerHTML;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
const dropEvent = function (event) {
|
|
74
|
-
event.preventDefault();
|
|
75
|
-
let node = dragged_element;
|
|
76
|
-
if (action === 'copy') {
|
|
77
|
-
node = dragged_element.cloneNode(true);
|
|
78
|
-
}
|
|
79
|
-
node.classList.remove('draggable');
|
|
80
|
-
node.classList.add('movable');
|
|
81
|
-
const label = node.querySelector('span.label');
|
|
82
|
-
if (label) {
|
|
83
|
-
label.setAttribute('contenteditable', true);
|
|
84
|
-
}
|
|
85
|
-
const pElement = node.querySelector('p');
|
|
86
|
-
if (pElement) {
|
|
87
|
-
pElement.setAttribute('contenteditable', true);
|
|
88
|
-
}
|
|
89
|
-
event.target.appendChild(node);
|
|
90
|
-
addMoveListeners();
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
const dragOverEvent = function (event) {
|
|
94
|
-
event.preventDefault();
|
|
95
|
-
event.dataTransfer.effectAllowed = action;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
const initDropzones = function () {
|
|
99
|
-
document.querySelectorAll('.dropzone').forEach(function (dropzone) {
|
|
100
|
-
dropzone.removeEventListener('drop', dropEvent);
|
|
101
|
-
dropzone.addEventListener('drop', dropEvent);
|
|
102
|
-
dropzone.removeEventListener('dragover', dragOverEvent);
|
|
103
|
-
dropzone.addEventListener('dragover', dragOverEvent);
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
|
|
1
|
+
let dragged_element = null;
|
|
2
|
+
let action = 'copy';
|
|
3
|
+
let row_count = 1;
|
|
4
|
+
|
|
5
|
+
let formbuilder = {
|
|
6
|
+
init() {
|
|
7
|
+
document.querySelectorAll('.draggable').forEach(function (element) {
|
|
8
|
+
element.removeEventListener("dragstart", dragAction);
|
|
9
|
+
element.addEventListener("dragstart", dragAction);
|
|
10
|
+
});
|
|
11
|
+
initDropzones();
|
|
12
|
+
},
|
|
13
|
+
addRow() {
|
|
14
|
+
document.querySelector('.form-content').innerHTML += buildRowElement();
|
|
15
|
+
},
|
|
16
|
+
addColumn() {
|
|
17
|
+
|
|
18
|
+
},
|
|
19
|
+
removeRow() {
|
|
20
|
+
|
|
21
|
+
},
|
|
22
|
+
removeColumn() {
|
|
23
|
+
|
|
24
|
+
},
|
|
25
|
+
load(file_name) {
|
|
26
|
+
load(file_name).then((data) => {
|
|
27
|
+
console.log(data);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const moveAction = function (event) {
|
|
33
|
+
dragged_element = event.target;
|
|
34
|
+
action = 'move';
|
|
35
|
+
}
|
|
36
|
+
const dragAction = function (event) {
|
|
37
|
+
dragged_element = event.target;
|
|
38
|
+
action = 'copy';
|
|
39
|
+
}
|
|
40
|
+
const addMoveListeners = function () {
|
|
41
|
+
document.querySelectorAll('.movable').forEach(function (element) {
|
|
42
|
+
element.removeEventListener("dragstart", moveAction);
|
|
43
|
+
element.addEventListener("dragstart", moveAction);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const load = async function (file_name) {
|
|
48
|
+
const url = new URL(file_name,
|
|
49
|
+
document.currentScript && document.currentScript.src || location.href)
|
|
50
|
+
// fetch and parse template as string
|
|
51
|
+
let template = await fetch(url)
|
|
52
|
+
template = await template.text()
|
|
53
|
+
template = new DOMParser().parseFromString(template, 'text/html')
|
|
54
|
+
.querySelector('template')
|
|
55
|
+
if (!template) throw new TypeError('No template element found')
|
|
56
|
+
return template.innerHTML.trim()
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const buildRowElement = function () {
|
|
60
|
+
const row = document.createElement('div');
|
|
61
|
+
row_count++;
|
|
62
|
+
row.setAttribute('data-row-id', String(row_count));
|
|
63
|
+
row.className = 'row';
|
|
64
|
+
const col = document.createElement('div');
|
|
65
|
+
col.className = 'column';
|
|
66
|
+
const dropzone = document.createElement('div');
|
|
67
|
+
dropzone.className = 'dropzone';
|
|
68
|
+
col.innerHTML = dropzone.outerHTML;
|
|
69
|
+
row.innerHTML = col.outerHTML;
|
|
70
|
+
return row.outerHTML;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
const dropEvent = function (event) {
|
|
74
|
+
event.preventDefault();
|
|
75
|
+
let node = dragged_element;
|
|
76
|
+
if (action === 'copy') {
|
|
77
|
+
node = dragged_element.cloneNode(true);
|
|
78
|
+
}
|
|
79
|
+
node.classList.remove('draggable');
|
|
80
|
+
node.classList.add('movable');
|
|
81
|
+
const label = node.querySelector('span.label');
|
|
82
|
+
if (label) {
|
|
83
|
+
label.setAttribute('contenteditable', true);
|
|
84
|
+
}
|
|
85
|
+
const pElement = node.querySelector('p');
|
|
86
|
+
if (pElement) {
|
|
87
|
+
pElement.setAttribute('contenteditable', true);
|
|
88
|
+
}
|
|
89
|
+
event.target.appendChild(node);
|
|
90
|
+
addMoveListeners();
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const dragOverEvent = function (event) {
|
|
94
|
+
event.preventDefault();
|
|
95
|
+
event.dataTransfer.effectAllowed = action;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const initDropzones = function () {
|
|
99
|
+
document.querySelectorAll('.dropzone').forEach(function (dropzone) {
|
|
100
|
+
dropzone.removeEventListener('drop', dropEvent);
|
|
101
|
+
dropzone.addEventListener('drop', dropEvent);
|
|
102
|
+
dropzone.removeEventListener('dragover', dragOverEvent);
|
|
103
|
+
dropzone.addEventListener('dragover', dragOverEvent);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
|
|
107
107
|
export {formbuilder}
|
package/js/gallery.js
CHANGED
|
@@ -124,9 +124,15 @@ class MasonryGallery {
|
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
126
|
renderImages(imageDataList) {
|
|
127
|
-
|
|
127
|
+
// Sort columns by current height so we start filling from the shortest.
|
|
128
|
+
// Then round-robin across them — this avoids the problem where unloaded
|
|
129
|
+
// images (0 height) cause offsetHeight-based distribution to pile all
|
|
130
|
+
// new items into a single column.
|
|
131
|
+
const sorted = [...this.columns].sort((a, b) => a.offsetHeight - b.offsetHeight);
|
|
132
|
+
imageDataList.forEach((data, index) => {
|
|
128
133
|
const item = this.createCard(data);
|
|
129
|
-
|
|
134
|
+
const col = sorted[index % sorted.length];
|
|
135
|
+
col.appendChild(item);
|
|
130
136
|
requestAnimationFrame(() => {
|
|
131
137
|
const img = item.querySelector("img");
|
|
132
138
|
if (img) {
|
|
@@ -143,12 +149,12 @@ class MasonryGallery {
|
|
|
143
149
|
createCard(data) {
|
|
144
150
|
const div = document.createElement("div");
|
|
145
151
|
div.className = "masonry-item";
|
|
146
|
-
div.innerHTML = `
|
|
147
|
-
<img src="${this.escapeHtml(data.src)}" alt="${this.escapeHtml(data.title)}" loading="lazy">
|
|
148
|
-
<div class="masonry-item-info">
|
|
149
|
-
<h3 class="masonry-item-title">${this.escapeHtml(data.title)}</h3>
|
|
150
|
-
<p class="masonry-item-desc">${this.escapeHtml(data.desc)}</p>
|
|
151
|
-
</div>
|
|
152
|
+
div.innerHTML = `
|
|
153
|
+
<img src="${this.escapeHtml(data.src)}" alt="${this.escapeHtml(data.title)}" loading="lazy">
|
|
154
|
+
<div class="masonry-item-info">
|
|
155
|
+
<h3 class="masonry-item-title">${this.escapeHtml(data.title)}</h3>
|
|
156
|
+
<p class="masonry-item-desc">${this.escapeHtml(data.desc)}</p>
|
|
157
|
+
</div>
|
|
152
158
|
`;
|
|
153
159
|
return div;
|
|
154
160
|
}
|