@customviews-js/customviews 1.1.3 → 1.1.4
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/custom-views.core.cjs.js +31 -5
- package/dist/custom-views.core.cjs.js.map +1 -1
- package/dist/custom-views.core.esm.js +31 -5
- package/dist/custom-views.core.esm.js.map +1 -1
- package/dist/custom-views.esm.js +31 -5
- package/dist/custom-views.esm.js.map +1 -1
- package/dist/custom-views.js +31 -5
- package/dist/custom-views.js.map +1 -1
- package/dist/custom-views.min.js +2 -2
- package/dist/custom-views.min.js.map +1 -1
- package/dist/types/core/render.d.ts.map +1 -1
- package/dist/types/core/widget.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/custom-views.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @customviews-js/customviews v1.1.
|
|
2
|
+
* @customviews-js/customviews v1.1.4
|
|
3
3
|
* (c) 2025 Chan Ger Teck
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -285,8 +285,12 @@
|
|
|
285
285
|
document.head.appendChild(link);
|
|
286
286
|
}
|
|
287
287
|
function replaceIconShortcodes(text) {
|
|
288
|
-
//
|
|
289
|
-
return text.replace(/:fa-([\w-]+):/g, (_, icon) =>
|
|
288
|
+
// Matches :fa-*, :fas-*, :fab-* etc.
|
|
289
|
+
return text.replace(/:(fa[b|s|r]?)-([\w-]+):/g, (_, style, icon) => {
|
|
290
|
+
// style = fa, fas, fab, far, etc.
|
|
291
|
+
// Default to "fa" if only "fa-" is given
|
|
292
|
+
return `<i class="${style} fa-${icon}"></i>`;
|
|
293
|
+
});
|
|
290
294
|
}
|
|
291
295
|
/** --- Basic renderers --- */
|
|
292
296
|
function renderImage(el, asset) {
|
|
@@ -2042,12 +2046,34 @@ ${TAB_STYLES}
|
|
|
2042
2046
|
// Get tab groups
|
|
2043
2047
|
const tabGroups = this.core.getTabGroups();
|
|
2044
2048
|
let tabGroupsHTML = '';
|
|
2049
|
+
// Check if any tab group or tab labels contain Font Awesome shortcodes
|
|
2050
|
+
let hasFontAwesomeShortcodes = false;
|
|
2051
|
+
if (this.options.showTabGroups && tabGroups && tabGroups.length > 0) {
|
|
2052
|
+
for (const group of tabGroups) {
|
|
2053
|
+
if (group.label && /:fa-[\w-]+:/.test(group.label)) {
|
|
2054
|
+
hasFontAwesomeShortcodes = true;
|
|
2055
|
+
break;
|
|
2056
|
+
}
|
|
2057
|
+
for (const tab of group.tabs) {
|
|
2058
|
+
if (tab.label && /:fa-[\w-]+:/.test(tab.label)) {
|
|
2059
|
+
hasFontAwesomeShortcodes = true;
|
|
2060
|
+
break;
|
|
2061
|
+
}
|
|
2062
|
+
}
|
|
2063
|
+
if (hasFontAwesomeShortcodes)
|
|
2064
|
+
break;
|
|
2065
|
+
}
|
|
2066
|
+
}
|
|
2067
|
+
// Inject Font Awesome only if shortcodes are found
|
|
2068
|
+
if (hasFontAwesomeShortcodes) {
|
|
2069
|
+
ensureFontAwesomeInjected();
|
|
2070
|
+
}
|
|
2045
2071
|
if (this.options.showTabGroups && tabGroups && tabGroups.length > 0) {
|
|
2046
2072
|
const tabGroupControls = tabGroups.map(group => {
|
|
2047
|
-
const options = group.tabs.map(tab => `<option value="${tab.id}">${tab.label || tab.id}</option>`).join('');
|
|
2073
|
+
const options = group.tabs.map(tab => `<option value="${tab.id}">${replaceIconShortcodes(tab.label || tab.id)}</option>`).join('');
|
|
2048
2074
|
return `
|
|
2049
2075
|
<div class="cv-tab-group-control">
|
|
2050
|
-
<label for="tab-group-${group.id}">${group.label || group.id}</label>
|
|
2076
|
+
<label for="tab-group-${group.id}">${replaceIconShortcodes(group.label || group.id)}</label>
|
|
2051
2077
|
<select id="tab-group-${group.id}" class="cv-tab-group-select" data-group-id="${group.id}">
|
|
2052
2078
|
${options}
|
|
2053
2079
|
</select>
|