design-angular-kit 1.0.0-2 → 1.0.0-21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +102 -26
- package/assets/i18n/en.json +122 -0
- package/assets/i18n/it.json +52 -11
- package/esm2022/lib/abstracts/abstract-form.component.mjs +186 -0
- package/esm2022/lib/abstracts/abstract.component.mjs +45 -0
- package/esm2022/lib/components/components.module.mjs +188 -0
- package/esm2022/lib/components/core/accordion/accordion.component.mjs +38 -0
- package/esm2022/lib/components/core/alert/alert.component.mjs +74 -0
- package/esm2022/lib/components/core/badge/badge.directive.mjs +38 -0
- package/esm2022/lib/components/core/button/button.directive.mjs +85 -0
- package/esm2022/lib/components/core/callout/callout.component.mjs +57 -0
- package/esm2022/lib/components/core/card/card.component.mjs +64 -0
- package/esm2022/lib/components/core/carousel/carousel/carousel.component.mjs +89 -0
- package/esm2022/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +19 -0
- package/esm2022/lib/components/core/carousel/carousel.module.mjs +23 -0
- package/esm2022/lib/components/core/chip/chip.component.mjs +96 -0
- package/esm2022/lib/components/core/collapse/collapse.component.mjs +101 -0
- package/esm2022/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +24 -0
- package/esm2022/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +11 -0
- package/esm2022/lib/components/core/dimmer/dimmer.component.mjs +59 -0
- package/esm2022/lib/components/core/dimmer/dimmer.module.mjs +27 -0
- package/esm2022/lib/components/core/dropdown/dropdown/dropdown.component.mjs +143 -0
- package/esm2022/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +68 -0
- package/esm2022/lib/components/core/dropdown/dropdown.module.mjs +18 -0
- package/esm2022/lib/components/core/forward/forward.directive.mjs +53 -0
- package/esm2022/lib/components/core/link/link.component.mjs +46 -0
- package/esm2022/lib/components/core/list/list/list.component.mjs +17 -0
- package/esm2022/lib/components/core/list/list-item/list-item.component.mjs +40 -0
- package/esm2022/lib/components/core/list/list.module.mjs +23 -0
- package/esm2022/lib/components/core/modal/modal.component.mjs +192 -0
- package/esm2022/lib/components/core/notifications/notifications.component.mjs +111 -0
- package/esm2022/lib/components/core/pagination/pagination.component.mjs +133 -0
- package/esm2022/lib/components/core/popover/popover.directive.mjs +175 -0
- package/esm2022/lib/components/core/progress-bar/progress-bar.component.mjs +35 -0
- package/esm2022/lib/components/core/progress-button/progress-button.component.mjs +27 -0
- package/esm2022/lib/components/core/spinner/spinner.component.mjs +36 -0
- package/esm2022/lib/components/core/steppers/steppers-container/steppers-container.component.mjs +138 -0
- package/esm2022/lib/components/core/steppers/steppers-item/steppers-item.component.mjs +19 -0
- package/esm2022/lib/components/core/steppers/steppers.module.mjs +23 -0
- package/esm2022/lib/components/core/tab/tab-container/tab-container.component.mjs +60 -0
- package/esm2022/lib/components/core/tab/tab-item/tab-item.component.mjs +36 -0
- package/esm2022/lib/components/core/tab/tab.module.mjs +23 -0
- package/esm2022/lib/components/core/table/table.component.mjs +57 -0
- package/esm2022/lib/components/core/tooltip/tooltip.directive.mjs +142 -0
- package/esm2022/lib/components/form/checkbox/checkbox.component.mjs +49 -0
- package/esm2022/lib/components/form/form.module.mjs +55 -0
- package/esm2022/lib/components/form/input/input.component.mjs +239 -0
- package/esm2022/lib/components/form/password-input/password-input.component.mjs +155 -0
- package/esm2022/lib/components/form/radio-button/radio-button.component.mjs +69 -0
- package/esm2022/lib/components/form/range/range.component.mjs +64 -0
- package/esm2022/lib/components/form/rating/rating.component.mjs +51 -0
- package/esm2022/lib/components/form/select/select.component.mjs +70 -0
- package/esm2022/lib/components/form/textarea/textarea.component.mjs +47 -0
- package/esm2022/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +140 -0
- package/esm2022/lib/components/form/upload-file-list/upload-file-list.component.mjs +112 -0
- package/esm2022/lib/components/navigation/back-button/back-button.component.mjs +71 -0
- package/esm2022/lib/components/navigation/back-to-top/back-to-top.component.mjs +64 -0
- package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +57 -0
- package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +23 -0
- package/esm2022/lib/components/navigation/breadcrumbs/breadcrumbs.module.mjs +18 -0
- package/esm2022/lib/components/navigation/header/header.component.mjs +58 -0
- package/esm2022/lib/components/utils/error-page/error-page.component.mjs +81 -0
- package/esm2022/lib/components/utils/icon/icon.component.mjs +55 -0
- package/esm2022/lib/components/utils/language-switcher/language-switcher.component.mjs +47 -0
- package/esm2022/lib/design-angular-kit-config.mjs +15 -0
- package/esm2022/lib/design-angular-kit.module.mjs +68 -0
- package/esm2022/lib/interfaces/core.mjs +16 -0
- package/esm2022/lib/interfaces/design-angular-kit-init.mjs +2 -0
- package/esm2022/lib/interfaces/form.mjs +2 -0
- package/esm2022/lib/interfaces/icon.mjs +165 -0
- package/esm2022/lib/interfaces/utils.mjs +2 -0
- package/esm2022/lib/pipes/mark-matching-text.pipe.mjs +37 -0
- package/esm2022/lib/services/notification/notification.service.mjs +120 -0
- package/esm2022/lib/utils/file-utils.mjs +73 -0
- package/esm2022/lib/utils/regex.mjs +31 -0
- package/esm2022/lib/validators/it-validators.mjs +153 -0
- package/esm2022/public_api.mjs +85 -0
- package/fesm2022/design-angular-kit.mjs +4649 -0
- package/fesm2022/design-angular-kit.mjs.map +1 -0
- package/lib/abstracts/{abstract-form-component.d.ts → abstract-form.component.d.ts} +12 -10
- package/lib/abstracts/abstract.component.d.ts +24 -8
- package/lib/components/components.module.d.ts +40 -0
- package/lib/components/core/accordion/accordion.component.d.ts +11 -9
- package/lib/components/core/alert/alert.component.d.ts +32 -5
- package/lib/components/core/badge/badge.directive.d.ts +12 -6
- package/lib/components/core/button/button.directive.d.ts +24 -17
- package/lib/components/core/callout/callout.component.d.ts +26 -17
- package/lib/components/core/card/card.component.d.ts +23 -13
- package/lib/components/core/carousel/carousel/carousel.component.d.ts +34 -15
- package/lib/components/core/carousel/carousel-item/carousel-item.component.d.ts +8 -3
- package/lib/components/core/carousel/carousel.module.d.ts +8 -0
- package/lib/components/core/chip/chip.component.d.ts +8 -5
- package/lib/components/core/collapse/collapse.component.d.ts +16 -15
- package/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.d.ts +3 -3
- package/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.d.ts +3 -3
- package/lib/components/core/dimmer/dimmer.component.d.ts +4 -4
- package/lib/components/core/dimmer/dimmer.module.d.ts +9 -0
- package/lib/components/core/dropdown/dropdown/dropdown.component.d.ts +53 -10
- package/lib/components/core/dropdown/dropdown-item/dropdown-item.component.d.ts +8 -13
- package/lib/components/core/dropdown/dropdown.module.d.ts +8 -0
- package/lib/components/core/forward/forward.directive.d.ts +3 -3
- package/lib/components/core/link/link.component.d.ts +9 -10
- package/lib/components/core/list/list/list.component.d.ts +6 -5
- package/lib/components/core/list/list-item/list-item.component.d.ts +12 -8
- package/lib/components/core/list/list.module.d.ts +8 -0
- package/lib/components/core/modal/modal.component.d.ts +83 -14
- package/lib/components/core/notifications/notifications.component.d.ts +25 -11
- package/lib/components/core/pagination/pagination.component.d.ts +71 -10
- package/lib/components/core/popover/popover.directive.d.ts +15 -14
- package/lib/components/core/progress-bar/progress-bar.component.d.ts +6 -6
- package/lib/components/core/progress-button/progress-button.component.d.ts +5 -5
- package/lib/components/core/spinner/spinner.component.d.ts +6 -6
- package/lib/components/core/steppers/steppers-container/steppers-container.component.d.ts +128 -0
- package/lib/components/core/steppers/steppers-item/steppers-item.component.d.ts +20 -0
- package/lib/components/core/steppers/steppers.module.d.ts +8 -0
- package/lib/components/core/tab/tab-container/tab-container.component.d.ts +14 -12
- package/lib/components/core/tab/tab-item/tab-item.component.d.ts +11 -11
- package/lib/components/core/tab/tab.module.d.ts +8 -0
- package/lib/components/core/table/table.component.d.ts +14 -14
- package/lib/components/core/tooltip/tooltip.directive.d.ts +12 -11
- package/lib/components/form/checkbox/checkbox.component.d.ts +13 -10
- package/lib/components/form/form.module.d.ts +16 -0
- package/lib/components/form/input/input.component.d.ts +59 -13
- package/lib/components/form/password-input/password-input.component.d.ts +33 -8
- package/lib/components/form/radio-button/radio-button.component.d.ts +7 -6
- package/lib/components/form/range/range.component.d.ts +42 -0
- package/lib/components/form/rating/rating.component.d.ts +24 -0
- package/lib/components/form/select/select.component.d.ts +12 -6
- package/lib/components/form/textarea/textarea.component.d.ts +5 -5
- package/lib/components/form/upload-drag-drop/upload-drag-drop.component.d.ts +8 -7
- package/lib/components/form/upload-file-list/upload-file-list.component.d.ts +11 -9
- package/lib/components/navigation/back-button/back-button.component.d.ts +4 -4
- package/lib/components/navigation/back-to-top/back-to-top.component.d.ts +28 -13
- package/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +11 -9
- package/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.d.ts +6 -6
- package/lib/components/navigation/breadcrumbs/breadcrumbs.module.d.ts +8 -0
- package/lib/components/navigation/header/header.component.d.ts +9 -13
- package/lib/components/utils/error-page/error-page.component.d.ts +44 -0
- package/lib/components/utils/icon/icon.component.d.ts +14 -16
- package/lib/components/utils/language-switcher/language-switcher.component.d.ts +27 -0
- package/lib/design-angular-kit-config.d.ts +16 -0
- package/lib/design-angular-kit.module.d.ts +9 -4
- package/lib/interfaces/core.d.ts +40 -16
- package/lib/interfaces/design-angular-kit-init.d.ts +7 -0
- package/lib/interfaces/form.d.ts +32 -8
- package/lib/interfaces/icon.d.ts +4 -3
- package/lib/interfaces/utils.d.ts +10 -0
- package/lib/pipes/mark-matching-text.pipe.d.ts +10 -0
- package/lib/services/{notifications/notifications.service.d.ts → notification/notification.service.d.ts} +20 -20
- package/lib/utils/boolean-input.d.ts +1 -1
- package/lib/utils/file-utils.d.ts +5 -0
- package/lib/utils/regex.d.ts +5 -0
- package/lib/validators/it-validators.d.ts +16 -9
- package/package.json +13 -17
- package/public_api.d.ts +21 -4
- package/esm2020/lib/abstracts/abstract-form-component.mjs +0 -165
- package/esm2020/lib/abstracts/abstract.component.mjs +0 -20
- package/esm2020/lib/components/core/accordion/accordion.component.mjs +0 -20
- package/esm2020/lib/components/core/alert/alert.component.mjs +0 -29
- package/esm2020/lib/components/core/badge/badge.directive.mjs +0 -34
- package/esm2020/lib/components/core/button/button.directive.mjs +0 -78
- package/esm2020/lib/components/core/callout/callout.component.mjs +0 -59
- package/esm2020/lib/components/core/card/card.component.mjs +0 -58
- package/esm2020/lib/components/core/carousel/carousel/carousel.component.mjs +0 -66
- package/esm2020/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +0 -14
- package/esm2020/lib/components/core/chip/chip.component.mjs +0 -89
- package/esm2020/lib/components/core/collapse/collapse.component.mjs +0 -96
- package/esm2020/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +0 -24
- package/esm2020/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +0 -11
- package/esm2020/lib/components/core/dimmer/dimmer.component.mjs +0 -59
- package/esm2020/lib/components/core/dropdown/dropdown/dropdown.component.mjs +0 -60
- package/esm2020/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +0 -71
- package/esm2020/lib/components/core/forward/forward.directive.mjs +0 -51
- package/esm2020/lib/components/core/link/link.component.mjs +0 -39
- package/esm2020/lib/components/core/list/list/list.component.mjs +0 -13
- package/esm2020/lib/components/core/list/list-item/list-item.component.mjs +0 -36
- package/esm2020/lib/components/core/modal/modal.component.mjs +0 -98
- package/esm2020/lib/components/core/notifications/notifications.component.mjs +0 -66
- package/esm2020/lib/components/core/pagination/pagination.component.mjs +0 -51
- package/esm2020/lib/components/core/popover/popover.directive.mjs +0 -176
- package/esm2020/lib/components/core/progress-bar/progress-bar.component.mjs +0 -34
- package/esm2020/lib/components/core/progress-button/progress-button.component.mjs +0 -27
- package/esm2020/lib/components/core/spinner/spinner.component.mjs +0 -35
- package/esm2020/lib/components/core/tab/tab-container/tab-container.component.mjs +0 -33
- package/esm2020/lib/components/core/tab/tab-item/tab-item.component.mjs +0 -36
- package/esm2020/lib/components/core/table/table.component.mjs +0 -57
- package/esm2020/lib/components/core/tooltip/tooltip.directive.mjs +0 -140
- package/esm2020/lib/components/form/checkbox/checkbox.component.mjs +0 -40
- package/esm2020/lib/components/form/input/input.component.mjs +0 -159
- package/esm2020/lib/components/form/password-input/password-input.component.mjs +0 -112
- package/esm2020/lib/components/form/radio-button/radio-button.component.mjs +0 -53
- package/esm2020/lib/components/form/select/select.component.mjs +0 -62
- package/esm2020/lib/components/form/textarea/textarea.component.mjs +0 -46
- package/esm2020/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +0 -134
- package/esm2020/lib/components/form/upload-file-list/upload-file-list.component.mjs +0 -99
- package/esm2020/lib/components/navigation/back-button/back-button.component.mjs +0 -69
- package/esm2020/lib/components/navigation/back-to-top/back-to-top.component.mjs +0 -39
- package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +0 -45
- package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +0 -23
- package/esm2020/lib/components/navigation/header/header.component.mjs +0 -61
- package/esm2020/lib/components/utils/icon/icon.component.mjs +0 -54
- package/esm2020/lib/components/utils/not-found-page/not-found-page.component.mjs +0 -13
- package/esm2020/lib/design-angular-kit.module.mjs +0 -42
- package/esm2020/lib/interfaces/core.mjs +0 -16
- package/esm2020/lib/interfaces/form.mjs +0 -2
- package/esm2020/lib/interfaces/icon.mjs +0 -2
- package/esm2020/lib/modules/components.module.mjs +0 -241
- package/esm2020/lib/services/notifications/notifications.service.mjs +0 -122
- package/esm2020/lib/utils/file-utils.mjs +0 -65
- package/esm2020/lib/utils/regex.mjs +0 -26
- package/esm2020/lib/validators/it-validators.mjs +0 -131
- package/esm2020/public_api.mjs +0 -64
- package/fesm2015/design-angular-kit.mjs +0 -3271
- package/fesm2015/design-angular-kit.mjs.map +0 -1
- package/fesm2020/design-angular-kit.mjs +0 -3231
- package/fesm2020/design-angular-kit.mjs.map +0 -1
- package/lib/components/utils/not-found-page/not-found-page.component.d.ts +0 -5
- package/lib/modules/components.module.d.ts +0 -57
- /package/{esm2020 → esm2022}/design-angular-kit.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/boolean-input.mjs +0 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { filter, Subject } from 'rxjs';
|
|
3
|
+
import { NotificationType } from '../../interfaces/core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class ItNotificationService {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.subject = new Subject();
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Listen on notification arrived
|
|
11
|
+
* @param filterType filter type of notification
|
|
12
|
+
*/
|
|
13
|
+
onNotification(filterType) {
|
|
14
|
+
return this.subject.asObservable().pipe(filter(n => n && (!filterType || (n.type === filterType))));
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Show new notification
|
|
18
|
+
* @param notification notification
|
|
19
|
+
*/
|
|
20
|
+
addNotification(notification) {
|
|
21
|
+
this.subject.next(notification);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Create new Standard notification
|
|
25
|
+
* @param title notification title
|
|
26
|
+
* @param message notification message
|
|
27
|
+
* @param dismissible notification dismissible
|
|
28
|
+
* @param duration notification duration (milliseconds)
|
|
29
|
+
* @param position notification position
|
|
30
|
+
*/
|
|
31
|
+
standard(title, message, dismissible, duration, position) {
|
|
32
|
+
this.addNotification({
|
|
33
|
+
type: NotificationType.Standard,
|
|
34
|
+
message,
|
|
35
|
+
title,
|
|
36
|
+
duration,
|
|
37
|
+
dismissible,
|
|
38
|
+
position
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Create new Success notification
|
|
43
|
+
* @param title notification title
|
|
44
|
+
* @param message notification message
|
|
45
|
+
* @param dismissible notification dismissible
|
|
46
|
+
* @param duration notification duration (milliseconds)
|
|
47
|
+
* @param position notification position
|
|
48
|
+
*/
|
|
49
|
+
success(title, message, dismissible, duration, position) {
|
|
50
|
+
this.addNotification({
|
|
51
|
+
type: NotificationType.Success,
|
|
52
|
+
message,
|
|
53
|
+
title,
|
|
54
|
+
duration,
|
|
55
|
+
dismissible,
|
|
56
|
+
position
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Create new Error notification
|
|
61
|
+
* @param title notification title
|
|
62
|
+
* @param message notification message
|
|
63
|
+
* @param dismissible notification dismissible
|
|
64
|
+
* @param duration notification duration (milliseconds)
|
|
65
|
+
* @param position notification position
|
|
66
|
+
*/
|
|
67
|
+
error(title, message, dismissible, duration, position) {
|
|
68
|
+
this.addNotification({
|
|
69
|
+
type: NotificationType.Error,
|
|
70
|
+
message,
|
|
71
|
+
title,
|
|
72
|
+
duration,
|
|
73
|
+
dismissible,
|
|
74
|
+
position
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Create new Warning notification
|
|
79
|
+
* @param title notification title
|
|
80
|
+
* @param message notification message
|
|
81
|
+
* @param dismissible notification dismissible
|
|
82
|
+
* @param duration notification duration (milliseconds)
|
|
83
|
+
* @param position notification position
|
|
84
|
+
*/
|
|
85
|
+
warning(title, message, dismissible, duration, position) {
|
|
86
|
+
this.addNotification({
|
|
87
|
+
type: NotificationType.Warning,
|
|
88
|
+
message,
|
|
89
|
+
title,
|
|
90
|
+
duration,
|
|
91
|
+
dismissible,
|
|
92
|
+
position
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Create new Info notification
|
|
97
|
+
* @param title notification title
|
|
98
|
+
* @param message notification message
|
|
99
|
+
* @param dismissible notification dismissible
|
|
100
|
+
* @param duration notification duration (milliseconds)
|
|
101
|
+
* @param position notification position
|
|
102
|
+
*/
|
|
103
|
+
info(title, message, dismissible, duration, position) {
|
|
104
|
+
this.addNotification({
|
|
105
|
+
type: NotificationType.Info,
|
|
106
|
+
message,
|
|
107
|
+
title,
|
|
108
|
+
duration,
|
|
109
|
+
dismissible,
|
|
110
|
+
position
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItNotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
114
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItNotificationService, providedIn: 'root' }); }
|
|
115
|
+
}
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItNotificationService, decorators: [{
|
|
117
|
+
type: Injectable,
|
|
118
|
+
args: [{ providedIn: 'root' }]
|
|
119
|
+
}] });
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9zZXJ2aWNlcy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQXNDLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRzdGLE1BQU0sT0FBTyxxQkFBcUI7SUFEbEM7UUFFVSxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQWdCLENBQUM7S0FrSC9DO0lBaEhDOzs7T0FHRztJQUNJLGNBQWMsQ0FBQyxVQUE2QjtRQUNqRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUNyQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUMzRCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNJLGVBQWUsQ0FBQyxZQUEwQjtRQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLFFBQVEsQ0FBQyxLQUFhLEVBQUUsT0FBZ0IsRUFBRSxXQUFvQixFQUFFLFFBQWlCLEVBQUUsUUFBK0I7UUFDdkgsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUNuQixJQUFJLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUMvQixPQUFPO1lBQ1AsS0FBSztZQUNMLFFBQVE7WUFDUixXQUFXO1lBQ1gsUUFBUTtTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksT0FBTyxDQUFDLEtBQWEsRUFBRSxPQUFnQixFQUFFLFdBQW9CLEVBQUUsUUFBaUIsRUFBRSxRQUErQjtRQUN0SCxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQ25CLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPO1lBQzlCLE9BQU87WUFDUCxLQUFLO1lBQ0wsUUFBUTtZQUNSLFdBQVc7WUFDWCxRQUFRO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxLQUFLLENBQUMsS0FBYSxFQUFFLE9BQWdCLEVBQUUsV0FBb0IsRUFBRSxRQUFpQixFQUFFLFFBQStCO1FBQ3BILElBQUksQ0FBQyxlQUFlLENBQUM7WUFDbkIsSUFBSSxFQUFFLGdCQUFnQixDQUFDLEtBQUs7WUFDNUIsT0FBTztZQUNQLEtBQUs7WUFDTCxRQUFRO1lBQ1IsV0FBVztZQUNYLFFBQVE7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLE9BQU8sQ0FBQyxLQUFhLEVBQUUsT0FBZ0IsRUFBRSxXQUFvQixFQUFFLFFBQWlCLEVBQUUsUUFBK0I7UUFDdEgsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUNuQixJQUFJLEVBQUUsZ0JBQWdCLENBQUMsT0FBTztZQUM5QixPQUFPO1lBQ1AsS0FBSztZQUNMLFFBQVE7WUFDUixXQUFXO1lBQ1gsUUFBUTtTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksSUFBSSxDQUFDLEtBQWEsRUFBRSxPQUFnQixFQUFFLFdBQW9CLEVBQUUsUUFBaUIsRUFBRSxRQUErQjtRQUNuSCxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQ25CLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJO1lBQzNCLE9BQU87WUFDUCxLQUFLO1lBQ0wsUUFBUTtZQUNSLFdBQVc7WUFDWCxRQUFRO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FsSFUscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FEUixNQUFNOzsyRkFDbkIscUJBQXFCO2tCQURqQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpbHRlciwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uLCBOb3RpZmljYXRpb25Qb3NpdGlvbiwgTm90aWZpY2F0aW9uVHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvY29yZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgSXROb3RpZmljYXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8Tm90aWZpY2F0aW9uPigpO1xuXG4gIC8qKlxuICAgKiBMaXN0ZW4gb24gbm90aWZpY2F0aW9uIGFycml2ZWRcbiAgICogQHBhcmFtIGZpbHRlclR5cGUgZmlsdGVyIHR5cGUgb2Ygbm90aWZpY2F0aW9uXG4gICAqL1xuICBwdWJsaWMgb25Ob3RpZmljYXRpb24oZmlsdGVyVHlwZT86IE5vdGlmaWNhdGlvblR5cGUpOiBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLnN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgIGZpbHRlcihuID0+IG4gJiYgKCFmaWx0ZXJUeXBlIHx8IChuLnR5cGUgPT09IGZpbHRlclR5cGUpKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3cgbmV3IG5vdGlmaWNhdGlvblxuICAgKiBAcGFyYW0gbm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvblxuICAgKi9cbiAgcHVibGljIGFkZE5vdGlmaWNhdGlvbihub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbik6IHZvaWQge1xuICAgIHRoaXMuc3ViamVjdC5uZXh0KG5vdGlmaWNhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIG5ldyBTdGFuZGFyZCBub3RpZmljYXRpb25cbiAgICogQHBhcmFtIHRpdGxlIG5vdGlmaWNhdGlvbiB0aXRsZVxuICAgKiBAcGFyYW0gbWVzc2FnZSBub3RpZmljYXRpb24gbWVzc2FnZVxuICAgKiBAcGFyYW0gZGlzbWlzc2libGUgbm90aWZpY2F0aW9uIGRpc21pc3NpYmxlXG4gICAqIEBwYXJhbSBkdXJhdGlvbiBub3RpZmljYXRpb24gZHVyYXRpb24gKG1pbGxpc2Vjb25kcylcbiAgICogQHBhcmFtIHBvc2l0aW9uIG5vdGlmaWNhdGlvbiBwb3NpdGlvblxuICAgKi9cbiAgcHVibGljIHN0YW5kYXJkKHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U/OiBzdHJpbmcsIGRpc21pc3NpYmxlPzpib29sZWFuLCBkdXJhdGlvbj86IG51bWJlciwgcG9zaXRpb24/OiBOb3RpZmljYXRpb25Qb3NpdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWRkTm90aWZpY2F0aW9uKHtcbiAgICAgIHR5cGU6IE5vdGlmaWNhdGlvblR5cGUuU3RhbmRhcmQsXG4gICAgICBtZXNzYWdlLFxuICAgICAgdGl0bGUsXG4gICAgICBkdXJhdGlvbixcbiAgICAgIGRpc21pc3NpYmxlLFxuICAgICAgcG9zaXRpb25cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgbmV3IFN1Y2Nlc3Mgbm90aWZpY2F0aW9uXG4gICAqIEBwYXJhbSB0aXRsZSBub3RpZmljYXRpb24gdGl0bGVcbiAgICogQHBhcmFtIG1lc3NhZ2Ugbm90aWZpY2F0aW9uIG1lc3NhZ2VcbiAgICogQHBhcmFtIGRpc21pc3NpYmxlIG5vdGlmaWNhdGlvbiBkaXNtaXNzaWJsZVxuICAgKiBAcGFyYW0gZHVyYXRpb24gbm90aWZpY2F0aW9uIGR1cmF0aW9uIChtaWxsaXNlY29uZHMpXG4gICAqIEBwYXJhbSBwb3NpdGlvbiBub3RpZmljYXRpb24gcG9zaXRpb25cbiAgICovXG4gIHB1YmxpYyBzdWNjZXNzKHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U/OiBzdHJpbmcsIGRpc21pc3NpYmxlPzpib29sZWFuLCBkdXJhdGlvbj86IG51bWJlciwgcG9zaXRpb24/OiBOb3RpZmljYXRpb25Qb3NpdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWRkTm90aWZpY2F0aW9uKHtcbiAgICAgIHR5cGU6IE5vdGlmaWNhdGlvblR5cGUuU3VjY2VzcyxcbiAgICAgIG1lc3NhZ2UsXG4gICAgICB0aXRsZSxcbiAgICAgIGR1cmF0aW9uLFxuICAgICAgZGlzbWlzc2libGUsXG4gICAgICBwb3NpdGlvblxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBuZXcgRXJyb3Igbm90aWZpY2F0aW9uXG4gICAqIEBwYXJhbSB0aXRsZSBub3RpZmljYXRpb24gdGl0bGVcbiAgICogQHBhcmFtIG1lc3NhZ2Ugbm90aWZpY2F0aW9uIG1lc3NhZ2VcbiAgICogQHBhcmFtIGRpc21pc3NpYmxlIG5vdGlmaWNhdGlvbiBkaXNtaXNzaWJsZVxuICAgKiBAcGFyYW0gZHVyYXRpb24gbm90aWZpY2F0aW9uIGR1cmF0aW9uIChtaWxsaXNlY29uZHMpXG4gICAqIEBwYXJhbSBwb3NpdGlvbiBub3RpZmljYXRpb24gcG9zaXRpb25cbiAgICovXG4gIHB1YmxpYyBlcnJvcih0aXRsZTogc3RyaW5nLCBtZXNzYWdlPzogc3RyaW5nLCBkaXNtaXNzaWJsZT86Ym9vbGVhbiwgZHVyYXRpb24/OiBudW1iZXIsIHBvc2l0aW9uPzogTm90aWZpY2F0aW9uUG9zaXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLmFkZE5vdGlmaWNhdGlvbih7XG4gICAgICB0eXBlOiBOb3RpZmljYXRpb25UeXBlLkVycm9yLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIHRpdGxlLFxuICAgICAgZHVyYXRpb24sXG4gICAgICBkaXNtaXNzaWJsZSxcbiAgICAgIHBvc2l0aW9uXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIG5ldyBXYXJuaW5nIG5vdGlmaWNhdGlvblxuICAgKiBAcGFyYW0gdGl0bGUgbm90aWZpY2F0aW9uIHRpdGxlXG4gICAqIEBwYXJhbSBtZXNzYWdlIG5vdGlmaWNhdGlvbiBtZXNzYWdlXG4gICAqIEBwYXJhbSBkaXNtaXNzaWJsZSBub3RpZmljYXRpb24gZGlzbWlzc2libGVcbiAgICogQHBhcmFtIGR1cmF0aW9uIG5vdGlmaWNhdGlvbiBkdXJhdGlvbiAobWlsbGlzZWNvbmRzKVxuICAgKiBAcGFyYW0gcG9zaXRpb24gbm90aWZpY2F0aW9uIHBvc2l0aW9uXG4gICAqL1xuICBwdWJsaWMgd2FybmluZyh0aXRsZTogc3RyaW5nLCBtZXNzYWdlPzogc3RyaW5nLCBkaXNtaXNzaWJsZT86Ym9vbGVhbiwgZHVyYXRpb24/OiBudW1iZXIsIHBvc2l0aW9uPzogTm90aWZpY2F0aW9uUG9zaXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLmFkZE5vdGlmaWNhdGlvbih7XG4gICAgICB0eXBlOiBOb3RpZmljYXRpb25UeXBlLldhcm5pbmcsXG4gICAgICBtZXNzYWdlLFxuICAgICAgdGl0bGUsXG4gICAgICBkdXJhdGlvbixcbiAgICAgIGRpc21pc3NpYmxlLFxuICAgICAgcG9zaXRpb25cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgbmV3IEluZm8gbm90aWZpY2F0aW9uXG4gICAqIEBwYXJhbSB0aXRsZSBub3RpZmljYXRpb24gdGl0bGVcbiAgICogQHBhcmFtIG1lc3NhZ2Ugbm90aWZpY2F0aW9uIG1lc3NhZ2VcbiAgICogQHBhcmFtIGRpc21pc3NpYmxlIG5vdGlmaWNhdGlvbiBkaXNtaXNzaWJsZVxuICAgKiBAcGFyYW0gZHVyYXRpb24gbm90aWZpY2F0aW9uIGR1cmF0aW9uIChtaWxsaXNlY29uZHMpXG4gICAqIEBwYXJhbSBwb3NpdGlvbiBub3RpZmljYXRpb24gcG9zaXRpb25cbiAgICovXG4gIHB1YmxpYyBpbmZvKHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U/OiBzdHJpbmcsIGRpc21pc3NpYmxlPzpib29sZWFuLCBkdXJhdGlvbj86IG51bWJlciwgcG9zaXRpb24/OiBOb3RpZmljYXRpb25Qb3NpdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWRkTm90aWZpY2F0aW9uKHtcbiAgICAgIHR5cGU6IE5vdGlmaWNhdGlvblR5cGUuSW5mbyxcbiAgICAgIG1lc3NhZ2UsXG4gICAgICB0aXRsZSxcbiAgICAgIGR1cmF0aW9uLFxuICAgICAgZGlzbWlzc2libGUsXG4gICAgICBwb3NpdGlvblxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
export class FileUtils {
|
|
3
|
+
/**
|
|
4
|
+
* Return the file size string
|
|
5
|
+
* @param file the file
|
|
6
|
+
* @param decimals decimal to show
|
|
7
|
+
*/
|
|
8
|
+
static getFileSizeString(file, decimals = 2) {
|
|
9
|
+
const bytes = file.size;
|
|
10
|
+
if (!+bytes) {
|
|
11
|
+
return '0 Bytes';
|
|
12
|
+
}
|
|
13
|
+
const k = 1024;
|
|
14
|
+
const dm = decimals < 0 ? 0 : decimals;
|
|
15
|
+
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
|
16
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
17
|
+
return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Convert a file to base64 string
|
|
21
|
+
* @param file the base64 string
|
|
22
|
+
*/
|
|
23
|
+
static fileToBase64(file) {
|
|
24
|
+
const reader = new FileReader();
|
|
25
|
+
reader.readAsDataURL(file);
|
|
26
|
+
return new Observable(observer => {
|
|
27
|
+
reader.onload = (e) => {
|
|
28
|
+
const target = e.target;
|
|
29
|
+
if (!target?.result || target.result instanceof ArrayBuffer) {
|
|
30
|
+
return observer.error('Error on parse');
|
|
31
|
+
}
|
|
32
|
+
observer.next(target.result);
|
|
33
|
+
observer.complete();
|
|
34
|
+
};
|
|
35
|
+
reader.onerror = error => {
|
|
36
|
+
observer.error(error);
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Convert base64 to Blob
|
|
42
|
+
* @param base64 the base64 string
|
|
43
|
+
* @param mimeType the <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types">MIME type</a> (example 'application/pdf')
|
|
44
|
+
*/
|
|
45
|
+
static base64ToBlob(base64, mimeType) {
|
|
46
|
+
const byteString = window.atob(base64);
|
|
47
|
+
const arrayBuffer = new ArrayBuffer(byteString.length);
|
|
48
|
+
const int8Array = new Uint8Array(arrayBuffer);
|
|
49
|
+
for (let i = 0; i < byteString.length; i++) {
|
|
50
|
+
int8Array[i] = byteString.charCodeAt(i);
|
|
51
|
+
}
|
|
52
|
+
return new Blob([int8Array], { type: mimeType });
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Convert base64 to File
|
|
56
|
+
* @param base64 the base64 string
|
|
57
|
+
* @param mimeType the <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types">MIME type</a> (example 'application/pdf')
|
|
58
|
+
* @param filename the file name
|
|
59
|
+
*/
|
|
60
|
+
static base64ToFile(base64, mimeType, filename) {
|
|
61
|
+
const fileBlob = FileUtils.base64ToBlob(base64, mimeType);
|
|
62
|
+
return new File([fileBlob], filename, { type: mimeType });
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Extract the MIME type from base64 string
|
|
66
|
+
* @param base64 the base64 string
|
|
67
|
+
*/
|
|
68
|
+
static getMimeTypeFromBase64(base64) {
|
|
69
|
+
const mime = base64.match(/data:([a-zA-Z0-9]+\/[a-zA-Z0-9-.+]+).*,.*/);
|
|
70
|
+
return mime?.length ? mime[1] : undefined;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL3V0aWxzL2ZpbGUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQyxNQUFNLE9BQU8sU0FBUztJQUVwQjs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQVUsRUFBRSxRQUFRLEdBQUcsQ0FBQztRQUN0RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUNYLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2YsTUFBTSxFQUFFLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDdkMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXhFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzNFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQVU7UUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNCLE9BQU8sSUFBSSxVQUFVLENBQVMsUUFBUSxDQUFDLEVBQUU7WUFDdkMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNwQixNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO2dCQUN4QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxZQUFZLFdBQVcsRUFBRTtvQkFDM0QsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7aUJBQ3pDO2dCQUNELFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM3QixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEIsQ0FBQyxDQUFDO1lBQ0YsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDdkIsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QixDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFjLEVBQUUsUUFBZ0I7UUFDekQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkQsTUFBTSxTQUFTLEdBQUcsSUFBSSxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDMUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekM7UUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQWMsRUFBRSxRQUFnQixFQUFFLFFBQWdCO1FBQzNFLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzFELE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUFDLE1BQWM7UUFDaEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDNUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY2xhc3MgRmlsZVV0aWxzIHtcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBmaWxlIHNpemUgc3RyaW5nXG4gICAqIEBwYXJhbSBmaWxlIHRoZSBmaWxlXG4gICAqIEBwYXJhbSBkZWNpbWFscyBkZWNpbWFsIHRvIHNob3dcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RmlsZVNpemVTdHJpbmcoZmlsZTogRmlsZSwgZGVjaW1hbHMgPSAyKTogc3RyaW5nIHtcbiAgICBjb25zdCBieXRlcyA9IGZpbGUuc2l6ZTtcbiAgICBpZiAoIStieXRlcykge1xuICAgICAgcmV0dXJuICcwIEJ5dGVzJztcbiAgICB9XG5cbiAgICBjb25zdCBrID0gMTAyNDtcbiAgICBjb25zdCBkbSA9IGRlY2ltYWxzIDwgMCA/IDAgOiBkZWNpbWFscztcbiAgICBjb25zdCBzaXplcyA9IFsnQnl0ZXMnLCAnS0InLCAnTUInLCAnR0InLCAnVEInLCAnUEInLCAnRUInLCAnWkInLCAnWUInXTtcblxuICAgIGNvbnN0IGkgPSBNYXRoLmZsb29yKE1hdGgubG9nKGJ5dGVzKSAvIE1hdGgubG9nKGspKTtcbiAgICByZXR1cm4gYCR7cGFyc2VGbG9hdCgoYnl0ZXMgLyBNYXRoLnBvdyhrLCBpKSkudG9GaXhlZChkbSkpfSAke3NpemVzW2ldfWA7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBhIGZpbGUgdG8gYmFzZTY0IHN0cmluZ1xuICAgKiBAcGFyYW0gZmlsZSB0aGUgYmFzZTY0IHN0cmluZ1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmaWxlVG9CYXNlNjQoZmlsZTogRmlsZSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxzdHJpbmc+KG9ic2VydmVyID0+IHtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoZSkgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBlLnRhcmdldDtcbiAgICAgICAgaWYgKCF0YXJnZXQ/LnJlc3VsdCB8fCB0YXJnZXQucmVzdWx0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcbiAgICAgICAgICByZXR1cm4gb2JzZXJ2ZXIuZXJyb3IoJ0Vycm9yIG9uIHBhcnNlJyk7XG4gICAgICAgIH1cbiAgICAgICAgb2JzZXJ2ZXIubmV4dCh0YXJnZXQucmVzdWx0KTtcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgIH07XG4gICAgICByZWFkZXIub25lcnJvciA9IGVycm9yID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGJhc2U2NCB0byBCbG9iXG4gICAqIEBwYXJhbSBiYXNlNjQgdGhlIGJhc2U2NCBzdHJpbmdcbiAgICogQHBhcmFtIG1pbWVUeXBlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9CYXNpY3Nfb2ZfSFRUUC9NSU1FX3R5cGVzL0NvbW1vbl90eXBlc1wiPk1JTUUgdHlwZTwvYT4gKGV4YW1wbGUgJ2FwcGxpY2F0aW9uL3BkZicpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGJhc2U2NFRvQmxvYihiYXNlNjQ6IHN0cmluZywgbWltZVR5cGU6IHN0cmluZyk6IEJsb2Ige1xuICAgIGNvbnN0IGJ5dGVTdHJpbmcgPSB3aW5kb3cuYXRvYihiYXNlNjQpO1xuICAgIGNvbnN0IGFycmF5QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGJ5dGVTdHJpbmcubGVuZ3RoKTtcbiAgICBjb25zdCBpbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlU3RyaW5nLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpbnQ4QXJyYXlbaV0gPSBieXRlU3RyaW5nLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQmxvYihbaW50OEFycmF5XSwgeyB0eXBlOiBtaW1lVHlwZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGJhc2U2NCB0byBGaWxlXG4gICAqIEBwYXJhbSBiYXNlNjQgdGhlIGJhc2U2NCBzdHJpbmdcbiAgICogQHBhcmFtIG1pbWVUeXBlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9CYXNpY3Nfb2ZfSFRUUC9NSU1FX3R5cGVzL0NvbW1vbl90eXBlc1wiPk1JTUUgdHlwZTwvYT4gKGV4YW1wbGUgJ2FwcGxpY2F0aW9uL3BkZicpXG4gICAqIEBwYXJhbSBmaWxlbmFtZSB0aGUgZmlsZSBuYW1lXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGJhc2U2NFRvRmlsZShiYXNlNjQ6IHN0cmluZywgbWltZVR5cGU6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyk6IEZpbGUge1xuICAgIGNvbnN0IGZpbGVCbG9iID0gRmlsZVV0aWxzLmJhc2U2NFRvQmxvYihiYXNlNjQsIG1pbWVUeXBlKTtcbiAgICByZXR1cm4gbmV3IEZpbGUoW2ZpbGVCbG9iXSwgZmlsZW5hbWUsIHsgdHlwZTogbWltZVR5cGUgfSk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdCB0aGUgTUlNRSB0eXBlIGZyb20gYmFzZTY0IHN0cmluZ1xuICAgKiBAcGFyYW0gYmFzZTY0IHRoZSBiYXNlNjQgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldE1pbWVUeXBlRnJvbUJhc2U2NChiYXNlNjQ6IHN0cmluZyk6IHN0cmluZ3x1bmRlZmluZWQge1xuICAgIGNvbnN0IG1pbWUgPSBiYXNlNjQubWF0Y2goL2RhdGE6KFthLXpBLVowLTldK1xcL1thLXpBLVowLTktLitdKykuKiwuKi8pO1xuICAgIHJldHVybiBtaW1lPy5sZW5ndGggPyBtaW1lWzFdIDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* General Email Regex (RFC 5322 Official Standard)
|
|
3
|
+
* http://emailregex.com/
|
|
4
|
+
*/
|
|
5
|
+
export const EMAIL_REGEX = /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/;
|
|
6
|
+
/**
|
|
7
|
+
* Phone number Regex
|
|
8
|
+
*/
|
|
9
|
+
export const PHONE_NUMBER_REGEX = /^\s*(?:\+?(\d{1,3}))?[-. (]*(\d{3})[-. )]*(\d{3})[-. ]*(\d{3})(?: *x(\d+))?\s*$/;
|
|
10
|
+
/**
|
|
11
|
+
* URL Regex
|
|
12
|
+
*/
|
|
13
|
+
export const URL_REGEX = /(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})/;
|
|
14
|
+
/**
|
|
15
|
+
* The italian tax code Regex (Codice Fiscale)
|
|
16
|
+
*/
|
|
17
|
+
export const ITALIAN_TAX_CODE_REGEX = /^[A-Za-z]{6}[0-9]{2}[A-Za-z]{1}[0-9]{2}[A-Za-z]{1}[0-9]{3}[A-Za-z]{1}$/i;
|
|
18
|
+
/**
|
|
19
|
+
* The VAT number Regex (Partita iva)
|
|
20
|
+
*/
|
|
21
|
+
export const VAT_NUMBER_REGEX = /^[0-9]{11}$/;
|
|
22
|
+
/**
|
|
23
|
+
* Italian CAP Regex
|
|
24
|
+
*/
|
|
25
|
+
export const CAP_REGEX = /^[0-9]{5}$/;
|
|
26
|
+
/**
|
|
27
|
+
* IBAN Regex
|
|
28
|
+
* https://blog.marketto.it/en/2018/06/validate-any-country-iban/
|
|
29
|
+
*/
|
|
30
|
+
export const IBAN_REGEX = /^(?:(?:IT|SM)\d{2}[A-Z]\d{22}|CY\d{2}[A-Z]\d{23}|NL\d{2}[A-Z]{4}\d{10}|LV\d{2}[A-Z]{4}\d{13}|(?:BG|BH|GB|IE)\d{2}[A-Z]{4}\d{14}|GI\d{2}[A-Z]{4}\d{15}|RO\d{2}[A-Z]{4}\d{16}|KW\d{2}[A-Z]{4}\d{22}|MT\d{2}[A-Z]{4}\d{23}|NO\d{13}|(?:DK|FI|GL|FO)\d{16}|MK\d{17}|(?:AT|EE|KZ|LU|XK)\d{18}|(?:BA|HR|LI|CH|CR)\d{19}|(?:GE|DE|LT|ME|RS)\d{20}|IL\d{21}|(?:AD|CZ|ES|MD|SA)\d{22}|PT\d{23}|(?:BE|IS)\d{24}|(?:FR|MR|MC)\d{25}|(?:AL|DO|LB|PL)\d{26}|(?:AZ|HU)\d{27}|(?:GR|MU)\d{28})$/i;
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi91dGlscy9yZWdleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsNGFBQTRhLENBQUM7QUFFeGM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxpRkFBaUYsQ0FBQztBQUVwSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxtTkFBbU4sQ0FBQztBQUU3Tzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLHlFQUF5RSxDQUFDO0FBRWhIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDO0FBRTlDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQztBQUV0Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsbWRBQW1kLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYWwgRW1haWwgUmVnZXggKFJGQyA1MzIyIE9mZmljaWFsIFN0YW5kYXJkKVxuICogaHR0cDovL2VtYWlscmVnZXguY29tL1xuICovXG5leHBvcnQgY29uc3QgRU1BSUxfUkVHRVggPSAvKD86W2EtejAtOSEjJCUmJyorLz0/Xl9ge3x9fi1dKyg/OlxcLlthLXowLTkhIyQlJicqKy89P15fYHt8fX4tXSspKnxcIig/OltcXHgwMS1cXHgwOFxceDBiXFx4MGNcXHgwZS1cXHgxZlxceDIxXFx4MjMtXFx4NWJcXHg1ZC1cXHg3Zl18XFxcXFtcXHgwMS1cXHgwOVxceDBiXFx4MGNcXHgwZS1cXHg3Zl0pKlwiKUAoPzooPzpbYS16MC05XSg/OlthLXowLTktXSpbYS16MC05XSk/XFwuKStbYS16MC05XSg/OlthLXowLTktXSpbYS16MC05XSk/fFxcWyg/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcXC4pezN9KD86MjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/fFthLXowLTktXSpbYS16MC05XTooPzpbXFx4MDEtXFx4MDhcXHgwYlxceDBjXFx4MGUtXFx4MWZcXHgyMS1cXHg1YVxceDUzLVxceDdmXXxcXFxcW1xceDAxLVxceDA5XFx4MGJcXHgwY1xceDBlLVxceDdmXSkrKVxcXSkvO1xuXG4vKipcbiAqIFBob25lIG51bWJlciBSZWdleFxuICovXG5leHBvcnQgY29uc3QgUEhPTkVfTlVNQkVSX1JFR0VYID0gL15cXHMqKD86XFwrPyhcXGR7MSwzfSkpP1stLiAoXSooXFxkezN9KVstLiApXSooXFxkezN9KVstLiBdKihcXGR7M30pKD86ICp4KFxcZCspKT9cXHMqJC87XG5cbi8qKlxuICogVVJMIFJlZ2V4XG4gKi9cbmV4cG9ydCBjb25zdCBVUkxfUkVHRVggPSAvKGh0dHBzPzpcXC9cXC8oPzp3d3dcXC58KD8hd3d3KSlbYS16QS1aMC05XVthLXpBLVowLTktXStbYS16QS1aMC05XVxcLlteXFxzXXsyLH18d3d3XFwuW2EtekEtWjAtOV1bYS16QS1aMC05LV0rW2EtekEtWjAtOV1cXC5bXlxcc117Mix9fGh0dHBzPzpcXC9cXC8oPzp3d3dcXC58KD8hd3d3KSlbYS16QS1aMC05XStcXC5bXlxcc117Mix9fHd3d1xcLlthLXpBLVowLTldK1xcLlteXFxzXXsyLH0pLztcblxuLyoqXG4gKiBUaGUgaXRhbGlhbiB0YXggY29kZSBSZWdleCAoQ29kaWNlIEZpc2NhbGUpXG4gKi9cbmV4cG9ydCBjb25zdCBJVEFMSUFOX1RBWF9DT0RFX1JFR0VYID0gL15bQS1aYS16XXs2fVswLTldezJ9W0EtWmEtel17MX1bMC05XXsyfVtBLVphLXpdezF9WzAtOV17M31bQS1aYS16XXsxfSQvaTtcblxuLyoqXG4gKiBUaGUgVkFUIG51bWJlciBSZWdleCAoUGFydGl0YSBpdmEpXG4gKi9cbmV4cG9ydCBjb25zdCBWQVRfTlVNQkVSX1JFR0VYID0gL15bMC05XXsxMX0kLztcblxuLyoqXG4gKiBJdGFsaWFuIENBUCBSZWdleFxuICovXG5leHBvcnQgY29uc3QgQ0FQX1JFR0VYID0gL15bMC05XXs1fSQvO1xuXG4vKipcbiAqIElCQU4gUmVnZXhcbiAqIGh0dHBzOi8vYmxvZy5tYXJrZXR0by5pdC9lbi8yMDE4LzA2L3ZhbGlkYXRlLWFueS1jb3VudHJ5LWliYW4vXG4gKi9cbmV4cG9ydCBjb25zdCBJQkFOX1JFR0VYID0gL14oPzooPzpJVHxTTSlcXGR7Mn1bQS1aXVxcZHsyMn18Q1lcXGR7Mn1bQS1aXVxcZHsyM318TkxcXGR7Mn1bQS1aXXs0fVxcZHsxMH18TFZcXGR7Mn1bQS1aXXs0fVxcZHsxM318KD86Qkd8Qkh8R0J8SUUpXFxkezJ9W0EtWl17NH1cXGR7MTR9fEdJXFxkezJ9W0EtWl17NH1cXGR7MTV9fFJPXFxkezJ9W0EtWl17NH1cXGR7MTZ9fEtXXFxkezJ9W0EtWl17NH1cXGR7MjJ9fE1UXFxkezJ9W0EtWl17NH1cXGR7MjN9fE5PXFxkezEzfXwoPzpES3xGSXxHTHxGTylcXGR7MTZ9fE1LXFxkezE3fXwoPzpBVHxFRXxLWnxMVXxYSylcXGR7MTh9fCg/OkJBfEhSfExJfENIfENSKVxcZHsxOX18KD86R0V8REV8TFR8TUV8UlMpXFxkezIwfXxJTFxcZHsyMX18KD86QUR8Q1p8RVN8TUR8U0EpXFxkezIyfXxQVFxcZHsyM318KD86QkV8SVMpXFxkezI0fXwoPzpGUnxNUnxNQylcXGR7MjV9fCg/OkFMfERPfExCfFBMKVxcZHsyNn18KD86QVp8SFUpXFxkezI3fXwoPzpHUnxNVSlcXGR7Mjh9KSQvaTtcbiJdfQ==
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { Validators } from '@angular/forms';
|
|
2
|
+
import { CAP_REGEX, EMAIL_REGEX, IBAN_REGEX, ITALIAN_TAX_CODE_REGEX, PHONE_NUMBER_REGEX, URL_REGEX, VAT_NUMBER_REGEX } from '../utils/regex';
|
|
3
|
+
export class ItValidators {
|
|
4
|
+
static { this.SpecialCharacterPattern = '!@#$%&*_+=;:|,.'; }
|
|
5
|
+
/**
|
|
6
|
+
* Static pattern validator with custom error
|
|
7
|
+
* @param regex
|
|
8
|
+
* @param error
|
|
9
|
+
*/
|
|
10
|
+
static customPattern(regex, error) {
|
|
11
|
+
return (control) => {
|
|
12
|
+
if (!control.value) {
|
|
13
|
+
// if control is empty return no error
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
// test the value of the control against the regexp supplied
|
|
17
|
+
const valid = regex.test(control.value);
|
|
18
|
+
// if true, return no error (no error), else return error passed in the second parameter
|
|
19
|
+
return valid ? null : error;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Set Validator if the condition is satisfied
|
|
24
|
+
* @param validator the validator to apply if the condition is true
|
|
25
|
+
* @param condition the condition
|
|
26
|
+
*/
|
|
27
|
+
static conditional(validator, condition) {
|
|
28
|
+
return formControl => {
|
|
29
|
+
if (!formControl.parent) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
if (condition(formControl)) {
|
|
33
|
+
return validator(formControl);
|
|
34
|
+
}
|
|
35
|
+
return null;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Check whether our password and confirm password are a match
|
|
40
|
+
* @param control
|
|
41
|
+
* @param passwordControlName the password formControlName
|
|
42
|
+
* @param confirmControlName the confirmPassword formControlName
|
|
43
|
+
*/
|
|
44
|
+
static passwordMatch(control, passwordControlName = 'password', confirmControlName = 'confirmPassword') {
|
|
45
|
+
const confirmControl = control.get(confirmControlName); // confirmPassword form control
|
|
46
|
+
if (!confirmControl) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
const passwordControl = control.get(passwordControlName); // password form control
|
|
50
|
+
const password = passwordControl?.value; // get password from our password form control
|
|
51
|
+
// compare is the password match
|
|
52
|
+
if ((password && !confirmControl.value) || (confirmControl.value && password !== confirmControl.value)) {
|
|
53
|
+
// if they don't match, set an error in our confirmPassword form control
|
|
54
|
+
confirmControl?.setErrors({ noPasswordMatch: true });
|
|
55
|
+
confirmControl?.markAsTouched();
|
|
56
|
+
return control;
|
|
57
|
+
}
|
|
58
|
+
if (password && passwordControl?.touched) {
|
|
59
|
+
confirmControl?.markAsTouched();
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Password validator
|
|
65
|
+
* @param minLength minimum password length - default 10
|
|
66
|
+
* @param hasNumber check whether the entered password has a number - default true
|
|
67
|
+
* @param hasCapitalCase check whether the entered password has upper case letter - default true
|
|
68
|
+
* @param hasSmallCase check whether the entered password has a lower-case letter - default true
|
|
69
|
+
* @param hasSpecialCharacters check whether the entered password has a special character - default true
|
|
70
|
+
* @param required the field is required - default true
|
|
71
|
+
*/
|
|
72
|
+
static password(minLength = 10, hasNumber = true, hasCapitalCase = true, hasSmallCase = true, hasSpecialCharacters = true, required = true) {
|
|
73
|
+
const validators = [Validators.minLength(minLength)];
|
|
74
|
+
if (hasNumber) {
|
|
75
|
+
validators.push(ItValidators.customPattern(/\d/, { hasNumber }));
|
|
76
|
+
}
|
|
77
|
+
if (hasCapitalCase) {
|
|
78
|
+
validators.push(ItValidators.customPattern(/[A-Z]/, { hasCapitalCase }));
|
|
79
|
+
}
|
|
80
|
+
if (hasSmallCase) {
|
|
81
|
+
validators.push(ItValidators.customPattern(/[a-z]/, { hasSmallCase }));
|
|
82
|
+
}
|
|
83
|
+
if (hasSpecialCharacters) {
|
|
84
|
+
validators.push(ItValidators.customPattern(new RegExp(`[${ItValidators.SpecialCharacterPattern}]`), { hasSpecialCharacters }));
|
|
85
|
+
}
|
|
86
|
+
if (required) {
|
|
87
|
+
validators.push(Validators.required);
|
|
88
|
+
}
|
|
89
|
+
return Validators.compose(validators);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Email validator
|
|
93
|
+
*/
|
|
94
|
+
static get email() {
|
|
95
|
+
return Validators.compose([
|
|
96
|
+
Validators.email,
|
|
97
|
+
ItValidators.customPattern(EMAIL_REGEX, { invalidEmail: true })
|
|
98
|
+
]);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Phone number validator
|
|
102
|
+
*/
|
|
103
|
+
static get tel() {
|
|
104
|
+
return ItValidators.customPattern(PHONE_NUMBER_REGEX, { invalidTel: true });
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* URL validator
|
|
108
|
+
*/
|
|
109
|
+
static get url() {
|
|
110
|
+
return ItValidators.customPattern(URL_REGEX, { invalidUrl: true });
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Italian Tax Code validator
|
|
114
|
+
*/
|
|
115
|
+
static get taxCode() {
|
|
116
|
+
return ItValidators.customPattern(ITALIAN_TAX_CODE_REGEX, { invalidTaxCode: true });
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* VAT Number validator
|
|
120
|
+
*/
|
|
121
|
+
static get vatNumber() {
|
|
122
|
+
return ItValidators.customPattern(VAT_NUMBER_REGEX, { invalidVatNumber: true });
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Italian Postal Code validator (CAP)
|
|
126
|
+
*/
|
|
127
|
+
static get cap() {
|
|
128
|
+
return ItValidators.customPattern(CAP_REGEX, { invalidCap: true });
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* IBAN validator
|
|
132
|
+
*/
|
|
133
|
+
static get iban() {
|
|
134
|
+
return ItValidators.customPattern(IBAN_REGEX, { invalidIban: true });
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Check if value is a valid RegExp
|
|
138
|
+
*/
|
|
139
|
+
static get regExp() {
|
|
140
|
+
return (control) => {
|
|
141
|
+
try {
|
|
142
|
+
if (control?.value) {
|
|
143
|
+
new RegExp(control.value);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
catch (e) {
|
|
147
|
+
return { invalidRegex: true };
|
|
148
|
+
}
|
|
149
|
+
return null;
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXQtdmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL3ZhbGlkYXRvcnMvaXQtdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtELFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVGLE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLFVBQVUsRUFDVixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVCxnQkFBZ0IsRUFDakIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixNQUFNLE9BQU8sWUFBWTthQUNULDRCQUF1QixHQUFHLGlCQUFpQixDQUFDO0lBRTFEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWEsRUFBRSxLQUF1QjtRQUNoRSxPQUFPLENBQUMsT0FBd0IsRUFBMkIsRUFBRTtZQUMzRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtnQkFDbEIsc0NBQXNDO2dCQUN0QyxPQUFPLElBQUksQ0FBQzthQUNiO1lBRUQsNERBQTREO1lBQzVELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXhDLHdGQUF3RjtZQUN4RixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDOUIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsV0FBVyxDQUFDLFNBQXNCLEVBQUUsU0FBZ0Q7UUFDaEcsT0FBTyxXQUFXLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtnQkFDdkIsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUNELElBQUksU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dC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QUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDL0I7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztJQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQ0FQX1JFR0VYLFxuICBFTUFJTF9SRUdFWCxcbiAgSUJBTl9SRUdFWCxcbiAgSVRBTElBTl9UQVhfQ09ERV9SRUdFWCxcbiAgUEhPTkVfTlVNQkVSX1JFR0VYLFxuICBVUkxfUkVHRVgsXG4gIFZBVF9OVU1CRVJfUkVHRVhcbn0gZnJvbSAnLi4vdXRpbHMvcmVnZXgnO1xuXG5leHBvcnQgY2xhc3MgSXRWYWxpZGF0b3JzIHtcbiAgcHVibGljIHN0YXRpYyBTcGVjaWFsQ2hhcmFjdGVyUGF0dGVybiA9ICchQCMkJSYqXys9Ozp8LC4nO1xuXG4gIC8qKlxuICAgKiBTdGF0aWMgcGF0dGVybiB2YWxpZGF0b3Igd2l0aCBjdXN0b20gZXJyb3JcbiAgICogQHBhcmFtIHJlZ2V4XG4gICAqIEBwYXJhbSBlcnJvclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjdXN0b21QYXR0ZXJuKHJlZ2V4OiBSZWdFeHAsIGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgaWYgKCFjb250cm9sLnZhbHVlKSB7XG4gICAgICAgIC8vIGlmIGNvbnRyb2wgaXMgZW1wdHkgcmV0dXJuIG5vIGVycm9yXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLyB0ZXN0IHRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbCBhZ2FpbnN0IHRoZSByZWdleHAgc3VwcGxpZWRcbiAgICAgIGNvbnN0IHZhbGlkID0gcmVnZXgudGVzdChjb250cm9sLnZhbHVlKTtcblxuICAgICAgLy8gaWYgdHJ1ZSwgcmV0dXJuIG5vIGVycm9yIChubyBlcnJvciksIGVsc2UgcmV0dXJuIGVycm9yIHBhc3NlZCBpbiB0aGUgc2Vjb25kIHBhcmFtZXRlclxuICAgICAgcmV0dXJuIHZhbGlkID8gbnVsbCA6IGVycm9yO1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2V0IFZhbGlkYXRvciBpZiB0aGUgY29uZGl0aW9uIGlzIHNhdGlzZmllZFxuICAgKiBAcGFyYW0gdmFsaWRhdG9yIHRoZSB2YWxpZGF0b3IgdG8gYXBwbHkgaWYgdGhlIGNvbmRpdGlvbiBpcyB0cnVlXG4gICAqIEBwYXJhbSBjb25kaXRpb24gdGhlIGNvbmRpdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjb25kaXRpb25hbCh2YWxpZGF0b3I6IFZhbGlkYXRvckZuLCBjb25kaXRpb246IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IGJvb2xlYW4pOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIGZvcm1Db250cm9sID0+IHtcbiAgICAgIGlmICghZm9ybUNvbnRyb2wucGFyZW50KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKGNvbmRpdGlvbihmb3JtQ29udHJvbCkpIHtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvcihmb3JtQ29udHJvbCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgb3VyIHBhc3N3b3JkIGFuZCBjb25maXJtIHBhc3N3b3JkIGFyZSBhIG1hdGNoXG4gICAqIEBwYXJhbSBjb250cm9sXG4gICAqIEBwYXJhbSBwYXNzd29yZENvbnRyb2xOYW1lIHRoZSBwYXNzd29yZCBmb3JtQ29udHJvbE5hbWVcbiAgICogQHBhcmFtIGNvbmZpcm1Db250cm9sTmFtZSB0aGUgY29uZmlybVBhc3N3b3JkIGZvcm1Db250cm9sTmFtZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwYXNzd29yZE1hdGNoKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgcGFzc3dvcmRDb250cm9sTmFtZSA9ICdwYXNzd29yZCcsIGNvbmZpcm1Db250cm9sTmFtZSA9ICdjb25maXJtUGFzc3dvcmQnKTogQWJzdHJhY3RDb250cm9sIHwgbnVsbCB7XG4gICAgY29uc3QgY29uZmlybUNvbnRyb2wgPSBjb250cm9sLmdldChjb25maXJtQ29udHJvbE5hbWUpOyAvLyBjb25maXJtUGFzc3dvcmQgZm9ybSBjb250cm9sXG4gICAgaWYgKCFjb25maXJtQ29udHJvbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgcGFzc3dvcmRDb250cm9sID0gY29udHJvbC5nZXQocGFzc3dvcmRDb250cm9sTmFtZSk7IC8vIHBhc3N3b3JkIGZvcm0gY29udHJvbFxuICAgIGNvbnN0IHBhc3N3b3JkID0gcGFzc3dvcmRDb250cm9sPy52YWx1ZTsgLy8gZ2V0IHBhc3N3b3JkIGZyb20gb3VyIHBhc3N3b3JkIGZvcm0gY29udHJvbFxuXG4gICAgLy8gY29tcGFyZSBpcyB0aGUgcGFzc3dvcmQgbWF0Y2hcbiAgICBpZiAoKHBhc3N3b3JkICYmICFjb25maXJtQ29udHJvbC52YWx1ZSkgfHwgKGNvbmZpcm1Db250cm9sLnZhbHVlICYmIHBhc3N3b3JkICE9PSBjb25maXJtQ29udHJvbC52YWx1ZSkpIHtcbiAgICAgIC8vIGlmIHRoZXkgZG9uJ3QgbWF0Y2gsIHNldCBhbiBlcnJvciBpbiBvdXIgY29uZmlybVBhc3N3b3JkIGZvcm0gY29udHJvbFxuICAgICAgY29uZmlybUNvbnRyb2w/LnNldEVycm9ycyh7IG5vUGFzc3dvcmRNYXRjaDogdHJ1ZSB9KTtcbiAgICAgIGNvbmZpcm1Db250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICByZXR1cm4gY29udHJvbDtcbiAgICB9XG5cbiAgICBpZiAocGFzc3dvcmQgJiYgcGFzc3dvcmRDb250cm9sPy50b3VjaGVkKSB7XG4gICAgICBjb25maXJtQ29udHJvbD8ubWFya0FzVG91Y2hlZCgpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXNzd29yZCB2YWxpZGF0b3JcbiAgICogQHBhcmFtIG1pbkxlbmd0aCBtaW5pbXVtIHBhc3N3b3JkIGxlbmd0aCAtIGRlZmF1bHQgMTBcbiAgICogQHBhcmFtIGhhc051bWJlciBjaGVjayB3aGV0aGVyIHRoZSBlbnRlcmVkIHBhc3N3b3JkIGhhcyBhIG51bWJlciAtIGRlZmF1bHQgdHJ1ZVxuICAgKiBAcGFyYW0gaGFzQ2FwaXRhbENhc2UgY2hlY2sgd2hldGhlciB0aGUgZW50ZXJlZCBwYXNzd29yZCBoYXMgdXBwZXIgY2FzZSBsZXR0ZXIgLSBkZWZhdWx0IHRydWVcbiAgICogQHBhcmFtIGhhc1NtYWxsQ2FzZSBjaGVjayB3aGV0aGVyIHRoZSBlbnRlcmVkIHBhc3N3b3JkIGhhcyBhIGxvd2VyLWNhc2UgbGV0dGVyIC0gZGVmYXVsdCB0cnVlXG4gICAqIEBwYXJhbSBoYXNTcGVjaWFsQ2hhcmFjdGVycyBjaGVjayB3aGV0aGVyIHRoZSBlbnRlcmVkIHBhc3N3b3JkIGhhcyBhIHNwZWNpYWwgY2hhcmFjdGVyIC0gZGVmYXVsdCB0cnVlXG4gICAqIEBwYXJhbSByZXF1aXJlZCB0aGUgZmllbGQgaXMgcmVxdWlyZWQgLSBkZWZhdWx0IHRydWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcGFzc3dvcmQobWluTGVuZ3RoID0gMTAsIGhhc051bWJlciA9IHRydWUsIGhhc0NhcGl0YWxDYXNlID0gdHJ1ZSwgaGFzU21hbGxDYXNlID0gdHJ1ZSwgaGFzU3BlY2lhbENoYXJhY3RlcnMgPSB0cnVlLCByZXF1aXJlZCA9IHRydWUpOiBWYWxpZGF0b3JGbiB7XG4gICAgY29uc3QgdmFsaWRhdG9yczogQXJyYXk8VmFsaWRhdG9yRm4+ID0gW1ZhbGlkYXRvcnMubWluTGVuZ3RoKG1pbkxlbmd0aCldO1xuICAgIGlmIChoYXNOdW1iZXIpIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChJdFZhbGlkYXRvcnMuY3VzdG9tUGF0dGVybigvXFxkLywgeyBoYXNOdW1iZXIgfSkpO1xuICAgIH1cbiAgICBpZiAoaGFzQ2FwaXRhbENhc2UpIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChJdFZhbGlkYXRvcnMuY3VzdG9tUGF0dGVybigvW0EtWl0vLCB7IGhhc0NhcGl0YWxDYXNlIH0pKTtcbiAgICB9XG4gICAgaWYgKGhhc1NtYWxsQ2FzZSkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKEl0VmFsaWRhdG9ycy5jdXN0b21QYXR0ZXJuKC9bYS16XS8sIHsgaGFzU21hbGxDYXNlIH0pKTtcbiAgICB9XG4gICAgaWYgKGhhc1NwZWNpYWxDaGFyYWN0ZXJzKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goSXRWYWxpZGF0b3JzLmN1c3RvbVBhdHRlcm4obmV3IFJlZ0V4cChgWyR7SXRWYWxpZGF0b3JzLlNwZWNpYWxDaGFyYWN0ZXJQYXR0ZXJufV1gKSwgeyBoYXNTcGVjaWFsQ2hhcmFjdGVycyB9KSk7XG4gICAgfVxuICAgIGlmIChyZXF1aXJlZCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cbiAgICByZXR1cm4gPFZhbGlkYXRvckZuPlZhbGlkYXRvcnMuY29tcG9zZSh2YWxpZGF0b3JzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWFpbCB2YWxpZGF0b3JcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGVtYWlsKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gPFZhbGlkYXRvckZuPlZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICBWYWxpZGF0b3JzLmVtYWlsLFxuICAgICAgSXRWYWxpZGF0b3JzLmN1c3RvbVBhdHRlcm4oRU1BSUxfUkVHRVgsIHsgaW52YWxpZEVtYWlsOiB0cnVlIH0pXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogUGhvbmUgbnVtYmVyIHZhbGlkYXRvclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXQgdGVsKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gSXRWYWxpZGF0b3JzLmN1c3RvbVBhdHRlcm4oUEhPTkVfTlVNQkVSX1JFR0VYLCB7IGludmFsaWRUZWw6IHRydWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogVVJMIHZhbGlkYXRvclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXQgdXJsKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gSXRWYWxpZGF0b3JzLmN1c3RvbVBhdHRlcm4oVVJMX1JFR0VYLCB7IGludmFsaWRVcmw6IHRydWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogSXRhbGlhbiBUYXggQ29kZSB2YWxpZGF0b3JcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IHRheENvZGUoKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiBJdFZhbGlkYXRvcnMuY3VzdG9tUGF0dGVybihJVEFMSUFOX1RBWF9DT0RFX1JFR0VYLCB7IGludmFsaWRUYXhDb2RlOiB0cnVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFZBVCBOdW1iZXIgdmFsaWRhdG9yXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldCB2YXROdW1iZXIoKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiBJdFZhbGlkYXRvcnMuY3VzdG9tUGF0dGVybihWQVRfTlVNQkVSX1JFR0VYLCB7IGludmFsaWRWYXROdW1iZXI6IHRydWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogSXRhbGlhbiBQb3N0YWwgQ29kZSB2YWxpZGF0b3IgKENBUClcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGNhcCgpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIEl0VmFsaWRhdG9ycy5jdXN0b21QYXR0ZXJuKENBUF9SRUdFWCwgeyBpbnZhbGlkQ2FwOiB0cnVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIElCQU4gdmFsaWRhdG9yXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldCBpYmFuKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gSXRWYWxpZGF0b3JzLmN1c3RvbVBhdHRlcm4oSUJBTl9SRUdFWCwgeyBpbnZhbGlkSWJhbjogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB2YWx1ZSBpcyBhIHZhbGlkIFJlZ0V4cFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXQgcmVnRXhwKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmIChjb250cm9sPy52YWx1ZSkge1xuICAgICAgICAgIG5ldyBSZWdFeHAoY29udHJvbC52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIHsgaW52YWxpZFJlZ2V4OiB0cnVlIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of design-angular-kit
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/design-angular-kit.module';
|
|
5
|
+
export * from './lib/components/components.module';
|
|
6
|
+
// Config
|
|
7
|
+
export * from './lib/design-angular-kit-config';
|
|
8
|
+
// Core components
|
|
9
|
+
export * from './lib/components/core/accordion/accordion.component';
|
|
10
|
+
export * from './lib/components/core/alert/alert.component';
|
|
11
|
+
export * from './lib/components/core/badge/badge.directive';
|
|
12
|
+
export * from './lib/components/core/button/button.directive';
|
|
13
|
+
export * from './lib/components/core/callout/callout.component';
|
|
14
|
+
export * from './lib/components/core/card/card.component';
|
|
15
|
+
export * from './lib/components/core/carousel/carousel.module';
|
|
16
|
+
export * from './lib/components/core/carousel/carousel/carousel.component';
|
|
17
|
+
export * from './lib/components/core/carousel/carousel-item/carousel-item.component';
|
|
18
|
+
export * from './lib/components/core/chip/chip.component';
|
|
19
|
+
export * from './lib/components/core/collapse/collapse.component';
|
|
20
|
+
export * from './lib/components/core/dimmer/dimmer.module';
|
|
21
|
+
export * from './lib/components/core/dimmer/dimmer.component';
|
|
22
|
+
export * from './lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component';
|
|
23
|
+
export * from './lib/components/core/dimmer/dimmer-icon/dimmer-icon.component';
|
|
24
|
+
export * from './lib/components/core/dropdown/dropdown.module';
|
|
25
|
+
export * from './lib/components/core/dropdown/dropdown/dropdown.component';
|
|
26
|
+
export * from './lib/components/core/dropdown/dropdown-item/dropdown-item.component';
|
|
27
|
+
export * from './lib/components/core/forward/forward.directive';
|
|
28
|
+
export * from './lib/components/core/link/link.component';
|
|
29
|
+
export * from './lib/components/core/list/list.module';
|
|
30
|
+
export * from './lib/components/core/list/list/list.component';
|
|
31
|
+
export * from './lib/components/core/list/list-item/list-item.component';
|
|
32
|
+
export * from './lib/components/core/modal/modal.component';
|
|
33
|
+
export * from './lib/components/core/notifications/notifications.component';
|
|
34
|
+
export * from './lib/components/core/pagination/pagination.component';
|
|
35
|
+
export * from './lib/components/core/popover/popover.directive';
|
|
36
|
+
export * from './lib/components/core/progress-bar/progress-bar.component';
|
|
37
|
+
export * from './lib/components/core/progress-button/progress-button.component';
|
|
38
|
+
export * from './lib/components/core/spinner/spinner.component';
|
|
39
|
+
export * from './lib/components/core/steppers/steppers.module';
|
|
40
|
+
export * from './lib/components/core/steppers/steppers-container/steppers-container.component';
|
|
41
|
+
export * from './lib/components/core/steppers/steppers-item/steppers-item.component';
|
|
42
|
+
export * from './lib/components/core/tab/tab.module';
|
|
43
|
+
export * from './lib/components/core/tab/tab-container/tab-container.component';
|
|
44
|
+
export * from './lib/components/core/tab/tab-item/tab-item.component';
|
|
45
|
+
export * from './lib/components/core/table/table.component';
|
|
46
|
+
export * from './lib/components/core/tooltip/tooltip.directive';
|
|
47
|
+
// Forms components
|
|
48
|
+
export * from './lib/components/form/form.module';
|
|
49
|
+
export * from './lib/components/form/checkbox/checkbox.component';
|
|
50
|
+
export * from './lib/components/form/input/input.component';
|
|
51
|
+
export * from './lib/components/form/password-input/password-input.component';
|
|
52
|
+
export * from './lib/components/form/radio-button/radio-button.component';
|
|
53
|
+
export * from './lib/components/form/range/range.component';
|
|
54
|
+
export * from './lib/components/form/rating/rating.component';
|
|
55
|
+
export * from './lib/components/form/select/select.component';
|
|
56
|
+
export * from './lib/components/form/textarea/textarea.component';
|
|
57
|
+
export * from './lib/components/form/upload-drag-drop/upload-drag-drop.component';
|
|
58
|
+
export * from './lib/components/form/upload-file-list/upload-file-list.component';
|
|
59
|
+
// Navigation components
|
|
60
|
+
export * from './lib/components/navigation/back-button/back-button.component';
|
|
61
|
+
export * from './lib/components/navigation/back-to-top/back-to-top.component';
|
|
62
|
+
export * from './lib/components/navigation/breadcrumbs/breadcrumbs.module';
|
|
63
|
+
export * from './lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component';
|
|
64
|
+
export * from './lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component';
|
|
65
|
+
export * from './lib/components/navigation/header/header.component';
|
|
66
|
+
// Utils components
|
|
67
|
+
export * from './lib/components/utils/error-page/error-page.component';
|
|
68
|
+
export * from './lib/components/utils/icon/icon.component';
|
|
69
|
+
export * from './lib/components/utils/language-switcher/language-switcher.component';
|
|
70
|
+
// Services
|
|
71
|
+
export * from './lib/services/notification/notification.service';
|
|
72
|
+
// Pipes
|
|
73
|
+
export * from './lib/pipes/mark-matching-text.pipe';
|
|
74
|
+
// Interfaces
|
|
75
|
+
export * from './lib/interfaces/design-angular-kit-init';
|
|
76
|
+
export * from './lib/interfaces/core';
|
|
77
|
+
export * from './lib/interfaces/form';
|
|
78
|
+
export * from './lib/interfaces/icon';
|
|
79
|
+
export * from './lib/interfaces/utils';
|
|
80
|
+
// Utils
|
|
81
|
+
export * from './lib/utils/regex';
|
|
82
|
+
export * from './lib/utils/file-utils';
|
|
83
|
+
// Validators
|
|
84
|
+
export * from './lib/validators/it-validators';
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUVuRCxTQUFTO0FBQ1QsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxrQkFBa0I7QUFDbEIsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsMkNBQTJDLENBQUM7QUFFMUQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsc0VBQXNFLENBQUM7QUFFckYsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLG1EQUFtRCxDQUFDO0FBRWxFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLGNBQWMsZ0VBQWdFLENBQUM7QUFFL0UsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsc0VBQXNFLENBQUM7QUFFckYsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDJDQUEyQyxDQUFDO0FBRTFELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDBEQUEwRCxDQUFDO0FBRXpFLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsaURBQWlELENBQUM7QUFFaEUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLGdGQUFnRixDQUFDO0FBQy9GLGNBQWMsc0VBQXNFLENBQUM7QUFFckYsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsdURBQXVELENBQUM7QUFFdEUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGlEQUFpRCxDQUFDO0FBRWhFLG1CQUFtQjtBQUNuQixjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLCtEQUErRCxDQUFDO0FBQzlFLGNBQWMsMkRBQTJELENBQUM7QUFDMUUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLG1FQUFtRSxDQUFDO0FBQ2xGLGNBQWMsbUVBQW1FLENBQUM7QUFFbEYsd0JBQXdCO0FBQ3hCLGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYywrREFBK0QsQ0FBQztBQUU5RSxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMseUVBQXlFLENBQUM7QUFDeEYsY0FBYyxtRkFBbUYsQ0FBQztBQUVsRyxjQUFjLHFEQUFxRCxDQUFDO0FBRXBFLG1CQUFtQjtBQUNuQixjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxzRUFBc0UsQ0FBQztBQUVyRixXQUFXO0FBQ1gsY0FBYyxrREFBa0QsQ0FBQztBQUVqRSxRQUFRO0FBQ1IsY0FBYyxxQ0FBcUMsQ0FBQztBQUVwRCxhQUFhO0FBQ2IsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLFFBQVE7QUFDUixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsd0JBQXdCLENBQUM7QUFFdkMsYUFBYTtBQUNiLGNBQWMsZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGRlc2lnbi1hbmd1bGFyLWtpdFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2Rlc2lnbi1hbmd1bGFyLWtpdC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb21wb25lbnRzLm1vZHVsZSc7XG5cbi8vIENvbmZpZ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGVzaWduLWFuZ3VsYXIta2l0LWNvbmZpZyc7XG5cbi8vIENvcmUgY29tcG9uZW50c1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JlL2FjY29yZGlvbi9hY2NvcmRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29yZS9hbGVydC9hbGVydC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JlL2JhZGdlL2JhZGdlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvcmUvYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JlL2NhbGxvdXQvY2FsbG91dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JlL2NhcmQvY2FyZC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvcmUvY2Fyb3VzZWwvY2Fyb3VzZWwubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29yZS9jYXJvdXNlbC9jYXJvdXNlbC9jYXJvdXNlbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JlL2Nhcm91c2VsL2Nhcm91c2VsLWl0ZW0vY2Fyb3VzZWwtaXRlbS5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvcmUvY2hpcC9jaGlwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvcmUvY29sbGFwc2UvY29sbGFwc2UuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JlL2RpbW1lci9kaW1tZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29yZS9kaW1tZXIvZGltbWVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvcmUvZGltbWVyL2RpbW1lci1idXR0b25zL2RpbW1lci1idXR0b25zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvcmUvZGltbWVyL2RpbW1lci1pY29uL2RpbW1lci1pY29uLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29yZS9kcm9wZG93bi9kcm9wZG93bi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JlL2Ryb3Bkb3duL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvcmUvZHJvcGRvd24vZHJvcGRvd24taXRlbS9kcm9wZG93bi1pdGVtLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29yZS9mb3J3YXJkL2ZvcndhcmQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29yZS9saW5rL2xpbmsuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JlL2xpc3QvbGlzdC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JlL2xpc3QvbGlzdC9saXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvcmUvbGlzdC9saXN0LWl0ZW0vbGlzdC1pdGVtLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29yZS9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JlL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JlL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JlL3BvcG92ZXIvcG9wb3Zlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JlL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29yZS9wcm9ncmVzcy1idXR0b24vcHJvZ3Jlc3MtYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvcmUvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29yZS9zdGVwcGVycy9zdGVwcGVycy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JlL3N0ZXBwZXJzL3N0ZXBwZXJzLWNvbnRhaW5lci9zdGVwcGVycy1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29yZS9zdGVwcGVycy9zdGVwcGVycy1pdGVtL3N0ZXBwZXJzLWl0ZW0uY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JlL3RhYi90YWIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29yZS90YWIvdGFiLWNvbnRhaW5lci90YWItY29udGFpbmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvcmUvdGFiL3RhYi1pdGVtL3RhYi1pdGVtLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29yZS90YWJsZS90YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JlL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xuXG4vLyBGb3JtcyBjb21wb25lbnRzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQvaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS9wYXNzd29yZC1pbnB1dC9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtL3JhZGlvLWJ1dHRvbi9yYWRpby1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS9yYW5nZS9yYW5nZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtL3JhdGluZy9yYXRpbmcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0vdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS91cGxvYWQtZHJhZy1kcm9wL3VwbG9hZC1kcmFnLWRyb3AuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS91cGxvYWQtZmlsZS1saXN0L3VwbG9hZC1maWxlLWxpc3QuY29tcG9uZW50JztcblxuLy8gTmF2aWdhdGlvbiBjb21wb25lbnRzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL25hdmlnYXRpb24vYmFjay1idXR0b24vYmFjay1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9iYWNrLXRvLXRvcC9iYWNrLXRvLXRvcC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL25hdmlnYXRpb24vYnJlYWRjcnVtYnMvYnJlYWRjcnVtYnMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9icmVhZGNydW1icy9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9icmVhZGNydW1icy9icmVhZGNydW1iLWl0ZW0vYnJlYWRjcnVtYi1pdGVtLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5cbi8vIFV0aWxzIGNvbXBvbmVudHNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdXRpbHMvZXJyb3ItcGFnZS9lcnJvci1wYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3V0aWxzL2ljb24vaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy91dGlscy9sYW5ndWFnZS1zd2l0Y2hlci9sYW5ndWFnZS1zd2l0Y2hlci5jb21wb25lbnQnO1xuXG4vLyBTZXJ2aWNlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcblxuLy8gUGlwZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL21hcmstbWF0Y2hpbmctdGV4dC5waXBlJztcblxuLy8gSW50ZXJmYWNlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9kZXNpZ24tYW5ndWxhci1raXQtaW5pdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvY29yZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL2Zvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9pY29uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvdXRpbHMnO1xuXG4vLyBVdGlsc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvcmVnZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvZmlsZS11dGlscyc7XG5cbi8vIFZhbGlkYXRvcnNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZhbGlkYXRvcnMvaXQtdmFsaWRhdG9ycyc7XG4iXX0=
|