@masterteam/components 0.0.170 → 0.0.172

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 (36) hide show
  1. package/assets/common.css +1 -1
  2. package/assets/i18n/ar.json +282 -278
  3. package/assets/i18n/en.json +282 -257
  4. package/fesm2022/masterteam-components-dynamic-drawer.mjs +21 -0
  5. package/fesm2022/masterteam-components-dynamic-drawer.mjs.map +1 -1
  6. package/fesm2022/masterteam-components-entities.mjs +115 -7
  7. package/fesm2022/masterteam-components-entities.mjs.map +1 -1
  8. package/fesm2022/masterteam-components-location-field.mjs +315 -0
  9. package/fesm2022/masterteam-components-location-field.mjs.map +1 -0
  10. package/fesm2022/masterteam-components-multi-select-field.mjs +2 -2
  11. package/fesm2022/masterteam-components-multi-select-field.mjs.map +1 -1
  12. package/fesm2022/masterteam-components-radio-cards-field.mjs +7 -4
  13. package/fesm2022/masterteam-components-radio-cards-field.mjs.map +1 -1
  14. package/fesm2022/masterteam-components-select-field.mjs +2 -2
  15. package/fesm2022/masterteam-components-select-field.mjs.map +1 -1
  16. package/fesm2022/masterteam-components-sidebar.mjs +2 -2
  17. package/fesm2022/masterteam-components-sidebar.mjs.map +1 -1
  18. package/fesm2022/masterteam-components-table.mjs +30 -8
  19. package/fesm2022/masterteam-components-table.mjs.map +1 -1
  20. package/fesm2022/masterteam-components-tabs.mjs +31 -3
  21. package/fesm2022/masterteam-components-tabs.mjs.map +1 -1
  22. package/fesm2022/masterteam-components-tree.mjs +13 -0
  23. package/fesm2022/masterteam-components-tree.mjs.map +1 -1
  24. package/fesm2022/masterteam-components-upload-field.mjs +86 -5
  25. package/fesm2022/masterteam-components-upload-field.mjs.map +1 -1
  26. package/fesm2022/masterteam-components.mjs +12 -1
  27. package/fesm2022/masterteam-components.mjs.map +1 -1
  28. package/package.json +5 -1
  29. package/types/masterteam-components-dynamic-drawer.d.ts +3 -0
  30. package/types/masterteam-components-entities.d.ts +32 -5
  31. package/types/masterteam-components-location-field.d.ts +95 -0
  32. package/types/masterteam-components-radio-cards-field.d.ts +2 -1
  33. package/types/masterteam-components-tabs.d.ts +3 -0
  34. package/types/masterteam-components-tree.d.ts +4 -0
  35. package/types/masterteam-components-upload-field.d.ts +13 -0
  36. package/types/masterteam-components.d.ts +13 -3
@@ -80,6 +80,7 @@ declare class DynamicDrawerHost {
80
80
  cmpInputs: _angular_core.WritableSignal<Record<string, unknown>>;
81
81
  childInjector: Injector;
82
82
  private ref?;
83
+ private closed;
83
84
  private drawerController;
84
85
  private readonly host;
85
86
  private readonly renderer;
@@ -111,6 +112,8 @@ declare class DynamicDrawerHost {
111
112
  }): void;
112
113
  show(): void;
113
114
  handleHide(data?: null): void;
115
+ /** Close the drawer ref at most once, regardless of the close path. */
116
+ private closeOnce;
114
117
  onDrawerShow(): void;
115
118
  onDrawerHide(): void;
116
119
  private getDrawerElement;
@@ -36,7 +36,7 @@ interface EntityListComparison {
36
36
  }
37
37
  type PropertyValueComparison = ValueComparison | EntityListComparison;
38
38
 
39
- type EntityViewType = 'Text' | 'LongText' | 'Date' | 'DateTime' | 'Number' | 'Percentage' | 'Status' | 'Currency' | 'Checkbox' | 'User' | 'Lookup' | 'Attachment' | 'LookupMatrix' | 'LeafDetails';
39
+ type EntityViewType = 'Text' | 'LongText' | 'Date' | 'DateTime' | 'Number' | 'Percentage' | 'Status' | 'Currency' | 'Checkbox' | 'User' | 'Lookup' | 'Attachment' | 'Location' | 'LookupMatrix' | 'LeafDetails';
40
40
  type EntityLabelPosition = 'top' | 'bottom';
