@ti-tecnologico-de-monterrey-oficial/ds-ng 1.5.1317-c → 1.5.1317-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.
- package/assets/i18n/en.json +33 -1
- package/assets/i18n/es.json +34 -2
- package/assets/styles/main.min.css +1 -1
- package/assets/styles/main.min.css.map +1 -1
- package/assets/styles/micro.min.css +1 -0
- package/assets/styles/micro.min.css.map +1 -0
- package/esm2022/assets/i18n/en.json +33 -1
- package/esm2022/assets/i18n/es.json +34 -2
- package/esm2022/lib/components/bmb-account-statement/bmb-account-statement.component.mjs +2 -2
- package/esm2022/lib/components/bmb-calendar/bmb-calendar.component.mjs +9 -4
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-mobile/bmb-calendar-template-mobile.component.mjs +13 -8
- package/esm2022/lib/components/bmb-check-external-link-button/bmb-check-external-link-button.component.mjs +3 -3
- package/esm2022/lib/components/bmb-checkbox/bmb-checkbox.component.mjs +1 -1
- package/esm2022/lib/components/bmb-datepicker/bmb-datepicker.component.mjs +2 -2
- package/esm2022/lib/components/bmb-digital-id/bmb-digital-id.component.mjs +2 -2
- package/esm2022/lib/components/bmb-dropdown/bmb-dropdown.component.mjs +4 -2
- package/esm2022/lib/components/bmb-dropzone/bmb-dropzone.component.mjs +177 -91
- package/esm2022/lib/components/bmb-filter-card/bmb-filter-card.component.mjs +2 -2
- package/esm2022/lib/components/bmb-input/bmb-input-validator/bmb-input-validator.component.mjs +3 -2
- package/esm2022/lib/components/bmb-input/bmb-input.component.mjs +2 -2
- package/esm2022/lib/components/bmb-input-phone-number/bmb-input-phone-number.component.mjs +2 -2
- package/esm2022/lib/components/bmb-input-tags/bmb-input-tags.component.mjs +2 -2
- package/esm2022/lib/components/bmb-portal/bmb-projected-content/bmb-projected-content.component.mjs +2 -2
- package/esm2022/lib/components/bmb-progress-bar/bmb-progress-bar.component.mjs +30 -9
- package/esm2022/lib/components/bmb-radial/bmb-radial.component.mjs +1 -1
- package/esm2022/lib/components/bmb-search-input/bmb-search-input.component.mjs +1 -1
- package/esm2022/lib/components/bmb-switch/bmb-switch.component.mjs +5 -7
- package/esm2022/lib/components/bmb-tables/bmb-tables.component.mjs +66 -8
- package/esm2022/lib/components/bmb-text-editor/bmb-text-editor-prompt/bmb-text-editor-prompt.component.mjs +51 -0
- package/esm2022/lib/components/bmb-text-editor/bmb-text-editor.component.mjs +66 -24
- package/esm2022/lib/components/bmb-text-link/bmb-text-link.component.mjs +11 -17
- package/esm2022/lib/components/bmb-value-counter/bmb-value-counter.component.mjs +33 -15
- package/esm2022/lib/components/utils/bmb-dropdown-content/bmb-dropdown-content.component.mjs +9 -3
- package/esm2022/lib/directives/bmb-layout/bmb-layout-item.directive.mjs +2 -2
- package/esm2022/lib/directives/bmb-layout/bmb-vertical-layout/bmb-vertical-layout-item.directive.mjs +6 -3
- package/esm2022/lib/services/projection/projection.service.mjs +1 -1
- package/esm2022/lib/utils/formControl.mjs +6 -4
- package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs +712 -387
- package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs.map +1 -1
- package/lib/components/bmb-dropdown/bmb-dropdown.component.d.ts +3 -2
- package/lib/components/bmb-dropzone/bmb-dropzone.component.d.ts +39 -20
- package/lib/components/bmb-input/bmb-input-validator/bmb-input-validator.component.d.ts +3 -2
- package/lib/components/bmb-progress-bar/bmb-progress-bar.component.d.ts +8 -2
- package/lib/components/bmb-tables/bmb-tables.component.d.ts +8 -1
- package/lib/components/bmb-text-editor/bmb-text-editor-prompt/bmb-text-editor-prompt.component.d.ts +13 -0
- package/lib/components/bmb-text-editor/bmb-text-editor.component.d.ts +10 -4
- package/lib/components/bmb-text-link/bmb-text-link.component.d.ts +1 -2
- package/lib/components/bmb-value-counter/bmb-value-counter.component.d.ts +10 -4
- package/lib/components/utils/bmb-dropdown-content/bmb-dropdown-content.component.d.ts +2 -1
- package/lib/directives/bmb-layout/bmb-vertical-layout/bmb-vertical-layout-item.directive.d.ts +2 -1
- package/lib/utils/formControl.d.ts +2 -2
- package/package.json +4 -4
- package/esm2022/lib/services/calendar.service.mjs +0 -51
- package/esm2022/lib/services/index.mjs +0 -3
- package/esm2022/lib/services/native-modal.service.mjs +0 -60
- package/esm2022/lib/services/notification.service.mjs +0 -84
- package/esm2022/lib/services/projection.service.mjs +0 -49
- package/esm2022/lib/services/tabs.service.mjs +0 -30
- package/esm2022/lib/services/theme.service.mjs +0 -30
- package/esm2022/lib/services/toast.service.mjs +0 -24
- package/lib/services/calendar.service.d.ts +0 -15
- package/lib/services/index.d.ts +0 -2
- package/lib/services/native-modal.service.d.ts +0 -18
- package/lib/services/notification.service.d.ts +0 -20
- package/lib/services/projection.service.d.ts +0 -31
- package/lib/services/tabs.service.d.ts +0 -13
- package/lib/services/theme.service.d.ts +0 -11
- 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
|
-
|
|
32
|
-
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
}
|
package/lib/components/bmb-text-editor/bmb-text-editor-prompt/bmb-text-editor-prompt.component.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FormControl, FormGroup } from '@angular/forms';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export type IBmbTextEditorPromptType = 'link' | 'image';
|
|
4
|
+
export declare class BmbTextEditorPromptComponent {
|
|
5
|
+
type: import("@angular/core").InputSignal<IBmbTextEditorPromptType>;
|
|
6
|
+
formValues: import("@angular/core").OutputEmitterRef<Record<string, unknown>>;
|
|
7
|
+
cancelForm: import("@angular/core").OutputEmitterRef<void>;
|
|
8
|
+
formGroup: FormGroup;
|
|
9
|
+
getFormControl(name: string): FormControl;
|
|
10
|
+
handleFormGroupState(): void;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BmbTextEditorPromptComponent, never>;
|
|
12
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BmbTextEditorPromptComponent, "app-bmb-text-editor-prompt", never, { "type": { "alias": "type"; "required": true; "isSignal": true; }; }, { "formValues": "formValues"; "cancelForm": "cancelForm"; }, never, never, true, never>;
|
|
13
|
+
}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { AfterViewInit, ElementRef, OnInit } from '@angular/core';
|
|
2
2
|
import { FormControl } from '@angular/forms';
|
|
3
3
|
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
|
|
4
|
+
import { BmbProjectionContentService } from '../../services/projection/projection.service';
|
|
5
|
+
import { IBmbTextEditorPromptType } from './bmb-text-editor-prompt/bmb-text-editor-prompt.component';
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
5
7
|
export declare class BmbTextEditorComponent implements AfterViewInit, OnInit {
|
|
6
|
-
private sanitizer;
|
|
8
|
+
private readonly sanitizer;
|
|
9
|
+
private readonly projectionContent;
|
|
7
10
|
control: import("@angular/core").InputSignal<FormControl<any>>;
|
|
8
11
|
editor: ElementRef<HTMLDivElement>;
|
|
9
12
|
sanitizedContent: import("@angular/core").WritableSignal<SafeHtml>;
|
|
@@ -11,18 +14,21 @@ export declare class BmbTextEditorComponent implements AfterViewInit, OnInit {
|
|
|
11
14
|
showTableDialog: boolean;
|
|
12
15
|
tableRows: number;
|
|
13
16
|
tableColumns: number;
|
|
17
|
+
userSelection: Range | null;
|
|
14
18
|
detectAlignment(): void;
|
|
15
19
|
applyAlignment(alignment: string): void;
|
|
16
|
-
constructor(sanitizer: DomSanitizer);
|
|
20
|
+
constructor(sanitizer: DomSanitizer, projectionContent: BmbProjectionContentService);
|
|
17
21
|
ngOnInit(): void;
|
|
18
22
|
ngAfterViewInit(): void;
|
|
19
23
|
handleChange(event: Event, type: string): void;
|
|
20
24
|
execCommand(command: string, value?: string | null): void;
|
|
21
|
-
|
|
25
|
+
openPrompt(type: IBmbTextEditorPromptType, event: MouseEvent): void;
|
|
26
|
+
handleClosePrompt(values: Record<string, unknown>): void;
|
|
27
|
+
insertLink(values: Record<string, unknown>): void;
|
|
28
|
+
insertImage(values: Record<string, unknown>): void;
|
|
22
29
|
updateContent(): void;
|
|
23
30
|
clearFormatting(): void;
|
|
24
31
|
getCurrentState(): any;
|
|
25
|
-
insertImage(): void;
|
|
26
32
|
isValidImageUrl(url: string): boolean;
|
|
27
33
|
openTableDialog(): void;
|
|
28
34
|
closeTableDialog(): void;
|
|
@@ -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
|
-
|
|
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
|
}
|
package/lib/directives/bmb-layout/bmb-vertical-layout/bmb-vertical-layout-item.directive.d.ts
CHANGED
|
@@ -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.1317-
|
|
3
|
+
"version": "1.5.1317-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/
|
|
14
|
+
"@angular/core": "^17.0.0",
|
|
15
|
+
"@angular/animations": "^17.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": "^17.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: "17.3.12", ngImport: i0, type: BmbCalendarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
43
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbCalendarService, providedIn: 'root' }); }
|
|
44
|
-
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", 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: "17.3.12", 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: "17.3.12", ngImport: i0, type: BmbNativeModalService, providedIn: 'root' }); }
|
|
53
|
-
}
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLW1vZGFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1uZy9zcmMvbGliL3NlcnZpY2VzL25hdGl2ZS1tb2RhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxlQUFlLEVBR2YsVUFBVSxFQUNWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBS25GLE1BQU0sT0FBTyxxQkFBcUI7SUFJaEMsWUFDVSxNQUFzQixFQUN0QixtQkFBd0M7UUFEeEMsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUx6QyxjQUFTLEdBQUcsTUFBTSxDQUFvQixFQUFFLENBQUMsQ0FBQztRQUMzQyx1QkFBa0IsR0FBNEMsSUFBSSxDQUFDO0lBS3hFLENBQUM7SUFFSSxpQkFBaUI7UUFDdkIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDO1NBQ3pDO1FBRUQsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUxRCxJQUFJLFlBQVksRUFBRTtZQUNoQixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGVBQWUsQ0FBQyxrQkFBa0IsRUFBRTtZQUM1RCxtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CO1NBQzlDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV6RCxNQUFNLFdBQVcsR0FDZixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFDekIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFnQixDQUFDO1FBQzlCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXZDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQztJQUMxQyxDQUFDO0lBRUQsU0FBUyxDQUFDLFFBQXlCO1FBQ2pDLE1BQU0sRUFBRSxHQUNOLFFBQVEsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ3pDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTztZQUNsQixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLEdBQUcsYUFBYTtZQUNoQixFQUFFLEdBQUcsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7U0FDN0IsQ0FBQyxDQUFDO1FBRUgsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsVUFBVSxDQUFDLEVBQVU7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUN0QyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUN0RCxDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxFQUFVO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDOytHQWhFVSxxQkFBcUI7bUhBQXJCLHFCQUFxQixjQUZwQixNQUFNOzs0RkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIENvbXBvbmVudFJlZixcbiAgY3JlYXRlQ29tcG9uZW50LFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIEVudmlyb25tZW50SW5qZWN0b3IsXG4gIEluamVjdGFibGUsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRVVUlEIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgSUJtYk5hdGl2ZU1vZGFsIH0gZnJvbSAnLi4vY29tcG9uZW50cy9ibWItbW9kYWwvYm1iLW1vZGFsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBCbWJQb3J0YWxDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2JtYi1wb3J0YWwvYm1iLXBvcnRhbC5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQm1iTmF0aXZlTW9kYWxTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgbW9kYWxMaXN0ID0gc2lnbmFsPElCbWJOYXRpdmVNb2RhbFtdPihbXSk7XG4gIHByaXZhdGUgcG9ydGFsQ29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8Qm1iUG9ydGFsQ29tcG9uZW50PiB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICBwcml2YXRlIGVudmlyb25tZW50SW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IsXG4gICkge31cblxuICBwcml2YXRlIGdldE9yQ3JlYXRlUG9ydGFsKCkge1xuICAgIGlmICh0aGlzLnBvcnRhbENvbXBvbmVudFJlZikge1xuICAgICAgcmV0dXJuIHRoaXMucG9ydGFsQ29tcG9uZW50UmVmLmluc3RhbmNlO1xuICAgIH1cblxuICAgIGNvbnN0IGV4aXN0aW5nSG9zdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JtYi1wb3J0YWwnKTtcblxuICAgIGlmIChleGlzdGluZ0hvc3QpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHRoaXMucG9ydGFsQ29tcG9uZW50UmVmID0gY3JlYXRlQ29tcG9uZW50KEJtYlBvcnRhbENvbXBvbmVudCwge1xuICAgICAgZW52aXJvbm1lbnRJbmplY3RvcjogdGhpcy5lbnZpcm9ubWVudEluamVjdG9yLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyh0aGlzLnBvcnRhbENvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG5cbiAgICBjb25zdCBob3N0RG9tRWxlbSA9IChcbiAgICAgIHRoaXMucG9ydGFsQ29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+XG4gICAgKS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChob3N0RG9tRWxlbSk7XG5cbiAgICByZXR1cm4gdGhpcy5wb3J0YWxDb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gIH1cblxuICBvcGVuTW9kYWwobmV3TW9kYWw6IElCbWJOYXRpdmVNb2RhbCk6IHN0cmluZyB7XG4gICAgY29uc3QgaWQgPVxuICAgICAgbmV3TW9kYWwubW9kYWxJZCAmJiBuZXdNb2RhbC5tb2RhbElkICE9PSAnJ1xuICAgICAgICA/IG5ld01vZGFsLm1vZGFsSWRcbiAgICAgICAgOiBnZXRVVUlEKCk7XG4gICAgdGhpcy5nZXRPckNyZWF0ZVBvcnRhbCgpO1xuICAgIHRoaXMubW9kYWxMaXN0LnVwZGF0ZSgoY3VycmVudE1vZGFscykgPT4gW1xuICAgICAgLi4uY3VycmVudE1vZGFscyxcbiAgICAgIHsgLi4ubmV3TW9kYWwsIG1vZGFsSWQ6IGlkIH0sXG4gICAgXSk7XG5cbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICBjbG9zZU1vZGFsKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLm1vZGFsTGlzdC51cGRhdGUoKGN1cnJlbnRNb2RhbHMpID0+XG4gICAgICBjdXJyZW50TW9kYWxzLmZpbHRlcigobW9kYWwpID0+IG1vZGFsLm1vZGFsSWQgIT09IGlkKSxcbiAgICApO1xuICB9XG5cbiAgY2xvc2VBbGxNb2RhbHMoKSB7XG4gICAgdGhpcy5tb2RhbExpc3Quc2V0KFtdKTtcbiAgfVxuXG4gIGdldE1vZGFsTGlzdCgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RhbExpc3QoKTtcbiAgfVxuXG4gIGNoZWNrSWZNb2RhbEV4aXN0cyhpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubW9kYWxMaXN0KCkuc29tZSgobW9kYWwpID0+IG1vZGFsLm1vZGFsSWQgPT09IGlkKTtcbiAgfVxufVxuIl19
|