carriera-intern-components 1.1.15 → 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 (79) 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 +49 -4
  16. package/app/components/input/models/dropdown.model.d.ts +23 -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 +1874 -884
  49. package/fesm2022/carriera-intern-components.mjs.map +1 -1
  50. package/package.json +1 -1
  51. package/public/assets/icons/cai-edit.svg +3 -3
  52. package/public/assets/icons/cai-loader.svg +3 -0
  53. package/public/assets/icons/fuel-contact/cai-fuel-card.svg +3 -0
  54. package/public/assets/icons/fuel-contact/cai-user-2.svg +3 -0
  55. package/public/assets/icons/general/cai-date.svg +1 -1
  56. package/public/assets/icons/integration/cai-efs.svg +4 -0
  57. package/public/assets/icons/interaction/cai-copy.svg +3 -0
  58. package/public/assets/icons/interaction/cai-favorite.svg +3 -0
  59. package/public/assets/icons/interaction/cai_time.svg +1 -1
  60. package/public/assets/json/icons.json +24 -0
  61. package/public/pdfjs/pdf.worker.min.mjs +30 -0
  62. package/public-api.d.ts +9 -3
  63. package/src/styles/README.md +57 -0
  64. package/src/styles/_variables.scss +288 -0
  65. package/src/styles/cropper.scss +33 -0
  66. package/src/styles/custompickers.scss +822 -0
  67. package/src/styles/popover.scss +18 -0
  68. package/src/styles/review_variables.scss +40 -0
  69. package/src/styles/tooltip.scss +85 -0
  70. package/src/styles/utility/colors.scss +265 -0
  71. package/src/styles/utility/utilities.scss +6 -0
  72. package/src/styles.scss +6 -69
  73. package/app/components/input-datetime-picker/pipes/input-clear-class.pipe.d.ts +0 -14
  74. package/app/components/input-datetime-picker/pipes/input-date-time-container-class.pipe.d.ts +0 -11
  75. package/app/components/input-datetime-picker/pipes/input-dropdown-arrow-class.pipe.d.ts +0 -11
  76. package/app/components/input-datetime-picker/pipes/input-placeholder-icon.class.pipe.d.ts +0 -11
  77. package/app/components/input-datetime-picker/pipes/show-clear.pipe.d.ts +0 -8
  78. package/app/directives/hover-svg-directives.d.ts +0 -15
  79. 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<18 | 22 | 32 | 74 | 160>;
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, MakeOption, ColorOption, TollOption, TollTransponderOption } 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.
@@ -38,6 +38,8 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
38
38
  colorRef: any;
39
39
  makeRef: any;
40
40
  tollRef: any;
41
+ fuelStopTransactionRef: any;
42
+ providerRef: any;
41
43
  pmRef: any;
42
44
  selectedPmRef: any;
43
45
  selectedOwnerRef: any;
@@ -56,6 +58,7 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
56
58
  selectedColorRef: any;
57
59
  selectedMakeRef: any;
58
60
  selectedTollRef: any;
61
+ selectedProviderRef: any;
59
62
  /**
60
63
  * Defines the unique identifier for the input element.
61
64
  * It is provided by the parent component as an Angular `input()` signal.
@@ -106,14 +109,26 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
106
109
  * Input property to hold the dropdown options.
107
110
  */
108
111
  options: import("@angular/core").InputSignal<DropdownArrays>;
112
+ preselectedOptions: import("@angular/core").InputSignal<DropdownArrays | null>;
113
+ isLoading: import("@angular/core").InputSignal<boolean>;
109
114
  /**
110
115
  * Input property to hold the label colors for the label picker.
111
116
  */
112
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>;
113
126
  /**
114
127
  * Preselected dropdown option
115
128
  */
116
129
  preselectedUnit: import("@angular/core").InputSignal<string | null>;
130
+ openGroup: import("@angular/core").WritableSignal<number | null>;
131
+ closing: import("@angular/core").WritableSignal<boolean>;
117
132
  /**
118
133
  * Internal signal to track the disabled state of the input.
119
134
  */
@@ -163,16 +178,24 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
163
178
  * A signal that holds the currently selected dispatch board from the dispatch board picker.