41
41
  /** Entity size – controls column span (1-24) inside a 24-column grid */
42
42
  type EntitySize = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24;
@@ -160,6 +160,14 @@ interface EntityAttachmentItemValue {
160
160
  size?: number;
161
161
  }
162
162
  type EntityAttachmentValue = Array<EntityAttachmentItemValue | string>;
163
+ interface EntityLocationValue {
164
+ display_name?: string;
165
+ address?: string;
166
+ lat?: string | number;
167
+ lon?: string | number;
168
+ lng?: string | number;
169
+ [key: string]: unknown;
170
+ }
163
171
  interface EntityData {
164
172
  id?: number;
165
173
  propertyId?: number;
@@ -169,7 +177,7 @@ interface EntityData {
169
177
  rawValue?: string;
170
178
  order?: number;
171
179
  propertyConfiguration?: EntityPropertyConfiguration;
172
- value: string | EntityStatusValue | EntityUserValue | EntityLookupValue | EntityAttachmentValue | LeafDetailsEntityValue | LeafDetailsEntityCollectionValue | LeafDetailsRuntimeValue;
180
+ value: string | EntityStatusValue | EntityUserValue | EntityLookupValue | EntityAttachmentValue | EntityLocationValue | LeafDetailsEntityValue | LeafDetailsEntityCollectionValue | LeafDetailsRuntimeValue;
173
181
  viewType: EntityViewType;
174
182
  type?: string;
175
183
  configuration?: EntityConfiguration;
@@ -363,6 +371,8 @@ declare class EntityAttachment {
363
371
  readonly displayName: _angular_core.Signal<string>;
364
372
  readonly loading: _angular_core.WritableSignal<boolean>;
365
373
  readonly attachments: _angular_core.WritableSignal<EntityAttachmentItemValue[]>;
374
+ /** Key of the compact chip currently hovered, so it can reveal the download affordance. */
375
+ readonly hoveredAttachmentKey: _angular_core.WritableSignal<string | null>;
366
376
  readonly attachmentReferences: _angular_core.Signal<AttachmentReference[]>;
367
377
  readonly uploadValue: _angular_core.Signal<string | EntityAttachmentItemValue | (string | EntityAttachmentItemValue)[] | null>;
368
378
  readonly hasAttachments: _angular_core.Signal<boolean>;
@@ -371,6 +381,12 @@ declare class EntityAttachment {
371
381
  constructor();
372
382
  attachmentTrackBy(index: number, attachment: EntityAttachmentItemValue): string;
373
383
  attachmentTooltip(attachment: EntityAttachmentItemValue): string;
384
+ /**
385
+ * Compact chips are clickable downloads but only show a file-type glyph,
386
+ * which doesn't read as actionable. Swap to a download icon while hovered
387
+ * so the action is obvious.
388
+ */
389
+ attachmentActionIcon(index: number, attachment: EntityAttachmentItemValue): MTIcon;
374
390
  attachmentIcon(attachment: EntityAttachmentItemValue): MTIcon;
375
391
  onCompactAttachmentClick(event: MouseEvent, attachment: EntityAttachmentItemValue): void;
376
392
  downloadAttachment(attachment: EntityAttachmentItemValue): void;
@@ -384,6 +400,17 @@ declare class EntityAttachment {
384
400
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<EntityAttachment, "mt-entity-attachment", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "endPoint": { "alias": "endPoint"; "required": false; "isSignal": true; }; "context": { "alias": "context"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
385
401
  }
386
402
 
403
+ declare class EntityLocation {
404
+ readonly data: _angular_core.InputSignal<EntityData | undefined>;
405
+ readonly displayName: _angular_core.Signal<string>;
406
+ readonly location: _angular_core.Signal<EntityLocationValue | null>;
407
+ readonly displayValue: _angular_core.Signal<string>;
408
+ readonly coordinates: _angular_core.Signal<string>;
409
+ readonly mapsUrl: _angular_core.Signal<string>;
410
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EntityLocation, never>;
411
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<EntityLocation, "mt-entity-location", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
412
+ }
413
+
387
414
  declare class EntityLeafDetails {
388
415
  readonly data: _angular_core.InputSignal<EntityData>;
389
416
  readonly leafValue: _angular_core.Signal<LeafDetailsEntityValue | null>;
@@ -417,7 +444,7 @@ declare class EntityPreview {
417
444
  declare class EntityPreviewBody {
418
445
  readonly data: _angular_core.InputSignal<EntityData>;
419
446
  readonly attachmentShape: _angular_core.InputSignal<"compact" | "default">;
420
- readonly previewType: _angular_core.Signal<"Text" | "LongText" | "Date" | "DateTime" | "Number" | "Percentage" | "Status" | "Currency" | "Checkbox" | "User" | "Lookup" | "Attachment" | "LeafDetails">;
447
+ readonly previewType: _angular_core.Signal<"Text" | "LongText" | "Date" | "DateTime" | "Number" | "Percentage" | "Status" | "Currency" | "Checkbox" | "User" | "Lookup" | "Attachment" | "Location" | "LeafDetails">;
421
448
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<EntityPreviewBody, never>;
422
449
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<EntityPreviewBody, "mt-entity-preview-body", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "attachmentShape": { "alias": "attachmentShape"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
423
450
  }
@@ -567,5 +594,5 @@ declare class EntitiesManage extends EntitiesResizeBase {
567
594
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<EntitiesManage, "mt-entities-manage", never, { "entities": { "alias": "entities"; "required": true; "isSignal": true; }; }, { "entities": "entitiesChange"; "entitiesReordered": "entitiesReordered"; "entityClicked": "entityClicked"; }, never, never, true, never>;
568
595
  }
569
596
 
570
- export { ComparisonEntityList, ComparisonValue, EntitiesManage, EntitiesPreview, EntitiesResizeBase, EntityAttachment, EntityCheckbox, EntityCurrency, EntityDate, EntityField, EntityLeafDetails, EntityLongText, EntityLookup, EntityPercentage, EntityPreview, EntityPreviewBody, EntityStatus, EntityText, EntityUser, LEAF_DETAILS_KEY_SEPARATOR, buildDisplayEntities, expandLeafDetailsEntity, isLeafDetailsCatalogConfiguration, isLeafDetailsCollectionValue, isLeafDetailsRuntimeValue, isLeafDetailsSyntheticKey, isLeafDetailsValue };
571
- export type { ComparisonValueSide, EntityAttachmentItemValue, EntityAttachmentValue, EntityBaseConfig, EntityClickEvent, EntityComparisonField, EntityComparisonOperation, EntityConfiguration, EntityData, EntityLabelPosition, EntityLeafDetailsConfig, EntityListComparison, EntityListComparisonRow, EntityLookupValue, EntityPercentageConfig, EntityPropertyConfiguration, EntityResizeEvent, EntitySize, EntityStatusValue, EntityUserConfig, EntityUserValue, EntityViewType, LeafDetailsCatalogConfiguration, LeafDetailsCatalogLevelValue, LeafDetailsCatalogStatusValue, LeafDetailsEntityCollectionValue, LeafDetailsEntityValue, LeafDetailsRuntimeChildSchema, LeafDetailsRuntimeStatusCount, LeafDetailsRuntimeStatusDetails, LeafDetailsRuntimeValue, LeafDetailsStatusSummary, LeafLevelSavedConfig, PropertyValueComparison, ValueComparison };
597
+ export { ComparisonEntityList, ComparisonValue, EntitiesManage, EntitiesPreview, EntitiesResizeBase, EntityAttachment, EntityCheckbox, EntityCurrency, EntityDate, EntityField, EntityLeafDetails, EntityLocation, EntityLongText, EntityLookup, EntityPercentage, EntityPreview, EntityPreviewBody, EntityStatus, EntityText, EntityUser, LEAF_DETAILS_KEY_SEPARATOR, buildDisplayEntities, expandLeafDetailsEntity, isLeafDetailsCatalogConfiguration, isLeafDetailsCollectionValue, isLeafDetailsRuntimeValue, isLeafDetailsSyntheticKey, isLeafDetailsValue };
598
+ export type { ComparisonValueSide, EntityAttachmentItemValue, EntityAttachmentValue, EntityBaseConfig, EntityClickEvent, EntityComparisonField, EntityComparisonOperation, EntityConfiguration, EntityData, EntityLabelPosition, EntityLeafDetailsConfig, EntityListComparison, EntityListComparisonRow, EntityLocationValue, EntityLookupValue, EntityPercentageConfig, EntityPropertyConfiguration, EntityResizeEvent, EntitySize, EntityStatusValue, EntityUserConfig, EntityUserValue, EntityViewType, LeafDetailsCatalogConfiguration, LeafDetailsCatalogLevelValue, LeafDetailsCatalogStatusValue, LeafDetailsEntityCollectionValue, LeafDetailsEntityValue, LeafDetailsRuntimeChildSchema, LeafDetailsRuntimeStatusCount, LeafDetailsRuntimeStatusDetails, LeafDetailsRuntimeValue, LeafDetailsStatusSummary, LeafLevelSavedConfig, PropertyValueComparison, ValueComparison };
@@ -0,0 +1,95 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { ControlValueAccessor, Validators, NgControl, FormGroup, FormControl } from '@angular/forms';
3
+ import { AutoComplete } from 'primeng/autocomplete';
4
+ import { isInvalid } from '@masterteam/components';
5
+ import { ModalService } from '@masterteam/components/modal';
6
+
7
+ interface LocationValue {
8
+ display_name?: string;
9
+ address?: string;
10
+ lat?: string | number;
11
+ lon?: string | number;
12
+ lng?: string | number;
13
+ [key: string]: unknown;
14
+ }
15
+ declare function normalizeLocationValue(value: unknown): LocationValue | null;
16
+ declare function getLocationDisplayName(value: LocationValue | null): string;
17
+ declare function getLocationLongitude(value: LocationValue | null): string | number | undefined;
18
+
19
+ interface LocationFieldConfiguration {
20
+ country?: string | {
21
+ name?: string;
22
+ code?: string;
23
+ viewBox?: string;
24
+ };
25
+ viewBox?: string;
26
+ nominatimBaseUrl?: string;
27
+ [key: string]: unknown;
28
+ }
29
+ declare class LocationField implements ControlValueAccessor {
30
+ readonly hint: _angular_core.InputSignal<string | undefined>;
31
+ readonly label: _angular_core.InputSignal<string | undefined>;
32
+ readonly placeholder: _angular_core.InputSignal<string | undefined>;
33
+ readonly readonly: _angular_core.InputSignal<boolean>;
34
+ readonly required: _angular_core.InputSignal<boolean>;
35
+ readonly minLength: _angular_core.InputSignal<number>;
36
+ readonly configuration: _angular_core.InputSignal<LocationFieldConfiguration | null>;
37
+ readonly searchUrl: _angular_core.InputSignal<string | undefined>;
38
+ protected readonly value: _angular_core.WritableSignal<LocationValue | null>;
39
+ protected readonly suggestions: _angular_core.WritableSignal<LocationValue[]>;
40
+ protected readonly disabled: _angular_core.WritableSignal<boolean>;
41
+ protected readonly loading: _angular_core.WritableSignal<boolean>;
42
+ protected readonly requiredValidator: typeof Validators.required;
43
+ protected readonly autocomplete: _angular_core.Signal<AutoComplete | undefined>;
44
+ protected readonly displayValue: _angular_core.Signal<string>;
45
+ protected readonly resolvedSearchUrl: _angular_core.Signal<string>;
46
+ protected readonly countryName: _angular_core.Signal<string>;
47
+ protected readonly countryCode: _angular_core.Signal<string>;
48
+ protected readonly viewBox: _angular_core.Signal<string>;
49
+ ngControl: NgControl | null;
50
+ protected readonly isInvalid: typeof isInvalid;
51
+ private readonly modal;
52
+ private readonly transloco;
53
+ private readonly http;
54
+ private readonly searchTerms;
55
+ protected onTouched: () => void;
56
+ private onModelChange;
57
+ constructor();
58
+ protected search(event: {
59
+ query: string;
60
+ }): void;
61
+ protected onFocus(): void;
62
+ protected onSelect(event: {
63
+ originalEvent: Event;
64
+ value: LocationValue;
65
+ }): void;
66
+ protected onClear(): void;
67
+ protected openManualDialog(): void;
68
+ writeValue(value: unknown): void;
69
+ registerOnChange(fn: (value: LocationValue | null) => void): void;
70
+ registerOnTouched(fn: () => void): void;
71
+ setDisabledState(disabled: boolean): void;
72
+ private setValue;
73
+ private searchLocations;
74
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LocationField, never>;
75
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LocationField, "mt-location-field", never, { "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "configuration": { "alias": "configuration"; "required": false; "isSignal": true; }; "searchUrl": { "alias": "searchUrl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
76
+ }
77
+
78
+ declare class LocationManualDialog {
79
+ readonly initialValue: _angular_core.InputSignal<LocationValue | null>;
80
+ protected readonly modal: ModalService;
81
+ private readonly ref;
82
+ protected readonly form: FormGroup<{
83
+ display_name: FormControl<string>;
84
+ longitude: FormControl<number | null>;
85
+ latitude: FormControl<number | null>;
86
+ }>;
87
+ constructor();
88
+ protected cancel(): void;
89
+ protected save(): void;
90
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LocationManualDialog, never>;
91
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LocationManualDialog, "mt-location-manual-dialog", never, { "initialValue": { "alias": "initialValue"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
92
+ }
93
+
94
+ export { LocationField, LocationManualDialog, getLocationDisplayName, getLocationLongitude, normalizeLocationValue };
95
+ export type { LocationFieldConfiguration, LocationValue };
@@ -6,6 +6,7 @@ import { RadioItem } from '@masterteam/components/radio-cards';
6
6
  declare class RadioCardsField implements ControlValueAccessor {
7
7
  readonly circle: _angular_core.InputSignalWithTransform<boolean, unknown>;
8
8
  readonly label: _angular_core.InputSignal<string | undefined>;
9
+ readonly hint: _angular_core.InputSignal<string | undefined>;
9
10
  readonly readonly: _angular_core.InputSignal<boolean>;
10
11
  readonly required: _angular_core.InputSignal<boolean>;
11
12
  readonly color: _angular_core.InputSignal<string>;
@@ -28,7 +29,7 @@ declare class RadioCardsField implements ControlValueAccessor {
28
29
  setDisabledState(isDisabled: boolean): void;
29
30
  onSelectionChange(selectedItem: RadioItem): void;
30
31
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadioCardsField, never>;
31
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioCardsField, "mt-radio-cards-field", never, { "circle": { "alias": "circle"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "optionLabel": { "alias": "optionLabel"; "required": false; "isSignal": true; }; "optionValue": { "alias": "optionValue"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; }, {}, ["itemTemplate"], never, true, never>;
32
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioCardsField, "mt-radio-cards-field", never, { "circle": { "alias": "circle"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "optionLabel": { "alias": "optionLabel"; "required": false; "isSignal": true; }; "optionValue": { "alias": "optionValue"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; }, {}, ["itemTemplate"], never, true, never>;
32
33
  }
33
34
 
34
35
  export { RadioCardsField };
@@ -25,8 +25,10 @@ declare class Tabs {
25
25
  private readonly destroyRef;
26
26
  private readonly tabsContainer;
27
27
  private readonly measureRow;
28
+ private readonly morePopover;
28
29
  private resizeObserver?;
29
30
  private measureHandle;
31
+ private alignHandle;
30
32
  readonly visibleCount: _angular_core.WritableSignal<number>;
31
33
  readonly visibleOptions: _angular_core.Signal<OptionItem[]>;
32
34
  readonly overflowOptions: _angular_core.Signal<OptionItem[]>;
@@ -42,6 +44,7 @@ declare class Tabs {
42
44
  private measureAndUpdate;
43
45
  onTabChange(value: any): void;
44
46
  onOverflowSearch(value: string): void;
47
+ private scheduleOverflowAlign;
45
48
  onOverflowPopoverHide(): void;
46
49
  onOptionSelect(option: OptionItem): void;
47
50
  resolveLabel(option: OptionItem): string;
@@ -92,6 +92,10 @@ declare class Tree {
92
92
  toggleNodeExpanded(node: TreeNode, event: MouseEvent): void;
93
93
  toggleNodeSelection(node: TreeNode, event: MouseEvent): void;
94
94
  handleCheckedNodes(): void;
95
+ /**
96
+ * Clears the tree's search/filter input and resets the filtered nodes.
97
+ */
98
+ resetFilter(): void;
95
99
  resolveActionLoading(action: TreeAction, node: any): boolean | undefined;
96
100
  nodeAction(action: TreeAction, node: any): void;
97
101
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<Tree, never>;
@@ -20,6 +20,19 @@ declare class UploadField implements ControlValueAccessor {
20
20
  readonly: _angular_core.InputSignal<boolean>;
21
21
  readonly context: _angular_core.InputSignal<HttpContext | undefined>;
22
22
  readonly isMultipleEnabled: _angular_core.Signal<boolean>;
23
+ /**
24
+ * The native `accept` attribute is only a UI hint — users can switch the OS
25
+ * file dialog to "All files" and pick anything. This is the spec we re-check
26
+ * every selected/dropped file against before uploading to the backend.
27
+ */
28
+ readonly effectiveAccept: _angular_core.Signal<string>;
29
+ /**
30
+ * Human-friendly, de-duplicated list of accepted types shown next to the
31
+ * upload prompt so the user knows what to pick before opening the dialog
32
+ * (e.g. ".pdf,.doc,image/*" -> "PDF, DOC, Images"). Empty when everything
33
+ * is allowed, so the hint can be hidden entirely.
34
+ */
35
+ readonly acceptedTypesLabel: _angular_core.Signal<string>;
23
36
  readonly onChange: _angular_core.OutputEmitterRef<any>;
24
37
  readonly requiredValidator: typeof Validators.required;
25
38
  readonly value: _angular_core.WritableSignal<any>;
@@ -30,7 +30,7 @@ declare const DEFAULT_MT_DATE_FORMATS: MTDateFormats;
30
30
  declare const MT_DATE_FORMATS: InjectionToken<MTDateFormats>;
31
31
  declare function provideMTDateFormats(formats: Partial<MTDateFormats>): EnvironmentProviders;
32
32
 
33
- type FieldType = 'text' | 'textarea' | 'select' | 'date' | 'number' | 'slider' | 'multi-select' | 'pick-list' | 'checkbox' | 'icon-field' | 'color-picker' | 'spacer' | 'lookup-matrix' | string;
33
+ type FieldType = 'text' | 'textarea' | 'select' | 'date' | 'number' | 'slider' | 'multi-select' | 'pick-list' | 'checkbox' | 'icon-field' | 'color-picker' | 'location' | 'spacer' | 'lookup-matrix' | string;
34
34
  type ValidatorType = 'required' | 'email' | 'minLength' | 'maxLength' | 'min' | 'max' | 'pattern' | 'custom';
35
35
  type FieldRelationAction = 'enable' | 'disable' | 'show' | 'hide';
36
36
  interface FieldRelationConfig {
@@ -214,6 +214,16 @@ declare class UserSearchFieldConfig extends BaseFieldConfig {
214
214
  isMultiple?: boolean;
215
215
  });
216
216
  }
217
+ declare class LocationFieldConfig extends BaseFieldConfig {
218
+ configuration: Record<string, unknown> | null;
219
+ searchUrl?: string;
220
+ minLength: number;
221
+ constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
222
+ configuration?: Record<string, unknown> | null;
223
+ searchUrl?: string;
224
+ minLength?: number;
225
+ });
226
+ }
217
227
  declare class UploadFileFieldConfig extends BaseFieldConfig {
218
228
  size: string;
219
229
  endPoint?: string;
@@ -518,7 +528,7 @@ declare class EntityListFieldConfig extends BaseFieldConfig {
518
528
  });
519
529
  }
520
530
  type DynamicFieldConfig = {
521
- [K in keyof (TextFieldConfig & TextareaFieldConfig & SelectFieldConfig & DateFieldConfig & NumberFieldConfig & SliderFieldConfig & MultiSelectFieldConfig & PickListFieldConfig & CheckboxFieldConfig & ToggleFieldConfig & ColorPickerFieldConfig & IconFieldConfig & SpacerFieldConfig & LookupMatrixFieldConfig & SchemaConnectionFieldConfig & SchedulePredecessorFieldConfig & EntityListFieldConfig & BaseFieldConfig)]?: (TextFieldConfig & TextareaFieldConfig & SelectFieldConfig & DateFieldConfig & NumberFieldConfig & SliderFieldConfig & MultiSelectFieldConfig & PickListFieldConfig & CheckboxFieldConfig & ToggleFieldConfig & ColorPickerFieldConfig & IconFieldConfig & SpacerFieldConfig & LookupMatrixFieldConfig & SchemaConnectionFieldConfig & SchedulePredecessorFieldConfig & EntityListFieldConfig & BaseFieldConfig)[K];
531
+ [K in keyof (TextFieldConfig & TextareaFieldConfig & SelectFieldConfig & DateFieldConfig & NumberFieldConfig & SliderFieldConfig & MultiSelectFieldConfig & PickListFieldConfig & CheckboxFieldConfig & ToggleFieldConfig & LocationFieldConfig & ColorPickerFieldConfig & IconFieldConfig & SpacerFieldConfig & LookupMatrixFieldConfig & SchemaConnectionFieldConfig & SchedulePredecessorFieldConfig & EntityListFieldConfig & BaseFieldConfig)]?: (TextFieldConfig & TextareaFieldConfig & SelectFieldConfig & DateFieldConfig & NumberFieldConfig & SliderFieldConfig & MultiSelectFieldConfig & PickListFieldConfig & CheckboxFieldConfig & ToggleFieldConfig & LocationFieldConfig & ColorPickerFieldConfig & IconFieldConfig & SpacerFieldConfig & LookupMatrixFieldConfig & SchemaConnectionFieldConfig & SchedulePredecessorFieldConfig & EntityListFieldConfig & BaseFieldConfig)[K];
522
532
  };
523
533
  interface LayoutConfig {
524
534
  containerClass?: string;
@@ -873,5 +883,5 @@ declare class MTDateFormatPipe implements PipeTransform {
873
883
  static ɵpipe: i0.ɵɵPipeDeclaration<MTDateFormatPipe, "mtDateFormat", true>;
874
884
  }
875
885
 
876
- export { BaseFacade, BaseFieldConfig, CheckboxFieldConfig, ColorPickerFieldConfig, CrudStateBase, DEFAULT_MT_DATE_FORMATS, DateFieldConfig, EditorFieldConfig, EntityListFieldConfig, IconFieldConfig, LookupMatrixFieldConfig, MTDateFormatPipe, MT_DATE_FORMATS, MultiSelectFieldConfig, NumberFieldConfig, PickListFieldConfig, REQUEST_CONTEXT, RadioButtonFieldConfig, RadioCardsFieldConfig, SchedulePredecessorFieldConfig, SchemaConnectionFieldConfig, SelectFieldConfig, SliderFieldConfig, SpacerFieldConfig, TextFieldConfig, TextareaFieldConfig, ToggleFieldConfig, UploadFileFieldConfig, UserSearchFieldConfig, ValidatorConfig, changeBackgroundColor, changePrimaryColor, changeTextColor, createCustomValidator, createEntityAdapter, endLoading, generateTailwindPalette, getContrastColor, getLightColor, handleApiRequest, isInvalid, provideMTComponents, provideMTConfirmation, provideMTDateFormats, provideMTMessages, setLoadingError, startLoading, wrapValidatorWithMessage };
886
+ export { BaseFacade, BaseFieldConfig, CheckboxFieldConfig, ColorPickerFieldConfig, CrudStateBase, DEFAULT_MT_DATE_FORMATS, DateFieldConfig, EditorFieldConfig, EntityListFieldConfig, IconFieldConfig, LocationFieldConfig, LookupMatrixFieldConfig, MTDateFormatPipe, MT_DATE_FORMATS, MultiSelectFieldConfig, NumberFieldConfig, PickListFieldConfig, REQUEST_CONTEXT, RadioButtonFieldConfig, RadioCardsFieldConfig, SchedulePredecessorFieldConfig, SchemaConnectionFieldConfig, SelectFieldConfig, SliderFieldConfig, SpacerFieldConfig, TextFieldConfig, TextareaFieldConfig, ToggleFieldConfig, UploadFileFieldConfig, UserSearchFieldConfig, ValidatorConfig, changeBackgroundColor, changePrimaryColor, changeTextColor, createCustomValidator, createEntityAdapter, endLoading, generateTailwindPalette, getContrastColor, getLightColor, handleApiRequest, isInvalid, provideMTComponents, provideMTConfirmation, provideMTDateFormats, provideMTMessages, setLoadingError, startLoading, wrapValidatorWithMessage };
877
887
  export type { ApiRequestConfig, BaseFieldConstructorConfig, CrudCreateConfig, CrudDeleteConfig, CrudLoadConfig, CrudUpdateConfig, DynamicFieldConfig, DynamicFormConfig, EntityAdapter, EntityListFieldRuntimeContext, FieldRelationAction, FieldRelationConfig, FieldState, FieldType, FormulaConditionConfig, FormulaConditionMode, FormulaRuntimeMessage, FormulaRuntimeMessageCode, FormulaValidationRuleConfig, FormulaValidationSeverity, LayoutConfig, LoadingStateShape, LookupMatrixCellConfig, LookupOptionItemConfig, MTDateFormatType, MTDateFormats, MTThemeOptions, PaletteShade, QueryResult, RequestContextConfig, Response, ResponsiveColSpan, SchedulePredecessorFieldRuntimeContext, SectionConfig, ValidatorType };