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.
Files changed (63) hide show
  1. package/dist/admin.cjs.js +1 -1
  2. package/dist/admin.cjs.js.map +1 -1
  3. package/dist/admin.es.js +12 -12
  4. package/dist/admin.es.js.map +1 -1
  5. package/dist/auth.cjs.js +1 -1
  6. package/dist/auth.cjs.js.map +1 -1
  7. package/dist/auth.es.js +3 -3
  8. package/dist/auth.es.js.map +1 -1
  9. package/dist/charts.cjs.js +1 -1
  10. package/dist/charts.es.js +3 -3
  11. package/dist/chunks/{ChatView-B6_WuQEq.js → ChatView-DFQF253h.js} +12 -13
  12. package/dist/chunks/ChatView-DFQF253h.js.map +1 -0
  13. package/dist/chunks/ChatView-c3w18Nge.js +2 -0
  14. package/dist/chunks/ChatView-c3w18Nge.js.map +1 -0
  15. package/dist/chunks/{ContextMenu-CUFAbhvX.js → ContextMenu-DcZOc9gr.js} +2 -2
  16. package/dist/chunks/{ContextMenu-CUFAbhvX.js.map → ContextMenu-DcZOc9gr.js.map} +1 -1
  17. package/dist/chunks/{ContextMenu-DL21mK-K.js → ContextMenu-RPzLox4y.js} +2 -2
  18. package/dist/chunks/{ContextMenu-DL21mK-K.js.map → ContextMenu-RPzLox4y.js.map} +1 -1
  19. package/dist/chunks/{DataView-pjnkp_s6.js → DataView-CgqR1xyr.js} +2 -2
  20. package/dist/chunks/{DataView-pjnkp_s6.js.map → DataView-CgqR1xyr.js.map} +1 -1
  21. package/dist/chunks/{DataView-ztckztwQ.js → DataView-DoGJlcLG.js} +2 -2
  22. package/dist/chunks/{DataView-ztckztwQ.js.map → DataView-DoGJlcLG.js.map} +1 -1
  23. package/dist/chunks/{Dialog-DZcy_jFe.js → Dialog-CLzvolPa.js} +2 -2
  24. package/dist/chunks/{Dialog-DZcy_jFe.js.map → Dialog-CLzvolPa.js.map} +1 -1
  25. package/dist/chunks/{Dialog-Be3ZkGtt.js → Dialog-DCDnevkt.js} +5 -5
  26. package/dist/chunks/{Dialog-Be3ZkGtt.js.map → Dialog-DCDnevkt.js.map} +1 -1
  27. package/dist/chunks/{FormView-CyHZtouJ.js → FormView-09VtwR2c.js} +2 -2
  28. package/dist/chunks/{FormView-CyHZtouJ.js.map → FormView-09VtwR2c.js.map} +1 -1
  29. package/dist/chunks/{FormView-RJ5niGVY.js → FormView-BEii6BoR.js} +2 -2
  30. package/dist/chunks/{FormView-RJ5niGVY.js.map → FormView-BEii6BoR.js.map} +1 -1
  31. package/dist/chunks/{MetricsChart-HFbmINDC.js → MetricsChart-Wo5sQ68q.js} +3 -3
  32. package/dist/chunks/{MetricsChart-HFbmINDC.js.map → MetricsChart-Wo5sQ68q.js.map} +1 -1
  33. package/dist/chunks/{MetricsChart-DK9a46gB.js → MetricsChart-sFdE3MZj.js} +2 -2
  34. package/dist/chunks/{MetricsChart-DK9a46gB.js.map → MetricsChart-sFdE3MZj.js.map} +1 -1
  35. package/dist/chunks/{PDFViewer-DSL5K-RC.js → PDFViewer-BhFvSVNo.js} +3 -3
  36. package/dist/chunks/{PDFViewer-DSL5K-RC.js.map → PDFViewer-BhFvSVNo.js.map} +1 -1
  37. package/dist/chunks/{PDFViewer-DtTeFEKS.js → PDFViewer-CG_dvmZT.js} +2 -2
  38. package/dist/chunks/{PDFViewer-DtTeFEKS.js.map → PDFViewer-CG_dvmZT.js.map} +1 -1
  39. package/dist/chunks/{Page-D8fANAJX.js → Page-DoGJeSX8.js} +2 -2
  40. package/dist/chunks/{Page-D8fANAJX.js.map → Page-DoGJeSX8.js.map} +1 -1
  41. package/dist/chunks/{Page-fyywOoGg.js → Page-MtaIf93q.js} +2 -2
  42. package/dist/chunks/{Page-fyywOoGg.js.map → Page-MtaIf93q.js.map} +1 -1
  43. package/dist/chunks/{TopNav-BYsRM6BZ.js → TopNav-BdzUfQv_.js} +2 -2
  44. package/dist/chunks/{TopNav-BYsRM6BZ.js.map → TopNav-BdzUfQv_.js.map} +1 -1
  45. package/dist/chunks/{TopNav-DnpYXG9a.js → TopNav-t5ZBQ3WL.js} +2 -2
  46. package/dist/chunks/{TopNav-DnpYXG9a.js.map → TopNav-t5ZBQ3WL.js.map} +1 -1
  47. package/dist/chunks/WebApp-BTgGjF-0.js +2 -0
  48. package/dist/chunks/WebApp-BTgGjF-0.js.map +1 -0
  49. package/dist/chunks/{WebApp-Brh2wRZ3.js → WebApp-C-Hi63fx.js} +59 -18
  50. package/dist/chunks/WebApp-C-Hi63fx.js.map +1 -0
  51. package/dist/docit.cjs.js +1 -1
  52. package/dist/docit.es.js +5 -5
  53. package/dist/index.cjs.js +1 -1
  54. package/dist/index.es.js +11 -11
  55. package/dist/lightbox.cjs.js +1 -1
  56. package/dist/lightbox.es.js +4 -4
  57. package/package.json +1 -1
  58. package/dist/chunks/ChatView-7uXqcmuN.js +0 -2
  59. package/dist/chunks/ChatView-7uXqcmuN.js.map +0 -1
  60. package/dist/chunks/ChatView-B6_WuQEq.js.map +0 -1
  61. package/dist/chunks/WebApp-Brh2wRZ3.js.map +0 -1
  62. package/dist/chunks/WebApp-XHTE27hi.js +0 -2
  63. package/dist/chunks/WebApp-XHTE27hi.js.map +0 -1
@@ -1,8 +1,8 @@
1
- const VERSION = "2.1.535";
1
+ const VERSION = "2.1.546";
2
2
  const VERSION_MAJOR = 2;
3
3
  const VERSION_MINOR = 1;
4
- const VERSION_REVISION = 535;
5
- const BUILD_TIME = "2025-10-01T13:51:55.569Z";
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 (context.hasOwnProperty && context.hasOwnProperty(value)) {
769
- return context[value];
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-Be3ZkGtt.js")).default;
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-Be3ZkGtt.js")).default;
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-Be3ZkGtt.js")).default;
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-Be3ZkGtt.js")).default;
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-Be3ZkGtt.js")).default;
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-Be3ZkGtt.js")).default;
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-Be3ZkGtt.js")).default;
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-Be3ZkGtt.js")).default;
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-Be3ZkGtt.js")).default;
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-Brh2wRZ3.js.map
5279
+ //# sourceMappingURL=WebApp-C-Hi63fx.js.map