web-mojo 2.1.535 → 2.1.546
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 +12 -12
- 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-B6_WuQEq.js → ChatView-DFQF253h.js} +12 -13
- package/dist/chunks/ChatView-DFQF253h.js.map +1 -0
- package/dist/chunks/ChatView-c3w18Nge.js +2 -0
- package/dist/chunks/ChatView-c3w18Nge.js.map +1 -0
- package/dist/chunks/{ContextMenu-CUFAbhvX.js → ContextMenu-DcZOc9gr.js} +2 -2
- package/dist/chunks/{ContextMenu-CUFAbhvX.js.map → ContextMenu-DcZOc9gr.js.map} +1 -1
- package/dist/chunks/{ContextMenu-DL21mK-K.js → ContextMenu-RPzLox4y.js} +2 -2
- package/dist/chunks/{ContextMenu-DL21mK-K.js.map → ContextMenu-RPzLox4y.js.map} +1 -1
- package/dist/chunks/{DataView-pjnkp_s6.js → DataView-CgqR1xyr.js} +2 -2
- package/dist/chunks/{DataView-pjnkp_s6.js.map → DataView-CgqR1xyr.js.map} +1 -1
- package/dist/chunks/{DataView-ztckztwQ.js → DataView-DoGJlcLG.js} +2 -2
- package/dist/chunks/{DataView-ztckztwQ.js.map → DataView-DoGJlcLG.js.map} +1 -1
- package/dist/chunks/{Dialog-DZcy_jFe.js → Dialog-CLzvolPa.js} +2 -2
- package/dist/chunks/{Dialog-DZcy_jFe.js.map → Dialog-CLzvolPa.js.map} +1 -1
- package/dist/chunks/{Dialog-Be3ZkGtt.js → Dialog-DCDnevkt.js} +5 -5
- package/dist/chunks/{Dialog-Be3ZkGtt.js.map → Dialog-DCDnevkt.js.map} +1 -1
- package/dist/chunks/{FormView-CyHZtouJ.js → FormView-09VtwR2c.js} +2 -2
- package/dist/chunks/{FormView-CyHZtouJ.js.map → FormView-09VtwR2c.js.map} +1 -1
- package/dist/chunks/{FormView-RJ5niGVY.js → FormView-BEii6BoR.js} +2 -2
- package/dist/chunks/{FormView-RJ5niGVY.js.map → FormView-BEii6BoR.js.map} +1 -1
- package/dist/chunks/{MetricsChart-HFbmINDC.js → MetricsChart-Wo5sQ68q.js} +3 -3
- package/dist/chunks/{MetricsChart-HFbmINDC.js.map → MetricsChart-Wo5sQ68q.js.map} +1 -1
- package/dist/chunks/{MetricsChart-DK9a46gB.js → MetricsChart-sFdE3MZj.js} +2 -2
- package/dist/chunks/{MetricsChart-DK9a46gB.js.map → MetricsChart-sFdE3MZj.js.map} +1 -1
- package/dist/chunks/{PDFViewer-DSL5K-RC.js → PDFViewer-BhFvSVNo.js} +3 -3
- package/dist/chunks/{PDFViewer-DSL5K-RC.js.map → PDFViewer-BhFvSVNo.js.map} +1 -1
- package/dist/chunks/{PDFViewer-DtTeFEKS.js → PDFViewer-CG_dvmZT.js} +2 -2
- package/dist/chunks/{PDFViewer-DtTeFEKS.js.map → PDFViewer-CG_dvmZT.js.map} +1 -1
- package/dist/chunks/{Page-D8fANAJX.js → Page-DoGJeSX8.js} +2 -2
- package/dist/chunks/{Page-D8fANAJX.js.map → Page-DoGJeSX8.js.map} +1 -1
- package/dist/chunks/{Page-fyywOoGg.js → Page-MtaIf93q.js} +2 -2
- package/dist/chunks/{Page-fyywOoGg.js.map → Page-MtaIf93q.js.map} +1 -1
- package/dist/chunks/{TopNav-BYsRM6BZ.js → TopNav-BdzUfQv_.js} +2 -2
- package/dist/chunks/{TopNav-BYsRM6BZ.js.map → TopNav-BdzUfQv_.js.map} +1 -1
- package/dist/chunks/{TopNav-DnpYXG9a.js → TopNav-t5ZBQ3WL.js} +2 -2
- package/dist/chunks/{TopNav-DnpYXG9a.js.map → TopNav-t5ZBQ3WL.js.map} +1 -1
- package/dist/chunks/WebApp-BTgGjF-0.js +2 -0
- package/dist/chunks/WebApp-BTgGjF-0.js.map +1 -0
- package/dist/chunks/{WebApp-Brh2wRZ3.js → WebApp-C-Hi63fx.js} +59 -18
- package/dist/chunks/WebApp-C-Hi63fx.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-7uXqcmuN.js +0 -2
- package/dist/chunks/ChatView-7uXqcmuN.js.map +0 -1
- package/dist/chunks/ChatView-B6_WuQEq.js.map +0 -1
- package/dist/chunks/WebApp-Brh2wRZ3.js.map +0 -1
- package/dist/chunks/WebApp-XHTE27hi.js +0 -2
- package/dist/chunks/WebApp-XHTE27hi.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const VERSION = "2.1.
|
|
1
|
+
const VERSION = "2.1.546";
|
|
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 = 546;
|
|
5
|
+
const BUILD_TIME = "2025-10-01T16:02:53.563Z";
|
|
6
6
|
const VERSION_INFO = {
|
|
7
7
|
full: VERSION,
|
|
8
8
|
major: VERSION_MAJOR,
|
|
@@ -765,8 +765,10 @@ class DataFormatter {
|
|
|
765
765
|
}
|
|
766
766
|
}
|
|
767
767
|
if (context && this.isIdentifier(value)) {
|
|
768
|
-
if (
|
|
769
|
-
|
|
768
|
+
if (!value.includes(".")) {
|
|
769
|
+
if (context.hasOwnProperty && context.hasOwnProperty(value)) {
|
|
770
|
+
return context[value];
|
|
771
|
+
}
|
|
770
772
|
}
|
|
771
773
|
if (context.get && typeof context.get === "function") {
|
|
772
774
|
const contextValue = context.get(value);
|
|
@@ -780,16 +782,25 @@ class DataFormatter {
|
|
|
780
782
|
return contextValue;
|
|
781
783
|
}
|
|
782
784
|
}
|
|
785
|
+
if (value.includes(".")) {
|
|
786
|
+
const MOJOUtils2 = window.MOJOUtils || (typeof require !== "undefined" ? require("./MOJOUtils.js").default : null);
|
|
787
|
+
if (MOJOUtils2) {
|
|
788
|
+
const contextValue = MOJOUtils2.getNestedValue(context, value);
|
|
789
|
+
if (contextValue !== void 0) {
|
|
790
|
+
return contextValue;
|
|
791
|
+
}
|
|
792
|
+
}
|
|
793
|
+
}
|
|
783
794
|
}
|
|
784
795
|
return value;
|
|
785
796
|
}
|
|
786
797
|
/**
|
|
787
|
-
* Check if a value is a valid identifier (variable name)
|
|
798
|
+
* Check if a value is a valid identifier (variable name or dot-notation path)
|
|
788
799
|
* @param {string} value - Value to check
|
|
789
|
-
* @returns {boolean} True if valid identifier
|
|
800
|
+
* @returns {boolean} True if valid identifier or path
|
|
790
801
|
*/
|
|
791
802
|
isIdentifier(value) {
|
|
792
|
-
return /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(value);
|
|
803
|
+
return /^[a-zA-Z_$][a-zA-Z0-9_$]*(\.[a-zA-Z_$][a-zA-Z0-9_$]*)*$/.test(value);
|
|
793
804
|
}
|
|
794
805
|
// ============= Date/Time Formatters =============
|
|
795
806
|
/**
|
|
@@ -2637,6 +2648,7 @@ class View {
|
|
|
2637
2648
|
this.debug = opts.debug ?? false;
|
|
2638
2649
|
this.app = opts.app ?? null;
|
|
2639
2650
|
this.cacheTemplate = opts.cacheTemplate ?? true;
|
|
2651
|
+
this.enableTooltips = opts.enableTooltips ?? false;
|
|
2640
2652
|
this.options = { ...opts };
|
|
2641
2653
|
this.element = this._ensureElement();
|
|
2642
2654
|
this.events = new EventDelegate(this);
|
|
@@ -2944,9 +2956,15 @@ class View {
|
|
|
2944
2956
|
}
|
|
2945
2957
|
bindEvents() {
|
|
2946
2958
|
this.events.bind(this.element);
|
|
2959
|
+
if (this.enableTooltips) {
|
|
2960
|
+
this.initializeTooltips();
|
|
2961
|
+
}
|
|
2947
2962
|
}
|
|
2948
2963
|
unbindEvents() {
|
|
2949
2964
|
this.events.unbind();
|
|
2965
|
+
if (this.enableTooltips) {
|
|
2966
|
+
this.disposeTooltips();
|
|
2967
|
+
}
|
|
2950
2968
|
}
|
|
2951
2969
|
// ---------------------------------------------
|
|
2952
2970
|
// Template helpers
|
|
@@ -3119,6 +3137,29 @@ class View {
|
|
|
3119
3137
|
if (!el) return false;
|
|
3120
3138
|
return this.element.contains(el);
|
|
3121
3139
|
}
|
|
3140
|
+
/**
|
|
3141
|
+
* Initialize Bootstrap tooltips in this view's element
|
|
3142
|
+
* Called automatically in bindEvents() if enableTooltips is true
|
|
3143
|
+
*/
|
|
3144
|
+
initializeTooltips() {
|
|
3145
|
+
if (!this.element || !window.bootstrap?.Tooltip) return;
|
|
3146
|
+
const tooltipTriggerList = this.element.querySelectorAll('[data-bs-toggle="tooltip"]');
|
|
3147
|
+
[...tooltipTriggerList].map((tooltipTriggerEl) => new window.bootstrap.Tooltip(tooltipTriggerEl));
|
|
3148
|
+
}
|
|
3149
|
+
/**
|
|
3150
|
+
* Dispose all Bootstrap tooltips in this view's element
|
|
3151
|
+
* Called automatically in unbindEvents() if enableTooltips is true
|
|
3152
|
+
*/
|
|
3153
|
+
disposeTooltips() {
|
|
3154
|
+
if (!this.element || !window.bootstrap?.Tooltip) return;
|
|
3155
|
+
const tooltipElements = this.element.querySelectorAll('[data-bs-toggle="tooltip"]');
|
|
3156
|
+
tooltipElements.forEach((element) => {
|
|
3157
|
+
const tooltip = window.bootstrap.Tooltip.getInstance(element);
|
|
3158
|
+
if (tooltip) {
|
|
3159
|
+
tooltip.dispose();
|
|
3160
|
+
}
|
|
3161
|
+
});
|
|
3162
|
+
}
|
|
3122
3163
|
/**
|
|
3123
3164
|
* Show error message
|
|
3124
3165
|
* @param {string} message - Error message
|
|
@@ -4860,7 +4901,7 @@ class WebApp {
|
|
|
4860
4901
|
*/
|
|
4861
4902
|
async showError(message) {
|
|
4862
4903
|
try {
|
|
4863
|
-
const Dialog = (await import("./Dialog-
|
|
4904
|
+
const Dialog = (await import("./Dialog-DCDnevkt.js")).default;
|
|
4864
4905
|
await Dialog.alert(message, "Error", { size: "md", class: "text-danger" });
|
|
4865
4906
|
} catch (e) {
|
|
4866
4907
|
this.events.emit("notification", { message, type: "error" });
|
|
@@ -4877,7 +4918,7 @@ class WebApp {
|
|
|
4877
4918
|
*/
|
|
4878
4919
|
async showSuccess(message) {
|
|
4879
4920
|
try {
|
|
4880
|
-
const Dialog = (await import("./Dialog-
|
|
4921
|
+
const Dialog = (await import("./Dialog-DCDnevkt.js")).default;
|
|
4881
4922
|
await Dialog.alert(message, "Success", { size: "md", class: "text-success" });
|
|
4882
4923
|
} catch (e) {
|
|
4883
4924
|
this.events.emit("notification", { message, type: "success" });
|
|
@@ -4894,7 +4935,7 @@ class WebApp {
|
|
|
4894
4935
|
*/
|
|
4895
4936
|
async showInfo(message) {
|
|
4896
4937
|
try {
|
|
4897
|
-
const Dialog = (await import("./Dialog-
|
|
4938
|
+
const Dialog = (await import("./Dialog-DCDnevkt.js")).default;
|
|
4898
4939
|
await Dialog.alert(message, "Information", { size: "md", class: "text-info" });
|
|
4899
4940
|
} catch (e) {
|
|
4900
4941
|
this.events.emit("notification", { message, type: "info" });
|
|
@@ -4911,7 +4952,7 @@ class WebApp {
|
|
|
4911
4952
|
*/
|
|
4912
4953
|
async showWarning(message) {
|
|
4913
4954
|
try {
|
|
4914
|
-
const Dialog = (await import("./Dialog-
|
|
4955
|
+
const Dialog = (await import("./Dialog-DCDnevkt.js")).default;
|
|
4915
4956
|
await Dialog.alert(message, "Warning", { size: "md", class: "text-warning" });
|
|
4916
4957
|
} catch (e) {
|
|
4917
4958
|
this.events.emit("notification", { message, type: "warning" });
|
|
@@ -4937,7 +4978,7 @@ class WebApp {
|
|
|
4937
4978
|
opts = { message: opts };
|
|
4938
4979
|
}
|
|
4939
4980
|
try {
|
|
4940
|
-
const Dialog = (await import("./Dialog-
|
|
4981
|
+
const Dialog = (await import("./Dialog-DCDnevkt.js")).default;
|
|
4941
4982
|
Dialog.showBusy(opts);
|
|
4942
4983
|
} catch (e) {
|
|
4943
4984
|
if (typeof window !== "undefined" && window?.console) {
|
|
@@ -4951,7 +4992,7 @@ class WebApp {
|
|
|
4951
4992
|
*/
|
|
4952
4993
|
async hideLoading() {
|
|
4953
4994
|
try {
|
|
4954
|
-
const Dialog = (await import("./Dialog-
|
|
4995
|
+
const Dialog = (await import("./Dialog-DCDnevkt.js")).default;
|
|
4955
4996
|
Dialog.hideBusy();
|
|
4956
4997
|
} catch (e) {
|
|
4957
4998
|
if (typeof window !== "undefined" && window?.console) {
|
|
@@ -4961,7 +5002,7 @@ class WebApp {
|
|
|
4961
5002
|
}
|
|
4962
5003
|
async showModelForm(options = {}) {
|
|
4963
5004
|
try {
|
|
4964
|
-
const Dialog = (await import("./Dialog-
|
|
5005
|
+
const Dialog = (await import("./Dialog-DCDnevkt.js")).default;
|
|
4965
5006
|
return await Dialog.showModelForm(options);
|
|
4966
5007
|
} catch (e) {
|
|
4967
5008
|
if (typeof window !== "undefined" && window?.console) {
|
|
@@ -4972,7 +5013,7 @@ class WebApp {
|
|
|
4972
5013
|
}
|
|
4973
5014
|
async showForm(options = {}) {
|
|
4974
5015
|
try {
|
|
4975
|
-
const Dialog = (await import("./Dialog-
|
|
5016
|
+
const Dialog = (await import("./Dialog-DCDnevkt.js")).default;
|
|
4976
5017
|
return await Dialog.showForm(options);
|
|
4977
5018
|
} catch (e) {
|
|
4978
5019
|
if (typeof window !== "undefined" && window?.console) {
|
|
@@ -4982,7 +5023,7 @@ class WebApp {
|
|
|
4982
5023
|
}
|
|
4983
5024
|
}
|
|
4984
5025
|
async confirm(message, title = "Confirm", options = {}) {
|
|
4985
|
-
const Dialog = (await import("./Dialog-
|
|
5026
|
+
const Dialog = (await import("./Dialog-DCDnevkt.js")).default;
|
|
4986
5027
|
return await Dialog.confirm(message, title, options);
|
|
4987
5028
|
}
|
|
4988
5029
|
/**
|
|
@@ -5235,4 +5276,4 @@ export {
|
|
|
5235
5276
|
EventEmitter as i,
|
|
5236
5277
|
rest as r
|
|
5237
5278
|
};
|
|
5238
|
-
//# sourceMappingURL=WebApp-
|
|
5279
|
+
//# sourceMappingURL=WebApp-C-Hi63fx.js.map
|