@enigmatry/entry-components 20.0.1-preview.4 → 20.3.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/common/index.d.ts +2 -12
- package/fesm2022/enigmatry-entry-components-button.mjs +7 -7
- package/fesm2022/enigmatry-entry-components-button.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-common.mjs +33 -52
- package/fesm2022/enigmatry-entry-components-common.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-date-time-picker.mjs +17 -17
- package/fesm2022/enigmatry-entry-components-date-time-picker.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-dialog.mjs +19 -19
- package/fesm2022/enigmatry-entry-components-dialog.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-file-input.mjs +7 -7
- package/fesm2022/enigmatry-entry-components-file-input.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-permissions.mjs +10 -10
- package/fesm2022/enigmatry-entry-components-permissions.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-search-filter.mjs +22 -22
- package/fesm2022/enigmatry-entry-components-search-filter.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-spinner.mjs +10 -10
- package/fesm2022/enigmatry-entry-components-spinner.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-table.mjs +16 -16
- package/fesm2022/enigmatry-entry-components-table.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-validation.mjs +18 -23
- 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 +1 -1
- package/validation/index.d.ts +2 -3
package/common/index.d.ts
CHANGED
|
@@ -4,8 +4,7 @@ import * as i1 from '@angular/common';
|
|
|
4
4
|
import { NumberInput } from '@angular/cdk/coercion';
|
|
5
5
|
import { ControlValueAccessor, UntypedFormControl, NgControl } from '@angular/forms';
|
|
6
6
|
import { EventManager } from '@angular/platform-browser';
|
|
7
|
-
import {
|
|
8
|
-
import { Observable } from 'rxjs';
|
|
7
|
+
import { HttpInterceptorFn } from '@angular/common/http';
|
|
9
8
|
import { DateAdapter, MatDateFormats } from '@angular/material/core';
|
|
10
9
|
|
|
11
10
|
/**
|
|
@@ -145,15 +144,6 @@ declare class DebounceEventPlugin extends EntryEventManagerPlugin {
|
|
|
145
144
|
static ɵprov: i0.ɵɵInjectableDeclaration<DebounceEventPlugin>;
|
|
146
145
|
}
|
|
147
146
|
|
|
148
|
-
/**
|
|
149
|
-
* @deprecated switch to acceptLanguageInterceptor function (See: https://angular.dev/guide/http/interceptors#configuring-interceptors)
|
|
150
|
-
*/
|
|
151
|
-
declare class AcceptLanguageInterceptor implements HttpInterceptor {
|
|
152
|
-
private localeId;
|
|
153
|
-
intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>>;
|
|
154
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AcceptLanguageInterceptor, never>;
|
|
155
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<AcceptLanguageInterceptor>;
|
|
156
|
-
}
|
|
157
147
|
/**
|
|
158
148
|
* Sets the Accept-Language HTTP request header using the value from LOCALE_ID.
|
|
159
149
|
*/
|
|
@@ -241,5 +231,5 @@ declare class EntryNativeTimeAdapter extends EntryTimeAdapter<Date> {
|
|
|
241
231
|
}
|
|
242
232
|
declare const provideEntryNativeTimeAdapter: (dateTimeFormats?: EntryDateTimeFormats) => Provider[];
|
|
243
233
|
|
|
244
|
-
export {
|
|
234
|
+
export { AutoDisableButtonDirective, DebounceEventPlugin, ENTRY_MAT_DATE_TIME_FORMATS, EntryCommonModule, EntryDateTimeAdapter, EntryNativeTimeAdapter, EntryTimeAdapter, NG_EVENT_PLUGINS, NgControlAccessorDirective, NoopControlValueAccessorDirective, ScrollToInvalidControlDirective, ThrottleEventPlugin, acceptLanguageInterceptor, createInjectionToken, defaultDateTimeFormats, provideConfig, provideEntryNativeTimeAdapter };
|
|
245
235
|
export type { EntryDateTimeFormats };
|
|
@@ -58,10 +58,10 @@ class EntryButtonDirective {
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
62
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
62
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.10", type: EntryButtonDirective, isStandalone: false, selector: "[mat-button][entry-submit-button],[mat-button][entry-cancel-button]", ngImport: i0 }); }
|
|
63
63
|
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryButtonDirective, decorators: [{
|
|
65
65
|
type: Directive,
|
|
66
66
|
args: [{
|
|
67
67
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
@@ -71,13 +71,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImpor
|
|
|
71
71
|
}] });
|
|
72
72
|
|
|
73
73
|
class EntryButtonModule {
|
|
74
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
75
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.
|
|
74
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
75
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.10", ngImport: i0, type: EntryButtonModule, declarations: [EntryButtonDirective], imports: [CommonModule,
|
|
76
76
|
MatButtonModule], exports: [EntryButtonDirective] }); }
|
|
77
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.
|
|
77
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryButtonModule, imports: [CommonModule,
|
|
78
78
|
MatButtonModule] }); }
|
|
79
79
|
}
|
|
80
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryButtonModule, decorators: [{
|
|
81
81
|
type: NgModule,
|
|
82
82
|
args: [{
|
|
83
83
|
declarations: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enigmatry-entry-components-button.mjs","sources":["../../../../libs/entry-components/button/entry-button-config.ts","../../../../libs/entry-components/button/entry-button.directive.ts","../../../../libs/entry-components/button/entry-button.module.ts","../../../../libs/entry-components/button/enigmatry-entry-components-button.ts"],"sourcesContent":["import { Provider } from '@angular/core';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { createInjectionToken, provideConfig } from '@enigmatry/entry-components/common';\r\n\r\n/** Possible mat button variants */\r\nexport declare type MatButtonVariants = 'basic' | 'flat' | 'raised' | 'stroked';\r\n\r\n//** MatButtonConfig containing type and color */\r\nexport interface MatButtonConfig {\r\n type: MatButtonVariants;\r\n color?: ThemePalette;\r\n}\r\n\r\n/**\r\n * Used to provide button configuration on module or application level.\r\n */\r\nexport class EntryButtonConfig {\r\n /** Submit button configuration */\r\n submit: MatButtonConfig;\r\n /** Cancel button configuration */\r\n cancel: MatButtonConfig;\r\n\r\n constructor(config: Partial<EntryButtonConfig> = {}) {\r\n this.submit = config.submit ?? { type: 'flat', color: 'primary' };\r\n this.cancel = config.cancel ?? { type: 'basic', color: 'accent' };\r\n }\r\n}\r\n\r\n/**\r\n * Entry button config injection token.\r\n *\r\n * Defaults:\r\n * - submit: type: 'flat', color: 'primary'\r\n * - cancel: type: 'basic', color: 'accent'\r\n */\r\nexport const ENTRY_BUTTON_CONFIG = createInjectionToken(new EntryButtonConfig());\r\n\r\n/**\r\n * Can be used to provide custom button configuration.\r\n */\r\nexport const provideEntryButtonConfig = (config: Partial<EntryButtonConfig>): Provider =>\r\n provideConfig(ENTRY_BUTTON_CONFIG, () => new EntryButtonConfig(config));\r\n","import { Directive, ElementRef, inject, OnInit } from '@angular/core';\nimport { MatButton, MatAnchor } from '@angular/material/button';\nimport { ThemePalette } from '@angular/material/core';\nimport { ENTRY_BUTTON_CONFIG, EntryButtonConfig, MatButtonConfig } from './entry-button-config';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: `[mat-button][entry-submit-button],[mat-button][entry-cancel-button]`,\n standalone: false\n})\nexport class EntryButtonDirective implements OnInit {\n matClasses: { [key: string]: string[] } = {\n basic: ['mdc-button', 'mat-mdc-button'],\n raised: ['mdc-button', 'mdc-button--raised', 'mat-mdc-raised-button'],\n stroked: ['mdc-button', 'mdc-button--outlined', 'mat-mdc-outlined-button'],\n flat: ['mdc-button', 'mdc-button--unelevated', 'mat-mdc-unelevated-button']\n };\n\n private readonly _elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n private readonly _config: EntryButtonConfig = inject(ENTRY_BUTTON_CONFIG);\n private readonly _matButton = inject(MatButton, { optional: true });\n private readonly _matAnchor = inject(MatAnchor, { optional: true });\n\n ngOnInit(): void {\n const entryButtonType: 'submit' | 'cancel' = this.getEntryType();\n const buttonConfig: MatButtonConfig = this._config[entryButtonType];\n\n const entryClasses: string[] = ['entry-button', `entry-${entryButtonType}-button`];\n const matClasses = this.matClasses[buttonConfig.type];\n\n this._elementRef.nativeElement.classList.add(...entryClasses, ...matClasses);\n\n const color: ThemePalette = buttonConfig.color;\n if (color) {\n if (this._matButton) {\n this._matButton.color = color;\n }\n if (this._matAnchor) {\n this._matAnchor.color = color;\n }\n }\n }\n\n private readonly getEntryType = (): 'submit' | 'cancel' => {\n return this._elementRef.nativeElement.hasAttribute('entry-submit-button') ? 'submit' : 'cancel';\n };\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { EntryButtonDirective } from './entry-button.directive';\n\n@NgModule({\n declarations: [\n EntryButtonDirective\n ],\n imports: [\n CommonModule,\n MatButtonModule\n ],\n exports: [\n EntryButtonDirective\n ]\n})\nexport class EntryButtonModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAaA;;AAEG;MACU,iBAAiB,CAAA;AAM5B,IAAA,WAAA,CAAY,SAAqC,EAAE,EAAA;AACjD,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE;AACjE,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE
|
|
1
|
+
{"version":3,"file":"enigmatry-entry-components-button.mjs","sources":["../../../../libs/entry-components/button/entry-button-config.ts","../../../../libs/entry-components/button/entry-button.directive.ts","../../../../libs/entry-components/button/entry-button.module.ts","../../../../libs/entry-components/button/enigmatry-entry-components-button.ts"],"sourcesContent":["import { Provider } from '@angular/core';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { createInjectionToken, provideConfig } from '@enigmatry/entry-components/common';\r\n\r\n/** Possible mat button variants */\r\nexport declare type MatButtonVariants = 'basic' | 'flat' | 'raised' | 'stroked';\r\n\r\n//** MatButtonConfig containing type and color */\r\nexport interface MatButtonConfig {\r\n type: MatButtonVariants;\r\n color?: ThemePalette;\r\n}\r\n\r\n/**\r\n * Used to provide button configuration on module or application level.\r\n */\r\nexport class EntryButtonConfig {\r\n /** Submit button configuration */\r\n submit: MatButtonConfig;\r\n /** Cancel button configuration */\r\n cancel: MatButtonConfig;\r\n\r\n constructor(config: Partial<EntryButtonConfig> = {}) {\r\n this.submit = config.submit ?? { type: 'flat', color: 'primary' };\r\n this.cancel = config.cancel ?? { type: 'basic', color: 'accent' };\r\n }\r\n}\r\n\r\n/**\r\n * Entry button config injection token.\r\n *\r\n * Defaults:\r\n * - submit: type: 'flat', color: 'primary'\r\n * - cancel: type: 'basic', color: 'accent'\r\n */\r\nexport const ENTRY_BUTTON_CONFIG = createInjectionToken(new EntryButtonConfig());\r\n\r\n/**\r\n * Can be used to provide custom button configuration.\r\n */\r\nexport const provideEntryButtonConfig = (config: Partial<EntryButtonConfig>): Provider =>\r\n provideConfig(ENTRY_BUTTON_CONFIG, () => new EntryButtonConfig(config));\r\n","import { Directive, ElementRef, inject, OnInit } from '@angular/core';\nimport { MatButton, MatAnchor } from '@angular/material/button';\nimport { ThemePalette } from '@angular/material/core';\nimport { ENTRY_BUTTON_CONFIG, EntryButtonConfig, MatButtonConfig } from './entry-button-config';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: `[mat-button][entry-submit-button],[mat-button][entry-cancel-button]`,\n standalone: false\n})\nexport class EntryButtonDirective implements OnInit {\n matClasses: { [key: string]: string[] } = {\n basic: ['mdc-button', 'mat-mdc-button'],\n raised: ['mdc-button', 'mdc-button--raised', 'mat-mdc-raised-button'],\n stroked: ['mdc-button', 'mdc-button--outlined', 'mat-mdc-outlined-button'],\n flat: ['mdc-button', 'mdc-button--unelevated', 'mat-mdc-unelevated-button']\n };\n\n private readonly _elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n private readonly _config: EntryButtonConfig = inject(ENTRY_BUTTON_CONFIG);\n private readonly _matButton = inject(MatButton, { optional: true });\n private readonly _matAnchor = inject(MatAnchor, { optional: true });\n\n ngOnInit(): void {\n const entryButtonType: 'submit' | 'cancel' = this.getEntryType();\n const buttonConfig: MatButtonConfig = this._config[entryButtonType];\n\n const entryClasses: string[] = ['entry-button', `entry-${entryButtonType}-button`];\n const matClasses = this.matClasses[buttonConfig.type];\n\n this._elementRef.nativeElement.classList.add(...entryClasses, ...matClasses);\n\n const color: ThemePalette = buttonConfig.color;\n if (color) {\n if (this._matButton) {\n this._matButton.color = color;\n }\n if (this._matAnchor) {\n this._matAnchor.color = color;\n }\n }\n }\n\n private readonly getEntryType = (): 'submit' | 'cancel' => {\n return this._elementRef.nativeElement.hasAttribute('entry-submit-button') ? 'submit' : 'cancel';\n };\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { EntryButtonDirective } from './entry-button.directive';\n\n@NgModule({\n declarations: [\n EntryButtonDirective\n ],\n imports: [\n CommonModule,\n MatButtonModule\n ],\n exports: [\n EntryButtonDirective\n ]\n})\nexport class EntryButtonModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -68,10 +68,10 @@ class AutoDisableButtonDirective {
|
|
|
68
68
|
.pipe(takeUntil(this._destroy$))
|
|
69
69
|
.subscribe(() => button.disabled = false);
|
|
70
70
|
}
|
|
71
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
72
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.
|
|
71
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: AutoDisableButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
72
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.10", type: AutoDisableButtonDirective, isStandalone: true, selector: "button[entry-auto-disable]:not([disabled])", inputs: { disableIntervalInMs: ["entry-auto-disable", "disableIntervalInMs"] }, ngImport: i0 }); }
|
|
73
73
|
}
|
|
74
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: AutoDisableButtonDirective, decorators: [{
|
|
75
75
|
type: Directive,
|
|
76
76
|
args: [{
|
|
77
77
|
standalone: true,
|
|
@@ -115,10 +115,10 @@ class NgControlAccessorDirective {
|
|
|
115
115
|
this.destroy$.next();
|
|
116
116
|
this.destroy$.complete();
|
|
117
117
|
}
|
|
118
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
119
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.
|
|
118
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: NgControlAccessorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
119
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.10", type: NgControlAccessorDirective, isStandalone: true, ngImport: i0 }); }
|
|
120
120
|
}
|
|
121
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: NgControlAccessorDirective, decorators: [{
|
|
122
122
|
type: Directive,
|
|
123
123
|
args: [{
|
|
124
124
|
standalone: true
|
|
@@ -133,8 +133,8 @@ class NoopControlValueAccessorDirective {
|
|
|
133
133
|
this.registerOnTouched = (_fn) => { };
|
|
134
134
|
this.setDisabledState = (_isDisabled) => { };
|
|
135
135
|
}
|
|
136
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
137
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.
|
|
136
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: NoopControlValueAccessorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
137
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.10", type: NoopControlValueAccessorDirective, isStandalone: true, providers: [
|
|
138
138
|
{
|
|
139
139
|
provide: NG_VALUE_ACCESSOR,
|
|
140
140
|
multi: true,
|
|
@@ -142,7 +142,7 @@ class NoopControlValueAccessorDirective {
|
|
|
142
142
|
}
|
|
143
143
|
], ngImport: i0 }); }
|
|
144
144
|
}
|
|
145
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
145
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: NoopControlValueAccessorDirective, decorators: [{
|
|
146
146
|
type: Directive,
|
|
147
147
|
args: [{
|
|
148
148
|
standalone: true,
|
|
@@ -188,10 +188,10 @@ class ScrollToInvalidControlDirective {
|
|
|
188
188
|
});
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
192
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.
|
|
191
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ScrollToInvalidControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
192
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.10", type: ScrollToInvalidControlDirective, isStandalone: true, selector: "form[formGroup],form[ngForm]", ngImport: i0 }); }
|
|
193
193
|
}
|
|
194
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
194
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ScrollToInvalidControlDirective, decorators: [{
|
|
195
195
|
type: Directive,
|
|
196
196
|
args: [{
|
|
197
197
|
standalone: true,
|
|
@@ -259,10 +259,10 @@ class DebounceEventPlugin extends EntryEventManagerPlugin {
|
|
|
259
259
|
// register event with debounced handler
|
|
260
260
|
return this.manager.addEventListener(element, this.unwrapEventName(eventName), debouncedHandler);
|
|
261
261
|
}
|
|
262
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
263
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
262
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: DebounceEventPlugin, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
263
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: DebounceEventPlugin }); }
|
|
264
264
|
}
|
|
265
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
265
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: DebounceEventPlugin, decorators: [{
|
|
266
266
|
type: Injectable
|
|
267
267
|
}] });
|
|
268
268
|
|
|
@@ -289,10 +289,10 @@ class ThrottleEventPlugin extends EntryEventManagerPlugin {
|
|
|
289
289
|
// register event with throttled handler
|
|
290
290
|
return this.manager.addEventListener(element, this.unwrapEventName(eventName), throttledHandler);
|
|
291
291
|
}
|
|
292
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
293
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
292
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThrottleEventPlugin, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
293
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThrottleEventPlugin }); }
|
|
294
294
|
}
|
|
295
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
295
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThrottleEventPlugin, decorators: [{
|
|
296
296
|
type: Injectable
|
|
297
297
|
}] });
|
|
298
298
|
|
|
@@ -320,17 +320,17 @@ class EntryCommonModule {
|
|
|
320
320
|
providers: NG_EVENT_PLUGINS
|
|
321
321
|
};
|
|
322
322
|
}
|
|
323
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
324
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.
|
|
323
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
324
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.10", ngImport: i0, type: EntryCommonModule, imports: [CommonModule, AutoDisableButtonDirective,
|
|
325
325
|
ScrollToInvalidControlDirective,
|
|
326
326
|
NoopControlValueAccessorDirective,
|
|
327
327
|
NgControlAccessorDirective], exports: [AutoDisableButtonDirective,
|
|
328
328
|
ScrollToInvalidControlDirective,
|
|
329
329
|
NoopControlValueAccessorDirective,
|
|
330
330
|
NgControlAccessorDirective] }); }
|
|
331
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.
|
|
331
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryCommonModule, imports: [CommonModule] }); }
|
|
332
332
|
}
|
|
333
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
333
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryCommonModule, decorators: [{
|
|
334
334
|
type: NgModule,
|
|
335
335
|
args: [{
|
|
336
336
|
declarations: [],
|
|
@@ -353,25 +353,6 @@ const provideConfig = (token, factory) => ({
|
|
|
353
353
|
useFactory: factory
|
|
354
354
|
});
|
|
355
355
|
|
|
356
|
-
/**
|
|
357
|
-
* @deprecated switch to acceptLanguageInterceptor function (See: https://angular.dev/guide/http/interceptors#configuring-interceptors)
|
|
358
|
-
*/
|
|
359
|
-
class AcceptLanguageInterceptor {
|
|
360
|
-
constructor() {
|
|
361
|
-
this.localeId = inject(LOCALE_ID);
|
|
362
|
-
}
|
|
363
|
-
intercept(request, next) {
|
|
364
|
-
const newRequest = request.clone({
|
|
365
|
-
headers: request.headers.set('Accept-Language', this.localeId)
|
|
366
|
-
});
|
|
367
|
-
return next.handle(newRequest);
|
|
368
|
-
}
|
|
369
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: AcceptLanguageInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
370
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: AcceptLanguageInterceptor }); }
|
|
371
|
-
}
|
|
372
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: AcceptLanguageInterceptor, decorators: [{
|
|
373
|
-
type: Injectable
|
|
374
|
-
}] });
|
|
375
356
|
/**
|
|
376
357
|
* Sets the Accept-Language HTTP request header using the value from LOCALE_ID.
|
|
377
358
|
*/
|
|
@@ -384,10 +365,10 @@ const acceptLanguageInterceptor = (request, next) => {
|
|
|
384
365
|
};
|
|
385
366
|
|
|
386
367
|
class EntryTimeAdapter {
|
|
387
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
388
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
368
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryTimeAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
369
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryTimeAdapter }); }
|
|
389
370
|
}
|
|
390
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
371
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryTimeAdapter, decorators: [{
|
|
391
372
|
type: Injectable
|
|
392
373
|
}] });
|
|
393
374
|
|
|
@@ -492,10 +473,10 @@ class EntryDateTimeAdapter extends DateAdapter {
|
|
|
492
473
|
this.getMinutes(first) - this.getMinutes(second) ||
|
|
493
474
|
this.getSeconds(first) - this.getSeconds(second);
|
|
494
475
|
}
|
|
495
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
496
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
476
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryDateTimeAdapter, deps: [{ token: MAT_DATE_LOCALE, optional: true }, { token: i1.DateAdapter, skipSelf: true }, { token: EntryTimeAdapter }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
477
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryDateTimeAdapter }); }
|
|
497
478
|
}
|
|
498
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
479
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryDateTimeAdapter, decorators: [{
|
|
499
480
|
type: Injectable
|
|
500
481
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
501
482
|
type: Optional
|
|
@@ -508,7 +489,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImpor
|
|
|
508
489
|
|
|
509
490
|
const defaultDateTimeFormats = {
|
|
510
491
|
parse: {
|
|
511
|
-
dateInput: ['dd-MM-yyyy', 'dd-MM-yyyy HH', 'dd-MM-yyyy HH:mm']
|
|
492
|
+
dateInput: ['dd-MM-yyyy', 'dd-MM-yyyy HH', 'dd-MM-yyyy HH:mm', 'dd-MM-yyyy HH:mm:ss']
|
|
512
493
|
},
|
|
513
494
|
display: {
|
|
514
495
|
dateInput: 'dd-MM-yyyy HH:mm',
|
|
@@ -530,10 +511,10 @@ class EntryNativeTimeAdapter extends EntryTimeAdapter {
|
|
|
530
511
|
return date;
|
|
531
512
|
};
|
|
532
513
|
}
|
|
533
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
534
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
514
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryNativeTimeAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
515
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryNativeTimeAdapter }); }
|
|
535
516
|
}
|
|
536
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
517
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryNativeTimeAdapter, decorators: [{
|
|
537
518
|
type: Injectable
|
|
538
519
|
}] });
|
|
539
520
|
const provideEntryNativeTimeAdapter = (dateTimeFormats = defaultDateTimeFormats) => [
|
|
@@ -545,5 +526,5 @@ const provideEntryNativeTimeAdapter = (dateTimeFormats = defaultDateTimeFormats)
|
|
|
545
526
|
* Generated bundle index. Do not edit.
|
|
546
527
|
*/
|
|
547
528
|
|
|
548
|
-
export {
|
|
529
|
+
export { AutoDisableButtonDirective, DebounceEventPlugin, ENTRY_MAT_DATE_TIME_FORMATS, EntryCommonModule, EntryDateTimeAdapter, EntryNativeTimeAdapter, EntryTimeAdapter, NG_EVENT_PLUGINS, NgControlAccessorDirective, NoopControlValueAccessorDirective, ScrollToInvalidControlDirective, ThrottleEventPlugin, acceptLanguageInterceptor, createInjectionToken, defaultDateTimeFormats, provideConfig, provideEntryNativeTimeAdapter };
|
|
549
530
|
//# sourceMappingURL=enigmatry-entry-components-common.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enigmatry-entry-components-common.mjs","sources":["../../../../libs/entry-components/common/constants.ts","../../../../libs/entry-components/common/directives/auto-disable-button.directive.ts","../../../../libs/entry-components/common/directives/ng-control-accessor.directive.ts","../../../../libs/entry-components/common/directives/noop-control-value-accessor.ts","../../../../libs/entry-components/common/directives/scroll-to-invalid-control.directive.ts","../../../../libs/entry-components/common/event-plugins/event-manager.plugin.ts","../../../../libs/entry-components/common/event-plugins/entry-event-manager.plugin.ts","../../../../libs/entry-components/common/event-plugins/debounce.plugin.ts","../../../../libs/entry-components/common/event-plugins/throttle.plugin.ts","../../../../libs/entry-components/common/common.module.ts","../../../../libs/entry-components/common/utils/provide-config.ts","../../../../libs/entry-components/common/interceptors/accept-language.interceptor.ts","../../../../libs/entry-components/common/date-time/entry-time-adapter.ts","../../../../libs/entry-components/common/date-time/entry-date-time-adapter.ts","../../../../libs/entry-components/common/date-time/entry-date-time-formats.ts","../../../../libs/entry-components/common/date-time/native-time-adapter.ts","../../../../libs/entry-components/common/enigmatry-entry-components-common.ts"],"sourcesContent":["export const NG_VALID_CLASS = '.ng-valid';\r\nexport const NG_INVALID_CLASS = '.ng-invalid';\r\n","import { NumberInput, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Directive, ElementRef, inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subject, fromEvent, timer } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { NG_VALID_CLASS } from '../constants';\n\n/**\n * Auto disable button after click or submit with entry-auto-disable directive.\n * Directive is applied to 'button[entry-auto-disable]:not([disabled])'\n * Default auto disable interval is 2000ms (2sec)\n *\n * Usage\n * <button mat-button entry-submit-button entry-auto-disable type=\"submit\">Submit</button>\n * or with auto disabled interval in milliseconds\n * <button mat-button entry-submit-button entry-auto-disable=\"5000\" type=\"submit\">Submit</button>\n */\n@Directive({\n standalone: true,\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'button[entry-auto-disable]:not([disabled])'\n})\nexport class AutoDisableButtonDirective implements OnInit, OnDestroy {\n private _destroy$ = new Subject<void>();\n private _disableIntervalInMs = 2000;\n private readonly elementRef: ElementRef<HTMLButtonElement> = inject(ElementRef);\n\n @Input('entry-auto-disable')\n get disableIntervalInMs() {\n return this._disableIntervalInMs;\n }\n set disableIntervalInMs(value: NumberInput) {\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\n this._disableIntervalInMs = coerceNumberProperty(value, 2000);\n }\n\n ngOnInit(): void {\n const button = this.elementRef.nativeElement;\n const isTypeSubmit = button.getAttribute('type') === 'submit';\n const form: HTMLFormElement | null = button.closest('form');\n\n if (isTypeSubmit && form) {\n // listen to form submit event\n fromEvent(form, 'submit')\n .pipe(takeUntil(this._destroy$))\n .subscribe(_ => {\n if (form.matches(NG_VALID_CLASS)) {\n this.disableButton(this._disableIntervalInMs);\n }\n });\n } else {\n // otherwise listen to click event\n fromEvent(button, 'click')\n .pipe(takeUntil(this._destroy$))\n .subscribe(_ => this.disableButton(this._disableIntervalInMs));\n }\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private disableButton(disablePeriodInMs: number): void {\n const button = this.elementRef.nativeElement;\n\n button.disabled = true;\n\n timer(disablePeriodInMs)\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => button.disabled = false);\n }\n}\n","import { Directive, OnDestroy, OnInit, inject } from '@angular/core';\nimport { FormControlDirective, FormControlName, NgControl, NgModel, UntypedFormControl } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Directive({\n standalone: true\n})\nexport class NgControlAccessorDirective implements OnDestroy, OnInit {\n control: UntypedFormControl;\n\n ngControl = inject(NgControl, {\n optional: true,\n self: true\n });\n\n private destroy$ = new Subject<void>();\n\n ngOnInit() {\n if (this.ngControl instanceof FormControlDirective ||\n this.ngControl instanceof FormControlName ||\n this.ngControl instanceof NgModel) {\n this.control = this.ngControl.control;\n } else {\n this.control = new UntypedFormControl();\n }\n\n if (this.ngControl instanceof NgModel) {\n const ngModel = this.ngControl as NgModel;\n ngModel.control.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(newValue => {\n if (ngModel.model !== newValue || ngModel.viewModel !== newValue) {\n ngModel.viewToModelUpdate(newValue);\n }\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}","/* eslint-disable @typescript-eslint/no-empty-function */\nimport { Directive } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Directive({\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: NoopControlValueAccessorDirective\n }\n ]\n})\nexport class NoopControlValueAccessorDirective implements ControlValueAccessor {\n writeValue = (_obj: any): void => { };\n registerOnChange = (_fn: any): void => { };\n registerOnTouched = (_fn: any): void => { };\n setDisabledState = (_isDisabled: boolean): void => { };\n}","import { Directive, ElementRef, inject, OnDestroy, OnInit } from '@angular/core';\r\nimport { ControlContainer } from '@angular/forms';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { NG_INVALID_CLASS } from '../constants';\r\n\r\n/**\r\n * Scroll to first invalid control when form is submitted.\r\n * Directive is applied to 'form[formGroup],form[ngForm]' (reactive or template driven forms)\r\n */\r\n@Directive({\r\n standalone: true,\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: 'form[formGroup],form[ngForm]'\r\n})\r\nexport class ScrollToInvalidControlDirective implements OnInit, OnDestroy {\r\n private destroy$ = new Subject<void>();\r\n private readonly form = inject(ControlContainer, { self: true });\r\n private readonly elementRef = inject(ElementRef<HTMLFormElement>);\r\n\r\n ngOnInit(): void {\r\n fromEvent(this.elementRef.nativeElement, 'submit')\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(_ => {\r\n if (this.form.invalid) {\r\n this.scrollToInvalidControl();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n private scrollToInvalidControl() {\r\n const firstInvalidControl: HTMLElement | null =\r\n this.elementRef.nativeElement.querySelector(NG_INVALID_CLASS);\r\n\r\n if (firstInvalidControl) {\r\n firstInvalidControl.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'center' // vertical alignment\r\n });\r\n }\r\n }\r\n}\r\n","import { EventManager } from '@angular/platform-browser';\n\n/**\n * abstract class EventManagerPlugin will be exposed in the public api\n * https://github.com/angular/angular/pull/49969\n *\n * Until then creating it from reference\n * https://github.com/angular/angular/blob/main/packages/platform-browser/src/dom/events/event_manager.ts#L93\n *\n * How to create custom event modifiers\n * https://github.com/Tinkoff/ng-event-plugins,\n * https://github.com/angular/angular/blob/main/packages/platform-browser/src/dom/events/key_events.ts\n * https://netbasal.com/lifting-the-veil-insights-into-angulars-eventmanagerplugin-ed9d14cbb31a\n */\nexport abstract class EventManagerPlugin {\n // Using non-null assertion because it's set by EventManager's constructor\n manager!: EventManager;\n\n /** Should return `true` for every event name that should be supported by this plugin */\n abstract supports(eventName: string): boolean;\n\n /**\n * Registers a handler for a specific element and event.\n *\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n abstract addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\n}","import { EventManagerPlugin } from './event-manager.plugin';\n\n/**\n * Entry event plugin base class\n */\nexport abstract class EntryEventManagerPlugin extends EventManagerPlugin {\n abstract modifier: string;\n\n /** return `true` for every event name that has specified modifier */\n supports(eventName: string): boolean {\n return eventName.includes(this.modifier);\n }\n\n /** unwrap params e.g. (click.debounce.500) => ['debounce', 500] */\n unwrapParams(eventName: string): string[] {\n return eventName\n .substring(eventName.indexOf(this.modifier))\n .split('.')\n .filter(x => !!x);\n }\n\n /** get event name e.g. (click.debounce.500) => click */\n unwrapEventName(eventName: string): string {\n return eventName.substring(0, eventName.indexOf(this.modifier));\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { debounce } from 'lodash-es';\r\nimport { EntryEventManagerPlugin } from './entry-event-manager.plugin';\r\n\r\n/**\r\n * Provides event plugin for debouncing events.\r\n *\r\n * How to use:\r\n * <button (click.debounce)=\"doSomething($event)\">\r\n * <input (keyup.debounce.500)=\"doSomething($event)\">\r\n */\r\n@Injectable()\r\nexport class DebounceEventPlugin extends EntryEventManagerPlugin {\r\n modifier = '.debounce';\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\r\n addEventListener(element: HTMLElement, eventName: string, originalHandler: Function): Function {\r\n // e.g. (click.debounce.500)\r\n const [_modifier, milliseconds = 500, option = 'leading'] = this.unwrapParams(eventName);\r\n\r\n // run original handler inside ngZone in which the event occurred\r\n const innerHandler = (event: any) => this.manager.getZone().runGuarded(() => originalHandler(event));\r\n\r\n // create debounced handler\r\n const debouncedHandler = debounce(innerHandler, milliseconds as number,\r\n { leading: option === 'leading', trailing: option === 'trailing' });\r\n\r\n // register event with debounced handler\r\n return this.manager.addEventListener(element, this.unwrapEventName(eventName), debouncedHandler);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { throttle } from 'lodash-es';\r\nimport { EntryEventManagerPlugin } from './entry-event-manager.plugin';\r\n\r\n/**\r\n * Provides event plugin for throttling events.\r\n *\r\n * How to use:\r\n * <button (click.throttle)=\"doSomething($event)\">\r\n * <input (keyup.throttle.500)=\"doSomething($event)\">\r\n */\r\n@Injectable()\r\nexport class ThrottleEventPlugin extends EntryEventManagerPlugin {\r\n modifier = '.throttle';\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\r\n addEventListener(element: HTMLElement, eventName: string, originalHandler: Function): Function {\r\n // e.g. (keyup.throttle.500)\r\n const [_modifier, milliseconds = 500] = this.unwrapParams(eventName);\r\n\r\n // run original handler inside ngZone in which the event occurred\r\n const innerHandler = (event: any) => this.manager.getZone().runGuarded(() => originalHandler(event));\r\n\r\n // create throttled handler\r\n const throttledHandler = throttle(innerHandler, milliseconds as number);\r\n\r\n // register event with throttled handler\r\n return this.manager.addEventListener(element, this.unwrapEventName(eventName), throttledHandler);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule, Provider } from '@angular/core';\n\n/** Directives */\n\nimport { EVENT_MANAGER_PLUGINS } from '@angular/platform-browser';\nimport { AutoDisableButtonDirective } from './directives/auto-disable-button.directive';\nimport { NgControlAccessorDirective } from './directives/ng-control-accessor.directive';\nimport { NoopControlValueAccessorDirective } from './directives/noop-control-value-accessor';\nimport { ScrollToInvalidControlDirective } from './directives/scroll-to-invalid-control.directive';\n\n/** Event plugins */\n\nimport { DebounceEventPlugin } from './event-plugins/debounce.plugin';\nimport { ThrottleEventPlugin } from './event-plugins/throttle.plugin';\n\nconst DIRECTIVES = [\n AutoDisableButtonDirective,\n ScrollToInvalidControlDirective,\n NoopControlValueAccessorDirective,\n NgControlAccessorDirective\n];\n\nconst EVENT_PLUGINS = [\n DebounceEventPlugin,\n ThrottleEventPlugin\n];\n\nexport const NG_EVENT_PLUGINS: Provider[] = EVENT_PLUGINS.map(useClass => ({\n provide: EVENT_MANAGER_PLUGINS,\n multi: true,\n useClass\n}));\n\n\n@NgModule({\n declarations: [\n ],\n imports: [\n CommonModule,\n DIRECTIVES\n ],\n exports: [\n DIRECTIVES\n ]\n})\nexport class EntryCommonModule {\n // Has to be function since modules needs to work with statically defined providers\n // eslint-disable-next-line prefer-arrow-functions/prefer-arrow-functions\n static forRoot(): ModuleWithProviders<EntryCommonModule> {\n return {\n ngModule: EntryCommonModule,\n providers: NG_EVENT_PLUGINS\n };\n }\n}\n","import { InjectionToken, Provider } from '@angular/core';\r\n\r\nexport const createInjectionToken = <T>(defaultValue: T): InjectionToken<T> => new InjectionToken<T>(defaultValue?.constructor.name ?? 'DefaultToken',\r\n {\r\n providedIn: 'root',\r\n factory: () => defaultValue\r\n }\r\n );\r\n\r\nexport const provideConfig = <T>(token: InjectionToken<T>, factory: () => T): Provider => ({\r\n provide: token,\r\n useFactory: factory\r\n });\r\n","import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpInterceptorFn, HttpHandlerFn } from '@angular/common/http';\nimport { Injectable, LOCALE_ID, inject } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n/**\n * @deprecated switch to acceptLanguageInterceptor function (See: https://angular.dev/guide/http/interceptors#configuring-interceptors)\n */\n@Injectable()\nexport class AcceptLanguageInterceptor implements HttpInterceptor {\n private localeId = inject(LOCALE_ID);\n\n intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n const newRequest = request.clone({\n headers: request.headers.set('Accept-Language', this.localeId)\n });\n return next.handle(newRequest);\n }\n}\n\n/**\n * Sets the Accept-Language HTTP request header using the value from LOCALE_ID.\n */\nexport const acceptLanguageInterceptor: HttpInterceptorFn = (request: HttpRequest<unknown>, next: HttpHandlerFn): Observable<HttpEvent<unknown>> => {\n const localeId = inject(LOCALE_ID);\n\n const newRequest = request.clone({\n headers: request.headers.set('Accept-Language', localeId)\n });\n return next(newRequest);\n};\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport abstract class EntryTimeAdapter<D> {\n abstract getHours(date: D): number;\n abstract getMinutes(date: D): number;\n abstract getSeconds(date: D): number;\n abstract setTime(date: D, hours: number, minutes: number, seconds: number): D;\n}","/* eslint-disable @angular-eslint/prefer-inject */\nimport { Inject, Injectable, Optional, SkipSelf } from '@angular/core';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { EntryTimeAdapter } from './entry-time-adapter';\n\n/**\n * Extends DateAdapter with time support. Used by EntryDateTimePicker component.\n */\n@Injectable()\nexport class EntryDateTimeAdapter<D, L> extends DateAdapter<D, L> implements EntryTimeAdapter<D> {\n\tconstructor(\n\t\t@Optional() @Inject(MAT_DATE_LOCALE) matDateLocale: L,\n\t\t@SkipSelf() private readonly dateAdapter: DateAdapter<D, L>,\n\t\tprivate readonly timeAdapter: EntryTimeAdapter<D>) {\n\t\tsuper();\n\t\tthis.dateAdapter.setLocale(matDateLocale);\n\t}\n\n\tgetYear(date: D): number {\n\t\treturn this.dateAdapter.getYear(date);\n\t}\n\n\tgetMonth(date: D): number {\n\t\treturn this.dateAdapter.getMonth(date);\n\t}\n\n\tgetDate(date: D): number {\n\t\treturn this.dateAdapter.getDate(date);\n\t}\n\n\tgetDayOfWeek(date: D): number {\n\t\treturn this.dateAdapter.getDayOfWeek(date);\n\t}\n\n\tgetMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n\t\treturn this.dateAdapter.getMonthNames(style);\n\t}\n\n\tgetDateNames(): string[] {\n\t\treturn this.dateAdapter.getDateNames();\n\t}\n\n\tgetDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n\t\treturn this.dateAdapter.getDayOfWeekNames(style);\n\t}\n\n\tgetYearName(date: D): string {\n\t\treturn this.dateAdapter.getYearName(date);\n\t}\n\n\tgetFirstDayOfWeek(): number {\n\t\treturn this.dateAdapter.getFirstDayOfWeek();\n\t}\n\n\tgetNumDaysInMonth(date: D): number {\n\t\treturn this.dateAdapter.getNumDaysInMonth(date);\n\t}\n\n\tclone(date: D): D {\n\t\treturn this.dateAdapter.clone(date);\n\t}\n\n\tcreateDate(year: number, month: number, date: number): D {\n\t\treturn this.dateAdapter.createDate(year, month, date);\n\t}\n\n\ttoday(): D {\n\t\treturn this.dateAdapter.today();\n\t}\n\n\tparse(value: any, parseFormat: any): D {\n\t\treturn this.dateAdapter.parse(value, parseFormat) as D;\n\t}\n\n\tformat(date: D, displayFormat: any): string {\n\t\treturn this.dateAdapter.format(date, displayFormat);\n\t}\n\n\taddCalendarYears(date: D, years: number): D {\n\t\treturn this.dateAdapter.addCalendarYears(date, years);\n\t}\n\n\taddCalendarMonths(date: D, months: number): D {\n\t\treturn this.dateAdapter.addCalendarMonths(date, months);\n\t}\n\n\taddCalendarDays(date: D, days: number): D {\n\t\treturn this.dateAdapter.addCalendarDays(date, days);\n\t}\n\n\ttoIso8601(date: D): string {\n\t\treturn this.dateAdapter.toIso8601(date);\n\t}\n\n\tisDateInstance(obj: any): boolean {\n\t\treturn this.dateAdapter.isDateInstance(obj);\n\t}\n\n\tisValid(date: D): boolean {\n\t\treturn this.dateAdapter.isValid(date);\n\t}\n\n\tinvalid(): D {\n\t\treturn this.dateAdapter.invalid();\n\t}\n\n\toverride getHours(date: D): number {\n\t\treturn this.timeAdapter.getHours(date);\n\t}\n\n\toverride getMinutes(date: D): number {\n\t\treturn this.timeAdapter.getMinutes(date);\n\t}\n\n\toverride getSeconds(date: D): number {\n\t\treturn this.timeAdapter.getSeconds(date);\n\t}\n\n\toverride setTime(date: D, hours: number, minutes: number, seconds: number): D {\n\t\treturn this.timeAdapter.setTime(date, hours, minutes, seconds);\n\t}\n\n\tis12HoursClock(displayFormat: any): boolean {\n\t\tconst now = this.format(this.today(), displayFormat).toLowerCase();\n\t\treturn now.includes('a') || now.includes('p');\n\t}\n\n\toverride compareDate(first: D, second: D): number {\n\t\treturn this.getYear(first) - this.getYear(second) ||\n\t\t\tthis.getMonth(first) - this.getMonth(second) ||\n\t\t\tthis.getDate(first) - this.getDate(second) ||\n\t\t\tthis.getHours(first) - this.getHours(second) ||\n\t\t\tthis.getMinutes(first) - this.getMinutes(second) ||\n\t\t\tthis.getSeconds(first) - this.getSeconds(second);\n\t}\n}\n","import { InjectionToken } from '@angular/core';\nimport { MatDateFormats } from '@angular/material/core';\n\nexport type EntryDateTimeFormats = MatDateFormats;\n\nexport const defaultDateTimeFormats = {\n parse: {\n dateInput: ['dd-MM-yyyy', 'dd-MM-yyyy HH', 'dd-MM-yyyy HH:mm']\n },\n display: {\n dateInput: 'dd-MM-yyyy HH:mm',\n monthYearLabel: { year: 'numeric', month: 'short' },\n dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },\n monthYearA11yLabel: { year: 'numeric', month: 'long' }\n }\n};\n\nexport const ENTRY_MAT_DATE_TIME_FORMATS = new InjectionToken<EntryDateTimeFormats>('entry-date-time-formats');","import { Injectable, Provider } from '@angular/core';\nimport { EntryDateTimeFormats, defaultDateTimeFormats, ENTRY_MAT_DATE_TIME_FORMATS } from './entry-date-time-formats';\nimport { EntryTimeAdapter } from './entry-time-adapter';\n\n@Injectable()\nexport class EntryNativeTimeAdapter extends EntryTimeAdapter<Date> {\n getHours = (date: Date): number => date?.getHours();\n\n getMinutes = (date: Date): number => date?.getMinutes();\n\n getSeconds = (date: Date): number => date?.getSeconds();\n\n setTime = (date: Date, hours: number, minutes: number, seconds: number): Date => {\n date?.setHours(hours, minutes, seconds, 0);\n return date;\n };\n}\n\nexport const provideEntryNativeTimeAdapter = (dateTimeFormats: EntryDateTimeFormats = defaultDateTimeFormats): Provider[] => [\n { provide: EntryTimeAdapter, useClass: EntryNativeTimeAdapter },\n { provide: ENTRY_MAT_DATE_TIME_FORMATS, useValue: dateTimeFormats }\n ];","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["takeUntil","i2.EntryTimeAdapter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"enigmatry-entry-components-common.mjs","sources":["../../../../libs/entry-components/common/constants.ts","../../../../libs/entry-components/common/directives/auto-disable-button.directive.ts","../../../../libs/entry-components/common/directives/ng-control-accessor.directive.ts","../../../../libs/entry-components/common/directives/noop-control-value-accessor.ts","../../../../libs/entry-components/common/directives/scroll-to-invalid-control.directive.ts","../../../../libs/entry-components/common/event-plugins/event-manager.plugin.ts","../../../../libs/entry-components/common/event-plugins/entry-event-manager.plugin.ts","../../../../libs/entry-components/common/event-plugins/debounce.plugin.ts","../../../../libs/entry-components/common/event-plugins/throttle.plugin.ts","../../../../libs/entry-components/common/common.module.ts","../../../../libs/entry-components/common/utils/provide-config.ts","../../../../libs/entry-components/common/interceptors/accept-language.interceptor.ts","../../../../libs/entry-components/common/date-time/entry-time-adapter.ts","../../../../libs/entry-components/common/date-time/entry-date-time-adapter.ts","../../../../libs/entry-components/common/date-time/entry-date-time-formats.ts","../../../../libs/entry-components/common/date-time/native-time-adapter.ts","../../../../libs/entry-components/common/enigmatry-entry-components-common.ts"],"sourcesContent":["export const NG_VALID_CLASS = '.ng-valid';\r\nexport const NG_INVALID_CLASS = '.ng-invalid';\r\n","import { NumberInput, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Directive, ElementRef, inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subject, fromEvent, timer } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { NG_VALID_CLASS } from '../constants';\n\n/**\n * Auto disable button after click or submit with entry-auto-disable directive.\n * Directive is applied to 'button[entry-auto-disable]:not([disabled])'\n * Default auto disable interval is 2000ms (2sec)\n *\n * Usage\n * <button mat-button entry-submit-button entry-auto-disable type=\"submit\">Submit</button>\n * or with auto disabled interval in milliseconds\n * <button mat-button entry-submit-button entry-auto-disable=\"5000\" type=\"submit\">Submit</button>\n */\n@Directive({\n standalone: true,\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'button[entry-auto-disable]:not([disabled])'\n})\nexport class AutoDisableButtonDirective implements OnInit, OnDestroy {\n private _destroy$ = new Subject<void>();\n private _disableIntervalInMs = 2000;\n private readonly elementRef: ElementRef<HTMLButtonElement> = inject(ElementRef);\n\n @Input('entry-auto-disable')\n get disableIntervalInMs() {\n return this._disableIntervalInMs;\n }\n set disableIntervalInMs(value: NumberInput) {\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\n this._disableIntervalInMs = coerceNumberProperty(value, 2000);\n }\n\n ngOnInit(): void {\n const button = this.elementRef.nativeElement;\n const isTypeSubmit = button.getAttribute('type') === 'submit';\n const form: HTMLFormElement | null = button.closest('form');\n\n if (isTypeSubmit && form) {\n // listen to form submit event\n fromEvent(form, 'submit')\n .pipe(takeUntil(this._destroy$))\n .subscribe(_ => {\n if (form.matches(NG_VALID_CLASS)) {\n this.disableButton(this._disableIntervalInMs);\n }\n });\n } else {\n // otherwise listen to click event\n fromEvent(button, 'click')\n .pipe(takeUntil(this._destroy$))\n .subscribe(_ => this.disableButton(this._disableIntervalInMs));\n }\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private disableButton(disablePeriodInMs: number): void {\n const button = this.elementRef.nativeElement;\n\n button.disabled = true;\n\n timer(disablePeriodInMs)\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => button.disabled = false);\n }\n}\n","import { Directive, OnDestroy, OnInit, inject } from '@angular/core';\nimport { FormControlDirective, FormControlName, NgControl, NgModel, UntypedFormControl } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Directive({\n standalone: true\n})\nexport class NgControlAccessorDirective implements OnDestroy, OnInit {\n control: UntypedFormControl;\n\n ngControl = inject(NgControl, {\n optional: true,\n self: true\n });\n\n private destroy$ = new Subject<void>();\n\n ngOnInit() {\n if (this.ngControl instanceof FormControlDirective ||\n this.ngControl instanceof FormControlName ||\n this.ngControl instanceof NgModel) {\n this.control = this.ngControl.control;\n } else {\n this.control = new UntypedFormControl();\n }\n\n if (this.ngControl instanceof NgModel) {\n const ngModel = this.ngControl as NgModel;\n ngModel.control.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(newValue => {\n if (ngModel.model !== newValue || ngModel.viewModel !== newValue) {\n ngModel.viewToModelUpdate(newValue);\n }\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}","/* eslint-disable @typescript-eslint/no-empty-function */\nimport { Directive } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Directive({\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: NoopControlValueAccessorDirective\n }\n ]\n})\nexport class NoopControlValueAccessorDirective implements ControlValueAccessor {\n writeValue = (_obj: any): void => { };\n registerOnChange = (_fn: any): void => { };\n registerOnTouched = (_fn: any): void => { };\n setDisabledState = (_isDisabled: boolean): void => { };\n}","import { Directive, ElementRef, inject, OnDestroy, OnInit } from '@angular/core';\r\nimport { ControlContainer } from '@angular/forms';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { NG_INVALID_CLASS } from '../constants';\r\n\r\n/**\r\n * Scroll to first invalid control when form is submitted.\r\n * Directive is applied to 'form[formGroup],form[ngForm]' (reactive or template driven forms)\r\n */\r\n@Directive({\r\n standalone: true,\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: 'form[formGroup],form[ngForm]'\r\n})\r\nexport class ScrollToInvalidControlDirective implements OnInit, OnDestroy {\r\n private destroy$ = new Subject<void>();\r\n private readonly form = inject(ControlContainer, { self: true });\r\n private readonly elementRef = inject(ElementRef<HTMLFormElement>);\r\n\r\n ngOnInit(): void {\r\n fromEvent(this.elementRef.nativeElement, 'submit')\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(_ => {\r\n if (this.form.invalid) {\r\n this.scrollToInvalidControl();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n private scrollToInvalidControl() {\r\n const firstInvalidControl: HTMLElement | null =\r\n this.elementRef.nativeElement.querySelector(NG_INVALID_CLASS);\r\n\r\n if (firstInvalidControl) {\r\n firstInvalidControl.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'center' // vertical alignment\r\n });\r\n }\r\n }\r\n}\r\n","import { EventManager } from '@angular/platform-browser';\n\n/**\n * abstract class EventManagerPlugin will be exposed in the public api\n * https://github.com/angular/angular/pull/49969\n *\n * Until then creating it from reference\n * https://github.com/angular/angular/blob/main/packages/platform-browser/src/dom/events/event_manager.ts#L93\n *\n * How to create custom event modifiers\n * https://github.com/Tinkoff/ng-event-plugins,\n * https://github.com/angular/angular/blob/main/packages/platform-browser/src/dom/events/key_events.ts\n * https://netbasal.com/lifting-the-veil-insights-into-angulars-eventmanagerplugin-ed9d14cbb31a\n */\nexport abstract class EventManagerPlugin {\n // Using non-null assertion because it's set by EventManager's constructor\n manager!: EventManager;\n\n /** Should return `true` for every event name that should be supported by this plugin */\n abstract supports(eventName: string): boolean;\n\n /**\n * Registers a handler for a specific element and event.\n *\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n abstract addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\n}","import { EventManagerPlugin } from './event-manager.plugin';\n\n/**\n * Entry event plugin base class\n */\nexport abstract class EntryEventManagerPlugin extends EventManagerPlugin {\n abstract modifier: string;\n\n /** return `true` for every event name that has specified modifier */\n supports(eventName: string): boolean {\n return eventName.includes(this.modifier);\n }\n\n /** unwrap params e.g. (click.debounce.500) => ['debounce', 500] */\n unwrapParams(eventName: string): string[] {\n return eventName\n .substring(eventName.indexOf(this.modifier))\n .split('.')\n .filter(x => !!x);\n }\n\n /** get event name e.g. (click.debounce.500) => click */\n unwrapEventName(eventName: string): string {\n return eventName.substring(0, eventName.indexOf(this.modifier));\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { debounce } from 'lodash-es';\r\nimport { EntryEventManagerPlugin } from './entry-event-manager.plugin';\r\n\r\n/**\r\n * Provides event plugin for debouncing events.\r\n *\r\n * How to use:\r\n * <button (click.debounce)=\"doSomething($event)\">\r\n * <input (keyup.debounce.500)=\"doSomething($event)\">\r\n */\r\n@Injectable()\r\nexport class DebounceEventPlugin extends EntryEventManagerPlugin {\r\n modifier = '.debounce';\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\r\n addEventListener(element: HTMLElement, eventName: string, originalHandler: Function): Function {\r\n // e.g. (click.debounce.500)\r\n const [_modifier, milliseconds = 500, option = 'leading'] = this.unwrapParams(eventName);\r\n\r\n // run original handler inside ngZone in which the event occurred\r\n const innerHandler = (event: any) => this.manager.getZone().runGuarded(() => originalHandler(event));\r\n\r\n // create debounced handler\r\n const debouncedHandler = debounce(innerHandler, milliseconds as number,\r\n { leading: option === 'leading', trailing: option === 'trailing' });\r\n\r\n // register event with debounced handler\r\n return this.manager.addEventListener(element, this.unwrapEventName(eventName), debouncedHandler);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { throttle } from 'lodash-es';\r\nimport { EntryEventManagerPlugin } from './entry-event-manager.plugin';\r\n\r\n/**\r\n * Provides event plugin for throttling events.\r\n *\r\n * How to use:\r\n * <button (click.throttle)=\"doSomething($event)\">\r\n * <input (keyup.throttle.500)=\"doSomething($event)\">\r\n */\r\n@Injectable()\r\nexport class ThrottleEventPlugin extends EntryEventManagerPlugin {\r\n modifier = '.throttle';\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\r\n addEventListener(element: HTMLElement, eventName: string, originalHandler: Function): Function {\r\n // e.g. (keyup.throttle.500)\r\n const [_modifier, milliseconds = 500] = this.unwrapParams(eventName);\r\n\r\n // run original handler inside ngZone in which the event occurred\r\n const innerHandler = (event: any) => this.manager.getZone().runGuarded(() => originalHandler(event));\r\n\r\n // create throttled handler\r\n const throttledHandler = throttle(innerHandler, milliseconds as number);\r\n\r\n // register event with throttled handler\r\n return this.manager.addEventListener(element, this.unwrapEventName(eventName), throttledHandler);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule, Provider } from '@angular/core';\n\n/** Directives */\n\nimport { EVENT_MANAGER_PLUGINS } from '@angular/platform-browser';\nimport { AutoDisableButtonDirective } from './directives/auto-disable-button.directive';\nimport { NgControlAccessorDirective } from './directives/ng-control-accessor.directive';\nimport { NoopControlValueAccessorDirective } from './directives/noop-control-value-accessor';\nimport { ScrollToInvalidControlDirective } from './directives/scroll-to-invalid-control.directive';\n\n/** Event plugins */\n\nimport { DebounceEventPlugin } from './event-plugins/debounce.plugin';\nimport { ThrottleEventPlugin } from './event-plugins/throttle.plugin';\n\nconst DIRECTIVES = [\n AutoDisableButtonDirective,\n ScrollToInvalidControlDirective,\n NoopControlValueAccessorDirective,\n NgControlAccessorDirective\n];\n\nconst EVENT_PLUGINS = [\n DebounceEventPlugin,\n ThrottleEventPlugin\n];\n\nexport const NG_EVENT_PLUGINS: Provider[] = EVENT_PLUGINS.map(useClass => ({\n provide: EVENT_MANAGER_PLUGINS,\n multi: true,\n useClass\n}));\n\n\n@NgModule({\n declarations: [\n ],\n imports: [\n CommonModule,\n DIRECTIVES\n ],\n exports: [\n DIRECTIVES\n ]\n})\nexport class EntryCommonModule {\n // Has to be function since modules needs to work with statically defined providers\n // eslint-disable-next-line prefer-arrow-functions/prefer-arrow-functions\n static forRoot(): ModuleWithProviders<EntryCommonModule> {\n return {\n ngModule: EntryCommonModule,\n providers: NG_EVENT_PLUGINS\n };\n }\n}\n","import { InjectionToken, Provider } from '@angular/core';\r\n\r\nexport const createInjectionToken = <T>(defaultValue: T): InjectionToken<T> => new InjectionToken<T>(defaultValue?.constructor.name ?? 'DefaultToken',\r\n {\r\n providedIn: 'root',\r\n factory: () => defaultValue\r\n }\r\n );\r\n\r\nexport const provideConfig = <T>(token: InjectionToken<T>, factory: () => T): Provider => ({\r\n provide: token,\r\n useFactory: factory\r\n });\r\n","import { HttpRequest, HttpEvent, HttpInterceptorFn, HttpHandlerFn } from '@angular/common/http';\nimport { LOCALE_ID, inject } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n/**\n * Sets the Accept-Language HTTP request header using the value from LOCALE_ID.\n */\nexport const acceptLanguageInterceptor: HttpInterceptorFn = (request: HttpRequest<unknown>, next: HttpHandlerFn): Observable<HttpEvent<unknown>> => {\n const localeId = inject(LOCALE_ID);\n\n const newRequest = request.clone({\n headers: request.headers.set('Accept-Language', localeId)\n });\n return next(newRequest);\n};\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport abstract class EntryTimeAdapter<D> {\n abstract getHours(date: D): number;\n abstract getMinutes(date: D): number;\n abstract getSeconds(date: D): number;\n abstract setTime(date: D, hours: number, minutes: number, seconds: number): D;\n}","/* eslint-disable @angular-eslint/prefer-inject */\nimport { Inject, Injectable, Optional, SkipSelf } from '@angular/core';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { EntryTimeAdapter } from './entry-time-adapter';\n\n/**\n * Extends DateAdapter with time support. Used by EntryDateTimePicker component.\n */\n@Injectable()\nexport class EntryDateTimeAdapter<D, L> extends DateAdapter<D, L> implements EntryTimeAdapter<D> {\n\tconstructor(\n\t\t@Optional() @Inject(MAT_DATE_LOCALE) matDateLocale: L,\n\t\t@SkipSelf() private readonly dateAdapter: DateAdapter<D, L>,\n\t\tprivate readonly timeAdapter: EntryTimeAdapter<D>) {\n\t\tsuper();\n\t\tthis.dateAdapter.setLocale(matDateLocale);\n\t}\n\n\tgetYear(date: D): number {\n\t\treturn this.dateAdapter.getYear(date);\n\t}\n\n\tgetMonth(date: D): number {\n\t\treturn this.dateAdapter.getMonth(date);\n\t}\n\n\tgetDate(date: D): number {\n\t\treturn this.dateAdapter.getDate(date);\n\t}\n\n\tgetDayOfWeek(date: D): number {\n\t\treturn this.dateAdapter.getDayOfWeek(date);\n\t}\n\n\tgetMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n\t\treturn this.dateAdapter.getMonthNames(style);\n\t}\n\n\tgetDateNames(): string[] {\n\t\treturn this.dateAdapter.getDateNames();\n\t}\n\n\tgetDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n\t\treturn this.dateAdapter.getDayOfWeekNames(style);\n\t}\n\n\tgetYearName(date: D): string {\n\t\treturn this.dateAdapter.getYearName(date);\n\t}\n\n\tgetFirstDayOfWeek(): number {\n\t\treturn this.dateAdapter.getFirstDayOfWeek();\n\t}\n\n\tgetNumDaysInMonth(date: D): number {\n\t\treturn this.dateAdapter.getNumDaysInMonth(date);\n\t}\n\n\tclone(date: D): D {\n\t\treturn this.dateAdapter.clone(date);\n\t}\n\n\tcreateDate(year: number, month: number, date: number): D {\n\t\treturn this.dateAdapter.createDate(year, month, date);\n\t}\n\n\ttoday(): D {\n\t\treturn this.dateAdapter.today();\n\t}\n\n\tparse(value: any, parseFormat: any): D {\n\t\treturn this.dateAdapter.parse(value, parseFormat) as D;\n\t}\n\n\tformat(date: D, displayFormat: any): string {\n\t\treturn this.dateAdapter.format(date, displayFormat);\n\t}\n\n\taddCalendarYears(date: D, years: number): D {\n\t\treturn this.dateAdapter.addCalendarYears(date, years);\n\t}\n\n\taddCalendarMonths(date: D, months: number): D {\n\t\treturn this.dateAdapter.addCalendarMonths(date, months);\n\t}\n\n\taddCalendarDays(date: D, days: number): D {\n\t\treturn this.dateAdapter.addCalendarDays(date, days);\n\t}\n\n\ttoIso8601(date: D): string {\n\t\treturn this.dateAdapter.toIso8601(date);\n\t}\n\n\tisDateInstance(obj: any): boolean {\n\t\treturn this.dateAdapter.isDateInstance(obj);\n\t}\n\n\tisValid(date: D): boolean {\n\t\treturn this.dateAdapter.isValid(date);\n\t}\n\n\tinvalid(): D {\n\t\treturn this.dateAdapter.invalid();\n\t}\n\n\toverride getHours(date: D): number {\n\t\treturn this.timeAdapter.getHours(date);\n\t}\n\n\toverride getMinutes(date: D): number {\n\t\treturn this.timeAdapter.getMinutes(date);\n\t}\n\n\toverride getSeconds(date: D): number {\n\t\treturn this.timeAdapter.getSeconds(date);\n\t}\n\n\toverride setTime(date: D, hours: number, minutes: number, seconds: number): D {\n\t\treturn this.timeAdapter.setTime(date, hours, minutes, seconds);\n\t}\n\n\tis12HoursClock(displayFormat: any): boolean {\n\t\tconst now = this.format(this.today(), displayFormat).toLowerCase();\n\t\treturn now.includes('a') || now.includes('p');\n\t}\n\n\toverride compareDate(first: D, second: D): number {\n\t\treturn this.getYear(first) - this.getYear(second) ||\n\t\t\tthis.getMonth(first) - this.getMonth(second) ||\n\t\t\tthis.getDate(first) - this.getDate(second) ||\n\t\t\tthis.getHours(first) - this.getHours(second) ||\n\t\t\tthis.getMinutes(first) - this.getMinutes(second) ||\n\t\t\tthis.getSeconds(first) - this.getSeconds(second);\n\t}\n}\n","import { InjectionToken } from '@angular/core';\nimport { MatDateFormats } from '@angular/material/core';\n\nexport type EntryDateTimeFormats = MatDateFormats;\n\nexport const defaultDateTimeFormats = {\n parse: {\n dateInput: ['dd-MM-yyyy', 'dd-MM-yyyy HH', 'dd-MM-yyyy HH:mm', 'dd-MM-yyyy HH:mm:ss']\n },\n display: {\n dateInput: 'dd-MM-yyyy HH:mm',\n monthYearLabel: { year: 'numeric', month: 'short' },\n dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },\n monthYearA11yLabel: { year: 'numeric', month: 'long' }\n }\n};\n\nexport const ENTRY_MAT_DATE_TIME_FORMATS = new InjectionToken<EntryDateTimeFormats>('entry-date-time-formats');","import { Injectable, Provider } from '@angular/core';\nimport { EntryDateTimeFormats, defaultDateTimeFormats, ENTRY_MAT_DATE_TIME_FORMATS } from './entry-date-time-formats';\nimport { EntryTimeAdapter } from './entry-time-adapter';\n\n@Injectable()\nexport class EntryNativeTimeAdapter extends EntryTimeAdapter<Date> {\n getHours = (date: Date): number => date?.getHours();\n\n getMinutes = (date: Date): number => date?.getMinutes();\n\n getSeconds = (date: Date): number => date?.getSeconds();\n\n setTime = (date: Date, hours: number, minutes: number, seconds: number): Date => {\n date?.setHours(hours, minutes, seconds, 0);\n return date;\n };\n}\n\nexport const provideEntryNativeTimeAdapter = (dateTimeFormats: EntryDateTimeFormats = defaultDateTimeFormats): Provider[] => [\n { provide: EntryTimeAdapter, useClass: EntryNativeTimeAdapter },\n { provide: ENTRY_MAT_DATE_TIME_FORMATS, useValue: dateTimeFormats }\n ];","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["takeUntil","i2.EntryTimeAdapter"],"mappings":"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"}
|