@enigmatry/entry-components 18.1.0 → 19.0.0
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 +2 -1
- package/fesm2022/enigmatry-entry-components-button.mjs +9 -8
- package/fesm2022/enigmatry-entry-components-button.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-common.mjs +36 -36
- package/fesm2022/enigmatry-entry-components-common.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-date-time-picker.mjs +13 -13
- package/fesm2022/enigmatry-entry-components-date-time-picker.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-dialog.mjs +23 -23
- package/fesm2022/enigmatry-entry-components-dialog.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-file-input.mjs +8 -8
- package/fesm2022/enigmatry-entry-components-file-input.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-permissions.mjs +14 -12
- package/fesm2022/enigmatry-entry-components-permissions.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-search-filter.mjs +29 -29
- package/fesm2022/enigmatry-entry-components-search-filter.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-spinner.mjs +11 -11
- package/fesm2022/enigmatry-entry-components-spinner.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-table.mjs +20 -20
- package/fesm2022/enigmatry-entry-components-table.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-validation.mjs +14 -12
- package/fesm2022/enigmatry-entry-components-validation.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components.mjs +4 -4
- package/fesm2022/enigmatry-entry-components.mjs.map +1 -1
- package/package.json +8 -30
- package/esm2022/button/enigmatry-entry-components-button.mjs +0 -5
- package/esm2022/button/entry-button-config.mjs +0 -25
- package/esm2022/button/entry-button.directive.mjs +0 -56
- package/esm2022/button/entry-button.module.mjs +0 -28
- package/esm2022/button/public-api.mjs +0 -4
- package/esm2022/common/common.module.mjs +0 -58
- package/esm2022/common/constants.mjs +0 -3
- package/esm2022/common/date-time/entry-date-time-adapter.mjs +0 -119
- package/esm2022/common/date-time/entry-date-time-formats.mjs +0 -14
- package/esm2022/common/date-time/entry-time-adapter.mjs +0 -10
- package/esm2022/common/date-time/index.mjs +0 -5
- package/esm2022/common/date-time/native-time-adapter.mjs +0 -31
- package/esm2022/common/directives/auto-disable-button.directive.mjs +0 -75
- package/esm2022/common/directives/index.mjs +0 -5
- package/esm2022/common/directives/ng-control-accessor.directive.mjs +0 -46
- package/esm2022/common/directives/noop-control-value-accessor.mjs +0 -32
- package/esm2022/common/directives/scroll-to-invalid-control.directive.mjs +0 -51
- package/esm2022/common/enigmatry-entry-components-common.mjs +0 -5
- package/esm2022/common/event-plugins/abstract.plugin.mjs +0 -35
- package/esm2022/common/event-plugins/debounce.plugin.mjs +0 -34
- package/esm2022/common/event-plugins/index.mjs +0 -3
- package/esm2022/common/event-plugins/throttle.plugin.mjs +0 -34
- package/esm2022/common/interceptors/accept-language.interceptor.mjs +0 -32
- package/esm2022/common/interceptors/index.mjs +0 -2
- package/esm2022/common/public-api.mjs +0 -7
- package/esm2022/common/utils/index.mjs +0 -2
- package/esm2022/common/utils/provide-config.mjs +0 -14
- package/esm2022/date-time-picker/date-time-picker.component.mjs +0 -139
- package/esm2022/date-time-picker/date-time-picker.module.mjs +0 -62
- package/esm2022/date-time-picker/enigmatry-entry-components-date-time-picker.mjs +0 -5
- package/esm2022/date-time-picker/public-api.mjs +0 -3
- package/esm2022/date-time-picker/time-picker.component.mjs +0 -80
- package/esm2022/dialog/dialogs/alert/entry-alert-dialog-data.interface.mjs +0 -2
- package/esm2022/dialog/dialogs/alert/entry-alert-dialog.component.mjs +0 -29
- package/esm2022/dialog/dialogs/confirm/entry-confirm-dialog-data.interface.mjs +0 -2
- package/esm2022/dialog/dialogs/confirm/entry-confirm-dialog.component.mjs +0 -29
- package/esm2022/dialog/dialogs/entry-dialog.component.mjs +0 -74
- package/esm2022/dialog/dialogs/error/entry-error-dialog-data.interface.mjs +0 -2
- package/esm2022/dialog/dialogs/error/entry-error-dialog.component.mjs +0 -46
- package/esm2022/dialog/enigmatry-entry-components-dialog.mjs +0 -5
- package/esm2022/dialog/entry-dialog-buttons-alignment.type.mjs +0 -2
- package/esm2022/dialog/entry-dialog-config.model.mjs +0 -31
- package/esm2022/dialog/entry-dialog.module.mjs +0 -57
- package/esm2022/dialog/entry-dialog.service.mjs +0 -86
- package/esm2022/dialog/public-api.mjs +0 -8
- package/esm2022/enigmatry-entry-components.mjs +0 -5
- package/esm2022/file-input/enigmatry-entry-components-file-input.mjs +0 -5
- package/esm2022/file-input/entry-file-input.component.mjs +0 -201
- package/esm2022/file-input/entry-file-input.module.mjs +0 -40
- package/esm2022/file-input/public-api.mjs +0 -3
- package/esm2022/modules/entry-components.module.mjs +0 -67
- package/esm2022/permissions/enigmatry-entry-components-permissions.mjs +0 -5
- package/esm2022/permissions/permission-type.mjs +0 -2
- package/esm2022/permissions/permission.directive.mjs +0 -35
- package/esm2022/permissions/permission.guard.mjs +0 -14
- package/esm2022/permissions/permission.module.mjs +0 -29
- package/esm2022/permissions/permission.pipe.mjs +0 -20
- package/esm2022/permissions/permission.service.mjs +0 -3
- package/esm2022/permissions/public-api.mjs +0 -6
- package/esm2022/public-api.mjs +0 -14
- package/esm2022/search-filter/autocomplete/autocomplete-search-filter.component.mjs +0 -56
- package/esm2022/search-filter/autocomplete/autocomplete-search-filter.model.mjs +0 -19
- package/esm2022/search-filter/control-type.mjs +0 -9
- package/esm2022/search-filter/date/date-search-filter.component.mjs +0 -20
- package/esm2022/search-filter/date/date-search-filter.model.mjs +0 -12
- package/esm2022/search-filter/date-time/date-time-search-filter.component.mjs +0 -28
- package/esm2022/search-filter/date-time/date-time-search-filter.model.mjs +0 -12
- package/esm2022/search-filter/enigmatry-entry-components-search-filter.mjs +0 -5
- package/esm2022/search-filter/entry-search-filter.component.mjs +0 -76
- package/esm2022/search-filter/entry-search-filter.module.mjs +0 -78
- package/esm2022/search-filter/public-api.mjs +0 -11
- package/esm2022/search-filter/search-filter-base.model.mjs +0 -26
- package/esm2022/search-filter/search-filter-config.model.mjs +0 -18
- package/esm2022/search-filter/search-filter-params.type.mjs +0 -2
- package/esm2022/search-filter/select/select-search-filter.component.mjs +0 -29
- package/esm2022/search-filter/select/select-search-filter.model.mjs +0 -23
- package/esm2022/search-filter/select-option.model.mjs +0 -12
- package/esm2022/search-filter/text/text-search-filter.component.mjs +0 -19
- package/esm2022/search-filter/text/text-search-filter.model.mjs +0 -12
- package/esm2022/spinner/enigmatry-entry-components-spinner.mjs +0 -5
- package/esm2022/spinner/entry-spinner/spinner.component.mjs +0 -81
- package/esm2022/spinner/public-api.mjs +0 -3
- package/esm2022/spinner/spinner-overlay-container.mjs +0 -42
- package/esm2022/spinner/spinner.module.mjs +0 -32
- package/esm2022/table/components/entry-cell/entry-cell.component.mjs +0 -23
- package/esm2022/table/components/entry-cell-context-menu/entry-cell-context-menu.component.mjs +0 -42
- package/esm2022/table/components/entry-cell-formatted-value/entry-cell-formatted-value.component.mjs +0 -25
- package/esm2022/table/components/entry-table/entry-table.component.mjs +0 -251
- package/esm2022/table/components/index.mjs +0 -5
- package/esm2022/table/enigmatry-entry-components-table.mjs +0 -5
- package/esm2022/table/entry-table.module.mjs +0 -84
- package/esm2022/table/interfaces/cell-template.mjs +0 -2
- package/esm2022/table/interfaces/column-def.mjs +0 -2
- package/esm2022/table/interfaces/column-sort-prop.mjs +0 -2
- package/esm2022/table/interfaces/column-type-parameter.mjs +0 -2
- package/esm2022/table/interfaces/column-type.mjs +0 -2
- package/esm2022/table/interfaces/context-menu-item.mjs +0 -2
- package/esm2022/table/interfaces/entry-table-config.mjs +0 -45
- package/esm2022/table/interfaces/index.mjs +0 -13
- package/esm2022/table/interfaces/paged-query.mjs +0 -37
- package/esm2022/table/interfaces/pagination.mjs +0 -2
- package/esm2022/table/interfaces/row-class-formatter.mjs +0 -2
- package/esm2022/table/interfaces/row-context-menu-formatter.mjs +0 -2
- package/esm2022/table/interfaces/row-selection-formatter.mjs +0 -2
- package/esm2022/table/public-api.mjs +0 -4
- package/esm2022/validation/enigmatry-entry-components-validation.mjs +0 -5
- package/esm2022/validation/entry-display-control-validation.directive.mjs +0 -63
- package/esm2022/validation/entry-form-errors.component.mjs +0 -41
- package/esm2022/validation/entry-validation-config.model.mjs +0 -24
- package/esm2022/validation/entry-validation.mjs +0 -51
- package/esm2022/validation/entry-validation.module.mjs +0 -40
- package/esm2022/validation/public-api.mjs +0 -6
- package/esm2022/validation/validation-problem-details.interface.mjs +0 -2
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from './entry-date-time-adapter';
|
|
2
|
-
export * from './entry-date-time-formats';
|
|
3
|
-
export * from './entry-time-adapter';
|
|
4
|
-
export * from './native-time-adapter';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvY29tbW9uL2RhdGUtdGltZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lbnRyeS1kYXRlLXRpbWUtYWRhcHRlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vZW50cnktZGF0ZS10aW1lLWZvcm1hdHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2VudHJ5LXRpbWUtYWRhcHRlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbmF0aXZlLXRpbWUtYWRhcHRlcic7XHJcbiJdfQ==
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { Injectable } from "@angular/core";
|
|
2
|
-
import { EntryTimeAdapter } from "./entry-time-adapter";
|
|
3
|
-
import { defaultDateTimeFormats, ENTRY_MAT_DATE_TIME_FORMATS } from "./entry-date-time-formats";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class EntryNativeTimeAdapter extends EntryTimeAdapter {
|
|
6
|
-
getHours(date) {
|
|
7
|
-
return date?.getHours();
|
|
8
|
-
}
|
|
9
|
-
getMinutes(date) {
|
|
10
|
-
return date?.getMinutes();
|
|
11
|
-
}
|
|
12
|
-
getSeconds(date) {
|
|
13
|
-
return date?.getSeconds();
|
|
14
|
-
}
|
|
15
|
-
setTime(date, hours, minutes, seconds) {
|
|
16
|
-
date?.setHours(hours, minutes, seconds, 0);
|
|
17
|
-
return date;
|
|
18
|
-
}
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EntryNativeTimeAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
20
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EntryNativeTimeAdapter }); }
|
|
21
|
-
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EntryNativeTimeAdapter, decorators: [{
|
|
23
|
-
type: Injectable
|
|
24
|
-
}] });
|
|
25
|
-
export function provideEntryNativeTimeAdapter(dateTimeFormats = defaultDateTimeFormats) {
|
|
26
|
-
return [
|
|
27
|
-
{ provide: EntryTimeAdapter, useClass: EntryNativeTimeAdapter },
|
|
28
|
-
{ provide: ENTRY_MAT_DATE_TIME_FORMATS, useValue: dateTimeFormats }
|
|
29
|
-
];
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLXRpbWUtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZW50cnktY29tcG9uZW50cy9jb21tb24vZGF0ZS10aW1lL25hdGl2ZS10aW1lLWFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQXdCLHNCQUFzQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBR3RILE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBc0I7SUFFaEUsUUFBUSxDQUFDLElBQVU7UUFDakIsT0FBTyxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFVO1FBQ25CLE9BQU8sSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBVTtRQUNuQixPQUFPLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsT0FBTyxDQUFDLElBQVUsRUFBRSxLQUFhLEVBQUUsT0FBZSxFQUFFLE9BQWU7UUFDakUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7K0dBakJVLHNCQUFzQjttSEFBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVOztBQXFCWCxNQUFNLFVBQVUsNkJBQTZCLENBQUMsa0JBQXdDLHNCQUFzQjtJQUMxRyxPQUFPO1FBQ0wsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFO1FBQy9ELEVBQUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUU7S0FDcEUsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBQcm92aWRlciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBFbnRyeVRpbWVBZGFwdGVyIH0gZnJvbSBcIi4vZW50cnktdGltZS1hZGFwdGVyXCI7XG5pbXBvcnQgeyBFbnRyeURhdGVUaW1lRm9ybWF0cywgZGVmYXVsdERhdGVUaW1lRm9ybWF0cywgRU5UUllfTUFUX0RBVEVfVElNRV9GT1JNQVRTIH0gZnJvbSBcIi4vZW50cnktZGF0ZS10aW1lLWZvcm1hdHNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEVudHJ5TmF0aXZlVGltZUFkYXB0ZXIgZXh0ZW5kcyBFbnRyeVRpbWVBZGFwdGVyPERhdGU+IHtcblxuICBnZXRIb3VycyhkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZT8uZ2V0SG91cnMoKTtcbiAgfVxuXG4gIGdldE1pbnV0ZXMoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGU/LmdldE1pbnV0ZXMoKTtcbiAgfVxuXG4gIGdldFNlY29uZHMoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGU/LmdldFNlY29uZHMoKTtcbiAgfVxuXG4gIHNldFRpbWUoZGF0ZTogRGF0ZSwgaG91cnM6IG51bWJlciwgbWludXRlczogbnVtYmVyLCBzZWNvbmRzOiBudW1iZXIpOiBEYXRlIHtcbiAgICBkYXRlPy5zZXRIb3Vycyhob3VycywgbWludXRlcywgc2Vjb25kcywgMCk7XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVFbnRyeU5hdGl2ZVRpbWVBZGFwdGVyKGRhdGVUaW1lRm9ybWF0czogRW50cnlEYXRlVGltZUZvcm1hdHMgPSBkZWZhdWx0RGF0ZVRpbWVGb3JtYXRzKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAgeyBwcm92aWRlOiBFbnRyeVRpbWVBZGFwdGVyLCB1c2VDbGFzczogRW50cnlOYXRpdmVUaW1lQWRhcHRlciB9LFxuICAgIHsgcHJvdmlkZTogRU5UUllfTUFUX0RBVEVfVElNRV9GT1JNQVRTLCB1c2VWYWx1ZTogZGF0ZVRpbWVGb3JtYXRzIH1cbiAgXVxufSJdfQ==
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import { Subject, fromEvent, timer } from 'rxjs';
|
|
3
|
-
import { takeUntil } from 'rxjs/operators';
|
|
4
|
-
import { NG_VALID_CLASS } from '../constants';
|
|
5
|
-
import { coerceNumberProperty } from '@angular/cdk/coercion';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* Auto disable button after click or submit with entry-auto-disable directive.
|
|
9
|
-
* Directive is applied to 'button[entry-auto-disable]:not([disabled])'
|
|
10
|
-
* Default auto disable interval is 2000ms (2sec)
|
|
11
|
-
*
|
|
12
|
-
* Usage
|
|
13
|
-
* <button mat-button entry-submit-button entry-auto-disable type="submit">Submit</button>
|
|
14
|
-
* or with auto disabled interval in milliseconds
|
|
15
|
-
* <button mat-button entry-submit-button entry-auto-disable="5000" type="submit">Submit</button>
|
|
16
|
-
*/
|
|
17
|
-
export class AutoDisableButtonDirective {
|
|
18
|
-
constructor(elementRef) {
|
|
19
|
-
this.elementRef = elementRef;
|
|
20
|
-
this._destroy$ = new Subject();
|
|
21
|
-
this._disableIntervalInMs = 2000;
|
|
22
|
-
}
|
|
23
|
-
get disableIntervalInMs() {
|
|
24
|
-
return this._disableIntervalInMs;
|
|
25
|
-
}
|
|
26
|
-
set disableIntervalInMs(value) {
|
|
27
|
-
this._disableIntervalInMs = coerceNumberProperty(value, 2000);
|
|
28
|
-
}
|
|
29
|
-
ngOnInit() {
|
|
30
|
-
const button = this.elementRef.nativeElement;
|
|
31
|
-
const isTypeSubmit = button.getAttribute('type') === 'submit';
|
|
32
|
-
const form = button.closest('form');
|
|
33
|
-
if (isTypeSubmit && form) {
|
|
34
|
-
// listen to form submit event
|
|
35
|
-
fromEvent(form, 'submit')
|
|
36
|
-
.pipe(takeUntil(this._destroy$))
|
|
37
|
-
.subscribe(_ => {
|
|
38
|
-
if (form.matches(NG_VALID_CLASS)) {
|
|
39
|
-
this.disableButton(this._disableIntervalInMs);
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
// otherwise listen to click event
|
|
45
|
-
fromEvent(button, 'click')
|
|
46
|
-
.pipe(takeUntil(this._destroy$))
|
|
47
|
-
.subscribe(_ => this.disableButton(this._disableIntervalInMs));
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
ngOnDestroy() {
|
|
51
|
-
this._destroy$.next();
|
|
52
|
-
this._destroy$.complete();
|
|
53
|
-
}
|
|
54
|
-
disableButton(disablePeriodInMs) {
|
|
55
|
-
const button = this.elementRef.nativeElement;
|
|
56
|
-
button.disabled = true;
|
|
57
|
-
timer(disablePeriodInMs)
|
|
58
|
-
.pipe(takeUntil(this._destroy$))
|
|
59
|
-
.subscribe(() => button.disabled = false);
|
|
60
|
-
}
|
|
61
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutoDisableButtonDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
62
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: AutoDisableButtonDirective, isStandalone: true, selector: "button[entry-auto-disable]:not([disabled])", inputs: { disableIntervalInMs: ["entry-auto-disable", "disableIntervalInMs"] }, ngImport: i0 }); }
|
|
63
|
-
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutoDisableButtonDirective, decorators: [{
|
|
65
|
-
type: Directive,
|
|
66
|
-
args: [{
|
|
67
|
-
standalone: true,
|
|
68
|
-
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
69
|
-
selector: 'button[entry-auto-disable]:not([disabled])'
|
|
70
|
-
}]
|
|
71
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { disableIntervalInMs: [{
|
|
72
|
-
type: Input,
|
|
73
|
-
args: ['entry-auto-disable']
|
|
74
|
-
}] } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1kaXNhYmxlLWJ1dHRvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvY29tbW9uL2RpcmVjdGl2ZXMvYXV0by1kaXNhYmxlLWJ1dHRvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQWUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFMUU7Ozs7Ozs7OztHQVNHO0FBTUgsTUFBTSxPQUFPLDBCQUEwQjtJQUtyQyxZQUFvQixVQUF5QztRQUF6QyxlQUFVLEdBQVYsVUFBVSxDQUErQjtRQUhyRCxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNoQyx5QkFBb0IsR0FBRyxJQUFJLENBQUM7SUFFNkIsQ0FBQztJQUVsRSxJQUNJLG1CQUFtQjtRQUNyQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBSSxtQkFBbUIsQ0FBQyxLQUFrQjtRQUN4QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDN0MsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxRQUFRLENBQUM7UUFDOUQsTUFBTSxJQUFJLEdBQW9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFckQsSUFBSSxZQUFZLElBQUksSUFBSSxFQUFFLENBQUM7WUFDekIsOEJBQThCO1lBQzlCLFNBQVMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDO2lCQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDL0IsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNiLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO29CQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2dCQUNoRCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO2FBQU0sQ0FBQztZQUNOLGtDQUFrQztZQUNsQyxTQUFTLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztpQkFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQy9CLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxpQkFBeUI7UUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFFN0MsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFFdkIsS0FBSyxDQUFDLGlCQUFpQixDQUFDO2FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQy9CLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7K0dBbERVLDBCQUEwQjttR0FBMUIsMEJBQTBCOzs0RkFBMUIsMEJBQTBCO2tCQUx0QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQiw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSw0Q0FBNEM7aUJBQ3ZEOytFQVNLLG1CQUFtQjtzQkFEdEIsS0FBSzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50LCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTkdfVkFMSURfQ0xBU1MgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgTnVtYmVySW5wdXQsIGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcblxuLyoqXG4gKiBBdXRvIGRpc2FibGUgYnV0dG9uIGFmdGVyIGNsaWNrIG9yIHN1Ym1pdCB3aXRoIGVudHJ5LWF1dG8tZGlzYWJsZSBkaXJlY3RpdmUuXG4gKiBEaXJlY3RpdmUgaXMgYXBwbGllZCB0byAnYnV0dG9uW2VudHJ5LWF1dG8tZGlzYWJsZV06bm90KFtkaXNhYmxlZF0pJ1xuICogRGVmYXVsdCBhdXRvIGRpc2FibGUgaW50ZXJ2YWwgaXMgMjAwMG1zICgyc2VjKVxuICpcbiAqIFVzYWdlXG4gKiA8YnV0dG9uIG1hdC1idXR0b24gZW50cnktc3VibWl0LWJ1dHRvbiBlbnRyeS1hdXRvLWRpc2FibGUgdHlwZT1cInN1Ym1pdFwiPlN1Ym1pdDwvYnV0dG9uPlxuICogb3Igd2l0aCBhdXRvIGRpc2FibGVkIGludGVydmFsIGluIG1pbGxpc2Vjb25kc1xuICogPGJ1dHRvbiBtYXQtYnV0dG9uIGVudHJ5LXN1Ym1pdC1idXR0b24gZW50cnktYXV0by1kaXNhYmxlPVwiNTAwMFwiIHR5cGU9XCJzdWJtaXRcIj5TdWJtaXQ8L2J1dHRvbj5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnYnV0dG9uW2VudHJ5LWF1dG8tZGlzYWJsZV06bm90KFtkaXNhYmxlZF0pJ1xufSlcbmV4cG9ydCBjbGFzcyBBdXRvRGlzYWJsZUJ1dHRvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgX2Rpc2FibGVJbnRlcnZhbEluTXMgPSAyMDAwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD4pIHsgfVxuXG4gIEBJbnB1dCgnZW50cnktYXV0by1kaXNhYmxlJylcbiAgZ2V0IGRpc2FibGVJbnRlcnZhbEluTXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVJbnRlcnZhbEluTXM7XG4gIH1cbiAgc2V0IGRpc2FibGVJbnRlcnZhbEluTXModmFsdWU6IE51bWJlcklucHV0KSB7XG4gICAgdGhpcy5fZGlzYWJsZUludGVydmFsSW5NcyA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlLCAyMDAwKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGJ1dHRvbiA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGlzVHlwZVN1Ym1pdCA9IGJ1dHRvbi5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSA9PT0gJ3N1Ym1pdCc7XG4gICAgY29uc3QgZm9ybTogSFRNTEZvcm1FbGVtZW50ID0gYnV0dG9uLmNsb3Nlc3QoJ2Zvcm0nKTtcblxuICAgIGlmIChpc1R5cGVTdWJtaXQgJiYgZm9ybSkge1xuICAgICAgLy8gbGlzdGVuIHRvIGZvcm0gc3VibWl0IGV2ZW50XG4gICAgICBmcm9tRXZlbnQoZm9ybSwgJ3N1Ym1pdCcpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoXyA9PiB7XG4gICAgICAgICAgaWYgKGZvcm0ubWF0Y2hlcyhOR19WQUxJRF9DTEFTUykpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZUJ1dHRvbih0aGlzLl9kaXNhYmxlSW50ZXJ2YWxJbk1zKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBvdGhlcndpc2UgbGlzdGVuIHRvIGNsaWNrIGV2ZW50XG4gICAgICBmcm9tRXZlbnQoYnV0dG9uLCAnY2xpY2snKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKF8gPT4gdGhpcy5kaXNhYmxlQnV0dG9uKHRoaXMuX2Rpc2FibGVJbnRlcnZhbEluTXMpKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzYWJsZUJ1dHRvbihkaXNhYmxlUGVyaW9kSW5NczogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgYnV0dG9uID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBidXR0b24uZGlzYWJsZWQgPSB0cnVlO1xuXG4gICAgdGltZXIoZGlzYWJsZVBlcmlvZEluTXMpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiBidXR0b24uZGlzYWJsZWQgPSBmYWxzZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export { AutoDisableButtonDirective } from './auto-disable-button.directive';
|
|
2
|
-
export { ScrollToInvalidControlDirective } from './scroll-to-invalid-control.directive';
|
|
3
|
-
export { NoopControlValueAccessorDirective } from './noop-control-value-accessor';
|
|
4
|
-
export { NgControlAccessorDirective } from './ng-control-accessor.directive';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvY29tbW9uL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBBdXRvRGlzYWJsZUJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4vYXV0by1kaXNhYmxlLWJ1dHRvbi5kaXJlY3RpdmUnO1xyXG5leHBvcnQgeyBTY3JvbGxUb0ludmFsaWRDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi9zY3JvbGwtdG8taW52YWxpZC1jb250cm9sLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7IE5vb3BDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJy4vbm9vcC1jb250cm9sLXZhbHVlLWFjY2Vzc29yJztcclxuZXhwb3J0IHsgTmdDb250cm9sQWNjZXNzb3JEaXJlY3RpdmUgfSBmcm9tICcuL25nLWNvbnRyb2wtYWNjZXNzb3IuZGlyZWN0aXZlJztcclxuIl19
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Directive, inject } from "@angular/core";
|
|
2
|
-
import { FormControlDirective, FormControlName, NgControl, NgModel, UntypedFormControl } from "@angular/forms";
|
|
3
|
-
import { Subject, takeUntil } from "rxjs";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class NgControlAccessorDirective {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.ngControl = inject(NgControl, {
|
|
8
|
-
optional: true,
|
|
9
|
-
self: true
|
|
10
|
-
});
|
|
11
|
-
this.destroy$ = new Subject();
|
|
12
|
-
}
|
|
13
|
-
ngOnInit() {
|
|
14
|
-
if (this.ngControl instanceof FormControlDirective ||
|
|
15
|
-
this.ngControl instanceof FormControlName ||
|
|
16
|
-
this.ngControl instanceof NgModel) {
|
|
17
|
-
this.control = this.ngControl.control;
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
this.control = new UntypedFormControl();
|
|
21
|
-
}
|
|
22
|
-
if (this.ngControl instanceof NgModel) {
|
|
23
|
-
const ngModel = this.ngControl;
|
|
24
|
-
ngModel.control.valueChanges
|
|
25
|
-
.pipe(takeUntil(this.destroy$))
|
|
26
|
-
.subscribe(newValue => {
|
|
27
|
-
if (ngModel.model !== newValue || ngModel.viewModel !== newValue) {
|
|
28
|
-
ngModel.viewToModelUpdate(newValue);
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
ngOnDestroy() {
|
|
34
|
-
this.destroy$.next();
|
|
35
|
-
this.destroy$.complete();
|
|
36
|
-
}
|
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgControlAccessorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
38
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NgControlAccessorDirective, isStandalone: true, ngImport: i0 }); }
|
|
39
|
-
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgControlAccessorDirective, decorators: [{
|
|
41
|
-
type: Directive,
|
|
42
|
-
args: [{
|
|
43
|
-
standalone: true
|
|
44
|
-
}]
|
|
45
|
-
}] });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY29udHJvbC1hY2Nlc3Nvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvY29tbW9uL2RpcmVjdGl2ZXMvbmctY29udHJvbC1hY2Nlc3Nvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9HLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUsxQyxNQUFNLE9BQU8sMEJBQTBCO0lBSHZDO1FBTUksY0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUU7WUFDMUIsUUFBUSxFQUFFLElBQUk7WUFDZCxJQUFJLEVBQUUsSUFBSTtTQUNiLENBQUMsQ0FBQztRQUVLLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0tBMkIxQztJQXpCRyxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsU0FBUyxZQUFZLG9CQUFvQjtZQUM5QyxJQUFJLENBQUMsU0FBUyxZQUFZLGVBQWU7WUFDekMsSUFBSSxDQUFDLFNBQVMsWUFBWSxPQUFPLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1FBQzFDLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDNUMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsWUFBWSxPQUFPLEVBQUUsQ0FBQztZQUNwQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBb0IsQ0FBQztZQUMxQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVk7aUJBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUM5QixTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2xCLElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDL0QsT0FBTyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN4QyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUE7UUFDVixDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQzsrR0FsQ1EsMEJBQTBCO21HQUExQiwwQkFBMEI7OzRGQUExQiwwQkFBMEI7a0JBSHRDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkRlc3Ryb3ksIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sRGlyZWN0aXZlLCBGb3JtQ29udHJvbE5hbWUsIE5nQ29udHJvbCwgTmdNb2RlbCwgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE5nQ29udHJvbEFjY2Vzc29yRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICAgIGNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbDtcblxuICAgIG5nQ29udHJvbCA9IGluamVjdChOZ0NvbnRyb2wsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgICAgIHNlbGY6IHRydWVcbiAgICB9KTtcblxuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sRGlyZWN0aXZlIHx8XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sTmFtZSB8fFxuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wgaW5zdGFuY2VvZiBOZ01vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLm5nQ29udHJvbC5jb250cm9sO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sIGluc3RhbmNlb2YgTmdNb2RlbCkge1xuICAgICAgICAgICAgY29uc3QgbmdNb2RlbCA9IHRoaXMubmdDb250cm9sIGFzIE5nTW9kZWw7XG4gICAgICAgICAgICBuZ01vZGVsLmNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUobmV3VmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAobmdNb2RlbC5tb2RlbCAhPT0gbmV3VmFsdWUgfHwgbmdNb2RlbC52aWV3TW9kZWwgIT09IG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZ01vZGVsLnZpZXdUb01vZGVsVXBkYXRlKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG59Il19
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
2
|
-
import { Directive } from "@angular/core";
|
|
3
|
-
import { NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class NoopControlValueAccessorDirective {
|
|
6
|
-
writeValue(_obj) { }
|
|
7
|
-
registerOnChange(_fn) { }
|
|
8
|
-
registerOnTouched(_fn) { }
|
|
9
|
-
setDisabledState(_isDisabled) { }
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NoopControlValueAccessorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
11
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NoopControlValueAccessorDirective, isStandalone: true, providers: [
|
|
12
|
-
{
|
|
13
|
-
provide: NG_VALUE_ACCESSOR,
|
|
14
|
-
multi: true,
|
|
15
|
-
useExisting: NoopControlValueAccessorDirective
|
|
16
|
-
}
|
|
17
|
-
], ngImport: i0 }); }
|
|
18
|
-
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NoopControlValueAccessorDirective, decorators: [{
|
|
20
|
-
type: Directive,
|
|
21
|
-
args: [{
|
|
22
|
-
standalone: true,
|
|
23
|
-
providers: [
|
|
24
|
-
{
|
|
25
|
-
provide: NG_VALUE_ACCESSOR,
|
|
26
|
-
multi: true,
|
|
27
|
-
useExisting: NoopControlValueAccessorDirective
|
|
28
|
-
}
|
|
29
|
-
]
|
|
30
|
-
}]
|
|
31
|
-
}] });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9vcC1jb250cm9sLXZhbHVlLWFjY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9lbnRyeS1jb21wb25lbnRzL2NvbW1vbi9kaXJlY3RpdmVzL25vb3AtY29udHJvbC12YWx1ZS1hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5REFBeUQ7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBWXpFLE1BQU0sT0FBTyxpQ0FBaUM7SUFDMUMsVUFBVSxDQUFDLElBQVMsSUFBVSxDQUFDO0lBQy9CLGdCQUFnQixDQUFDLEdBQVEsSUFBVSxDQUFDO0lBQ3BDLGlCQUFpQixDQUFDLEdBQVEsSUFBVSxDQUFDO0lBQ3JDLGdCQUFnQixDQUFFLFdBQW9CLElBQVUsQ0FBQzsrR0FKeEMsaUNBQWlDO21HQUFqQyxpQ0FBaUMsaUNBUi9CO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLGlDQUFpQzthQUNqRDtTQUNKOzs0RkFFUSxpQ0FBaUM7a0JBVjdDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLG1DQUFtQzt5QkFDakQ7cUJBQ0o7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24gKi9cbmltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBOb29wQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTm9vcENvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIHdyaXRlVmFsdWUoX29iajogYW55KTogdm9pZCB7IH1cbiAgICByZWdpc3Rlck9uQ2hhbmdlKF9mbjogYW55KTogdm9pZCB7IH1cbiAgICByZWdpc3Rlck9uVG91Y2hlZChfZm46IGFueSk6IHZvaWQgeyB9XG4gICAgc2V0RGlzYWJsZWRTdGF0ZT8oX2lzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHsgfVxufSJdfQ==
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Directive, Self } from '@angular/core';
|
|
2
|
-
import { Subject, fromEvent } from 'rxjs';
|
|
3
|
-
import { takeUntil } from 'rxjs/operators';
|
|
4
|
-
import { NG_INVALID_CLASS } from '../constants';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/forms";
|
|
7
|
-
/**
|
|
8
|
-
* Scroll to first invalid control when form is submitted.
|
|
9
|
-
* Directive is applied to 'form[formGroup],form[ngForm]' (reactive or template driven forms)
|
|
10
|
-
*/
|
|
11
|
-
export class ScrollToInvalidControlDirective {
|
|
12
|
-
constructor(form, elementRef) {
|
|
13
|
-
this.form = form;
|
|
14
|
-
this.elementRef = elementRef;
|
|
15
|
-
this.destroy$ = new Subject();
|
|
16
|
-
}
|
|
17
|
-
ngOnInit() {
|
|
18
|
-
fromEvent(this.elementRef.nativeElement, 'submit')
|
|
19
|
-
.pipe(takeUntil(this.destroy$))
|
|
20
|
-
.subscribe(_ => {
|
|
21
|
-
if (this.form.invalid) {
|
|
22
|
-
this.scrollToInvalidControl();
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
ngOnDestroy() {
|
|
27
|
-
this.destroy$.next();
|
|
28
|
-
this.destroy$.complete();
|
|
29
|
-
}
|
|
30
|
-
scrollToInvalidControl() {
|
|
31
|
-
const firstInvalidControl = this.elementRef.nativeElement.querySelector(NG_INVALID_CLASS);
|
|
32
|
-
if (firstInvalidControl) {
|
|
33
|
-
firstInvalidControl.scrollIntoView({
|
|
34
|
-
behavior: 'smooth',
|
|
35
|
-
block: 'center' // vertical alignment
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScrollToInvalidControlDirective, deps: [{ token: i1.ControlContainer, self: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
40
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ScrollToInvalidControlDirective, isStandalone: true, selector: "form[formGroup],form[ngForm]", ngImport: i0 }); }
|
|
41
|
-
}
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScrollToInvalidControlDirective, decorators: [{
|
|
43
|
-
type: Directive,
|
|
44
|
-
args: [{
|
|
45
|
-
standalone: true,
|
|
46
|
-
selector: 'form[formGroup],form[ngForm]'
|
|
47
|
-
}]
|
|
48
|
-
}], ctorParameters: () => [{ type: i1.ControlContainer, decorators: [{
|
|
49
|
-
type: Self
|
|
50
|
-
}] }, { type: i0.ElementRef }] });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLXRvLWludmFsaWQtY29udHJvbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvY29tbW9uL2RpcmVjdGl2ZXMvc2Nyb2xsLXRvLWludmFsaWQtY29udHJvbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUMsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQUVoRDs7O0dBR0c7QUFLSCxNQUFNLE9BQU8sK0JBQStCO0lBSTFDLFlBQ2tCLElBQXNCLEVBQzlCLFVBQXVDO1FBRC9CLFNBQUksR0FBSixJQUFJLENBQWtCO1FBQzlCLGVBQVUsR0FBVixVQUFVLENBQTZCO1FBSnpDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBSWMsQ0FBQztJQUV0RCxRQUFRO1FBQ04sU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQzthQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDYixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ2hDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsTUFBTSxtQkFBbUIsR0FDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFaEUsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1lBQ3hCLG1CQUFtQixDQUFDLGNBQWMsQ0FBQztnQkFDakMsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLEtBQUssRUFBRSxRQUFRLENBQUUscUJBQXFCO2FBQ3ZDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOytHQWpDVSwrQkFBK0I7bUdBQS9CLCtCQUErQjs7NEZBQS9CLCtCQUErQjtrQkFKM0MsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDhCQUE4QjtpQkFDekM7OzBCQU1JLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE5HX0lOVkFMSURfQ0xBU1MgfSBmcm9tICcuLi9jb25zdGFudHMnO1xyXG5cclxuLyoqXHJcbiAqIFNjcm9sbCB0byBmaXJzdCBpbnZhbGlkIGNvbnRyb2wgd2hlbiBmb3JtIGlzIHN1Ym1pdHRlZC5cclxuICogRGlyZWN0aXZlIGlzIGFwcGxpZWQgdG8gJ2Zvcm1bZm9ybUdyb3VwXSxmb3JtW25nRm9ybV0nIChyZWFjdGl2ZSBvciB0ZW1wbGF0ZSBkcml2ZW4gZm9ybXMpXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHNlbGVjdG9yOiAnZm9ybVtmb3JtR3JvdXBdLGZvcm1bbmdGb3JtXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNjcm9sbFRvSW52YWxpZENvbnRyb2xEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBTZWxmKCkgcHJpdmF0ZSBmb3JtOiBDb250cm9sQ29udGFpbmVyLFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxGb3JtRWxlbWVudD4pIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGZyb21FdmVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3N1Ym1pdCcpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZShfID0+IHtcclxuICAgICAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcclxuICAgICAgICAgIHRoaXMuc2Nyb2xsVG9JbnZhbGlkQ29udHJvbCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzY3JvbGxUb0ludmFsaWRDb250cm9sKCkge1xyXG4gICAgY29uc3QgZmlyc3RJbnZhbGlkQ29udHJvbDogSFRNTEVsZW1lbnQgPVxyXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKE5HX0lOVkFMSURfQ0xBU1MpO1xyXG5cclxuICAgIGlmIChmaXJzdEludmFsaWRDb250cm9sKSB7XHJcbiAgICAgIGZpcnN0SW52YWxpZENvbnRyb2wuc2Nyb2xsSW50b1ZpZXcoe1xyXG4gICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcclxuICAgICAgICBibG9jazogJ2NlbnRlcicgIC8vIHZlcnRpY2FsIGFsaWdubWVudFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5pZ21hdHJ5LWVudHJ5LWNvbXBvbmVudHMtY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9lbnRyeS1jb21wb25lbnRzL2NvbW1vbi9lbmlnbWF0cnktZW50cnktY29tcG9uZW50cy1jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* abstract class EventManagerPlugin will be exposed in the public api
|
|
3
|
-
* https://github.com/angular/angular/pull/49969
|
|
4
|
-
*
|
|
5
|
-
* Until then creating it from reference
|
|
6
|
-
* https://github.com/angular/angular/blob/main/packages/platform-browser/src/dom/events/event_manager.ts#L93
|
|
7
|
-
*
|
|
8
|
-
* How to create custom event modifiers
|
|
9
|
-
* https://github.com/Tinkoff/ng-event-plugins,
|
|
10
|
-
* https://github.com/angular/angular/blob/main/packages/platform-browser/src/dom/events/key_events.ts
|
|
11
|
-
* https://netbasal.com/lifting-the-veil-insights-into-angulars-eventmanagerplugin-ed9d14cbb31a
|
|
12
|
-
*/
|
|
13
|
-
export class EventManagerPlugin {
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Entry event plugin base class
|
|
17
|
-
*/
|
|
18
|
-
export class EntryEventManagerPlugin extends EventManagerPlugin {
|
|
19
|
-
/** return `true` for every event name that has specified modifier */
|
|
20
|
-
supports(eventName) {
|
|
21
|
-
return eventName.includes(this.modifier);
|
|
22
|
-
}
|
|
23
|
-
/** unwrap params e.g. (click.debounce.500) => ['debounce', 500] */
|
|
24
|
-
unwrapParams(eventName) {
|
|
25
|
-
return eventName
|
|
26
|
-
.substring(eventName.indexOf(this.modifier))
|
|
27
|
-
.split('.')
|
|
28
|
-
.filter(x => !!x);
|
|
29
|
-
}
|
|
30
|
-
/** get event name e.g. (click.debounce.500) => click */
|
|
31
|
-
unwrapEventName(eventName) {
|
|
32
|
-
return eventName.substring(0, eventName.indexOf(this.modifier));
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9lbnRyeS1jb21wb25lbnRzL2NvbW1vbi9ldmVudC1wbHVnaW5zL2Fic3RyYWN0LnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sT0FBZ0Isa0JBQWtCO0NBbUJ2QztBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFnQix1QkFBd0IsU0FBUSxrQkFBa0I7SUFHdEUscUVBQXFFO0lBQ3JFLFFBQVEsQ0FBQyxTQUFpQjtRQUN4QixPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxtRUFBbUU7SUFDbkUsWUFBWSxDQUFDLFNBQWlCO1FBQzVCLE9BQU8sU0FBUzthQUNiLFNBQVMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMzQyxLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1YsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCx3REFBd0Q7SUFDeEQsZUFBZSxDQUFDLFNBQWlCO1FBQy9CLE9BQU8sU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudE1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbi8qKlxyXG4gKiBhYnN0cmFjdCBjbGFzcyBFdmVudE1hbmFnZXJQbHVnaW4gd2lsbCBiZSBleHBvc2VkIGluIHRoZSBwdWJsaWMgYXBpXHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvcHVsbC80OTk2OVxyXG4gKlxyXG4gKiBVbnRpbCB0aGVuIGNyZWF0aW5nIGl0IGZyb20gcmVmZXJlbmNlXHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi9tYWluL3BhY2thZ2VzL3BsYXRmb3JtLWJyb3dzZXIvc3JjL2RvbS9ldmVudHMvZXZlbnRfbWFuYWdlci50cyNMOTNcclxuICpcclxuICogSG93IHRvIGNyZWF0ZSBjdXN0b20gZXZlbnQgbW9kaWZpZXJzXHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9UaW5rb2ZmL25nLWV2ZW50LXBsdWdpbnMsXHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi9tYWluL3BhY2thZ2VzL3BsYXRmb3JtLWJyb3dzZXIvc3JjL2RvbS9ldmVudHMva2V5X2V2ZW50cy50c1xyXG4gKiBodHRwczovL25ldGJhc2FsLmNvbS9saWZ0aW5nLXRoZS12ZWlsLWluc2lnaHRzLWludG8tYW5ndWxhcnMtZXZlbnRtYW5hZ2VycGx1Z2luLWVkOWQxNGNiYjMxYVxyXG4gKi9cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEV2ZW50TWFuYWdlclBsdWdpbiB7XHJcblxyXG4gIC8vIFVzaW5nIG5vbi1udWxsIGFzc2VydGlvbiBiZWNhdXNlIGl0J3Mgc2V0IGJ5IEV2ZW50TWFuYWdlcidzIGNvbnN0cnVjdG9yXHJcbiAgbWFuYWdlciE6IEV2ZW50TWFuYWdlcjtcclxuXHJcbiAgLyoqIFNob3VsZCByZXR1cm4gYHRydWVgIGZvciBldmVyeSBldmVudCBuYW1lIHRoYXQgc2hvdWxkIGJlIHN1cHBvcnRlZCBieSB0aGlzIHBsdWdpbiAqL1xyXG4gIGFic3RyYWN0IHN1cHBvcnRzKGV2ZW50TmFtZTogc3RyaW5nKTogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXJzIGEgaGFuZGxlciBmb3IgYSBzcGVjaWZpYyBlbGVtZW50IGFuZCBldmVudC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBlbGVtZW50IFRoZSBIVE1MIGVsZW1lbnQgdG8gcmVjZWl2ZSBldmVudCBub3RpZmljYXRpb25zLlxyXG4gICAqIEBwYXJhbSBldmVudE5hbWUgVGhlIG5hbWUgb2YgdGhlIGV2ZW50IHRvIGxpc3RlbiBmb3IuXHJcbiAgICogQHBhcmFtIGhhbmRsZXIgQSBmdW5jdGlvbiB0byBjYWxsIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBvY2N1cnMuIFJlY2VpdmVzIHRoZVxyXG4gICAqIGV2ZW50IG9iamVjdCBhcyBhbiBhcmd1bWVudC5cclxuICAgKiBAcmV0dXJucyAgQSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlbW92ZSB0aGUgaGFuZGxlci5cclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xyXG4gIGFic3RyYWN0IGFkZEV2ZW50TGlzdGVuZXIoZWxlbWVudDogSFRNTEVsZW1lbnQsIGV2ZW50TmFtZTogc3RyaW5nLCBoYW5kbGVyOiBGdW5jdGlvbik6IEZ1bmN0aW9uO1xyXG59XHJcblxyXG4vKipcclxuICogRW50cnkgZXZlbnQgcGx1Z2luIGJhc2UgY2xhc3NcclxuICovXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbnRyeUV2ZW50TWFuYWdlclBsdWdpbiBleHRlbmRzIEV2ZW50TWFuYWdlclBsdWdpbiB7XHJcbiAgYWJzdHJhY3QgbW9kaWZpZXI6IHN0cmluZztcclxuXHJcbiAgLyoqIHJldHVybiBgdHJ1ZWAgZm9yIGV2ZXJ5IGV2ZW50IG5hbWUgdGhhdCBoYXMgc3BlY2lmaWVkIG1vZGlmaWVyICovXHJcbiAgc3VwcG9ydHMoZXZlbnROYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBldmVudE5hbWUuaW5jbHVkZXModGhpcy5tb2RpZmllcik7XHJcbiAgfVxyXG5cclxuICAvKiogdW53cmFwIHBhcmFtcyBlLmcuIChjbGljay5kZWJvdW5jZS41MDApID0+IFsnZGVib3VuY2UnLCA1MDBdICovXHJcbiAgdW53cmFwUGFyYW1zKGV2ZW50TmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIGV2ZW50TmFtZVxyXG4gICAgICAuc3Vic3RyaW5nKGV2ZW50TmFtZS5pbmRleE9mKHRoaXMubW9kaWZpZXIpKVxyXG4gICAgICAuc3BsaXQoJy4nKVxyXG4gICAgICAuZmlsdGVyKHggPT4gISF4KTtcclxuICB9XHJcblxyXG4gIC8qKiBnZXQgZXZlbnQgbmFtZSBlLmcuIChjbGljay5kZWJvdW5jZS41MDApID0+IGNsaWNrICovXHJcbiAgdW53cmFwRXZlbnROYW1lKGV2ZW50TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBldmVudE5hbWUuc3Vic3RyaW5nKDAsIGV2ZW50TmFtZS5pbmRleE9mKHRoaXMubW9kaWZpZXIpKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { EntryEventManagerPlugin } from './abstract.plugin';
|
|
3
|
-
import { debounce } from 'lodash-es';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
/**
|
|
6
|
-
* Provides event plugin for debouncing events.
|
|
7
|
-
*
|
|
8
|
-
* How to use:
|
|
9
|
-
* <button (click.debounce)="doSomething($event)">
|
|
10
|
-
* <input (keyup.debounce.500)="doSomething($event)">
|
|
11
|
-
*/
|
|
12
|
-
export class DebounceEventPlugin extends EntryEventManagerPlugin {
|
|
13
|
-
constructor() {
|
|
14
|
-
super(...arguments);
|
|
15
|
-
this.modifier = '.debounce';
|
|
16
|
-
}
|
|
17
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
18
|
-
addEventListener(element, eventName, originalHandler) {
|
|
19
|
-
// e.g. (click.debounce.500)
|
|
20
|
-
const [_modifier, milliseconds = 500, option = 'leading'] = this.unwrapParams(eventName);
|
|
21
|
-
// run original handler inside ngZone in which the event occurred
|
|
22
|
-
const innerHandler = (event) => this.manager.getZone().runGuarded(() => originalHandler(event));
|
|
23
|
-
// create debounced handler
|
|
24
|
-
const debouncedHandler = debounce(innerHandler, milliseconds, { leading: option === 'leading', trailing: option === 'trailing' });
|
|
25
|
-
// register event with debounced handler
|
|
26
|
-
return this.manager.addEventListener(element, this.unwrapEventName(eventName), debouncedHandler);
|
|
27
|
-
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DebounceEventPlugin, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
29
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DebounceEventPlugin }); }
|
|
30
|
-
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DebounceEventPlugin, decorators: [{
|
|
32
|
-
type: Injectable
|
|
33
|
-
}] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2UucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9lbnRyeS1jb21wb25lbnRzL2NvbW1vbi9ldmVudC1wbHVnaW5zL2RlYm91bmNlLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBRXJDOzs7Ozs7R0FNRztBQUVILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSx1QkFBdUI7SUFEaEU7O1FBR0UsYUFBUSxHQUFHLFdBQVcsQ0FBQztLQWlCeEI7SUFmQyx3REFBd0Q7SUFDeEQsZ0JBQWdCLENBQUMsT0FBb0IsRUFBRSxTQUFpQixFQUFFLGVBQXlCO1FBQ2pGLDRCQUE0QjtRQUM1QixNQUFNLENBQUMsU0FBUyxFQUFFLFlBQVksR0FBRyxHQUFHLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFekYsaUVBQWlFO1FBQ2pFLE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUVyRywyQkFBMkI7UUFDM0IsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsWUFBWSxFQUFFLFlBQVksRUFDMUQsRUFBRSxPQUFPLEVBQUUsTUFBTSxLQUFLLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFdEUsd0NBQXdDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25HLENBQUM7K0dBbEJVLG1CQUFtQjttSEFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFbnRyeUV2ZW50TWFuYWdlclBsdWdpbiB9IGZyb20gJy4vYWJzdHJhY3QucGx1Z2luJztcclxuaW1wb3J0IHsgZGVib3VuY2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIGV2ZW50IHBsdWdpbiBmb3IgZGVib3VuY2luZyBldmVudHMuXHJcbiAqXHJcbiAqIEhvdyB0byB1c2U6XHJcbiAqIDxidXR0b24gKGNsaWNrLmRlYm91bmNlKT1cImRvU29tZXRoaW5nKCRldmVudClcIj5cclxuICogPGlucHV0IChrZXl1cC5kZWJvdW5jZS41MDApPVwiZG9Tb21ldGhpbmcoJGV2ZW50KVwiPlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGVib3VuY2VFdmVudFBsdWdpbiBleHRlbmRzIEVudHJ5RXZlbnRNYW5hZ2VyUGx1Z2luIHtcclxuXHJcbiAgbW9kaWZpZXIgPSAnLmRlYm91bmNlJztcclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcclxuICBhZGRFdmVudExpc3RlbmVyKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBldmVudE5hbWU6IHN0cmluZywgb3JpZ2luYWxIYW5kbGVyOiBGdW5jdGlvbik6IEZ1bmN0aW9uIHtcclxuICAgIC8vIGUuZy4gKGNsaWNrLmRlYm91bmNlLjUwMClcclxuICAgIGNvbnN0IFtfbW9kaWZpZXIsIG1pbGxpc2Vjb25kcyA9IDUwMCwgb3B0aW9uID0gJ2xlYWRpbmcnXSA9IHRoaXMudW53cmFwUGFyYW1zKGV2ZW50TmFtZSk7XHJcblxyXG4gICAgLy8gcnVuIG9yaWdpbmFsIGhhbmRsZXIgaW5zaWRlIG5nWm9uZSBpbiB3aGljaCB0aGUgZXZlbnQgb2NjdXJyZWRcclxuICAgIGNvbnN0IGlubmVySGFuZGxlciA9IChldmVudDogYW55KSA9PiB0aGlzLm1hbmFnZXIuZ2V0Wm9uZSgpLnJ1bkd1YXJkZWQoKCkgPT4gb3JpZ2luYWxIYW5kbGVyKGV2ZW50KSk7XHJcblxyXG4gICAgLy8gY3JlYXRlIGRlYm91bmNlZCBoYW5kbGVyXHJcbiAgICBjb25zdCBkZWJvdW5jZWRIYW5kbGVyID0gZGVib3VuY2UoaW5uZXJIYW5kbGVyLCBtaWxsaXNlY29uZHMsXHJcbiAgICAgIHsgbGVhZGluZzogb3B0aW9uID09PSAnbGVhZGluZycsIHRyYWlsaW5nOiBvcHRpb24gPT09ICd0cmFpbGluZycgfSk7XHJcblxyXG4gICAgLy8gcmVnaXN0ZXIgZXZlbnQgd2l0aCBkZWJvdW5jZWQgaGFuZGxlclxyXG4gICAgcmV0dXJuIHRoaXMubWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGVsZW1lbnQsIHRoaXMudW53cmFwRXZlbnROYW1lKGV2ZW50TmFtZSksIGRlYm91bmNlZEhhbmRsZXIpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export { ThrottleEventPlugin } from './throttle.plugin';
|
|
2
|
-
export { DebounceEventPlugin } from './debounce.plugin';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvY29tbW9uL2V2ZW50LXBsdWdpbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBUaHJvdHRsZUV2ZW50UGx1Z2luIH0gZnJvbSAnLi90aHJvdHRsZS5wbHVnaW4nO1xyXG5leHBvcnQgeyBEZWJvdW5jZUV2ZW50UGx1Z2luIH0gZnJvbSAnLi9kZWJvdW5jZS5wbHVnaW4nO1xyXG4iXX0=
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { EntryEventManagerPlugin } from './abstract.plugin';
|
|
3
|
-
import { throttle } from 'lodash-es';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
/**
|
|
6
|
-
* Provides event plugin for throttling events.
|
|
7
|
-
*
|
|
8
|
-
* How to use:
|
|
9
|
-
* <button (click.throttle)="doSomething($event)">
|
|
10
|
-
* <input (keyup.throttle.500)="doSomething($event)">
|
|
11
|
-
*/
|
|
12
|
-
export class ThrottleEventPlugin extends EntryEventManagerPlugin {
|
|
13
|
-
constructor() {
|
|
14
|
-
super(...arguments);
|
|
15
|
-
this.modifier = '.throttle';
|
|
16
|
-
}
|
|
17
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
18
|
-
addEventListener(element, eventName, originalHandler) {
|
|
19
|
-
// e.g. (keyup.throttle.500)
|
|
20
|
-
const [_modifier, milliseconds = 500] = this.unwrapParams(eventName);
|
|
21
|
-
// run original handler inside ngZone in which the event occurred
|
|
22
|
-
const innerHandler = (event) => this.manager.getZone().runGuarded(() => originalHandler(event));
|
|
23
|
-
// create throttled handler
|
|
24
|
-
const throttledHandler = throttle(innerHandler, milliseconds);
|
|
25
|
-
// register event with throttled handler
|
|
26
|
-
return this.manager.addEventListener(element, this.unwrapEventName(eventName), throttledHandler);
|
|
27
|
-
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThrottleEventPlugin, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
29
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThrottleEventPlugin }); }
|
|
30
|
-
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThrottleEventPlugin, decorators: [{
|
|
32
|
-
type: Injectable
|
|
33
|
-
}] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3R0bGUucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9lbnRyeS1jb21wb25lbnRzL2NvbW1vbi9ldmVudC1wbHVnaW5zL3Rocm90dGxlLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBRXJDOzs7Ozs7R0FNRztBQUVILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSx1QkFBdUI7SUFEaEU7O1FBR0UsYUFBUSxHQUFHLFdBQVcsQ0FBQztLQWdCeEI7SUFkQyx3REFBd0Q7SUFDeEQsZ0JBQWdCLENBQUMsT0FBb0IsRUFBRSxTQUFpQixFQUFFLGVBQXlCO1FBQ2pGLDRCQUE0QjtRQUM1QixNQUFNLENBQUMsU0FBUyxFQUFFLFlBQVksR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXJFLGlFQUFpRTtRQUNqRSxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFckcsMkJBQTJCO1FBQzNCLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztRQUU5RCx3Q0FBd0M7UUFDeEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDbkcsQ0FBQzsrR0FqQlUsbUJBQW1CO21IQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVudHJ5RXZlbnRNYW5hZ2VyUGx1Z2luIH0gZnJvbSAnLi9hYnN0cmFjdC5wbHVnaW4nO1xyXG5pbXBvcnQgeyB0aHJvdHRsZSB9IGZyb20gJ2xvZGFzaC1lcyc7XHJcblxyXG4vKipcclxuICogUHJvdmlkZXMgZXZlbnQgcGx1Z2luIGZvciB0aHJvdHRsaW5nIGV2ZW50cy5cclxuICpcclxuICogSG93IHRvIHVzZTpcclxuICogPGJ1dHRvbiAoY2xpY2sudGhyb3R0bGUpPVwiZG9Tb21ldGhpbmcoJGV2ZW50KVwiPlxyXG4gKiA8aW5wdXQgKGtleXVwLnRocm90dGxlLjUwMCk9XCJkb1NvbWV0aGluZygkZXZlbnQpXCI+XHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBUaHJvdHRsZUV2ZW50UGx1Z2luIGV4dGVuZHMgRW50cnlFdmVudE1hbmFnZXJQbHVnaW4ge1xyXG5cclxuICBtb2RpZmllciA9ICcudGhyb3R0bGUnO1xyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xyXG4gIGFkZEV2ZW50TGlzdGVuZXIoZWxlbWVudDogSFRNTEVsZW1lbnQsIGV2ZW50TmFtZTogc3RyaW5nLCBvcmlnaW5hbEhhbmRsZXI6IEZ1bmN0aW9uKTogRnVuY3Rpb24ge1xyXG4gICAgLy8gZS5nLiAoa2V5dXAudGhyb3R0bGUuNTAwKVxyXG4gICAgY29uc3QgW19tb2RpZmllciwgbWlsbGlzZWNvbmRzID0gNTAwXSA9IHRoaXMudW53cmFwUGFyYW1zKGV2ZW50TmFtZSk7XHJcblxyXG4gICAgLy8gcnVuIG9yaWdpbmFsIGhhbmRsZXIgaW5zaWRlIG5nWm9uZSBpbiB3aGljaCB0aGUgZXZlbnQgb2NjdXJyZWRcclxuICAgIGNvbnN0IGlubmVySGFuZGxlciA9IChldmVudDogYW55KSA9PiB0aGlzLm1hbmFnZXIuZ2V0Wm9uZSgpLnJ1bkd1YXJkZWQoKCkgPT4gb3JpZ2luYWxIYW5kbGVyKGV2ZW50KSk7XHJcblxyXG4gICAgLy8gY3JlYXRlIHRocm90dGxlZCBoYW5kbGVyXHJcbiAgICBjb25zdCB0aHJvdHRsZWRIYW5kbGVyID0gdGhyb3R0bGUoaW5uZXJIYW5kbGVyLCBtaWxsaXNlY29uZHMpO1xyXG5cclxuICAgIC8vIHJlZ2lzdGVyIGV2ZW50IHdpdGggdGhyb3R0bGVkIGhhbmRsZXJcclxuICAgIHJldHVybiB0aGlzLm1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihlbGVtZW50LCB0aGlzLnVud3JhcEV2ZW50TmFtZShldmVudE5hbWUpLCB0aHJvdHRsZWRIYW5kbGVyKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Injectable, LOCALE_ID, inject } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* @deprecated switch to acceptLanguageInterceptor function (See: https://angular.dev/guide/http/interceptors#configuring-interceptors)
|
|
5
|
-
*/
|
|
6
|
-
export class AcceptLanguageInterceptor {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.localeId = inject(LOCALE_ID);
|
|
9
|
-
}
|
|
10
|
-
intercept(request, next) {
|
|
11
|
-
const newRequest = request.clone({
|
|
12
|
-
headers: request.headers.set('Accept-Language', this.localeId)
|
|
13
|
-
});
|
|
14
|
-
return next.handle(newRequest);
|
|
15
|
-
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AcceptLanguageInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
17
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AcceptLanguageInterceptor }); }
|
|
18
|
-
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AcceptLanguageInterceptor, decorators: [{
|
|
20
|
-
type: Injectable
|
|
21
|
-
}] });
|
|
22
|
-
/**
|
|
23
|
-
* Sets the Accept-Language HTTP request header using the value from LOCALE_ID.
|
|
24
|
-
*/
|
|
25
|
-
export const acceptLanguageInterceptor = (request, next) => {
|
|
26
|
-
const localeId = inject(LOCALE_ID);
|
|
27
|
-
const newRequest = request.clone({
|
|
28
|
-
headers: request.headers.set('Accept-Language', localeId)
|
|
29
|
-
});
|
|
30
|
-
return next(newRequest);
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXB0LWxhbmd1YWdlLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9lbnRyeS1jb21wb25lbnRzL2NvbW1vbi9pbnRlcmNlcHRvcnMvYWNjZXB0LWxhbmd1YWdlLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJOUQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8seUJBQXlCO0lBRHRDO1FBRVUsYUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztLQVF0QztJQU5DLFNBQVMsQ0FBQyxPQUE2QixFQUFFLElBQWlCO1FBQ3hELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDL0IsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDL0QsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7K0dBUlUseUJBQXlCO21IQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVU7O0FBWVg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBc0IsQ0FBQyxPQUE2QixFQUFFLElBQW1CLEVBQWtDLEVBQUU7SUFDakosTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRW5DLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDL0IsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQztLQUMxRCxDQUFDLENBQUM7SUFDSCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMxQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBMT0NBTEVfSUQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cFJlcXVlc3QsIEh0dHBIYW5kbGVyLCBIdHRwRXZlbnQsIEh0dHBJbnRlcmNlcHRvciwgSHR0cEludGVyY2VwdG9yRm4sIEh0dHBIYW5kbGVyRm4gfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgc3dpdGNoIHRvIGFjY2VwdExhbmd1YWdlSW50ZXJjZXB0b3IgZnVuY3Rpb24gKFNlZTogaHR0cHM6Ly9hbmd1bGFyLmRldi9ndWlkZS9odHRwL2ludGVyY2VwdG9ycyNjb25maWd1cmluZy1pbnRlcmNlcHRvcnMpXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBY2NlcHRMYW5ndWFnZUludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgcHJpdmF0ZSBsb2NhbGVJZCA9IGluamVjdChMT0NBTEVfSUQpO1xuXG4gIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj4ge1xuICAgIGNvbnN0IG5ld1JlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcbiAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVycy5zZXQoJ0FjY2VwdC1MYW5ndWFnZScsIHRoaXMubG9jYWxlSWQpXG4gICAgfSk7XG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKG5ld1JlcXVlc3QpO1xuICB9XG59XG5cbi8qKlxuICogU2V0cyB0aGUgQWNjZXB0LUxhbmd1YWdlIEhUVFAgcmVxdWVzdCBoZWFkZXIgdXNpbmcgdGhlIHZhbHVlIGZyb20gTE9DQUxFX0lELlxuICovXG5leHBvcnQgY29uc3QgYWNjZXB0TGFuZ3VhZ2VJbnRlcmNlcHRvcjogSHR0cEludGVyY2VwdG9yRm4gPSAocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyRm4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj4gPT4ge1xuICBjb25zdCBsb2NhbGVJZCA9IGluamVjdChMT0NBTEVfSUQpO1xuXG4gIGNvbnN0IG5ld1JlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcbiAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnMuc2V0KCdBY2NlcHQtTGFuZ3VhZ2UnLCBsb2NhbGVJZClcbiAgfSk7XG4gIHJldHVybiBuZXh0KG5ld1JlcXVlc3QpO1xufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { AcceptLanguageInterceptor, acceptLanguageInterceptor } from './accept-language.interceptor';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvY29tbW9uL2ludGVyY2VwdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEFjY2VwdExhbmd1YWdlSW50ZXJjZXB0b3IsIGFjY2VwdExhbmd1YWdlSW50ZXJjZXB0b3IgfSBmcm9tICcuL2FjY2VwdC1sYW5ndWFnZS5pbnRlcmNlcHRvcic7XHJcbiJdfQ==
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export { EntryCommonModule, NG_EVENT_PLUGINS } from './common.module';
|
|
2
|
-
export * from './utils';
|
|
3
|
-
export * from './directives';
|
|
4
|
-
export * from './event-plugins';
|
|
5
|
-
export * from './interceptors';
|
|
6
|
-
export * from './date-time';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZW50cnktY29tcG9uZW50cy9jb21tb24vcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RSxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCB7IEVudHJ5Q29tbW9uTW9kdWxlLCBOR19FVkVOVF9QTFVHSU5TIH0gZnJvbSAnLi9jb21tb24ubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudC1wbHVnaW5zJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJjZXB0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZS10aW1lJztcbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './provide-config';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvY29tbW9uL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Byb3ZpZGUtY29uZmlnJztcclxuIl19
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export function createInjectionToken(defaultValue) {
|
|
3
|
-
return new InjectionToken(defaultValue.constructor.name, {
|
|
4
|
-
providedIn: 'root',
|
|
5
|
-
factory: () => defaultValue
|
|
6
|
-
});
|
|
7
|
-
}
|
|
8
|
-
export function provideConfig(token, factory) {
|
|
9
|
-
return {
|
|
10
|
-
provide: token,
|
|
11
|
-
useFactory: factory
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvY29tbW9uL3V0aWxzL3Byb3ZpZGUtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFekQsTUFBTSxVQUFVLG9CQUFvQixDQUFJLFlBQWU7SUFDckQsT0FBTyxJQUFJLGNBQWMsQ0FBSSxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksRUFDeEQ7UUFDRSxVQUFVLEVBQUUsTUFBTTtRQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsWUFBWTtLQUM1QixDQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBSSxLQUF3QixFQUFFLE9BQWdCO0lBQ3pFLE9BQU87UUFDTCxPQUFPLEVBQUUsS0FBSztRQUNkLFVBQVUsRUFBRSxPQUFPO0tBQ3BCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSW5qZWN0aW9uVG9rZW48VD4oZGVmYXVsdFZhbHVlOiBUKTogSW5qZWN0aW9uVG9rZW48VD4ge1xyXG4gIHJldHVybiBuZXcgSW5qZWN0aW9uVG9rZW48VD4oZGVmYXVsdFZhbHVlLmNvbnN0cnVjdG9yLm5hbWUsXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxuICAgICAgZmFjdG9yeTogKCkgPT4gZGVmYXVsdFZhbHVlXHJcbiAgICB9XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVDb25maWc8VD4odG9rZW46IEluamVjdGlvblRva2VuPFQ+LCBmYWN0b3J5OiAoKSA9PiBUKTogUHJvdmlkZXIge1xyXG4gIHJldHVybiB7XHJcbiAgICBwcm92aWRlOiB0b2tlbixcclxuICAgIHVzZUZhY3Rvcnk6IGZhY3RvcnlcclxuICB9O1xyXG59XHJcbiJdfQ==
|