@mmlogic/components 0.3.2 → 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 (64) 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} +594 -67
  5. package/dist/collection/collection-manifest.json +1 -0
  6. package/dist/collection/components/mrd-field/mrd-field.js +142 -27
  7. package/dist/collection/components/mrd-field/mrd-field.scss +118 -0
  8. package/dist/collection/components/mrd-form/mrd-form.js +3 -3
  9. package/dist/collection/components/mrd-hyperlink-field/mrd-hyperlink-field.js +79 -18
  10. package/dist/collection/components/mrd-hyperlink-field/mrd-hyperlink-field.scss +22 -0
  11. package/dist/collection/components/mrd-image-field/mrd-image-field.js +1 -1
  12. package/dist/collection/components/mrd-layout-section/mrd-layout-section.js +54 -15
  13. package/dist/collection/components/mrd-layout-section/mrd-layout-section.scss +76 -0
  14. package/dist/collection/components/mrd-longtext-field/mrd-longtext-field.js +1 -1
  15. package/dist/collection/components/mrd-number-field/mrd-number-field.js +2 -2
  16. package/dist/collection/components/mrd-secret-field/mrd-secret-field.js +229 -0
  17. package/dist/collection/components/mrd-secret-field/mrd-secret-field.scss +73 -0
  18. package/dist/collection/components/mrd-table/mrd-table.js +46 -6
  19. package/dist/collection/components/mrd-table/mrd-table.scss +36 -0
  20. package/dist/collection/components/mrd-text-field/mrd-text-field.js +1 -1
  21. package/dist/collection/components/mrd-textarea-field/mrd-textarea-field.js +1 -1
  22. package/dist/collection/components/mrd-time-field/mrd-time-field.js +1 -1
  23. package/dist/collection/dev/api.js +1 -1
  24. package/dist/collection/dev/app.js +9 -4
  25. package/dist/collection/dev/example-data.js +12 -2
  26. package/dist/collection/types/client-layout.js +1 -0
  27. package/dist/collection/utils/cell-renderer.js +2 -0
  28. package/dist/collection/utils/i18n.js +269 -1
  29. package/dist/collection/utils/validation.js +6 -2
  30. package/dist/components/client-layout.js +1 -1
  31. package/dist/components/format.js +1 -1
  32. package/dist/components/i18n.js +1 -1
  33. package/dist/components/mrd-field2.js +1 -1
  34. package/dist/components/mrd-form.js +1 -1
  35. package/dist/components/mrd-hyperlink-field2.js +1 -1
  36. package/dist/components/mrd-image-field2.js +1 -1
  37. package/dist/components/mrd-layout-section.js +1 -1
  38. package/dist/components/mrd-longtext-field2.js +1 -1
  39. package/dist/components/mrd-number-field2.js +1 -1
  40. package/dist/components/mrd-secret-field.d.ts +11 -0
  41. package/dist/components/mrd-secret-field.js +1 -0
  42. package/dist/components/mrd-secret-field2.js +1 -0
  43. package/dist/components/mrd-table2.js +1 -1
  44. package/dist/components/mrd-text-field2.js +1 -1
  45. package/dist/components/mrd-textarea-field2.js +1 -1
  46. package/dist/components/mrd-time-field2.js +1 -1
  47. package/dist/components/validation.js +1 -1
  48. package/dist/esm/index.js +1 -0
  49. package/dist/esm/loader.js +1 -1
  50. package/dist/esm/mosterdcomponents.js +1 -1
  51. package/dist/esm/{mrd-boolean-field_19.entry.js → mrd-boolean-field_20.entry.js} +594 -68
  52. package/dist/mosterdcomponents/index.esm.js +1 -1
  53. package/dist/mosterdcomponents/mosterdcomponents.esm.js +1 -1
  54. package/dist/mosterdcomponents/p-c9839596.entry.js +1 -0
  55. package/dist/types/components/mrd-field/mrd-field.d.ts +14 -0
  56. package/dist/types/components/mrd-hyperlink-field/mrd-hyperlink-field.d.ts +12 -4
  57. package/dist/types/components/mrd-layout-section/mrd-layout-section.d.ts +5 -0
  58. package/dist/types/components/mrd-secret-field/mrd-secret-field.d.ts +22 -0
  59. package/dist/types/components/mrd-table/mrd-table.d.ts +6 -0
  60. package/dist/types/components.d.ts +109 -13
  61. package/dist/types/types/client-layout.d.ts +14 -1
  62. package/dist/types/utils/cell-renderer.d.ts +1 -0
  63. package/package.json +1 -1
  64. package/dist/mosterdcomponents/p-2a099635.entry.js +0 -1
