@mmlogic/components 0.3.3 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/cjs/index.cjs.js +1 -0
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/mosterdcomponents.cjs.js +1 -1
  4. package/dist/cjs/{mrd-boolean-field_19.cjs.entry.js → mrd-boolean-field_20.cjs.entry.js} +181 -36
  5. package/dist/collection/collection-manifest.json +1 -0
  6. package/dist/collection/components/mrd-field/mrd-field.js +14 -2
  7. package/dist/collection/components/mrd-hyperlink-field/mrd-hyperlink-field.js +79 -18
  8. package/dist/collection/components/mrd-hyperlink-field/mrd-hyperlink-field.scss +22 -0
  9. package/dist/collection/components/mrd-image-field/mrd-image-field.js +1 -1
  10. package/dist/collection/components/mrd-layout-section/mrd-layout-section.js +15 -12
  11. package/dist/collection/components/mrd-layout-section/mrd-layout-section.scss +9 -0
  12. package/dist/collection/components/mrd-longtext-field/mrd-longtext-field.js +1 -1
  13. package/dist/collection/components/mrd-number-field/mrd-number-field.js +2 -2
  14. package/dist/collection/components/mrd-secret-field/mrd-secret-field.js +229 -0
  15. package/dist/collection/components/mrd-secret-field/mrd-secret-field.scss +73 -0
  16. package/dist/collection/components/mrd-table/mrd-table.js +46 -6
  17. package/dist/collection/components/mrd-table/mrd-table.scss +36 -0
  18. package/dist/collection/components/mrd-text-field/mrd-text-field.js +1 -1
  19. package/dist/collection/components/mrd-textarea-field/mrd-textarea-field.js +1 -1
  20. package/dist/collection/components/mrd-time-field/mrd-time-field.js +1 -1
  21. package/dist/collection/dev/api.js +1 -1
  22. package/dist/collection/dev/example-data.js +12 -2
  23. package/dist/collection/types/client-layout.js +1 -0
  24. package/dist/collection/utils/cell-renderer.js +2 -0
  25. package/dist/collection/utils/i18n.js +8 -0
  26. package/dist/collection/utils/validation.js +6 -2
  27. package/dist/components/client-layout.js +1 -1
  28. package/dist/components/i18n.js +1 -1
  29. package/dist/components/mrd-field2.js +1 -1
  30. package/dist/components/mrd-form.js +1 -1
  31. package/dist/components/mrd-hyperlink-field2.js +1 -1
  32. package/dist/components/mrd-image-field2.js +1 -1
  33. package/dist/components/mrd-layout-section.js +1 -1
  34. package/dist/components/mrd-longtext-field2.js +1 -1
  35. package/dist/components/mrd-number-field2.js +1 -1
  36. package/dist/components/mrd-secret-field.d.ts +11 -0
  37. package/dist/components/mrd-secret-field.js +1 -0
  38. package/dist/components/mrd-secret-field2.js +1 -0
  39. package/dist/components/mrd-table2.js +1 -1
  40. package/dist/components/mrd-text-field2.js +1 -1
  41. package/dist/components/mrd-textarea-field2.js +1 -1
  42. package/dist/components/mrd-time-field2.js +1 -1
  43. package/dist/components/validation.js +1 -1
  44. package/dist/esm/index.js +1 -0
  45. package/dist/esm/loader.js +1 -1
  46. package/dist/esm/mosterdcomponents.js +1 -1
  47. package/dist/esm/{mrd-boolean-field_19.entry.js → mrd-boolean-field_20.entry.js} +181 -37
  48. package/dist/mosterdcomponents/index.esm.js +1 -1
  49. package/dist/mosterdcomponents/mosterdcomponents.esm.js +1 -1
  50. package/dist/mosterdcomponents/p-c9839596.entry.js +1 -0
  51. package/dist/types/components/mrd-hyperlink-field/mrd-hyperlink-field.d.ts +12 -4
  52. package/dist/types/components/mrd-layout-section/mrd-layout-section.d.ts +1 -0
  53. package/dist/types/components/mrd-secret-field/mrd-secret-field.d.ts +22 -0
  54. package/dist/types/components/mrd-table/mrd-table.d.ts +6 -0
  55. package/dist/types/components.d.ts +109 -13
  56. package/dist/types/types/client-layout.d.ts +12 -1
  57. package/dist/types/utils/cell-renderer.d.ts +1 -0
  58. package/package.json +1 -1
  59. package/dist/mosterdcomponents/p-74d100dd.entry.js +0 -1
@@ -0,0 +1,73 @@
1
+ :host {
2
+ display: block;
3
+ }
4
+
5
+ .mrd-secret-field {
6
+ display: flex;
7
+ flex-direction: column;
8
+ gap: var(--mrd-space-1);
9
+ width: 100%;
10
+ }
11
+
12
+ .mrd-secret-field__label {
13
+ display: block;
14
+ font-family: var(--mrd-font-family);
15
+ font-size: var(--mrd-label-font-size);
16
+ font-weight: var(--mrd-label-font-weight);
17
+ color: var(--mrd-label-color);
18
+ }
19
+
20
+ .mrd-secret-field__label--required::after {
21
+ content: ' *';
22
+ color: var(--mrd-color-danger);
23
+ }
24
+
25
+ .mrd-secret-field__input {
26
+ display: block;
27
+ width: 100%;
28
+ height: var(--mrd-input-height);
29
+ padding: var(--mrd-input-padding-y) var(--mrd-input-padding-x);
30
+ font-family: var(--mrd-font-family);
31
+ font-size: var(--mrd-font-size-base);
32
+ color: var(--mrd-input-color);
33
+ background-color: var(--mrd-input-bg);
34
+ border: var(--mrd-border-width) solid var(--mrd-border-color);
35
+ border-radius: var(--mrd-border-radius);
36
+ transition: border-color var(--mrd-transition), box-shadow var(--mrd-transition);
37
+ outline: none;
38
+ appearance: none;
39
+ box-sizing: border-box;
40
+ }
41
+
42
+ .mrd-secret-field__input::placeholder {
43
+ color: var(--mrd-input-placeholder-color);
44
+ }
45
+
46
+ .mrd-secret-field__input:focus {
47
+ border-color: var(--mrd-border-color-focus);
48
+ box-shadow: var(--mrd-shadow-focus);
49
+ }
50
+
51
+ .mrd-secret-field__input--error {
52
+ border-color: var(--mrd-border-color-error);
53
+ }
54
+
55
+ .mrd-secret-field__input--error:focus {
56
+ box-shadow: var(--mrd-shadow-focus-error);
57
+ }
58
+
59
+ .mrd-secret-field__error {
60
+ font-family: var(--mrd-font-family);
61
+ font-size: var(--mrd-error-font-size);
62
+ color: var(--mrd-error-color);
63
+ }
64
+
65
+ .mrd-secret-field__masked {
66
+ display: block;
67
+ font-family: var(--mrd-font-family);
68
+ font-size: var(--mrd-font-size-base);
69
+ color: var(--mrd-label-color);
70
+ letter-spacing: 0.15em;
71
+ user-select: none;
72
+ pointer-events: none;
73
+ }
@@ -21,6 +21,7 @@ export class MrdTable {
21
21
  this.debounceTimer = null;
22
22
  this.outsideClickHandler = null;
23
23
  this.keydownHandler = null;
24
+ this.createPickerClickHandler = null;
24
25
  // ── Props ──────────────────────────────────────────────────────────────────
25
26
  /** The VIEW or RELATED_VIEW layout item. Contains view config, dataClass, fromClass, actions etc. */
26
27
  this.item = null;
@@ -57,6 +58,8 @@ export class MrdTable {
57
58
  this.pendingFilter = null;
58
59
  /** Viewport-relative position for the filter popup. */
59
60
  this.popupPos = { top: 0, left: 0 };
61
+ /** Whether the create-type picker dropdown is open. */
62
+ this.createPickerOpen = false;
60
63
  /** Current scroll offset of the scroll container — drives pagination footer. */
61
64
  this.scrollTop = 0;
62
65
  /** Full text shown in the TEXTBLOCK expand modal (null = closed). */
@@ -193,6 +196,10 @@ export class MrdTable {
193
196
  document.removeEventListener('click', this.outsideClickHandler);
194
197
  this.outsideClickHandler = null;
195
198
  }
199
+ if (this.createPickerClickHandler) {
200
+ document.removeEventListener('click', this.createPickerClickHandler);
201
+ this.createPickerClickHandler = null;
202
+ }
196
203
  if (this.keydownHandler) {
197
204
  document.removeEventListener('keydown', this.keydownHandler);
198
205
  this.keydownHandler = null;
@@ -248,7 +255,7 @@ export class MrdTable {
248
255
  }
249
256
  return `/excel/${(_d = v.dataClass) !== null && _d !== void 0 ? _d : ''}`;
250
257
  }
251
- buildActionDetail(action) {
258
+ buildActionDetail(action, basicType) {
252
259
  var _a, _b, _c;
253
260
  if (action === 'export') {
254
261
  return { action, path: this.buildExcelPath(), qs: this.buildQueryParams(0) };
@@ -258,7 +265,7 @@ export class MrdTable {
258
265
  const parentPath = ((_a = this.item) === null || _a === void 0 ? void 0 : _a.type) === 'RELATED_VIEW'
259
266
  ? `/${(_b = v === null || v === void 0 ? void 0 : v.fromClass) !== null && _b !== void 0 ? _b : ''}/${this.parentId}`
260
267
  : null;
261
- return { action, dataClass: (_c = v === null || v === void 0 ? void 0 : v.dataClass) !== null && _c !== void 0 ? _c : '', parentPath };
268
+ return Object.assign({ action, dataClass: (_c = v === null || v === void 0 ? void 0 : v.dataClass) !== null && _c !== void 0 ? _c : '', parentPath }, (basicType ? { basicType } : {}));
262
269
  }
263
270
  return { action };
264
271
  }
@@ -356,6 +363,29 @@ export class MrdTable {
356
363
  return acc;
357
364
  }, []);
358
365
  }
366
+ toggleCreatePicker() {
367
+ if (this.createPickerOpen) {
368
+ this.closeCreatePicker();
369
+ }
370
+ else {
371
+ this.createPickerOpen = true;
372
+ if (this.createPickerClickHandler)
373
+ document.removeEventListener('click', this.createPickerClickHandler);
374
+ this.createPickerClickHandler = (ev) => {
375
+ const wrap = this.el.querySelector('.mrd-table__create-picker-wrap');
376
+ if (wrap && !wrap.contains(ev.target))
377
+ this.closeCreatePicker();
378
+ };
379
+ document.addEventListener('click', this.createPickerClickHandler);
380
+ }
381
+ }
382
+ closeCreatePicker() {
383
+ this.createPickerOpen = false;
384
+ if (this.createPickerClickHandler) {
385
+ document.removeEventListener('click', this.createPickerClickHandler);
386
+ this.createPickerClickHandler = null;
387
+ }
388
+ }
359
389
  colName(col) {
360
390
  var _a;
361
391
  return (_a = col.name) !== null && _a !== void 0 ? _a : '';
@@ -779,8 +809,17 @@ export class MrdTable {
779
809
  if (!isNaN(idx) && idx !== this.activeViewIdx)
780
810
  this.handleViewSwitch(idx);
781
811
  } }, allViews.map((v, i) => (h("option", { value: String(i), selected: i === this.activeViewIdx }, v.label)))))), hasActions && (h("div", { class: "mrd-table__toolbar-right" }, actions.map(a => {
782
- var _a;
783
- return (h("button", { class: `mrd-table__action mrd-table__action--${(_a = a.variant) !== null && _a !== void 0 ? _a : 'secondary'}`, disabled: a.disabled, onClick: () => this.mrdAction.emit(this.buildActionDetail(a.action)) }, a.icon
812
+ var _a, _b, _c;
813
+ const createTypes = a.action === 'create' ? (_a = this.item) === null || _a === void 0 ? void 0 : _a.createTypes : null;
814
+ if (createTypes === null || createTypes === void 0 ? void 0 : createTypes.length) {
815
+ return (h("div", { class: "mrd-table__create-picker-wrap", key: `action-${a.action}` }, h("button", { class: `mrd-table__action mrd-table__action--${(_b = a.variant) !== null && _b !== void 0 ? _b : 'secondary'}`, onClick: () => this.toggleCreatePicker() }, a.icon
816
+ ? h("svg", { class: "mrd-table__action-icon", "aria-hidden": "true" }, h("use", { href: a.icon }))
817
+ : a.label, h("span", { class: "mrd-table__action-tooltip" }, a.label)), this.createPickerOpen && (h("div", { class: "mrd-table__create-picker" }, createTypes.map(ct => (h("button", { key: ct.type, class: "mrd-table__create-picker-item", onClick: () => {
818
+ this.mrdAction.emit(this.buildActionDetail('create', ct.type));
819
+ this.closeCreatePicker();
820
+ } }, ct.label)))))));
821
+ }
822
+ return (h("button", { key: `action-${a.action}`, class: `mrd-table__action mrd-table__action--${(_c = a.variant) !== null && _c !== void 0 ? _c : 'secondary'}`, disabled: a.disabled, onClick: () => this.mrdAction.emit(this.buildActionDetail(a.action)) }, a.icon
784
823
  ? h("svg", { class: "mrd-table__action-icon", "aria-hidden": "true" }, h("use", { href: a.icon }))
785
824
  : a.label, h("span", { class: "mrd-table__action-tooltip" }, a.label)));
786
825
  })))));
