web-mojo 2.1.362 → 2.1.372
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.es.js +10 -10
- 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 +2 -2
- package/dist/chunks/{ContextMenu-Bh_lLoz2.js → ContextMenu-BFXKKmA9.js} +2 -2
- package/dist/chunks/{ContextMenu-Bh_lLoz2.js.map → ContextMenu-BFXKKmA9.js.map} +1 -1
- package/dist/chunks/{ContextMenu-B1iN4ArK.js → ContextMenu-D-w2BOgg.js} +2 -2
- package/dist/chunks/{ContextMenu-B1iN4ArK.js.map → ContextMenu-D-w2BOgg.js.map} +1 -1
- package/dist/chunks/{DataView-BPZ5eISe.js → DataView-DMNTQ844.js} +2 -2
- package/dist/chunks/{DataView-BPZ5eISe.js.map → DataView-DMNTQ844.js.map} +1 -1
- package/dist/chunks/{DataView-pFA8BU-t.js → DataView-DyVN7Dgw.js} +2 -2
- package/dist/chunks/{DataView-pFA8BU-t.js.map → DataView-DyVN7Dgw.js.map} +1 -1
- package/dist/chunks/{Dialog-xGWlYBDO.js → Dialog-BQkDAgaw.js} +2 -2
- package/dist/chunks/{Dialog-xGWlYBDO.js.map → Dialog-BQkDAgaw.js.map} +1 -1
- package/dist/chunks/{Dialog-BccYQCCA.js → Dialog-DJd5Dc9M.js} +5 -5
- package/dist/chunks/{Dialog-BccYQCCA.js.map → Dialog-DJd5Dc9M.js.map} +1 -1
- package/dist/chunks/{FilePreviewView-DvZzrOtt.js → FilePreviewView-DCxHAjbW.js} +6 -6
- package/dist/chunks/{FilePreviewView-DvZzrOtt.js.map → FilePreviewView-DCxHAjbW.js.map} +1 -1
- package/dist/chunks/{FilePreviewView-BGZUCgI4.js → FilePreviewView-QaWuYNyQ.js} +2 -2
- package/dist/chunks/{FilePreviewView-BGZUCgI4.js.map → FilePreviewView-QaWuYNyQ.js.map} +1 -1
- package/dist/chunks/FormView-CUjBGNVX.js +2 -0
- package/dist/chunks/FormView-CUjBGNVX.js.map +1 -0
- package/dist/chunks/{FormView-rtiwVHoR.js → FormView-ztYkGiQH.js} +77 -5
- package/dist/chunks/FormView-ztYkGiQH.js.map +1 -0
- package/dist/chunks/{MetricsChart-DE3G8LgS.js → MetricsChart-6XZQB-72.js} +3 -3
- package/dist/chunks/{MetricsChart-DE3G8LgS.js.map → MetricsChart-6XZQB-72.js.map} +1 -1
- package/dist/chunks/{MetricsChart-BJ9LBu5Q.js → MetricsChart-BL0Pv-jr.js} +2 -2
- package/dist/chunks/{MetricsChart-BJ9LBu5Q.js.map → MetricsChart-BL0Pv-jr.js.map} +1 -1
- package/dist/chunks/{PDFViewer-DRKZrcCF.js → PDFViewer-C5d3FQTe.js} +3 -3
- package/dist/chunks/{PDFViewer-DRKZrcCF.js.map → PDFViewer-C5d3FQTe.js.map} +1 -1
- package/dist/chunks/{PDFViewer-D7kCo1x3.js → PDFViewer-ClLGECuY.js} +2 -2
- package/dist/chunks/{PDFViewer-D7kCo1x3.js.map → PDFViewer-ClLGECuY.js.map} +1 -1
- package/dist/chunks/{Page-DnYOBzbF.js → Page-BRjl-24B.js} +2 -2
- package/dist/chunks/{Page-DnYOBzbF.js.map → Page-BRjl-24B.js.map} +1 -1
- package/dist/chunks/{Page-CC9vB_Gi.js → Page-Bpv-mpMU.js} +2 -2
- package/dist/chunks/{Page-CC9vB_Gi.js.map → Page-Bpv-mpMU.js.map} +1 -1
- package/dist/chunks/{TopNav-FSY-N8Q-.js → TopNav-CpTPzR0u.js} +2 -2
- package/dist/chunks/{TopNav-FSY-N8Q-.js.map → TopNav-CpTPzR0u.js.map} +1 -1
- package/dist/chunks/{TopNav-CkWwWYMm.js → TopNav-QbLM7l64.js} +2 -2
- package/dist/chunks/{TopNav-CkWwWYMm.js.map → TopNav-QbLM7l64.js.map} +1 -1
- package/dist/chunks/{WebApp-BM2CoF7q.js → WebApp-BlQQJ2mI.js} +2 -2
- package/dist/chunks/{WebApp-BM2CoF7q.js.map → WebApp-BlQQJ2mI.js.map} +1 -1
- package/dist/chunks/{WebApp-DYte9XVv.js → WebApp-Cd8arpc1.js} +12 -12
- package/dist/chunks/{WebApp-DYte9XVv.js.map → WebApp-Cd8arpc1.js.map} +1 -1
- 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/FormView-DRPt29EF.js +0 -2
- package/dist/chunks/FormView-DRPt29EF.js.map +0 -1
- package/dist/chunks/FormView-rtiwVHoR.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { M as Mustache, h as MOJOUtils, V as View } from "./WebApp-
|
|
1
|
+
import { M as Mustache, h as MOJOUtils, V as View } from "./WebApp-Cd8arpc1.js";
|
|
2
2
|
class FormBuilder {
|
|
3
3
|
constructor(config = {}) {
|
|
4
4
|
this.fields = config.fields || [];
|
|
@@ -286,11 +286,11 @@ class FormBuilder {
|
|
|
286
286
|
buttongroup: `
|
|
287
287
|
<div class="btn-group btn-group-{{size}}" role="group">
|
|
288
288
|
{{#options}}
|
|
289
|
-
<button type="button" class="{{buttonClass}} {{#active}}active{{/active}}"
|
|
289
|
+
<button type="button" class="{{buttonClass}} {{#active}}active{{/active}} {{#action}}data-action='{{action}}'{{/action}}"
|
|
290
290
|
data-action="select-button-option"
|
|
291
291
|
data-field="{{fieldName}}"
|
|
292
292
|
data-value="{{value}}">
|
|
293
|
-
{{label}}
|
|
293
|
+
{{#icon}}<i class="{{icon}} me-1"></i> {{/icon}} {{label}}
|
|
294
294
|
</button>
|
|
295
295
|
{{/options}}
|
|
296
296
|
</div>
|
|
@@ -306,6 +306,29 @@ class FormBuilder {
|
|
|
306
306
|
{{/fields}}
|
|
307
307
|
</div>
|
|
308
308
|
</div>
|
|
309
|
+
`,
|
|
310
|
+
color: `
|
|
311
|
+
<div class="mojo-form-control">
|
|
312
|
+
{{#label}}
|
|
313
|
+
<label for="{{fieldId}}" class="{{labelClass}}">
|
|
314
|
+
{{label}}{{#required}}<span class="text-danger">*</span>{{/required}}
|
|
315
|
+
</label>
|
|
316
|
+
{{/label}}
|
|
317
|
+
<div class="d-flex align-items-center gap-2">
|
|
318
|
+
<input type="color" id="{{fieldId}}" name="{{name}}"
|
|
319
|
+
class="{{inputClass}}{{#error}} is-invalid{{/error}}"
|
|
320
|
+
value="{{fieldValue}}"
|
|
321
|
+
{{#required}}required{{/required}} {{#disabled}}disabled{{/disabled}}
|
|
322
|
+
{{#readonly}}readonly{{/readonly}} data-change-action="validate-field" {{{attrs}}}>
|
|
323
|
+
<button type="button" class="btn-sm text-muted border-0 bg-transparent p-1"
|
|
324
|
+
data-action="clear-color" data-field="{{name}}"
|
|
325
|
+
title="Clear color">
|
|
326
|
+
<i class="bi bi-x fs-5"></i>
|
|
327
|
+
</button>
|
|
328
|
+
</div>
|
|
329
|
+
{{#help}}<div class="{{helpClass}}">{{help}}</div>{{/help}}
|
|
330
|
+
{{#error}}<div class="{{errorClass}}">{{error}}</div>{{/error}}
|
|
331
|
+
</div>
|
|
309
332
|
`
|
|
310
333
|
};
|
|
311
334
|
}
|
|
@@ -490,6 +513,7 @@ class FormBuilder {
|
|
|
490
513
|
buildFieldHTML(field) {
|
|
491
514
|
const { type, columns, class: fieldClass = "" } = field;
|
|
492
515
|
let fieldHTML = "";
|
|
516
|
+
console.log("buildFieldHTML - Processing field type:", type, "for field:", field.name);
|
|
493
517
|
switch (type) {
|
|
494
518
|
case "text":
|
|
495
519
|
fieldHTML = this.renderTextField(field);
|
|
@@ -1297,7 +1321,41 @@ class FormBuilder {
|
|
|
1297
1321
|
* @returns {string} Field HTML
|
|
1298
1322
|
*/
|
|
1299
1323
|
renderColorField(field) {
|
|
1300
|
-
|
|
1324
|
+
const {
|
|
1325
|
+
name,
|
|
1326
|
+
label,
|
|
1327
|
+
value = "",
|
|
1328
|
+
placeholder = "",
|
|
1329
|
+
required = false,
|
|
1330
|
+
disabled = false,
|
|
1331
|
+
readonly = false,
|
|
1332
|
+
class: fieldClass = "",
|
|
1333
|
+
attributes = {},
|
|
1334
|
+
help = field.helpText || field.help || ""
|
|
1335
|
+
} = field;
|
|
1336
|
+
const inputClass = `${this.options.inputClass} ${fieldClass}`.trim();
|
|
1337
|
+
const error = this.errors[name];
|
|
1338
|
+
const fieldValue = this.getFieldValue(name) ?? value;
|
|
1339
|
+
const attrs = Object.entries(attributes).map(([key, val]) => `${key}="${this.escapeHtml(val)}"`).join(" ");
|
|
1340
|
+
const fieldId = this.getFieldId(name);
|
|
1341
|
+
const context = {
|
|
1342
|
+
labelClass: this.options.labelClass,
|
|
1343
|
+
inputClass,
|
|
1344
|
+
helpClass: this.options.helpClass,
|
|
1345
|
+
errorClass: this.options.errorClass,
|
|
1346
|
+
fieldId,
|
|
1347
|
+
name,
|
|
1348
|
+
fieldValue: this.escapeHtml(fieldValue),
|
|
1349
|
+
label: label ? this.escapeHtml(label) : null,
|
|
1350
|
+
placeholder: placeholder ? this.escapeHtml(placeholder) : null,
|
|
1351
|
+
help: help ? this.escapeHtml(help) : null,
|
|
1352
|
+
error: error ? this.escapeHtml(error) : null,
|
|
1353
|
+
required,
|
|
1354
|
+
disabled,
|
|
1355
|
+
readonly,
|
|
1356
|
+
attrs
|
|
1357
|
+
};
|
|
1358
|
+
return Mustache.render(this.templates.color, context);
|
|
1301
1359
|
}
|
|
1302
1360
|
/**
|
|
1303
1361
|
* Render range field
|
|
@@ -1791,6 +1849,7 @@ class FormBuilder {
|
|
|
1791
1849
|
options: field.options.map((option) => ({
|
|
1792
1850
|
value: option.value,
|
|
1793
1851
|
label: option.label,
|
|
1852
|
+
action: option.action,
|
|
1794
1853
|
active: option.value === selectedValue,
|
|
1795
1854
|
buttonClass: this.getButtonClass(option.value === selectedValue, field.variant)
|
|
1796
1855
|
}))
|
|
@@ -4526,6 +4585,19 @@ class FormView extends View {
|
|
|
4526
4585
|
this.emit("change", { field: fieldName, value: null, form: this });
|
|
4527
4586
|
await this.updateField(fieldName);
|
|
4528
4587
|
}
|
|
4588
|
+
/**
|
|
4589
|
+
* Handle clear color action
|
|
4590
|
+
*/
|
|
4591
|
+
async onActionClearColor(event, element) {
|
|
4592
|
+
const fieldName = element.getAttribute("data-field");
|
|
4593
|
+
if (!fieldName) return;
|
|
4594
|
+
const colorInput = this.element.querySelector(`input[name="${fieldName}"]`);
|
|
4595
|
+
if (colorInput) {
|
|
4596
|
+
colorInput.value = "";
|
|
4597
|
+
this.handleFieldChange(fieldName, "");
|
|
4598
|
+
await this.updateField(fieldName);
|
|
4599
|
+
}
|
|
4600
|
+
}
|
|
4529
4601
|
/**
|
|
4530
4602
|
* Handle button group selection
|
|
4531
4603
|
*/
|
|
@@ -5841,4 +5913,4 @@ export {
|
|
|
5841
5913
|
applyFileDropMixin as a,
|
|
5842
5914
|
FormView$1 as b
|
|
5843
5915
|
};
|
|
5844
|
-
//# sourceMappingURL=FormView-
|
|
5916
|
+
//# sourceMappingURL=FormView-ztYkGiQH.js.map
|