carriera-intern-components 1.1.14 → 1.1.21

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 (124) hide show
  1. package/app/components/avatar/avatar.component.d.ts +2 -2
  2. package/app/components/avatar/models/avatar.model.d.ts +12 -5
  3. package/app/components/avatar/pipes/initials.pipe.d.ts +5 -1
  4. package/app/components/copy/copy.component.d.ts +23 -0
  5. package/app/components/document-preview/document-preview.component.d.ts +15 -6
  6. package/app/components/document-preview/interfaces/document-tag.interface.d.ts +4 -0
  7. package/app/components/document-preview/interfaces/index.d.ts +1 -0
  8. package/app/components/drop-zone/drop-zone.component.d.ts +58 -33
  9. package/app/components/drop-zone/models/file.response.d.ts +10 -0
  10. package/app/components/input/directives/helpers/index.d.ts +1 -0
  11. package/app/components/input/directives/helpers/mask.helper.d.ts +15 -0
  12. package/app/components/input/directives/mask.directive.d.ts +2 -16
  13. package/app/components/input/directives/number-format.directive.d.ts +6 -1
  14. package/app/components/input/directives/password.directive.d.ts +3 -1
  15. package/app/components/input/input.component.d.ts +59 -4
  16. package/app/components/input/models/dropdown.model.d.ts +44 -2
  17. package/app/components/input/models/input.model.d.ts +21 -7
  18. package/app/components/input/pipes/filter-by-search.pipe.d.ts +1 -1
  19. package/app/components/input-address/enums/input-address-layers-string.enum.d.ts +4 -0
  20. package/app/components/input-address/enums/input-address-type-string.enum.d.ts +5 -0
  21. package/app/components/input-address/input-address.component.d.ts +67 -0
  22. package/app/components/input-address/models/address-data.model.d.ts +19 -0
  23. package/app/components/input-address/models/address-list.model.d.ts +6 -0
  24. package/app/components/input-address/models/long-lat.model.d.ts +4 -0
  25. package/app/components/input-address/models/sent-address-data.model.d.ts +22 -0
  26. package/app/components/input-datetime-picker/cai-input-datetime-picker.component.d.ts +8 -4
  27. package/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/cai-custom-datetime-pickers.component.d.ts +3 -3
  28. package/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/components/cai-custom-datetime-pickers-calendar-dates-main/cai-custom-datetime-pickers-calendar-dates-main.component.d.ts +1 -1
  29. package/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/components/cai-custom-datetime-pickers-calendar-days/cai-custom-datetime-pickers-calendar-days.component.d.ts +1 -1
  30. package/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/components/cai-custom-datetime-pickers-calendar-left/cai-custom-datetime-pickers-calendar-left.component.d.ts +1 -1
  31. package/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/components/cai-custom-datetime-pickers-date-calendars/cai-custom-datetime-pickers-date-calendars.component.d.ts +2 -2
  32. package/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/config/cai-input.config.d.ts +1 -0
  33. package/app/components/input-datetime-picker/interfaces/index.d.ts +1 -0
  34. package/app/components/input-datetime-picker/interfaces/input-datetime.interface.d.ts +8 -0
  35. package/app/components/pm/pm.component.d.ts +29 -12
  36. package/app/components/selected-location-field/interfaces/index.d.ts +1 -0
  37. package/app/components/selected-location-field/interfaces/selected-business-field.interface.d.ts +11 -0
  38. package/app/components/selected-location-field/selected-business-field.component.d.ts +12 -0
  39. package/app/directives/infinite-scroll.directive.d.ts +16 -0
  40. package/app/directives/intersection-observer.directive.d.ts +15 -0
  41. package/app/enums/alignment.enum.d.ts +4 -0
  42. package/app/enums/index.d.ts +3 -0
  43. package/app/enums/string-placeholder.enum.d.ts +3 -0
  44. package/app/models/appFile.model.d.ts +3 -1
  45. package/app/utils/constants/index.d.ts +1 -0
  46. package/app/utils/constants/input-character-sets.constants.d.ts +18 -0
  47. package/app/utils/index.d.ts +1 -0
  48. package/fesm2022/carriera-intern-components.mjs +1955 -882
  49. package/fesm2022/carriera-intern-components.mjs.map +1 -1
  50. package/package.json +1 -1
  51. package/public/assets/icons/cai-color.svg +3 -0
  52. package/public/assets/icons/cai-edit.svg +3 -3
  53. package/public/assets/icons/cai-loader.svg +3 -0
  54. package/public/assets/icons/fuel-contact/cai-fuel-card.svg +3 -0
  55. package/public/assets/icons/fuel-contact/cai-user-2.svg +3 -0
  56. package/public/assets/icons/general/cai-date.svg +1 -1
  57. package/public/assets/icons/integration/cai-efs.svg +4 -0
  58. package/public/assets/icons/interaction/cai-copy.svg +3 -0
  59. package/public/assets/icons/interaction/cai-favorite.svg +3 -0
  60. package/public/assets/icons/interaction/cai_time.svg +1 -1
  61. package/public/assets/icons/makes/trailers/ic_trailer_atro.svg +6 -0
  62. package/public/assets/icons/makes/trailers/ic_trailer_beall.svg +7 -0
  63. package/public/assets/icons/makes/trailers/ic_trailer_bedard.svg +8 -0
  64. package/public/assets/icons/makes/trailers/ic_trailer_butler.svg +7 -0
  65. package/public/assets/icons/makes/trailers/ic_trailer_de_lucio.svg +17 -0
  66. package/public/assets/icons/makes/trailers/ic_trailer_dorsey.svg +3 -0
  67. package/public/assets/icons/makes/trailers/ic_trailer_east.svg +3 -0
  68. package/public/assets/icons/makes/trailers/ic_trailer_fontaine.svg +3 -0
  69. package/public/assets/icons/makes/trailers/ic_trailer_fruehauf.svg +3 -0
  70. package/public/assets/icons/makes/trailers/ic_trailer_gallegos.svg +3 -0
  71. package/public/assets/icons/makes/trailers/ic_trailer_great_dane.svg +3 -0
  72. package/public/assets/icons/makes/trailers/ic_trailer_heil.svg +6 -0
  73. package/public/assets/icons/makes/trailers/ic_trailer_hudson.svg +3 -0
  74. package/public/assets/icons/makes/trailers/ic_trailer_hyndai.svg +3 -0
  75. package/public/assets/icons/makes/trailers/ic_trailer_kaufman.svg +3 -0
  76. package/public/assets/icons/makes/trailers/ic_trailer_mac.svg +3 -0
  77. package/public/assets/icons/makes/trailers/ic_trailer_manac.svg +3 -0
  78. package/public/assets/icons/makes/trailers/ic_trailer_polar.svg +3 -0
  79. package/public/assets/icons/makes/trailers/ic_trailer_ravens.svg +3 -0
  80. package/public/assets/icons/makes/trailers/ic_trailer_reitnouer.svg +12 -0
  81. package/public/assets/icons/makes/trailers/ic_trailer_strick.svg +3 -0
  82. package/public/assets/icons/makes/trailers/ic_trailer_timpte.svg +8 -0
  83. package/public/assets/icons/makes/trailers/ic_trailer_trail_king.svg +7 -0
  84. package/public/assets/icons/makes/trailers/ic_trailer_transcraft.svg +12 -0
  85. package/public/assets/icons/makes/trailers/ic_trailer_tremcar.svg +10 -0
  86. package/public/assets/icons/makes/trailers/ic_trailer_tytal.svg +3 -0
  87. package/public/assets/icons/makes/trailers/ic_trailer_utility.svg +3 -0
  88. package/public/assets/icons/makes/trailers/ic_trailer_vanguard.svg +3 -0
  89. package/public/assets/icons/makes/trailers/ic_trailer_vantage.svg +3 -0
  90. package/public/assets/icons/makes/trailers/ic_trailer_wabash.svg +3 -0
  91. package/public/assets/icons/makes/trailers/ic_trailer_walinga.svg +8 -0
  92. package/public/assets/icons/makes/trailers/ic_trailer_wilson.svg +3 -0
  93. package/public/assets/icons/makes/trucks/ic_truck_chevrolet.svg +3 -0
  94. package/public/assets/icons/makes/trucks/ic_truck_ford.svg +3 -0
  95. package/public/assets/icons/makes/trucks/ic_truck_freightliner.svg +3 -0
  96. package/public/assets/icons/makes/trucks/ic_truck_gmc.svg +3 -0
  97. package/public/assets/icons/makes/trucks/ic_truck_hino.svg +3 -0
  98. package/public/assets/icons/makes/trucks/ic_truck_international.svg +3 -0
  99. package/public/assets/icons/makes/trucks/ic_truck_isuzu.svg +3 -0
  100. package/public/assets/icons/makes/trucks/ic_truck_kenworth.svg +3 -0
  101. package/public/assets/icons/makes/trucks/ic_truck_mack.svg +3 -0
  102. package/public/assets/icons/makes/trucks/ic_truck_peterbilt.svg +3 -0
  103. package/public/assets/icons/makes/trucks/ic_truck_volvo.svg +3 -0
  104. package/public/assets/icons/makes/trucks/ic_truck_western_star.svg +3 -0
  105. package/public/assets/json/icons.json +204 -0
  106. package/public/pdfjs/pdf.worker.min.mjs +30 -0
  107. package/public-api.d.ts +9 -3
  108. package/src/styles/README.md +57 -0
  109. package/src/styles/_variables.scss +288 -0
  110. package/src/styles/cropper.scss +33 -0
  111. package/src/styles/custompickers.scss +822 -0
  112. package/src/styles/popover.scss +18 -0
  113. package/src/styles/review_variables.scss +40 -0
  114. package/src/styles/tooltip.scss +85 -0
  115. package/src/styles/utility/colors.scss +265 -0
  116. package/src/styles/utility/utilities.scss +6 -0
  117. package/src/styles.scss +28 -0
  118. package/app/components/input-datetime-picker/pipes/input-clear-class.pipe.d.ts +0 -14
  119. package/app/components/input-datetime-picker/pipes/input-date-time-container-class.pipe.d.ts +0 -11
  120. package/app/components/input-datetime-picker/pipes/input-dropdown-arrow-class.pipe.d.ts +0 -11
  121. package/app/components/input-datetime-picker/pipes/input-placeholder-icon.class.pipe.d.ts +0 -11
  122. package/app/components/input-datetime-picker/pipes/show-clear.pipe.d.ts +0 -8
  123. package/app/directives/hover-svg-directives.d.ts +0 -15
  124. package/app/directives/index.d.ts +0 -1
