@pure-ds/core 0.5.60 → 0.6.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/dist/types/packages/pds-configurator/src/pds-home-content.d.ts +375 -0
- package/dist/types/packages/pds-configurator/src/pds-home-content.d.ts.map +1 -0
- package/dist/types/packages/pds-configurator/src/pds-home.d.ts +2 -0
- package/dist/types/packages/pds-configurator/src/pds-home.d.ts.map +1 -0
- package/dist/types/pds.config.d.ts +4 -8
- package/dist/types/pds.config.d.ts.map +1 -1
- package/dist/types/pds.d.ts +3 -1
- package/dist/types/public/assets/js/pds-manager.d.ts.map +1 -1
- package/dist/types/public/assets/js/pds.d.ts.map +1 -1
- package/dist/types/public/assets/pds/components/pds-live-edit.d.ts +150 -0
- package/dist/types/public/assets/pds/components/pds-live-edit.d.ts.map +1 -0
- package/dist/types/public/assets/pds/components/pds-omnibox.d.ts +2 -0
- package/dist/types/public/assets/pds/components/pds-omnibox.d.ts.map +1 -1
- package/dist/types/public/assets/pds/components/pds-richtext.d.ts.map +1 -1
- package/dist/types/public/assets/pds/components/pds-theme.d.ts +5 -0
- package/dist/types/public/assets/pds/components/pds-theme.d.ts.map +1 -1
- package/dist/types/src/js/pds-core/pds-config.d.ts +457 -0
- package/dist/types/src/js/pds-core/pds-config.d.ts.map +1 -1
- package/dist/types/src/js/pds-core/pds-enhancers.d.ts.map +1 -1
- package/dist/types/src/js/pds-core/pds-live.d.ts.map +1 -1
- package/dist/types/src/js/pds-core/pds-ontology.d.ts.map +1 -1
- package/dist/types/src/js/pds-core/pds-start-helpers.d.ts.map +1 -1
- package/dist/types/src/js/pds-core/pds-theme-utils.d.ts +6 -0
- package/dist/types/src/js/pds-core/pds-theme-utils.d.ts.map +1 -0
- package/dist/types/src/js/pds.d.ts.map +1 -1
- package/package.json +1 -4
- package/packages/pds-cli/bin/templates/bootstrap/pds.config.js +9 -2
- package/public/assets/js/app.js +106 -5636
- package/public/assets/js/pds-manager.js +156 -156
- package/public/assets/js/pds.js +7 -7
- package/public/assets/pds/components/pds-live-edit.js +1555 -0
- package/public/assets/pds/components/pds-omnibox.js +558 -369
- package/public/assets/pds/components/pds-richtext.js +57 -7
- package/public/assets/pds/components/pds-theme.js +58 -0
- package/readme.md +2 -2
- package/src/js/pds-core/pds-config.js +705 -1
- package/src/js/pds-core/pds-enhancers.js +61 -4
- package/src/js/pds-core/pds-live.js +545 -437
- package/src/js/pds-core/pds-ontology.js +8 -0
- package/src/js/pds-core/pds-start-helpers.js +15 -0
- package/src/js/pds-core/pds-theme-utils.js +33 -0
- package/src/js/pds.d.ts +3 -1
- package/src/js/pds.js +22 -0
|
@@ -77,16 +77,55 @@ function enhanceDropdown(elem) {
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
const resolveDirection = () => {
|
|
80
|
-
const mode = (
|
|
80
|
+
const mode = (
|
|
81
|
+
elem.getAttribute("data-direction") ||
|
|
82
|
+
elem.getAttribute("data-dropdown-direction") ||
|
|
83
|
+
elem.getAttribute("data-mode") ||
|
|
84
|
+
"auto"
|
|
85
|
+
).toLowerCase();
|
|
81
86
|
if (mode === "up" || mode === "down") return mode;
|
|
82
87
|
const rect = elem.getBoundingClientRect();
|
|
88
|
+
const menuRect = menu?.getBoundingClientRect?.() || { height: 0 };
|
|
89
|
+
const menuHeight = Math.max(
|
|
90
|
+
menu?.offsetHeight || 0,
|
|
91
|
+
menu?.scrollHeight || 0,
|
|
92
|
+
menuRect.height || 0,
|
|
93
|
+
200
|
|
94
|
+
);
|
|
83
95
|
const spaceBelow = Math.max(0, window.innerHeight - rect.bottom);
|
|
84
96
|
const spaceAbove = Math.max(0, rect.top);
|
|
97
|
+
if (spaceBelow >= menuHeight) return "down";
|
|
98
|
+
if (spaceAbove >= menuHeight) return "up";
|
|
85
99
|
return spaceAbove > spaceBelow ? "up" : "down";
|
|
86
100
|
};
|
|
87
101
|
|
|
102
|
+
const resolveAlign = () => {
|
|
103
|
+
const align = (
|
|
104
|
+
elem.getAttribute("data-align") ||
|
|
105
|
+
elem.getAttribute("data-dropdown-align") ||
|
|
106
|
+
"auto"
|
|
107
|
+
).toLowerCase();
|
|
108
|
+
if (align === "left" || align === "right" || align === "start" || align === "end") {
|
|
109
|
+
return align === "start" ? "left" : align === "end" ? "right" : align;
|
|
110
|
+
}
|
|
111
|
+
const rect = elem.getBoundingClientRect();
|
|
112
|
+
const menuRect = menu?.getBoundingClientRect?.() || { width: 0 };
|
|
113
|
+
const menuWidth = Math.max(
|
|
114
|
+
menu?.offsetWidth || 0,
|
|
115
|
+
menu?.scrollWidth || 0,
|
|
116
|
+
menuRect.width || 0,
|
|
117
|
+
240
|
|
118
|
+
);
|
|
119
|
+
const spaceRight = Math.max(0, window.innerWidth - rect.left);
|
|
120
|
+
const spaceLeft = Math.max(0, rect.right);
|
|
121
|
+
if (spaceRight >= menuWidth) return "left";
|
|
122
|
+
if (spaceLeft >= menuWidth) return "right";
|
|
123
|
+
return spaceLeft > spaceRight ? "right" : "left";
|
|
124
|
+
};
|
|
125
|
+
|
|
88
126
|
const openMenu = () => {
|
|
89
127
|
elem.dataset.dropdownDirection = resolveDirection();
|
|
128
|
+
elem.dataset.dropdownAlign = resolveAlign();
|
|
90
129
|
menu.setAttribute("aria-hidden", "false");
|
|
91
130
|
trigger?.setAttribute("aria-expanded", "true");
|
|
92
131
|
};
|
|
@@ -264,16 +303,34 @@ function enhanceRequired(elem) {
|
|
|
264
303
|
elem.dataset.enhancedRequired = "true";
|
|
265
304
|
|
|
266
305
|
const enhanceRequiredField = (input) => {
|
|
267
|
-
|
|
268
|
-
|
|
306
|
+
let label;
|
|
307
|
+
if(input.closest("[role$=group]")) { // Handles both radiogroup and group
|
|
308
|
+
label = input.closest("[role$=group]").querySelector("legend");
|
|
309
|
+
}
|
|
310
|
+
else{
|
|
311
|
+
label = input.closest("label");
|
|
312
|
+
}
|
|
269
313
|
if (!label) return;
|
|
314
|
+
|
|
315
|
+
|
|
270
316
|
if (label.querySelector(".required-asterisk")) return;
|
|
271
317
|
|
|
272
318
|
const asterisk = document.createElement("span");
|
|
273
319
|
asterisk.classList.add("required-asterisk");
|
|
274
320
|
asterisk.textContent = "*";
|
|
275
321
|
asterisk.style.marginLeft = "4px";
|
|
276
|
-
|
|
322
|
+
|
|
323
|
+
const labelText = label.querySelector("span, [data-label]");
|
|
324
|
+
if (labelText) {
|
|
325
|
+
labelText.appendChild(asterisk);
|
|
326
|
+
} else {
|
|
327
|
+
const field = label.querySelector("input, select, textarea");
|
|
328
|
+
if (field) {
|
|
329
|
+
label.insertBefore(asterisk, field);
|
|
330
|
+
} else {
|
|
331
|
+
label.appendChild(asterisk);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
277
334
|
|
|
278
335
|
const form = input.closest("form");
|
|
279
336
|
if (form && !form.querySelector(".required-legend")) {
|