164
179
  */
165
180
  foldedBoards: import("@angular/core").WritableSignal<number[]>;
181
+ randomAutocomplete: import("@angular/core").WritableSignal<string>;
166
182
  /**
167
183
  * A computed signal that indicates whether the placeholder selected option should be shown.
168
184
  */
169
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>;
170
190
  /**
171
191
  * A computed signal that dynamically calculates the step value for number inputs.
172
192
  */
173
193
  step: import("@angular/core").Signal<number>;
174
194
  combinedOptions: import("@angular/core").Signal<DropdownArrays>;
175
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>;
176
199
  /**
177
200
  * An output signal that emits the value of the added option.
178
201
  */
@@ -185,6 +208,8 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
185
208
  * An output signal that emits the `optionValue` or `id` of the changed dropdown option.
186
209
  */
187
210
  onSelectionChange: import("@angular/core").OutputEmitterRef<any>;
211
+ onSelectedObject: import("@angular/core").OutputEmitterRef<DropdownOptions | null>;
212
+ onSelectedGroup: import("@angular/core").OutputEmitterRef<Franchise | null>;
188
213
  /**
189
214
  * An output signal that emits when the user clicks on the "CLEAR" button.
190
215
  */
@@ -193,6 +218,12 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
193
218
  * An output signal that emits when the user clicks on the "AUTOFILL" button.
194
219
  */
195
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>;
196
227
  /**
197
228
  * Constructor for the InputComponent.
198
229
  * It injects NgControl to integrate with Angular's forms API.
@@ -218,6 +249,10 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
218
249
  * Sets up autofill detection by checking for Chrome's -webkit-autofill CSS pseudo-class
219
250
  */
220
251
  private setupAutofillDetection;
252
+ /**
253
+ * Updates the container width signal to prevent ExpressionChangedAfterItHasBeenCheckedError
254
+ */
255
+ private updateContainerWidth;
221
256
  /**
222
257
  * Handles the native 'input' event from the HTMLInputElement.
223
258
  * Updates the component's internal value and notifies Angular forms
@@ -280,12 +315,13 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
280
315
  /**
281
316
  * Called when the input element loses focus (blur event).
282
317
  */
283
- onBlur(): void;
318
+ dispatchOnBlur(): void;
284
319
  toggleHovered(value: boolean): void;
285
320
  /**
286
321
  * Resets the input field's value to an empty string.
287
322
  */
288
323
  reset(): void;
324
+ closeDropdown(addNew?: boolean): void;
289
325
  /**
290
326
  * Returns the reference to the dropdown element based on the dropdown type.
291
327
  */
@@ -294,6 +330,7 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
294
330
  * Returns the reference to the selected element based on the dropdown type.
295
331
  */
296
332
  getSelectedRef(): any;
333
+ randomizeAutocomplete(): string;
297
334
  /**
298
335
  * Type guard that checks if a given property exists on an object.
299
336
  * @param obj The object to check.
@@ -319,7 +356,7 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
319
356
  * @param event - The MouseEvent that initiated the action.
320
357
  */
321
358
  handleAddingOption(event?: MouseEvent): void;
322
- fold(boardId: number, event: MouseEvent): void;
359
+ fold(boardId: number, event: MouseEvent, group?: DropdownGroups): void;
323
360
  handleSelectColor(color: LabelColor, event?: MouseEvent): void;
324
361
  getBrokerProgress(broker: Broker, disable?: boolean): {
325
362
  activePercentageOfPaid: number;
@@ -344,6 +381,14 @@ export declare class InputComponent implements ControlValueAccessor, AfterViewIn
344
381
  castAsMake(value: unknown): MakeOption | null;
345
382
  castAsTollOption(value: unknown): TollOption | null;
346
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;
347
392
  static ɵfac: i0.ɵɵFactoryDeclaration<InputComponent, [{ optional: true; self: true; }, null]>;
348
- 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>;
349
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;
@@ -249,3 +251,22 @@ export type TollTransponderOption = {
249
251
  name?: string | null;
250
252
  id?: number;
251
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
+ };