@mmlogic/components 0.3.5 → 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} +31 -308
- 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} +32 -394
- 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/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 -3961
- 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 -707
- 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 -809
- 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 -135
- 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 -145
- package/dist/collection/dev/app.js +0 -890
- 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 -3940
- 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-e477187c.entry.js +0 -1
|
@@ -0,0 +1,50 @@
|
|
|
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
|
+
import { v as validateRequired, a as validateEmail } from './validation-ixb43cqU.js';
|
|
4
|
+
import './index-I5SuYv7a.js';
|
|
5
|
+
import './client-layout-D88nn5zf.js';
|
|
6
|
+
|
|
7
|
+
const mrdEmailFieldScss = () => `.sc-mrd-email-field-h{display:block}.mrd-email-field.sc-mrd-email-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-email-field__label.sc-mrd-email-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-email-field__label--required.sc-mrd-email-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-email-field__input.sc-mrd-email-field{display:block;width:100%;height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x);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);transition:border-color var(--mrd-transition), box-shadow var(--mrd-transition);outline:none;appearance:none;box-sizing:border-box}.mrd-email-field__input.sc-mrd-email-field::placeholder{color:var(--mrd-input-placeholder-color)}.mrd-email-field__input.sc-mrd-email-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-email-field__input.sc-mrd-email-field:disabled{background-color:var(--mrd-input-bg-disabled);cursor:not-allowed;opacity:0.7}.mrd-email-field__input--error.sc-mrd-email-field{border-color:var(--mrd-border-color-error)}.mrd-email-field__input--error.sc-mrd-email-field:focus{box-shadow:var(--mrd-shadow-focus-error)}.mrd-email-field__error.sc-mrd-email-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}`;
|
|
8
|
+
|
|
9
|
+
const MrdEmailField = class {
|
|
10
|
+
constructor(hostRef) {
|
|
11
|
+
registerInstance(this, hostRef);
|
|
12
|
+
this.mrdChange = createEvent(this, "mrdChange", 7);
|
|
13
|
+
this.mrdBlur = createEvent(this, "mrdBlur", 7);
|
|
14
|
+
this.name = '';
|
|
15
|
+
this.label = '';
|
|
16
|
+
this.value = '';
|
|
17
|
+
this.placeholder = '';
|
|
18
|
+
this.required = false;
|
|
19
|
+
this.disabled = false;
|
|
20
|
+
this.locale = navigator.language;
|
|
21
|
+
this.error = '';
|
|
22
|
+
this.handleInput = (e) => {
|
|
23
|
+
const val = e.target.value;
|
|
24
|
+
this.mrdChange.emit({ name: this.name, value: val });
|
|
25
|
+
};
|
|
26
|
+
this.handleBlur = (e) => {
|
|
27
|
+
const val = e.target.value;
|
|
28
|
+
if (this.required && !validateRequired(val)) {
|
|
29
|
+
this.error = t('required', this.locale);
|
|
30
|
+
}
|
|
31
|
+
else if (val && !validateEmail(val)) {
|
|
32
|
+
this.error = t('invalid_email', this.locale);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
this.error = '';
|
|
36
|
+
}
|
|
37
|
+
this.mrdBlur.emit({ name: this.name, value: val });
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
render() {
|
|
41
|
+
const hasError = !!this.error;
|
|
42
|
+
return (h(Host, { key: '851ec092957ab86e811b292eaabe29d04a600fe0' }, h("div", { key: '2d8969d60378f3161656369494549d682de8ec0e', class: "mrd-email-field" }, this.label && (h("label", { key: '7a35cc60d4804097e1a54f984c7da1829f6bbd11', class: `mrd-email-field__label${this.required ? ' mrd-email-field__label--required' : ''}` }, this.label)), h("input", { key: '1fc20e860aa021886f7ed522c3a0c8dd2cb1e093', class: `mrd-email-field__input${hasError ? ' mrd-email-field__input--error' : ''}`, type: "email", name: this.name, value: this.value, placeholder: this.placeholder || 'name@example.com', required: this.required, disabled: this.disabled, onInput: this.handleInput, onBlur: this.handleBlur }), hasError && h("span", { key: 'a44b3b41b7cd6b8c643cc64e6aadd884a2ba4961', class: "mrd-email-field__error" }, this.error))));
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
MrdEmailField.style = mrdEmailFieldScss();
|
|
46
|
+
|
|
47
|
+
export { MrdEmailField as mrd_email_field };
|
|
48
|
+
//# sourceMappingURL=mrd-email-field.entry.esm.js.map
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=mrd-email-field.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"mrd-email-field.entry.js","mappings":";;;;;;AAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,2nDAA2nD,CAAC;;MCShpD,aAAa,GAAA,MAAA;AAL1B,IAAA,WAAA,CAAA,OAAA,EAAA;;;;AAMU,QAAA,IAAA,CAAA,IAAI,GAAW,EAAE;AACjB,QAAA,IAAA,CAAA,KAAK,GAAW,EAAE;AAClB,QAAA,IAAA,CAAA,KAAK,GAAW,EAAE;AAClB,QAAA,IAAA,CAAA,WAAW,GAAW,EAAE;AACxB,QAAA,IAAA,CAAA,QAAQ,GAAY,KAAK;AACzB,QAAA,IAAA,CAAA,QAAQ,GAAY,KAAK;AACzB,QAAA,IAAA,CAAA,MAAM,GAAW,SAAS,CAAC,QAAQ;AAElC,QAAA,IAAA,CAAA,KAAK,GAAW,EAAE;AAKnB,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,CAAQ,KAAI;AACjC,YAAA,MAAM,GAAG,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK;AAChD,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACtD,SAAC;AAEO,QAAA,IAAA,CAAA,UAAU,GAAG,CAAC,CAAQ,KAAI;AAChC,YAAA,MAAM,GAAG,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK;YAChD,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;gBAC3C,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;;iBAClC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;gBACrC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC;;iBACvC;AACL,gBAAA,IAAI,CAAC,KAAK,GAAG,EAAE;;AAEjB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACpD,SAAC;AA4BF;IA1BC,MAAM,GAAA;AACJ,QAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK;AAC7B,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,iBAAiB,EAAA,EACzB,IAAI,CAAC,KAAK,KACT,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAO,KAAK,EAAE,CAAA,sBAAA,EAAyB,IAAI,CAAC,QAAQ,GAAG,mCAAmC,GAAG,EAAE,CAAA,CAAE,EAAA,EAC9F,IAAI,CAAC,KAAK,CACL,CACT,EACD,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE,yBAAyB,QAAQ,GAAG,gCAAgC,GAAG,EAAE,CAAA,CAAE,EAClF,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,kBAAkB,EACnD,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,MAAM,EAAE,IAAI,CAAC,UAAU,EAAA,CACvB,EACD,QAAQ,IAAI,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,wBAAwB,EAAA,EAAE,IAAI,CAAC,KAAK,CAAQ,CACjE,CACD;;;;;;;","names":[],"sources":["src/components/mrd-email-field/mrd-email-field.scss?tag=mrd-email-field&encapsulation=scoped","src/components/mrd-email-field/mrd-email-field.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.mrd-email-field {\n display: flex;\n flex-direction: column;\n gap: var(--mrd-space-1);\n width: 100%;\n}\n\n.mrd-email-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-email-field__label--required::after {\n content: ' *';\n color: var(--mrd-color-danger);\n}\n\n.mrd-email-field__input {\n display: block;\n width: 100%;\n height: var(--mrd-input-height);\n padding: var(--mrd-input-padding-y) var(--mrd-input-padding-x);\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-font-size-base);\n color: var(--mrd-input-color);\n background-color: var(--mrd-input-bg);\n border: var(--mrd-border-width) solid var(--mrd-border-color);\n border-radius: var(--mrd-border-radius);\n transition: border-color var(--mrd-transition), box-shadow var(--mrd-transition);\n outline: none;\n appearance: none;\n box-sizing: border-box;\n}\n\n.mrd-email-field__input::placeholder {\n color: var(--mrd-input-placeholder-color);\n}\n\n.mrd-email-field__input:focus {\n border-color: var(--mrd-border-color-focus);\n box-shadow: var(--mrd-shadow-focus);\n}\n\n.mrd-email-field__input:disabled {\n background-color: var(--mrd-input-bg-disabled);\n cursor: not-allowed;\n opacity: 0.7;\n}\n\n.mrd-email-field__input--error {\n border-color: var(--mrd-border-color-error);\n}\n\n.mrd-email-field__input--error:focus {\n box-shadow: var(--mrd-shadow-focus-error);\n}\n\n.mrd-email-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 } from '@stencil/core';\nimport { t } from '../../utils/i18n';\nimport { validateRequired, validateEmail } from '../../utils/validation';\n\n@Component({\n tag: 'mrd-email-field',\n styleUrl: 'mrd-email-field.scss',\n scoped: true,\n})\nexport class MrdEmailField {\n @Prop() name: string = '';\n @Prop() label: string = '';\n @Prop() value: string = '';\n @Prop() placeholder: string = '';\n @Prop() required: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() locale: string = navigator.language;\n\n @State() error: string = '';\n\n @Event() mrdChange!: EventEmitter<{ name: string; value: string }>;\n @Event() mrdBlur!: EventEmitter<{ name: string; value: string }>;\n\n private handleInput = (e: Event) => {\n const val = (e.target as HTMLInputElement).value;\n this.mrdChange.emit({ name: this.name, value: val });\n };\n\n private handleBlur = (e: Event) => {\n const val = (e.target as HTMLInputElement).value;\n if (this.required && !validateRequired(val)) {\n this.error = t('required', this.locale);\n } else if (val && !validateEmail(val)) {\n this.error = t('invalid_email', this.locale);\n } else {\n this.error = '';\n }\n this.mrdBlur.emit({ name: this.name, value: val });\n };\n\n render() {\n const hasError = !!this.error;\n return (\n <Host>\n <div class=\"mrd-email-field\">\n {this.label && (\n <label class={`mrd-email-field__label${this.required ? ' mrd-email-field__label--required' : ''}`}>\n {this.label}\n </label>\n )}\n <input\n class={`mrd-email-field__input${hasError ? ' mrd-email-field__input--error' : ''}`}\n type=\"email\"\n name={this.name}\n value={this.value}\n placeholder={this.placeholder || 'name@example.com'}\n required={this.required}\n disabled={this.disabled}\n onInput={this.handleInput}\n onBlur={this.handleBlur}\n />\n {hasError && <span class=\"mrd-email-field__error\">{this.error}</span>}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
package/dist/{collection/components/mrd-field/mrd-field.js → mosterdcomponents/mrd-field.entry.js}
RENAMED
|
@@ -1,8 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import { t } from
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-B_tPFIvS.js';
|
|
2
|
+
import './index-I5SuYv7a.js';
|
|
3
|
+
import { t } from './i18n-hoGGKbKU.js';
|
|
4
|
+
import { b as ClientLayoutItemFieldDataType, a as ClientLayoutItemType, c as ClientLayoutItemRelationDisplayType } from './client-layout-D88nn5zf.js';
|
|
5
|
+
|
|
6
|
+
const mrdFieldScss = () => `.sc-mrd-field-h{display:block}.mrd-field__inner.sc-mrd-field{display:block;width:100%}.mrd-field__history-editor.sc-mrd-field{margin-top:var(--mrd-space-2);display:flex;flex-direction:column;gap:var(--mrd-space-1)}.mrd-field__history-editor-label.sc-mrd-field{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-xs);font-weight:var(--mrd-font-weight-medium);color:var(--mrd-color-neutral-500)}.mrd-field__history-editor-row.sc-mrd-field{display:flex;align-items:center;gap:var(--mrd-space-2)}.mrd-field__history-editor-sep.sc-mrd-field{flex-shrink:0;font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-xs);color:var(--mrd-color-neutral-500)}.mrd-field__history-editor-value.sc-mrd-field{flex:1 1 0;min-width:0;height:var(--mrd-input-height);padding:0 var(--mrd-space-3);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);color:var(--mrd-color-neutral-800);background-color:var(--mrd-color-white);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius-md);outline:none;transition:border-color var(--mrd-transition-fast), box-shadow var(--mrd-transition-fast)}.mrd-field__history-editor-value.sc-mrd-field:focus{border-color:var(--mrd-color-primary);box-shadow:var(--mrd-shadow-focus)}.mrd-field__history-editor-until.sc-mrd-field{flex:0 0 10rem;height:var(--mrd-input-height);padding:0 var(--mrd-space-3);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);color:var(--mrd-color-neutral-800);background-color:var(--mrd-color-white);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius-md);outline:none;transition:border-color var(--mrd-transition-fast), box-shadow var(--mrd-transition-fast)}.mrd-field__history-editor-until.sc-mrd-field:focus{border-color:var(--mrd-color-primary);box-shadow:var(--mrd-shadow-focus)}.mrd-field__history-editor-remove.sc-mrd-field{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;background:transparent;border:none;border-radius:var(--mrd-border-radius-sm);color:var(--mrd-color-neutral-400);cursor:pointer;transition:color var(--mrd-transition-fast), background-color var(--mrd-transition-fast)}.mrd-field__history-editor-remove.sc-mrd-field:hover{color:var(--mrd-color-danger);background-color:var(--mrd-color-danger-light)}.mrd-field__history-editor-remove.sc-mrd-field svg.sc-mrd-field{width:1rem;height:1rem}.mrd-field__history-editor-add.sc-mrd-field{align-self:flex-start;padding:var(--mrd-space-1) var(--mrd-space-3);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-xs);font-weight:var(--mrd-font-weight-medium);color:var(--mrd-color-primary);background:transparent;border:var(--mrd-border-width) solid var(--mrd-color-primary);border-radius:var(--mrd-border-radius-md);cursor:pointer;transition:background-color var(--mrd-transition-fast), color var(--mrd-transition-fast)}.mrd-field__history-editor-add.sc-mrd-field:hover{background-color:var(--mrd-color-primary-light)}`;
|
|
7
|
+
|
|
8
|
+
const MrdField = class {
|
|
9
|
+
constructor(hostRef) {
|
|
10
|
+
registerInstance(this, hostRef);
|
|
11
|
+
this.mrdChange = createEvent(this, "mrdChange", 7);
|
|
12
|
+
this.mrdBlur = createEvent(this, "mrdBlur", 7);
|
|
13
|
+
this.mrdSearch = createEvent(this, "mrdSearch", 7);
|
|
14
|
+
this.mrdFetchAll = createEvent(this, "mrdFetchAll", 7);
|
|
15
|
+
this.mrdUpload = createEvent(this, "mrdUpload", 7);
|
|
6
16
|
this.locale = navigator.language;
|
|
7
17
|
this.historyEntries = [];
|
|
8
18
|
this.currentValue = undefined;
|
|
@@ -171,177 +181,16 @@ export class MrdField {
|
|
|
171
181
|
const displayValue = this.getDisplayValue();
|
|
172
182
|
return (h(Host, null, h("div", { class: "mrd-field__inner" }, this.renderLeafField(displayValue), this.renderHistoryEditor())));
|
|
173
183
|
}
|
|
174
|
-
|
|
175
|
-
static get
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
return {
|
|
188
|
-
"item": {
|
|
189
|
-
"type": "unknown",
|
|
190
|
-
"mutable": false,
|
|
191
|
-
"complexType": {
|
|
192
|
-
"original": "ClientLayoutItem",
|
|
193
|
-
"resolved": "ClientLayoutItem",
|
|
194
|
-
"references": {
|
|
195
|
-
"ClientLayoutItem": {
|
|
196
|
-
"location": "import",
|
|
197
|
-
"path": "../../types",
|
|
198
|
-
"id": "src/types/index.ts::ClientLayoutItem",
|
|
199
|
-
"referenceLocation": "ClientLayoutItem"
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
},
|
|
203
|
-
"required": true,
|
|
204
|
-
"optional": false,
|
|
205
|
-
"docs": {
|
|
206
|
-
"tags": [],
|
|
207
|
-
"text": ""
|
|
208
|
-
},
|
|
209
|
-
"getter": false,
|
|
210
|
-
"setter": false
|
|
211
|
-
},
|
|
212
|
-
"locale": {
|
|
213
|
-
"type": "string",
|
|
214
|
-
"mutable": false,
|
|
215
|
-
"complexType": {
|
|
216
|
-
"original": "string",
|
|
217
|
-
"resolved": "string",
|
|
218
|
-
"references": {}
|
|
219
|
-
},
|
|
220
|
-
"required": false,
|
|
221
|
-
"optional": false,
|
|
222
|
-
"docs": {
|
|
223
|
-
"tags": [],
|
|
224
|
-
"text": ""
|
|
225
|
-
},
|
|
226
|
-
"getter": false,
|
|
227
|
-
"setter": false,
|
|
228
|
-
"reflect": false,
|
|
229
|
-
"attribute": "locale",
|
|
230
|
-
"defaultValue": "navigator.language"
|
|
231
|
-
},
|
|
232
|
-
"value": {
|
|
233
|
-
"type": "unknown",
|
|
234
|
-
"mutable": false,
|
|
235
|
-
"complexType": {
|
|
236
|
-
"original": "unknown",
|
|
237
|
-
"resolved": "unknown",
|
|
238
|
-
"references": {}
|
|
239
|
-
},
|
|
240
|
-
"required": false,
|
|
241
|
-
"optional": false,
|
|
242
|
-
"docs": {
|
|
243
|
-
"tags": [],
|
|
244
|
-
"text": ""
|
|
245
|
-
},
|
|
246
|
-
"getter": false,
|
|
247
|
-
"setter": false
|
|
248
|
-
}
|
|
249
|
-
};
|
|
250
|
-
}
|
|
251
|
-
static get states() {
|
|
252
|
-
return {
|
|
253
|
-
"historyEntries": {},
|
|
254
|
-
"currentValue": {}
|
|
255
|
-
};
|
|
256
|
-
}
|
|
257
|
-
static get events() {
|
|
258
|
-
return [{
|
|
259
|
-
"method": "mrdChange",
|
|
260
|
-
"name": "mrdChange",
|
|
261
|
-
"bubbles": true,
|
|
262
|
-
"cancelable": true,
|
|
263
|
-
"composed": true,
|
|
264
|
-
"docs": {
|
|
265
|
-
"tags": [],
|
|
266
|
-
"text": ""
|
|
267
|
-
},
|
|
268
|
-
"complexType": {
|
|
269
|
-
"original": "{ name: string; value: unknown }",
|
|
270
|
-
"resolved": "{ name: string; value: unknown; }",
|
|
271
|
-
"references": {}
|
|
272
|
-
}
|
|
273
|
-
}, {
|
|
274
|
-
"method": "mrdBlur",
|
|
275
|
-
"name": "mrdBlur",
|
|
276
|
-
"bubbles": true,
|
|
277
|
-
"cancelable": true,
|
|
278
|
-
"composed": true,
|
|
279
|
-
"docs": {
|
|
280
|
-
"tags": [],
|
|
281
|
-
"text": ""
|
|
282
|
-
},
|
|
283
|
-
"complexType": {
|
|
284
|
-
"original": "{ name: string; value: unknown }",
|
|
285
|
-
"resolved": "{ name: string; value: unknown; }",
|
|
286
|
-
"references": {}
|
|
287
|
-
}
|
|
288
|
-
}, {
|
|
289
|
-
"method": "mrdSearch",
|
|
290
|
-
"name": "mrdSearch",
|
|
291
|
-
"bubbles": true,
|
|
292
|
-
"cancelable": true,
|
|
293
|
-
"composed": true,
|
|
294
|
-
"docs": {
|
|
295
|
-
"tags": [],
|
|
296
|
-
"text": ""
|
|
297
|
-
},
|
|
298
|
-
"complexType": {
|
|
299
|
-
"original": "{ name: string; query: string; relatedClass: string }",
|
|
300
|
-
"resolved": "{ name: string; query: string; relatedClass: string; }",
|
|
301
|
-
"references": {}
|
|
302
|
-
}
|
|
303
|
-
}, {
|
|
304
|
-
"method": "mrdFetchAll",
|
|
305
|
-
"name": "mrdFetchAll",
|
|
306
|
-
"bubbles": true,
|
|
307
|
-
"cancelable": true,
|
|
308
|
-
"composed": true,
|
|
309
|
-
"docs": {
|
|
310
|
-
"tags": [],
|
|
311
|
-
"text": ""
|
|
312
|
-
},
|
|
313
|
-
"complexType": {
|
|
314
|
-
"original": "{ name: string; relatedClass: string; mostSignificantClass?: string; commonRelation?: string; filter?: string; filterValue?: string }",
|
|
315
|
-
"resolved": "{ name: string; relatedClass: string; mostSignificantClass?: string | undefined; commonRelation?: string | undefined; filter?: string | undefined; filterValue?: string | undefined; }",
|
|
316
|
-
"references": {}
|
|
317
|
-
}
|
|
318
|
-
}, {
|
|
319
|
-
"method": "mrdUpload",
|
|
320
|
-
"name": "mrdUpload",
|
|
321
|
-
"bubbles": true,
|
|
322
|
-
"cancelable": true,
|
|
323
|
-
"composed": true,
|
|
324
|
-
"docs": {
|
|
325
|
-
"tags": [],
|
|
326
|
-
"text": ""
|
|
327
|
-
},
|
|
328
|
-
"complexType": {
|
|
329
|
-
"original": "{ name: string; file: File }",
|
|
330
|
-
"resolved": "{ name: string; file: File; }",
|
|
331
|
-
"references": {
|
|
332
|
-
"File": {
|
|
333
|
-
"location": "global",
|
|
334
|
-
"id": "global::File"
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
}];
|
|
339
|
-
}
|
|
340
|
-
static get elementRef() { return "el"; }
|
|
341
|
-
static get watchers() {
|
|
342
|
-
return [{
|
|
343
|
-
"propName": "value",
|
|
344
|
-
"methodName": "valueChanged"
|
|
345
|
-
}];
|
|
346
|
-
}
|
|
347
|
-
}
|
|
184
|
+
get el() { return getElement(this); }
|
|
185
|
+
static get watchers() { return {
|
|
186
|
+
"value": [{
|
|
187
|
+
"valueChanged": 0
|
|
188
|
+
}]
|
|
189
|
+
}; }
|
|
190
|
+
};
|
|
191
|
+
MrdField.style = mrdFieldScss();
|
|
192
|
+
|
|
193
|
+
export { MrdField as mrd_field };
|
|
194
|
+
//# sourceMappingURL=mrd-field.entry.esm.js.map
|
|
195
|
+
|
|
196
|
+
//# sourceMappingURL=mrd-field.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"mrd-field.entry.js","mappings":"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","names":[],"sources":["src/components/mrd-field/mrd-field.scss?tag=mrd-field&encapsulation=scoped","src/components/mrd-field/mrd-field.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.mrd-field__inner {\n display: block;\n width: 100%;\n}\n\n.mrd-field__history-editor {\n margin-top: var(--mrd-space-2);\n display: flex;\n flex-direction: column;\n gap: var(--mrd-space-1);\n}\n\n.mrd-field__history-editor-label {\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-font-size-xs);\n font-weight: var(--mrd-font-weight-medium);\n color: var(--mrd-color-neutral-500);\n}\n\n.mrd-field__history-editor-row {\n display: flex;\n align-items: center;\n gap: var(--mrd-space-2);\n}\n\n.mrd-field__history-editor-sep {\n flex-shrink: 0;\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-field__history-editor-value {\n flex: 1 1 0;\n min-width: 0;\n height: var(--mrd-input-height);\n padding: 0 var(--mrd-space-3);\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-font-size-sm);\n color: var(--mrd-color-neutral-800);\n background-color: var(--mrd-color-white);\n border: var(--mrd-border-width) solid var(--mrd-border-color);\n border-radius: var(--mrd-border-radius-md);\n outline: none;\n transition: border-color var(--mrd-transition-fast), box-shadow var(--mrd-transition-fast);\n}\n\n.mrd-field__history-editor-value:focus {\n border-color: var(--mrd-color-primary);\n box-shadow: var(--mrd-shadow-focus);\n}\n\n.mrd-field__history-editor-until {\n flex: 0 0 10rem;\n height: var(--mrd-input-height);\n padding: 0 var(--mrd-space-3);\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-font-size-sm);\n color: var(--mrd-color-neutral-800);\n background-color: var(--mrd-color-white);\n border: var(--mrd-border-width) solid var(--mrd-border-color);\n border-radius: var(--mrd-border-radius-md);\n outline: none;\n transition: border-color var(--mrd-transition-fast), box-shadow var(--mrd-transition-fast);\n}\n\n.mrd-field__history-editor-until:focus {\n border-color: var(--mrd-color-primary);\n box-shadow: var(--mrd-shadow-focus);\n}\n\n.mrd-field__history-editor-remove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 2rem;\n height: 2rem;\n padding: 0;\n background: transparent;\n border: none;\n border-radius: var(--mrd-border-radius-sm);\n color: var(--mrd-color-neutral-400);\n cursor: pointer;\n transition: color var(--mrd-transition-fast), background-color var(--mrd-transition-fast);\n}\n\n.mrd-field__history-editor-remove:hover {\n color: var(--mrd-color-danger);\n background-color: var(--mrd-color-danger-light);\n}\n\n.mrd-field__history-editor-remove svg {\n width: 1rem;\n height: 1rem;\n}\n\n.mrd-field__history-editor-add {\n align-self: flex-start;\n padding: var(--mrd-space-1) var(--mrd-space-3);\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-font-size-xs);\n font-weight: var(--mrd-font-weight-medium);\n color: var(--mrd-color-primary);\n background: transparent;\n border: var(--mrd-border-width) solid var(--mrd-color-primary);\n border-radius: var(--mrd-border-radius-md);\n cursor: pointer;\n transition: background-color var(--mrd-transition-fast), color var(--mrd-transition-fast);\n}\n\n.mrd-field__history-editor-add:hover {\n background-color: var(--mrd-color-primary-light);\n}\n","import { Component, Host, h, Prop, Event, EventEmitter, State, Element, Watch } from '@stencil/core';\nimport {\n ClientLayoutItem,\n ClientLayoutItemType,\n ClientLayoutItemFieldDataType,\n ClientLayoutItemRelationDisplayType,\n} from '../../types';\nimport { t } from '../../utils/i18n';\n\n@Component({\n tag: 'mrd-field',\n styleUrl: 'mrd-field.scss',\n scoped: true,\n})\nexport class MrdField {\n @Element() el!: HTMLElement;\n\n @Prop() item!: ClientLayoutItem;\n @Prop() locale: string = navigator.language;\n @Prop() value: unknown;\n\n @Event() mrdChange!: EventEmitter<{ name: string; value: unknown }>;\n @Event() mrdBlur!: EventEmitter<{ name: string; value: unknown }>;\n @Event() mrdSearch!: EventEmitter<{ name: string; query: string; relatedClass: string }>;\n @Event() mrdFetchAll!: EventEmitter<{ name: string; relatedClass: string; mostSignificantClass?: string; commonRelation?: string; filter?: string; filterValue?: string }>;\n @Event() mrdUpload!: EventEmitter<{ name: string; file: File }>;\n\n @State() historyEntries: Array<{ value: string; until: string }> = [];\n @State() currentValue: unknown = undefined;\n\n componentWillLoad() {\n this.initHistoryState();\n }\n\n @Watch('value')\n valueChanged() {\n this.initHistoryState();\n }\n\n private initHistoryState() {\n const hist = this.item?.historyEnabled ?? this.item?.field?.historyEnabled;\n if (!hist) return;\n const raw = this.value as any;\n this.currentValue = raw?.current ?? raw;\n this.historyEntries = Array.isArray(raw?.history) ? [...raw.history] : [];\n }\n\n private handleChange = (e: CustomEvent<{ name: string; value: unknown }>) => {\n e.stopPropagation();\n const hist = this.item?.historyEnabled ?? this.item?.field?.historyEnabled;\n if (hist) {\n this.currentValue = e.detail.value;\n this.mrdChange.emit({\n name: e.detail.name,\n value: { current: e.detail.value, history: this.historyEntries },\n });\n } else {\n this.mrdChange.emit(e.detail);\n }\n };\n\n private handleBlur = (e: CustomEvent<{ name: string; value: unknown }>) => {\n e.stopPropagation();\n const hist = this.item?.historyEnabled ?? this.item?.field?.historyEnabled;\n if (hist) {\n this.mrdBlur.emit({\n name: e.detail.name,\n value: { current: this.currentValue, history: this.historyEntries },\n });\n } else {\n this.mrdBlur.emit(e.detail);\n }\n };\n\n private handleSearch = (e: CustomEvent<{ name: string; query: string; relatedClass: string }>) => {\n e.stopPropagation();\n this.mrdSearch.emit(e.detail);\n };\n\n private handleFetchAll = (e: CustomEvent<{ name: string; relatedClass: string; mostSignificantClass?: string; commonRelation?: string; filter?: string; filterValue?: string }>) => {\n e.stopPropagation();\n this.mrdFetchAll.emit(e.detail);\n };\n\n private handleUpload = (e: CustomEvent<{ name: string; file: File }>) => {\n e.stopPropagation();\n this.mrdUpload.emit(e.detail);\n };\n\n private getDisplayValue(): unknown {\n const hist = this.item?.historyEnabled ?? this.item?.field?.historyEnabled;\n if (hist && this.value !== null && typeof this.value === 'object' && 'current' in (this.value as object)) {\n return (this.value as any).current;\n }\n return this.value;\n }\n\n private historyValueInputType(): string {\n switch (this.item?.dataType) {\n case ClientLayoutItemFieldDataType.DATE: return 'date';\n case ClientLayoutItemFieldDataType.DATETIME: return 'datetime-local';\n case ClientLayoutItemFieldDataType.TIME: return 'time';\n case ClientLayoutItemFieldDataType.INTEGER:\n case ClientLayoutItemFieldDataType.DECIMAL:\n case ClientLayoutItemFieldDataType.PERCENTAGE: return 'number';\n case ClientLayoutItemFieldDataType.EMAIL: return 'email';\n default: return 'text';\n }\n }\n\n private emitHistoryChange(entries: Array<{ value: string; until: string }>) {\n this.historyEntries = entries;\n this.mrdChange.emit({\n name: this.item.name!,\n value: { current: this.currentValue, history: entries },\n });\n }\n\n private renderHistoryEditor(): any {\n const hist = this.item?.historyEnabled ?? this.item?.field?.historyEnabled;\n if (!hist) return null;\n const { locale } = this;\n const valueType = this.historyValueInputType();\n\n const updateEntry = (i: number, field: 'value' | 'until', val: string) => {\n const updated = this.historyEntries.map((e, idx) => idx === i ? { ...e, [field]: val } : e);\n this.emitHistoryChange(updated);\n };\n\n const removeEntry = (i: number) => {\n this.emitHistoryChange(this.historyEntries.filter((_, idx) => idx !== i));\n };\n\n const addEntry = () => {\n this.emitHistoryChange([...this.historyEntries, { value: '', until: '' }]);\n };\n\n return (\n <div class=\"mrd-field__history-editor\">\n {this.historyEntries.length > 0 && (\n <span class=\"mrd-field__history-editor-label\">{t('history_badge_tooltip', locale)}</span>\n )}\n {this.historyEntries.map((entry, i) => (\n <div key={String(i)} class=\"mrd-field__history-editor-row\">\n <input\n class=\"mrd-field__history-editor-value\"\n type={valueType}\n value={entry.value}\n onInput={(e) => updateEntry(i, 'value', (e.target as HTMLInputElement).value)}\n />\n <span class=\"mrd-field__history-editor-sep\">{t('history_until', locale)}</span>\n <input\n class=\"mrd-field__history-editor-until\"\n type=\"date\"\n value={entry.until}\n onInput={(e) => updateEntry(i, 'until', (e.target as HTMLInputElement).value)}\n />\n <button\n type=\"button\"\n class=\"mrd-field__history-editor-remove\"\n onClick={() => removeEntry(i)}\n aria-label={t('remove', locale)}\n >\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M8.75 1A2.75 2.75 0 006 3.75v.443c-.795.077-1.584.176-2.365.298a.75.75 0 10.23 1.482l.149-.022.841 10.518A2.75 2.75 0 007.596 19h4.807a2.75 2.75 0 002.742-2.53l.841-10.52.149.023a.75.75 0 00.23-1.482A41.03 41.03 0 0014 4.193V3.75A2.75 2.75 0 0011.25 1h-2.5zM10 4c.84 0 1.673.025 2.5.075V3.75c0-.69-.56-1.25-1.25-1.25h-2.5c-.69 0-1.25.56-1.25 1.25v.325C8.327 4.025 9.16 4 10 4zM8.58 7.72a.75.75 0 00-1.5.06l.3 7.5a.75.75 0 101.5-.06l-.3-7.5zm4.34.06a.75.75 0 10-1.5-.06l-.3 7.5a.75.75 0 101.5.06l.3-7.5z\" clip-rule=\"evenodd\"/>\n </svg>\n </button>\n </div>\n ))}\n <button type=\"button\" class=\"mrd-field__history-editor-add\" onClick={addEntry}>\n + {t('add', locale)}\n </button>\n </div>\n );\n }\n\n private renderLeafField(displayValue: unknown): any {\n const { item, locale } = this;\n const commonProps = {\n name: item.name,\n label: item.label,\n required: item.required,\n disabled: item.disabled ?? false,\n locale,\n onMrdChange: this.handleChange,\n onMrdBlur: this.handleBlur,\n };\n\n switch (item.dataType) {\n case ClientLayoutItemFieldDataType.TEXT:\n return (\n <mrd-text-field\n {...commonProps}\n value={(displayValue as string) ?? ''}\n placeholder={item.placeholder ?? ''}\n />\n );\n\n case ClientLayoutItemFieldDataType.TEXTBLOCK:\n return (\n <mrd-textarea-field\n {...commonProps}\n value={(displayValue as string) ?? ''}\n placeholder={item.placeholder ?? ''}\n />\n );\n\n case ClientLayoutItemFieldDataType.INTEGER:\n case ClientLayoutItemFieldDataType.DECIMAL:\n case ClientLayoutItemFieldDataType.PERCENTAGE:\n return (\n <mrd-number-field\n {...commonProps}\n value={(displayValue as number) ?? null}\n dataType={item.dataType}\n decimalPrecision={item.decimalPrecision ?? 2}\n placeholder={item.placeholder ?? ''}\n />\n );\n\n case ClientLayoutItemFieldDataType.CURRENCY:\n return (\n <mrd-currency-field\n {...commonProps}\n value={(displayValue as { amount: number | null; currency: string }) ?? { amount: null, currency: item.currencyCode ?? 'EUR' }}\n />\n );\n\n case ClientLayoutItemFieldDataType.BOOLEAN:\n return (\n <mrd-boolean-field\n {...commonProps}\n value={(displayValue as boolean) ?? false}\n />\n );\n\n case ClientLayoutItemFieldDataType.DATE:\n return (\n <mrd-date-field\n {...commonProps}\n value={(displayValue as string) ?? ''}\n />\n );\n\n case ClientLayoutItemFieldDataType.DATETIME:\n return (\n <mrd-datetime-field\n {...commonProps}\n value={(displayValue as string) ?? ''}\n />\n );\n\n case ClientLayoutItemFieldDataType.TIME:\n return (\n <mrd-time-field\n {...commonProps}\n value={(displayValue as string) ?? ''}\n />\n );\n\n case ClientLayoutItemFieldDataType.EMAIL:\n return (\n <mrd-email-field\n {...commonProps}\n value={(displayValue as string) ?? ''}\n placeholder={item.placeholder ?? ''}\n />\n );\n\n case ClientLayoutItemFieldDataType.HYPERLINK:\n return (\n <mrd-hyperlink-field\n {...commonProps}\n value={(displayValue as any) ?? ''}\n placeholder={item.placeholder ?? ''}\n />\n );\n\n case ClientLayoutItemFieldDataType.LIST:\n return (\n <mrd-list-field\n {...commonProps}\n value={(displayValue as string | string[]) ?? ''}\n multiple={item.multiple ?? false}\n listItems={item.listItems ?? []}\n />\n );\n\n case ClientLayoutItemFieldDataType.FILE:\n return (\n <mrd-file-field\n {...commonProps}\n value={displayValue}\n accept={item.accept ?? ''}\n maxSize={item.maxSize ?? 0}\n onMrdUpload={this.handleUpload}\n />\n );\n\n case ClientLayoutItemFieldDataType.IMAGE:\n return (\n <mrd-image-field\n {...commonProps}\n value={displayValue}\n accept={item.accept ?? 'image/*'}\n maxSize={item.maxSize ?? 0}\n onMrdUpload={this.handleUpload}\n />\n );\n\n case ClientLayoutItemFieldDataType.LONGTEXT:\n return (\n <mrd-longtext-field\n {...commonProps}\n value={(displayValue as string) ?? ''}\n placeholder={item.placeholder ?? ''}\n />\n );\n\n case ClientLayoutItemFieldDataType.SECRET:\n return (\n <mrd-secret-field\n {...commonProps}\n value={(displayValue as string) ?? ''}\n placeholder={item.placeholder ?? ''}\n />\n );\n\n default:\n return null;\n }\n }\n\n render() {\n const { item, locale, value } = this;\n\n if (item.type === ClientLayoutItemType.RELATION) {\n return (\n <Host>\n <mrd-relation-field\n name={item.name}\n label={item.label}\n required={item.required}\n disabled={item.disabled ?? false}\n locale={locale}\n relatedClass={item.relatedClass}\n mostSignificantClass={item.mostSignificantClass ?? ''}\n displayType={item.displayType ?? ClientLayoutItemRelationDisplayType.SEARCH}\n editBehavior={item.editBehavior ?? null}\n commonRelation={item.commonRelation}\n multiple={item.multiple ?? false}\n dropdownValues={item.dropdownValues ?? []}\n value={value as any}\n onMrdChange={this.handleChange}\n onMrdBlur={this.handleBlur}\n onMrdSearch={this.handleSearch}\n onMrdFetchAll={this.handleFetchAll}\n />\n </Host>\n );\n }\n\n if (item.type !== ClientLayoutItemType.FIELD) {\n return <Host></Host>;\n }\n\n const displayValue = this.getDisplayValue();\n return (\n <Host>\n <div class=\"mrd-field__inner\">\n {this.renderLeafField(displayValue)}\n {this.renderHistoryEditor()}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,108 @@
|
|
|
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 mrdFileFieldScss = () => `.sc-mrd-file-field-h{display:block}.mrd-file-field.sc-mrd-file-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-file-field__label.sc-mrd-file-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-file-field__label--required.sc-mrd-file-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-file-field__zone.sc-mrd-file-field{display:flex;align-items:center;justify-content:center;padding:var(--mrd-space-6);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-file-field__zone.sc-mrd-file-field:hover{border-color:var(--mrd-color-primary);background-color:var(--mrd-color-primary-light)}.mrd-file-field__zone--dragging.sc-mrd-file-field{border-color:var(--mrd-color-primary);background-color:var(--mrd-color-primary-light)}.mrd-file-field__zone--error.sc-mrd-file-field{border-color:var(--mrd-border-color-error)}.mrd-file-field__zone--disabled.sc-mrd-file-field{opacity:0.6;cursor:not-allowed}.mrd-file-field__zone--disabled.sc-mrd-file-field:hover{border-color:var(--mrd-border-color);background-color:var(--mrd-color-neutral-50)}.mrd-file-field__input.sc-mrd-file-field{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;pointer-events:none}.mrd-file-field__prompt.sc-mrd-file-field{display:flex;flex-direction:column;align-items:center;gap:var(--mrd-space-2);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);color:var(--mrd-color-neutral-500);text-align:center}.mrd-file-field__upload-icon.sc-mrd-file-field{width:32px;height:32px;color:var(--mrd-color-neutral-400)}.mrd-file-field__browse.sc-mrd-file-field{color:var(--mrd-color-primary);font-weight:var(--mrd-font-weight-medium);text-decoration:underline}.mrd-file-field__selected.sc-mrd-file-field{display:flex;align-items:center;gap:var(--mrd-space-2);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);color:var(--mrd-color-neutral-700)}.mrd-file-field__icon.sc-mrd-file-field{width:20px;height:20px;color:var(--mrd-color-primary);flex-shrink:0}.mrd-file-field__filename.sc-mrd-file-field{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.mrd-file-field__clear.sc-mrd-file-field{background:none;border:none;cursor:pointer;color:var(--mrd-color-neutral-400);font-size:var(--mrd-font-size-sm);padding:var(--mrd-space-1);border-radius:var(--mrd-border-radius-sm);line-height:1}.mrd-file-field__clear.sc-mrd-file-field:hover{color:var(--mrd-color-danger);background-color:var(--mrd-color-danger-light)}.mrd-file-field__spinner.sc-mrd-file-field{display:inline-block;flex-shrink:0;width:18px;height:18px;border:2px solid var(--mrd-color-neutral-300);border-top-color:var(--mrd-color-primary);border-radius:50%;animation:mrd-file-spin 0.6s linear infinite}@keyframes mrd-file-spin{to{transform:rotate(360deg)}}.mrd-file-field__error.sc-mrd-file-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}`;
|
|
5
|
+
|
|
6
|
+
const MrdFileField = 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 = '';
|
|
19
|
+
this.maxSize = 0; // bytes, 0 = no limit
|
|
20
|
+
this.fileName = '';
|
|
21
|
+
this.isDragging = false;
|
|
22
|
+
this.uploading = false;
|
|
23
|
+
this.error = '';
|
|
24
|
+
this.handleInputChange = (e) => {
|
|
25
|
+
var _a;
|
|
26
|
+
const files = e.target.files;
|
|
27
|
+
this.handleFile((_a = files === null || files === void 0 ? void 0 : files[0]) !== null && _a !== void 0 ? _a : null);
|
|
28
|
+
};
|
|
29
|
+
this.handleDragOver = (e) => {
|
|
30
|
+
e.preventDefault();
|
|
31
|
+
this.isDragging = true;
|
|
32
|
+
};
|
|
33
|
+
this.handleDragLeave = () => {
|
|
34
|
+
this.isDragging = false;
|
|
35
|
+
};
|
|
36
|
+
this.handleDrop = (e) => {
|
|
37
|
+
var _a, _b, _c;
|
|
38
|
+
e.preventDefault();
|
|
39
|
+
this.isDragging = false;
|
|
40
|
+
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;
|
|
41
|
+
this.handleFile(file);
|
|
42
|
+
};
|
|
43
|
+
this.handleZoneClick = () => {
|
|
44
|
+
var _a;
|
|
45
|
+
if (!this.disabled && !this.uploading) {
|
|
46
|
+
(_a = this.fileInputRef) === null || _a === void 0 ? void 0 : _a.click();
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
this.handleClear = (e) => {
|
|
50
|
+
e.stopPropagation();
|
|
51
|
+
this.fileName = '';
|
|
52
|
+
this.error = '';
|
|
53
|
+
this.uploading = false;
|
|
54
|
+
if (this.fileInputRef)
|
|
55
|
+
this.fileInputRef.value = '';
|
|
56
|
+
this.mrdChange.emit({ name: this.name, value: null });
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/** When the host provides a URI back via setFieldValue, the upload is done. */
|
|
60
|
+
valueChanged(newVal) {
|
|
61
|
+
if (typeof newVal === 'string' && newVal) {
|
|
62
|
+
this.uploading = false;
|
|
63
|
+
}
|
|
64
|
+
else if (!newVal) {
|
|
65
|
+
this.uploading = false;
|
|
66
|
+
this.fileName = '';
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
handleFile(file) {
|
|
70
|
+
if (!file) {
|
|
71
|
+
this.fileName = '';
|
|
72
|
+
this.uploading = false;
|
|
73
|
+
this.mrdChange.emit({ name: this.name, value: null });
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
if (this.maxSize > 0 && file.size > this.maxSize) {
|
|
77
|
+
this.error = t('file_too_large', this.locale);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
this.error = '';
|
|
81
|
+
this.fileName = file.name;
|
|
82
|
+
this.uploading = true;
|
|
83
|
+
this.mrdChange.emit({ name: this.name, value: file });
|
|
84
|
+
this.mrdUpload.emit({ name: this.name, file });
|
|
85
|
+
}
|
|
86
|
+
render() {
|
|
87
|
+
const hasFile = this.uploading || (typeof this.value === 'string' && this.value) || this.fileName;
|
|
88
|
+
const hasError = !!this.error;
|
|
89
|
+
const zoneClass = [
|
|
90
|
+
'mrd-file-field__zone',
|
|
91
|
+
this.isDragging ? 'mrd-file-field__zone--dragging' : '',
|
|
92
|
+
hasError ? 'mrd-file-field__zone--error' : '',
|
|
93
|
+
this.disabled || this.uploading ? 'mrd-file-field__zone--disabled' : '',
|
|
94
|
+
].filter(Boolean).join(' ');
|
|
95
|
+
return (h(Host, { key: '2090102df8169226c1e66f87cbc837296e4b55d4' }, h("div", { key: '7a37a09df1bfa2eaf28ed04c806ad5f7c0337bb0', class: "mrd-file-field" }, this.label && (h("label", { key: '8f1fcb8adbb66b792be902c7c548e50db99b6a53', class: `mrd-file-field__label${this.required ? ' mrd-file-field__label--required' : ''}` }, this.label)), h("div", { key: '66d992298f537b24d69ce3ead3dd229f6d124f3d', class: zoneClass, onClick: this.handleZoneClick, onDragOver: this.handleDragOver, onDragLeave: this.handleDragLeave, onDrop: this.handleDrop }, h("input", { key: '95ba6560e71ee08c6b2526802727b29a18cdc454', ref: el => (this.fileInputRef = el), class: "mrd-file-field__input", type: "file", name: this.name, accept: this.accept, disabled: this.disabled || this.uploading, required: this.required && !hasFile, onChange: this.handleInputChange }), hasFile ? (h("div", { class: "mrd-file-field__selected" }, this.uploading ? (h("span", { class: "mrd-file-field__spinner", "aria-label": t('loading', this.locale) })) : (h("svg", { class: "mrd-file-field__icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2" }, h("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), h("polyline", { points: "14 2 14 8 20 8" }))), h("span", { class: "mrd-file-field__filename" }, this.fileName), !this.uploading && (h("button", { class: "mrd-file-field__clear", type: "button", onClick: this.handleClear, "aria-label": t('clear', this.locale) }, "\u2715")))) : (h("div", { class: "mrd-file-field__prompt" }, h("svg", { class: "mrd-file-field__upload-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2" }, h("polyline", { points: "16 16 12 12 8 16" }), h("line", { x1: "12", y1: "12", x2: "12", y2: "21" }), h("path", { d: "M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3" })), h("span", null, t('drop_file_here', this.locale), ' ', h("span", { class: "mrd-file-field__browse" }, t('browse', this.locale)))))), hasError && h("span", { key: 'a6020e63bebb01e31a980a903f81badd486585aa', class: "mrd-file-field__error" }, this.error))));
|
|
96
|
+
}
|
|
97
|
+
static get watchers() { return {
|
|
98
|
+
"value": [{
|
|
99
|
+
"valueChanged": 0
|
|
100
|
+
}]
|
|
101
|
+
}; }
|
|
102
|
+
};
|
|
103
|
+
MrdFileField.style = mrdFileFieldScss();
|
|
104
|
+
|
|
105
|
+
export { MrdFileField as mrd_file_field };
|
|
106
|
+
//# sourceMappingURL=mrd-file-field.entry.esm.js.map
|
|
107
|
+
|
|
108
|
+
//# sourceMappingURL=mrd-file-field.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"mrd-file-field.entry.js","mappings":";;;AAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,ksGAAksG,CAAC;;MCQttG,YAAY,GAAA,MAAA;AALzB,IAAA,WAAA,CAAA,OAAA,EAAA;;;;;AAMU,QAAA,IAAA,CAAA,IAAI,GAAW,EAAE;AACjB,QAAA,IAAA,CAAA,KAAK,GAAW,EAAE;AAClB,QAAA,IAAA,CAAA,KAAK,GAAY,IAAI;AACrB,QAAA,IAAA,CAAA,QAAQ,GAAY,KAAK;AACzB,QAAA,IAAA,CAAA,QAAQ,GAAY,KAAK;AACzB,QAAA,IAAA,CAAA,MAAM,GAAW,SAAS,CAAC,QAAQ;AACnC,QAAA,IAAA,CAAA,MAAM,GAAW,EAAE;AACnB,QAAA,IAAA,CAAA,OAAO,GAAW,CAAC,CAAC;AAEnB,QAAA,IAAA,CAAA,QAAQ,GAAW,EAAE;AACrB,QAAA,IAAA,CAAA,UAAU,GAAY,KAAK;AAC3B,QAAA,IAAA,CAAA,SAAS,GAAY,KAAK;AAC1B,QAAA,IAAA,CAAA,KAAK,GAAW,EAAE;AAuCnB,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAC,CAAQ,KAAI;;AACvC,YAAA,MAAM,KAAK,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK;AAClD,YAAA,IAAI,CAAC,UAAU,CAAC,CAAA,EAAA,GAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAG,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,CAAC;AACrC,SAAC;AAEO,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,CAAY,KAAI;YACxC,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACxB,SAAC;AAEO,QAAA,IAAA,CAAA,eAAe,GAAG,MAAK;AAC7B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACzB,SAAC;AAEO,QAAA,IAAA,CAAA,UAAU,GAAG,CAAC,CAAY,KAAI;;YACpC,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,MAAM,IAAI,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,CAAC,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI;AAC/C,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACvB,SAAC;AAEO,QAAA,IAAA,CAAA,eAAe,GAAG,MAAK;;YAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACrC,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,EAAE;;AAE9B,SAAC;AAEO,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,CAAa,KAAI;YACtC,CAAC,CAAC,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;AAClB,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;YACtB,IAAI,IAAI,CAAC,YAAY;AAAE,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE;AACnD,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACvD,SAAC;AAyEF;;AAtIC,IAAA,YAAY,CAAC,MAAe,EAAA;AAC1B,QAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,EAAE;AACxC,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;;aACjB,IAAI,CAAC,MAAM,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;;AAId,IAAA,UAAU,CAAC,IAAiB,EAAA;QAClC,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACrD;;AAEF,QAAA,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;YAChD,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC;YAC7C;;AAEF,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACrD,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;;IAuChD,MAAM,GAAA;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,KAAK,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ;AACjG,QAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK;AAC7B,QAAA,MAAM,SAAS,GAAG;YAChB,sBAAsB;YACtB,IAAI,CAAC,UAAU,GAAG,gCAAgC,GAAG,EAAE;AACvD,YAAA,QAAQ,GAAG,6BAA6B,GAAG,EAAE;AAC7C,YAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,GAAG,gCAAgC,GAAG,EAAE;SACxE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAE3B,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,gBAAgB,EAAA,EACxB,IAAI,CAAC,KAAK,KACT,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAO,KAAK,EAAE,CAAA,qBAAA,EAAwB,IAAI,CAAC,QAAQ,GAAG,kCAAkC,GAAG,EAAE,CAAA,CAAE,EAAA,EAC5F,IAAI,CAAC,KAAK,CACL,CACT,EACD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,IAAI,CAAC,eAAe,EAC7B,UAAU,EAAE,IAAI,CAAC,cAAc,EAC/B,WAAW,EAAE,IAAI,CAAC,eAAe,EACjC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAA,EAEvB,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,YAAY,GAAG,EAAsB,CAAC,EACvD,KAAK,EAAC,uBAAuB,EAC7B,IAAI,EAAC,MAAM,EACX,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,EACnC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAA,CAChC,EACD,OAAO,IACN,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,0BAA0B,EAAA,EAClC,IAAI,CAAC,SAAS,IACb,YAAM,KAAK,EAAC,yBAAyB,EAAA,YAAA,EAAa,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAA,CAAI,KAE/E,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,sBAAsB,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,kBAAc,GAAG,EAAA,EACtG,CAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,4DAA4D,EAAA,CAAE,EACtE,CAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,gBAAgB,EAAA,CAAE,CAC/B,CACP,EACD,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,0BAA0B,IAAE,IAAI,CAAC,QAAQ,CAAQ,EAC5D,CAAC,IAAI,CAAC,SAAS,KACd,cAAQ,KAAK,EAAC,uBAAuB,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAA,YAAA,EAAc,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAA,EAAA,QAAA,CAEzG,CACV,CACG,KAEN,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,wBAAwB,EAAA,EACjC,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,6BAA6B,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,kBAAc,GAAG,EAAA,EAC7G,CAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,kBAAkB,EAAA,CAAE,EACrC,CAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAA,CAAE,EACvC,CAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,oDAAoD,EAAA,CAAE,CAC1D,EACN,CAAA,CAAA,MAAA,EAAA,IAAA,EACG,CAAC,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EACtC,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,wBAAwB,EAAA,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAQ,CACjE,CACH,CACP,CACG,EACL,QAAQ,IAAI,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,uBAAuB,EAAA,EAAE,IAAI,CAAC,KAAK,CAAQ,CAChE,CACD;;;;;;;;;;;;","names":[],"sources":["src/components/mrd-file-field/mrd-file-field.scss?tag=mrd-file-field&encapsulation=scoped","src/components/mrd-file-field/mrd-file-field.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.mrd-file-field {\n display: flex;\n flex-direction: column;\n gap: var(--mrd-space-1);\n width: 100%;\n}\n\n.mrd-file-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-file-field__label--required::after {\n content: ' *';\n color: var(--mrd-color-danger);\n}\n\n.mrd-file-field__zone {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--mrd-space-6);\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-file-field__zone:hover {\n border-color: var(--mrd-color-primary);\n background-color: var(--mrd-color-primary-light);\n}\n\n.mrd-file-field__zone--dragging {\n border-color: var(--mrd-color-primary);\n background-color: var(--mrd-color-primary-light);\n}\n\n.mrd-file-field__zone--error {\n border-color: var(--mrd-border-color-error);\n}\n\n.mrd-file-field__zone--disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.mrd-file-field__zone--disabled:hover {\n border-color: var(--mrd-border-color);\n background-color: var(--mrd-color-neutral-50);\n}\n\n.mrd-file-field__input {\n position: absolute;\n inset: 0;\n opacity: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n pointer-events: none;\n}\n\n.mrd-file-field__prompt {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--mrd-space-2);\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-file-field__upload-icon {\n width: 32px;\n height: 32px;\n color: var(--mrd-color-neutral-400);\n}\n\n.mrd-file-field__browse {\n color: var(--mrd-color-primary);\n font-weight: var(--mrd-font-weight-medium);\n text-decoration: underline;\n}\n\n.mrd-file-field__selected {\n display: flex;\n align-items: center;\n gap: var(--mrd-space-2);\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-font-size-sm);\n color: var(--mrd-color-neutral-700);\n}\n\n.mrd-file-field__icon {\n width: 20px;\n height: 20px;\n color: var(--mrd-color-primary);\n flex-shrink: 0;\n}\n\n.mrd-file-field__filename {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 200px;\n}\n\n.mrd-file-field__clear {\n background: none;\n border: none;\n cursor: pointer;\n color: var(--mrd-color-neutral-400);\n font-size: var(--mrd-font-size-sm);\n padding: var(--mrd-space-1);\n border-radius: var(--mrd-border-radius-sm);\n line-height: 1;\n}\n\n.mrd-file-field__clear:hover {\n color: var(--mrd-color-danger);\n background-color: var(--mrd-color-danger-light);\n}\n\n.mrd-file-field__spinner {\n display: inline-block;\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n border: 2px solid var(--mrd-color-neutral-300);\n border-top-color: var(--mrd-color-primary);\n border-radius: 50%;\n animation: mrd-file-spin 0.6s linear infinite;\n}\n\n@keyframes mrd-file-spin { to { transform: rotate(360deg); } }\n\n.mrd-file-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-file-field',\n styleUrl: 'mrd-file-field.scss',\n scoped: true,\n})\nexport class MrdFileField {\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 = '';\n @Prop() maxSize: number = 0; // bytes, 0 = no limit\n\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 a file 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.fileName = '';\n }\n }\n\n private handleFile(file: File | null) {\n if (!file) {\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 this.error = '';\n this.fileName = file.name;\n this.uploading = true;\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.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 hasFile = this.uploading || (typeof this.value === 'string' && this.value) || this.fileName;\n const hasError = !!this.error;\n const zoneClass = [\n 'mrd-file-field__zone',\n this.isDragging ? 'mrd-file-field__zone--dragging' : '',\n hasError ? 'mrd-file-field__zone--error' : '',\n this.disabled || this.uploading ? 'mrd-file-field__zone--disabled' : '',\n ].filter(Boolean).join(' ');\n\n return (\n <Host>\n <div class=\"mrd-file-field\">\n {this.label && (\n <label class={`mrd-file-field__label${this.required ? ' mrd-file-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-file-field__input\"\n type=\"file\"\n name={this.name}\n accept={this.accept}\n disabled={this.disabled || this.uploading}\n required={this.required && !hasFile}\n onChange={this.handleInputChange}\n />\n {hasFile ? (\n <div class=\"mrd-file-field__selected\">\n {this.uploading ? (\n <span class=\"mrd-file-field__spinner\" aria-label={t('loading', this.locale)} />\n ) : (\n <svg class=\"mrd-file-field__icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"/>\n <polyline points=\"14 2 14 8 20 8\"/>\n </svg>\n )}\n <span class=\"mrd-file-field__filename\">{this.fileName}</span>\n {!this.uploading && (\n <button class=\"mrd-file-field__clear\" type=\"button\" onClick={this.handleClear} aria-label={t('clear', this.locale)}>\n ✕\n </button>\n )}\n </div>\n ) : (\n <div class=\"mrd-file-field__prompt\">\n <svg class=\"mrd-file-field__upload-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <polyline points=\"16 16 12 12 8 16\"/>\n <line x1=\"12\" y1=\"12\" x2=\"12\" y2=\"21\"/>\n <path d=\"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3\"/>\n </svg>\n <span>\n {t('drop_file_here', this.locale)}{' '}\n <span class=\"mrd-file-field__browse\">{t('browse', this.locale)}</span>\n </span>\n </div>\n )}\n </div>\n {hasError && <span class=\"mrd-file-field__error\">{this.error}</span>}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|