@@ -1222,6 +1261,7 @@ export class MrdTable {
1222
1261
  "openFilterCol": {},
1223
1262
  "pendingFilter": {},
1224
1263
  "popupPos": {},
1264
+ "createPickerOpen": {},
1225
1265
  "scrollTop": {},
1226
1266
  "textblockModal": {},
1227
1267
  "jsonModal": {},
@@ -1277,8 +1317,8 @@ export class MrdTable {
1277
1317
  "text": "Fired when a toolbar action button is clicked.\nFor 'export': includes `path` (relative excel path) and `qs` (current sort+filter params).\nFor 'create': includes `dataClass` (target type) and `parentPath` (e.g. /buyers/123 for RELATED_VIEW)."
1278
1318
  },
1279
1319
  "complexType": {
1280
- "original": "{ action: string; path?: string; qs?: string; dataClass?: string; parentPath?: string | null }",
1281
- "resolved": "{ action: string; path?: string | undefined; qs?: string | undefined; dataClass?: string | undefined; parentPath?: string | null | undefined; }",
1320
+ "original": "{ action: string; path?: string; qs?: string; dataClass?: string; parentPath?: string | null; basicType?: string }",
1321
+ "resolved": "{ action: string; path?: string | undefined; qs?: string | undefined; dataClass?: string | undefined; parentPath?: string | null | undefined; basicType?: string | undefined; }",
1282
1322
  "references": {}
1283
1323
  }
1284
1324
  }, {
@@ -273,6 +273,42 @@
273
273
  display: block;
274
274
  }
275
275
 
276
+ /* ── Create-type picker ──────────────────────────────────────────────────── */
277
+ .mrd-table__create-picker-wrap {
278
+ position: relative;
279
+ }
280
+
281
+ .mrd-table__create-picker {
282
+ position: absolute;
283
+ right: 0;
284
+ top: calc(100% + 4px);
285
+ background: var(--mrd-color-white, #fff);
286
+ border: 1px solid var(--mrd-border-color);
287
+ border-radius: var(--mrd-border-radius);
288
+ box-shadow: var(--mrd-shadow-md, 0 4px 12px rgba(0, 0, 0, 0.12));
289
+ z-index: 10;
290
+ min-width: 10rem;
291
+ padding: var(--mrd-space-1) 0;
292
+ }
293
+
294
+ .mrd-table__create-picker-item {
295
+ display: block;
296
+ width: 100%;
297
+ text-align: left;
298
+ padding: var(--mrd-space-2) var(--mrd-space-3);
299
+ background: none;
300
+ border: none;
301
+ cursor: pointer;
302
+ font-size: var(--mrd-font-size-sm);
303
+ font-family: var(--mrd-font-family);
304
+ color: var(--mrd-color-neutral-800);
305
+ }
306
+
307
+ .mrd-table__create-picker-item:hover {
308
+ background: var(--mrd-color-neutral-50);
309
+ color: var(--mrd-color-neutral-900);
310
+ }
311
+
276
312
  /* ── Filter toggle active state ────────────────────────────────────────── */
277
313
  .mrd-table__filter-toggle--active {
278
314
  background: var(--mrd-color-primary);
@@ -28,7 +28,7 @@ export class MrdTextField {
28
28
  }
29
29
  render() {
30
30
  const hasError = !!this.error;
31
- return (h(Host, { key: 'b1ea3dce848a4ad41b60599804c69a35ccd35570' }, h("div", { key: '2e327824843fe02c5851beae96d52f9eb9ee67ce', class: "mrd-text-field" }, this.label && (h("label", { key: '99026834b30a53d7cf715c59099895211ff6ddb7', class: `mrd-text-field__label${this.required ? ' mrd-text-field__label--required' : ''}` }, this.label)), h("input", { key: '0e56c9115b2016ad3cb3ce8e734297354c70c7e2', class: `mrd-text-field__input${hasError ? ' mrd-text-field__input--error' : ''}`, type: "text", name: this.name, value: this.value, placeholder: this.placeholder, required: this.required, disabled: this.disabled, onInput: this.handleInput, onBlur: this.handleBlur }), hasError && h("span", { key: '0430c32b083484747962147e167b11ed7a1597cc', class: "mrd-text-field__error" }, this.error))));
31
+ return (h(Host, { key: 'fd4e1f389cb452ab80a1e1c7295d884ca935999e' }, h("div", { key: '7b7bde7a18fcd9b8d5779daab88ddabb45dd8692', class: "mrd-text-field" }, this.label && (h("label", { key: '8e2ad4053473cfad4eae4c4634b863ac5ef32fea', class: `mrd-text-field__label${this.required ? ' mrd-text-field__label--required' : ''}` }, this.label)), h("input", { key: 'd32712a6dc2aee4691bc4a580d5ca2ad81e0ff9f', class: `mrd-text-field__input${hasError ? ' mrd-text-field__input--error' : ''}`, type: "text", name: this.name, value: this.value, placeholder: this.placeholder, required: this.required, disabled: this.disabled, onInput: this.handleInput, onBlur: this.handleBlur }), hasError && h("span", { key: '31585dbf82020c81834e1eeada5cd9907a5ead56', class: "mrd-text-field__error" }, this.error))));
32
32
  }
33
33
  static get is() { return "mrd-text-field"; }
34
34
  static get encapsulation() { return "scoped"; }
@@ -66,7 +66,7 @@ export class MrdTextareaField {
66
66
  }
67
67
  }
68
68
  render() {
69
- return (h(Host, { key: '7bc05fae8d48c43b56bde892537930552605727a' }, h("div", { key: '3416e9c5fdf6362602715de8427c5d2ccfa52925', class: "mrd-textarea-field" }, this.label && (h("label", { key: 'c6bd35076738b1a700b53092fb0754250c73e085', class: `mrd-textarea-field__label${this.required ? ' mrd-textarea-field__label--required' : ''}` }, this.label)), h("div", { key: 'ed0483a25a62399d1ac8ee14bc59e3eb44b91814', class: `mrd-textarea-field__container${this.error ? ' mrd-textarea-field__container--error' : ''}` }, h("div", { key: 'd17c6997602b81e8b7f66f1e5cfb12b4836cb892', class: "mrd-textarea-field__editor" })), this.error && h("span", { key: '30a068872e73ca78781c9a5e1fac2c9e3ce30765', class: "mrd-textarea-field__error" }, this.error))));
69
+ return (h(Host, { key: 'e1fd819c598f01e3986946357ec18d608f2c7adc' }, h("div", { key: '20c28e54e61429655b2d4f297bd84e183ad7e971', class: "mrd-textarea-field" }, this.label && (h("label", { key: 'fa46a20badc35c931563600f24a32e0a8c8c07ad', class: `mrd-textarea-field__label${this.required ? ' mrd-textarea-field__label--required' : ''}` }, this.label)), h("div", { key: 'ee928eca0a1b85401b346b7fae8adbe9214a7664', class: `mrd-textarea-field__container${this.error ? ' mrd-textarea-field__container--error' : ''}` }, h("div", { key: '89b00f3c526623c47f0aff7ad862f70dfdc2fe15', class: "mrd-textarea-field__editor" })), this.error && h("span", { key: '458cf8fddee36ddbc384ce4d25765e5aacd3c9d5', class: "mrd-textarea-field__error" }, this.error))));
70
70
  }
71
71
  static get is() { return "mrd-textarea-field"; }
72
72
  static get encapsulation() { return "scoped"; }
@@ -27,7 +27,7 @@ export class MrdTimeField {
27
27
  }
28
28
  render() {
29
29
  const hasError = !!this.error;
30
- return (h(Host, { key: '6a6828d9c5224ddfcc5d17124523037512f4970c' }, h("div", { key: '468d5295170cefc93b1e2d49b7189c8366d306b7', class: "mrd-time-field" }, this.label && (h("label", { key: '52ea233ea0a7e8563145c326c4ef9d27557b6dc8', class: `mrd-time-field__label${this.required ? ' mrd-time-field__label--required' : ''}` }, this.label)), h("input", { key: 'e9f0f75517638bf4e4ead95bf69530b5c395f8bc', class: `mrd-time-field__input${hasError ? ' mrd-time-field__input--error' : ''}`, type: "time", name: this.name, value: this.value, required: this.required, disabled: this.disabled, onChange: this.handleChange, onBlur: this.handleBlur }), hasError && h("span", { key: '4f734c3373444df4f686a7ae6bde84a2ee39d9f4', class: "mrd-time-field__error" }, this.error))));
30
+ return (h(Host, { key: 'c507996709437d8982f9175b286e25598997002d' }, h("div", { key: 'd5f1b7f14d26cae8298cd40491898b39044158f8', class: "mrd-time-field" }, this.label && (h("label", { key: '10976e18df09240e00b045314c4ddd3845d4bfdc', class: `mrd-time-field__label${this.required ? ' mrd-time-field__label--required' : ''}` }, this.label)), h("input", { key: 'bc557333f107a371a7005f9b56dd0395190e63d7', class: `mrd-time-field__input${hasError ? ' mrd-time-field__input--error' : ''}`, type: "time", name: this.name, value: this.value, required: this.required, disabled: this.disabled, onChange: this.handleChange, onBlur: this.handleBlur }), hasError && h("span", { key: 'b5a09c2aa063fa9e2fc3aba411e86b57d879c408', class: "mrd-time-field__error" }, this.error))));
31
31
  }
32
32
  static get is() { return "mrd-time-field"; }
33
33
  static get encapsulation() { return "scoped"; }
@@ -29,7 +29,7 @@ async function apiFetchTenants(token) {
29
29
  }
30
30
 
31
31
  async function apiFetchTypes(token, tenantCode) {
32
- const { ok, status, body } = await apiRequest('GET', `/metadata/${tenantCode}/types?type=BASIC`, token);
32
+ const { ok, status, body } = await apiRequest('GET', `/metadata/${tenantCode}/types`, token);
33
33
  if (!ok) throw new Error(`${status}: ${typeof body === 'string' ? body : JSON.stringify(body)}`);
34
34
  return body; // array of { name, pluralName, type, ... }
35
35
  }
@@ -60,7 +60,8 @@ window.EXAMPLE_LAYOUT = {
60
60
  label: "Settings",
61
61
  items: [
62
62
  { type: "FIELD", name: "isPublic", label: "Public project", dataType: "BOOLEAN", required: false },
63
- { type: "FIELD", name: "isArchived", label: "Archived", dataType: "BOOLEAN", required: false }
63
+ { type: "FIELD", name: "isArchived", label: "Archived", dataType: "BOOLEAN", required: false },
64
+ { type: "FIELD", name: "apiToken", label: "API Token", dataType: "SECRET", required: false, placeholder: "Paste token here" }
64
65
  ]
65
66
  },
66
67
  {
@@ -232,7 +233,14 @@ window.EXAMPLE_COMPANY_METADATA = {
232
233
  label: 'Share classes',
233
234
  tabPage: true,
234
235
  items: [
235
- { type: 'RELATED_VIEW', label: 'Share classes', name: 'view1', relatedClass: 'shareClasses', showTitle: false },
236
+ {
237
+ type: 'RELATED_VIEW', label: 'Share classes', name: 'view1', relatedClass: 'shareClasses', showTitle: false,
238
+ actions: ['NEW', 'EXPORT'],
239
+ createTypes: [
240
+ { type: 'ordinaryShares', label: 'Ordinary shares' },
241
+ { type: 'preferenceShares', label: 'Preference shares' },
242
+ ],
243
+ },
236
244
  ],
237
245
  },
238
246
  ],
@@ -363,6 +371,7 @@ window.EXAMPLE_FIELD_TYPES_ITEMS = [
363
371
  { type: 'FIELD', label: 'Textblock', name: 'fTextblock', dataType: 'TEXTBLOCK', required: false },
364
372
  { type: 'FIELD', label: 'Longtext', name: 'fLongtext', dataType: 'LONGTEXT', required: false },
365
373
  { type: 'FIELD', label: 'JSON', name: 'fJson', dataType: 'JSON', required: false },
374
+ { type: 'FIELD', label: 'Secret', name: 'fSecret', dataType: 'SECRET', required: false },
366
375
  ];
367
376
 
368
377
  window.EXAMPLE_FIELD_TYPES_DATA = {
@@ -387,6 +396,7 @@ window.EXAMPLE_FIELD_TYPES_DATA = {
387
396
  fTextblock: '<p>Dit is een <strong>opgemaakte</strong> tekst met <em>html</em>-inhoud. Geschikt voor langere beschrijvingen met opmaak.</p>',
388
397
  fLongtext: 'Dit is een langere stuk platte tekst zonder opmaak.\nHet kan meerdere regels bevatten en wordt getoond in een pre-blok zodat witruimte bewaard blijft.',
389
398
  fJson: { id: 1, status: 'active', tags: ['alpha', 'beta'], meta: { created: '2024-01-01', valid: true } },
399
+ fSecret: 'sk-live-abc123xyz',
390
400
  _links: {
391
401
  fRelation: { href: '/data/demo/entities/person-1', name: 'A. Jansen' },
392
402
  },
@@ -47,6 +47,7 @@ export var ClientLayoutItemFieldDataType;
47
47
  ClientLayoutItemFieldDataType["IMAGE"] = "IMAGE";
48
48
  ClientLayoutItemFieldDataType["LONGTEXT"] = "LONGTEXT";
49
49
  ClientLayoutItemFieldDataType["JSON"] = "JSON";
50
+ ClientLayoutItemFieldDataType["SECRET"] = "SECRET";
50
51
  })(ClientLayoutItemFieldDataType || (ClientLayoutItemFieldDataType = {}));
51
52
  // ─── Relation display / edit behaviour ───────────────────────────────────────
52
53
  export var ClientLayoutItemRelationDisplayType;
@@ -70,6 +70,8 @@ export class CellRenderer {
70
70
  const str = typeof value === 'object' ? JSON.stringify(value) : String(value);
71
71
  return str.replace(/[\r\n]+/g, ' ').trim();
72
72
  }
73
+ case 'SECRET':
74
+ return value ? '••••••••' : '';
73
75
  default:
74
76
  return String(value);
75
77
  }