@@ -1,22 +1,30 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
+ import { HyperlinkValue } from '../../types/client-layout';
2
3
  export declare class MrdHyperlinkField {
3
4
  name: string;
4
5
  label: string;
5
- value: string;
6
+ value: HyperlinkValue | string;
6
7
  placeholder: string;
7
8
  required: boolean;
8
9
  disabled: boolean;
9
10
  locale: string;
11
+ internalHref: string;
12
+ internalName: string;
10
13
  error: string;
11
14
  mrdChange: EventEmitter<{
12
15
  name: string;
13
- value: string;
16
+ value: HyperlinkValue;
14
17
  }>;
15
18
  mrdBlur: EventEmitter<{
16
19
  name: string;
17
- value: string;
20
+ value: HyperlinkValue;
18
21
  }>;
19
- private handleInput;
22
+ componentWillLoad(): void;
23
+ valueChanged(val: HyperlinkValue | string): void;
24
+ private parseValue;
25
+ private buildValue;
26
+ private handleHrefInput;
27
+ private handleNameInput;
20
28
  private handleBlur;
21
29
  render(): any;
22
30
  }
@@ -17,6 +17,8 @@ export declare class MrdLayoutSection {
17
17
  private searchResultsMap;
18
18
  private imagePreviewUrl;
19
19
  private imagePreviews;
20
+ private openHistoryField;
21
+ private historyClickOutside;
20
22
  mrdNavigate: EventEmitter<{
21
23
  href?: string;
22
24
  label: string;
@@ -51,6 +53,7 @@ export declare class MrdLayoutSection {
51
53
  path?: string;
52
54
  qs?: string;
53
55
  parentPath?: string | null;
56
+ basicType?: string;
54
57
  }>;
55
58
  /** Re-emitted from an embedded mrd-table's mrdLoadAggregations; host calls setViewAggregations() with the result. */
56
59
  mrdLoadViewAggregations: EventEmitter<{
@@ -62,6 +65,7 @@ export declare class MrdLayoutSection {
62
65
  }>;
63
66
  private searchTimers;
64
67
  componentDidLoad(): void;
68
+ disconnectedCallback(): void;
65
69
  dataChanged(newVal: Record<string, unknown>): void;
66
70
  private initEmbeddedTables;
67
71
  private viewKeyFor;
@@ -86,6 +90,7 @@ export declare class MrdLayoutSection {
86
90
  private handleSearchInput;
87
91
  private renderSingleFieldValue;
88
92
  private renderFieldValue;
93
+ private renderHistoryBadge;
89
94
  private renderField;
90
95
  private renderRelation;
91
96
  private renderSearch;
@@ -0,0 +1,22 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ export declare class MrdSecretField {
3
+ name: string;
4
+ label: string;
5
+ value: string;
6
+ placeholder: string;
7
+ required: boolean;
8
+ disabled: boolean;
9
+ locale: string;
10
+ error: string;
11
+ mrdChange: EventEmitter<{
12
+ name: string;
13
+ value: string;
14
+ }>;
15
+ mrdBlur: EventEmitter<{
16
+ name: string;
17
+ value: string;
18
+ }>;
19
+ private handleInput;
20
+ private handleBlur;
21
+ render(): any;
22
+ }
@@ -7,6 +7,7 @@ export declare class MrdTable {
7
7
  private debounceTimer;
8
8
  private outsideClickHandler;
9
9
  private keydownHandler;
10
+ private createPickerClickHandler;
10
11
  /** The VIEW or RELATED_VIEW layout item. Contains view config, dataClass, fromClass, actions etc. */
11
12
  item: ClientLayoutItem | null;
12
13
  /** Parent record id — required for RELATED_VIEW to build /{fromClass}/{parentId}/{dataClass}. */
@@ -48,6 +49,8 @@ export declare class MrdTable {
48
49
  top: number;
49
50
  left: number;
50
51
  };
52
+ /** Whether the create-type picker dropdown is open. */
53
+ createPickerOpen: boolean;
51
54
  /** Current scroll offset of the scroll container — drives pagination footer. */
52
55
  scrollTop: number;
53
56
  /** Full text shown in the TEXTBLOCK expand modal (null = closed). */
@@ -81,6 +84,7 @@ export declare class MrdTable {
81
84
  qs?: string;
82
85
  dataClass?: string;
83
86
  parentPath?: string | null;
87
+ basicType?: string;
84
88
  }>;
85
89
  /** Fired when a FILE or IMAGE cell is clicked. Host resolves the href to a signed download URL. */
86
90
  mrdDownload: EventEmitter<{
@@ -136,6 +140,8 @@ export declare class MrdTable {
136
140
  private buildQueryParams;
137
141
  private get columns();
138
142
  private get tableActions();
143
+ private toggleCreatePicker;
144
+ private closeCreatePicker;
139
145
  private colName;
140
146
  private colDataType;
141
147
  /** True when we have a reliable total: either from the aggregations response or because
@@ -6,9 +6,9 @@
6
6
  */
7
7
  import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
8
  import { ClientLayout, ClientLayoutItem, ClientLayoutItemFieldDataType, ClientLayoutItemRelationDisplayType, ClientLayoutItemRelationEditBehavior, ClientListValue, CurrencyValue, RelationSearchResult as RelationSearchResult1 } from "./types";
9
- import { AggregationResult, ClientLayoutItem as ClientLayoutItem1, ClientLayoutItemNavigate, ClientViewMetadata, RelationSearchResult } from "./types/client-layout";
9
+ import { AggregationResult, ClientLayoutItem as ClientLayoutItem1, ClientLayoutItemNavigate, ClientViewMetadata, HyperlinkValue, RelationSearchResult } from "./types/client-layout";
10
10
  export { ClientLayout, ClientLayoutItem, ClientLayoutItemFieldDataType, ClientLayoutItemRelationDisplayType, ClientLayoutItemRelationEditBehavior, ClientListValue, CurrencyValue, RelationSearchResult as RelationSearchResult1 } from "./types";
11
- export { AggregationResult, ClientLayoutItem as ClientLayoutItem1, ClientLayoutItemNavigate, ClientViewMetadata, RelationSearchResult } from "./types/client-layout";
11
+ export { AggregationResult, ClientLayoutItem as ClientLayoutItem1, ClientLayoutItemNavigate, ClientViewMetadata, HyperlinkValue, RelationSearchResult } from "./types/client-layout";
12
12
  export namespace Components {
13
13
  interface MrdBooleanField {
14
14
  /**
@@ -241,7 +241,7 @@ export namespace Components {
241
241
  /**
242
242
  * @default ''
243
243
  */
244
- "value": string;
244
+ "value": HyperlinkValue | string;
245
245
  }
246
246
  interface MrdImageField {
247
247
  /**
@@ -479,6 +479,36 @@ export namespace Components {
479
479
  */
480
480
  "value": string | string[] | RelationSearchResult1 | RelationSearchResult1[] | null;
481
481
  }
482
+ interface MrdSecretField {
483
+ /**
484
+ * @default false
485
+ */
486
+ "disabled": boolean;
487
+ /**
488
+ * @default ''
489
+ */
490
+ "label": string;
491
+ /**
492
+ * @default navigator.language
493
+ */
494
+ "locale": string;
495
+ /**
496
+ * @default ''
497
+ */
498
+ "name": string;
499
+ /**
500
+ * @default ''
501
+ */
502
+ "placeholder": string;
503
+ /**
504
+ * @default false
505
+ */
506
+ "required": boolean;
507
+ /**
508
+ * @default ''
509
+ */
510
+ "value": string;
511
+ }
482
512
  interface MrdTable {
483
513
  /**
484
514
  * Initialise (or reset) the virtual scroll. Call after setting all props and registering the mrdLoadPage listener, but before calling setPage(0, rows).
@@ -679,6 +709,10 @@ export interface MrdRelationFieldCustomEvent<T> extends CustomEvent<T> {
679
709
  detail: T;
680
710
  target: HTMLMrdRelationFieldElement;
681
711
  }
712
+ export interface MrdSecretFieldCustomEvent<T> extends CustomEvent<T> {
713
+ detail: T;
714
+ target: HTMLMrdSecretFieldElement;
715
+ }
682
716
  export interface MrdTableCustomEvent<T> extends CustomEvent<T> {
683
717
  detail: T;
684
718
  target: HTMLMrdTableElement;
@@ -848,8 +882,8 @@ declare global {
848
882
  new (): HTMLMrdFormElement;
849
883
  };
850
884
  interface HTMLMrdHyperlinkFieldElementEventMap {
851
- "mrdChange": { name: string; value: string };
852
- "mrdBlur": { name: string; value: string };
885
+ "mrdChange": { name: string; value: HyperlinkValue };
886
+ "mrdBlur": { name: string; value: HyperlinkValue };
853
887
  }
854
888
  interface HTMLMrdHyperlinkFieldElement extends Components.MrdHyperlinkField, HTMLStencilElement {
855
889
  addEventListener<K extends keyof HTMLMrdHyperlinkFieldElementEventMap>(type: K, listener: (this: HTMLMrdHyperlinkFieldElement, ev: MrdHyperlinkFieldCustomEvent<HTMLMrdHyperlinkFieldElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
@@ -890,7 +924,7 @@ declare global {
890
924
  "mrdDownload": { href: string; fileName: string };
891
925
  "mrdLoadViewPage": { name: string; page: number; sort: string; path: string; qs: string };
892
926
  "mrdLoadImage": { fieldName: string; href: string };
893
- "mrdViewAction": { name: string; action: string; dataClass: string; path?: string; qs?: string; parentPath?: string | null };
927
+ "mrdViewAction": { name: string; action: string; dataClass: string; path?: string; qs?: string; parentPath?: string | null; basicType?: string };
894
928
  "mrdLoadViewAggregations": { name: string; dataClass: string; path: string; qs: string; aggQs: string };
895
929
  }
896
930
  interface HTMLMrdLayoutSectionElement extends Components.MrdLayoutSection, HTMLStencilElement {
@@ -981,10 +1015,28 @@ declare global {
981
1015
  prototype: HTMLMrdRelationFieldElement;
982
1016
  new (): HTMLMrdRelationFieldElement;
983
1017
  };
1018
+ interface HTMLMrdSecretFieldElementEventMap {
1019
+ "mrdChange": { name: string; value: string };
1020
+ "mrdBlur": { name: string; value: string };
1021
+ }
1022
+ interface HTMLMrdSecretFieldElement extends Components.MrdSecretField, HTMLStencilElement {
1023
+ addEventListener<K extends keyof HTMLMrdSecretFieldElementEventMap>(type: K, listener: (this: HTMLMrdSecretFieldElement, ev: MrdSecretFieldCustomEvent<HTMLMrdSecretFieldElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1024
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1025
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1026
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1027
+ removeEventListener<K extends keyof HTMLMrdSecretFieldElementEventMap>(type: K, listener: (this: HTMLMrdSecretFieldElement, ev: MrdSecretFieldCustomEvent<HTMLMrdSecretFieldElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1028
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1029
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1030
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1031
+ }
1032
+ var HTMLMrdSecretFieldElement: {
1033
+ prototype: HTMLMrdSecretFieldElement;
1034
+ new (): HTMLMrdSecretFieldElement;
1035
+ };
984
1036
  interface HTMLMrdTableElementEventMap {
985
1037
  "mrdLoadPage": { page: number; sort: string; path: string; qs: string };
986
1038
  "mrdRowClick": Record<string, any>;
987
- "mrdAction": { action: string; path?: string; qs?: string; dataClass?: string; parentPath?: string | null };
1039
+ "mrdAction": { action: string; path?: string; qs?: string; dataClass?: string; parentPath?: string | null; basicType?: string };
988
1040
  "mrdDownload": { href: string; fileName: string };
989
1041
  "mrdLoadAggregations": { path: string; qs: string; aggQs: string };
990
1042
  }
@@ -1072,6 +1124,7 @@ declare global {
1072
1124
  "mrd-longtext-field": HTMLMrdLongtextFieldElement;
1073
1125
  "mrd-number-field": HTMLMrdNumberFieldElement;
1074
1126
  "mrd-relation-field": HTMLMrdRelationFieldElement;
1127
+ "mrd-secret-field": HTMLMrdSecretFieldElement;
1075
1128
  "mrd-table": HTMLMrdTableElement;
1076
1129
  "mrd-text-field": HTMLMrdTextFieldElement;
1077
1130
  "mrd-textarea-field": HTMLMrdTextareaFieldElement;
@@ -1324,8 +1377,8 @@ declare namespace LocalJSX {
1324
1377
  * @default ''
1325
1378
  */
1326
1379
  "name"?: string;
1327
- "onMrdBlur"?: (event: MrdHyperlinkFieldCustomEvent<{ name: string; value: string }>) => void;
1328
- "onMrdChange"?: (event: MrdHyperlinkFieldCustomEvent<{ name: string; value: string }>) => void;
1380
+ "onMrdBlur"?: (event: MrdHyperlinkFieldCustomEvent<{ name: string; value: HyperlinkValue }>) => void;
1381
+ "onMrdChange"?: (event: MrdHyperlinkFieldCustomEvent<{ name: string; value: HyperlinkValue }>) => void;
1329
1382
  /**
1330
1383
  * @default ''
1331
1384
  */
@@ -1337,7 +1390,7 @@ declare namespace LocalJSX {
1337
1390
  /**
1338
1391
  * @default ''
1339
1392
  */
1340
- "value"?: string;
1393
+ "value"?: HyperlinkValue | string;
1341
1394
  }
1342
1395
  interface MrdImageField {
1343
1396
  /**
@@ -1417,7 +1470,7 @@ declare namespace LocalJSX {
1417
1470
  /**
1418
1471
  * Re-emitted from an embedded mrd-table's mrdAction; host builds the target URL from dataClass.
1419
1472
  */
1420
- "onMrdViewAction"?: (event: MrdLayoutSectionCustomEvent<{ name: string; action: string; dataClass: string; path?: string; qs?: string; parentPath?: string | null }>) => void;
1473
+ "onMrdViewAction"?: (event: MrdLayoutSectionCustomEvent<{ name: string; action: string; dataClass: string; path?: string; qs?: string; parentPath?: string | null; basicType?: string }>) => void;
1421
1474
  /**
1422
1475
  * Legacy: view metadata map (ClientDashboardMetadata.views). Not needed in new flat format.
1423
1476
  * @default {}
@@ -1587,6 +1640,38 @@ declare namespace LocalJSX {
1587
1640
  */
1588
1641
  "value"?: string | string[] | RelationSearchResult1 | RelationSearchResult1[] | null;
1589
1642
  }
1643
+ interface MrdSecretField {
1644
+ /**
1645
+ * @default false
1646
+ */
1647
+ "disabled"?: boolean;
1648
+ /**
1649
+ * @default ''
1650
+ */
1651
+ "label"?: string;
1652
+ /**
1653
+ * @default navigator.language
1654
+ */
1655
+ "locale"?: string;
1656
+ /**
1657
+ * @default ''
1658
+ */
1659
+ "name"?: string;
1660
+ "onMrdBlur"?: (event: MrdSecretFieldCustomEvent<{ name: string; value: string }>) => void;
1661
+ "onMrdChange"?: (event: MrdSecretFieldCustomEvent<{ name: string; value: string }>) => void;
1662
+ /**
1663
+ * @default ''
1664
+ */
1665
+ "placeholder"?: string;
1666
+ /**
1667
+ * @default false
1668
+ */
1669
+ "required"?: boolean;
1670
+ /**
1671
+ * @default ''
1672
+ */
1673
+ "value"?: string;
1674
+ }
1590
1675
  interface MrdTable {
1591
1676
  /**
1592
1677
  * The VIEW or RELATED_VIEW layout item. Contains view config, dataClass, fromClass, actions etc.
@@ -1600,7 +1685,7 @@ declare namespace LocalJSX {
1600
1685
  /**
1601
1686
  * Fired when a toolbar action button is clicked. For 'export': includes `path` (relative excel path) and `qs` (current sort+filter params). For 'create': includes `dataClass` (target type) and `parentPath` (e.g. /buyers/123 for RELATED_VIEW).
1602
1687
  */
1603
- "onMrdAction"?: (event: MrdTableCustomEvent<{ action: string; path?: string; qs?: string; dataClass?: string; parentPath?: string | null }>) => void;
1688
+ "onMrdAction"?: (event: MrdTableCustomEvent<{ action: string; path?: string; qs?: string; dataClass?: string; parentPath?: string | null; basicType?: string }>) => void;
1604
1689
  /**
1605
1690
  * Fired when a FILE or IMAGE cell is clicked. Host resolves the href to a signed download URL.
1606
1691
  */
@@ -1802,7 +1887,7 @@ declare namespace LocalJSX {
1802
1887
  interface MrdHyperlinkFieldAttributes {
1803
1888
  "name": string;
1804
1889
  "label": string;
1805
- "value": string;
1890
+ "value": HyperlinkValue | string;
1806
1891
  "placeholder": string;
1807
1892
  "required": boolean;
1808
1893
  "disabled": boolean;
@@ -1863,6 +1948,15 @@ declare namespace LocalJSX {
1863
1948
  "multiple": boolean;
1864
1949
  "value": string | string[] | RelationSearchResult | RelationSearchResult[] | null;
1865
1950
  }
1951
+ interface MrdSecretFieldAttributes {
1952
+ "name": string;
1953
+ "label": string;
1954
+ "value": string;
1955
+ "placeholder": string;
1956
+ "required": boolean;
1957
+ "disabled": boolean;
1958
+ "locale": string;
1959
+ }
1866
1960
  interface MrdTableAttributes {
1867
1961
  "parentId": string;
1868
1962
  "locale": string;
@@ -1914,6 +2008,7 @@ declare namespace LocalJSX {
1914
2008
  "mrd-longtext-field": Omit<MrdLongtextField, keyof MrdLongtextFieldAttributes> & { [K in keyof MrdLongtextField & keyof MrdLongtextFieldAttributes]?: MrdLongtextField[K] } & { [K in keyof MrdLongtextField & keyof MrdLongtextFieldAttributes as `attr:${K}`]?: MrdLongtextFieldAttributes[K] } & { [K in keyof MrdLongtextField & keyof MrdLongtextFieldAttributes as `prop:${K}`]?: MrdLongtextField[K] };
1915
2009
  "mrd-number-field": Omit<MrdNumberField, keyof MrdNumberFieldAttributes> & { [K in keyof MrdNumberField & keyof MrdNumberFieldAttributes]?: MrdNumberField[K] } & { [K in keyof MrdNumberField & keyof MrdNumberFieldAttributes as `attr:${K}`]?: MrdNumberFieldAttributes[K] } & { [K in keyof MrdNumberField & keyof MrdNumberFieldAttributes as `prop:${K}`]?: MrdNumberField[K] };
1916
2010
  "mrd-relation-field": Omit<MrdRelationField, keyof MrdRelationFieldAttributes> & { [K in keyof MrdRelationField & keyof MrdRelationFieldAttributes]?: MrdRelationField[K] } & { [K in keyof MrdRelationField & keyof MrdRelationFieldAttributes as `attr:${K}`]?: MrdRelationFieldAttributes[K] } & { [K in keyof MrdRelationField & keyof MrdRelationFieldAttributes as `prop:${K}`]?: MrdRelationField[K] };
2011
+ "mrd-secret-field": Omit<MrdSecretField, keyof MrdSecretFieldAttributes> & { [K in keyof MrdSecretField & keyof MrdSecretFieldAttributes]?: MrdSecretField[K] } & { [K in keyof MrdSecretField & keyof MrdSecretFieldAttributes as `attr:${K}`]?: MrdSecretFieldAttributes[K] } & { [K in keyof MrdSecretField & keyof MrdSecretFieldAttributes as `prop:${K}`]?: MrdSecretField[K] };
1917
2012
  "mrd-table": Omit<MrdTable, keyof MrdTableAttributes> & { [K in keyof MrdTable & keyof MrdTableAttributes]?: MrdTable[K] } & { [K in keyof MrdTable & keyof MrdTableAttributes as `attr:${K}`]?: MrdTableAttributes[K] } & { [K in keyof MrdTable & keyof MrdTableAttributes as `prop:${K}`]?: MrdTable[K] };
1918
2013
  "mrd-text-field": Omit<MrdTextField, keyof MrdTextFieldAttributes> & { [K in keyof MrdTextField & keyof MrdTextFieldAttributes]?: MrdTextField[K] } & { [K in keyof MrdTextField & keyof MrdTextFieldAttributes as `attr:${K}`]?: MrdTextFieldAttributes[K] } & { [K in keyof MrdTextField & keyof MrdTextFieldAttributes as `prop:${K}`]?: MrdTextField[K] };
1919
2014
  "mrd-textarea-field": Omit<MrdTextareaField, keyof MrdTextareaFieldAttributes> & { [K in keyof MrdTextareaField & keyof MrdTextareaFieldAttributes]?: MrdTextareaField[K] } & { [K in keyof MrdTextareaField & keyof MrdTextareaFieldAttributes as `attr:${K}`]?: MrdTextareaFieldAttributes[K] } & { [K in keyof MrdTextareaField & keyof MrdTextareaFieldAttributes as `prop:${K}`]?: MrdTextareaField[K] };
@@ -1939,6 +2034,7 @@ declare module "@stencil/core" {
1939
2034
  "mrd-longtext-field": LocalJSX.IntrinsicElements["mrd-longtext-field"] & JSXBase.HTMLAttributes<HTMLMrdLongtextFieldElement>;
1940
2035
  "mrd-number-field": LocalJSX.IntrinsicElements["mrd-number-field"] & JSXBase.HTMLAttributes<HTMLMrdNumberFieldElement>;
1941
2036
  "mrd-relation-field": LocalJSX.IntrinsicElements["mrd-relation-field"] & JSXBase.HTMLAttributes<HTMLMrdRelationFieldElement>;
2037
+ "mrd-secret-field": LocalJSX.IntrinsicElements["mrd-secret-field"] & JSXBase.HTMLAttributes<HTMLMrdSecretFieldElement>;
1942
2038
  "mrd-table": LocalJSX.IntrinsicElements["mrd-table"] & JSXBase.HTMLAttributes<HTMLMrdTableElement>;
1943
2039
  "mrd-text-field": LocalJSX.IntrinsicElements["mrd-text-field"] & JSXBase.HTMLAttributes<HTMLMrdTextFieldElement>;
1944
2040
  "mrd-textarea-field": LocalJSX.IntrinsicElements["mrd-textarea-field"] & JSXBase.HTMLAttributes<HTMLMrdTextareaFieldElement>;
@@ -35,7 +35,8 @@ export declare enum ClientLayoutItemFieldDataType {
35
35
  FILE = "FILE",
36
36
  IMAGE = "IMAGE",
37
37
  LONGTEXT = "LONGTEXT",
38
- JSON = "JSON"
38
+ JSON = "JSON",
39
+ SECRET = "SECRET"
39
40
  }
40
41
  export declare enum ClientLayoutItemRelationDisplayType {
41
42
  SEARCH = "SEARCH",
@@ -71,6 +72,10 @@ export interface CurrencyValue {
71
72
  currency: string;
72
73
  decimals?: number;
73
74
  }
75
+ export interface HyperlinkValue {
76
+ href: string;
77
+ name?: string;
78
+ }
74
79
  export interface RelationSearchResult {
75
80
  id: string;
76
81
  label: string;
@@ -93,6 +98,7 @@ export interface ClientLayoutItemField {
93
98
  currencyCode?: string;
94
99
  /** Aggregate function to render in the table totals row. */
95
100
  aggregate?: 'sum' | 'avg' | 'count' | null;
101
+ historyEnabled?: boolean;
96
102
  }
97
103
  /** Response shape from the /aggregations endpoint.
98
104
  * `count` is a plain number (total record count) when returned at the top level. */
@@ -136,6 +142,10 @@ export interface ClientLayoutItemSearch {
136
142
  dataClass: string;
137
143
  showTitle: boolean;
138
144
  }
145
+ export interface ClientCreateType {
146
+ type: string;
147
+ label: string;
148
+ }
139
149
  /**
140
150
  * A single item in a ClientLayout. The `type` discriminator determines which
141
151
  * optional fields are present. Components should only act on types they
@@ -164,6 +174,8 @@ export interface ClientLayoutItem {
164
174
  }>;
165
175
  /** Toolbar buttons for embedded views. null/omitted = ["NEW","EXPORT"]; [] = none. */
166
176
  actions?: string[] | null;
177
+ /** Concrete subtypes available for create. When set, the NEW button expands into one button per entry. */
178
+ createTypes?: ClientCreateType[] | null;
167
179
  dataType?: ClientLayoutItemFieldDataType;
168
180
  required?: boolean;
169
181
  disabled?: boolean;
@@ -177,6 +189,7 @@ export interface ClientLayoutItem {
177
189
  maxSize?: number;
178
190
  decimalPrecision?: number;
179
191
  currencyCode?: string;
192
+ historyEnabled?: boolean;
180
193
  relatedClass?: string;
181
194
  mostSignificantClass?: string;
182
195
  displayType?: ClientLayoutItemRelationDisplayType;
@@ -21,6 +21,7 @@ export interface TableAction {
21
21
  /** Button style variant. Defaults to 'secondary'. */
22
22
  variant?: 'primary' | 'secondary' | 'danger';
23
23
  disabled?: boolean;
24
+ basicType?: string;
24
25
  }
25
26
  /** Represents an active filter on a single column. */
26
27
  export interface ColumnFilter {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mmlogic/components",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "description": "Stencil.js web component library for dynamic forms and virtual-scroll data tables",
5
5
  "license": "MIT",
6
6
  "author": "Mosterd",