@mmlogic/components 0.3.4 → 0.3.6
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/{collection/utils/cell-renderer.js → mosterdcomponents/cell-renderer-CbRwLOo8.js} +9 -3
- package/dist/mosterdcomponents/cell-renderer-CbRwLOo8.js.map +1 -0
- package/dist/{esm/index.js → mosterdcomponents/client-layout-D88nn5zf.js} +4 -1
- package/dist/mosterdcomponents/client-layout-D88nn5zf.js.map +1 -0
- package/dist/{collection/utils/format.js → mosterdcomponents/format-BAfsQfy1.js} +12 -7
- package/dist/mosterdcomponents/format-BAfsQfy1.js.map +1 -0
- package/dist/{collection/utils/i18n.js → mosterdcomponents/i18n-hoGGKbKU.js} +6 -1
- package/dist/mosterdcomponents/i18n-hoGGKbKU.js.map +1 -0
- package/dist/mosterdcomponents/index-B_tPFIvS.js +4585 -0
- package/dist/mosterdcomponents/index-B_tPFIvS.js.map +1 -0
- package/dist/mosterdcomponents/index-I5SuYv7a.js +4 -0
- package/dist/mosterdcomponents/index-I5SuYv7a.js.map +1 -0
- package/dist/mosterdcomponents/index.esm.js +5 -1
- package/dist/mosterdcomponents/index.esm.js.map +1 -0
- package/dist/mosterdcomponents/mosterdcomponents.css +180 -1
- package/dist/mosterdcomponents/mosterdcomponents.esm.js +50 -1
- package/dist/mosterdcomponents/mosterdcomponents.esm.js.map +1 -0
- package/dist/mosterdcomponents/mrd-boolean-field.entry.js +37 -0
- package/dist/mosterdcomponents/mrd-boolean-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-currency-field.entry.js +67 -0
- package/dist/mosterdcomponents/mrd-currency-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-date-field.entry.js +46 -0
- package/dist/mosterdcomponents/mrd-date-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-datetime-field.entry.js +78 -0
- package/dist/mosterdcomponents/mrd-datetime-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-email-field.entry.js +50 -0
- package/dist/mosterdcomponents/mrd-email-field.entry.js.map +1 -0
- package/dist/{collection/components/mrd-field/mrd-field.js → mosterdcomponents/mrd-field.entry.js} +28 -179
- package/dist/mosterdcomponents/mrd-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-file-field.entry.js +108 -0
- package/dist/mosterdcomponents/mrd-file-field.entry.js.map +1 -0
- package/dist/{collection/components/mrd-form/mrd-form.js → mosterdcomponents/mrd-form.entry.js} +82 -280
- package/dist/mosterdcomponents/mrd-form.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-hyperlink-field.entry.js +87 -0
- package/dist/mosterdcomponents/mrd-hyperlink-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-image-field.entry.js +122 -0
- package/dist/mosterdcomponents/mrd-image-field.entry.js.map +1 -0
- package/dist/{collection/components/mrd-layout-section/mrd-layout-section.js → mosterdcomponents/mrd-layout-section.entry.js} +31 -418
- package/dist/mosterdcomponents/mrd-layout-section.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-list-field.entry.js +107 -0
- package/dist/mosterdcomponents/mrd-list-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-longtext-field.entry.js +47 -0
- package/dist/mosterdcomponents/mrd-longtext-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-number-field.entry.js +87 -0
- package/dist/mosterdcomponents/mrd-number-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-relation-field.entry.js +267 -0
- package/dist/mosterdcomponents/mrd-relation-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-secret-field.entry.js +49 -0
- package/dist/mosterdcomponents/mrd-secret-field.entry.js.map +1 -0
- package/dist/{collection/components/mrd-table/mrd-table.js → mosterdcomponents/mrd-table.entry.js} +67 -398
- package/dist/mosterdcomponents/mrd-table.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-text-field.entry.js +47 -0
- package/dist/mosterdcomponents/mrd-text-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-textarea-field.entry.js +86 -0
- package/dist/mosterdcomponents/mrd-textarea-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-time-field.entry.js +46 -0
- package/dist/mosterdcomponents/mrd-time-field.entry.js.map +1 -0
- package/dist/{esm/quill-CiuCgGz_.js → mosterdcomponents/quill-C9pgw_k-.js} +16282 -1397
- package/dist/mosterdcomponents/quill-C9pgw_k-.js.map +1 -0
- package/dist/{collection/utils/validation.js → mosterdcomponents/validation-ixb43cqU.js} +12 -5
- package/dist/mosterdcomponents/validation-ixb43cqU.js.map +1 -0
- package/dist/types/components/mrd-form/mrd-form.d.ts +13 -1
- package/dist/types/components/mrd-relation-field/mrd-relation-field.d.ts +3 -0
- package/dist/types/components/mrd-table/mrd-table.d.ts +4 -0
- package/dist/types/components.d.ts +19 -9
- package/package.json +1 -1
- package/dist/cjs/app-globals-V2Kpy_OQ.js +0 -5
- package/dist/cjs/index-BPj2cBXs.js +0 -1570
- package/dist/cjs/index.cjs.js +0 -66
- package/dist/cjs/loader.cjs.js +0 -13
- package/dist/cjs/mosterdcomponents.cjs.js +0 -25
- package/dist/cjs/mrd-boolean-field_20.cjs.entry.js +0 -3848
- package/dist/cjs/quill-DmFfnC1f.js +0 -16272
- package/dist/collection/collection-manifest.json +0 -32
- package/dist/collection/components/mrd-boolean-field/mrd-boolean-field.js +0 -199
- package/dist/collection/components/mrd-boolean-field/mrd-boolean-field.scss +0 -77
- package/dist/collection/components/mrd-currency-field/mrd-currency-field.js +0 -248
- package/dist/collection/components/mrd-currency-field/mrd-currency-field.scss +0 -100
- package/dist/collection/components/mrd-date-field/mrd-date-field.js +0 -206
- package/dist/collection/components/mrd-date-field/mrd-date-field.scss +0 -66
- package/dist/collection/components/mrd-datetime-field/mrd-datetime-field.js +0 -240
- package/dist/collection/components/mrd-datetime-field/mrd-datetime-field.scss +0 -66
- package/dist/collection/components/mrd-email-field/mrd-email-field.js +0 -230
- package/dist/collection/components/mrd-email-field/mrd-email-field.scss +0 -69
- package/dist/collection/components/mrd-field/mrd-field.scss +0 -118
- package/dist/collection/components/mrd-file-field/mrd-file-field.js +0 -341
- package/dist/collection/components/mrd-file-field/mrd-file-field.scss +0 -153
- package/dist/collection/components/mrd-form/mrd-form.scss +0 -148
- package/dist/collection/components/mrd-hyperlink-field/mrd-hyperlink-field.js +0 -291
- package/dist/collection/components/mrd-hyperlink-field/mrd-hyperlink-field.scss +0 -91
- package/dist/collection/components/mrd-image-field/mrd-image-field.js +0 -356
- package/dist/collection/components/mrd-image-field/mrd-image-field.scss +0 -190
- package/dist/collection/components/mrd-layout-section/mrd-layout-section.scss +0 -445
- package/dist/collection/components/mrd-list-field/mrd-list-field.js +0 -313
- package/dist/collection/components/mrd-list-field/mrd-list-field.scss +0 -109
- package/dist/collection/components/mrd-longtext-field/mrd-longtext-field.js +0 -227
- package/dist/collection/components/mrd-longtext-field/mrd-longtext-field.scss +0 -78
- package/dist/collection/components/mrd-number-field/mrd-number-field.js +0 -316
- package/dist/collection/components/mrd-number-field/mrd-number-field.scss +0 -77
- package/dist/collection/components/mrd-relation-field/mrd-relation-field.js +0 -678
- package/dist/collection/components/mrd-relation-field/mrd-relation-field.scss +0 -266
- package/dist/collection/components/mrd-secret-field/mrd-secret-field.js +0 -229
- package/dist/collection/components/mrd-secret-field/mrd-secret-field.scss +0 -73
- package/dist/collection/components/mrd-table/mrd-table.scss +0 -742
- package/dist/collection/components/mrd-text-field/mrd-text-field.js +0 -227
- package/dist/collection/components/mrd-text-field/mrd-text-field.scss +0 -69
- package/dist/collection/components/mrd-textarea-field/mrd-textarea-field.js +0 -267
- package/dist/collection/components/mrd-textarea-field/mrd-textarea-field.scss +0 -79
- package/dist/collection/components/mrd-time-field/mrd-time-field.js +0 -206
- package/dist/collection/components/mrd-time-field/mrd-time-field.scss +0 -66
- package/dist/collection/dev/api.js +0 -136
- package/dist/collection/dev/app.js +0 -868
- package/dist/collection/dev/auth.js +0 -156
- package/dist/collection/dev/example-data.js +0 -403
- package/dist/collection/dev/sprites.svg +0 -55
- package/dist/collection/index.js +0 -1
- package/dist/collection/types/client-layout.js +0 -64
- package/dist/collection/types/index.js +0 -1
- package/dist/components/client-layout.js +0 -1
- package/dist/components/format.js +0 -1
- package/dist/components/i18n.js +0 -1
- package/dist/components/index.js +0 -1
- package/dist/components/mrd-boolean-field.js +0 -1
- package/dist/components/mrd-boolean-field2.js +0 -1
- package/dist/components/mrd-currency-field.js +0 -1
- package/dist/components/mrd-currency-field2.js +0 -1
- package/dist/components/mrd-date-field.js +0 -1
- package/dist/components/mrd-date-field2.js +0 -1
- package/dist/components/mrd-datetime-field.js +0 -1
- package/dist/components/mrd-datetime-field2.js +0 -1
- package/dist/components/mrd-email-field.js +0 -1
- package/dist/components/mrd-email-field2.js +0 -1
- package/dist/components/mrd-field.js +0 -1
- package/dist/components/mrd-field2.js +0 -1
- package/dist/components/mrd-file-field.js +0 -1
- package/dist/components/mrd-file-field2.js +0 -1
- package/dist/components/mrd-form.js +0 -1
- package/dist/components/mrd-hyperlink-field.js +0 -1
- package/dist/components/mrd-hyperlink-field2.js +0 -1
- package/dist/components/mrd-image-field.js +0 -1
- package/dist/components/mrd-image-field2.js +0 -1
- package/dist/components/mrd-layout-section.js +0 -1
- package/dist/components/mrd-list-field.js +0 -1
- package/dist/components/mrd-list-field2.js +0 -1
- package/dist/components/mrd-longtext-field.js +0 -1
- package/dist/components/mrd-longtext-field2.js +0 -1
- package/dist/components/mrd-number-field.js +0 -1
- package/dist/components/mrd-number-field2.js +0 -1
- package/dist/components/mrd-relation-field.js +0 -1
- package/dist/components/mrd-relation-field2.js +0 -1
- package/dist/components/mrd-secret-field.js +0 -1
- package/dist/components/mrd-secret-field2.js +0 -1
- package/dist/components/mrd-table.js +0 -1
- package/dist/components/mrd-table2.js +0 -1
- package/dist/components/mrd-text-field.js +0 -1
- package/dist/components/mrd-text-field2.js +0 -1
- package/dist/components/mrd-textarea-field.js +0 -1
- package/dist/components/mrd-textarea-field2.js +0 -1
- package/dist/components/mrd-time-field.js +0 -1
- package/dist/components/mrd-time-field2.js +0 -1
- package/dist/components/quill.js +0 -1
- package/dist/components/validation.js +0 -1
- package/dist/esm/app-globals-DQuL1Twl.js +0 -3
- package/dist/esm/index-_tsCCkAi.js +0 -1561
- package/dist/esm/loader.js +0 -11
- package/dist/esm/mosterdcomponents.js +0 -21
- package/dist/esm/mrd-boolean-field_20.entry.js +0 -3827
- package/dist/index.cjs.js +0 -1
- package/dist/index.js +0 -1
- package/dist/mosterdcomponents/p-CiuCgGz_.js +0 -1
- package/dist/mosterdcomponents/p-DQuL1Twl.js +0 -1
- package/dist/mosterdcomponents/p-_tsCCkAi.js +0 -2
- package/dist/mosterdcomponents/p-c9839596.entry.js +0 -1
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { r as registerInstance, a as createEvent, h, d as Host } from './index-B_tPFIvS.js';
|
|
2
|
+
import { t } from './i18n-hoGGKbKU.js';
|
|
3
|
+
|
|
4
|
+
const mrdImageFieldScss = () => `.sc-mrd-image-field-h{display:block}.mrd-image-field.sc-mrd-image-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-image-field__label.sc-mrd-image-field{display:block;font-family:var(--mrd-font-family);font-size:var(--mrd-label-font-size);font-weight:var(--mrd-label-font-weight);color:var(--mrd-label-color)}.mrd-image-field__label--required.sc-mrd-image-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-image-field__zone.sc-mrd-image-field{display:flex;align-items:center;justify-content:center;border:2px dashed var(--mrd-border-color);border-radius:var(--mrd-border-radius-md);background-color:var(--mrd-color-neutral-50);cursor:pointer;transition:border-color var(--mrd-transition), background-color var(--mrd-transition);min-height:100px;position:relative}.mrd-image-field__zone.sc-mrd-image-field:hover{border-color:var(--mrd-color-primary);background-color:var(--mrd-color-primary-light)}.mrd-image-field__zone--dragging.sc-mrd-image-field{border-color:var(--mrd-color-primary);background-color:var(--mrd-color-primary-light)}.mrd-image-field__zone--error.sc-mrd-image-field{border-color:var(--mrd-border-color-error)}.mrd-image-field__zone--disabled.sc-mrd-image-field{opacity:0.6;cursor:not-allowed}.mrd-image-field__zone--disabled.sc-mrd-image-field:hover{border-color:var(--mrd-border-color);background-color:var(--mrd-color-neutral-50)}.mrd-image-field__input.sc-mrd-image-field{position:absolute;inset:0;opacity:0;width:100%;height:100%;pointer-events:none}.mrd-image-field__prompt.sc-mrd-image-field{display:flex;flex-direction:column;align-items:center;gap:var(--mrd-space-2);padding:var(--mrd-space-6);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);color:var(--mrd-color-neutral-500);text-align:center}.mrd-image-field__upload-icon.sc-mrd-image-field{width:40px;height:40px;color:var(--mrd-color-neutral-400)}.mrd-image-field__browse.sc-mrd-image-field{color:var(--mrd-color-primary);font-weight:var(--mrd-font-weight-medium);text-decoration:underline}.mrd-image-field__preview-container.sc-mrd-image-field{display:flex;align-items:center;gap:var(--mrd-space-4);padding:var(--mrd-space-4);width:100%}.mrd-image-field__preview-thumb.sc-mrd-image-field{flex-shrink:0;width:80px;height:80px;border-radius:var(--mrd-border-radius);overflow:hidden;border:var(--mrd-border-width) solid var(--mrd-border-color);background-color:var(--mrd-color-neutral-100)}.mrd-image-field__preview.sc-mrd-image-field{width:100%;height:100%;object-fit:cover;display:block}.mrd-image-field__preview-info.sc-mrd-image-field{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--mrd-space-1)}.mrd-image-field__preview-name.sc-mrd-image-field{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-medium);color:var(--mrd-color-neutral-800);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mrd-image-field__preview-overlay.sc-mrd-image-field{position:absolute;inset:0;background:rgb(255 255 255 / 0.7);display:flex;align-items:center;justify-content:center;border-radius:var(--mrd-border-radius)}.mrd-image-field__spinner.sc-mrd-image-field{display:inline-block;width:24px;height:24px;border:2px solid var(--mrd-color-neutral-300);border-top-color:var(--mrd-color-primary);border-radius:50%;animation:mrd-image-spin 0.6s linear infinite}@keyframes mrd-image-spin{to{transform:rotate(360deg)}}.mrd-image-field__upload-status.sc-mrd-image-field{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-xs);color:var(--mrd-color-neutral-500)}.mrd-image-field__clear.sc-mrd-image-field{flex-shrink:0;background-color:var(--mrd-color-white);color:var(--mrd-color-danger);border:var(--mrd-border-width) solid var(--mrd-color-danger);border-radius:var(--mrd-border-radius);padding:var(--mrd-space-1) var(--mrd-space-3);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-medium);cursor:pointer;transition:background-color var(--mrd-transition), color var(--mrd-transition)}.mrd-image-field__clear.sc-mrd-image-field:hover{background-color:var(--mrd-color-danger);color:var(--mrd-color-white)}.mrd-image-field__error.sc-mrd-image-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}`;
|
|
5
|
+
|
|
6
|
+
const MrdImageField = class {
|
|
7
|
+
constructor(hostRef) {
|
|
8
|
+
registerInstance(this, hostRef);
|
|
9
|
+
this.mrdChange = createEvent(this, "mrdChange", 7);
|
|
10
|
+
this.mrdBlur = createEvent(this, "mrdBlur", 7);
|
|
11
|
+
this.mrdUpload = createEvent(this, "mrdUpload", 7);
|
|
12
|
+
this.name = '';
|
|
13
|
+
this.label = '';
|
|
14
|
+
this.value = null;
|
|
15
|
+
this.required = false;
|
|
16
|
+
this.disabled = false;
|
|
17
|
+
this.locale = navigator.language;
|
|
18
|
+
this.accept = 'image/*';
|
|
19
|
+
this.maxSize = 0;
|
|
20
|
+
this.previewUrl = '';
|
|
21
|
+
this.fileName = '';
|
|
22
|
+
this.isDragging = false;
|
|
23
|
+
this.uploading = false;
|
|
24
|
+
this.error = '';
|
|
25
|
+
this.handleInputChange = (e) => {
|
|
26
|
+
var _a;
|
|
27
|
+
const files = e.target.files;
|
|
28
|
+
this.handleFile((_a = files === null || files === void 0 ? void 0 : files[0]) !== null && _a !== void 0 ? _a : null);
|
|
29
|
+
};
|
|
30
|
+
this.handleDragOver = (e) => {
|
|
31
|
+
e.preventDefault();
|
|
32
|
+
this.isDragging = true;
|
|
33
|
+
};
|
|
34
|
+
this.handleDragLeave = () => {
|
|
35
|
+
this.isDragging = false;
|
|
36
|
+
};
|
|
37
|
+
this.handleDrop = (e) => {
|
|
38
|
+
var _a, _b, _c;
|
|
39
|
+
e.preventDefault();
|
|
40
|
+
this.isDragging = false;
|
|
41
|
+
const file = (_c = (_b = (_a = e.dataTransfer) === null || _a === void 0 ? void 0 : _a.files) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : null;
|
|
42
|
+
this.handleFile(file);
|
|
43
|
+
};
|
|
44
|
+
this.handleZoneClick = () => {
|
|
45
|
+
var _a;
|
|
46
|
+
if (!this.disabled && !this.uploading) {
|
|
47
|
+
(_a = this.fileInputRef) === null || _a === void 0 ? void 0 : _a.click();
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
this.handleClear = (e) => {
|
|
51
|
+
e.stopPropagation();
|
|
52
|
+
this.previewUrl = '';
|
|
53
|
+
this.fileName = '';
|
|
54
|
+
this.error = '';
|
|
55
|
+
this.uploading = false;
|
|
56
|
+
if (this.fileInputRef)
|
|
57
|
+
this.fileInputRef.value = '';
|
|
58
|
+
this.mrdChange.emit({ name: this.name, value: null });
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/** When the host provides a URI back via setFieldValue, the upload is done. */
|
|
62
|
+
valueChanged(newVal) {
|
|
63
|
+
if (typeof newVal === 'string' && newVal) {
|
|
64
|
+
this.uploading = false;
|
|
65
|
+
}
|
|
66
|
+
else if (!newVal) {
|
|
67
|
+
this.uploading = false;
|
|
68
|
+
this.previewUrl = '';
|
|
69
|
+
this.fileName = '';
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
handleFile(file) {
|
|
73
|
+
if (!file) {
|
|
74
|
+
this.previewUrl = '';
|
|
75
|
+
this.fileName = '';
|
|
76
|
+
this.uploading = false;
|
|
77
|
+
this.mrdChange.emit({ name: this.name, value: null });
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (this.maxSize > 0 && file.size > this.maxSize) {
|
|
81
|
+
this.error = t('file_too_large', this.locale);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (!file.type.startsWith('image/')) {
|
|
85
|
+
this.error = 'Please select an image file';
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
this.error = '';
|
|
89
|
+
this.fileName = file.name;
|
|
90
|
+
this.uploading = true;
|
|
91
|
+
// Show local preview immediately while upload is in progress
|
|
92
|
+
const reader = new FileReader();
|
|
93
|
+
reader.onload = (ev) => {
|
|
94
|
+
var _a;
|
|
95
|
+
this.previewUrl = (_a = ev.target) === null || _a === void 0 ? void 0 : _a.result;
|
|
96
|
+
};
|
|
97
|
+
reader.readAsDataURL(file);
|
|
98
|
+
this.mrdChange.emit({ name: this.name, value: file });
|
|
99
|
+
this.mrdUpload.emit({ name: this.name, file });
|
|
100
|
+
}
|
|
101
|
+
render() {
|
|
102
|
+
const hasError = !!this.error;
|
|
103
|
+
const zoneClass = [
|
|
104
|
+
'mrd-image-field__zone',
|
|
105
|
+
this.isDragging ? 'mrd-image-field__zone--dragging' : '',
|
|
106
|
+
hasError ? 'mrd-image-field__zone--error' : '',
|
|
107
|
+
this.disabled || this.uploading ? 'mrd-image-field__zone--disabled' : '',
|
|
108
|
+
].filter(Boolean).join(' ');
|
|
109
|
+
return (h(Host, { key: '71be4c1df559cff87280cac30be58beab3149064' }, h("div", { key: '9d0811d87068ce258aca9b2c5223a5594af9f6a3', class: "mrd-image-field" }, this.label && (h("label", { key: '63e129db968a2edfcc04fcac466d908ba4715158', class: `mrd-image-field__label${this.required ? ' mrd-image-field__label--required' : ''}` }, this.label)), h("div", { key: 'c7e560ad4dda43499707a2d1771a8eb561653a1b', class: zoneClass, onClick: this.handleZoneClick, onDragOver: this.handleDragOver, onDragLeave: this.handleDragLeave, onDrop: this.handleDrop }, h("input", { key: 'd325ee1aa3baccd689cc579e4cfa21abe977a575', ref: el => (this.fileInputRef = el), class: "mrd-image-field__input", type: "file", name: this.name, accept: this.accept, disabled: this.disabled || this.uploading, required: this.required && !this.previewUrl, onChange: this.handleInputChange }), this.previewUrl ? (h("div", { class: "mrd-image-field__preview-container" }, h("div", { class: "mrd-image-field__preview-thumb" }, h("img", { class: "mrd-image-field__preview", src: this.previewUrl, alt: this.fileName }), this.uploading && h("div", { class: "mrd-image-field__preview-overlay" }, h("span", { class: "mrd-image-field__spinner" }))), h("div", { class: "mrd-image-field__preview-info" }, h("span", { class: "mrd-image-field__preview-name" }, this.fileName), this.uploading && (h("span", { class: "mrd-image-field__upload-status" }, t('loading', this.locale)))), !this.uploading && (h("button", { class: "mrd-image-field__clear", type: "button", onClick: this.handleClear, "aria-label": t('clear', this.locale) }, t('remove', this.locale))))) : (h("div", { class: "mrd-image-field__prompt" }, h("svg", { class: "mrd-image-field__upload-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2" }, h("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", ry: "2" }), h("circle", { cx: "8.5", cy: "8.5", r: "1.5" }), h("polyline", { points: "21 15 16 10 5 21" })), h("span", null, t('drop_file_here', this.locale), ' ', h("span", { class: "mrd-image-field__browse" }, t('browse', this.locale)))))), hasError && h("span", { key: 'b0442d6f5c07ef22443194b3f1a95d2dfc409c4e', class: "mrd-image-field__error" }, this.error))));
|
|
110
|
+
}
|
|
111
|
+
static get watchers() { return {
|
|
112
|
+
"value": [{
|
|
113
|
+
"valueChanged": 0
|
|
114
|
+
}]
|
|
115
|
+
}; }
|
|
116
|
+
};
|
|
117
|
+
MrdImageField.style = mrdImageFieldScss();
|
|
118
|
+
|
|
119
|
+
export { MrdImageField as mrd_image_field };
|
|
120
|
+
//# sourceMappingURL=mrd-image-field.entry.esm.js.map
|
|
121
|
+
|
|
122
|
+
//# sourceMappingURL=mrd-image-field.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"mrd-image-field.entry.js","mappings":"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","names":[],"sources":["src/components/mrd-image-field/mrd-image-field.scss?tag=mrd-image-field&encapsulation=scoped","src/components/mrd-image-field/mrd-image-field.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.mrd-image-field {\n display: flex;\n flex-direction: column;\n gap: var(--mrd-space-1);\n width: 100%;\n}\n\n.mrd-image-field__label {\n display: block;\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-label-font-size);\n font-weight: var(--mrd-label-font-weight);\n color: var(--mrd-label-color);\n}\n\n.mrd-image-field__label--required::after {\n content: ' *';\n color: var(--mrd-color-danger);\n}\n\n.mrd-image-field__zone {\n display: flex;\n align-items: center;\n justify-content: center;\n border: 2px dashed var(--mrd-border-color);\n border-radius: var(--mrd-border-radius-md);\n background-color: var(--mrd-color-neutral-50);\n cursor: pointer;\n transition: border-color var(--mrd-transition), background-color var(--mrd-transition);\n min-height: 100px;\n position: relative;\n}\n\n.mrd-image-field__zone:hover {\n border-color: var(--mrd-color-primary);\n background-color: var(--mrd-color-primary-light);\n}\n\n.mrd-image-field__zone--dragging {\n border-color: var(--mrd-color-primary);\n background-color: var(--mrd-color-primary-light);\n}\n\n.mrd-image-field__zone--error {\n border-color: var(--mrd-border-color-error);\n}\n\n.mrd-image-field__zone--disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.mrd-image-field__zone--disabled:hover {\n border-color: var(--mrd-border-color);\n background-color: var(--mrd-color-neutral-50);\n}\n\n.mrd-image-field__input {\n position: absolute;\n inset: 0;\n opacity: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n\n.mrd-image-field__prompt {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--mrd-space-2);\n padding: var(--mrd-space-6);\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-font-size-sm);\n color: var(--mrd-color-neutral-500);\n text-align: center;\n}\n\n.mrd-image-field__upload-icon {\n width: 40px;\n height: 40px;\n color: var(--mrd-color-neutral-400);\n}\n\n.mrd-image-field__browse {\n color: var(--mrd-color-primary);\n font-weight: var(--mrd-font-weight-medium);\n text-decoration: underline;\n}\n\n/* Preview: thumbnail + bestandsnaam + verwijder knop */\n.mrd-image-field__preview-container {\n display: flex;\n align-items: center;\n gap: var(--mrd-space-4);\n padding: var(--mrd-space-4);\n width: 100%;\n}\n\n.mrd-image-field__preview-thumb {\n flex-shrink: 0;\n width: 80px;\n height: 80px;\n border-radius: var(--mrd-border-radius);\n overflow: hidden;\n border: var(--mrd-border-width) solid var(--mrd-border-color);\n background-color: var(--mrd-color-neutral-100);\n}\n\n.mrd-image-field__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n\n.mrd-image-field__preview-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: var(--mrd-space-1);\n}\n\n.mrd-image-field__preview-name {\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-font-size-sm);\n font-weight: var(--mrd-font-weight-medium);\n color: var(--mrd-color-neutral-800);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.mrd-image-field__preview-overlay {\n position: absolute;\n inset: 0;\n background: rgb(255 255 255 / 0.7);\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--mrd-border-radius);\n}\n\n.mrd-image-field__spinner {\n display: inline-block;\n width: 24px;\n height: 24px;\n border: 2px solid var(--mrd-color-neutral-300);\n border-top-color: var(--mrd-color-primary);\n border-radius: 50%;\n animation: mrd-image-spin 0.6s linear infinite;\n}\n\n@keyframes mrd-image-spin { to { transform: rotate(360deg); } }\n\n.mrd-image-field__upload-status {\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-font-size-xs);\n color: var(--mrd-color-neutral-500);\n}\n\n.mrd-image-field__clear {\n flex-shrink: 0;\n background-color: var(--mrd-color-white);\n color: var(--mrd-color-danger);\n border: var(--mrd-border-width) solid var(--mrd-color-danger);\n border-radius: var(--mrd-border-radius);\n padding: var(--mrd-space-1) var(--mrd-space-3);\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-font-size-sm);\n font-weight: var(--mrd-font-weight-medium);\n cursor: pointer;\n transition: background-color var(--mrd-transition), color var(--mrd-transition);\n}\n\n.mrd-image-field__clear:hover {\n background-color: var(--mrd-color-danger);\n color: var(--mrd-color-white);\n}\n\n.mrd-image-field__error {\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-error-font-size);\n color: var(--mrd-error-color);\n}\n","import { Component, Host, h, Prop, State, Event, EventEmitter, Watch } from '@stencil/core';\nimport { t } from '../../utils/i18n';\n\n@Component({\n tag: 'mrd-image-field',\n styleUrl: 'mrd-image-field.scss',\n scoped: true,\n})\nexport class MrdImageField {\n @Prop() name: string = '';\n @Prop() label: string = '';\n @Prop() value: unknown = null;\n @Prop() required: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() locale: string = navigator.language;\n @Prop() accept: string = 'image/*';\n @Prop() maxSize: number = 0;\n\n @State() previewUrl: string = '';\n @State() fileName: string = '';\n @State() isDragging: boolean = false;\n @State() uploading: boolean = false;\n @State() error: string = '';\n\n @Event() mrdChange!: EventEmitter<{ name: string; value: File | null }>;\n @Event() mrdBlur!: EventEmitter<{ name: string; value: File | null }>;\n /** Emitted when an image is selected and needs to be uploaded.\n * Host should upload the file and call form.setFieldValue(name, uri) with the result. */\n @Event() mrdUpload!: EventEmitter<{ name: string; file: File }>;\n\n private fileInputRef!: HTMLInputElement;\n\n /** When the host provides a URI back via setFieldValue, the upload is done. */\n @Watch('value')\n valueChanged(newVal: unknown) {\n if (typeof newVal === 'string' && newVal) {\n this.uploading = false;\n } else if (!newVal) {\n this.uploading = false;\n this.previewUrl = '';\n this.fileName = '';\n }\n }\n\n private handleFile(file: File | null) {\n if (!file) {\n this.previewUrl = '';\n this.fileName = '';\n this.uploading = false;\n this.mrdChange.emit({ name: this.name, value: null });\n return;\n }\n if (this.maxSize > 0 && file.size > this.maxSize) {\n this.error = t('file_too_large', this.locale);\n return;\n }\n if (!file.type.startsWith('image/')) {\n this.error = 'Please select an image file';\n return;\n }\n this.error = '';\n this.fileName = file.name;\n this.uploading = true;\n // Show local preview immediately while upload is in progress\n const reader = new FileReader();\n reader.onload = (ev) => {\n this.previewUrl = ev.target?.result as string;\n };\n reader.readAsDataURL(file);\n this.mrdChange.emit({ name: this.name, value: file });\n this.mrdUpload.emit({ name: this.name, file });\n }\n\n private handleInputChange = (e: Event) => {\n const files = (e.target as HTMLInputElement).files;\n this.handleFile(files?.[0] ?? null);\n };\n\n private handleDragOver = (e: DragEvent) => {\n e.preventDefault();\n this.isDragging = true;\n };\n\n private handleDragLeave = () => {\n this.isDragging = false;\n };\n\n private handleDrop = (e: DragEvent) => {\n e.preventDefault();\n this.isDragging = false;\n const file = e.dataTransfer?.files?.[0] ?? null;\n this.handleFile(file);\n };\n\n private handleZoneClick = () => {\n if (!this.disabled && !this.uploading) {\n this.fileInputRef?.click();\n }\n };\n\n private handleClear = (e: MouseEvent) => {\n e.stopPropagation();\n this.previewUrl = '';\n this.fileName = '';\n this.error = '';\n this.uploading = false;\n if (this.fileInputRef) this.fileInputRef.value = '';\n this.mrdChange.emit({ name: this.name, value: null });\n };\n\n render() {\n const hasError = !!this.error;\n const zoneClass = [\n 'mrd-image-field__zone',\n this.isDragging ? 'mrd-image-field__zone--dragging' : '',\n hasError ? 'mrd-image-field__zone--error' : '',\n this.disabled || this.uploading ? 'mrd-image-field__zone--disabled' : '',\n ].filter(Boolean).join(' ');\n\n return (\n <Host>\n <div class=\"mrd-image-field\">\n {this.label && (\n <label class={`mrd-image-field__label${this.required ? ' mrd-image-field__label--required' : ''}`}>\n {this.label}\n </label>\n )}\n <div\n class={zoneClass}\n onClick={this.handleZoneClick}\n onDragOver={this.handleDragOver}\n onDragLeave={this.handleDragLeave}\n onDrop={this.handleDrop}\n >\n <input\n ref={el => (this.fileInputRef = el as HTMLInputElement)}\n class=\"mrd-image-field__input\"\n type=\"file\"\n name={this.name}\n accept={this.accept}\n disabled={this.disabled || this.uploading}\n required={this.required && !this.previewUrl}\n onChange={this.handleInputChange}\n />\n {this.previewUrl ? (\n <div class=\"mrd-image-field__preview-container\">\n <div class=\"mrd-image-field__preview-thumb\">\n <img class=\"mrd-image-field__preview\" src={this.previewUrl} alt={this.fileName} />\n {this.uploading && <div class=\"mrd-image-field__preview-overlay\"><span class=\"mrd-image-field__spinner\" /></div>}\n </div>\n <div class=\"mrd-image-field__preview-info\">\n <span class=\"mrd-image-field__preview-name\">{this.fileName}</span>\n {this.uploading && (\n <span class=\"mrd-image-field__upload-status\">{t('loading', this.locale)}</span>\n )}\n </div>\n {!this.uploading && (\n <button class=\"mrd-image-field__clear\" type=\"button\" onClick={this.handleClear} aria-label={t('clear', this.locale)}>\n {t('remove', this.locale)}\n </button>\n )}\n </div>\n ) : (\n <div class=\"mrd-image-field__prompt\">\n <svg class=\"mrd-image-field__upload-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"/>\n <circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\"/>\n <polyline points=\"21 15 16 10 5 21\"/>\n </svg>\n <span>\n {t('drop_file_here', this.locale)}{' '}\n <span class=\"mrd-image-field__browse\">{t('browse', this.locale)}</span>\n </span>\n </div>\n )}\n </div>\n {hasError && <span class=\"mrd-image-field__error\">{this.error}</span>}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,10 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ClientLayoutItemType, ClientLayoutItemFieldDataType
|
|
3
|
-
import { CellRenderer } from
|
|
4
|
-
import { t } from
|
|
5
|
-
import { formatDate } from
|
|
6
|
-
|
|
7
|
-
constructor() {
|
|
1
|
+
import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-B_tPFIvS.js';
|
|
2
|
+
import { a as ClientLayoutItemType, b as ClientLayoutItemFieldDataType } from './client-layout-D88nn5zf.js';
|
|
3
|
+
import { C as CellRenderer } from './cell-renderer-CbRwLOo8.js';
|
|
4
|
+
import { t } from './i18n-hoGGKbKU.js';
|
|
5
|
+
import { f as formatDate } from './format-BAfsQfy1.js';
|
|
6
|
+
|
|
7
|
+
const mrdLayoutSectionScss = () => `.mrd-layout-section.sc-mrd-layout-section{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-color-neutral-800)}.mrd-layout-section__field.sc-mrd-layout-section{display:grid;grid-template-columns:200px 1fr;align-items:baseline;gap:0 var(--mrd-space-2);padding:var(--mrd-space-1) 0}.mrd-layout-section__field-label.sc-mrd-layout-section{font-size:var(--mrd-font-size-xs);font-weight:var(--mrd-font-weight-normal);color:var(--mrd-color-neutral-500);padding-top:1px}.mrd-layout-section__field-value.sc-mrd-layout-section{font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-medium);color:var(--mrd-color-neutral-800);word-break:break-word;display:inline-flex;align-items:center;gap:var(--mrd-space-1)}.mrd-layout-section__history-wrap.sc-mrd-layout-section{position:relative;display:inline-flex;align-items:center}.mrd-layout-section__history-btn.sc-mrd-layout-section{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;padding:0;background:transparent;border:none;border-radius:var(--mrd-border-radius-sm);color:var(--mrd-color-neutral-400);cursor:pointer;flex-shrink:0;transition:color var(--mrd-transition-fast), background-color var(--mrd-transition-fast)}.mrd-layout-section__history-btn.sc-mrd-layout-section:hover{color:var(--mrd-color-neutral-700);background-color:var(--mrd-color-neutral-100)}.mrd-layout-section__history-btn.sc-mrd-layout-section:focus{outline:none;box-shadow:var(--mrd-shadow-focus)}.mrd-layout-section__history-icon.sc-mrd-layout-section{width:0.875rem;height:0.875rem}.mrd-layout-section__history-popover.sc-mrd-layout-section{position:absolute;top:calc(100% + 0.25rem);left:0;min-width:24rem;max-width:24rem;background-color:var(--mrd-color-white);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius-md);box-shadow:var(--mrd-shadow-md);padding:var(--mrd-space-1) 0;z-index:var(--mrd-z-dropdown)}.mrd-layout-section__history-entry.sc-mrd-layout-section{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-normal);color:var(--mrd-color-neutral-700);padding:var(--mrd-space-2) var(--mrd-space-3);line-height:var(--mrd-line-height-normal)}.mrd-layout-section__history-entry.sc-mrd-layout-section:not(:last-child){border-bottom:var(--mrd-border-width) solid var(--mrd-color-neutral-100)}.mrd-layout-section__field-header.sc-mrd-layout-section{font-size:var(--mrd-font-size-2xl);font-weight:var(--mrd-font-weight-bold);color:var(--mrd-color-neutral-900);margin:0 0 var(--mrd-space-4) 0;padding:0}.mrd-layout-section__header.sc-mrd-layout-section{font-size:var(--mrd-font-size-xl);font-weight:var(--mrd-font-weight-semibold);color:var(--mrd-color-neutral-800);margin:var(--mrd-space-4) 0 var(--mrd-space-2) 0;padding:0}.mrd-layout-section__text.sc-mrd-layout-section{font-size:var(--mrd-font-size-base);color:var(--mrd-color-neutral-700);line-height:var(--mrd-line-height-relaxed);margin:var(--mrd-space-2) 0}.mrd-layout-section__navigate.sc-mrd-layout-section{display:inline-flex;align-items:center;gap:var(--mrd-space-2);padding:var(--mrd-space-2) var(--mrd-space-3);background:none;border:1px solid var(--mrd-color-neutral-300);border-radius:var(--mrd-border-radius);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);color:var(--mrd-color-primary);cursor:pointer;margin:var(--mrd-space-2) 0}.mrd-layout-section__navigate.sc-mrd-layout-section:hover{background-color:var(--mrd-color-primary-light);border-color:var(--mrd-color-primary)}.mrd-layout-section__link.sc-mrd-layout-section{color:var(--mrd-color-primary);text-decoration:none}.mrd-layout-section__link.sc-mrd-layout-section:hover{text-decoration:underline}.mrd-layout-section__relation-link.sc-mrd-layout-section{background:none;border:none;padding:0;font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-semibold);color:var(--mrd-color-primary);cursor:pointer;text-align:left}.mrd-layout-section__relation-link.sc-mrd-layout-section:hover{text-decoration:underline}.mrd-layout-section__download-link.sc-mrd-layout-section{display:inline-flex;align-items:center;gap:var(--mrd-space-1);background:none;border:none;padding:0;font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);color:var(--mrd-color-primary);cursor:pointer;text-align:left}.mrd-layout-section__download-link.sc-mrd-layout-section:hover{text-decoration:underline;color:var(--mrd-color-primary-dark)}.mrd-layout-section__file-icon.sc-mrd-layout-section{flex-shrink:0;width:1rem;height:1rem}.mrd-layout-section__boolean--true.sc-mrd-layout-section{color:var(--mrd-color-success);font-weight:var(--mrd-font-weight-semibold)}.mrd-layout-section__boolean--false.sc-mrd-layout-section{color:var(--mrd-color-neutral-400)}.mrd-layout-section__field--block.sc-mrd-layout-section{grid-template-columns:1fr}.mrd-layout-section__badge.sc-mrd-layout-section{display:inline-block;font-size:var(--mrd-font-size-xs);font-weight:var(--mrd-font-weight-medium);padding:2px var(--mrd-space-3);border-radius:10px}.mrd-layout-section__badge-dot-row.sc-mrd-layout-section{display:inline-flex;align-items:center;gap:var(--mrd-space-2)}.mrd-layout-section__badge-dot.sc-mrd-layout-section{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.mrd-layout-section__secret-masked.sc-mrd-layout-section{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-label-color);letter-spacing:0.15em;user-select:none;pointer-events:none}.mrd-layout-section__pre.sc-mrd-layout-section{font-family:var(--mrd-font-family-mono);font-size:var(--mrd-font-size-xs);background-color:var(--mrd-color-neutral-50);border:1px solid var(--mrd-color-neutral-200);border-radius:var(--mrd-border-radius);padding:var(--mrd-space-3);margin:0;max-height:calc(10 * 1.5 * var(--mrd-font-size-xs));overflow-x:auto;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.mrd-layout-section__group.sc-mrd-layout-section{margin:var(--mrd-space-4) 0}.mrd-layout-section__group-title.sc-mrd-layout-section{font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-semibold);color:var(--mrd-color-neutral-500);margin:0 0 var(--mrd-space-2) 0;padding-bottom:0;text-transform:uppercase;letter-spacing:0.05em}.mrd-layout-section__related-view.sc-mrd-layout-section{margin:var(--mrd-space-4) 0}.mrd-layout-section__related-view-title.sc-mrd-layout-section{font-size:var(--mrd-font-size-lg);font-weight:var(--mrd-font-weight-semibold);color:var(--mrd-color-neutral-800);margin:0 0 var(--mrd-space-3) 0}.mrd-layout-section__search.sc-mrd-layout-section{position:relative;margin:var(--mrd-space-2) 0}.mrd-layout-section__search-wrap.sc-mrd-layout-section{position:relative}.mrd-layout-section__search-icon.sc-mrd-layout-section{position:absolute;left:var(--mrd-input-padding-x);top:50%;transform:translateY(-50%);width:1rem;height:1rem;color:var(--mrd-color-neutral-400);pointer-events:none}.mrd-layout-section__search-input.sc-mrd-layout-section{display:block;width:100%;height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x) var(--mrd-input-padding-y) calc(var(--mrd-input-padding-x) + 1rem + var(--mrd-space-2));font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-input-color);background-color:var(--mrd-input-bg);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);outline:none;appearance:none;box-sizing:border-box}.mrd-layout-section__search-input.sc-mrd-layout-section:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-layout-section__search-input.sc-mrd-layout-section::placeholder{color:var(--mrd-input-placeholder-color)}.mrd-layout-section__search-results.sc-mrd-layout-section{position:absolute;top:100%;left:0;right:0;background-color:var(--mrd-color-white);border:1px solid var(--mrd-color-neutral-300);border-top:none;border-radius:0 0 var(--mrd-border-radius) var(--mrd-border-radius);box-shadow:var(--mrd-shadow-sm);z-index:100;max-height:300px;overflow-y:auto;list-style:none;margin:0;padding:var(--mrd-space-1) 0}.mrd-layout-section__search-result.sc-mrd-layout-section{margin:0;padding:0}.mrd-layout-section__search-result-btn.sc-mrd-layout-section{display:flex;flex-direction:column;width:100%;padding:var(--mrd-space-2) var(--mrd-space-3);background:none;border:none;text-align:left;cursor:pointer;font-family:var(--mrd-font-family)}.mrd-layout-section__search-result-btn.sc-mrd-layout-section:hover{background-color:var(--mrd-color-primary-light)}.mrd-layout-section__search-result-label.sc-mrd-layout-section{font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-medium);color:var(--mrd-color-neutral-800)}.mrd-layout-section__search-result-desc.sc-mrd-layout-section{font-size:var(--mrd-font-size-xs);color:var(--mrd-color-neutral-500);margin-top:var(--mrd-space-1)}.mrd-layout-section__image-thumb-btn.sc-mrd-layout-section{background:none;border:none;padding:0;cursor:pointer;display:inline-block;border-radius:var(--mrd-border-radius);overflow:hidden;line-height:0}.mrd-layout-section__image-thumb-btn.sc-mrd-layout-section:hover .mrd-layout-section__image-thumb.sc-mrd-layout-section{opacity:0.85}.mrd-layout-section__image-thumb.sc-mrd-layout-section{display:block;max-width:160px;max-height:100px;border-radius:var(--mrd-border-radius);object-fit:cover;transition:opacity 0.15s}.mrd-layout-section__modal-backdrop.sc-mrd-layout-section{position:fixed;inset:0;background:rgba(0, 0, 0, 0.6);z-index:300;display:flex;align-items:center;justify-content:center}.mrd-layout-section__modal.sc-mrd-layout-section{position:relative;background:#fff;border-radius:var(--mrd-border-radius);padding:var(--mrd-space-3);max-width:min(90vw, 900px);max-height:90vh;display:flex;align-items:center;justify-content:center;box-shadow:var(--mrd-shadow-lg)}.mrd-layout-section__modal-close.sc-mrd-layout-section{position:absolute;top:var(--mrd-space-2);right:var(--mrd-space-2);background:rgba(0, 0, 0, 0.5);border:none;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;font-size:var(--mrd-font-size-sm);line-height:1;z-index:1}.mrd-layout-section__modal-close.sc-mrd-layout-section:hover{background:rgba(0, 0, 0, 0.8)}.mrd-layout-section__modal-image.sc-mrd-layout-section{display:block;max-width:100%;max-height:calc(90vh - 2rem);border-radius:var(--mrd-border-radius);object-fit:contain}`;
|
|
8
|
+
|
|
9
|
+
const MrdLayoutSection = class {
|
|
10
|
+
constructor(hostRef) {
|
|
11
|
+
registerInstance(this, hostRef);
|
|
12
|
+
this.mrdNavigate = createEvent(this, "mrdNavigate", 7);
|
|
13
|
+
this.mrdSearch = createEvent(this, "mrdSearch", 7);
|
|
14
|
+
this.mrdDownload = createEvent(this, "mrdDownload", 7);
|
|
15
|
+
this.mrdLoadViewPage = createEvent(this, "mrdLoadViewPage", 7);
|
|
16
|
+
this.mrdLoadImage = createEvent(this, "mrdLoadImage", 7);
|
|
17
|
+
this.mrdViewAction = createEvent(this, "mrdViewAction", 7);
|
|
18
|
+
this.mrdLoadViewAggregations = createEvent(this, "mrdLoadViewAggregations", 7);
|
|
8
19
|
/** Items from one layout entry in ClientDashboardMetadata.layouts[]. */
|
|
9
20
|
this.items = [];
|
|
10
21
|
/** Record data object; keys are field names, _links holds relation and related-view links. */
|
|
@@ -336,414 +347,16 @@ export class MrdLayoutSection {
|
|
|
336
347
|
render() {
|
|
337
348
|
return (h(Host, { key: '8966198eebd98570d2db2f4d2fe9ef3f8b466ec6' }, h("div", { key: '645ddbfdd829a0f9c1a4eab18105662af6c078b2', class: "mrd-layout-section" }, this.items.map(item => this.renderItem(item))), this.renderImageModal()));
|
|
338
349
|
}
|
|
339
|
-
|
|
340
|
-
static get
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
return {
|
|
353
|
-
"items": {
|
|
354
|
-
"type": "unknown",
|
|
355
|
-
"mutable": false,
|
|
356
|
-
"complexType": {
|
|
357
|
-
"original": "ClientLayoutItem[]",
|
|
358
|
-
"resolved": "ClientLayoutItem[]",
|
|
359
|
-
"references": {
|
|
360
|
-
"ClientLayoutItem": {
|
|
361
|
-
"location": "import",
|
|
362
|
-
"path": "../../types/client-layout",
|
|
363
|
-
"id": "src/types/client-layout.ts::ClientLayoutItem",
|
|
364
|
-
"referenceLocation": "ClientLayoutItem"
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
},
|
|
368
|
-
"required": false,
|
|
369
|
-
"optional": false,
|
|
370
|
-
"docs": {
|
|
371
|
-
"tags": [],
|
|
372
|
-
"text": "Items from one layout entry in ClientDashboardMetadata.layouts[]."
|
|
373
|
-
},
|
|
374
|
-
"getter": false,
|
|
375
|
-
"setter": false,
|
|
376
|
-
"defaultValue": "[]"
|
|
377
|
-
},
|
|
378
|
-
"data": {
|
|
379
|
-
"type": "unknown",
|
|
380
|
-
"mutable": false,
|
|
381
|
-
"complexType": {
|
|
382
|
-
"original": "Record<string, unknown>",
|
|
383
|
-
"resolved": "string | unknown",
|
|
384
|
-
"references": {
|
|
385
|
-
"Record": {
|
|
386
|
-
"location": "global",
|
|
387
|
-
"id": "global::Record"
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
},
|
|
391
|
-
"required": false,
|
|
392
|
-
"optional": false,
|
|
393
|
-
"docs": {
|
|
394
|
-
"tags": [],
|
|
395
|
-
"text": "Record data object; keys are field names, _links holds relation and related-view links."
|
|
396
|
-
},
|
|
397
|
-
"getter": false,
|
|
398
|
-
"setter": false,
|
|
399
|
-
"defaultValue": "{}"
|
|
400
|
-
},
|
|
401
|
-
"views": {
|
|
402
|
-
"type": "unknown",
|
|
403
|
-
"mutable": false,
|
|
404
|
-
"complexType": {
|
|
405
|
-
"original": "Record<string, ClientViewMetadata>",
|
|
406
|
-
"resolved": "ClientViewMetadata | string",
|
|
407
|
-
"references": {
|
|
408
|
-
"Record": {
|
|
409
|
-
"location": "global",
|
|
410
|
-
"id": "global::Record"
|
|
411
|
-
},
|
|
412
|
-
"ClientViewMetadata": {
|
|
413
|
-
"location": "import",
|
|
414
|
-
"path": "../../types/client-layout",
|
|
415
|
-
"id": "src/types/client-layout.ts::ClientViewMetadata",
|
|
416
|
-
"referenceLocation": "ClientViewMetadata"
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
},
|
|
420
|
-
"required": false,
|
|
421
|
-
"optional": false,
|
|
422
|
-
"docs": {
|
|
423
|
-
"tags": [],
|
|
424
|
-
"text": "Legacy: view metadata map (ClientDashboardMetadata.views). Not needed in new flat format."
|
|
425
|
-
},
|
|
426
|
-
"getter": false,
|
|
427
|
-
"setter": false,
|
|
428
|
-
"defaultValue": "{}"
|
|
429
|
-
},
|
|
430
|
-
"links": {
|
|
431
|
-
"type": "unknown",
|
|
432
|
-
"mutable": false,
|
|
433
|
-
"complexType": {
|
|
434
|
-
"original": "Record<string, { href: string }>",
|
|
435
|
-
"resolved": "string | { href: string; }",
|
|
436
|
-
"references": {
|
|
437
|
-
"Record": {
|
|
438
|
-
"location": "global",
|
|
439
|
-
"id": "global::Record"
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
},
|
|
443
|
-
"required": false,
|
|
444
|
-
"optional": false,
|
|
445
|
-
"docs": {
|
|
446
|
-
"tags": [],
|
|
447
|
-
"text": "Legacy: top-level _links from ClientDashboardMetadata. Not needed in new flat format."
|
|
448
|
-
},
|
|
449
|
-
"getter": false,
|
|
450
|
-
"setter": false,
|
|
451
|
-
"defaultValue": "{}"
|
|
452
|
-
},
|
|
453
|
-
"locale": {
|
|
454
|
-
"type": "string",
|
|
455
|
-
"mutable": false,
|
|
456
|
-
"complexType": {
|
|
457
|
-
"original": "string",
|
|
458
|
-
"resolved": "string",
|
|
459
|
-
"references": {}
|
|
460
|
-
},
|
|
461
|
-
"required": false,
|
|
462
|
-
"optional": false,
|
|
463
|
-
"docs": {
|
|
464
|
-
"tags": [],
|
|
465
|
-
"text": ""
|
|
466
|
-
},
|
|
467
|
-
"getter": false,
|
|
468
|
-
"setter": false,
|
|
469
|
-
"reflect": false,
|
|
470
|
-
"attribute": "locale",
|
|
471
|
-
"defaultValue": "navigator.language"
|
|
472
|
-
}
|
|
473
|
-
};
|
|
474
|
-
}
|
|
475
|
-
static get states() {
|
|
476
|
-
return {
|
|
477
|
-
"searchQueryMap": {},
|
|
478
|
-
"searchResultsMap": {},
|
|
479
|
-
"imagePreviewUrl": {},
|
|
480
|
-
"imagePreviews": {},
|
|
481
|
-
"openHistoryField": {}
|
|
482
|
-
};
|
|
483
|
-
}
|
|
484
|
-
static get events() {
|
|
485
|
-
return [{
|
|
486
|
-
"method": "mrdNavigate",
|
|
487
|
-
"name": "mrdNavigate",
|
|
488
|
-
"bubbles": true,
|
|
489
|
-
"cancelable": true,
|
|
490
|
-
"composed": true,
|
|
491
|
-
"docs": {
|
|
492
|
-
"tags": [],
|
|
493
|
-
"text": ""
|
|
494
|
-
},
|
|
495
|
-
"complexType": {
|
|
496
|
-
"original": "{ href?: string; label: string; navigate?: ClientLayoutItemNavigate }",
|
|
497
|
-
"resolved": "{ href?: string | undefined; label: string; navigate?: ClientLayoutItemNavigate | undefined; }",
|
|
498
|
-
"references": {
|
|
499
|
-
"ClientLayoutItemNavigate": {
|
|
500
|
-
"location": "import",
|
|
501
|
-
"path": "../../types/client-layout",
|
|
502
|
-
"id": "src/types/client-layout.ts::ClientLayoutItemNavigate",
|
|
503
|
-
"referenceLocation": "ClientLayoutItemNavigate"
|
|
504
|
-
}
|
|
505
|
-
}
|
|
506
|
-
}
|
|
507
|
-
}, {
|
|
508
|
-
"method": "mrdSearch",
|
|
509
|
-
"name": "mrdSearch",
|
|
510
|
-
"bubbles": true,
|
|
511
|
-
"cancelable": true,
|
|
512
|
-
"composed": true,
|
|
513
|
-
"docs": {
|
|
514
|
-
"tags": [],
|
|
515
|
-
"text": ""
|
|
516
|
-
},
|
|
517
|
-
"complexType": {
|
|
518
|
-
"original": "{ query: string; dataClass: string }",
|
|
519
|
-
"resolved": "{ query: string; dataClass: string; }",
|
|
520
|
-
"references": {}
|
|
521
|
-
}
|
|
522
|
-
}, {
|
|
523
|
-
"method": "mrdDownload",
|
|
524
|
-
"name": "mrdDownload",
|
|
525
|
-
"bubbles": true,
|
|
526
|
-
"cancelable": true,
|
|
527
|
-
"composed": true,
|
|
528
|
-
"docs": {
|
|
529
|
-
"tags": [],
|
|
530
|
-
"text": ""
|
|
531
|
-
},
|
|
532
|
-
"complexType": {
|
|
533
|
-
"original": "{ href: string; fileName: string }",
|
|
534
|
-
"resolved": "{ href: string; fileName: string; }",
|
|
535
|
-
"references": {}
|
|
536
|
-
}
|
|
537
|
-
}, {
|
|
538
|
-
"method": "mrdLoadViewPage",
|
|
539
|
-
"name": "mrdLoadViewPage",
|
|
540
|
-
"bubbles": true,
|
|
541
|
-
"cancelable": true,
|
|
542
|
-
"composed": true,
|
|
543
|
-
"docs": {
|
|
544
|
-
"tags": [],
|
|
545
|
-
"text": "Re-emitted from an embedded mrd-table's mrdLoadPage; host fetches the next page and calls setViewPage()."
|
|
546
|
-
},
|
|
547
|
-
"complexType": {
|
|
548
|
-
"original": "{ name: string; page: number; sort: string; path: string; qs: string }",
|
|
549
|
-
"resolved": "{ name: string; page: number; sort: string; path: string; qs: string; }",
|
|
550
|
-
"references": {}
|
|
551
|
-
}
|
|
552
|
-
}, {
|
|
553
|
-
"method": "mrdLoadImage",
|
|
554
|
-
"name": "mrdLoadImage",
|
|
555
|
-
"bubbles": true,
|
|
556
|
-
"cancelable": true,
|
|
557
|
-
"composed": true,
|
|
558
|
-
"docs": {
|
|
559
|
-
"tags": [],
|
|
560
|
-
"text": "Fired once on load for each IMAGE field that has an href; host resolves the URL and calls setImagePreview()."
|
|
561
|
-
},
|
|
562
|
-
"complexType": {
|
|
563
|
-
"original": "{ fieldName: string; href: string }",
|
|
564
|
-
"resolved": "{ fieldName: string; href: string; }",
|
|
565
|
-
"references": {}
|
|
566
|
-
}
|
|
567
|
-
}, {
|
|
568
|
-
"method": "mrdViewAction",
|
|
569
|
-
"name": "mrdViewAction",
|
|
570
|
-
"bubbles": true,
|
|
571
|
-
"cancelable": true,
|
|
572
|
-
"composed": true,
|
|
573
|
-
"docs": {
|
|
574
|
-
"tags": [],
|
|
575
|
-
"text": "Re-emitted from an embedded mrd-table's mrdAction; host builds the target URL from dataClass."
|
|
576
|
-
},
|
|
577
|
-
"complexType": {
|
|
578
|
-
"original": "{ name: string; action: string; dataClass: string; path?: string; qs?: string; parentPath?: string | null; basicType?: string }",
|
|
579
|
-
"resolved": "{ name: string; action: string; dataClass: string; path?: string | undefined; qs?: string | undefined; parentPath?: string | null | undefined; basicType?: string | undefined; }",
|
|
580
|
-
"references": {}
|
|
581
|
-
}
|
|
582
|
-
}, {
|
|
583
|
-
"method": "mrdLoadViewAggregations",
|
|
584
|
-
"name": "mrdLoadViewAggregations",
|
|
585
|
-
"bubbles": true,
|
|
586
|
-
"cancelable": true,
|
|
587
|
-
"composed": true,
|
|
588
|
-
"docs": {
|
|
589
|
-
"tags": [],
|
|
590
|
-
"text": "Re-emitted from an embedded mrd-table's mrdLoadAggregations; host calls setViewAggregations() with the result."
|
|
591
|
-
},
|
|
592
|
-
"complexType": {
|
|
593
|
-
"original": "{ name: string; dataClass: string; path: string; qs: string; aggQs: string }",
|
|
594
|
-
"resolved": "{ name: string; dataClass: string; path: string; qs: string; aggQs: string; }",
|
|
595
|
-
"references": {}
|
|
596
|
-
}
|
|
597
|
-
}];
|
|
598
|
-
}
|
|
599
|
-
static get methods() {
|
|
600
|
-
return {
|
|
601
|
-
"setSearchResults": {
|
|
602
|
-
"complexType": {
|
|
603
|
-
"signature": "(results: RelationSearchResult[], dataClass?: string) => Promise<void>",
|
|
604
|
-
"parameters": [{
|
|
605
|
-
"name": "results",
|
|
606
|
-
"type": "RelationSearchResult[]",
|
|
607
|
-
"docs": ""
|
|
608
|
-
}, {
|
|
609
|
-
"name": "dataClass",
|
|
610
|
-
"type": "string | undefined",
|
|
611
|
-
"docs": ""
|
|
612
|
-
}],
|
|
613
|
-
"references": {
|
|
614
|
-
"Promise": {
|
|
615
|
-
"location": "global",
|
|
616
|
-
"id": "global::Promise"
|
|
617
|
-
},
|
|
618
|
-
"RelationSearchResult": {
|
|
619
|
-
"location": "import",
|
|
620
|
-
"path": "../../types/client-layout",
|
|
621
|
-
"id": "src/types/client-layout.ts::RelationSearchResult",
|
|
622
|
-
"referenceLocation": "RelationSearchResult"
|
|
623
|
-
}
|
|
624
|
-
},
|
|
625
|
-
"return": "Promise<void>"
|
|
626
|
-
},
|
|
627
|
-
"docs": {
|
|
628
|
-
"text": "Inject search results. Pass dataClass to target a specific SEARCH item; omit when there is only one.",
|
|
629
|
-
"tags": []
|
|
630
|
-
}
|
|
631
|
-
},
|
|
632
|
-
"setViewPage": {
|
|
633
|
-
"complexType": {
|
|
634
|
-
"signature": "(name: string, page: number, rows: any[], totalElements?: number, hasNext?: boolean) => Promise<void>",
|
|
635
|
-
"parameters": [{
|
|
636
|
-
"name": "name",
|
|
637
|
-
"type": "string",
|
|
638
|
-
"docs": ""
|
|
639
|
-
}, {
|
|
640
|
-
"name": "page",
|
|
641
|
-
"type": "number",
|
|
642
|
-
"docs": ""
|
|
643
|
-
}, {
|
|
644
|
-
"name": "rows",
|
|
645
|
-
"type": "any[]",
|
|
646
|
-
"docs": ""
|
|
647
|
-
}, {
|
|
648
|
-
"name": "totalElements",
|
|
649
|
-
"type": "number | undefined",
|
|
650
|
-
"docs": ""
|
|
651
|
-
}, {
|
|
652
|
-
"name": "hasNext",
|
|
653
|
-
"type": "boolean | undefined",
|
|
654
|
-
"docs": ""
|
|
655
|
-
}],
|
|
656
|
-
"references": {
|
|
657
|
-
"Promise": {
|
|
658
|
-
"location": "global",
|
|
659
|
-
"id": "global::Promise"
|
|
660
|
-
}
|
|
661
|
-
},
|
|
662
|
-
"return": "Promise<void>"
|
|
663
|
-
},
|
|
664
|
-
"docs": {
|
|
665
|
-
"text": "Inject data into an embedded mrd-table for a RELATED_VIEW or VIEW item.\nPass totalElements to update the pagination total (safe to pass on every page).\nPass hasNext (from _links.next presence) so the table can decide whether to emit aggregations.",
|
|
666
|
-
"tags": []
|
|
667
|
-
}
|
|
668
|
-
},
|
|
669
|
-
"setViewAggregations": {
|
|
670
|
-
"complexType": {
|
|
671
|
-
"signature": "(name: string, data: any) => Promise<void>",
|
|
672
|
-
"parameters": [{
|
|
673
|
-
"name": "name",
|
|
674
|
-
"type": "string",
|
|
675
|
-
"docs": ""
|
|
676
|
-
}, {
|
|
677
|
-
"name": "data",
|
|
678
|
-
"type": "any",
|
|
679
|
-
"docs": ""
|
|
680
|
-
}],
|
|
681
|
-
"references": {
|
|
682
|
-
"Promise": {
|
|
683
|
-
"location": "global",
|
|
684
|
-
"id": "global::Promise"
|
|
685
|
-
}
|
|
686
|
-
},
|
|
687
|
-
"return": "Promise<void>"
|
|
688
|
-
},
|
|
689
|
-
"docs": {
|
|
690
|
-
"text": "Inject aggregation totals into an embedded mrd-table for a VIEW or RELATED_VIEW item.",
|
|
691
|
-
"tags": []
|
|
692
|
-
}
|
|
693
|
-
},
|
|
694
|
-
"setImagePreview": {
|
|
695
|
-
"complexType": {
|
|
696
|
-
"signature": "(fieldName: string, url: string) => Promise<void>",
|
|
697
|
-
"parameters": [{
|
|
698
|
-
"name": "fieldName",
|
|
699
|
-
"type": "string",
|
|
700
|
-
"docs": ""
|
|
701
|
-
}, {
|
|
702
|
-
"name": "url",
|
|
703
|
-
"type": "string",
|
|
704
|
-
"docs": ""
|
|
705
|
-
}],
|
|
706
|
-
"references": {
|
|
707
|
-
"Promise": {
|
|
708
|
-
"location": "global",
|
|
709
|
-
"id": "global::Promise"
|
|
710
|
-
}
|
|
711
|
-
},
|
|
712
|
-
"return": "Promise<void>"
|
|
713
|
-
},
|
|
714
|
-
"docs": {
|
|
715
|
-
"text": "Provide a resolved URL for an IMAGE field. Shows as thumbnail; clicking opens the lightbox.",
|
|
716
|
-
"tags": []
|
|
717
|
-
}
|
|
718
|
-
},
|
|
719
|
-
"openImagePreview": {
|
|
720
|
-
"complexType": {
|
|
721
|
-
"signature": "(url: string) => Promise<void>",
|
|
722
|
-
"parameters": [{
|
|
723
|
-
"name": "url",
|
|
724
|
-
"type": "string",
|
|
725
|
-
"docs": ""
|
|
726
|
-
}],
|
|
727
|
-
"references": {
|
|
728
|
-
"Promise": {
|
|
729
|
-
"location": "global",
|
|
730
|
-
"id": "global::Promise"
|
|
731
|
-
}
|
|
732
|
-
},
|
|
733
|
-
"return": "Promise<void>"
|
|
734
|
-
},
|
|
735
|
-
"docs": {
|
|
736
|
-
"text": "Open the lightbox directly with a URL (e.g. after mrdDownload on a FILE field).",
|
|
737
|
-
"tags": []
|
|
738
|
-
}
|
|
739
|
-
}
|
|
740
|
-
};
|
|
741
|
-
}
|
|
742
|
-
static get elementRef() { return "el"; }
|
|
743
|
-
static get watchers() {
|
|
744
|
-
return [{
|
|
745
|
-
"propName": "data",
|
|
746
|
-
"methodName": "dataChanged"
|
|
747
|
-
}];
|
|
748
|
-
}
|
|
749
|
-
}
|
|
350
|
+
get el() { return getElement(this); }
|
|
351
|
+
static get watchers() { return {
|
|
352
|
+
"data": [{
|
|
353
|
+
"dataChanged": 0
|
|
354
|
+
}]
|
|
355
|
+
}; }
|
|
356
|
+
};
|
|
357
|
+
MrdLayoutSection.style = mrdLayoutSectionScss();
|
|
358
|
+
|
|
359
|
+
export { MrdLayoutSection as mrd_layout_section };
|
|
360
|
+
//# sourceMappingURL=mrd-layout-section.entry.esm.js.map
|
|
361
|
+
|
|
362
|
+
//# sourceMappingURL=mrd-layout-section.entry.js.map
|