@@ -60,6 +60,7 @@ const translations = {
60
60
  // history badge
61
61
  history_until: 'tot',
62
62
  history_badge_tooltip: 'Vorige waarden',
63
+ hyperlink_name: 'Linktekst (optioneel)',
63
64
  },
64
65
  en: {
65
66
  required: 'This field is required',
@@ -122,6 +123,7 @@ const translations = {
122
123
  // history badge
123
124
  history_until: 'until',
124
125
  history_badge_tooltip: 'Previous values',
126
+ hyperlink_name: 'Link text (optional)',
125
127
  },
126
128
  ar: {
127
129
  required: 'هذا الحقل مطلوب',
@@ -184,6 +186,7 @@ const translations = {
184
186
  // history badge
185
187
  history_until: 'حتى',
186
188
  history_badge_tooltip: 'القيم السابقة',
189
+ hyperlink_name: 'نص الرابط (اختياري)',
187
190
  },
188
191
  fr: {
189
192
  required: 'Ce champ est obligatoire',
@@ -246,6 +249,7 @@ const translations = {
246
249
  // history badge
247
250
  history_until: "jusqu'au",
248
251
  history_badge_tooltip: 'Valeurs précédentes',
252
+ hyperlink_name: 'Texte du lien (optionnel)',
249
253
  },
250
254
  de: {
251
255
  required: 'Dieses Feld ist erforderlich',
@@ -308,6 +312,7 @@ const translations = {
308
312
  // history badge
309
313
  history_until: 'bis',
310
314
  history_badge_tooltip: 'Vorherige Werte',
315
+ hyperlink_name: 'Linktext (optional)',
311
316
  },
312
317
  es: {
313
318
  required: 'Este campo es obligatorio',
@@ -370,6 +375,7 @@ const translations = {
370
375
  // history badge
371
376
  history_until: 'hasta',
372
377
  history_badge_tooltip: 'Valores anteriores',
378
+ hyperlink_name: 'Texto del enlace (opcional)',
373
379
  },
374
380
  it: {
375
381
  required: 'Questo campo è obbligatorio',
@@ -432,6 +438,7 @@ const translations = {
432
438
  // history badge
433
439
  history_until: 'fino a',
434
440
  history_badge_tooltip: 'Valori precedenti',
441
+ hyperlink_name: 'Testo del collegamento (opzionale)',
435
442
  },
436
443
  uk: {
437
444
  required: "Це поле обов'язкове",
@@ -494,6 +501,7 @@ const translations = {
494
501
  // history badge
495
502
  history_until: 'до',
496
503
  history_badge_tooltip: 'Попередні значення',
504
+ hyperlink_name: "Текст посилання (необов'язково)",
497
505
  },
498
506
  };
499
507
  export function t(key, locale) {
@@ -7,6 +7,10 @@ export function validateRequired(value) {
7
7
  if (Array.isArray(value))
8
8
  return value.length > 0;
9
9
  if (typeof value === 'object') {
10
+ // HyperlinkValue check
11
+ const hv = value;
12
+ if ('href' in hv)
13
+ return typeof hv.href === 'string' && hv.href.trim().length > 0;
10
14
  // CurrencyValue check
11
15
  const cv = value;
12
16
  if ('amount' in cv)
@@ -23,8 +27,8 @@ export function validateUrl(value) {
23
27
  if (!value)
24
28
  return true;
25
29
  try {
26
- new URL(value);
27
- return true;
30
+ const url = new URL(value);
31
+ return url.protocol === 'http:' || url.protocol === 'https:';
28
32
  }
29
33
  catch (_a) {
30
34
  return false;
@@ -1 +1 @@
1
- var E,A,T,O,R;!function(E){E.OBJECT_FORM_DASHBOARD="OBJECT_FORM_DASHBOARD",E.CLASS_DASHBOARD="CLASS_DASHBOARD",E.GENERAL_DASHBOARD="GENERAL_DASHBOARD",E.NAVIGATION_PANE="NAVIGATION_PANE"}(E||(E={})),function(E){E.FIELD="FIELD",E.RELATION="RELATION",E.SECTION="SECTION",E.GROUP="GROUP",E.HEADER="HEADER",E.TEXT="TEXT",E.NAVIGATE="NAVIGATE",E.ACTION="ACTION",E.SEARCH="SEARCH",E.VIEW="VIEW",E.RELATED_VIEW="RELATED_VIEW",E.RELATED_OBJECT="RELATED_OBJECT"}(A||(A={})),function(E){E.TEXT="TEXT",E.TEXTBLOCK="TEXTBLOCK",E.INTEGER="INTEGER",E.DECIMAL="DECIMAL",E.PERCENTAGE="PERCENTAGE",E.CURRENCY="CURRENCY",E.BOOLEAN="BOOLEAN",E.DATE="DATE",E.DATETIME="DATETIME",E.TIME="TIME",E.EMAIL="EMAIL",E.HYPERLINK="HYPERLINK",E.LIST="LIST",E.FILE="FILE",E.IMAGE="IMAGE",E.LONGTEXT="LONGTEXT",E.JSON="JSON"}(T||(T={})),function(E){E.SEARCH="SEARCH",E.DROPDOWN="DROPDOWN",E.CHECKBOX="CHECKBOX"}(O||(O={})),function(E){E.SEARCH="SEARCH",E.DROPDOWN="DROPDOWN",E.CHECKBOX="CHECKBOX"}(R||(R={}));export{E as C,A as a,T as b,O as c,R as d}
1
+ var E,A,T,O,R;!function(E){E.OBJECT_FORM_DASHBOARD="OBJECT_FORM_DASHBOARD",E.CLASS_DASHBOARD="CLASS_DASHBOARD",E.GENERAL_DASHBOARD="GENERAL_DASHBOARD",E.NAVIGATION_PANE="NAVIGATION_PANE"}(E||(E={})),function(E){E.FIELD="FIELD",E.RELATION="RELATION",E.SECTION="SECTION",E.GROUP="GROUP",E.HEADER="HEADER",E.TEXT="TEXT",E.NAVIGATE="NAVIGATE",E.ACTION="ACTION",E.SEARCH="SEARCH",E.VIEW="VIEW",E.RELATED_VIEW="RELATED_VIEW",E.RELATED_OBJECT="RELATED_OBJECT"}(A||(A={})),function(E){E.TEXT="TEXT",E.TEXTBLOCK="TEXTBLOCK",E.INTEGER="INTEGER",E.DECIMAL="DECIMAL",E.PERCENTAGE="PERCENTAGE",E.CURRENCY="CURRENCY",E.BOOLEAN="BOOLEAN",E.DATE="DATE",E.DATETIME="DATETIME",E.TIME="TIME",E.EMAIL="EMAIL",E.HYPERLINK="HYPERLINK",E.LIST="LIST",E.FILE="FILE",E.IMAGE="IMAGE",E.LONGTEXT="LONGTEXT",E.JSON="JSON",E.SECRET="SECRET"}(T||(T={})),function(E){E.SEARCH="SEARCH",E.DROPDOWN="DROPDOWN",E.CHECKBOX="CHECKBOX"}(O||(O={})),function(E){E.SEARCH="SEARCH",E.DROPDOWN="DROPDOWN",E.CHECKBOX="CHECKBOX"}(R||(R={}));export{E as C,A as a,T as b,O as c,R as d}
@@ -1 +1 @@
1
- const e={nl:{required:"Dit veld is verplicht",select_placeholder:"Selecteer een optie",search_placeholder:"Zoeken...",upload_file:"Bestand uploaden",choose_file:"Bestand kiezen",clear:"Wissen",today:"Vandaag",invalid_email:"Voer een geldig e-mailadres in",invalid_url:"Voer een geldige URL in",invalid_number:"Voer een geldig getal in",drop_file_here:"Sleep bestand hierheen of",browse:"bladeren",file_too_large:"Bestand is te groot",search_results:"Zoekresultaten",no_results:"Geen resultaten gevonden",loading:"Laden...",submit:"Opslaan",cancel:"Annuleren",remove:"Verwijderen",add:"Toevoegen",yes:"Ja",no:"Nee",table_of:"van",download:"Downloaden",table_filter:"Filteren",table_filter_hide:"Filter verbergen",table_filter_active:"actief",table_filter_clear_all:"Alle filters wissen",table_new_record:"Nieuw record",table_export_excel:"Exporteer naar Excel",filter_sorting:"Sortering",filter_ascending:"Oplopend",filter_descending:"Aflopend",filter_section:"Filter",filter_apply:"Toepassen",filter_clear:"Wissen",filter_contains:"Bevat",filter_starts_with:"Begint met",filter_equals:"Gelijk aan",filter_has_value:"Heeft waarde",filter_is_empty:"Is leeg",filter_is_not_empty:"Is niet leeg",filter_exact:"Exact",filter_range:"Bereik",filter_from:"Van",filter_to:"Tot",filter_all:"Alle",filter_select_all:"Alles",filter_select_none:"Geen",filter_search_value:"Zoekwaarde...",filter_no_support:"Geen filtering beschikbaar voor dit veldtype.",textblock_show_more:"Meer tonen",close:"Sluiten",history_until:"tot",history_badge_tooltip:"Vorige waarden"},en:{required:"This field is required",select_placeholder:"Select an option",search_placeholder:"Search...",upload_file:"Upload file",choose_file:"Choose file",clear:"Clear",today:"Today",invalid_email:"Please enter a valid email address",invalid_url:"Please enter a valid URL",invalid_number:"Please enter a valid number",drop_file_here:"Drop file here or",browse:"browse",file_too_large:"File is too large",search_results:"Search results",no_results:"No results found",loading:"Loading...",submit:"Save",cancel:"Cancel",remove:"Remove",add:"Add",yes:"Yes",no:"No",table_of:"of",download:"Download",table_filter:"Filter",table_filter_hide:"Hide filter",table_filter_active:"active",table_filter_clear_all:"Clear all filters",table_new_record:"New record",table_export_excel:"Export to Excel",filter_sorting:"Sorting",filter_ascending:"Ascending",filter_descending:"Descending",filter_section:"Filter",filter_apply:"Apply",filter_clear:"Clear",filter_contains:"Contains",filter_starts_with:"Starts with",filter_equals:"Equals",filter_has_value:"Has value",filter_is_empty:"Is empty",filter_is_not_empty:"Is not empty",filter_exact:"Exact",filter_range:"Range",filter_from:"From",filter_to:"To",filter_all:"All",filter_select_all:"All",filter_select_none:"None",filter_search_value:"Search value...",filter_no_support:"Filtering is not available for this field type.",textblock_show_more:"Show more",close:"Close",history_until:"until",history_badge_tooltip:"Previous values"},ar:{required:"هذا الحقل مطلوب",select_placeholder:"اختر خياراً",search_placeholder:"بحث...",upload_file:"رفع ملف",choose_file:"اختر ملفاً",clear:"مسح",today:"اليوم",invalid_email:"يرجى إدخال عنوان بريد إلكتروني صحيح",invalid_url:"يرجى إدخال رابط صحيح",invalid_number:"يرجى إدخال رقم صحيح",drop_file_here:"اسحب الملف هنا أو",browse:"تصفح",file_too_large:"الملف كبير جداً",search_results:"نتائج البحث",no_results:"لم يتم العثور على نتائج",loading:"جار التحميل...",submit:"حفظ",cancel:"إلغاء",remove:"إزالة",add:"إضافة",yes:"نعم",no:"لا",table_of:"من أصل",download:"تنزيل",table_filter:"تصفية",table_filter_hide:"إخفاء التصفية",table_filter_active:"نشط",table_filter_clear_all:"مسح جميع الفلاتر",table_new_record:"سجل جديد",table_export_excel:"تصدير إلى Excel",filter_sorting:"الترتيب",filter_ascending:"تصاعدي",filter_descending:"تنازلي",filter_section:"تصفية",filter_apply:"تطبيق",filter_clear:"مسح",filter_contains:"يحتوي على",filter_starts_with:"يبدأ بـ",filter_equals:"يساوي",filter_has_value:"له قيمة",filter_is_empty:"فارغ",filter_is_not_empty:"ليس فارغاً",filter_exact:"دقيق",filter_range:"نطاق",filter_from:"من",filter_to:"إلى",filter_all:"الكل",filter_select_all:"الكل",filter_select_none:"لا شيء",filter_search_value:"قيمة البحث...",filter_no_support:"التصفية غير متاحة لهذا النوع من الحقول.",textblock_show_more:"عرض المزيد",close:"إغلاق",history_until:"حتى",history_badge_tooltip:"القيم السابقة"},fr:{required:"Ce champ est obligatoire",select_placeholder:"Sélectionner une option",search_placeholder:"Rechercher...",upload_file:"Télécharger un fichier",choose_file:"Choisir un fichier",clear:"Effacer",today:"Aujourd'hui",invalid_email:"Veuillez saisir une adresse e-mail valide",invalid_url:"Veuillez saisir une URL valide",invalid_number:"Veuillez saisir un nombre valide",drop_file_here:"Déposez le fichier ici ou",browse:"parcourir",file_too_large:"Le fichier est trop volumineux",search_results:"Résultats de recherche",no_results:"Aucun résultat trouvé",loading:"Chargement...",submit:"Enregistrer",cancel:"Annuler",remove:"Supprimer",add:"Ajouter",yes:"Oui",no:"Non",table_of:"sur",download:"Télécharger",table_filter:"Filtrer",table_filter_hide:"Masquer le filtre",table_filter_active:"actif",table_filter_clear_all:"Effacer tous les filtres",table_new_record:"Nouvel enregistrement",table_export_excel:"Exporter vers Excel",filter_sorting:"Tri",filter_ascending:"Croissant",filter_descending:"Décroissant",filter_section:"Filtre",filter_apply:"Appliquer",filter_clear:"Effacer",filter_contains:"Contient",filter_starts_with:"Commence par",filter_equals:"Égal à",filter_has_value:"A une valeur",filter_is_empty:"Est vide",filter_is_not_empty:"N'est pas vide",filter_exact:"Exact",filter_range:"Plage",filter_from:"De",filter_to:"À",filter_all:"Tous",filter_select_all:"Tous",filter_select_none:"Aucun",filter_search_value:"Valeur de recherche...",filter_no_support:"Le filtrage n'est pas disponible pour ce type de champ.",textblock_show_more:"Voir plus",close:"Fermer",history_until:"jusqu'au",history_badge_tooltip:"Valeurs précédentes"},de:{required:"Dieses Feld ist erforderlich",select_placeholder:"Option auswählen",search_placeholder:"Suchen...",upload_file:"Datei hochladen",choose_file:"Datei auswählen",clear:"Löschen",today:"Heute",invalid_email:"Bitte geben Sie eine gültige E-Mail-Adresse ein",invalid_url:"Bitte geben Sie eine gültige URL ein",invalid_number:"Bitte geben Sie eine gültige Zahl ein",drop_file_here:"Datei hier ablegen oder",browse:"durchsuchen",file_too_large:"Datei ist zu groß",search_results:"Suchergebnisse",no_results:"Keine Ergebnisse gefunden",loading:"Laden...",submit:"Speichern",cancel:"Abbrechen",remove:"Entfernen",add:"Hinzufügen",yes:"Ja",no:"Nein",table_of:"von",download:"Herunterladen",table_filter:"Filtern",table_filter_hide:"Filter ausblenden",table_filter_active:"aktiv",table_filter_clear_all:"Alle Filter löschen",table_new_record:"Neuer Eintrag",table_export_excel:"Als Excel exportieren",filter_sorting:"Sortierung",filter_ascending:"Aufsteigend",filter_descending:"Absteigend",filter_section:"Filter",filter_apply:"Anwenden",filter_clear:"Löschen",filter_contains:"Enthält",filter_starts_with:"Beginnt mit",filter_equals:"Gleich",filter_has_value:"Hat Wert",filter_is_empty:"Ist leer",filter_is_not_empty:"Ist nicht leer",filter_exact:"Genau",filter_range:"Bereich",filter_from:"Von",filter_to:"Bis",filter_all:"Alle",filter_select_all:"Alle",filter_select_none:"Keine",filter_search_value:"Suchwert...",filter_no_support:"Filterung ist für diesen Feldtyp nicht verfügbar.",textblock_show_more:"Mehr anzeigen",close:"Schließen",history_until:"bis",history_badge_tooltip:"Vorherige Werte"},es:{required:"Este campo es obligatorio",select_placeholder:"Seleccionar una opción",search_placeholder:"Buscar...",upload_file:"Subir archivo",choose_file:"Elegir archivo",clear:"Borrar",today:"Hoy",invalid_email:"Por favor, introduzca una dirección de correo electrónico válida",invalid_url:"Por favor, introduzca una URL válida",invalid_number:"Por favor, introduzca un número válido",drop_file_here:"Suelte el archivo aquí o",browse:"explorar",file_too_large:"El archivo es demasiado grande",search_results:"Resultados de búsqueda",no_results:"No se encontraron resultados",loading:"Cargando...",submit:"Guardar",cancel:"Cancelar",remove:"Eliminar",add:"Añadir",yes:"Sí",no:"No",table_of:"de",download:"Descargar",table_filter:"Filtrar",table_filter_hide:"Ocultar filtro",table_filter_active:"activo",table_filter_clear_all:"Borrar todos los filtros",table_new_record:"Nuevo registro",table_export_excel:"Exportar a Excel",filter_sorting:"Ordenación",filter_ascending:"Ascendente",filter_descending:"Descendente",filter_section:"Filtro",filter_apply:"Aplicar",filter_clear:"Borrar",filter_contains:"Contiene",filter_starts_with:"Empieza por",filter_equals:"Igual a",filter_has_value:"Tiene valor",filter_is_empty:"Está vacío",filter_is_not_empty:"No está vacío",filter_exact:"Exacto",filter_range:"Rango",filter_from:"Desde",filter_to:"Hasta",filter_all:"Todos",filter_select_all:"Todos",filter_select_none:"Ninguno",filter_search_value:"Valor de búsqueda...",filter_no_support:"El filtrado no está disponible para este tipo de campo.",textblock_show_more:"Mostrar más",close:"Cerrar",history_until:"hasta",history_badge_tooltip:"Valores anteriores"},it:{required:"Questo campo è obbligatorio",select_placeholder:"Seleziona un'opzione",search_placeholder:"Cerca...",upload_file:"Carica file",choose_file:"Scegli file",clear:"Cancella",today:"Oggi",invalid_email:"Inserisci un indirizzo email valido",invalid_url:"Inserisci un URL valido",invalid_number:"Inserisci un numero valido",drop_file_here:"Trascina il file qui o",browse:"sfoglia",file_too_large:"Il file è troppo grande",search_results:"Risultati della ricerca",no_results:"Nessun risultato trovato",loading:"Caricamento...",submit:"Salva",cancel:"Annulla",remove:"Rimuovi",add:"Aggiungi",yes:"Sì",no:"No",table_of:"di",download:"Scarica",table_filter:"Filtra",table_filter_hide:"Nascondi filtro",table_filter_active:"attivo",table_filter_clear_all:"Cancella tutti i filtri",table_new_record:"Nuovo record",table_export_excel:"Esporta in Excel",filter_sorting:"Ordinamento",filter_ascending:"Crescente",filter_descending:"Decrescente",filter_section:"Filtro",filter_apply:"Applica",filter_clear:"Cancella",filter_contains:"Contiene",filter_starts_with:"Inizia con",filter_equals:"Uguale a",filter_has_value:"Ha valore",filter_is_empty:"È vuoto",filter_is_not_empty:"Non è vuoto",filter_exact:"Esatto",filter_range:"Intervallo",filter_from:"Da",filter_to:"A",filter_all:"Tutti",filter_select_all:"Tutti",filter_select_none:"Nessuno",filter_search_value:"Valore di ricerca...",filter_no_support:"Il filtro non è disponibile per questo tipo di campo.",textblock_show_more:"Mostra altro",close:"Chiudi",history_until:"fino a",history_badge_tooltip:"Valori precedenti"},uk:{required:"Це поле обов'язкове",select_placeholder:"Виберіть варіант",search_placeholder:"Пошук...",upload_file:"Завантажити файл",choose_file:"Вибрати файл",clear:"Очистити",today:"Сьогодні",invalid_email:"Будь ласка, введіть дійсну адресу електронної пошти",invalid_url:"Будь ласка, введіть дійсну URL-адресу",invalid_number:"Будь ласка, введіть дійсне число",drop_file_here:"Перетягніть файл сюди або",browse:"огляд",file_too_large:"Файл занадто великий",search_results:"Результати пошуку",no_results:"Результатів не знайдено",loading:"Завантаження...",submit:"Зберегти",cancel:"Скасувати",remove:"Видалити",add:"Додати",yes:"Так",no:"Ні",table_of:"з",download:"Завантажити",table_filter:"Фільтрувати",table_filter_hide:"Сховати фільтр",table_filter_active:"активний",table_filter_clear_all:"Очистити всі фільтри",table_new_record:"Новий запис",table_export_excel:"Експортувати до Excel",filter_sorting:"Сортування",filter_ascending:"За зростанням",filter_descending:"За спаданням",filter_section:"Фільтр",filter_apply:"Застосувати",filter_clear:"Очистити",filter_contains:"Містить",filter_starts_with:"Починається з",filter_equals:"Дорівнює",filter_has_value:"Має значення",filter_is_empty:"Порожнє",filter_is_not_empty:"Не порожнє",filter_exact:"Точно",filter_range:"Діапазон",filter_from:"Від",filter_to:"До",filter_all:"Всі",filter_select_all:"Всі",filter_select_none:"Жодного",filter_search_value:"Значення для пошуку...",filter_no_support:"Фільтрування недоступне для цього типу поля.",textblock_show_more:"Показати більше",close:"Закрити",history_until:"до",history_badge_tooltip:"Попередні значення"}};function l(l,r){var i,t,a;const o=(null!=r?r:"en").split("-")[0].toLowerCase();return null!==(a=null!==(t=(null!==(i=e[o])&&void 0!==i?i:e.en)[l])&&void 0!==t?t:e.en[l])&&void 0!==a?a:l}export{l as t}
1
+ const e={nl:{required:"Dit veld is verplicht",select_placeholder:"Selecteer een optie",search_placeholder:"Zoeken...",upload_file:"Bestand uploaden",choose_file:"Bestand kiezen",clear:"Wissen",today:"Vandaag",invalid_email:"Voer een geldig e-mailadres in",invalid_url:"Voer een geldige URL in",invalid_number:"Voer een geldig getal in",drop_file_here:"Sleep bestand hierheen of",browse:"bladeren",file_too_large:"Bestand is te groot",search_results:"Zoekresultaten",no_results:"Geen resultaten gevonden",loading:"Laden...",submit:"Opslaan",cancel:"Annuleren",remove:"Verwijderen",add:"Toevoegen",yes:"Ja",no:"Nee",table_of:"van",download:"Downloaden",table_filter:"Filteren",table_filter_hide:"Filter verbergen",table_filter_active:"actief",table_filter_clear_all:"Alle filters wissen",table_new_record:"Nieuw record",table_export_excel:"Exporteer naar Excel",filter_sorting:"Sortering",filter_ascending:"Oplopend",filter_descending:"Aflopend",filter_section:"Filter",filter_apply:"Toepassen",filter_clear:"Wissen",filter_contains:"Bevat",filter_starts_with:"Begint met",filter_equals:"Gelijk aan",filter_has_value:"Heeft waarde",filter_is_empty:"Is leeg",filter_is_not_empty:"Is niet leeg",filter_exact:"Exact",filter_range:"Bereik",filter_from:"Van",filter_to:"Tot",filter_all:"Alle",filter_select_all:"Alles",filter_select_none:"Geen",filter_search_value:"Zoekwaarde...",filter_no_support:"Geen filtering beschikbaar voor dit veldtype.",textblock_show_more:"Meer tonen",close:"Sluiten",history_until:"tot",history_badge_tooltip:"Vorige waarden",hyperlink_name:"Linktekst (optioneel)"},en:{required:"This field is required",select_placeholder:"Select an option",search_placeholder:"Search...",upload_file:"Upload file",choose_file:"Choose file",clear:"Clear",today:"Today",invalid_email:"Please enter a valid email address",invalid_url:"Please enter a valid URL",invalid_number:"Please enter a valid number",drop_file_here:"Drop file here or",browse:"browse",file_too_large:"File is too large",search_results:"Search results",no_results:"No results found",loading:"Loading...",submit:"Save",cancel:"Cancel",remove:"Remove",add:"Add",yes:"Yes",no:"No",table_of:"of",download:"Download",table_filter:"Filter",table_filter_hide:"Hide filter",table_filter_active:"active",table_filter_clear_all:"Clear all filters",table_new_record:"New record",table_export_excel:"Export to Excel",filter_sorting:"Sorting",filter_ascending:"Ascending",filter_descending:"Descending",filter_section:"Filter",filter_apply:"Apply",filter_clear:"Clear",filter_contains:"Contains",filter_starts_with:"Starts with",filter_equals:"Equals",filter_has_value:"Has value",filter_is_empty:"Is empty",filter_is_not_empty:"Is not empty",filter_exact:"Exact",filter_range:"Range",filter_from:"From",filter_to:"To",filter_all:"All",filter_select_all:"All",filter_select_none:"None",filter_search_value:"Search value...",filter_no_support:"Filtering is not available for this field type.",textblock_show_more:"Show more",close:"Close",history_until:"until",history_badge_tooltip:"Previous values",hyperlink_name:"Link text (optional)"},ar:{required:"هذا الحقل مطلوب",select_placeholder:"اختر خياراً",search_placeholder:"بحث...",upload_file:"رفع ملف",choose_file:"اختر ملفاً",clear:"مسح",today:"اليوم",invalid_email:"يرجى إدخال عنوان بريد إلكتروني صحيح",invalid_url:"يرجى إدخال رابط صحيح",invalid_number:"يرجى إدخال رقم صحيح",drop_file_here:"اسحب الملف هنا أو",browse:"تصفح",file_too_large:"الملف كبير جداً",search_results:"نتائج البحث",no_results:"لم يتم العثور على نتائج",loading:"جار التحميل...",submit:"حفظ",cancel:"إلغاء",remove:"إزالة",add:"إضافة",yes:"نعم",no:"لا",table_of:"من أصل",download:"تنزيل",table_filter:"تصفية",table_filter_hide:"إخفاء التصفية",table_filter_active:"نشط",table_filter_clear_all:"مسح جميع الفلاتر",table_new_record:"سجل جديد",table_export_excel:"تصدير إلى Excel",filter_sorting:"الترتيب",filter_ascending:"تصاعدي",filter_descending:"تنازلي",filter_section:"تصفية",filter_apply:"تطبيق",filter_clear:"مسح",filter_contains:"يحتوي على",filter_starts_with:"يبدأ بـ",filter_equals:"يساوي",filter_has_value:"له قيمة",filter_is_empty:"فارغ",filter_is_not_empty:"ليس فارغاً",filter_exact:"دقيق",filter_range:"نطاق",filter_from:"من",filter_to:"إلى",filter_all:"الكل",filter_select_all:"الكل",filter_select_none:"لا شيء",filter_search_value:"قيمة البحث...",filter_no_support:"التصفية غير متاحة لهذا النوع من الحقول.",textblock_show_more:"عرض المزيد",close:"إغلاق",history_until:"حتى",history_badge_tooltip:"القيم السابقة",hyperlink_name:"نص الرابط (اختياري)"},fr:{required:"Ce champ est obligatoire",select_placeholder:"Sélectionner une option",search_placeholder:"Rechercher...",upload_file:"Télécharger un fichier",choose_file:"Choisir un fichier",clear:"Effacer",today:"Aujourd'hui",invalid_email:"Veuillez saisir une adresse e-mail valide",invalid_url:"Veuillez saisir une URL valide",invalid_number:"Veuillez saisir un nombre valide",drop_file_here:"Déposez le fichier ici ou",browse:"parcourir",file_too_large:"Le fichier est trop volumineux",search_results:"Résultats de recherche",no_results:"Aucun résultat trouvé",loading:"Chargement...",submit:"Enregistrer",cancel:"Annuler",remove:"Supprimer",add:"Ajouter",yes:"Oui",no:"Non",table_of:"sur",download:"Télécharger",table_filter:"Filtrer",table_filter_hide:"Masquer le filtre",table_filter_active:"actif",table_filter_clear_all:"Effacer tous les filtres",table_new_record:"Nouvel enregistrement",table_export_excel:"Exporter vers Excel",filter_sorting:"Tri",filter_ascending:"Croissant",filter_descending:"Décroissant",filter_section:"Filtre",filter_apply:"Appliquer",filter_clear:"Effacer",filter_contains:"Contient",filter_starts_with:"Commence par",filter_equals:"Égal à",filter_has_value:"A une valeur",filter_is_empty:"Est vide",filter_is_not_empty:"N'est pas vide",filter_exact:"Exact",filter_range:"Plage",filter_from:"De",filter_to:"À",filter_all:"Tous",filter_select_all:"Tous",filter_select_none:"Aucun",filter_search_value:"Valeur de recherche...",filter_no_support:"Le filtrage n'est pas disponible pour ce type de champ.",textblock_show_more:"Voir plus",close:"Fermer",history_until:"jusqu'au",history_badge_tooltip:"Valeurs précédentes",hyperlink_name:"Texte du lien (optionnel)"},de:{required:"Dieses Feld ist erforderlich",select_placeholder:"Option auswählen",search_placeholder:"Suchen...",upload_file:"Datei hochladen",choose_file:"Datei auswählen",clear:"Löschen",today:"Heute",invalid_email:"Bitte geben Sie eine gültige E-Mail-Adresse ein",invalid_url:"Bitte geben Sie eine gültige URL ein",invalid_number:"Bitte geben Sie eine gültige Zahl ein",drop_file_here:"Datei hier ablegen oder",browse:"durchsuchen",file_too_large:"Datei ist zu groß",search_results:"Suchergebnisse",no_results:"Keine Ergebnisse gefunden",loading:"Laden...",submit:"Speichern",cancel:"Abbrechen",remove:"Entfernen",add:"Hinzufügen",yes:"Ja",no:"Nein",table_of:"von",download:"Herunterladen",table_filter:"Filtern",table_filter_hide:"Filter ausblenden",table_filter_active:"aktiv",table_filter_clear_all:"Alle Filter löschen",table_new_record:"Neuer Eintrag",table_export_excel:"Als Excel exportieren",filter_sorting:"Sortierung",filter_ascending:"Aufsteigend",filter_descending:"Absteigend",filter_section:"Filter",filter_apply:"Anwenden",filter_clear:"Löschen",filter_contains:"Enthält",filter_starts_with:"Beginnt mit",filter_equals:"Gleich",filter_has_value:"Hat Wert",filter_is_empty:"Ist leer",filter_is_not_empty:"Ist nicht leer",filter_exact:"Genau",filter_range:"Bereich",filter_from:"Von",filter_to:"Bis",filter_all:"Alle",filter_select_all:"Alle",filter_select_none:"Keine",filter_search_value:"Suchwert...",filter_no_support:"Filterung ist für diesen Feldtyp nicht verfügbar.",textblock_show_more:"Mehr anzeigen",close:"Schließen",history_until:"bis",history_badge_tooltip:"Vorherige Werte",hyperlink_name:"Linktext (optional)"},es:{required:"Este campo es obligatorio",select_placeholder:"Seleccionar una opción",search_placeholder:"Buscar...",upload_file:"Subir archivo",choose_file:"Elegir archivo",clear:"Borrar",today:"Hoy",invalid_email:"Por favor, introduzca una dirección de correo electrónico válida",invalid_url:"Por favor, introduzca una URL válida",invalid_number:"Por favor, introduzca un número válido",drop_file_here:"Suelte el archivo aquí o",browse:"explorar",file_too_large:"El archivo es demasiado grande",search_results:"Resultados de búsqueda",no_results:"No se encontraron resultados",loading:"Cargando...",submit:"Guardar",cancel:"Cancelar",remove:"Eliminar",add:"Añadir",yes:"Sí",no:"No",table_of:"de",download:"Descargar",table_filter:"Filtrar",table_filter_hide:"Ocultar filtro",table_filter_active:"activo",table_filter_clear_all:"Borrar todos los filtros",table_new_record:"Nuevo registro",table_export_excel:"Exportar a Excel",filter_sorting:"Ordenación",filter_ascending:"Ascendente",filter_descending:"Descendente",filter_section:"Filtro",filter_apply:"Aplicar",filter_clear:"Borrar",filter_contains:"Contiene",filter_starts_with:"Empieza por",filter_equals:"Igual a",filter_has_value:"Tiene valor",filter_is_empty:"Está vacío",filter_is_not_empty:"No está vacío",filter_exact:"Exacto",filter_range:"Rango",filter_from:"Desde",filter_to:"Hasta",filter_all:"Todos",filter_select_all:"Todos",filter_select_none:"Ninguno",filter_search_value:"Valor de búsqueda...",filter_no_support:"El filtrado no está disponible para este tipo de campo.",textblock_show_more:"Mostrar más",close:"Cerrar",history_until:"hasta",history_badge_tooltip:"Valores anteriores",hyperlink_name:"Texto del enlace (opcional)"},it:{required:"Questo campo è obbligatorio",select_placeholder:"Seleziona un'opzione",search_placeholder:"Cerca...",upload_file:"Carica file",choose_file:"Scegli file",clear:"Cancella",today:"Oggi",invalid_email:"Inserisci un indirizzo email valido",invalid_url:"Inserisci un URL valido",invalid_number:"Inserisci un numero valido",drop_file_here:"Trascina il file qui o",browse:"sfoglia",file_too_large:"Il file è troppo grande",search_results:"Risultati della ricerca",no_results:"Nessun risultato trovato",loading:"Caricamento...",submit:"Salva",cancel:"Annulla",remove:"Rimuovi",add:"Aggiungi",yes:"Sì",no:"No",table_of:"di",download:"Scarica",table_filter:"Filtra",table_filter_hide:"Nascondi filtro",table_filter_active:"attivo",table_filter_clear_all:"Cancella tutti i filtri",table_new_record:"Nuovo record",table_export_excel:"Esporta in Excel",filter_sorting:"Ordinamento",filter_ascending:"Crescente",filter_descending:"Decrescente",filter_section:"Filtro",filter_apply:"Applica",filter_clear:"Cancella",filter_contains:"Contiene",filter_starts_with:"Inizia con",filter_equals:"Uguale a",filter_has_value:"Ha valore",filter_is_empty:"È vuoto",filter_is_not_empty:"Non è vuoto",filter_exact:"Esatto",filter_range:"Intervallo",filter_from:"Da",filter_to:"A",filter_all:"Tutti",filter_select_all:"Tutti",filter_select_none:"Nessuno",filter_search_value:"Valore di ricerca...",filter_no_support:"Il filtro non è disponibile per questo tipo di campo.",textblock_show_more:"Mostra altro",close:"Chiudi",history_until:"fino a",history_badge_tooltip:"Valori precedenti",hyperlink_name:"Testo del collegamento (opzionale)"},uk:{required:"Це поле обов'язкове",select_placeholder:"Виберіть варіант",search_placeholder:"Пошук...",upload_file:"Завантажити файл",choose_file:"Вибрати файл",clear:"Очистити",today:"Сьогодні",invalid_email:"Будь ласка, введіть дійсну адресу електронної пошти",invalid_url:"Будь ласка, введіть дійсну URL-адресу",invalid_number:"Будь ласка, введіть дійсне число",drop_file_here:"Перетягніть файл сюди або",browse:"огляд",file_too_large:"Файл занадто великий",search_results:"Результати пошуку",no_results:"Результатів не знайдено",loading:"Завантаження...",submit:"Зберегти",cancel:"Скасувати",remove:"Видалити",add:"Додати",yes:"Так",no:"Ні",table_of:"з",download:"Завантажити",table_filter:"Фільтрувати",table_filter_hide:"Сховати фільтр",table_filter_active:"активний",table_filter_clear_all:"Очистити всі фільтри",table_new_record:"Новий запис",table_export_excel:"Експортувати до Excel",filter_sorting:"Сортування",filter_ascending:"За зростанням",filter_descending:"За спаданням",filter_section:"Фільтр",filter_apply:"Застосувати",filter_clear:"Очистити",filter_contains:"Містить",filter_starts_with:"Починається з",filter_equals:"Дорівнює",filter_has_value:"Має значення",filter_is_empty:"Порожнє",filter_is_not_empty:"Не порожнє",filter_exact:"Точно",filter_range:"Діапазон",filter_from:"Від",filter_to:"До",filter_all:"Всі",filter_select_all:"Всі",filter_select_none:"Жодного",filter_search_value:"Значення для пошуку...",filter_no_support:"Фільтрування недоступне для цього типу поля.",textblock_show_more:"Показати більше",close:"Закрити",history_until:"до",history_badge_tooltip:"Попередні значення",hyperlink_name:"Текст посилання (необов'язково)"}};function l(l,r){var i,t,a;const o=(null!=r?r:"en").split("-")[0].toLowerCase();return null!==(a=null!==(t=(null!==(i=e[o])&&void 0!==i?i:e.en)[l])&&void 0!==t?t:e.en[l])&&void 0!==a?a:l}export{l as t}
@@ -1 +1 @@
1
- import{proxyCustomElement as r,HTMLElement as e,createEvent as i,h as d,Host as l,transformTag as t}from"@stencil/core/internal/client";import{b as o,a,c as s}from"./client-layout.js";import{t as n}from"./i18n.js";import{d as m}from"./mrd-boolean-field2.js";import{d as c}from"./mrd-currency-field2.js";import{d as u}from"./mrd-date-field2.js";import{d as f}from"./mrd-datetime-field2.js";import{d as v}from"./mrd-email-field2.js";import{d as h}from"./mrd-file-field2.js";import{d as p}from"./mrd-hyperlink-field2.js";import{d as b}from"./mrd-image-field2.js";import{d as y}from"./mrd-list-field2.js";import{d as g}from"./mrd-longtext-field2.js";import{d as _}from"./mrd-number-field2.js";import{d as j}from"./mrd-relation-field2.js";import{d as k}from"./mrd-text-field2.js";import{d as x}from"./mrd-textarea-field2.js";import{d as w}from"./mrd-time-field2.js";const E=r(class extends e{constructor(r){super(),!1!==r&&this.__registerHost(),this.mrdChange=i(this,"mrdChange",7),this.mrdBlur=i(this,"mrdBlur",7),this.mrdSearch=i(this,"mrdSearch",7),this.mrdFetchAll=i(this,"mrdFetchAll",7),this.mrdUpload=i(this,"mrdUpload",7),this.locale=navigator.language,this.historyEntries=[],this.currentValue=void 0,this.handleChange=r=>{var e,i,d,l;r.stopPropagation(),(null!==(i=null===(e=this.item)||void 0===e?void 0:e.historyEnabled)&&void 0!==i?i:null===(l=null===(d=this.item)||void 0===d?void 0:d.field)||void 0===l?void 0:l.historyEnabled)?(this.currentValue=r.detail.value,this.mrdChange.emit({name:r.detail.name,value:{current:r.detail.value,history:this.historyEntries}})):this.mrdChange.emit(r.detail)},this.handleBlur=r=>{r.stopPropagation(),this.mrdBlur.emit(r.detail)},this.handleSearch=r=>{r.stopPropagation(),this.mrdSearch.emit(r.detail)},this.handleFetchAll=r=>{r.stopPropagation(),this.mrdFetchAll.emit(r.detail)},this.handleUpload=r=>{r.stopPropagation(),this.mrdUpload.emit(r.detail)}}componentWillLoad(){this.initHistoryState()}valueChanged(){this.initHistoryState()}initHistoryState(){var r,e,i,d,l;if(!(null!==(e=null===(r=this.item)||void 0===r?void 0:r.historyEnabled)&&void 0!==e?e:null===(d=null===(i=this.item)||void 0===i?void 0:i.field)||void 0===d?void 0:d.historyEnabled))return;const t=this.value;this.currentValue=null!==(l=null==t?void 0:t.current)&&void 0!==l?l:t,this.historyEntries=Array.isArray(null==t?void 0:t.history)?[...t.history]:[]}getDisplayValue(){var r,e,i,d;return(null!==(e=null===(r=this.item)||void 0===r?void 0:r.historyEnabled)&&void 0!==e?e:null===(d=null===(i=this.item)||void 0===i?void 0:i.field)||void 0===d?void 0:d.historyEnabled)&&null!==this.value&&"object"==typeof this.value&&"current"in this.value?this.value.current:this.value}historyValueInputType(){var r;switch(null===(r=this.item)||void 0===r?void 0:r.dataType){case o.DATE:return"date";case o.DATETIME:return"datetime-local";case o.TIME:return"time";case o.INTEGER:case o.DECIMAL:case o.PERCENTAGE:return"number";case o.EMAIL:return"email";default:return"text"}}emitHistoryChange(r){this.historyEntries=r,this.mrdChange.emit({name:this.item.name,value:{current:this.currentValue,history:r}})}renderHistoryEditor(){var r,e,i,l;if(!(null!==(e=null===(r=this.item)||void 0===r?void 0:r.historyEnabled)&&void 0!==e?e:null===(l=null===(i=this.item)||void 0===i?void 0:i.field)||void 0===l?void 0:l.historyEnabled))return null;const{locale:t}=this,o=this.historyValueInputType(),a=(r,e,i)=>{const d=this.historyEntries.map(((d,l)=>l===r?Object.assign(Object.assign({},d),{[e]:i}):d));this.emitHistoryChange(d)},s=r=>{this.emitHistoryChange(this.historyEntries.filter(((e,i)=>i!==r)))};return d("div",{class:"mrd-field__history-editor"},this.historyEntries.length>0&&d("span",{class:"mrd-field__history-editor-label"},n("history_badge_tooltip",t)),this.historyEntries.map(((r,e)=>d("div",{key:String(e),class:"mrd-field__history-editor-row"},d("input",{class:"mrd-field__history-editor-value",type:o,value:r.value,onInput:r=>a(e,"value",r.target.value)}),d("span",{class:"mrd-field__history-editor-sep"},n("history_until",t)),d("input",{class:"mrd-field__history-editor-until",type:"date",value:r.until,onInput:r=>a(e,"until",r.target.value)}),d("button",{type:"button",class:"mrd-field__history-editor-remove",onClick:()=>s(e),"aria-label":n("remove",t)},d("svg",{viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true"},d("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"})))))),d("button",{type:"button",class:"mrd-field__history-editor-add",onClick:()=>{this.emitHistoryChange([...this.historyEntries,{value:"",until:""}])}},"+ ",n("add",t)))}renderLeafField(r){var e,i,l,t,a,s,n,m,c,u,f,v,h,p,b,y,g,_,j,k,x,w,E,z,O,C,M;const{item:A,locale:S}=this,V={name:A.name,label:A.label,required:A.required,disabled:null!==(e=A.disabled)&&void 0!==e&&e,locale:S,onMrdChange:this.handleChange,onMrdBlur:this.handleBlur};switch(A.dataType){case o.TEXT:return d("mrd-text-field",Object.assign({},V,{value:null!==(i=r)&&void 0!==i?i:"",placeholder:null!==(l=A.placeholder)&&void 0!==l?l:""}));case o.TEXTBLOCK:return d("mrd-textarea-field",Object.assign({},V,{value:null!==(t=r)&&void 0!==t?t:"",placeholder:null!==(a=A.placeholder)&&void 0!==a?a:""}));case o.INTEGER:case o.DECIMAL:case o.PERCENTAGE:return d("mrd-number-field",Object.assign({},V,{value:null!==(s=r)&&void 0!==s?s:null,dataType:A.dataType,decimalPrecision:null!==(n=A.decimalPrecision)&&void 0!==n?n:2,placeholder:null!==(m=A.placeholder)&&void 0!==m?m:""}));case o.CURRENCY:return d("mrd-currency-field",Object.assign({},V,{value:null!==(c=r)&&void 0!==c?c:{amount:null,currency:null!==(u=A.currencyCode)&&void 0!==u?u:"EUR"}}));case o.BOOLEAN:return d("mrd-boolean-field",Object.assign({},V,{value:null!==(f=r)&&void 0!==f&&f}));case o.DATE:return d("mrd-date-field",Object.assign({},V,{value:null!==(v=r)&&void 0!==v?v:""}));case o.DATETIME:return d("mrd-datetime-field",Object.assign({},V,{value:null!==(h=r)&&void 0!==h?h:""}));case o.TIME:return d("mrd-time-field",Object.assign({},V,{value:null!==(p=r)&&void 0!==p?p:""}));case o.EMAIL:return d("mrd-email-field",Object.assign({},V,{value:null!==(b=r)&&void 0!==b?b:"",placeholder:null!==(y=A.placeholder)&&void 0!==y?y:""}));case o.HYPERLINK:return d("mrd-hyperlink-field",Object.assign({},V,{value:null!==(g=r)&&void 0!==g?g:"",placeholder:null!==(_=A.placeholder)&&void 0!==_?_:""}));case o.LIST:return d("mrd-list-field",Object.assign({},V,{value:null!==(j=r)&&void 0!==j?j:"",multiple:null!==(k=A.multiple)&&void 0!==k&&k,listItems:null!==(x=A.listItems)&&void 0!==x?x:[]}));case o.FILE:return d("mrd-file-field",Object.assign({},V,{value:r,accept:null!==(w=A.accept)&&void 0!==w?w:"",maxSize:null!==(E=A.maxSize)&&void 0!==E?E:0,onMrdUpload:this.handleUpload}));case o.IMAGE:return d("mrd-image-field",Object.assign({},V,{value:r,accept:null!==(z=A.accept)&&void 0!==z?z:"image/*",maxSize:null!==(O=A.maxSize)&&void 0!==O?O:0,onMrdUpload:this.handleUpload}));case o.LONGTEXT:return d("mrd-longtext-field",Object.assign({},V,{value:null!==(C=r)&&void 0!==C?C:"",placeholder:null!==(M=A.placeholder)&&void 0!==M?M:""}));default:return null}}render(){var r,e,i,t,o,n;const{item:m,locale:c,value:u}=this;if(m.type===a.RELATION)return d(l,null,d("mrd-relation-field",{name:m.name,label:m.label,required:m.required,disabled:null!==(r=m.disabled)&&void 0!==r&&r,locale:c,relatedClass:m.relatedClass,mostSignificantClass:null!==(e=m.mostSignificantClass)&&void 0!==e?e:"",displayType:null!==(i=m.displayType)&&void 0!==i?i:s.SEARCH,editBehavior:null!==(t=m.editBehavior)&&void 0!==t?t:null,commonRelation:m.commonRelation,multiple:null!==(o=m.multiple)&&void 0!==o&&o,dropdownValues:null!==(n=m.dropdownValues)&&void 0!==n?n:[],value:u,onMrdChange:this.handleChange,onMrdBlur:this.handleBlur,onMrdSearch:this.handleSearch,onMrdFetchAll:this.handleFetchAll}));if(m.type!==a.FIELD)return d(l,null);const f=this.getDisplayValue();return d(l,null,d("div",{class:"mrd-field__inner"},this.renderLeafField(f),this.renderHistoryEditor()))}get el(){return this}static get watchers(){return{value:[{valueChanged:0}]}}static get style(){return".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)}"}},[2,"mrd-field",{item:[16],locale:[1],value:[16],historyEntries:[32],currentValue:[32]},void 0,{value:[{valueChanged:0}]}]);function z(){"undefined"!=typeof customElements&&["mrd-field","mrd-boolean-field","mrd-currency-field","mrd-date-field","mrd-datetime-field","mrd-email-field","mrd-file-field","mrd-hyperlink-field","mrd-image-field","mrd-list-field","mrd-longtext-field","mrd-number-field","mrd-relation-field","mrd-text-field","mrd-textarea-field","mrd-time-field"].forEach((r=>{switch(r){case"mrd-field":customElements.get(t(r))||customElements.define(t(r),E);break;case"mrd-boolean-field":customElements.get(t(r))||m();break;case"mrd-currency-field":customElements.get(t(r))||c();break;case"mrd-date-field":customElements.get(t(r))||u();break;case"mrd-datetime-field":customElements.get(t(r))||f();break;case"mrd-email-field":customElements.get(t(r))||v();break;case"mrd-file-field":customElements.get(t(r))||h();break;case"mrd-hyperlink-field":customElements.get(t(r))||p();break;case"mrd-image-field":customElements.get(t(r))||b();break;case"mrd-list-field":customElements.get(t(r))||y();break;case"mrd-longtext-field":customElements.get(t(r))||g();break;case"mrd-number-field":customElements.get(t(r))||_();break;case"mrd-relation-field":customElements.get(t(r))||j();break;case"mrd-text-field":customElements.get(t(r))||k();break;case"mrd-textarea-field":customElements.get(t(r))||x();break;case"mrd-time-field":customElements.get(t(r))||w()}}))}export{E as M,z as d}
1
+ import{proxyCustomElement as r,HTMLElement as e,createEvent as i,h as d,Host as l,transformTag as t}from"@stencil/core/internal/client";import{b as o,a,c as s}from"./client-layout.js";import{t as n}from"./i18n.js";import{d as m}from"./mrd-boolean-field2.js";import{d as c}from"./mrd-currency-field2.js";import{d as u}from"./mrd-date-field2.js";import{d as f}from"./mrd-datetime-field2.js";import{d as v}from"./mrd-email-field2.js";import{d as h}from"./mrd-file-field2.js";import{d as p}from"./mrd-hyperlink-field2.js";import{d as b}from"./mrd-image-field2.js";import{d as y}from"./mrd-list-field2.js";import{d as g}from"./mrd-longtext-field2.js";import{d as _}from"./mrd-number-field2.js";import{d as j}from"./mrd-relation-field2.js";import{d as k}from"./mrd-secret-field2.js";import{d as x}from"./mrd-text-field2.js";import{d as w}from"./mrd-textarea-field2.js";import{d as E}from"./mrd-time-field2.js";const O=r(class extends e{constructor(r){super(),!1!==r&&this.__registerHost(),this.mrdChange=i(this,"mrdChange",7),this.mrdBlur=i(this,"mrdBlur",7),this.mrdSearch=i(this,"mrdSearch",7),this.mrdFetchAll=i(this,"mrdFetchAll",7),this.mrdUpload=i(this,"mrdUpload",7),this.locale=navigator.language,this.historyEntries=[],this.currentValue=void 0,this.handleChange=r=>{var e,i,d,l;r.stopPropagation(),(null!==(i=null===(e=this.item)||void 0===e?void 0:e.historyEnabled)&&void 0!==i?i:null===(l=null===(d=this.item)||void 0===d?void 0:d.field)||void 0===l?void 0:l.historyEnabled)?(this.currentValue=r.detail.value,this.mrdChange.emit({name:r.detail.name,value:{current:r.detail.value,history:this.historyEntries}})):this.mrdChange.emit(r.detail)},this.handleBlur=r=>{var e,i,d,l;r.stopPropagation();const t=null!==(i=null===(e=this.item)||void 0===e?void 0:e.historyEnabled)&&void 0!==i?i:null===(l=null===(d=this.item)||void 0===d?void 0:d.field)||void 0===l?void 0:l.historyEnabled;this.mrdBlur.emit(t?{name:r.detail.name,value:{current:this.currentValue,history:this.historyEntries}}:r.detail)},this.handleSearch=r=>{r.stopPropagation(),this.mrdSearch.emit(r.detail)},this.handleFetchAll=r=>{r.stopPropagation(),this.mrdFetchAll.emit(r.detail)},this.handleUpload=r=>{r.stopPropagation(),this.mrdUpload.emit(r.detail)}}componentWillLoad(){this.initHistoryState()}valueChanged(){this.initHistoryState()}initHistoryState(){var r,e,i,d,l;if(!(null!==(e=null===(r=this.item)||void 0===r?void 0:r.historyEnabled)&&void 0!==e?e:null===(d=null===(i=this.item)||void 0===i?void 0:i.field)||void 0===d?void 0:d.historyEnabled))return;const t=this.value;this.currentValue=null!==(l=null==t?void 0:t.current)&&void 0!==l?l:t,this.historyEntries=Array.isArray(null==t?void 0:t.history)?[...t.history]:[]}getDisplayValue(){var r,e,i,d;return(null!==(e=null===(r=this.item)||void 0===r?void 0:r.historyEnabled)&&void 0!==e?e:null===(d=null===(i=this.item)||void 0===i?void 0:i.field)||void 0===d?void 0:d.historyEnabled)&&null!==this.value&&"object"==typeof this.value&&"current"in this.value?this.value.current:this.value}historyValueInputType(){var r;switch(null===(r=this.item)||void 0===r?void 0:r.dataType){case o.DATE:return"date";case o.DATETIME:return"datetime-local";case o.TIME:return"time";case o.INTEGER:case o.DECIMAL:case o.PERCENTAGE:return"number";case o.EMAIL:return"email";default:return"text"}}emitHistoryChange(r){this.historyEntries=r,this.mrdChange.emit({name:this.item.name,value:{current:this.currentValue,history:r}})}renderHistoryEditor(){var r,e,i,l;if(!(null!==(e=null===(r=this.item)||void 0===r?void 0:r.historyEnabled)&&void 0!==e?e:null===(l=null===(i=this.item)||void 0===i?void 0:i.field)||void 0===l?void 0:l.historyEnabled))return null;const{locale:t}=this,o=this.historyValueInputType(),a=(r,e,i)=>{const d=this.historyEntries.map(((d,l)=>l===r?Object.assign(Object.assign({},d),{[e]:i}):d));this.emitHistoryChange(d)},s=r=>{this.emitHistoryChange(this.historyEntries.filter(((e,i)=>i!==r)))};return d("div",{class:"mrd-field__history-editor"},this.historyEntries.length>0&&d("span",{class:"mrd-field__history-editor-label"},n("history_badge_tooltip",t)),this.historyEntries.map(((r,e)=>d("div",{key:String(e),class:"mrd-field__history-editor-row"},d("input",{class:"mrd-field__history-editor-value",type:o,value:r.value,onInput:r=>a(e,"value",r.target.value)}),d("span",{class:"mrd-field__history-editor-sep"},n("history_until",t)),d("input",{class:"mrd-field__history-editor-until",type:"date",value:r.until,onInput:r=>a(e,"until",r.target.value)}),d("button",{type:"button",class:"mrd-field__history-editor-remove",onClick:()=>s(e),"aria-label":n("remove",t)},d("svg",{viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true"},d("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"})))))),d("button",{type:"button",class:"mrd-field__history-editor-add",onClick:()=>{this.emitHistoryChange([...this.historyEntries,{value:"",until:""}])}},"+ ",n("add",t)))}renderLeafField(r){var e,i,l,t,a,s,n,m,c,u,f,v,h,p,b,y,g,_,j,k,x,w,E,O,z,C,M,A,S;const{item:V,locale:B}=this,I={name:V.name,label:V.label,required:V.required,disabled:null!==(e=V.disabled)&&void 0!==e&&e,locale:B,onMrdChange:this.handleChange,onMrdBlur:this.handleBlur};switch(V.dataType){case o.TEXT:return d("mrd-text-field",Object.assign({},I,{value:null!==(i=r)&&void 0!==i?i:"",placeholder:null!==(l=V.placeholder)&&void 0!==l?l:""}));case o.TEXTBLOCK:return d("mrd-textarea-field",Object.assign({},I,{value:null!==(t=r)&&void 0!==t?t:"",placeholder:null!==(a=V.placeholder)&&void 0!==a?a:""}));case o.INTEGER:case o.DECIMAL:case o.PERCENTAGE:return d("mrd-number-field",Object.assign({},I,{value:null!==(s=r)&&void 0!==s?s:null,dataType:V.dataType,decimalPrecision:null!==(n=V.decimalPrecision)&&void 0!==n?n:2,placeholder:null!==(m=V.placeholder)&&void 0!==m?m:""}));case o.CURRENCY:return d("mrd-currency-field",Object.assign({},I,{value:null!==(c=r)&&void 0!==c?c:{amount:null,currency:null!==(u=V.currencyCode)&&void 0!==u?u:"EUR"}}));case o.BOOLEAN:return d("mrd-boolean-field",Object.assign({},I,{value:null!==(f=r)&&void 0!==f&&f}));case o.DATE:return d("mrd-date-field",Object.assign({},I,{value:null!==(v=r)&&void 0!==v?v:""}));case o.DATETIME:return d("mrd-datetime-field",Object.assign({},I,{value:null!==(h=r)&&void 0!==h?h:""}));case o.TIME:return d("mrd-time-field",Object.assign({},I,{value:null!==(p=r)&&void 0!==p?p:""}));case o.EMAIL:return d("mrd-email-field",Object.assign({},I,{value:null!==(b=r)&&void 0!==b?b:"",placeholder:null!==(y=V.placeholder)&&void 0!==y?y:""}));case o.HYPERLINK:return d("mrd-hyperlink-field",Object.assign({},I,{value:null!==(g=r)&&void 0!==g?g:"",placeholder:null!==(_=V.placeholder)&&void 0!==_?_:""}));case o.LIST:return d("mrd-list-field",Object.assign({},I,{value:null!==(j=r)&&void 0!==j?j:"",multiple:null!==(k=V.multiple)&&void 0!==k&&k,listItems:null!==(x=V.listItems)&&void 0!==x?x:[]}));case o.FILE:return d("mrd-file-field",Object.assign({},I,{value:r,accept:null!==(w=V.accept)&&void 0!==w?w:"",maxSize:null!==(E=V.maxSize)&&void 0!==E?E:0,onMrdUpload:this.handleUpload}));case o.IMAGE:return d("mrd-image-field",Object.assign({},I,{value:r,accept:null!==(O=V.accept)&&void 0!==O?O:"image/*",maxSize:null!==(z=V.maxSize)&&void 0!==z?z:0,onMrdUpload:this.handleUpload}));case o.LONGTEXT:return d("mrd-longtext-field",Object.assign({},I,{value:null!==(C=r)&&void 0!==C?C:"",placeholder:null!==(M=V.placeholder)&&void 0!==M?M:""}));case o.SECRET:return d("mrd-secret-field",Object.assign({},I,{value:null!==(A=r)&&void 0!==A?A:"",placeholder:null!==(S=V.placeholder)&&void 0!==S?S:""}));default:return null}}render(){var r,e,i,t,o,n;const{item:m,locale:c,value:u}=this;if(m.type===a.RELATION)return d(l,null,d("mrd-relation-field",{name:m.name,label:m.label,required:m.required,disabled:null!==(r=m.disabled)&&void 0!==r&&r,locale:c,relatedClass:m.relatedClass,mostSignificantClass:null!==(e=m.mostSignificantClass)&&void 0!==e?e:"",displayType:null!==(i=m.displayType)&&void 0!==i?i:s.SEARCH,editBehavior:null!==(t=m.editBehavior)&&void 0!==t?t:null,commonRelation:m.commonRelation,multiple:null!==(o=m.multiple)&&void 0!==o&&o,dropdownValues:null!==(n=m.dropdownValues)&&void 0!==n?n:[],value:u,onMrdChange:this.handleChange,onMrdBlur:this.handleBlur,onMrdSearch:this.handleSearch,onMrdFetchAll:this.handleFetchAll}));if(m.type!==a.FIELD)return d(l,null);const f=this.getDisplayValue();return d(l,null,d("div",{class:"mrd-field__inner"},this.renderLeafField(f),this.renderHistoryEditor()))}get el(){return this}static get watchers(){return{value:[{valueChanged:0}]}}static get style(){return".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)}"}},[2,"mrd-field",{item:[16],locale:[1],value:[16],historyEntries:[32],currentValue:[32]},void 0,{value:[{valueChanged:0}]}]);function z(){"undefined"!=typeof customElements&&["mrd-field","mrd-boolean-field","mrd-currency-field","mrd-date-field","mrd-datetime-field","mrd-email-field","mrd-file-field","mrd-hyperlink-field","mrd-image-field","mrd-list-field","mrd-longtext-field","mrd-number-field","mrd-relation-field","mrd-secret-field","mrd-text-field","mrd-textarea-field","mrd-time-field"].forEach((r=>{switch(r){case"mrd-field":customElements.get(t(r))||customElements.define(t(r),O);break;case"mrd-boolean-field":customElements.get(t(r))||m();break;case"mrd-currency-field":customElements.get(t(r))||c();break;case"mrd-date-field":customElements.get(t(r))||u();break;case"mrd-datetime-field":customElements.get(t(r))||f();break;case"mrd-email-field":customElements.get(t(r))||v();break;case"mrd-file-field":customElements.get(t(r))||h();break;case"mrd-hyperlink-field":customElements.get(t(r))||p();break;case"mrd-image-field":customElements.get(t(r))||b();break;case"mrd-list-field":customElements.get(t(r))||y();break;case"mrd-longtext-field":customElements.get(t(r))||g();break;case"mrd-number-field":customElements.get(t(r))||_();break;case"mrd-relation-field":customElements.get(t(r))||j();break;case"mrd-secret-field":customElements.get(t(r))||k();break;case"mrd-text-field":customElements.get(t(r))||x();break;case"mrd-textarea-field":customElements.get(t(r))||w();break;case"mrd-time-field":customElements.get(t(r))||E()}}))}export{O as M,z as d}