@@ -14,9 +14,9 @@ export declare class AvatarComponent {
14
14
  * The size of the avatar in pixels.
15
15
  * @type {Size}
16
16
  */
17
- size: import("@angular/core").InputSignal<160 | 18 | 22 | 32 | 74>;
17
+ size: import("@angular/core").InputSignal<160 | 22 | 18 | 32 | 74>;
18
18
  /**
19
- * Whether the avatar should be rounded or not at sizes of 74px and 160px.
19
+ * Whether the avatar should be rounded or not.
20
20
  * @type {boolean}
21
21
  */
22
22
  rounded: import("@angular/core").InputSignal<boolean>;
@@ -1,10 +1,13 @@
1
1
  export interface Driver {
2
2
  id: number;
3
- firstName: string;
4
- lastName: string;
3
+ firstName?: string | null;
4
+ lastName?: string | null;
5
+ fullName?: string | null;
5
6
  owner?: boolean | null;
6
7
  avatarFile?: AvatarFile | null;
7
- colorFlag?: AvatarColor | null;
8
+ colorFlag?: ColorFlag | null;
9
+ avatarUrl?: string | null;
10
+ avatarColor?: AvatarColor | null;
8
11
  [key: string]: any;
9
12
  }
10
13
  export type AvatarFile = {
@@ -14,8 +17,12 @@ export type AvatarFile = {
14
17
  fileSize: number;
15
18
  [key: string]: any;
16
19
  };
17
- declare const colors: readonly ["Blue", "Green", "Red", "Yellow", "Purple", "Gold", "Light Green", "Orange", "Light Blue", "Pink", "Brown", "Gray"];
20
+ export type ColorFlag = {
21
+ id: number;
22
+ name: AvatarColor;
23
+ };
24
+ declare const colors: readonly ["Blue", "Green", "Red", "Yellow", "Purple", "Gold", "Light Green", "Orange", "Light Blue", "Pink", "Brown", "Gray", "Lime", "Navy", "Azure", "Magenta"];
18
25
  export type AvatarColor = (typeof colors)[number];
19
26
  declare const sizes: readonly [18, 22, 32, 74, 160];
20
- export type Size = typeof sizes[number];
27
+ export type Size = (typeof sizes)[number];
21
28
  export {};
@@ -1,7 +1,11 @@
1
1
  import { PipeTransform } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class InitialsPipe implements PipeTransform {
4
- transform(firstName: string | null | undefined, lastName: string | null | undefined): string;
4
+ transform({ firstName, lastName, fullName, }: {
5
+ firstName?: string | null;
6
+ lastName?: string | null;
7
+ fullName?: string | null;
8
+ }): string;
5
9
  static ɵfac: i0.ɵɵFactoryDeclaration<InitialsPipe, never>;
6
10
  static ɵpipe: i0.ɵɵPipeDeclaration<InitialsPipe, "initials", true>;
7
11
  }
@@ -0,0 +1,23 @@
1
+ import { eAlignment } from '../../enums';
2
+ import { eGeneralActions } from '../../enums/general-actions.enum';
3
+ import { Clipboard } from '@angular/cdk/clipboard';
4
+ import * as i0 from "@angular/core";
5
+ export declare class CopyComponent {
6
+ private clipboard;
7
+ value: import("@angular/core").InputSignal<string | undefined>;
8
+ alignment: import("@angular/core").InputSignal<eAlignment>;
9
+ copyTooltip: import("@angular/core").InputSignal<string | undefined>;
10
+ copyArea: import("@angular/core").InputSignal<"icon" | "full">;
11
+ icon: import("@angular/core").InputSignal<string | null>;
12
+ iconSize: import("@angular/core").InputSignal<number>;
13
+ iconColor: import("@angular/core").InputSignal<string | null>;
14
+ tooltipClass: import("@angular/core").InputSignal<string | null>;
15
+ copied: import("@angular/core").WritableSignal<boolean>;
16
+ eGeneralActions: typeof eGeneralActions;
17
+ eAlignment: typeof eAlignment;
18
+ constructor(clipboard: Clipboard);
19
+ onCopy(event: MouseEvent): void;
20
+ resetCopied(): void;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<CopyComponent, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<CopyComponent, "cai-copy", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "alignment": { "alias": "alignment"; "required": false; "isSignal": true; }; "copyTooltip": { "alias": "copyTooltip"; "required": false; "isSignal": true; }; "copyArea": { "alias": "copyArea"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "tooltipClass": { "alias": "tooltipClass"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
23
+ }
@@ -1,5 +1,7 @@
1
1
  import { OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
2
  import { AppFile } from '../../models/appFile.model';
3
+ import { FormControl } from '@angular/forms';
4
+ import { DocumentTag } from './interfaces';
3
5
  import * as i0 from "@angular/core";
4
6
  /**
5
7
  * This component displays a preview of a document, including its name, size,
@@ -11,6 +13,12 @@ export declare class DocumentPreviewComponent implements OnChanges, OnInit {
11
13
  constructor();
12
14
  ngOnInit(): void;
13
15
  ngOnChanges(changes: SimpleChanges): void;
16
+ noTagOption: boolean;
17
+ showInput: import("@angular/core").WritableSignal<boolean>;
18
+ inputFormControl: FormControl<any>;
19
+ showFileNameInput(): void;
20
+ hideFileNameInput(): void;
21
+ handleEdit(event: any): void;
14
22
  /**
15
23
  * Signal that controls whether the delete modal is visible.Used to confirm the file deletion.
16
24
  */
@@ -22,7 +30,7 @@ export declare class DocumentPreviewComponent implements OnChanges, OnInit {
22
30
  /**
23
31
  * Currently selected tag for the document.
24
32
  */
25
- selectedTag: string;
33
+ selectedTag: DocumentTag | null;
26
34
  /**
27
35
  * The application file to be displayed in the preview. This is a required input.
28
36
  * @type {InputSignal<AppFile>}
@@ -71,21 +79,22 @@ export declare class DocumentPreviewComponent implements OnChanges, OnInit {
71
79
  /**
72
80
  * List of available tags for labeling the document. These are selectable within the tag popover.
73
81
  */
74
- tags: string[];
82
+ tags: import("@angular/core").InputSignal<DocumentTag[]>;
75
83
  /**
76
84
  * Emits when a tag is selected or removed for the file.
77
85
  * Contains the file name and the selected tag.
78
- * @type {OutputEmitterRef<{ fileName: string; tag: string }>}
86
+ * @type {OutputEmitterRef<{ fileName: string; tag: DocumentTag }>}
79
87
  */
80
88
  onTagChange: import("@angular/core").OutputEmitterRef<{
81
89
  fileName: string;
82
- tag: string;
90
+ tag: DocumentTag | null;
83
91
  }>;
84
92
  /**
85
93
  * Selects a tag and emits the `onTagChange` output.
86
94
  * @param newTag The newly selected tag string.
87
95
  */
88
- getTag(newTag: string): void;
96
+ getTag(newTag: DocumentTag): void;
97
+ initTag(): void;
89
98
  /**
90
99
  * Removes the currently selected tag. Does not emit an event — must be called manually.
91
100
  */
@@ -95,5 +104,5 @@ export declare class DocumentPreviewComponent implements OnChanges, OnInit {
95
104
  */
96
105
  handleShare(): void;
97
106
  static ɵfac: i0.ɵɵFactoryDeclaration<DocumentPreviewComponent, never>;
98
- static ɵcmp: i0.ɵɵComponentDeclaration<DocumentPreviewComponent, "cai-document-preview", never, { "coverMinimalMode": { "alias": "coverMinimalMode"; "required": false; }; "file": { "alias": "file"; "required": true; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": true; "isSignal": true; }; }, { "onDelete": "onDelete"; "onDownload": "onDownload"; "onTagChange": "onTagChange"; }, never, never, true, never>;
107
+ static ɵcmp: i0.ɵɵComponentDeclaration<DocumentPreviewComponent, "cai-document-preview", never, { "coverMinimalMode": { "alias": "coverMinimalMode"; "required": false; }; "noTagOption": { "alias": "noTagOption"; "required": false; }; "file": { "alias": "file"; "required": true; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": true; "isSignal": true; }; "tags": { "alias": "tags"; "required": false; "isSignal": true; }; }, { "onDelete": "onDelete"; "onDownload": "onDownload"; "onTagChange": "onTagChange"; }, never, never, true, never>;
99
108
  }
@@ -0,0 +1,4 @@
1
+ export interface DocumentTag {
2
+ tagId: number;
3
+ tagName: string;
4
+ }
@@ -0,0 +1 @@
1
+ export * from './document-tag.interface';
@@ -1,8 +1,11 @@
1
- import { ElementRef } from '@angular/core';
1
+ import { ElementRef, EventEmitter } from '@angular/core';
2
2
  import { AppFile } from '../../models/appFile.model';
3
3
  import { ImageCroppedEvent, LoadedImage, ImageTransform } from 'ngx-image-cropper';
4
4
  import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
5
5
  import { Driver } from '../avatar/models';
6
+ import { FileResponse } from './models/file.response';
7
+ import { FormGroup } from '@angular/forms';
8
+ import { DocumentTag } from '../document-preview/interfaces';
6
9
  import * as i0 from "@angular/core";
7
10
  /**
8
11
  * A component that provides a user interface for file uploading via
@@ -12,39 +15,40 @@ import * as i0 from "@angular/core";
12
15
  export declare class DropZoneComponent {
13
16
  private sanitizer;
14
17
  zoomValue: import("@angular/core").WritableSignal<number>;
18
+ smallView: import("@angular/core").WritableSignal<boolean>;
19
+ cropHeight: import("@angular/core").WritableSignal<number>;
20
+ cropWidth: import("@angular/core").WritableSignal<number>;
21
+ private initialFilesProcessed;
22
+ driver: import("@angular/core").WritableSignal<Driver>;
15
23
  transform: ImageTransform;
16
- crop: import("@angular/core").InputSignal<boolean>;
17
24
  imageChangedEvent: Event | null;
18
25
  croppedImage: SafeUrl | null;
19
26
  showCropper: import("@angular/core").WritableSignal<boolean>;
20
27
  isCropperReady: import("@angular/core").WritableSignal<boolean>;
21
28
  originalImageWidth: number;
22
29
  originalImageHeight: number;
23
- smallView: import("@angular/core").WritableSignal<boolean>;
24
- coverUrl: string;
25
- profileUrl: string;
26
- logoUrl: string;
30
+ base64Image: string;
31
+ deletedDocs: import("@angular/core").WritableSignal<number[]>;
32
+ crop: import("@angular/core").InputSignal<boolean>;
27
33
  size: import("@angular/core").InputSignal<string | undefined>;
28
34
  rounded: import("@angular/core").InputSignal<boolean>;
29
- cropHeight: import("@angular/core").WritableSignal<number>;
30
- cropWidth: import("@angular/core").WritableSignal<number>;
31
- driver: import("@angular/core").WritableSignal<Driver>;
32
- inputRange: ElementRef<HTMLInputElement>;
33
- constructor(sanitizer: DomSanitizer);
34
- ngOnInit(): void;
35
- ngAfterViewInit(): void;
36
- updateRangeBackground(input: HTMLInputElement): void;
37
- cropDimensions(): void;
38
- ratioHelper(): number;
39
- onZoomChange(event: Event): void;
40
- fileChangeEvent(event: Event): void;
41
- imageCropped(event: ImageCroppedEvent): void;
42
- imageLoaded(image: LoadedImage): void;
43
- cropperReady(): void;
44
- loadImageFailed(): void;
45
- onTransformChange(event: ImageTransform): void;
46
- cancelCrop(): void;
47
- submitCrop(): void;
35
+ files: import("@angular/core").InputSignal<FileResponse[]>;
36
+ deletedFileIds: import("@angular/core").InputSignal<number[]>;
37
+ maxCountFiles: import("@angular/core").InputSignal<number>;
38
+ /**
39
+ * A input that holds an FormGroup object that is used to update the form validity when the crop mode is closed.
40
+ */
41
+ parentForm: import("@angular/core").InputSignal<FormGroup<any> | null>;
42
+ /**
43
+ * A signal that holds an array of `AppFile` objects representing the files
44
+ * that have been selected or dropped by the user.
45
+
46
+ */
47
+ variant: import("@angular/core").InputSignal<string>;
48
+ /**
49
+ * Input that holds an array of `DocumentTag` objects representing the tags for the documents.
50
+ */
51
+ documentTags: import("@angular/core").InputSignal<DocumentTag[]>;
48
52
  /**
49
53
  * Injects the DocumentService for file processing tasks like
50
54
  * thumbnail generation and PDF page counting.
@@ -66,6 +70,31 @@ export declare class DropZoneComponent {
66
70
  * @type {FileExtension[]}
67
71
  */
68
72
  fileTypes: import("@angular/core").InputSignal<("mp4" | "mov" | "avi" | "pdf" | "jpg" | "jpeg" | "png" | "gif")[]>;
73
+ coverUrl: string;
74
+ profileUrl: string;
75
+ logoUrl: string;
76
+ onDeletedFileIds: EventEmitter<number[]>;
77
+ docsChange: EventEmitter<AppFile[]>;
78
+ inputRange: ElementRef<HTMLInputElement>;
79
+ constructor(sanitizer: DomSanitizer);
80
+ ngOnInit(): void;
81
+ ngAfterViewInit(): void;
82
+ emitDocs(): void;
83
+ getTagIds(tags: string[]): number[];
84
+ populateDocs(currentFiles: FileResponse[] | AppFile[]): Promise<void>;
85
+ fetchFileAsFile(fileResponse: FileResponse): Promise<File | null>;
86
+ updateRangeBackground(input: HTMLInputElement): void;
87
+ cropDimensions(): void;
88
+ ratioHelper(): number;
89
+ onZoomChange(event: Event): void;
90
+ fileChangeEvent(event: Event): void;
91
+ imageCropped(event: ImageCroppedEvent): void;
92
+ imageLoaded(image: LoadedImage): void;
93
+ cropperReady(): void;
94
+ loadImageFailed(): void;
95
+ onTransformChange(event: ImageTransform): void;
96
+ cancelCrop(): void;
97
+ submitCrop(initial?: boolean): void;
69
98
  /**
70
99
  * A computed signal that derives the list of currently supported file extensions.
71
100
  * It filters the base `fileTypes` array, removing any extensions present
@@ -77,12 +106,6 @@ export declare class DropZoneComponent {
77
106
  * that have been selected or dropped by the user.
78
107
  */
79
108
  docs: import("@angular/core").WritableSignal<AppFile[]>;
80
- /**
81
- * A signal that holds an array of `AppFile` objects representing the files
82
- * that have been selected or dropped by the user.
83
-
84
- */
85
- variant: import("@angular/core").InputSignal<string>;
86
109
  /**
87
110
  * A signal that acts as a boolean flag. It is set to `true` when the user
88
111
  * attempts to upload a file with an unsupported extension.
@@ -161,8 +184,10 @@ export declare class DropZoneComponent {
161
184
  carouselRight(): void;
162
185
  handleTagChange(event: {
163
186
  fileName: string;
164
- tag: string;
187
+ tag: DocumentTag | null;
165
188
  }): void;
189
+ setInvalid(): void;
190
+ clearInvalid(): void;
166
191
  static ɵfac: i0.ɵɵFactoryDeclaration<DropZoneComponent, never>;
167
- static ɵcmp: i0.ɵɵComponentDeclaration<DropZoneComponent, "app-drop-zone", never, { "crop": { "alias": "crop"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "excludedFileTypes": { "alias": "excludedFileTypes"; "required": false; "isSignal": true; }; "fileTypes": { "alias": "fileTypes"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
192
+ static ɵcmp: i0.ɵɵComponentDeclaration<DropZoneComponent, "cai-drop-zone", never, { "crop": { "alias": "crop"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "files": { "alias": "files"; "required": false; "isSignal": true; }; "deletedFileIds": { "alias": "deletedFileIds"; "required": false; "isSignal": true; }; "maxCountFiles": { "alias": "maxCountFiles"; "required": false; "isSignal": true; }; "parentForm": { "alias": "parentForm"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "documentTags": { "alias": "documentTags"; "required": false; "isSignal": true; }; "excludedFileTypes": { "alias": "excludedFileTypes"; "required": false; "isSignal": true; }; "fileTypes": { "alias": "fileTypes"; "required": false; "isSignal": true; }; }, { "onDeletedFileIds": "onDeletedFileIds"; "docsChange": "docsChange"; }, never, never, true, never>;
168
193
  }
@@ -0,0 +1,10 @@
1
+ export interface FileResponse {
2
+ fileId?: number;
3
+ fileName?: string | null;
4
+ url?: string | null;
5
+ fileSize?: number | null;
6
+ tags?: Array<string> | null;
7
+ tagGeneratedByUser?: boolean;
8
+ updatedAt?: string | null;
9
+ companyUserId?: number | null;
10
+ }
@@ -0,0 +1 @@
1
+ export * from './mask.helper';
@@ -0,0 +1,15 @@
1
+ export declare class MaskHelper {
2
+ static extractUserInput(value: string): string;
3
+ static isPlaceholder(char: string): boolean;
4
+ static charMatchesPlaceholder(char: string, placeholder: string): boolean;
5
+ /**
6
+ * Applies the mask to a given string of user input.
7
+ * @param realValue The clean user input.
8
+ * @param mask The mask pattern.
9
+ * @returns An object with the formatted value and the final real value.
10
+ */
11
+ static applyMask(realValue: string, mask: string): {
12
+ formattedValue: string;
13
+ finalRealValue: string;
14
+ };
15
+ }
@@ -11,6 +11,7 @@ export declare class MaskDirective implements OnInit {
11
11
  * @example '(000) 000-0000' for a phone number.
12
12
  */
13
13
  appMask: import("@angular/core").InputSignal<string>;
14
+ reveal: import("@angular/core").InputSignal<number>;
14
15
  /**
15
16
  * Stores the unmasked, "real" value of the input, containing only
16
17
  * the characters entered by the user that fit the mask placeholders.
@@ -49,21 +50,6 @@ export declare class MaskDirective implements OnInit {
49
50
  * @param value The current value from the input field.
50
51
  */
51
52
  private formatValue;
52
- /**
53
- * Applies the mask to a given string of user input.
54
- * @param realValue The clean user input.
55
- * @param mask The mask pattern.
56
- * @returns An object with the formatted value and the final real value.
57
- */
58
- private applyMask;
59
- /**
60
- * Extracts valid user input characters from a string.
61
- * @param value The string to clean.
62
- * @returns A string containing only valid mask characters (digits/letters).
63
- */
64
- private extractUserInput;
65
- private isPlaceholder;
66
- private charMatchesPlaceholder;
67
53
  private setCursorToEnd;
68
54
  private dispatchRealValueChange;
69
55
  /**
@@ -77,5 +63,5 @@ export declare class MaskDirective implements OnInit {
77
63
  */
78
64
  setRealValue(value: string): void;
79
65
  static ɵfac: i0.ɵɵFactoryDeclaration<MaskDirective, never>;
80
- static ɵdir: i0.ɵɵDirectiveDeclaration<MaskDirective, "[appMask]", never, { "appMask": { "alias": "appMask"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
66
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MaskDirective, "[appMask]", never, { "appMask": { "alias": "appMask"; "required": false; "isSignal": true; }; "reveal": { "alias": "reveal"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
81
67
  }
@@ -16,6 +16,11 @@ export declare class NumberFormatDirective implements OnInit {
16
16
  * Defaults to true, meaning formatting is active by default.
17
17
  */
18
18
  isNumberFormattingDisabled: import("@angular/core").InputSignal<boolean>;
19
+ /**
20
+ * Input property to enable or disable the number formatting.
21
+ * Defaults to true, meaning formatting is active by default.
22
+ */
23
+ disableDecimals: import("@angular/core").InputSignal<boolean>;
19
24
  prefix: import("@angular/core").InputSignal<string>;
20
25
  /**
21
26
  * Stores the unformatted, "real" numeric value of the input.
@@ -111,5 +116,5 @@ export declare class NumberFormatDirective implements OnInit {
111
116
  */
112
117
  setRealValue(value: string): void;
113
118
  static ɵfac: i0.ɵɵFactoryDeclaration<NumberFormatDirective, never>;
114
- static ɵdir: i0.ɵɵDirectiveDeclaration<NumberFormatDirective, "[appNumberFormat]", never, { "appNumberFormat": { "alias": "appNumberFormat"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "isNumberFormattingDisabled": { "alias": "isNumberFormattingDisabled"; "required": false; "isSignal": true; }; "prefix": { "alias": "prefix"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
119
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NumberFormatDirective, "[appNumberFormat]", never, { "appNumberFormat": { "alias": "appNumberFormat"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "isNumberFormattingDisabled": { "alias": "isNumberFormattingDisabled"; "required": false; "isSignal": true; }; "disableDecimals": { "alias": "disableDecimals"; "required": false; "isSignal": true; }; "prefix": { "alias": "prefix"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
115
120
  }
@@ -19,6 +19,8 @@ export declare class PasswordDirective implements OnInit {
19
19
  * password should be revealed. Defaults to 0 (fully masked).
20
20
  */
21
21
  reveal: import("@angular/core").InputSignal<number>;
22
+ appMask: import("@angular/core").InputSignal<string>;
23
+ max: import("@angular/core").InputSignal<number | undefined>;
22
24
  /**
23
25
  * Stores the actual, unmasked password value,
24
26
  * while the input element displays a masked version.
@@ -94,5 +96,5 @@ export declare class PasswordDirective implements OnInit {
94
96
  */
95
97
  setRealValue(value: string): void;
96
98
  static ɵfac: i0.ɵɵFactoryDeclaration<PasswordDirective, never>;
97
- static ɵdir: i0.ɵɵDirectiveDeclaration<PasswordDirective, "[appPassword]", never, { "appPassword": { "alias": "appPassword"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "account": { "alias": "account"; "required": false; "isSignal": true; }; "reveal": { "alias": "reveal"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
99
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PasswordDirective, "[appPassword]", never, { "appPassword": { "alias": "appPassword"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "account": { "alias": "account"; "required": false; "isSignal": true; }; "reveal": { "alias": "reveal"; "required": false; "isSignal": true; }; "appMask": { "alias": "appMask"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
98
100
  }
@@ -4,7 +4,7 @@ import { PasswordDirective } from './directives/password.directive';
4
4
  import { NumberFormatDirective } from './directives/number-format.directive';
5
5
  import { MaskDirective } from './directives/mask.directive';
6
6
  import { NgbPopover } from '@ng-bootstrap/ng-bootstrap';
7
- import { Bank, Broker, CaiInputConfig, Contact, Dispatcher, DropdownOption, LabelColor, LabelOption, Shipper, Dispatch, DropdownArrays, DropdownOptions, TruckType, TrailerType, Hazardous, State, Owner, FuelCard, PMOption } from './models';
7
+ import { Bank, Broker, CaiInputConfig, Contact, Dispatcher, DropdownOption, LabelColor, LabelOption, Shipper, Dispatch, DropdownArrays, DropdownOptions, TruckType, TrailerType, Hazardous, State, Owner, FuelCard, PMOption, MakeOption, ColorOption, TollOption, TollTransponderOption, FuelStopStore, Franchise, DropdownGroups, Provider } from './models';
8
8
  import * as i0 from "@angular/core";
9
9
  /**
10
10
  * This component is a generic input component that can be used to create various types of inputs.
@@ -35,6 +35,11 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
35
35
  stateRef: any;
36
36
  ownerRef: any;
37
37
  fuelcardRef: any;
38
+ colorRef: any;
39
+ makeRef: any;
40
+ tollRef: any;
41
+ fuelStopTransactionRef: any;
42
+ providerRef: any;
38
43
  pmRef: any;
39
44
  selectedPmRef: any;
40
45
  selectedOwnerRef: any;
@@ -50,6 +55,10 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
50
55
  selectedTrailerRef: any;
51
56
  selectedStateRef: any;
52
57
  selectedFuelcardRef: any;
58
+ selectedColorRef: any;
59
+ selectedMakeRef: any;
60
+ selectedTollRef: any;
61
+ selectedProviderRef: any;
53
62
  /**
54
63
  * Defines the unique identifier for the input element.
55
64
  * It is provided by the parent component as an Angular `input()` signal.
@@ -100,14 +109,26 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
100
109
  * Input property to hold the dropdown options.
101
110
  */
102
111
  options: import("@angular/core").InputSignal<DropdownArrays>;
112
+ preselectedOptions: import("@angular/core").InputSignal<DropdownArrays | null>;
113
+ isLoading: import("@angular/core").InputSignal<boolean>;
103
114
  /**
104
115
  * Input property to hold the label colors for the label picker.
105
116
  */
106
117
  labelColors: import("@angular/core").InputSignal<LabelColor[] | undefined>;
118
+ /**
119
+ * Input property to hide the validation.
120
+ */
121
+ hideValidation: import("@angular/core").InputSignal<boolean>;
122
+ /**
123
+ * Input property to show the no results message.
124
+ */
125
+ showNoResults: import("@angular/core").InputSignal<boolean>;
107
126
  /**
108
127
  * Preselected dropdown option
109
128
  */
110
129
  preselectedUnit: import("@angular/core").InputSignal<string | null>;
130
+ openGroup: import("@angular/core").WritableSignal<number | null>;
131
+ closing: import("@angular/core").WritableSignal<boolean>;
111
132
  /**
112
133
  * Internal signal to track the disabled state of the input.
113
134
  */
@@ -157,16 +178,24 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
157
178
  * A signal that holds the currently selected dispatch board from the dispatch board picker.
158
179
  */
159
180
  foldedBoards: import("@angular/core").WritableSignal<number[]>;
181
+ randomAutocomplete: import("@angular/core").WritableSignal<string>;
160
182
  /**
161
183
  * A computed signal that indicates whether the placeholder selected option should be shown.
162
184
  */
163
185
  hasText: import("@angular/core").Signal<boolean>;
186
+ /**
187
+ * A signal that holds the container width to prevent ExpressionChangedAfterItHasBeenCheckedError.
188
+ */
189
+ containerWidth: import("@angular/core").WritableSignal<number>;
164
190
  /**
165
191
  * A computed signal that dynamically calculates the step value for number inputs.
166
192
  */
167
193
  step: import("@angular/core").Signal<number>;
168
194
  combinedOptions: import("@angular/core").Signal<DropdownArrays>;
169
195
  dispatchCount: import("@angular/core").Signal<number>;
196
+ onBlur: import("@angular/core").OutputEmitterRef<void>;
197
+ onFocused: import("@angular/core").OutputEmitterRef<void>;
198
+ onValueChange: import("@angular/core").OutputEmitterRef<string | number | null>;
170
199
  /**
171
200
  * An output signal that emits the value of the added option.
172
201
  */
@@ -179,6 +208,8 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
179
208
  * An output signal that emits the `optionValue` or `id` of the changed dropdown option.
180
209
  */
181
210
  onSelectionChange: import("@angular/core").OutputEmitterRef<any>;
211
+ onSelectedObject: import("@angular/core").OutputEmitterRef<DropdownOptions | null>;
212
+ onSelectedGroup: import("@angular/core").OutputEmitterRef<Franchise | null>;
182
213
  /**
183
214
  * An output signal that emits when the user clicks on the "CLEAR" button.
184
215
  */
@@ -187,6 +218,12 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
187
218
  * An output signal that emits when the user clicks on the "AUTOFILL" button.
188
219
  */
189
220
  onAutofill: import("@angular/core").OutputEmitterRef<void>;
221
+ /**
222
+ * An output signal that emits when the dropdown is scrolled to the bottom for infinite scroll functionality.
223
+ */
224
+ onScrolledToBottom: import("@angular/core").OutputEmitterRef<void>;
225
+ onScrolledToBottomGroup: import("@angular/core").OutputEmitterRef<void>;
226
+ onSearch: import("@angular/core").OutputEmitterRef<string>;
190
227
  /**
191
228
  * Constructor for the InputComponent.
192
229
  * It injects NgControl to integrate with Angular's forms API.
@@ -212,6 +249,10 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
212
249
  * Sets up autofill detection by checking for Chrome's -webkit-autofill CSS pseudo-class
213
250
  */
214
251
  private setupAutofillDetection;
252
+ /**
253
+ * Updates the container width signal to prevent ExpressionChangedAfterItHasBeenCheckedError
254
+ */
255
+ private updateContainerWidth;
215
256
  /**
216
257
  * Handles the native 'input' event from the HTMLInputElement.
217
258
  * Updates the component's internal value and notifies Angular forms
@@ -274,12 +315,13 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
274
315
  /**
275
316
  * Called when the input element loses focus (blur event).
276
317
  */
277
- onBlur(): void;
318
+ dispatchOnBlur(): void;
278
319
  toggleHovered(value: boolean): void;
279
320
  /**
280
321
  * Resets the input field's value to an empty string.
281
322
  */
282
323
  reset(): void;
324
+ closeDropdown(addNew?: boolean): void;
283
325
  /**
284
326
  * Returns the reference to the dropdown element based on the dropdown type.
285
327
  */
@@ -288,6 +330,7 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
288
330
  * Returns the reference to the selected element based on the dropdown type.
289
331
  */
290
332
  getSelectedRef(): any;
333
+ randomizeAutocomplete(): string;
291
334
  /**
292
335
  * Type guard that checks if a given property exists on an object.
293
336
  * @param obj The object to check.
@@ -313,7 +356,7 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
313
356
  * @param event - The MouseEvent that initiated the action.
314
357
  */
315
358
  handleAddingOption(event?: MouseEvent): void;
316
- fold(boardId: number, event: MouseEvent): void;
359
+ fold(boardId: number, event: MouseEvent, group?: DropdownGroups): void;
317
360
  handleSelectColor(color: LabelColor, event?: MouseEvent): void;
318
361
  getBrokerProgress(broker: Broker, disable?: boolean): {
319
362
  activePercentageOfPaid: number;
@@ -334,6 +377,18 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
334
377
  castAsOwner(value: unknown): Owner | null;
335
378
  castAsFuelCard(value: unknown): FuelCard | null;
336
379
  castAsPMOption(value: unknown): PMOption | null;
380
+ castAsColorOption(value: unknown): ColorOption | null;
381
+ castAsMake(value: unknown): MakeOption | null;
382
+ castAsTollOption(value: unknown): TollOption | null;
383
+ castAsTollTransponderOption(value: unknown): TollTransponderOption | null;
384
+ castAsFuelStopStore(value: unknown): FuelStopStore | null;
385
+ castAsFranchise(value: unknown): Franchise | null;
386
+ castAsProvider(value: unknown): Provider | null;
387
+ /**
388
+ * Handles infinite scroll event when dropdown is scrolled to bottom
389
+ * Emits an event that parent components can listen to for loading more data
390
+ */
391
+ onDropdownScrolledToBottom(isGroup?: boolean): void;
337
392
  static ɵfac: i0.ɵɵFactoryDeclaration<InputComponent, [{ optional: true; self: true; }, null]>;
338
- static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "cai-input", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "labelColors": { "alias": "labelColors"; "required": false; "isSignal": true; }; "preselectedUnit": { "alias": "preselectedUnit"; "required": false; "isSignal": true; }; }, { "onOptionAdded": "onOptionAdded"; "onAdd": "onAdd"; "onSelectionChange": "onSelectionChange"; "onClear": "onClear"; "onAutofill": "onAutofill"; }, never, never, true, never>;
393
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "cai-input", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "preselectedOptions": { "alias": "preselectedOptions"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "labelColors": { "alias": "labelColors"; "required": false; "isSignal": true; }; "hideValidation": { "alias": "hideValidation"; "required": false; "isSignal": true; }; "showNoResults": { "alias": "showNoResults"; "required": false; "isSignal": true; }; "preselectedUnit": { "alias": "preselectedUnit"; "required": false; "isSignal": true; }; }, { "onBlur": "onBlur"; "onFocused": "onFocused"; "onValueChange": "onValueChange"; "onOptionAdded": "onOptionAdded"; "onAdd": "onAdd"; "onSelectionChange": "onSelectionChange"; "onSelectedObject": "onSelectedObject"; "onSelectedGroup": "onSelectedGroup"; "onClear": "onClear"; "onAutofill": "onAutofill"; "onScrolledToBottom": "onScrolledToBottom"; "onScrolledToBottomGroup": "onScrolledToBottomGroup"; "onSearch": "onSearch"; }, never, never, true, never>;
339
394
  }
@@ -1,4 +1,4 @@
1
- import { AvatarColor, AvatarFile } from '../../avatar/models';
1
+ import { AvatarFile, ColorFlag } from '../../avatar/models';
2
2
  export type DropdownOption = {
3
3
  id?: number;
4
4
  [key: string]: any;
@@ -31,7 +31,7 @@ export type Driver = {
31
31
  lastName: string;
32
32
  owner?: boolean | null;
33
33
  avatarFile?: AvatarFile | null;
34
- colorFlag?: AvatarColor | null;
34
+ colorFlag?: ColorFlag | null;
35
35
  status?: number;
36
36
  address: string | null;
37
37
  payType: {
@@ -60,6 +60,7 @@ export type TruckColor = {
60
60
  export type TruckType = {
61
61
  id: number;
62
62
  companyId?: number | null;
63
+ truckNumber?: string | null;
63
64
  name: string;
64
65
  logoName: string;
65
66
  };
@@ -178,6 +179,7 @@ export type Dispatcher = {
178
179
  fullName: string;
179
180
  avatarFile: AvatarFile | null;
180
181
  departmentId: number | null;
182
+ colorFlag?: ColorFlag | null;
181
183
  };
182
184
  export type TruckOption = {
183
185
  id: number;
@@ -228,3 +230,43 @@ export type PMOption = {
228
230
  months?: number | null;
229
231
  logoName?: string | null;
230
232
  };
233
+ export type ColorOption = {
234
+ id?: number;
235
+ companyId?: number | null;
236
+ name?: string | null;
237
+ code?: string | null;
238
+ hoverCode?: string | null;
239
+ };
240
+ export type MakeOption = {
241
+ id?: number;
242
+ companyId?: number | null;
243
+ name?: string | null;
244
+ logoName?: string | null;
245
+ };
246
+ export type TollOption = {
247
+ groupName?: string | null;
248
+ tollTransponders?: TollTransponderOption[] | null;
249
+ };
250
+ export type TollTransponderOption = {
251
+ name?: string | null;
252
+ id?: number;
253
+ };
254
+ export type Franchise = {
255
+ id: number;
256
+ businessName: string;
257
+ count: number;
258
+ fuelStopStores: FuelStopStore[];
259
+ [key: string]: any;
260
+ };
261
+ export type FuelStopStore = {
262
+ id: number;
263
+ companyId: number;
264
+ businessName: string;
265
+ store: string;
266
+ address: Address;
267
+ [key: string]: any;
268
+ };
269
+ export type Provider = {
270
+ id: number;
271
+ name: string;
272
+ };