@ti-tecnologico-de-monterrey-oficial/ds-ng 1.5.1318-d → 1.5.1318-e

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 (62) hide show
  1. package/assets/i18n/en.json +5 -1
  2. package/assets/i18n/es.json +6 -2
  3. package/assets/styles/main.min.css +1 -1
  4. package/assets/styles/main.min.css.map +1 -1
  5. package/assets/styles/micro.min.css +1 -0
  6. package/assets/styles/micro.min.css.map +1 -0
  7. package/esm2022/assets/i18n/en.json +5 -1
  8. package/esm2022/assets/i18n/es.json +6 -2
  9. package/esm2022/lib/components/bmb-account-statement/bmb-account-statement.component.mjs +2 -2
  10. package/esm2022/lib/components/bmb-calendar/bmb-calendar.component.mjs +9 -4
  11. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-mobile/bmb-calendar-template-mobile.component.mjs +13 -8
  12. package/esm2022/lib/components/bmb-check-external-link-button/bmb-check-external-link-button.component.mjs +3 -3
  13. package/esm2022/lib/components/bmb-checkbox/bmb-checkbox.component.mjs +1 -1
  14. package/esm2022/lib/components/bmb-datepicker/bmb-datepicker.component.mjs +2 -2
  15. package/esm2022/lib/components/bmb-digital-id/bmb-digital-id.component.mjs +2 -2
  16. package/esm2022/lib/components/bmb-dropdown/bmb-dropdown.component.mjs +4 -2
  17. package/esm2022/lib/components/bmb-dropzone/bmb-dropzone.component.mjs +177 -91
  18. package/esm2022/lib/components/bmb-filter-card/bmb-filter-card.component.mjs +2 -2
  19. package/esm2022/lib/components/bmb-input/bmb-input-validator/bmb-input-validator.component.mjs +3 -2
  20. package/esm2022/lib/components/bmb-input/bmb-input.component.mjs +2 -2
  21. package/esm2022/lib/components/bmb-input-phone-number/bmb-input-phone-number.component.mjs +2 -2
  22. package/esm2022/lib/components/bmb-input-tags/bmb-input-tags.component.mjs +2 -2
  23. package/esm2022/lib/components/bmb-progress-bar/bmb-progress-bar.component.mjs +30 -9
  24. package/esm2022/lib/components/bmb-radial/bmb-radial.component.mjs +1 -1
  25. package/esm2022/lib/components/bmb-search-input/bmb-search-input.component.mjs +1 -1
  26. package/esm2022/lib/components/bmb-switch/bmb-switch.component.mjs +5 -7
  27. package/esm2022/lib/components/bmb-tables/bmb-tables.component.mjs +66 -8
  28. package/esm2022/lib/components/bmb-text-editor/bmb-text-editor-prompt/bmb-text-editor-prompt.component.mjs +5 -5
  29. package/esm2022/lib/components/bmb-text-link/bmb-text-link.component.mjs +11 -17
  30. package/esm2022/lib/components/bmb-value-counter/bmb-value-counter.component.mjs +33 -15
  31. package/esm2022/lib/components/utils/bmb-dropdown-content/bmb-dropdown-content.component.mjs +6 -2
  32. package/esm2022/lib/directives/bmb-layout/bmb-vertical-layout/bmb-vertical-layout-item.directive.mjs +6 -3
  33. package/esm2022/lib/utils/formControl.mjs +6 -4
  34. package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs +357 -170
  35. package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs.map +1 -1
  36. package/lib/components/bmb-dropdown/bmb-dropdown.component.d.ts +3 -2
  37. package/lib/components/bmb-dropzone/bmb-dropzone.component.d.ts +39 -20
  38. package/lib/components/bmb-input/bmb-input-validator/bmb-input-validator.component.d.ts +3 -2
  39. package/lib/components/bmb-progress-bar/bmb-progress-bar.component.d.ts +8 -2
  40. package/lib/components/bmb-tables/bmb-tables.component.d.ts +8 -1
  41. package/lib/components/bmb-text-link/bmb-text-link.component.d.ts +1 -2
  42. package/lib/components/bmb-value-counter/bmb-value-counter.component.d.ts +10 -4
  43. package/lib/components/utils/bmb-dropdown-content/bmb-dropdown-content.component.d.ts +2 -1
  44. package/lib/directives/bmb-layout/bmb-vertical-layout/bmb-vertical-layout-item.directive.d.ts +2 -1
  45. package/lib/utils/formControl.d.ts +2 -2
  46. package/package.json +4 -4
  47. package/esm2022/lib/services/calendar.service.mjs +0 -51
  48. package/esm2022/lib/services/index.mjs +0 -3
  49. package/esm2022/lib/services/native-modal.service.mjs +0 -60
  50. package/esm2022/lib/services/notification.service.mjs +0 -84
  51. package/esm2022/lib/services/projection.service.mjs +0 -49
  52. package/esm2022/lib/services/tabs.service.mjs +0 -30
  53. package/esm2022/lib/services/theme.service.mjs +0 -30
  54. package/esm2022/lib/services/toast.service.mjs +0 -24
  55. package/lib/services/calendar.service.d.ts +0 -15
  56. package/lib/services/index.d.ts +0 -2
  57. package/lib/services/native-modal.service.d.ts +0 -18
  58. package/lib/services/notification.service.d.ts +0 -20
  59. package/lib/services/projection.service.d.ts +0 -31
  60. package/lib/services/tabs.service.d.ts +0 -13
  61. package/lib/services/theme.service.d.ts +0 -11
  62. package/lib/services/toast.service.d.ts +0 -9
@@ -12,7 +12,7 @@ export interface IBmbDropdownItem {
12
12
  id?: string;
13
13
  }
