web-mojo 2.1.534 → 2.1.541
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/admin.cjs.js +1 -1
- package/dist/admin.cjs.js.map +1 -1
- package/dist/admin.es.js +11 -11
- package/dist/admin.es.js.map +1 -1
- package/dist/auth.cjs.js +1 -1
- package/dist/auth.cjs.js.map +1 -1
- package/dist/auth.es.js +3 -3
- package/dist/auth.es.js.map +1 -1
- package/dist/charts.cjs.js +1 -1
- package/dist/charts.es.js +3 -3
- package/dist/chunks/ChatView-CS5v3Ngm.js +2 -0
- package/dist/chunks/ChatView-CS5v3Ngm.js.map +1 -0
- package/dist/chunks/{ChatView-BR4MUIQ7.js → ChatView-D8QF3I2d.js} +12 -13
- package/dist/chunks/ChatView-D8QF3I2d.js.map +1 -0
- package/dist/chunks/{ContextMenu-r62gqzG_.js → ContextMenu-BxNAykJd.js} +2 -2
- package/dist/chunks/{ContextMenu-r62gqzG_.js.map → ContextMenu-BxNAykJd.js.map} +1 -1
- package/dist/chunks/{ContextMenu-CKGSU-E0.js → ContextMenu-BzvHUrN8.js} +2 -2
- package/dist/chunks/{ContextMenu-CKGSU-E0.js.map → ContextMenu-BzvHUrN8.js.map} +1 -1
- package/dist/chunks/{DataView-DRUU1yu6.js → DataView-Ckb82Lf6.js} +2 -2
- package/dist/chunks/{DataView-DRUU1yu6.js.map → DataView-Ckb82Lf6.js.map} +1 -1
- package/dist/chunks/{DataView-C00j4YuH.js → DataView-DinwdAt8.js} +2 -2
- package/dist/chunks/{DataView-C00j4YuH.js.map → DataView-DinwdAt8.js.map} +1 -1
- package/dist/chunks/{Dialog-CvWIF2VC.js → Dialog-BqfKgNPl.js} +2 -2
- package/dist/chunks/{Dialog-CvWIF2VC.js.map → Dialog-BqfKgNPl.js.map} +1 -1
- package/dist/chunks/{Dialog-DOltX5lG.js → Dialog-CdjTdWFy.js} +5 -5
- package/dist/chunks/{Dialog-DOltX5lG.js.map → Dialog-CdjTdWFy.js.map} +1 -1
- package/dist/chunks/{FormView-CvUhsQ87.js → FormView-CO2fMfms.js} +2 -2
- package/dist/chunks/{FormView-CvUhsQ87.js.map → FormView-CO2fMfms.js.map} +1 -1
- package/dist/chunks/{FormView-DxyOHSb3.js → FormView-CVeqzOfl.js} +2 -2
- package/dist/chunks/{FormView-DxyOHSb3.js.map → FormView-CVeqzOfl.js.map} +1 -1
- package/dist/chunks/{MetricsChart-XlMOtMvk.js → MetricsChart-BiuzBNK_.js} +2 -2
- package/dist/chunks/{MetricsChart-XlMOtMvk.js.map → MetricsChart-BiuzBNK_.js.map} +1 -1
- package/dist/chunks/{MetricsChart-CqX2FxtM.js → MetricsChart-BtPdRK4u.js} +3 -3
- package/dist/chunks/{MetricsChart-CqX2FxtM.js.map → MetricsChart-BtPdRK4u.js.map} +1 -1
- package/dist/chunks/{PDFViewer-BzQuNUos.js → PDFViewer-BSS4oiLb.js} +3 -3
- package/dist/chunks/{PDFViewer-BzQuNUos.js.map → PDFViewer-BSS4oiLb.js.map} +1 -1
- package/dist/chunks/{PDFViewer-0iyFqFcD.js → PDFViewer-BVP_1_G2.js} +2 -2
- package/dist/chunks/{PDFViewer-0iyFqFcD.js.map → PDFViewer-BVP_1_G2.js.map} +1 -1
- package/dist/chunks/{Page-CFEQrTH-.js → Page-C5yf_RnZ.js} +2 -2
- package/dist/chunks/{Page-CFEQrTH-.js.map → Page-C5yf_RnZ.js.map} +1 -1
- package/dist/chunks/{Page-B0pLNM5B.js → Page-Ck9-JuLX.js} +2 -2
- package/dist/chunks/{Page-B0pLNM5B.js.map → Page-Ck9-JuLX.js.map} +1 -1
- package/dist/chunks/{TopNav-Cqtmux-V.js → TopNav-BpNbneX8.js} +2 -2
- package/dist/chunks/{TopNav-Cqtmux-V.js.map → TopNav-BpNbneX8.js.map} +1 -1
- package/dist/chunks/{TopNav-DtOyaoKD.js → TopNav-C4c7gNJt.js} +2 -2
- package/dist/chunks/{TopNav-DtOyaoKD.js.map → TopNav-C4c7gNJt.js.map} +1 -1
- package/dist/chunks/WebApp-CWbRPN8W.js +2 -0
- package/dist/chunks/WebApp-CWbRPN8W.js.map +1 -0
- package/dist/chunks/{WebApp-DhGNFpF5.js → WebApp-DVm8Swji.js} +45 -15
- package/dist/chunks/WebApp-DVm8Swji.js.map +1 -0
- package/dist/docit.cjs.js +1 -1
- package/dist/docit.es.js +5 -5
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +11 -11
- package/dist/lightbox.cjs.js +1 -1
- package/dist/lightbox.es.js +4 -4
- package/package.json +1 -1
- package/dist/chunks/ChatView-BR4MUIQ7.js.map +0 -1
- package/dist/chunks/ChatView-ClUFUtJe.js +0 -2
- package/dist/chunks/ChatView-ClUFUtJe.js.map +0 -1
- package/dist/chunks/WebApp-CcfMKEFQ.js +0 -2
- package/dist/chunks/WebApp-CcfMKEFQ.js.map +0 -1
- package/dist/chunks/WebApp-DhGNFpF5.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const VERSION = "2.1.
|
|
1
|
+
const VERSION = "2.1.541";
|
|
2
2
|
const VERSION_MAJOR = 2;
|
|
3
3
|
const VERSION_MINOR = 1;
|
|
4
|
-
const VERSION_REVISION =
|
|
5
|
-
const BUILD_TIME = "2025-10-
|
|
4
|
+
const VERSION_REVISION = 541;
|
|
5
|
+
const BUILD_TIME = "2025-10-01T14:18:11.865Z";
|
|
6
6
|
const VERSION_INFO = {
|
|
7
7
|
full: VERSION,
|
|
8
8
|
major: VERSION_MAJOR,
|
|
@@ -1498,7 +1498,7 @@ class DataFormatter {
|
|
|
1498
1498
|
* {{value|tooltip:'Help text':top}}
|
|
1499
1499
|
* {{value|tooltip:'Info':bottom:html}}
|
|
1500
1500
|
*
|
|
1501
|
-
* @param {*} value - Value to display
|
|
1501
|
+
* @param {*} value - Value to display (not escaped, works with formatter chains)
|
|
1502
1502
|
* @param {string} text - Tooltip text content
|
|
1503
1503
|
* @param {string} placement - Tooltip placement: top, bottom, left, right (default: top)
|
|
1504
1504
|
* @param {string} html - 'html' to allow HTML in tooltip (default: text only)
|
|
@@ -1506,7 +1506,7 @@ class DataFormatter {
|
|
|
1506
1506
|
*/
|
|
1507
1507
|
tooltip(value, text = "", placement = "top", html = "") {
|
|
1508
1508
|
if (value === null || value === void 0) return "";
|
|
1509
|
-
const displayValue =
|
|
1509
|
+
const displayValue = String(value);
|
|
1510
1510
|
const tooltipText = html === "html" ? text : this.escapeHtml(text);
|
|
1511
1511
|
const dataAttr = html === "html" ? 'data-bs-html="true"' : "";
|
|
1512
1512
|
return `<span data-bs-toggle="tooltip" data-bs-placement="${placement}" ${dataAttr} data-bs-title="${tooltipText}">${displayValue}</span>`;
|
|
@@ -2637,6 +2637,7 @@ class View {
|
|
|
2637
2637
|
this.debug = opts.debug ?? false;
|
|
2638
2638
|
this.app = opts.app ?? null;
|
|
2639
2639
|
this.cacheTemplate = opts.cacheTemplate ?? true;
|
|
2640
|
+
this.enableTooltips = opts.enableTooltips ?? false;
|
|
2640
2641
|
this.options = { ...opts };
|
|
2641
2642
|
this.element = this._ensureElement();
|
|
2642
2643
|
this.events = new EventDelegate(this);
|
|
@@ -2944,9 +2945,15 @@ class View {
|
|
|
2944
2945
|
}
|
|
2945
2946
|
bindEvents() {
|
|
2946
2947
|
this.events.bind(this.element);
|
|
2948
|
+
if (this.enableTooltips) {
|
|
2949
|
+
this.initializeTooltips();
|
|
2950
|
+
}
|
|
2947
2951
|
}
|
|
2948
2952
|
unbindEvents() {
|
|
2949
2953
|
this.events.unbind();
|
|
2954
|
+
if (this.enableTooltips) {
|
|
2955
|
+
this.disposeTooltips();
|
|
2956
|
+
}
|
|
2950
2957
|
}
|
|
2951
2958
|
// ---------------------------------------------
|
|
2952
2959
|
// Template helpers
|
|
@@ -3119,6 +3126,29 @@ class View {
|
|
|
3119
3126
|
if (!el) return false;
|
|
3120
3127
|
return this.element.contains(el);
|
|
3121
3128
|
}
|
|
3129
|
+
/**
|
|
3130
|
+
* Initialize Bootstrap tooltips in this view's element
|
|
3131
|
+
* Called automatically in bindEvents() if enableTooltips is true
|
|
3132
|
+
*/
|
|
3133
|
+
initializeTooltips() {
|
|
3134
|
+
if (!this.element || !window.bootstrap?.Tooltip) return;
|
|
3135
|
+
const tooltipTriggerList = this.element.querySelectorAll('[data-bs-toggle="tooltip"]');
|
|
3136
|
+
[...tooltipTriggerList].map((tooltipTriggerEl) => new window.bootstrap.Tooltip(tooltipTriggerEl));
|
|
3137
|
+
}
|
|
3138
|
+
/**
|
|
3139
|
+
* Dispose all Bootstrap tooltips in this view's element
|
|
3140
|
+
* Called automatically in unbindEvents() if enableTooltips is true
|
|
3141
|
+
*/
|
|
3142
|
+
disposeTooltips() {
|
|
3143
|
+
if (!this.element || !window.bootstrap?.Tooltip) return;
|
|
3144
|
+
const tooltipElements = this.element.querySelectorAll('[data-bs-toggle="tooltip"]');
|
|
3145
|
+
tooltipElements.forEach((element) => {
|
|
3146
|
+
const tooltip = window.bootstrap.Tooltip.getInstance(element);
|
|
3147
|
+
if (tooltip) {
|
|
3148
|
+
tooltip.dispose();
|
|
3149
|
+
}
|
|
3150
|
+
});
|
|
3151
|
+
}
|
|
3122
3152
|
/**
|
|
3123
3153
|
* Show error message
|
|
3124
3154
|
* @param {string} message - Error message
|
|
@@ -4860,7 +4890,7 @@ class WebApp {
|
|
|
4860
4890
|
*/
|
|
4861
4891
|
async showError(message) {
|
|
4862
4892
|
try {
|
|
4863
|
-
const Dialog = (await import("./Dialog-
|
|
4893
|
+
const Dialog = (await import("./Dialog-CdjTdWFy.js")).default;
|
|
4864
4894
|
await Dialog.alert(message, "Error", { size: "md", class: "text-danger" });
|
|
4865
4895
|
} catch (e) {
|
|
4866
4896
|
this.events.emit("notification", { message, type: "error" });
|
|
@@ -4877,7 +4907,7 @@ class WebApp {
|
|
|
4877
4907
|
*/
|
|
4878
4908
|
async showSuccess(message) {
|
|
4879
4909
|
try {
|
|
4880
|
-
const Dialog = (await import("./Dialog-
|
|
4910
|
+
const Dialog = (await import("./Dialog-CdjTdWFy.js")).default;
|
|
4881
4911
|
await Dialog.alert(message, "Success", { size: "md", class: "text-success" });
|
|
4882
4912
|
} catch (e) {
|
|
4883
4913
|
this.events.emit("notification", { message, type: "success" });
|
|
@@ -4894,7 +4924,7 @@ class WebApp {
|
|
|
4894
4924
|
*/
|
|
4895
4925
|
async showInfo(message) {
|
|
4896
4926
|
try {
|
|
4897
|
-
const Dialog = (await import("./Dialog-
|
|
4927
|
+
const Dialog = (await import("./Dialog-CdjTdWFy.js")).default;
|
|
4898
4928
|
await Dialog.alert(message, "Information", { size: "md", class: "text-info" });
|
|
4899
4929
|
} catch (e) {
|
|
4900
4930
|
this.events.emit("notification", { message, type: "info" });
|
|
@@ -4911,7 +4941,7 @@ class WebApp {
|
|
|
4911
4941
|
*/
|
|
4912
4942
|
async showWarning(message) {
|
|
4913
4943
|
try {
|
|
4914
|
-
const Dialog = (await import("./Dialog-
|
|
4944
|
+
const Dialog = (await import("./Dialog-CdjTdWFy.js")).default;
|
|
4915
4945
|
await Dialog.alert(message, "Warning", { size: "md", class: "text-warning" });
|
|
4916
4946
|
} catch (e) {
|
|
4917
4947
|
this.events.emit("notification", { message, type: "warning" });
|
|
@@ -4937,7 +4967,7 @@ class WebApp {
|
|
|
4937
4967
|
opts = { message: opts };
|
|
4938
4968
|
}
|
|
4939
4969
|
try {
|
|
4940
|
-
const Dialog = (await import("./Dialog-
|
|
4970
|
+
const Dialog = (await import("./Dialog-CdjTdWFy.js")).default;
|
|
4941
4971
|
Dialog.showBusy(opts);
|
|
4942
4972
|
} catch (e) {
|
|
4943
4973
|
if (typeof window !== "undefined" && window?.console) {
|
|
@@ -4951,7 +4981,7 @@ class WebApp {
|
|
|
4951
4981
|
*/
|
|
4952
4982
|
async hideLoading() {
|
|
4953
4983
|
try {
|
|
4954
|
-
const Dialog = (await import("./Dialog-
|
|
4984
|
+
const Dialog = (await import("./Dialog-CdjTdWFy.js")).default;
|
|
4955
4985
|
Dialog.hideBusy();
|
|
4956
4986
|
} catch (e) {
|
|
4957
4987
|
if (typeof window !== "undefined" && window?.console) {
|
|
@@ -4961,7 +4991,7 @@ class WebApp {
|
|
|
4961
4991
|
}
|
|
4962
4992
|
async showModelForm(options = {}) {
|
|
4963
4993
|
try {
|
|
4964
|
-
const Dialog = (await import("./Dialog-
|
|
4994
|
+
const Dialog = (await import("./Dialog-CdjTdWFy.js")).default;
|
|
4965
4995
|
return await Dialog.showModelForm(options);
|
|
4966
4996
|
} catch (e) {
|
|
4967
4997
|
if (typeof window !== "undefined" && window?.console) {
|
|
@@ -4972,7 +5002,7 @@ class WebApp {
|
|
|
4972
5002
|
}
|
|
4973
5003
|
async showForm(options = {}) {
|
|
4974
5004
|
try {
|
|
4975
|
-
const Dialog = (await import("./Dialog-
|
|
5005
|
+
const Dialog = (await import("./Dialog-CdjTdWFy.js")).default;
|
|
4976
5006
|
return await Dialog.showForm(options);
|
|
4977
5007
|
} catch (e) {
|
|
4978
5008
|
if (typeof window !== "undefined" && window?.console) {
|
|
@@ -4982,7 +5012,7 @@ class WebApp {
|
|
|
4982
5012
|
}
|
|
4983
5013
|
}
|
|
4984
5014
|
async confirm(message, title = "Confirm", options = {}) {
|
|
4985
|
-
const Dialog = (await import("./Dialog-
|
|
5015
|
+
const Dialog = (await import("./Dialog-CdjTdWFy.js")).default;
|
|
4986
5016
|
return await Dialog.confirm(message, title, options);
|
|
4987
5017
|
}
|
|
4988
5018
|
/**
|
|
@@ -5235,4 +5265,4 @@ export {
|
|
|
5235
5265
|
EventEmitter as i,
|
|
5236
5266
|
rest as r
|
|
5237
5267
|
};
|
|
5238
|
-
//# sourceMappingURL=WebApp-
|
|
5268
|
+
//# sourceMappingURL=WebApp-DVm8Swji.js.map
|