@bravobit/bb-foundation 0.21.2 → 0.21.5
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/esm2020/auth/lib/auth.interceptor.mjs +3 -3
- package/esm2020/auth/lib/auth.module.mjs +4 -4
- package/esm2020/auth/lib/auth.service.mjs +3 -3
- package/esm2020/auth/lib/directives/authenticated.directive.mjs +3 -3
- package/esm2020/auth/lib/directives/permission.directive.mjs +3 -3
- package/esm2020/auth/lib/directives/role.directive.mjs +3 -3
- package/esm2020/auth/lib/guards/anonymous.guard.mjs +3 -3
- package/esm2020/auth/lib/guards/authenticated.guard.mjs +3 -3
- package/esm2020/auth/lib/helpers/mapper.helper.mjs +3 -3
- package/esm2020/auth/lib/permissions.service.mjs +3 -3
- package/esm2020/collections/lib/collections.module.mjs +4 -4
- package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +3 -3
- package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +3 -3
- package/esm2020/collections/lib/components/collections.directive.mjs +12 -12
- package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +3 -3
- package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +3 -3
- package/esm2020/controls/lib/checkbox/checkbox.module.mjs +4 -4
- package/esm2020/controls/lib/controls.module.mjs +4 -4
- package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard.module.mjs +4 -4
- package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog.insertion.mjs +3 -3
- package/esm2020/dialog/lib/dialog.module.mjs +4 -4
- package/esm2020/dialog/lib/dialog.service.mjs +3 -3
- package/esm2020/elements/lib/avatar/avatar.component.mjs +3 -3
- package/esm2020/elements/lib/button/button.component.mjs +6 -6
- package/esm2020/elements/lib/checkbox/checkbox.component.mjs +3 -3
- package/esm2020/elements/lib/date-picker/date-picker.component.mjs +3 -3
- package/esm2020/elements/lib/directives/addon.directive.mjs +6 -6
- package/esm2020/elements/lib/directives/autosize.directive.mjs +3 -3
- package/esm2020/elements/lib/directives/focus-trap.directive.mjs +3 -3
- package/esm2020/elements/lib/directives/focus.directive.mjs +3 -3
- package/esm2020/elements/lib/directives/form-submit.directive.mjs +3 -3
- package/esm2020/elements/lib/directives/input.directive.mjs +6 -6
- package/esm2020/elements/lib/directives/template.directive.mjs +3 -3
- package/esm2020/elements/lib/dropdown/dropdown.component.mjs +6 -6
- package/esm2020/elements/lib/elements.module.mjs +4 -4
- package/esm2020/elements/lib/file-picker/file-picker.component.mjs +3 -3
- package/esm2020/elements/lib/form-control/form-control.component.mjs +3 -3
- package/esm2020/elements/lib/form-error/form-error.component.mjs +3 -3
- package/esm2020/elements/lib/form-group/form-group.component.mjs +3 -3
- package/esm2020/elements/lib/icon/icon.component.mjs +3 -3
- package/esm2020/elements/lib/image-picker/image-picker.component.mjs +3 -3
- package/esm2020/elements/lib/pipes/file-image.pipe.mjs +3 -3
- package/esm2020/elements/lib/pipes/file-size.pipe.mjs +3 -3
- package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +3 -3
- package/esm2020/elements/lib/spinner/spinner.component.mjs +3 -3
- package/esm2020/elements/lib/tag/tag.component.mjs +3 -3
- package/esm2020/http/lib/http.module.mjs +4 -4
- package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +3 -3
- package/esm2020/http/lib/interceptors/error.interceptor.mjs +3 -3
- package/esm2020/lib/core/services/clipboard.service.mjs +3 -3
- package/esm2020/lib/core/services/exif.service.mjs +3 -3
- package/esm2020/lib/core/services/file-loader.service.mjs +3 -3
- package/esm2020/lib/core/services/image-converter.service.mjs +3 -3
- package/esm2020/lib/core/services/languages.service.mjs +3 -3
- package/esm2020/lib/core/services/network.service.mjs +3 -3
- package/esm2020/lib/core/services/patch.service.mjs +3 -3
- package/esm2020/lib/core/services/platform.service.mjs +3 -3
- package/esm2020/localize/lib/localize.module.mjs +4 -4
- package/esm2020/localize/lib/localize.pipe.mjs +3 -3
- package/esm2020/localize/lib/localize.service.mjs +3 -3
- package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +3 -3
- package/esm2020/localize/lib/views/localize-template-or-string.directive.mjs +3 -3
- package/esm2020/localize/lib/views/localize-template.directive.mjs +3 -3
- package/esm2020/masking/lib/directives/currency-mask.directive.mjs +35 -0
- package/esm2020/masking/lib/directives/date-mask.directive.mjs +35 -0
- package/esm2020/masking/lib/directives/input-mask.directive.mjs +118 -0
- package/esm2020/masking/lib/input-mask.interface.mjs +1 -1
- package/esm2020/masking/lib/masking.module.mjs +22 -8
- package/esm2020/masking/lib/masking.service.mjs +20 -11
- package/esm2020/masking/public_api.mjs +4 -2
- package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +3 -3
- package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +3 -3
- package/esm2020/notifications/lib/notifications.module.mjs +4 -4
- package/esm2020/notifications/lib/notifications.service.mjs +3 -3
- package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +3 -3
- package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +3 -3
- package/esm2020/recaptcha/lib/recaptcha.module.mjs +4 -4
- package/esm2020/storage/lib/storage.service.mjs +3 -3
- package/esm2020/table/lib/components/table/table.component.mjs +9 -9
- package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +3 -3
- package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +3 -3
- package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +3 -3
- package/esm2020/table/lib/table.module.mjs +4 -4
- package/esm2020/theming/lib/theming.module.mjs +4 -4
- package/esm2020/theming/lib/theming.service.mjs +3 -3
- package/fesm2015/bravobit-bb-foundation-auth.mjs +31 -31
- package/fesm2015/bravobit-bb-foundation-collections.mjs +22 -22
- package/fesm2015/bravobit-bb-foundation-controls.mjs +14 -14
- package/fesm2015/bravobit-bb-foundation-dashboard.mjs +25 -25
- package/fesm2015/bravobit-bb-foundation-dialog.mjs +31 -31
- package/fesm2015/bravobit-bb-foundation-elements.mjs +85 -85
- package/fesm2015/bravobit-bb-foundation-http.mjs +10 -10
- package/fesm2015/bravobit-bb-foundation-localize.mjs +19 -19
- package/fesm2015/bravobit-bb-foundation-masking.mjs +138 -39
- package/fesm2015/bravobit-bb-foundation-masking.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-notifications.mjs +13 -13
- package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +10 -10
- package/fesm2015/bravobit-bb-foundation-storage.mjs +3 -3
- package/fesm2015/bravobit-bb-foundation-table.mjs +22 -22
- package/fesm2015/bravobit-bb-foundation-theming.mjs +7 -7
- package/fesm2015/bravobit-bb-foundation.mjs +24 -24
- package/fesm2020/bravobit-bb-foundation-auth.mjs +31 -31
- package/fesm2020/bravobit-bb-foundation-collections.mjs +22 -22
- package/fesm2020/bravobit-bb-foundation-controls.mjs +14 -14
- package/fesm2020/bravobit-bb-foundation-dashboard.mjs +25 -25
- package/fesm2020/bravobit-bb-foundation-dialog.mjs +31 -31
- package/fesm2020/bravobit-bb-foundation-elements.mjs +85 -85
- package/fesm2020/bravobit-bb-foundation-http.mjs +10 -10
- package/fesm2020/bravobit-bb-foundation-localize.mjs +19 -19
- package/fesm2020/bravobit-bb-foundation-masking.mjs +125 -34
- package/fesm2020/bravobit-bb-foundation-masking.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-notifications.mjs +13 -13
- package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +10 -10
- package/fesm2020/bravobit-bb-foundation-storage.mjs +3 -3
- package/fesm2020/bravobit-bb-foundation-table.mjs +22 -22
- package/fesm2020/bravobit-bb-foundation-theming.mjs +7 -7
- package/fesm2020/bravobit-bb-foundation.mjs +24 -24
- package/masking/lib/directives/currency-mask.directive.d.ts +17 -0
- package/masking/lib/directives/date-mask.directive.d.ts +17 -0
- package/masking/lib/{input-mask.directive.d.ts → directives/input-mask.directive.d.ts} +7 -5
- package/masking/lib/input-mask.interface.d.ts +5 -6
- package/masking/lib/masking.module.d.ts +4 -2
- package/masking/lib/masking.service.d.ts +2 -2
- package/masking/public_api.d.ts +3 -1
- package/package.json +1 -1
- package/esm2020/masking/lib/input-mask.directive.mjs +0 -110
|
@@ -92,9 +92,9 @@ class BaseUrlInterceptor {
|
|
|
92
92
|
return null;
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
|
-
BaseUrlInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
96
|
-
BaseUrlInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
95
|
+
BaseUrlInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BaseUrlInterceptor, deps: [{ token: HttpConfig }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
96
|
+
BaseUrlInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BaseUrlInterceptor });
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BaseUrlInterceptor, decorators: [{
|
|
98
98
|
type: Injectable
|
|
99
99
|
}], ctorParameters: function () { return [{ type: HttpConfig }]; } });
|
|
100
100
|
|
|
@@ -117,9 +117,9 @@ class ErrorInterceptor {
|
|
|
117
117
|
}));
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
|
-
ErrorInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
121
|
-
ErrorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.
|
|
122
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
120
|
+
ErrorInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ErrorInterceptor, deps: [{ token: HttpConfig }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
121
|
+
ErrorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ErrorInterceptor });
|
|
122
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ErrorInterceptor, decorators: [{
|
|
123
123
|
type: Injectable
|
|
124
124
|
}], ctorParameters: function () { return [{ type: HttpConfig }]; } });
|
|
125
125
|
|
|
@@ -142,10 +142,10 @@ class HttpModule {
|
|
|
142
142
|
};
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
|
-
HttpModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
146
|
-
HttpModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.
|
|
147
|
-
HttpModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.
|
|
148
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
145
|
+
HttpModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: HttpModule, deps: [{ token: HttpModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
146
|
+
HttpModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.5", ngImport: i0, type: HttpModule, imports: [HttpClientModule] });
|
|
147
|
+
HttpModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: HttpModule, imports: [HttpClientModule] });
|
|
148
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: HttpModule, decorators: [{
|
|
149
149
|
type: NgModule,
|
|
150
150
|
args: [{
|
|
151
151
|
imports: [HttpClientModule]
|
|
@@ -178,9 +178,9 @@ class BbLocalizeTemplate {
|
|
|
178
178
|
this.name = null;
|
|
179
179
|
}
|
|
180
180
|
}
|
|
181
|
-
BbLocalizeTemplate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
182
|
-
BbLocalizeTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.
|
|
183
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
181
|
+
BbLocalizeTemplate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbLocalizeTemplate, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
182
|
+
BbLocalizeTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.5", type: BbLocalizeTemplate, selector: "[bbLocalizeTemplate]", inputs: { name: ["bbLocalizeTemplate", "name"] }, ngImport: i0 });
|
|
183
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbLocalizeTemplate, decorators: [{
|
|
184
184
|
type: Directive,
|
|
185
185
|
args: [{
|
|
186
186
|
selector: '[bbLocalizeTemplate]'
|
|
@@ -205,9 +205,9 @@ class BbLocalizeTemplateOrString {
|
|
|
205
205
|
this._viewContainerRef.createEmbeddedView(template);
|
|
206
206
|
}
|
|
207
207
|
}
|
|
208
|
-
BbLocalizeTemplateOrString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
209
|
-
BbLocalizeTemplateOrString.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.
|
|
210
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
208
|
+
BbLocalizeTemplateOrString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbLocalizeTemplateOrString, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
209
|
+
BbLocalizeTemplateOrString.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.5", type: BbLocalizeTemplateOrString, selector: "[bbLocalizeTemplateOrString]", inputs: { bbLocalizeTemplateOrString: "bbLocalizeTemplateOrString" }, ngImport: i0 });
|
|
210
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbLocalizeTemplateOrString, decorators: [{
|
|
211
211
|
type: Directive,
|
|
212
212
|
args: [{
|
|
213
213
|
selector: '[bbLocalizeTemplateOrString]'
|
|
@@ -281,9 +281,9 @@ class BbLocalizeString {
|
|
|
281
281
|
];
|
|
282
282
|
}
|
|
283
283
|
}
|
|
284
|
-
BbLocalizeString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
285
|
-
BbLocalizeString.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.
|
|
286
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
284
|
+
BbLocalizeString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbLocalizeString, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
285
|
+
BbLocalizeString.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: BbLocalizeString, selector: "bb-localize-string, [bb-localize-string]", inputs: { substitutions: "substitutions", value: "value" }, host: { classAttribute: "bb-localize-string" }, queries: [{ propertyName: "items", predicate: BbLocalizeTemplate }], ngImport: i0, template: "<ng-container *ngFor=\"let component of components\">\n <ng-template [bbLocalizeTemplateOrString]=\"component\">{{ component }}</ng-template>\n</ng-container>\n", styles: [".bb-localize-string{display:inline}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: BbLocalizeTemplateOrString, selector: "[bbLocalizeTemplateOrString]", inputs: ["bbLocalizeTemplateOrString"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
286
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbLocalizeString, decorators: [{
|
|
287
287
|
type: Component,
|
|
288
288
|
args: [{ selector: 'bb-localize-string, [bb-localize-string]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
|
|
289
289
|
'class': 'bb-localize-string'
|
|
@@ -503,9 +503,9 @@ class Localize {
|
|
|
503
503
|
element.lang = this._bestMatchingLanguage?.supported?.[0] ?? this._bestMatchingLanguage?.locale;
|
|
504
504
|
}
|
|
505
505
|
}
|
|
506
|
-
Localize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
507
|
-
Localize.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.
|
|
508
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
506
|
+
Localize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Localize, deps: [{ token: i1$1.Storage }, { token: i2.Languages }, { token: LocalizeConfig, optional: true }, { token: LocalizeMissingHandler }, { token: DOCUMENT, optional: true }, { token: LOCALIZE_FUNCTION, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
507
|
+
Localize.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Localize });
|
|
508
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Localize, decorators: [{
|
|
509
509
|
type: Injectable
|
|
510
510
|
}], ctorParameters: function () { return [{ type: i1$1.Storage }, { type: i2.Languages }, { type: LocalizeConfig, decorators: [{
|
|
511
511
|
type: Optional
|
|
@@ -556,9 +556,9 @@ class BbLocalize {
|
|
|
556
556
|
return { ...params, ...options };
|
|
557
557
|
}
|
|
558
558
|
}
|
|
559
|
-
BbLocalize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
560
|
-
BbLocalize.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.
|
|
561
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
559
|
+
BbLocalize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbLocalize, deps: [{ token: Localize, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
560
|
+
BbLocalize.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.5", ngImport: i0, type: BbLocalize, name: "bbLocalize" });
|
|
561
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbLocalize, decorators: [{
|
|
562
562
|
type: Pipe,
|
|
563
563
|
args: [{
|
|
564
564
|
name: 'bbLocalize'
|
|
@@ -592,15 +592,15 @@ class LocalizeModule {
|
|
|
592
592
|
};
|
|
593
593
|
}
|
|
594
594
|
}
|
|
595
|
-
LocalizeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
596
|
-
LocalizeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.
|
|
595
|
+
LocalizeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: LocalizeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
596
|
+
LocalizeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.5", ngImport: i0, type: LocalizeModule, declarations: [BbLocalize,
|
|
597
597
|
BbLocalizeString,
|
|
598
598
|
BbLocalizeTemplate,
|
|
599
599
|
BbLocalizeTemplateOrString], imports: [CommonModule], exports: [BbLocalize,
|
|
600
600
|
BbLocalizeString,
|
|
601
601
|
BbLocalizeTemplate] });
|
|
602
|
-
LocalizeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.
|
|
603
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
602
|
+
LocalizeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: LocalizeModule, imports: [CommonModule] });
|
|
603
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: LocalizeModule, decorators: [{
|
|
604
604
|
type: NgModule,
|
|
605
605
|
args: [{
|
|
606
606
|
imports: [CommonModule],
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Directive, Optional, Self, Input, HostListener, Injectable, NgModule } from '@angular/core';
|
|
3
|
+
import { fromEvent, merge } from 'rxjs';
|
|
3
4
|
import _Inputmask from 'inputmask';
|
|
4
5
|
import * as i1 from '@angular/cdk/platform';
|
|
5
6
|
import * as i2 from '@angular/forms';
|
|
@@ -19,6 +20,7 @@ class BbInputMask {
|
|
|
19
20
|
// State.
|
|
20
21
|
this.inputMaskPlugin = null;
|
|
21
22
|
this.nativeInputElement = null;
|
|
23
|
+
this.eventsSubscription = null;
|
|
22
24
|
this._inputMaskOptions = null;
|
|
23
25
|
this._onChange = () => ({});
|
|
24
26
|
this.onInput = (_) => ({});
|
|
@@ -31,20 +33,20 @@ class BbInputMask {
|
|
|
31
33
|
this._control.valueAccessor = this;
|
|
32
34
|
}
|
|
33
35
|
}
|
|
34
|
-
set
|
|
35
|
-
if (!mask) {
|
|
36
|
+
set mask(mask) {
|
|
37
|
+
if (!mask || typeof mask === 'string') {
|
|
36
38
|
return;
|
|
37
39
|
}
|
|
38
40
|
this._inputMaskOptions = mask;
|
|
39
41
|
this.updateMask();
|
|
40
42
|
}
|
|
41
43
|
ngOnInit() {
|
|
42
|
-
const control = this._control
|
|
44
|
+
const control = this._control?.control;
|
|
43
45
|
if (!control) {
|
|
44
46
|
return;
|
|
45
47
|
}
|
|
46
|
-
control
|
|
47
|
-
control
|
|
48
|
+
control?.setValidators(control.validator ? [control.validator, this.validate] : [this.validate]);
|
|
49
|
+
control?.updateValueAndValidity();
|
|
48
50
|
}
|
|
49
51
|
ngOnDestroy() {
|
|
50
52
|
this.destroyMask();
|
|
@@ -58,7 +60,7 @@ class BbInputMask {
|
|
|
58
60
|
registerOnChange(fn) {
|
|
59
61
|
this._onChange = fn;
|
|
60
62
|
const parser = this._inputMaskOptions?.parser;
|
|
61
|
-
this.onInput = value => this._onChange(parser
|
|
63
|
+
this.onInput = value => this._onChange(parser ? parser(value) : value);
|
|
62
64
|
}
|
|
63
65
|
registerOnTouched(fn) {
|
|
64
66
|
this.onTouched = fn;
|
|
@@ -75,36 +77,42 @@ class BbInputMask {
|
|
|
75
77
|
this.registerOnChange(this._onChange);
|
|
76
78
|
}
|
|
77
79
|
createMask() {
|
|
78
|
-
|
|
79
|
-
if (!this._platform.isBrowser || !element || this._inputMaskOptions === null || Object.keys(this._inputMaskOptions).length === 0) {
|
|
80
|
+
if (!this._platform.isBrowser || !this.nativeInputElement || this._inputMaskOptions === null || Object.keys(this._inputMaskOptions).length === 0) {
|
|
80
81
|
return;
|
|
81
82
|
}
|
|
82
83
|
const { parser, ...options } = this._inputMaskOptions;
|
|
83
|
-
this.inputMaskPlugin = this._ngZone.runOutsideAngular(() => new InputmaskConstructor(options).mask(
|
|
84
|
-
const
|
|
84
|
+
this.inputMaskPlugin = this._ngZone.runOutsideAngular(() => new InputmaskConstructor(options).mask(this.nativeInputElement));
|
|
85
|
+
const setValue$ = fromEvent(this.nativeInputElement, 'setvalue');
|
|
86
|
+
const cleared$ = fromEvent(this.nativeInputElement, 'cleared');
|
|
87
|
+
this.eventsSubscription = merge(setValue$, cleared$)
|
|
88
|
+
.subscribe(event => this.onInput(event?.target?.['value']));
|
|
89
|
+
const control = this._control?.control;
|
|
85
90
|
if (!control) {
|
|
86
91
|
return;
|
|
87
92
|
}
|
|
88
|
-
setTimeout(() => control
|
|
93
|
+
setTimeout(() => control?.updateValueAndValidity());
|
|
89
94
|
}
|
|
90
95
|
destroyMask() {
|
|
96
|
+
this.eventsSubscription?.unsubscribe();
|
|
97
|
+
this.eventsSubscription = null;
|
|
91
98
|
this.inputMaskPlugin?.remove();
|
|
92
99
|
this.inputMaskPlugin = null;
|
|
93
100
|
}
|
|
94
101
|
}
|
|
95
|
-
BbInputMask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
96
|
-
BbInputMask.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
102
|
+
BbInputMask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbInputMask, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
103
|
+
BbInputMask.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.5", type: BbInputMask, selector: "input[bbInputMask],input[bbCurrencyMask],input[bbDateMask]", inputs: { mask: ["bbInputMask", "mask"] }, host: { listeners: { "input": "onInput($event.target.value)", "blur": "onTouched($event.target.value)" } }, ngImport: i0 });
|
|
104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbInputMask, decorators: [{
|
|
98
105
|
type: Directive,
|
|
99
106
|
args: [{
|
|
100
|
-
selector: 'input[bbInputMask]'
|
|
107
|
+
selector: 'input[bbInputMask],input[bbCurrencyMask],input[bbDateMask]'
|
|
101
108
|
}]
|
|
102
109
|
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Platform }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i2.NgControl, decorators: [{
|
|
103
110
|
type: Optional
|
|
104
111
|
}, {
|
|
105
112
|
type: Self
|
|
106
|
-
}] }]; }, propDecorators: {
|
|
107
|
-
type: Input
|
|
113
|
+
}] }]; }, propDecorators: { mask: [{
|
|
114
|
+
type: Input,
|
|
115
|
+
args: ['bbInputMask']
|
|
108
116
|
}], onInput: [{
|
|
109
117
|
type: HostListener,
|
|
110
118
|
args: ['input', ['$event.target.value']]
|
|
@@ -117,7 +125,7 @@ class Masking {
|
|
|
117
125
|
constructor(_localize) {
|
|
118
126
|
this._localize = _localize;
|
|
119
127
|
}
|
|
120
|
-
date(format
|
|
128
|
+
date(format, separator = '-') {
|
|
121
129
|
const dateParts = this.getDateParts(format);
|
|
122
130
|
const inputFormat = dateParts.join(separator);
|
|
123
131
|
const outputFormat = 'yyyy-MM-dd';
|
|
@@ -164,36 +172,45 @@ class Masking {
|
|
|
164
172
|
return createMask({
|
|
165
173
|
alias: 'numeric',
|
|
166
174
|
digits: digits,
|
|
175
|
+
allowMinus: options?.allowMinus ?? false,
|
|
176
|
+
min: options?.min ?? 0,
|
|
177
|
+
max: options?.max ?? Number.MAX_SAFE_INTEGER,
|
|
167
178
|
prefix: `${symbol}${spacer}`,
|
|
168
179
|
radixPoint: decimal ?? '.',
|
|
169
180
|
groupSeparator: group ?? ',',
|
|
170
181
|
digitsOptional: options?.digitsOptional ?? false,
|
|
182
|
+
nullable: options?.nullable ?? true,
|
|
171
183
|
autoUnmask: true,
|
|
172
184
|
unmaskAsNumber: true,
|
|
173
|
-
nullable: false,
|
|
174
185
|
rightAlign: false,
|
|
175
186
|
showMaskOnHover: false,
|
|
176
187
|
showMaskOnFocus: false,
|
|
177
|
-
inputmode: digits > 0 ? 'decimal' : 'numeric'
|
|
188
|
+
inputmode: digits > 0 ? 'decimal' : 'numeric',
|
|
189
|
+
parser: (value) => {
|
|
190
|
+
if (value === '') {
|
|
191
|
+
return null;
|
|
192
|
+
}
|
|
193
|
+
return value;
|
|
194
|
+
}
|
|
178
195
|
});
|
|
179
196
|
}
|
|
180
197
|
getDateParts(format) {
|
|
181
198
|
switch (format) {
|
|
182
|
-
case
|
|
199
|
+
case 'day-month-year':
|
|
183
200
|
return ['dd', 'MM', 'yyyy'];
|
|
184
|
-
case
|
|
201
|
+
case 'month-day-year':
|
|
185
202
|
return ['MM', 'dd', 'yyyy'];
|
|
186
|
-
case
|
|
203
|
+
case 'year-day-month':
|
|
187
204
|
return ['yyyy', 'dd', 'MM'];
|
|
188
|
-
case
|
|
205
|
+
case 'year-month-day':
|
|
189
206
|
default:
|
|
190
207
|
return ['yyyy', 'MM', 'dd'];
|
|
191
208
|
}
|
|
192
209
|
}
|
|
193
210
|
}
|
|
194
|
-
Masking.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
195
|
-
Masking.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.
|
|
196
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
211
|
+
Masking.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Masking, deps: [{ token: i1$1.Localize, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
212
|
+
Masking.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Masking, providedIn: 'root' });
|
|
213
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Masking, decorators: [{
|
|
197
214
|
type: Injectable,
|
|
198
215
|
args: [{
|
|
199
216
|
providedIn: 'root'
|
|
@@ -202,16 +219,90 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImpor
|
|
|
202
219
|
type: Optional
|
|
203
220
|
}] }]; } });
|
|
204
221
|
|
|
222
|
+
class BbCurrencyMask {
|
|
223
|
+
constructor(_masking, _inputMask) {
|
|
224
|
+
this._masking = _masking;
|
|
225
|
+
this._inputMask = _inputMask;
|
|
226
|
+
// Inputs.
|
|
227
|
+
this.currencyCode = null;
|
|
228
|
+
this.options = null;
|
|
229
|
+
}
|
|
230
|
+
ngOnChanges(changes) {
|
|
231
|
+
const currencyCode = changes?.['currencyCode']?.currentValue ?? this.currencyCode ?? 'USD';
|
|
232
|
+
const options = changes?.['options']?.currentValue ?? this.options ?? {};
|
|
233
|
+
this._inputMask.mask = this._masking.currency(currencyCode, options);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
BbCurrencyMask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbCurrencyMask, deps: [{ token: Masking }, { token: BbInputMask, self: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
237
|
+
BbCurrencyMask.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.5", type: BbCurrencyMask, selector: "input[bbCurrencyMask]", inputs: { currencyCode: ["bbCurrencyMask", "currencyCode"], options: ["bbCurrencyMaskOptions", "options"] }, usesOnChanges: true, ngImport: i0 });
|
|
238
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbCurrencyMask, decorators: [{
|
|
239
|
+
type: Directive,
|
|
240
|
+
args: [{
|
|
241
|
+
selector: 'input[bbCurrencyMask]'
|
|
242
|
+
}]
|
|
243
|
+
}], ctorParameters: function () { return [{ type: Masking }, { type: BbInputMask, decorators: [{
|
|
244
|
+
type: Self
|
|
245
|
+
}] }]; }, propDecorators: { currencyCode: [{
|
|
246
|
+
type: Input,
|
|
247
|
+
args: ['bbCurrencyMask']
|
|
248
|
+
}], options: [{
|
|
249
|
+
type: Input,
|
|
250
|
+
args: ['bbCurrencyMaskOptions']
|
|
251
|
+
}] } });
|
|
252
|
+
|
|
253
|
+
class BbDateMask {
|
|
254
|
+
constructor(_masking, _inputMask) {
|
|
255
|
+
this._masking = _masking;
|
|
256
|
+
this._inputMask = _inputMask;
|
|
257
|
+
// Inputs.
|
|
258
|
+
this.format = null;
|
|
259
|
+
this.separator = null;
|
|
260
|
+
}
|
|
261
|
+
ngOnChanges(changes) {
|
|
262
|
+
const format = changes?.['format']?.currentValue ?? this.format ?? null;
|
|
263
|
+
const separator = changes?.['separator']?.currentValue ?? this.separator ?? '-s';
|
|
264
|
+
this._inputMask.mask = this._masking.date(format, separator);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
BbDateMask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbDateMask, deps: [{ token: Masking }, { token: BbInputMask, self: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
268
|
+
BbDateMask.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.5", type: BbDateMask, selector: "input[bbDateMask]", inputs: { format: ["bbDateMask", "format"], separator: ["bbDateMaskSeparator", "separator"] }, usesOnChanges: true, ngImport: i0 });
|
|
269
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbDateMask, decorators: [{
|
|
270
|
+
type: Directive,
|
|
271
|
+
args: [{
|
|
272
|
+
selector: 'input[bbDateMask]'
|
|
273
|
+
}]
|
|
274
|
+
}], ctorParameters: function () { return [{ type: Masking }, { type: BbInputMask, decorators: [{
|
|
275
|
+
type: Self
|
|
276
|
+
}] }]; }, propDecorators: { format: [{
|
|
277
|
+
type: Input,
|
|
278
|
+
args: ['bbDateMask']
|
|
279
|
+
}], separator: [{
|
|
280
|
+
type: Input,
|
|
281
|
+
args: ['bbDateMaskSeparator']
|
|
282
|
+
}] } });
|
|
283
|
+
|
|
205
284
|
class MaskingModule {
|
|
206
285
|
}
|
|
207
|
-
MaskingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
208
|
-
MaskingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.
|
|
209
|
-
|
|
210
|
-
|
|
286
|
+
MaskingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: MaskingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
287
|
+
MaskingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.5", ngImport: i0, type: MaskingModule, declarations: [BbInputMask,
|
|
288
|
+
BbCurrencyMask,
|
|
289
|
+
BbDateMask], exports: [BbInputMask,
|
|
290
|
+
BbCurrencyMask,
|
|
291
|
+
BbDateMask] });
|
|
292
|
+
MaskingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: MaskingModule });
|
|
293
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: MaskingModule, decorators: [{
|
|
211
294
|
type: NgModule,
|
|
212
295
|
args: [{
|
|
213
|
-
declarations: [
|
|
214
|
-
|
|
296
|
+
declarations: [
|
|
297
|
+
BbInputMask,
|
|
298
|
+
BbCurrencyMask,
|
|
299
|
+
BbDateMask
|
|
300
|
+
],
|
|
301
|
+
exports: [
|
|
302
|
+
BbInputMask,
|
|
303
|
+
BbCurrencyMask,
|
|
304
|
+
BbDateMask
|
|
305
|
+
]
|
|
215
306
|
}]
|
|
216
307
|
}] });
|
|
217
308
|
|
|
@@ -219,5 +310,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImpor
|
|
|
219
310
|
* Generated bundle index. Do not edit.
|
|
220
311
|
*/
|
|
221
312
|
|
|
222
|
-
export { BbInputMask, Masking, MaskingModule, createMask };
|
|
313
|
+
export { BbCurrencyMask, BbDateMask, BbInputMask, Masking, MaskingModule, createMask };
|
|
223
314
|
//# sourceMappingURL=bravobit-bb-foundation-masking.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bravobit-bb-foundation-masking.mjs","sources":["../../../projects/bb-foundation/masking/src/lib/input-mask.interface.ts","../../../projects/bb-foundation/masking/src/lib/input-mask.directive.ts","../../../projects/bb-foundation/masking/src/lib/masking.service.ts","../../../projects/bb-foundation/masking/src/lib/masking.module.ts","../../../projects/bb-foundation/masking/src/bravobit-bb-foundation-masking.ts"],"sourcesContent":["import type Inputmask from 'inputmask';\n\nexport type InputMaskOptions<T> = Inputmask.Options & {\n parser?: (value: any) => T;\n};\n\nexport type CurrencyMaskOptions = {\n symbol: string;\n symbolFormat: 'wide' | 'narrow';\n spacer: string;\n digits: number;\n digitsOptional: boolean;\n decimalCharacter: string;\n groupCharacter: string;\n}\n\nexport const enum DateMaskFormat {\n DayMonthYear,\n MonthDayYear,\n YearMonthDay,\n YearDayMonth\n}\n\nexport const createMask = <T>(options: string | InputMaskOptions<T>) => typeof options === 'string' ? {mask: options} : options;","import {Directive, ElementRef, HostListener, Input, NgZone, OnDestroy, OnInit, Optional, Renderer2, Self} from '@angular/core';\nimport {AbstractControl, ControlValueAccessor, NgControl, Validator} from '@angular/forms';\nimport {InputMaskOptions} from './input-mask.interface';\nimport {Platform} from '@angular/cdk/platform';\nimport type Inputmask from 'inputmask';\nimport _Inputmask from 'inputmask';\n\nconst InputmaskConstructor = (_Inputmask as unknown as { default?: Inputmask.Static }).default || _Inputmask;\n\n@Directive({\n selector: 'input[bbInputMask]'\n})\nexport class BbInputMask<T = any> implements OnInit, OnDestroy, ControlValueAccessor, Validator {\n\n @Input()\n set bbInputMask(mask: InputMaskOptions<T> | null | undefined) {\n if (!mask) {\n return;\n }\n\n this._inputMaskOptions = mask;\n this.updateMask();\n }\n\n // State.\n inputMaskPlugin: Inputmask.Instance | null = null;\n nativeInputElement: HTMLInputElement | null = null;\n\n private _inputMaskOptions: InputMaskOptions<T> | null = null;\n private _onChange: (value: T | null) => void = () => ({});\n\n constructor(private _ngZone: NgZone,\n private _platform: Platform,\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n @Optional() @Self() private _control?: NgControl) {\n this.nativeInputElement = this._elementRef.nativeElement;\n if (this._control != null) {\n this._control.valueAccessor = this;\n }\n }\n\n @HostListener('input', ['$event.target.value'])\n onInput: (value: any) => void = (_: any) => ({});\n\n @HostListener('blur', ['$event.target.value'])\n onTouched: () => void = () => ({});\n\n ngOnInit() {\n const control = this._control.control;\n if (!control) {\n return;\n }\n\n control.setValidators(control.validator ? [control.validator, this.validate] : [this.validate]);\n control.updateValueAndValidity();\n }\n\n ngOnDestroy() {\n this.destroyMask();\n }\n\n writeValue(value: string) {\n if (!this.nativeInputElement) {\n return;\n }\n this._renderer.setProperty(this.nativeInputElement, 'value', value ?? '');\n }\n\n registerOnChange(fn: (value: T | null) => void) {\n this._onChange = fn;\n const parser = this._inputMaskOptions?.parser;\n this.onInput = value => this._onChange(parser && value ? parser(value) : value);\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n if (!this.nativeInputElement) {\n return;\n }\n this._renderer.setProperty(this.nativeInputElement, 'disabled', isDisabled);\n }\n\n validate = (control: AbstractControl) => !control.value || !this.inputMaskPlugin || this.inputMaskPlugin?.isValid()\n ? null\n : {inputMask: true};\n\n private updateMask() {\n this.destroyMask();\n this.createMask();\n this.registerOnChange(this._onChange);\n }\n\n private createMask() {\n const element = this._elementRef.nativeElement;\n if (!this._platform.isBrowser || !element || this._inputMaskOptions === null || Object.keys(this._inputMaskOptions).length === 0) {\n return;\n }\n\n const {parser, ...options} = this._inputMaskOptions;\n this.inputMaskPlugin = this._ngZone.runOutsideAngular(() => new InputmaskConstructor(options).mask(element));\n\n const control = this._control.control;\n if (!control) {\n return;\n }\n setTimeout(() => control.updateValueAndValidity());\n }\n\n private destroyMask() {\n this.inputMaskPlugin?.remove();\n this.inputMaskPlugin = null;\n }\n\n // Required so that the template type checker can infer the type of the coerced inputs.\n static ngAcceptInputType_bbInputMask: InputMaskOptions<any> | null | undefined;\n\n}","import {formatDate, getCurrencySymbol, getLocaleNumberSymbol, getNumberOfCurrencyDigits, NumberSymbol} from '@angular/common';\nimport {createMask, CurrencyMaskOptions, DateMaskFormat} from './input-mask.interface';\nimport {Localize} from '@bravobit/bb-foundation/localize';\nimport {Injectable, Optional} from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Masking {\n\n constructor(@Optional() private _localize?: Localize) {\n }\n\n date(format: DateMaskFormat = DateMaskFormat.YearMonthDay, separator: string = '-') {\n const dateParts = this.getDateParts(format);\n const inputFormat = dateParts.join(separator);\n const outputFormat = 'yyyy-MM-dd';\n\n const escape = /[.*+?^${}()\\/|[\\]\\\\]/g;\n const escapedSeparator = separator.replace(escape, '\\\\$&');\n\n const inputFormatRegexString = dateParts\n .map(item => `(?<${item}>[0-9]{${item?.length}})`)\n .join(escapedSeparator);\n const inputFormatRegex = new RegExp(`^${inputFormatRegexString}$`);\n\n return createMask({\n alias: 'datetime',\n inputFormat: inputFormat.toLowerCase(),\n outputFormat: outputFormat.toLowerCase(),\n nullable: false,\n inputmode: 'numeric',\n onBeforeMask: (initialValue: string) => {\n return initialValue ? formatDate(initialValue, inputFormat, 'en-US') : null;\n },\n onBeforePaste: (value: string) => {\n return value;\n },\n parser: (value: string) => {\n if (!value || typeof value !== 'string' || !inputFormatRegex.test(value)) {\n return null;\n }\n const matches = value.match(inputFormatRegex);\n const year = +matches?.groups?.['yyyy'];\n const month = +matches?.groups?.['MM'] - 1;\n const day = +matches?.groups?.['dd'];\n const date = new Date(year, month, day);\n\n return date instanceof Date && !isNaN(<any>date)\n ? formatDate(date, outputFormat, 'en-US')\n : null;\n }\n });\n }\n\n currency(code: string, options?: Partial<CurrencyMaskOptions>) {\n const locale = this._localize?.current?.locale ?? 'en';\n const symbol = options?.symbol ?? getCurrencySymbol(code, options?.symbolFormat ?? 'narrow', locale);\n\n const decimal = options?.decimalCharacter ?? getLocaleNumberSymbol(locale, NumberSymbol.CurrencyDecimal);\n const group = options?.groupCharacter ?? getLocaleNumberSymbol(locale, NumberSymbol.CurrencyGroup);\n const digits = options?.digits ?? getNumberOfCurrencyDigits(code);\n const spacer = options?.spacer ?? ' ';\n\n return createMask({\n alias: 'numeric',\n digits: digits,\n prefix: `${symbol}${spacer}`,\n radixPoint: decimal ?? '.',\n groupSeparator: group ?? ',',\n digitsOptional: options?.digitsOptional ?? false,\n autoUnmask: true,\n unmaskAsNumber: true,\n nullable: false,\n rightAlign: false,\n showMaskOnHover: false,\n showMaskOnFocus: false,\n inputmode: digits > 0 ? 'decimal' : 'numeric'\n });\n }\n\n private getDateParts(format: DateMaskFormat) {\n switch (format) {\n case DateMaskFormat.DayMonthYear:\n return ['dd', 'MM', 'yyyy'];\n case DateMaskFormat.MonthDayYear:\n return ['MM', 'dd', 'yyyy'];\n case DateMaskFormat.YearDayMonth:\n return ['yyyy', 'dd', 'MM'];\n case DateMaskFormat.YearMonthDay:\n default:\n return ['yyyy', 'MM', 'dd'];\n }\n }\n\n}\n","import {BbInputMask} from './input-mask.directive';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n declarations: [BbInputMask],\n exports: [BbInputMask]\n})\nexport class MaskingModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1"],"mappings":";;;;;;;;AAuBa,MAAA,UAAU,GAAG,CAAI,OAAqC,KAAK,OAAO,OAAO,KAAK,QAAQ,GAAG,EAAC,IAAI,EAAE,OAAO,EAAC,GAAG;;AChBxH,MAAM,oBAAoB,GAAI,UAAwD,CAAC,OAAO,IAAI,UAAU,CAAC;MAKhG,WAAW,CAAA;IAmBpB,WAAoB,CAAA,OAAe,EACf,SAAmB,EACnB,SAAoB,EACpB,WAAuB,EACH,QAAoB,EAAA;QAJxC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QACf,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;QACnB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACpB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;QACH,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAY;;QAV5D,IAAe,CAAA,eAAA,GAA8B,IAAI,CAAC;QAClD,IAAkB,CAAA,kBAAA,GAA4B,IAAI,CAAC;QAE3C,IAAiB,CAAA,iBAAA,GAA+B,IAAI,CAAC;AACrD,QAAA,IAAA,CAAA,SAAS,GAA8B,OAAO,EAAE,CAAC,CAAC;QAc1D,IAAO,CAAA,OAAA,GAAyB,CAAC,CAAM,MAAM,EAAE,CAAC,CAAC;AAGjD,QAAA,IAAA,CAAA,SAAS,GAAe,OAAO,EAAE,CAAC,CAAC;QAwCnC,IAAQ,CAAA,QAAA,GAAG,CAAC,OAAwB,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE;AAC/G,cAAE,IAAI;AACN,cAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC;QApDpB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;AACzD,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC;AACtC,SAAA;KACJ;IA1BD,IACI,WAAW,CAAC,IAA4C,EAAA;QACxD,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;AACV,SAAA;AAED,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IA0BD,QAAQ,GAAA;AACJ,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE;YACV,OAAO;AACV,SAAA;QAED,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChG,OAAO,CAAC,sBAAsB,EAAE,CAAC;KACpC;IAED,WAAW,GAAA;QACP,IAAI,CAAC,WAAW,EAAE,CAAC;KACtB;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC1B,OAAO;AACV,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;KAC7E;AAED,IAAA,gBAAgB,CAAC,EAA6B,EAAA;AAC1C,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;KACnF;AAED,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC1B,OAAO;AACV,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;KAC/E;IAMO,UAAU,GAAA;QACd,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACzC;IAEO,UAAU,GAAA;AACd,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;AAC/C,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9H,OAAO;AACV,SAAA;QAED,MAAM,EAAC,MAAM,EAAE,GAAG,OAAO,EAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACpD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAE7G,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE;YACV,OAAO;AACV,SAAA;QACD,UAAU,CAAC,MAAM,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;KACtD;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;KAC/B;;wGAvGQ,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAX,WAAW,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,gCAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AACjC,iBAAA,CAAA;;0BAwBgB,QAAQ;;0BAAI,IAAI;4CApBzB,WAAW,EAAA,CAAA;sBADd,KAAK;gBA6BN,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,qBAAqB,CAAC,CAAA;gBAI9C,SAAS,EAAA,CAAA;sBADR,YAAY;uBAAC,MAAM,EAAE,CAAC,qBAAqB,CAAC,CAAA;;;MCrCpC,OAAO,CAAA;AAEhB,IAAA,WAAA,CAAgC,SAAoB,EAAA;QAApB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;KACnD;AAED,IAAA,IAAI,CAAC,MAAA,GAAA,CAAA,oCAAsD,SAAA,GAAoB,GAAG,EAAA;QAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,YAAY,CAAC;QAElC,MAAM,MAAM,GAAG,uBAAuB,CAAC;QACvC,MAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE3D,MAAM,sBAAsB,GAAG,SAAS;AACnC,aAAA,GAAG,CAAC,IAAI,IAAI,CAAA,GAAA,EAAM,IAAI,CAAA,OAAA,EAAU,IAAI,EAAE,MAAM,CAAA,EAAA,CAAI,CAAC;aACjD,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC5B,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,CAAI,CAAA,EAAA,sBAAsB,CAAG,CAAA,CAAA,CAAC,CAAC;AAEnE,QAAA,OAAO,UAAU,CAAC;AACd,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE;AACtC,YAAA,YAAY,EAAE,YAAY,CAAC,WAAW,EAAE;AACxC,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,YAAY,EAAE,CAAC,YAAoB,KAAI;AACnC,gBAAA,OAAO,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;aAC/E;AACD,YAAA,aAAa,EAAE,CAAC,KAAa,KAAI;AAC7B,gBAAA,OAAO,KAAK,CAAC;aAChB;AACD,YAAA,MAAM,EAAE,CAAC,KAAa,KAAI;AACtB,gBAAA,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACtE,oBAAA,OAAO,IAAI,CAAC;AACf,iBAAA;gBACD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBAC9C,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AACxC,gBAAA,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3C,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;gBACrC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;gBAExC,OAAO,IAAI,YAAY,IAAI,IAAI,CAAC,KAAK,CAAM,IAAI,CAAC;sBAC1C,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC;sBACvC,IAAI,CAAC;aACd;AACJ,SAAA,CAAC,CAAC;KACN;IAED,QAAQ,CAAC,IAAY,EAAE,OAAsC,EAAA;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC;AACvD,QAAA,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,IAAI,QAAQ,EAAE,MAAM,CAAC,CAAC;AAErG,QAAA,MAAM,OAAO,GAAG,OAAO,EAAE,gBAAgB,IAAI,qBAAqB,CAAC,MAAM,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC;AACzG,QAAA,MAAM,KAAK,GAAG,OAAO,EAAE,cAAc,IAAI,qBAAqB,CAAC,MAAM,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;QACnG,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAC;AAClE,QAAA,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,GAAG,CAAC;AAEtC,QAAA,OAAO,UAAU,CAAC;AACd,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,MAAM,EAAE,CAAA,EAAG,MAAM,CAAA,EAAG,MAAM,CAAE,CAAA;YAC5B,UAAU,EAAE,OAAO,IAAI,GAAG;YAC1B,cAAc,EAAE,KAAK,IAAI,GAAG;AAC5B,YAAA,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,KAAK;AAChD,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,KAAK;YACtB,SAAS,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS;AAChD,SAAA,CAAC,CAAC;KACN;AAEO,IAAA,YAAY,CAAC,MAAsB,EAAA;AACvC,QAAA,QAAQ,MAAM;AACV,YAAA,KAAA,CAAA;AACI,gBAAA,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAChC,YAAA,KAAA,CAAA;AACI,gBAAA,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAChC,YAAA,KAAA,CAAA;AACI,gBAAA,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,KAAiC,CAAA,mCAAA;AACjC,YAAA;AACI,gBAAA,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACnC,SAAA;KACJ;;oGArFQ,OAAO,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAP,OAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,OAAO,cAFJ,MAAM,EAAA,CAAA,CAAA;2FAET,OAAO,EAAA,UAAA,EAAA,CAAA;kBAHnB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;0BAGgB,QAAQ;;;MCHZ,aAAa,CAAA;;0GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;2GAAb,aAAa,EAAA,YAAA,EAAA,CAHP,WAAW,CAAA,EAAA,OAAA,EAAA,CAChB,WAAW,CAAA,EAAA,CAAA,CAAA;2GAEZ,aAAa,EAAA,CAAA,CAAA;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,WAAW,CAAC;oBAC3B,OAAO,EAAE,CAAC,WAAW,CAAC;AACzB,iBAAA,CAAA;;;ACND;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"bravobit-bb-foundation-masking.mjs","sources":["../../../projects/bb-foundation/masking/src/lib/input-mask.interface.ts","../../../projects/bb-foundation/masking/src/lib/directives/input-mask.directive.ts","../../../projects/bb-foundation/masking/src/lib/masking.service.ts","../../../projects/bb-foundation/masking/src/lib/directives/currency-mask.directive.ts","../../../projects/bb-foundation/masking/src/lib/directives/date-mask.directive.ts","../../../projects/bb-foundation/masking/src/lib/masking.module.ts","../../../projects/bb-foundation/masking/src/bravobit-bb-foundation-masking.ts"],"sourcesContent":["import type Inputmask from 'inputmask';\n\nexport type InputMaskOptions<T> = Inputmask.Options & {\n parser?: (value: any) => T;\n};\n\nexport type CurrencyMaskOptions = {\n symbol: string;\n symbolFormat: 'wide' | 'narrow';\n spacer: string;\n digits: number;\n digitsOptional: boolean;\n decimalCharacter: string;\n groupCharacter: string;\n min: number;\n max: number;\n allowMinus: boolean;\n nullable: boolean;\n}\n\nexport type DateMaskFormat =\n 'day-month-year' |\n 'month-day-year' |\n 'year-month-day' |\n 'year-day-month';\n\nexport const createMask = <T>(options: string | InputMaskOptions<T>) => typeof options === 'string' ? {mask: options} : options;\n","import {Directive, ElementRef, HostListener, Input, NgZone, OnDestroy, OnInit, Optional, Renderer2, Self} from '@angular/core';\nimport {AbstractControl, ControlValueAccessor, NgControl, Validator} from '@angular/forms';\nimport {InputMaskOptions} from '../input-mask.interface';\nimport {fromEvent, merge, Subscription} from 'rxjs';\nimport {Platform} from '@angular/cdk/platform';\nimport type Inputmask from 'inputmask';\nimport _Inputmask from 'inputmask';\n\nconst InputmaskConstructor = (_Inputmask as unknown as { default?: Inputmask.Static }).default || _Inputmask;\n\n@Directive({\n selector: 'input[bbInputMask],input[bbCurrencyMask],input[bbDateMask]'\n})\nexport class BbInputMask<T = any> implements OnInit, OnDestroy, ControlValueAccessor, Validator {\n\n @Input('bbInputMask')\n set mask(mask: InputMaskOptions<T> | string | null | undefined) {\n if (!mask || typeof mask === 'string') {\n return;\n }\n\n this._inputMaskOptions = mask;\n this.updateMask();\n }\n\n // State.\n inputMaskPlugin: Inputmask.Instance | null = null;\n nativeInputElement: HTMLInputElement | null = null;\n eventsSubscription: Subscription | null = null;\n\n private _inputMaskOptions: InputMaskOptions<T> | null = null;\n private _onChange: (value: T | null) => void = () => ({});\n\n constructor(private _ngZone: NgZone,\n private _platform: Platform,\n private _renderer: Renderer2,\n private _elementRef: ElementRef<HTMLInputElement>,\n @Optional() @Self() private _control?: NgControl) {\n this.nativeInputElement = this._elementRef.nativeElement;\n if (this._control != null) {\n this._control.valueAccessor = this;\n }\n }\n\n @HostListener('input', ['$event.target.value'])\n onInput: (value: any) => void = (_: any) => ({});\n\n @HostListener('blur', ['$event.target.value'])\n onTouched: () => void = () => ({});\n\n ngOnInit() {\n const control = this._control?.control;\n if (!control) {\n return;\n }\n\n control?.setValidators(control.validator ? [control.validator, this.validate] : [this.validate]);\n control?.updateValueAndValidity();\n }\n\n ngOnDestroy() {\n this.destroyMask();\n }\n\n writeValue(value: string) {\n if (!this.nativeInputElement) {\n return;\n }\n this._renderer.setProperty(this.nativeInputElement, 'value', value ?? '');\n }\n\n registerOnChange(fn: (value: T | null) => void) {\n this._onChange = fn;\n const parser = this._inputMaskOptions?.parser;\n this.onInput = value => this._onChange(parser ? parser(value) : value);\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n if (!this.nativeInputElement) {\n return;\n }\n this._renderer.setProperty(this.nativeInputElement, 'disabled', isDisabled);\n }\n\n validate = (control: AbstractControl) => !control.value || !this.inputMaskPlugin || this.inputMaskPlugin?.isValid()\n ? null\n : {inputMask: true};\n\n private updateMask() {\n this.destroyMask();\n this.createMask();\n this.registerOnChange(this._onChange);\n }\n\n private createMask() {\n if (!this._platform.isBrowser || !this.nativeInputElement || this._inputMaskOptions === null || Object.keys(this._inputMaskOptions).length === 0) {\n return;\n }\n\n const {parser, ...options} = this._inputMaskOptions;\n this.inputMaskPlugin = this._ngZone.runOutsideAngular(() => new InputmaskConstructor(options).mask(this.nativeInputElement));\n\n const setValue$ = fromEvent(this.nativeInputElement, 'setvalue');\n const cleared$ = fromEvent(this.nativeInputElement, 'cleared');\n\n this.eventsSubscription = merge(setValue$, cleared$)\n .subscribe(event => this.onInput(event?.target?.['value']));\n\n const control = this._control?.control;\n if (!control) {\n return;\n }\n setTimeout(() => control?.updateValueAndValidity());\n }\n\n private destroyMask() {\n this.eventsSubscription?.unsubscribe();\n this.eventsSubscription = null;\n this.inputMaskPlugin?.remove();\n this.inputMaskPlugin = null;\n }\n\n // Required so that the template type checker can infer the type of the coerced inputs.\n static ngAcceptInputType_bbInputMask: InputMaskOptions<any> | string | null | undefined;\n\n}\n","import {formatDate, getCurrencySymbol, getLocaleNumberSymbol, getNumberOfCurrencyDigits, NumberSymbol} from '@angular/common';\nimport {createMask, CurrencyMaskOptions, DateMaskFormat} from './input-mask.interface';\nimport {Localize} from '@bravobit/bb-foundation/localize';\nimport {Injectable, Optional} from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Masking {\n\n constructor(@Optional() private _localize?: Localize) {\n }\n\n date(format: DateMaskFormat, separator: string = '-') {\n const dateParts = this.getDateParts(format);\n const inputFormat = dateParts.join(separator);\n const outputFormat = 'yyyy-MM-dd';\n\n const escape = /[.*+?^${}()\\/|[\\]\\\\]/g;\n const escapedSeparator = separator.replace(escape, '\\\\$&');\n\n const inputFormatRegexString = dateParts\n .map(item => `(?<${item}>[0-9]{${item?.length}})`)\n .join(escapedSeparator);\n const inputFormatRegex = new RegExp(`^${inputFormatRegexString}$`);\n\n return createMask({\n alias: 'datetime',\n inputFormat: inputFormat.toLowerCase(),\n outputFormat: outputFormat.toLowerCase(),\n nullable: false,\n inputmode: 'numeric',\n onBeforeMask: (initialValue: string) => {\n return initialValue ? formatDate(initialValue, inputFormat, 'en-US') : null;\n },\n onBeforePaste: (value: string) => {\n return value;\n },\n parser: (value: string) => {\n if (!value || typeof value !== 'string' || !inputFormatRegex.test(value)) {\n return null;\n }\n const matches = value.match(inputFormatRegex);\n const year = +matches?.groups?.['yyyy'];\n const month = +matches?.groups?.['MM'] - 1;\n const day = +matches?.groups?.['dd'];\n const date = new Date(year, month, day);\n\n return date instanceof Date && !isNaN(<any>date)\n ? formatDate(date, outputFormat, 'en-US')\n : null;\n }\n });\n }\n\n currency(code: string, options?: Partial<CurrencyMaskOptions>) {\n const locale = this._localize?.current?.locale ?? 'en';\n const symbol = options?.symbol ?? getCurrencySymbol(code, options?.symbolFormat ?? 'narrow', locale);\n\n const decimal = options?.decimalCharacter ?? getLocaleNumberSymbol(locale, NumberSymbol.CurrencyDecimal);\n const group = options?.groupCharacter ?? getLocaleNumberSymbol(locale, NumberSymbol.CurrencyGroup);\n const digits = options?.digits ?? getNumberOfCurrencyDigits(code);\n const spacer = options?.spacer ?? ' ';\n\n return createMask({\n alias: 'numeric',\n digits: digits,\n allowMinus: options?.allowMinus ?? false,\n min: options?.min ?? 0,\n max: options?.max ?? Number.MAX_SAFE_INTEGER,\n prefix: `${symbol}${spacer}`,\n radixPoint: decimal ?? '.',\n groupSeparator: group ?? ',',\n digitsOptional: options?.digitsOptional ?? false,\n nullable: options?.nullable ?? true,\n autoUnmask: true,\n unmaskAsNumber: true,\n rightAlign: false,\n showMaskOnHover: false,\n showMaskOnFocus: false,\n inputmode: digits > 0 ? 'decimal' : 'numeric',\n parser: (value: string | number) => {\n if (value === '') {\n return null;\n }\n return value;\n }\n });\n }\n\n private getDateParts(format: DateMaskFormat) {\n switch (format) {\n case 'day-month-year':\n return ['dd', 'MM', 'yyyy'];\n case 'month-day-year':\n return ['MM', 'dd', 'yyyy'];\n case 'year-day-month':\n return ['yyyy', 'dd', 'MM'];\n case 'year-month-day':\n default:\n return ['yyyy', 'MM', 'dd'];\n }\n }\n\n}\n","import {Directive, Input, OnChanges, Self, SimpleChanges} from '@angular/core';\nimport {CurrencyMaskOptions} from '../input-mask.interface';\nimport {BbInputMask} from './input-mask.directive';\nimport {Masking} from '../masking.service';\n\n@Directive({\n selector: 'input[bbCurrencyMask]'\n})\nexport class BbCurrencyMask implements OnChanges {\n\n // Inputs.\n @Input('bbCurrencyMask') currencyCode: string | null = null;\n @Input('bbCurrencyMaskOptions') options: Partial<CurrencyMaskOptions> | null = null;\n\n constructor(private _masking: Masking,\n @Self() private _inputMask: BbInputMask) {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const currencyCode = changes?.['currencyCode']?.currentValue ?? this.currencyCode ?? 'USD';\n const options = changes?.['options']?.currentValue ?? this.options ?? {};\n\n this._inputMask.mask = this._masking.currency(currencyCode, options);\n }\n\n // Required so that the template type checker can infer the type of the coerced inputs.\n static ngAcceptInputType_bbCurrencyMask: string | null | undefined;\n static ngAcceptInputType_bbCurrencyMaskOptions: Partial<CurrencyMaskOptions> | null | undefined;\n\n}\n","import {Directive, Input, OnChanges, Self, SimpleChanges} from '@angular/core';\nimport {DateMaskFormat} from '../input-mask.interface';\nimport {BbInputMask} from './input-mask.directive';\nimport {Masking} from '../masking.service';\n\n@Directive({\n selector: 'input[bbDateMask]'\n})\nexport class BbDateMask implements OnChanges {\n\n // Inputs.\n @Input('bbDateMask') format: DateMaskFormat | null = null;\n @Input('bbDateMaskSeparator') separator: string | null = null;\n\n constructor(private _masking: Masking,\n @Self() private _inputMask: BbInputMask) {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const format = changes?.['format']?.currentValue ?? this.format ?? null;\n const separator = changes?.['separator']?.currentValue ?? this.separator ?? '-s';\n this._inputMask.mask = this._masking.date(format, separator);\n }\n\n // Required so that the template type checker can infer the type of the coerced inputs.\n static ngAcceptInputType_bbDateMask: DateMaskFormat | null | undefined;\n static ngAcceptInputType_bbDateMaskSeparator: string | null | undefined;\n\n}\n","import {BbCurrencyMask} from './directives/currency-mask.directive';\nimport {BbInputMask} from './directives/input-mask.directive';\nimport {BbDateMask} from './directives/date-mask.directive';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n declarations: [\n BbInputMask,\n BbCurrencyMask,\n BbDateMask\n ],\n exports: [\n BbInputMask,\n BbCurrencyMask,\n BbDateMask\n ]\n})\nexport class MaskingModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i1.Masking","i2.BbInputMask"],"mappings":"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"}
|
|
@@ -132,9 +132,9 @@ class BbNotificationsItem {
|
|
|
132
132
|
this._zone.runOutsideAngular(() => this._timer = this.setTimeout(this.instance, this._speed));
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
|
-
BbNotificationsItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
136
|
-
BbNotificationsItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.
|
|
137
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
135
|
+
BbNotificationsItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbNotificationsItem, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
136
|
+
BbNotificationsItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: BbNotificationsItem, selector: "bb-notifications-item", inputs: { notification: "notification", dismissButtonText: "dismissButtonText" }, host: { attributes: { "role": "alert" }, properties: { "class": "this.getClass" } }, viewQueries: [{ propertyName: "progressElementRef", first: true, predicate: ["progress"], descendants: true }], ngImport: i0, template: "<div class=\"notification-content-wrapper\">\n <!--\n The icon for the notification.\n\n The icon is reflected by the type of the\n notification. Same goes for the color and\n background-color.\n -->\n <div [style.color]=\"notification?.color\"\n [style.background-color]=\"notification?.backgroundColor\"\n class=\"notification-icon-wrapper\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 16 19.5\"\n class=\"notification-icon\">\n <path\n d=\"M8 19.5c1.1 0 2-.9 2-2H6c0 1.1.9 2 2 2zM14 13.5v-5c0-3.1-1.6-5.6-4.5-6.3v-.7C9.5.7 8.8 0 8 0S6.5.7 6.5 1.5v.7C3.6 2.9 2 5.4 2 8.5v5l-2 2v1h16v-1l-2-2z\">\n </path>\n </svg>\n\n <!--\n The circular progress for the notification.\n\n The progress is only visible when a timeout is\n set. The progress adapts to the time remaining\n for the notification.\n -->\n <svg *ngIf=\"notification?.timeout > 0\"\n class=\"notification-progress-ring\"\n viewBox=\"0 0 40 40\"\n role=\"progressbar\">\n <circle #progress\n [attr.stroke-dasharray]=\"progressStrokeArray\"\n [attr.stroke-dashoffset]=\"progressStrokeOffset\"\n [style.stroke]=\"notification?.color\"\n class=\"notification-progress-circle\"\n stroke-width=\"2\"\n fill=\"transparent\"\n r=\"19\"\n cx=\"20\"\n cy=\"20\">\n </circle>\n </svg>\n </div>\n\n <!--\n The content for the notification.\n\n This displays a string or a template based\n on the given parameter by the user.\n -->\n <div class=\"notification-content\">\n <ng-container *ngIf=\"isContentString; else templateContent\"\n [ngSwitch]=\"notification?.localize\">\n <ng-container *ngSwitchCase=\"true\">\n {{ $any(notification?.content) | bbLocalize:{data: notification?.data} }}\n </ng-container>\n <ng-container *ngSwitchDefault>\n {{ notification?.content }}\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<!--\n The actions of the notification.\n\n All actions are displayed here and are\n based on the actions array the user provided.\n-->\n<div *ngIf=\"notification?.actions?.length > 0 || notification?.dismiss\"\n class=\"notification-actions\">\n <button *ngFor=\"let action of notification?.actions\"\n (click)=\"callActionAndDestroy(notification, action)\"\n type=\"button\"\n [class.destructive]=\"action?.type === 'cancel'\"\n class=\"notification-actions-button\">\n <span [ngSwitch]=\"notification?.localize\"\n class=\"notification-actions-button-highlight\">\n <ng-container *ngSwitchCase=\"true\">\n {{ action?.title | bbLocalize:{data: notification?.data} }}\n </ng-container>\n <ng-container *ngSwitchDefault>\n {{ action?.title }}\n </ng-container>\n </span>\n </button>\n <button *ngIf=\"notification?.dismiss\"\n (click)=\"notification?.destroy()\"\n class=\"notification-actions-button destructive\"\n type=\"button\">\n <span class=\"notification-actions-button-highlight\">\n {{ notification?.dismissText || dismissButtonText }}\n </span>\n </button>\n</div>\n\n<!--\n The outlet for the notification content template ref.\n-->\n<ng-template #templateContent>\n <ng-container *ngTemplateOutlet=\"$any(notification?.content)\"></ng-container>\n</ng-template>\n", styles: [".bb-notifications-item{display:flex;border-radius:4px;flex-direction:column;background-color:#fff;border:1px solid #d6dbe0}.bb-notifications-item.success .notification-icon-wrapper{color:#2dc05d;background-color:#ebfaf0}.bb-notifications-item.success .notification-progress-circle{stroke:#36d068}.bb-notifications-item.error .notification-icon-wrapper{color:#f43e3e;background-color:#feeeee}.bb-notifications-item.error .notification-progress-circle{stroke:#f55656}.bb-notifications-item.warning .notification-icon-wrapper{color:#f1ae00;background-color:#fff8e7}.bb-notifications-item.warning .notification-progress-circle{stroke:#ffbc0b}.bb-notifications-item.info .notification-icon-wrapper{color:#099bf6;background-color:#e9f6fe}.bb-notifications-item.info .notification-progress-circle{stroke:#22a5f7}.bb-notifications-item.custom .notification-icon-wrapper{color:#657385;background-color:#f3f5f6}.bb-notifications-item.custom .notification-progress-circle{stroke:#657385}.notification-content-wrapper{padding:20px;display:flex;align-items:center}.notification-icon-wrapper{width:40px;height:40px;display:flex;-webkit-user-select:none;user-select:none;position:relative;border-radius:50%;align-items:center;justify-content:center;color:#657385;background-color:#f3f5f6}.notification-icon{width:100%;height:100%;padding:10px;fill:currentColor}.notification-content{flex:1;font-size:14px;line-height:1.5;font-weight:500;margin-left:20px;color:#000000d9}.notification-content i{font-style:italic}.notification-content,.notification-actions-button{font-family:inherit}.notification-actions{display:flex;margin:0 20px;-webkit-user-select:none;user-select:none;border-top:1px solid #f3f5f6}.notification-actions-button{flex:1;border:none;color:#22a5f7;cursor:pointer;font-size:14px;font-weight:500;padding:12px 2px;text-align:center;background-color:transparent}.notification-actions-button:hover>.notification-actions-button-highlight,.notification-actions-button:focus>.notification-actions-button-highlight{background-color:#22a5f71a}.notification-actions-button:active>.notification-actions-button-highlight{background-color:#22a5f733}.notification-actions-button.destructive{color:#f55656}.notification-actions-button.destructive:hover>.notification-actions-button-highlight,.notification-actions-button.destructive:focus>.notification-actions-button-highlight{background-color:#f556561a}.notification-actions-button.destructive:active>.notification-actions-button-highlight{background-color:#f5565633}.notification-actions-button-highlight{padding:4px 12px;border-radius:12px;display:inline-flex;transition:background-color .15s cubic-bezier(0,0,.2,1)}.notification-progress-ring{top:0;left:0;right:0;bottom:0;width:100%;height:100%;position:absolute}.notification-progress-circle{transform:rotate(-90deg);transform-origin:50% 50%;stroke:#657385}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "pipe", type: i2$1.BbLocalize, name: "bbLocalize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
137
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbNotificationsItem, decorators: [{
|
|
138
138
|
type: Component,
|
|
139
139
|
args: [{ selector: 'bb-notifications-item', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
|
|
140
140
|
'role': 'alert'
|
|
@@ -176,9 +176,9 @@ class BbNotificationsList {
|
|
|
176
176
|
return { vertical: y || null, horizontal: x || null };
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
|
-
BbNotificationsList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
180
|
-
BbNotificationsList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.
|
|
181
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
179
|
+
BbNotificationsList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbNotificationsList, deps: [{ token: NotificationsData }], target: i0.ɵɵFactoryTarget.Component });
|
|
180
|
+
BbNotificationsList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: BbNotificationsList, selector: "bb-notifications-list", host: { attributes: { "role": "list" }, properties: { "style.justify-content": "this.horizontalPosition", "style.align-items": "this.verticalPosition" }, classAttribute: "bb-notifications-list" }, ngImport: i0, template: "<!--\n The notifications list.\n\n The list provides the animation effect for the\n incoming notifications.\n-->\n<div *ngIf=\"data?.data | async as notifications\"\n [@notificationListAnimation]=\"{value: notifications?.length, params: animation}\"\n class=\"notifications-list-wrapper\">\n <!--\n The loop for the notifications.\n\n All notifications will be displayed here. They\n are wrapped within a wrapper which separates them.\n -->\n <div *ngFor=\"let notification of notifications; trackBy: trackByFn\"\n class=\"notifications-item-wrapper\">\n <bb-notifications-item [notification]=\"notification\"\n [dismissButtonText]=\"data?.dismissText\">\n </bb-notifications-item>\n </div>\n</div>\n", styles: [".bb-notifications-list{top:0;left:0;right:0;bottom:0;z-index:1100;padding:10px;display:flex;position:fixed;pointer-events:none}.notifications-list-wrapper{width:100%;display:block;max-width:400px;position:relative}.notifications-item-wrapper{padding:0;margin:0 0 10px;pointer-events:all}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: BbNotificationsItem, selector: "bb-notifications-item", inputs: ["notification", "dismissButtonText"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], animations: [notificationAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
181
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbNotificationsList, decorators: [{
|
|
182
182
|
type: Component,
|
|
183
183
|
args: [{ selector: 'bb-notifications-list', animations: [notificationAnimation], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
|
|
184
184
|
'class': 'bb-notifications-list',
|
|
@@ -335,9 +335,9 @@ class Notifications {
|
|
|
335
335
|
}
|
|
336
336
|
}
|
|
337
337
|
}
|
|
338
|
-
Notifications.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
339
|
-
Notifications.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.
|
|
340
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
338
|
+
Notifications.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Notifications, deps: [{ token: i0.Injector }, { token: i1.Platform }, { token: i0.ApplicationRef }, { token: i2$1.Localize, optional: true }, { token: NotificationsConfig, optional: true }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
339
|
+
Notifications.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Notifications });
|
|
340
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Notifications, decorators: [{
|
|
341
341
|
type: Injectable
|
|
342
342
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Platform }, { type: i0.ApplicationRef }, { type: i2$1.Localize, decorators: [{
|
|
343
343
|
type: Optional
|
|
@@ -356,10 +356,10 @@ class NotificationsModule {
|
|
|
356
356
|
};
|
|
357
357
|
}
|
|
358
358
|
}
|
|
359
|
-
NotificationsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
360
|
-
NotificationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.
|
|
361
|
-
NotificationsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.
|
|
362
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
359
|
+
NotificationsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: NotificationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
360
|
+
NotificationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.5", ngImport: i0, type: NotificationsModule, declarations: [BbNotificationsList, BbNotificationsItem], imports: [CommonModule, LocalizeModule] });
|
|
361
|
+
NotificationsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: NotificationsModule, imports: [CommonModule, LocalizeModule] });
|
|
362
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: NotificationsModule, decorators: [{
|
|
363
363
|
type: NgModule,
|
|
364
364
|
args: [{
|
|
365
365
|
imports: [CommonModule, LocalizeModule],
|