14
14
  export declare class BmbDropdownComponent implements OnInit, OnChanges {
15
- private projectionService;
15
+ private readonly projectionService;
16
16
  required: import("@angular/core").InputSignal<boolean>;
17
17
  showIcon: import("@angular/core").InputSignal<boolean>;
18
18
  placeholder: import("@angular/core").InputSignal<string>;
@@ -31,6 +31,7 @@ export declare class BmbDropdownComponent implements OnInit, OnChanges {
31
31
  isFilterable: import("@angular/core").InputSignal<boolean>;
32
32
  inputId: import("@angular/core").InputSignal<string>;
33
33
  customValidation: import("@angular/core").InputSignal<ValidatorFn | undefined>;
34
+ customFilterFunction: import("@angular/core").InputSignal<((item: IDropdownItem, filter: string) => boolean) | null>;
34
35
  control: import("@angular/core").ModelSignal<FormControl<any>>;
35
36
  onValueChange: import("@angular/core").OutputEmitterRef<any>;
36
37
  onFocus: import("@angular/core").OutputEmitterRef<boolean>;
@@ -58,5 +59,5 @@ export declare class BmbDropdownComponent implements OnInit, OnChanges {
58
59
  handleValidity(): void;
59
60
  get shouldShowError(): boolean;
60
61
  static ɵfac: i0.ɵɵFactoryDeclaration<BmbDropdownComponent, never>;
61
- static ɵcmp: i0.ɵɵComponentDeclaration<BmbDropdownComponent, "bmb-dropdown", never, { "required": { "alias": "required"; "required": false; "isSignal": true; }; "showIcon": { "alias": "showIcon"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "preferredOptions": { "alias": "preferredOptions"; "required": false; "isSignal": true; }; "isMultiSelect": { "alias": "isMultiSelect"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "isFilterable": { "alias": "isFilterable"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "customValidation": { "alias": "customValidation"; "required": false; "isSignal": true; }; "control": { "alias": "control"; "required": false; "isSignal": true; }; "isModalOpen": { "alias": "isModalOpen"; "required": false; "isSignal": true; }; }, { "control": "controlChange"; "onValueChange": "onValueChange"; "onFocus": "onFocus"; "isModalOpen": "isModalOpenChange"; }, never, never, true, never>;
62
+ static ɵcmp: i0.ɵɵComponentDeclaration<BmbDropdownComponent, "bmb-dropdown", never, { "required": { "alias": "required"; "required": false; "isSignal": true; }; "showIcon": { "alias": "showIcon"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "preferredOptions": { "alias": "preferredOptions"; "required": false; "isSignal": true; }; "isMultiSelect": { "alias": "isMultiSelect"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "isFilterable": { "alias": "isFilterable"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "customValidation": { "alias": "customValidation"; "required": false; "isSignal": true; }; "customFilterFunction": { "alias": "customFilterFunction"; "required": false; "isSignal": true; }; "control": { "alias": "control"; "required": false; "isSignal": true; }; "isModalOpen": { "alias": "isModalOpen"; "required": false; "isSignal": true; }; }, { "control": "controlChange"; "onValueChange": "onValueChange"; "onFocus": "onFocus"; "isModalOpen": "isModalOpenChange"; }, never, never, true, never>;
62
63
  }
@@ -1,5 +1,7 @@
1
- import { ChangeDetectorRef, SimpleChanges } from '@angular/core';
1
+ import { ChangeDetectorRef, OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
2
  import { IBmbContrast } from '../../types/colors';
3
+ import { BmbTranslationsService } from '../../services/translations/translations.service';
4
+ import { FormControl, ValidatorFn } from '@angular/forms';
3
5
  import * as i0 from "@angular/core";
4
6
  interface FileData {
5
7
  name: string;
@@ -8,8 +10,9 @@ interface FileData {
8
10
  error?: boolean;
9
11
  errorType?: 'format' | 'size' | null;
10
12
  }
11
- export declare class BmbDropzoneComponent {
13
+ export declare class BmbDropzoneComponent implements OnInit, OnChanges {
12
14
  private cdr;
15
+ private translationService;
13
16
  appearanceContrast: import("@angular/core").InputSignal<IBmbContrast>;
14
17
  acceptedExtensions: import("@angular/core").InputSignal<string[]>;
15
18
  dropInstruction: import("@angular/core").InputSignal<string | undefined>;
@@ -17,7 +20,6 @@ export declare class BmbDropzoneComponent {
17
20
  errorMessage: import("@angular/core").InputSignal<string | undefined>;
18
21
  errorMessageFormat: import("@angular/core").InputSignal<string | undefined>;
19
22
  errorMessageSize: import("@angular/core").InputSignal<string | undefined>;
20
- fileDataList: FileData[];
21
23
  fileSize: import("@angular/core").InputSignal<number>;
22
24
  formatFilesLabel: import("@angular/core").InputSignal<string | undefined>;
23
25
  linkFilesSupported: import("@angular/core").InputSignal<string>;
@@ -26,28 +28,45 @@ export declare class BmbDropzoneComponent {
26
28
  multiple: import("@angular/core").InputSignal<boolean>;
27
29
  name: import("@angular/core").InputSignal<string>;
28
30
  progress: import("@angular/core").InputSignal<number | Record<string, number>>;
31
+ inputId: import("@angular/core").InputSignal<string>;
32
+ customValidation: import("@angular/core").InputSignal<ValidatorFn | undefined>;
33
+ control: import("@angular/core").ModelSignal<FormControl<any>>;
29
34
  newFile: import("@angular/core").OutputEmitterRef<File | File[]>;
30
35
  fileRemoved: import("@angular/core").OutputEmitterRef<string>;
31
- validFile: boolean;
32
- input?: HTMLInputElement;
33
- constructor(cdr: ChangeDetectorRef);
36
+ fileDataList: FileData[];
37
+ isControlNull: boolean;
38
+ constructor(cdr: ChangeDetectorRef, translationService: BmbTranslationsService);
39
+ ngOnInit(): void;
34
40
  ngOnChanges(changes: SimpleChanges): void;
35
- onFileSelected(event: Event): void;
36
- private isValidFileType;
37
- private getFileSizeInMB;
38
- private isValidFileSize;
39
- private isFileDuplicate;
41
+ protected getDropZoneClass(): string[];
42
+ protected get errorMessageLabel(): string;
43
+ protected getAvatarIcon(file: FileData): string;
44
+ protected getFileName(file: FileData): string;
45
+ protected getFormatProgress(value: string, total: string): string;
46
+ protected getFormatSize(_: any, total: string): string;
47
+ protected getFormatSizeError(_: any, total: string): string;
48
+ protected getFileSizeInMB(fileSize: number): number;
49
+ protected getProgress(file: FileData): number;
50
+ protected get organizedFiles(): FileData[];
40
51
  private getFileAndValidate;
41
- removeFile(fileName: string): void;
42
- private onErrorFile;
43
- onDragOver(event: DragEvent): void;
44
- onDragLeave(event: DragEvent): void;
45
- onDrop(event: DragEvent): void;
46
- getProgress(fileName: string): number;
47
- isInvalidFileOnly(): boolean;
52
+ private isValidFileFormat;
53
+ protected isValidFileSize(fileSize: number): boolean;
54
+ private isFileDuplicate;
55
+ protected isUploadInProgress(file: FileData): boolean;
56
+ protected isUploadCompleted(file: FileData): boolean;
57
+ protected isErrorFiles(): boolean;
58
+ private isFormatError;
59
+ protected isFormatErrorFiles(): boolean;
60
+ private isSizeError;
61
+ protected isSizeErrorFiles(): boolean;
62
+ protected handleDragOver(event: DragEvent): void;
63
+ protected handleDragLeave(event: DragEvent): void;
64
+ protected handleDrop(event: DragEvent): void;
65
+ protected handleFileSelected(event: Event): void;
66
+ protected handleRemoveFile(fileName: string): void;
67
+ handleValidity(): void;
48
68
  reset(): void;
49
- getDropZoneClass(): string[];
50
69
  static ɵfac: i0.ɵɵFactoryDeclaration<BmbDropzoneComponent, never>;
51
- static ɵcmp: i0.ɵɵComponentDeclaration<BmbDropzoneComponent, "bmb-dropzone", never, { "appearanceContrast": { "alias": "appearanceContrast"; "required": false; "isSignal": true; }; "acceptedExtensions": { "alias": "acceptedExtensions"; "required": true; "isSignal": true; }; "dropInstruction": { "alias": "dropInstruction"; "required": false; "isSignal": true; }; "dropLabel": { "alias": "dropLabel"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "errorMessageFormat": { "alias": "errorMessageFormat"; "required": false; "isSignal": true; }; "errorMessageSize": { "alias": "errorMessageSize"; "required": false; "isSignal": true; }; "fileSize": { "alias": "fileSize"; "required": false; "isSignal": true; }; "formatFilesLabel": { "alias": "formatFilesLabel"; "required": false; "isSignal": true; }; "linkFilesSupported": { "alias": "linkFilesSupported"; "required": false; "isSignal": true; }; "linkLabel": { "alias": "linkLabel"; "required": false; "isSignal": true; }; "mainIcon": { "alias": "mainIcon"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "progress": { "alias": "progress"; "required": false; "isSignal": true; }; }, { "newFile": "newFile"; "fileRemoved": "fileRemoved"; }, never, never, true, never>;
70
+ static ɵcmp: i0.ɵɵComponentDeclaration<BmbDropzoneComponent, "bmb-dropzone", never, { "appearanceContrast": { "alias": "appearanceContrast"; "required": false; "isSignal": true; }; "acceptedExtensions": { "alias": "acceptedExtensions"; "required": true; "isSignal": true; }; "dropInstruction": { "alias": "dropInstruction"; "required": false; "isSignal": true; }; "dropLabel": { "alias": "dropLabel"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "errorMessageFormat": { "alias": "errorMessageFormat"; "required": false; "isSignal": true; }; "errorMessageSize": { "alias": "errorMessageSize"; "required": false; "isSignal": true; }; "fileSize": { "alias": "fileSize"; "required": false; "isSignal": true; }; "formatFilesLabel": { "alias": "formatFilesLabel"; "required": false; "isSignal": true; }; "linkFilesSupported": { "alias": "linkFilesSupported"; "required": false; "isSignal": true; }; "linkLabel": { "alias": "linkLabel"; "required": false; "isSignal": true; }; "mainIcon": { "alias": "mainIcon"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "progress": { "alias": "progress"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "customValidation": { "alias": "customValidation"; "required": false; "isSignal": true; }; "control": { "alias": "control"; "required": false; "isSignal": true; }; }, { "control": "controlChange"; "newFile": "newFile"; "fileRemoved": "fileRemoved"; }, never, never, true, never>;
52
71
  }
53
72
  export {};
@@ -3,7 +3,7 @@ import { IBmbInputError, IBmbInputTooltipPosition, IBmbInputType } from '../bmb-
3
3
  import { FormControl, ValidatorFn } from '@angular/forms';
4
4
  import { IBbmSidePosition } from '../../../types';
5
5
  import * as i0 from "@angular/core";
6
- export type IBmbInputValType = 'radio' | 'checkbox' | 'email' | 'phone' | 'switch';
6
+ export type IBmbInputValType = 'radio' | 'checkbox' | 'email' | 'phone' | 'switch' | 'file';
7
7
  export declare class BmbInputValidatorComponent implements OnInit {
8
8
  private cdr;
9
9
  inputId: import("@angular/core").InputSignal<string>;
@@ -29,6 +29,7 @@ export declare class BmbInputValidatorComponent implements OnInit {
29
29
  helperMessage: import("@angular/core").InputSignal<string>;
30
30
  errorMessage: import("@angular/core").InputSignal<string | IBmbInputError>;
31
31
  customValidation: import("@angular/core").InputSignal<ValidatorFn | ValidatorFn[] | undefined>;
32
+ isMultipleFile: import("@angular/core").InputSignal<boolean | null>;
32
33
  showError: import("@angular/core").ModelSignal<boolean>;
33
34
  control: import("@angular/core").ModelSignal<FormControl<any> | undefined>;
34
35
  constructor(cdr: ChangeDetectorRef);
@@ -41,5 +42,5 @@ export declare class BmbInputValidatorComponent implements OnInit {
41
42
  isFieldRequired(): boolean;
42
43
  getErrorMessage(): string;
43
44
  static ɵfac: i0.ɵɵFactoryDeclaration<BmbInputValidatorComponent, never>;
44
- static ɵcmp: i0.ɵɵComponentDeclaration<BmbInputValidatorComponent, "bmb-input-validator", never, { "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "labelPosition": { "alias": "labelPosition"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "isRequired": { "alias": "isRequired"; "required": false; "isSignal": true; }; "isDisabled": { "alias": "isDisabled"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "pattern": { "alias": "pattern"; "required": false; "isSignal": true; }; "jsonFormat": { "alias": "jsonFormat"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; "showMaxTextLength": { "alias": "showMaxTextLength"; "required": false; "isSignal": true; }; "helperMessage": { "alias": "helperMessage"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "customValidation": { "alias": "customValidation"; "required": false; "isSignal": true; }; "showError": { "alias": "showError"; "required": false; "isSignal": true; }; "control": { "alias": "control"; "required": false; "isSignal": true; }; }, { "showError": "showErrorChange"; "control": "controlChange"; }, never, ["*"], true, never>;
45
+ static ɵcmp: i0.ɵɵComponentDeclaration<BmbInputValidatorComponent, "bmb-input-validator", never, { "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "labelPosition": { "alias": "labelPosition"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "isRequired": { "alias": "isRequired"; "required": false; "isSignal": true; }; "isDisabled": { "alias": "isDisabled"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "pattern": { "alias": "pattern"; "required": false; "isSignal": true; }; "jsonFormat": { "alias": "jsonFormat"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; "showMaxTextLength": { "alias": "showMaxTextLength"; "required": false; "isSignal": true; }; "helperMessage": { "alias": "helperMessage"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "customValidation": { "alias": "customValidation"; "required": false; "isSignal": true; }; "isMultipleFile": { "alias": "isMultipleFile"; "required": false; "isSignal": true; }; "showError": { "alias": "showError"; "required": false; "isSignal": true; }; "control": { "alias": "control"; "required": false; "isSignal": true; }; }, { "showError": "showErrorChange"; "control": "controlChange"; }, never, ["*"], true, never>;
45
46
  }
@@ -12,8 +12,14 @@ export declare class BmbProgressBarComponent {
12
12
  href: import("@angular/core").InputSignal<string>;
13
13
  target: import("@angular/core").InputSignal<IBmbTargetLink>;
14
14
  textFormat: import("@angular/core").InputSignal<(counter: string, total: string) => string>;
15
+ isContainer: import("@angular/core").InputSignal<boolean>;
16
+ avatarIcon: import("@angular/core").InputSignal<string>;
17
+ actionIcon: import("@angular/core").InputSignal<string>;
18
+ textFormatSeparator: import("@angular/core").InputSignal<string>;
19
+ showStatusIcon: import("@angular/core").InputSignal<boolean>;
20
+ actionClick: import("@angular/core").OutputEmitterRef<MouseEvent>;
21
+ handleClick(event: MouseEvent): void;
15
22
  progressValue: import("@angular/core").Signal<string>;
16
- getFormattedText(): string;
17
23
  static ɵfac: i0.ɵɵFactoryDeclaration<BmbProgressBarComponent, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<BmbProgressBarComponent, "bmb-progress-bar", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "totalCount": { "alias": "totalCount"; "required": false; "isSignal": true; }; "counter": { "alias": "counter"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "textLink": { "alias": "textLink"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; "textFormat": { "alias": "textFormat"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<BmbProgressBarComponent, "bmb-progress-bar", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "totalCount": { "alias": "totalCount"; "required": false; "isSignal": true; }; "counter": { "alias": "counter"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "textLink": { "alias": "textLink"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; "textFormat": { "alias": "textFormat"; "required": false; "isSignal": true; }; "isContainer": { "alias": "isContainer"; "required": false; "isSignal": true; }; "avatarIcon": { "alias": "avatarIcon"; "required": false; "isSignal": true; }; "actionIcon": { "alias": "actionIcon"; "required": false; "isSignal": true; }; "textFormatSeparator": { "alias": "textFormatSeparator"; "required": false; "isSignal": true; }; "showStatusIcon": { "alias": "showStatusIcon"; "required": false; "isSignal": true; }; }, { "actionClick": "actionClick"; }, never, never, true, never>;
19
25
  }
@@ -47,6 +47,8 @@ export declare class BmbTablesComponent implements AfterViewInit, OnInit, OnChan
47
47
  currentPage: import("@angular/core").ModelSignal<number>;
48
48
  filtersVisible: import("@angular/core").ModelSignal<boolean>;
49
49
  filtersPosition: import("@angular/core").InputSignal<IBmbFiltersPosition>;
50
+ selectionMode: import("@angular/core").InputSignal<"page" | "all">;
51
+ clearSelectionWhenPageChanges: import("@angular/core").InputSignal<boolean>;
50
52
  select: EventEmitter<any>;
51
53
  clickedRow: EventEmitter<any>;
52
54
  searchChange: EventEmitter<string>;
@@ -66,6 +68,11 @@ export declare class BmbTablesComponent implements AfterViewInit, OnInit, OnChan
66
68
  ngOnChanges(changes: SimpleChanges): void;
67
69
  ngOnInit(): void;
68
70
  parseData(data: any[]): void;
71
+ checkIfSelectionShouldBeCleared(): void;
72
+ getPageData(): any[];
73
+ handleMasterSelection(event: Event): void;
74
+ checkIfAllRowsSelected(): boolean;
75
+ checkIfSomeRowsSelected(): boolean;
69
76
  parseColumns(columns: TableColum[]): void;
70
77
  sanitizeHTML(label: string): SafeHtml;
71
78
  ngAfterViewInit(): void;
@@ -100,5 +107,5 @@ export declare class BmbTablesComponent implements AfterViewInit, OnInit, OnChan
100
107
  goToLastPage(): void;
101
108
  getTableClasses(): string[];
102
109
  static ɵfac: i0.ɵɵFactoryDeclaration<BmbTablesComponent, never>;
103
- static ɵcmp: i0.ɵɵComponentDeclaration<BmbTablesComponent, "bmb-table", never, { "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "showFilters": { "alias": "showFilters"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "totalItems": { "alias": "totalItems"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "actionTemplate": { "alias": "actionTemplate"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; "detailTemplate": { "alias": "detailTemplate"; "required": false; "isSignal": true; }; "truncate": { "alias": "truncate"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; "initialTableSelection": { "alias": "initialTableSelection"; "required": false; "isSignal": true; }; "lang": { "alias": "lang"; "required": false; "isSignal": true; }; "clearSelection": { "alias": "clearSelection"; "required": false; "isSignal": true; }; "serverSide": { "alias": "serverSide"; "required": false; "isSignal": true; }; "currentPage": { "alias": "currentPage"; "required": false; "isSignal": true; }; "filtersVisible": { "alias": "filtersVisible"; "required": false; "isSignal": true; }; "filtersPosition": { "alias": "filtersPosition"; "required": false; "isSignal": true; }; }, { "clearSelection": "clearSelectionChange"; "currentPage": "currentPageChange"; "filtersVisible": "filtersVisibleChange"; "select": "select"; "clickedRow": "clickedRow"; "searchChange": "searchChange"; "filtersChange": "filtersChange"; "searchModeChange": "searchModeChange"; "pageChange": "pageChange"; }, never, never, true, never>;
110
+ static ɵcmp: i0.ɵɵComponentDeclaration<BmbTablesComponent, "bmb-table", never, { "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "showFilters": { "alias": "showFilters"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "totalItems": { "alias": "totalItems"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "actionTemplate": { "alias": "actionTemplate"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; "detailTemplate": { "alias": "detailTemplate"; "required": false; "isSignal": true; }; "truncate": { "alias": "truncate"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; "initialTableSelection": { "alias": "initialTableSelection"; "required": false; "isSignal": true; }; "lang": { "alias": "lang"; "required": false; "isSignal": true; }; "clearSelection": { "alias": "clearSelection"; "required": false; "isSignal": true; }; "serverSide": { "alias": "serverSide"; "required": false; "isSignal": true; }; "currentPage": { "alias": "currentPage"; "required": false; "isSignal": true; }; "filtersVisible": { "alias": "filtersVisible"; "required": false; "isSignal": true; }; "filtersPosition": { "alias": "filtersPosition"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "clearSelectionWhenPageChanges": { "alias": "clearSelectionWhenPageChanges"; "required": false; "isSignal": true; }; }, { "clearSelection": "clearSelectionChange"; "currentPage": "currentPageChange"; "filtersVisible": "filtersVisibleChange"; "select": "select"; "clickedRow": "clickedRow"; "searchChange": "searchChange"; "filtersChange": "filtersChange"; "searchModeChange": "searchModeChange"; "pageChange": "pageChange"; }, never, never, true, never>;
104
111
  }
@@ -10,8 +10,7 @@ export declare class BmbTextLinkComponent {
10
10
  iconPosition: import("@angular/core").InputSignal<IBmbIconPosition>;
11
11
  link: import("@angular/core").InputSignal<string>;
12
12
  disabled: import("@angular/core").InputSignal<boolean>;
13
- getClasses(): string[];
14
- getPositionClass(principalClassName: string, isIcon: boolean, position: string): string[];
13
+ get positionClass(): string;
15
14
  static ɵfac: i0.ɵɵFactoryDeclaration<BmbTextLinkComponent, never>;
16
15
  static ɵcmp: i0.ɵɵComponentDeclaration<BmbTextLinkComponent, "bmb-text-link", never, { "textLink": { "alias": "textLink"; "required": true; "isSignal": true; }; "textLinkStyle": { "alias": "textLinkStyle"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconPosition": { "alias": "iconPosition"; "required": false; "isSignal": true; }; "link": { "alias": "link"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
17
16
  }
@@ -1,8 +1,14 @@
1
1
  import * as i0 from "@angular/core";
2
2
  export declare class BmbValueCounterComponent {
3
- label: string;
4
- value: string;
5
- progress: string;
3
+ label: import("@angular/core").InputSignal<string>;
4
+ value: import("@angular/core").InputSignal<string>;
5
+ progress: import("@angular/core").InputSignal<string>;
6
+ textFormatSeparator: import("@angular/core").InputSignal<string>;
7
+ textFormat: import("@angular/core").InputSignal<(counter: string, total: string) => string>;
8
+ get formattedText(): string;
9
+ get separator(): string;
10
+ get progressValue(): string;
11
+ get totalValue(): string;
6
12
  static ɵfac: i0.ɵɵFactoryDeclaration<BmbValueCounterComponent, never>;
7
- static ɵcmp: i0.ɵɵComponentDeclaration<BmbValueCounterComponent, "bmb-value-counter", never, { "label": { "alias": "label"; "required": false; }; "value": { "alias": "value"; "required": false; }; "progress": { "alias": "progress"; "required": false; }; }, {}, never, never, true, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<BmbValueCounterComponent, "bmb-value-counter", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "progress": { "alias": "progress"; "required": false; "isSignal": true; }; "textFormatSeparator": { "alias": "textFormatSeparator"; "required": false; "isSignal": true; }; "textFormat": { "alias": "textFormat"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
8
14
  }
@@ -5,6 +5,7 @@ export declare class BmbDropdownContentComponent {
5
5
  items: import("@angular/core").ModelSignal<IDropdownItem[]>;
6
6
  isKeyboardEvent: import("@angular/core").ModelSignal<boolean>;
7
7
  enableFilter: import("@angular/core").InputSignal<boolean>;
8
+ customFilterFunction: import("@angular/core").InputSignal<((item: IDropdownItem, filter: string) => boolean) | null>;
8
9
  clickedItem: import("@angular/core").OutputEmitterRef<IDropdownItem>;
9
10
  isOpen: import("@angular/core").ModelSignal<boolean>;
10
11
  filteredItems: import("@angular/core").Signal<IDropdownItem[]>;
@@ -13,5 +14,5 @@ export declare class BmbDropdownContentComponent {
13
14
  isSelected(item: string): boolean;
14
15
  handleDropdown(item: IDropdownItem): void;
15
16
  static ɵfac: i0.ɵɵFactoryDeclaration<BmbDropdownContentComponent, never>;
16
- static ɵcmp: i0.ɵɵComponentDeclaration<BmbDropdownContentComponent, "bmb-dropdown-content", never, { "selectedOption": { "alias": "selectedOption"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "isKeyboardEvent": { "alias": "isKeyboardEvent"; "required": false; "isSignal": true; }; "enableFilter": { "alias": "enableFilter"; "required": false; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; }, { "items": "itemsChange"; "isKeyboardEvent": "isKeyboardEventChange"; "clickedItem": "clickedItem"; "isOpen": "isOpenChange"; }, never, never, true, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<BmbDropdownContentComponent, "bmb-dropdown-content", never, { "selectedOption": { "alias": "selectedOption"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "isKeyboardEvent": { "alias": "isKeyboardEvent"; "required": false; "isSignal": true; }; "enableFilter": { "alias": "enableFilter"; "required": false; "isSignal": true; }; "customFilterFunction": { "alias": "customFilterFunction"; "required": false; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; }, { "items": "itemsChange"; "isKeyboardEvent": "isKeyboardEventChange"; "clickedItem": "clickedItem"; "isOpen": "isOpenChange"; }, never, never, true, never>;
17
18
  }
@@ -1,9 +1,10 @@
1
1
  import * as i0 from "@angular/core";
2
2
  export declare class BmbVerticalLayoutItemDirective {
3
3
  rowGrow: import("@angular/core").InputSignal<number>;
4
+ isFullWidth: import("@angular/core").InputSignal<boolean>;
4
5
  constructor();
5
6
  flex?: string;
6
7
  get elementClass(): string[];
7
8
  static ɵfac: i0.ɵɵFactoryDeclaration<BmbVerticalLayoutItemDirective, never>;
8
- static ɵdir: i0.ɵɵDirectiveDeclaration<BmbVerticalLayoutItemDirective, "[bmbVerticalLayoutItem]", never, { "rowGrow": { "alias": "rowGrow"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
9
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BmbVerticalLayoutItemDirective, "[bmbVerticalLayoutItem]", never, { "rowGrow": { "alias": "rowGrow"; "required": false; "isSignal": true; }; "isFullWidth": { "alias": "isFullWidth"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
9
10
  }
@@ -2,6 +2,6 @@ import { FormControl } from '@angular/forms';
2
2
  import { IBmbInputType } from '../components/bmb-input/bmb-input.component';
3
3
  import { IBmbInputValType } from '../components/bmb-input/bmb-input-validator/bmb-input-validator.component';
4
4
  export declare const showError: (control: FormControl) => boolean;
5
- export declare const newFormControlByType: (type?: IBmbInputType | IBmbInputValType) => FormControl;
6
- export declare const assignNewFormControl: (name: string, control: FormControl, type?: IBmbInputType | IBmbInputValType) => FormControl | null;
5
+ export declare const newFormControlByType: (type?: IBmbInputType | IBmbInputValType, isMultipleFile?: boolean) => FormControl;
6
+ export declare const assignNewFormControl: (name: string, control: FormControl, type?: IBmbInputType | IBmbInputValType, isMultipleFile?: boolean) => FormControl | null;
7
7
  export declare const handleValidity: (control: FormControl) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ti-tecnologico-de-monterrey-oficial/ds-ng",
3
- "version": "1.5.1318-d",
3
+ "version": "1.5.1318-e",
4
4
  "description": "Design System oficial del Tecnológico de Monterrey - Descubre cómo nuestro Design System no solo da forma a la estética, sino que también impulsa la consistencia en cada rincón de nuestro diseño, proporcionando una base sólida para construir experiencias memorables y coherentes. Únete a nosotros en este viaje donde la creatividad, coherencia y elegancia se encuentran para dar vida a un mundo visualmente armonioso y funcionalmente fluido.",
5
5
  "keywords": [
6
6
  "angular",
@@ -11,15 +11,15 @@
11
11
  "repository": "https://github.com/ti-tecnologico-de-monterrey-oficial/tec-design-system-ng",
12
12
  "peerDependencies": {
13
13
  "rxjs": "*",
14
- "@angular/animations": "*"
14
+ "@angular/core": "^18.0.0",
15
+ "@angular/animations": "^18.0.0"
15
16
  },
16
17
  "dependencies": {
17
- "@angular/material": "*",
18
18
  "libphonenumber-js": "1.11.16",
19
19
  "luxon": "3.5.0",
20
20
  "tslib": "*",
21
21
  "@types/luxon": "3.4.2",
22
- "@angular/cdk": "*",
22
+ "@angular/cdk": "^18.0.0",
23
23
  "material-symbols": "0.27.2",
24
24
  "dompurify": "3.3.0"
25
25
  },
@@ -1,51 +0,0 @@
1
- import { Injectable, signal } from '@angular/core';
2
- import { getUUID } from '../utils/utils';
3
- import * as i0 from "@angular/core";
4
- export class BmbCalendarService {
5
- constructor() {
6
- this.eventList = signal([]);
7
- this.isLoading = signal(false);
8
- }
9
- addMultipleEvents(events) {
10
- const newEvents = events.map((event) => {
11
- const id = event.id ?? getUUID();
12
- return { ...event, id };
13
- });
14
- this.eventList.update((currentEvents) => [...currentEvents, ...newEvents]);
15
- }
16
- addEvent(event) {
17
- const id = event.id ?? getUUID();
18
- this.eventList.update((currentEvents) => [
19
- ...currentEvents,
20
- { ...event, id },
21
- ]);
22
- }
23
- deleteEvent(id) {
24
- this.eventList.update((currentEvents) => currentEvents.filter((event) => event.id !== id));
25
- }
26
- editEvent(id) {
27
- this.eventList.update((currentEvents) => currentEvents.map((event) => {
28
- if (event.id !== id)
29
- return event;
30
- return event;
31
- }));
32
- }
33
- getEventList() {
34
- return this.eventList();
35
- }
36
- setIsLoading(state) {
37
- this.isLoading.set(state);
38
- }
39
- getIsLoading() {
40
- return this.isLoading();
41
- }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbCalendarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
43
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbCalendarService, providedIn: 'root' }); }
44
- }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbCalendarService, decorators: [{
46
- type: Injectable,
47
- args: [{
48
- providedIn: 'root',
49
- }]
50
- }] });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvc2VydmljZXMvY2FsZW5kYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBS3pDLE1BQU0sT0FBTyxrQkFBa0I7SUFIL0I7UUFJVyxjQUFTLEdBQUcsTUFBTSxDQUFzQixFQUFFLENBQUMsQ0FBQztRQUM1QyxjQUFTLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0tBNkM3QztJQTNDQyxpQkFBaUIsQ0FBQyxNQUEyQjtRQUMzQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDckMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQUUsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNqQyxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLGFBQWEsRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUF3QjtRQUMvQixNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUN2QyxHQUFHLGFBQWE7WUFDaEIsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUU7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FDdEMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FDakQsQ0FBQztJQUNKLENBQUM7SUFFRCxTQUFTLENBQUMsRUFBVTtRQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQ3RDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMxQixJQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRTtnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUVsQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzFCLENBQUM7K0dBOUNVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElCbWJDYWxlbmRhckV2ZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9ibWItY2FsZW5kYXIvdHlwZXMnO1xuaW1wb3J0IHsgZ2V0VVVJRCB9IGZyb20gJy4uL3V0aWxzL3V0aWxzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEJtYkNhbGVuZGFyU2VydmljZSB7XG4gIHJlYWRvbmx5IGV2ZW50TGlzdCA9IHNpZ25hbDxJQm1iQ2FsZW5kYXJFdmVudFtdPihbXSk7XG4gIHJlYWRvbmx5IGlzTG9hZGluZyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgYWRkTXVsdGlwbGVFdmVudHMoZXZlbnRzOiBJQm1iQ2FsZW5kYXJFdmVudFtdKSB7XG4gICAgY29uc3QgbmV3RXZlbnRzID0gZXZlbnRzLm1hcCgoZXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IGlkID0gZXZlbnQuaWQgPz8gZ2V0VVVJRCgpO1xuICAgICAgcmV0dXJuIHsgLi4uZXZlbnQsIGlkIH07XG4gICAgfSk7XG4gICAgdGhpcy5ldmVudExpc3QudXBkYXRlKChjdXJyZW50RXZlbnRzKSA9PiBbLi4uY3VycmVudEV2ZW50cywgLi4ubmV3RXZlbnRzXSk7XG4gIH1cblxuICBhZGRFdmVudChldmVudDogSUJtYkNhbGVuZGFyRXZlbnQpIHtcbiAgICBjb25zdCBpZCA9IGV2ZW50LmlkID8/IGdldFVVSUQoKTtcbiAgICB0aGlzLmV2ZW50TGlzdC51cGRhdGUoKGN1cnJlbnRFdmVudHMpID0+IFtcbiAgICAgIC4uLmN1cnJlbnRFdmVudHMsXG4gICAgICB7IC4uLmV2ZW50LCBpZCB9LFxuICAgIF0pO1xuICB9XG5cbiAgZGVsZXRlRXZlbnQoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuZXZlbnRMaXN0LnVwZGF0ZSgoY3VycmVudEV2ZW50cykgPT5cbiAgICAgIGN1cnJlbnRFdmVudHMuZmlsdGVyKChldmVudCkgPT4gZXZlbnQuaWQgIT09IGlkKSxcbiAgICApO1xuICB9XG5cbiAgZWRpdEV2ZW50KGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmV2ZW50TGlzdC51cGRhdGUoKGN1cnJlbnRFdmVudHMpID0+XG4gICAgICBjdXJyZW50RXZlbnRzLm1hcCgoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmlkICE9PSBpZCkgcmV0dXJuIGV2ZW50O1xuXG4gICAgICAgIHJldHVybiBldmVudDtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBnZXRFdmVudExpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnRMaXN0KCk7XG4gIH1cblxuICBzZXRJc0xvYWRpbmcoc3RhdGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzTG9hZGluZy5zZXQoc3RhdGUpO1xuICB9XG5cbiAgZ2V0SXNMb2FkaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmlzTG9hZGluZygpO1xuICB9XG59XG4iXX0=
@@ -1,3 +0,0 @@
1
- export * from './toast.service';
2
- export * from './theme.service';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1uZy9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdG9hc3Quc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3RoZW1lLnNlcnZpY2UnO1xuIl19
@@ -1,60 +0,0 @@
1
- import { createComponent, Injectable, signal, } from '@angular/core';
2
- import { getUUID } from '../utils/utils';
3
- import { BmbPortalComponent } from '../components/bmb-portal/bmb-portal.component';
4
- import * as i0 from "@angular/core";
5
- export class BmbNativeModalService {
6
- constructor(appRef, environmentInjector) {
7
- this.appRef = appRef;
8
- this.environmentInjector = environmentInjector;
9
- this.modalList = signal([]);
10
- this.portalComponentRef = null;
11
- }
12
- getOrCreatePortal() {
13
- if (this.portalComponentRef) {
14
- return this.portalComponentRef.instance;
15
- }
16
- const existingHost = document.querySelector('bmb-portal');
17
- if (existingHost) {
18
- return null;
19
- }
20
- this.portalComponentRef = createComponent(BmbPortalComponent, {
21
- environmentInjector: this.environmentInjector,
22
- });
23
- this.appRef.attachView(this.portalComponentRef.hostView);
24
- const hostDomElem = this.portalComponentRef.hostView.rootNodes[0];
25
- document.body.appendChild(hostDomElem);
26
- return this.portalComponentRef.instance;
27
- }
28
- openModal(newModal) {
29
- const id = newModal.modalId && newModal.modalId !== ''
30
- ? newModal.modalId
31
- : getUUID();
32
- this.getOrCreatePortal();
33
- this.modalList.update((currentModals) => [
34
- ...currentModals,
35
- { ...newModal, modalId: id },
36
- ]);
37
- return id;
38
- }
39
- closeModal(id) {
40
- this.modalList.update((currentModals) => currentModals.filter((modal) => modal.modalId !== id));
41
- }
42
- closeAllModals() {
43
- this.modalList.set([]);
44
- }
45
- getModalList() {
46
- return this.modalList();
47
- }
48
- checkIfModalExists(id) {
49
- return this.modalList().some((modal) => modal.modalId === id);
50
- }
51
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbNativeModalService, deps: [{ token: i0.ApplicationRef }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }
52
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbNativeModalService, providedIn: 'root' }); }
53
- }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbNativeModalService, decorators: [{
55
- type: Injectable,
56
- args: [{
57
- providedIn: 'root',
58
- }]
59
- }], ctorParameters: () => [{ type: i0.ApplicationRef }, { type: i0.EnvironmentInjector }] });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLW1vZGFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1uZy9zcmMvbGliL3NlcnZpY2VzL25hdGl2ZS1tb2RhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxlQUFlLEVBR2YsVUFBVSxFQUNWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBS25GLE1BQU0sT0FBTyxxQkFBcUI7SUFJaEMsWUFDVSxNQUFzQixFQUN0QixtQkFBd0M7UUFEeEMsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUx6QyxjQUFTLEdBQUcsTUFBTSxDQUFvQixFQUFFLENBQUMsQ0FBQztRQUMzQyx1QkFBa0IsR0FBNEMsSUFBSSxDQUFDO0lBS3hFLENBQUM7SUFFSSxpQkFBaUI7UUFDdkIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUM7UUFDMUMsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFMUQsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsZUFBZSxDQUFDLGtCQUFrQixFQUFFO1lBQzVELG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7U0FDOUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXpELE1BQU0sV0FBVyxHQUNmLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUN6QixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFDOUIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFdkMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDO0lBQzFDLENBQUM7SUFFRCxTQUFTLENBQUMsUUFBeUI7UUFDakMsTUFBTSxFQUFFLEdBQ04sUUFBUSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsT0FBTyxLQUFLLEVBQUU7WUFDekMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPO1lBQ2xCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDdkMsR0FBRyxhQUFhO1lBQ2hCLEVBQUUsR0FBRyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtTQUM3QixDQUFDLENBQUM7UUFFSCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxVQUFVLENBQUMsRUFBVTtRQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQ3RDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssRUFBRSxDQUFDLENBQ3RELENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGtCQUFrQixDQUFDLEVBQVU7UUFDM0IsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7K0dBaEVVLHFCQUFxQjttSEFBckIscUJBQXFCLGNBRnBCLE1BQU07OzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgQ29tcG9uZW50UmVmLFxuICBjcmVhdGVDb21wb25lbnQsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgSW5qZWN0YWJsZSxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldFVVSUQgfSBmcm9tICcuLi91dGlscy91dGlscyc7XG5pbXBvcnQgeyBJQm1iTmF0aXZlTW9kYWwgfSBmcm9tICcuLi9jb21wb25lbnRzL2JtYi1tb2RhbC9ibWItbW9kYWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJtYlBvcnRhbENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYm1iLXBvcnRhbC9ibWItcG9ydGFsLmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBCbWJOYXRpdmVNb2RhbFNlcnZpY2Uge1xuICByZWFkb25seSBtb2RhbExpc3QgPSBzaWduYWw8SUJtYk5hdGl2ZU1vZGFsW10+KFtdKTtcbiAgcHJpdmF0ZSBwb3J0YWxDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxCbWJQb3J0YWxDb21wb25lbnQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgZW52aXJvbm1lbnRJbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3RvcixcbiAgKSB7fVxuXG4gIHByaXZhdGUgZ2V0T3JDcmVhdGVQb3J0YWwoKSB7XG4gICAgaWYgKHRoaXMucG9ydGFsQ29tcG9uZW50UmVmKSB7XG4gICAgICByZXR1cm4gdGhpcy5wb3J0YWxDb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgfVxuXG4gICAgY29uc3QgZXhpc3RpbmdIb3N0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm1iLXBvcnRhbCcpO1xuXG4gICAgaWYgKGV4aXN0aW5nSG9zdCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5wb3J0YWxDb21wb25lbnRSZWYgPSBjcmVhdGVDb21wb25lbnQoQm1iUG9ydGFsQ29tcG9uZW50LCB7XG4gICAgICBlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLmVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgfSk7XG5cbiAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KHRoaXMucG9ydGFsQ29tcG9uZW50UmVmLmhvc3RWaWV3KTtcblxuICAgIGNvbnN0IGhvc3REb21FbGVtID0gKFxuICAgICAgdGhpcy5wb3J0YWxDb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT5cbiAgICApLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGhvc3REb21FbGVtKTtcblxuICAgIHJldHVybiB0aGlzLnBvcnRhbENvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgfVxuXG4gIG9wZW5Nb2RhbChuZXdNb2RhbDogSUJtYk5hdGl2ZU1vZGFsKTogc3RyaW5nIHtcbiAgICBjb25zdCBpZCA9XG4gICAgICBuZXdNb2RhbC5tb2RhbElkICYmIG5ld01vZGFsLm1vZGFsSWQgIT09ICcnXG4gICAgICAgID8gbmV3TW9kYWwubW9kYWxJZFxuICAgICAgICA6IGdldFVVSUQoKTtcbiAgICB0aGlzLmdldE9yQ3JlYXRlUG9ydGFsKCk7XG4gICAgdGhpcy5tb2RhbExpc3QudXBkYXRlKChjdXJyZW50TW9kYWxzKSA9PiBbXG4gICAgICAuLi5jdXJyZW50TW9kYWxzLFxuICAgICAgeyAuLi5uZXdNb2RhbCwgbW9kYWxJZDogaWQgfSxcbiAgICBdKTtcblxuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIGNsb3NlTW9kYWwoaWQ6IHN0cmluZykge1xuICAgIHRoaXMubW9kYWxMaXN0LnVwZGF0ZSgoY3VycmVudE1vZGFscykgPT5cbiAgICAgIGN1cnJlbnRNb2RhbHMuZmlsdGVyKChtb2RhbCkgPT4gbW9kYWwubW9kYWxJZCAhPT0gaWQpLFxuICAgICk7XG4gIH1cblxuICBjbG9zZUFsbE1vZGFscygpIHtcbiAgICB0aGlzLm1vZGFsTGlzdC5zZXQoW10pO1xuICB9XG5cbiAgZ2V0TW9kYWxMaXN0KCkge1xuICAgIHJldHVybiB0aGlzLm1vZGFsTGlzdCgpO1xuICB9XG5cbiAgY2hlY2tJZk1vZGFsRXhpc3RzKGlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tb2RhbExpc3QoKS5zb21lKChtb2RhbCkgPT4gbW9kYWwubW9kYWxJZCA9PT0gaWQpO1xuICB9XG59XG4iXX0=
@@ -1,84 +0,0 @@
1
- import { createComponent, Inject, Injectable, Optional, signal, } from '@angular/core';
2
- import { getUUID } from '../utils/utils';
3
- import { BmbPortalComponent } from '../components/bmb-portal/bmb-portal.component';
4
- import * as i0 from "@angular/core";
5
- export class BmbNotificationService {
6
- constructor(appRef, environmentInjector, positionX, positionY) {
7
- this.appRef = appRef;
8
- this.environmentInjector = environmentInjector;
9
- this.positionX = positionX;
10
- this.positionY = positionY;
11
- this.notificationList = signal([]);
12
- this.portalComponentRef = null;
13
- this.positionX = positionX || 'right';
14
- this.positionY = positionY || 'top';
15
- }
16
- getOrCreatePortal() {
17
- if (this.portalComponentRef) {
18
- return this.portalComponentRef.instance;
19
- }
20
- const existingHost = document.querySelector('app-modal-host');
21
- if (existingHost) {
22
- const componentRef = this.appRef.components.find((ref) => ref.instance instanceof BmbPortalComponent);
23
- if (componentRef) {
24
- this.portalComponentRef = componentRef;
25
- return componentRef.instance;
26
- }
27
- }
28
- this.portalComponentRef = createComponent(BmbPortalComponent, {
29
- environmentInjector: this.environmentInjector,
30
- });
31
- this.appRef.attachView(this.portalComponentRef.hostView);
32
- const hostDomElem = this.portalComponentRef.hostView.rootNodes[0];
33
- document.body.appendChild(hostDomElem);
34
- return this.portalComponentRef.instance;
35
- }
36
- addNotification(notification) {
37
- const id = notification.id ?? getUUID();
38
- this.getOrCreatePortal();
39
- this.notificationList.update((currentNotifications) => [
40
- ...currentNotifications,
41
- { ...notification, id },
42
- ]);
43
- setTimeout(() => {
44
- this.deleteNotification(id);
45
- }, notification.delay || 5000);
46
- }
47
- deleteNotification(id, delay = 500) {
48
- const current = this.notificationList();
49
- const notification = current.find((n) => n.id === id);
50
- if (!notification)
51
- return;
52
- if (notification.component === 'toast') {
53
- this.notificationList.update((list) => list.map((n) => (n.id === id ? { ...n, closing: true } : n)));
54
- setTimeout(() => {
55
- this.notificationList.update((list) => list.filter((n) => n.id !== id));
56
- }, delay);
57
- }
58
- else {
59
- this.notificationList.update((list) => list.filter((n) => n.id !== id));
60
- }
61
- }
62
- getNotificationList() {
63
- return this.notificationList();
64
- }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbNotificationService, deps: [{ token: i0.ApplicationRef }, { token: i0.EnvironmentInjector }, { token: 'positionX', optional: true }, { token: 'positionY', optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
66
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbNotificationService, providedIn: 'root' }); }
67
- }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbNotificationService, decorators: [{
69
- type: Injectable,
70
- args: [{
71
- providedIn: 'root',
72
- }]
73
- }], ctorParameters: () => [{ type: i0.ApplicationRef }, { type: i0.EnvironmentInjector }, { type: undefined, decorators: [{
74
- type: Inject,
75
- args: ['positionX']
76
- }, {
77
- type: Optional
78
- }] }, { type: undefined, decorators: [{
79
- type: Inject,
80
- args: ['positionY']
81
- }, {
82
- type: Optional
83
- }] }] });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1uZy9zcmMvbGliL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxlQUFlLEVBR2YsTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7QUFRbkYsTUFBTSxPQUFPLHNCQUFzQjtJQUlqQyxZQUNVLE1BQXNCLEVBQ3RCLG1CQUF3QyxFQUNSLFNBQWlDLEVBQ2pDLFNBQWlDO1FBSGpFLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDUixjQUFTLEdBQVQsU0FBUyxDQUF3QjtRQUNqQyxjQUFTLEdBQVQsU0FBUyxDQUF3QjtRQVBsRSxxQkFBZ0IsR0FBRyxNQUFNLENBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELHVCQUFrQixHQUE0QyxJQUFJLENBQUM7UUFRekUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLElBQUksT0FBTyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxJQUFJLEtBQUssQ0FBQztJQUN0QyxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDO1FBQzFDLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDOUQsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQzlDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxZQUFZLGtCQUFrQixDQUNwRCxDQUFDO1lBQ0YsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFlBQVksQ0FBQztnQkFDdkMsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDO1lBQy9CLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGVBQWUsQ0FBQyxrQkFBa0IsRUFBRTtZQUM1RCxtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CO1NBQzlDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV6RCxNQUFNLFdBQVcsR0FDZixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFDekIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFnQixDQUFDO1FBQzlCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQztJQUMxQyxDQUFDO0lBRUQsZUFBZSxDQUFDLFlBQTJCO1FBQ3pDLE1BQU0sRUFBRSxHQUFHLFlBQVksQ0FBQyxFQUFFLElBQUksT0FBTyxFQUFFLENBQUM7UUFFeEMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFFekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FBQztZQUNyRCxHQUFHLG9CQUFvQjtZQUN2QixFQUFFLEdBQUcsWUFBWSxFQUFFLEVBQUUsRUFBRTtTQUN4QixDQUFDLENBQUM7UUFFSCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLENBQUMsRUFBRSxZQUFZLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxFQUFVLEVBQUUsS0FBSyxHQUFHLEdBQUc7UUFDeEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEMsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU87UUFFMUIsSUFBSSxZQUFZLENBQUMsU0FBUyxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDN0QsQ0FBQztZQUVGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNaLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFFLENBQUM7SUFDSCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDakMsQ0FBQzsrR0E5RVUsc0JBQXNCLG1GQU92QixXQUFXLDZCQUNYLFdBQVc7bUhBUlYsc0JBQXNCLGNBRnJCLE1BQU07OzRGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVFJLE1BQU07MkJBQUMsV0FBVzs7MEJBQUcsUUFBUTs7MEJBQzdCLE1BQU07MkJBQUMsV0FBVzs7MEJBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDb21wb25lbnRSZWYsXG4gIGNyZWF0ZUNvbXBvbmVudCxcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBFbnZpcm9ubWVudEluamVjdG9yLFxuICBJbmplY3QsXG4gIEluamVjdGFibGUsXG4gIE9wdGlvbmFsLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU5vdGlmaWNhdGlvbiB9IGZyb20gJy4uL2NvbXBvbmVudHMvYm1iLXB1c2gtbm90aWZpY2F0aW9uL3R5cGVzJztcbmltcG9ydCB7IGdldFVVSUQgfSBmcm9tICcuLi91dGlscy91dGlscyc7XG5pbXBvcnQgeyBCbWJQb3J0YWxDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2JtYi1wb3J0YWwvYm1iLXBvcnRhbC5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25Qb3NpdGlvblggPSAnbGVmdCcgfCAncmlnaHQnO1xuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uUG9zaXRpb25ZID0gJ3RvcCcgfCAnYm90dG9tJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEJtYk5vdGlmaWNhdGlvblNlcnZpY2Uge1xuICByZWFkb25seSBub3RpZmljYXRpb25MaXN0ID0gc2lnbmFsPElOb3RpZmljYXRpb25bXT4oW10pO1xuICBwcml2YXRlIHBvcnRhbENvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPEJtYlBvcnRhbENvbXBvbmVudD4gfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudEluamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgIEBJbmplY3QoJ3Bvc2l0aW9uWCcpIEBPcHRpb25hbCgpIHB1YmxpYyBwb3NpdGlvblg/OiBOb3RpZmljYXRpb25Qb3NpdGlvblgsXG4gICAgQEluamVjdCgncG9zaXRpb25ZJykgQE9wdGlvbmFsKCkgcHVibGljIHBvc2l0aW9uWT86IE5vdGlmaWNhdGlvblBvc2l0aW9uWSxcbiAgKSB7XG4gICAgdGhpcy5wb3NpdGlvblggPSBwb3NpdGlvblggfHwgJ3JpZ2h0JztcbiAgICB0aGlzLnBvc2l0aW9uWSA9IHBvc2l0aW9uWSB8fCAndG9wJztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3JDcmVhdGVQb3J0YWwoKTogQm1iUG9ydGFsQ29tcG9uZW50IHtcbiAgICBpZiAodGhpcy5wb3J0YWxDb21wb25lbnRSZWYpIHtcbiAgICAgIHJldHVybiB0aGlzLnBvcnRhbENvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICB9XG5cbiAgICBjb25zdCBleGlzdGluZ0hvc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdhcHAtbW9kYWwtaG9zdCcpO1xuICAgIGlmIChleGlzdGluZ0hvc3QpIHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuYXBwUmVmLmNvbXBvbmVudHMuZmluZChcbiAgICAgICAgKHJlZikgPT4gcmVmLmluc3RhbmNlIGluc3RhbmNlb2YgQm1iUG9ydGFsQ29tcG9uZW50LFxuICAgICAgKTtcbiAgICAgIGlmIChjb21wb25lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5wb3J0YWxDb21wb25lbnRSZWYgPSBjb21wb25lbnRSZWY7XG4gICAgICAgIHJldHVybiBjb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5wb3J0YWxDb21wb25lbnRSZWYgPSBjcmVhdGVDb21wb25lbnQoQm1iUG9ydGFsQ29tcG9uZW50LCB7XG4gICAgICBlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLmVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgfSk7XG5cbiAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KHRoaXMucG9ydGFsQ29tcG9uZW50UmVmLmhvc3RWaWV3KTtcblxuICAgIGNvbnN0IGhvc3REb21FbGVtID0gKFxuICAgICAgdGhpcy5wb3J0YWxDb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT5cbiAgICApLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGhvc3REb21FbGVtKTtcbiAgICByZXR1cm4gdGhpcy5wb3J0YWxDb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gIH1cblxuICBhZGROb3RpZmljYXRpb24obm90aWZpY2F0aW9uOiBJTm90aWZpY2F0aW9uKSB7XG4gICAgY29uc3QgaWQgPSBub3RpZmljYXRpb24uaWQgPz8gZ2V0VVVJRCgpO1xuXG4gICAgdGhpcy5nZXRPckNyZWF0ZVBvcnRhbCgpO1xuXG4gICAgdGhpcy5ub3RpZmljYXRpb25MaXN0LnVwZGF0ZSgoY3VycmVudE5vdGlmaWNhdGlvbnMpID0+IFtcbiAgICAgIC4uLmN1cnJlbnROb3RpZmljYXRpb25zLFxuICAgICAgeyAuLi5ub3RpZmljYXRpb24sIGlkIH0sXG4gICAgXSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZGVsZXRlTm90aWZpY2F0aW9uKGlkKTtcbiAgICB9LCBub3RpZmljYXRpb24uZGVsYXkgfHwgNTAwMCk7XG4gIH1cblxuICBkZWxldGVOb3RpZmljYXRpb24oaWQ6IHN0cmluZywgZGVsYXkgPSA1MDApIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5ub3RpZmljYXRpb25MaXN0KCk7XG4gICAgY29uc3Qgbm90aWZpY2F0aW9uID0gY3VycmVudC5maW5kKChuKSA9PiBuLmlkID09PSBpZCk7XG4gICAgaWYgKCFub3RpZmljYXRpb24pIHJldHVybjtcblxuICAgIGlmIChub3RpZmljYXRpb24uY29tcG9uZW50ID09PSAndG9hc3QnKSB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbkxpc3QudXBkYXRlKChsaXN0KSA9PlxuICAgICAgICBsaXN0Lm1hcCgobikgPT4gKG4uaWQgPT09IGlkID8geyAuLi5uLCBjbG9zaW5nOiB0cnVlIH0gOiBuKSksXG4gICAgICApO1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25MaXN0LnVwZGF0ZSgobGlzdCkgPT4gbGlzdC5maWx0ZXIoKG4pID0+IG4uaWQgIT09IGlkKSk7XG4gICAgICB9LCBkZWxheSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uTGlzdC51cGRhdGUoKGxpc3QpID0+IGxpc3QuZmlsdGVyKChuKSA9PiBuLmlkICE9PSBpZCkpO1xuICAgIH1cbiAgfVxuXG4gIGdldE5vdGlmaWNhdGlvbkxpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMubm90aWZpY2F0aW9uTGlzdCgpO1xuICB9XG59XG4iXX0=