@skyux/autonumeric 5.9.4 → 6.0.0-beta.10

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.
Files changed (25) hide show
  1. package/documentation.json +11 -11
  2. package/esm2020/index.mjs +7 -0
  3. package/esm2020/lib/modules/autonumeric/autonumeric-options-provider.mjs +24 -0
  4. package/esm2020/lib/modules/autonumeric/autonumeric-options.mjs +2 -0
  5. package/esm2020/lib/modules/autonumeric/autonumeric.directive.mjs +168 -0
  6. package/esm2020/lib/modules/autonumeric/autonumeric.module.mjs +19 -0
  7. package/esm2020/skyux-autonumeric.mjs +5 -0
  8. package/fesm2015/{skyux-autonumeric.js → skyux-autonumeric.mjs} +12 -14
  9. package/fesm2015/skyux-autonumeric.mjs.map +1 -0
  10. package/{esm2015/lib/modules/autonumeric/autonumeric.directive.js → fesm2020/skyux-autonumeric.mjs} +55 -16
  11. package/fesm2020/skyux-autonumeric.mjs.map +1 -0
  12. package/package.json +25 -9
  13. package/bundles/skyux-autonumeric.umd.js +0 -252
  14. package/esm2015/index.js +0 -7
  15. package/esm2015/index.js.map +0 -1
  16. package/esm2015/lib/modules/autonumeric/autonumeric-options-provider.js +0 -24
  17. package/esm2015/lib/modules/autonumeric/autonumeric-options-provider.js.map +0 -1
  18. package/esm2015/lib/modules/autonumeric/autonumeric-options.js +0 -2
  19. package/esm2015/lib/modules/autonumeric/autonumeric-options.js.map +0 -1
  20. package/esm2015/lib/modules/autonumeric/autonumeric.directive.js.map +0 -1
  21. package/esm2015/lib/modules/autonumeric/autonumeric.module.js +0 -19
  22. package/esm2015/lib/modules/autonumeric/autonumeric.module.js.map +0 -1
  23. package/esm2015/skyux-autonumeric.js +0 -5
  24. package/esm2015/skyux-autonumeric.js.map +0 -1
  25. package/fesm2015/skyux-autonumeric.js.map +0 -1
@@ -166,7 +166,7 @@
166
166
  "sources": [
167
167
  {
168
168
  "fileName": "projects/autonumeric/src/modules/autonumeric/autonumeric.directive.ts",
169
- "line": 70,
169
+ "line": 68,
170
170
  "character": 2
171
171
  }
172
172
  ],
@@ -267,7 +267,7 @@
267
267
  "sources": [
268
268
  {
269
269
  "fileName": "projects/autonumeric/src/modules/autonumeric/autonumeric.directive.ts",
270
- "line": 57,
270
+ "line": 55,
271
271
  "character": 13
272
272
  }
273
273
  ],
@@ -313,7 +313,7 @@
313
313
  "sources": [
314
314
  {
315
315
  "fileName": "projects/autonumeric/src/modules/autonumeric/autonumeric.directive.ts",
316
- "line": 106,
316
+ "line": 104,
317
317
  "character": 9
318
318
  }
319
319
  ],
@@ -350,7 +350,7 @@
350
350
  "sources": [
351
351
  {
352
352
  "fileName": "projects/autonumeric/src/modules/autonumeric/autonumeric.directive.ts",
353
- "line": 79,
353
+ "line": 77,
354
354
  "character": 9
355
355
  }
356
356
  ],
@@ -401,7 +401,7 @@
401
401
  "sources": [
402
402
  {
403
403
  "fileName": "projects/autonumeric/src/modules/autonumeric/autonumeric.directive.ts",
404
- "line": 168,
404
+ "line": 166,
405
405
  "character": 9
406
406
  }
407
407
  ],
@@ -430,7 +430,7 @@
430
430
  "sources": [
431
431
  {
432
432
  "fileName": "projects/autonumeric/src/modules/autonumeric/autonumeric.directive.ts",
433
- "line": 159,
433
+ "line": 157,
434
434
  "character": 9
435
435
  }
436
436
  ],
@@ -512,7 +512,7 @@
512
512
  "sources": [
513
513
  {
514
514
  "fileName": "projects/autonumeric/src/modules/autonumeric/autonumeric.directive.ts",
515
- "line": 163,
515
+ "line": 161,
516
516
  "character": 9
517
517
  }
518
518
  ],
@@ -581,7 +581,7 @@
581
581
  "sources": [
582
582
  {
583
583
  "fileName": "projects/autonumeric/src/modules/autonumeric/autonumeric.directive.ts",
584
- "line": 114,
584
+ "line": 112,
585
585
  "character": 9
586
586
  }
587
587
  ],
@@ -634,7 +634,7 @@
634
634
  "sources": [
635
635
  {
636
636
  "fileName": "projects/autonumeric/src/modules/autonumeric/autonumeric.directive.ts",
637
- "line": 139,
637
+ "line": 137,
638
638
  "character": 9
639
639
  }
640
640
  ],
@@ -688,7 +688,7 @@
688
688
  "sources": [
689
689
  {
690
690
  "fileName": "projects/autonumeric/src/modules/autonumeric/autonumeric.directive.ts",
691
- "line": 118,
691
+ "line": 116,
692
692
  "character": 9
693
693
  }
694
694
  ],
@@ -761,7 +761,7 @@
761
761
  "sources": [
762
762
  {
763
763
  "fileName": "projects/autonumeric/src/modules/autonumeric/autonumeric.directive.ts",
764
- "line": 50,
764
+ "line": 48,
765
765
  "character": 13
766
766
  }
767
767
  ],
@@ -0,0 +1,7 @@
1
+ export * from './lib/modules/autonumeric/autonumeric-options-provider';
2
+ export * from './lib/modules/autonumeric/autonumeric-options';
3
+ export * from './lib/modules/autonumeric/autonumeric.module';
4
+ // Components and directives must be exported to support Angular's "partial" Ivy compiler.
5
+ // Obscure names are used to indicate types are not part of the public API.
6
+ export { SkyAutonumericDirective as λ1 } from './lib/modules/autonumeric/autonumeric.directive';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYXV0b251bWVyaWMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLDhDQUE4QyxDQUFDO0FBRTdELDBGQUEwRjtBQUMxRiwyRUFBMkU7QUFDM0UsT0FBTyxFQUFFLHVCQUF1QixJQUFJLEVBQUUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9hdXRvbnVtZXJpYy9hdXRvbnVtZXJpYy1vcHRpb25zLXByb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvYXV0b251bWVyaWMvYXV0b251bWVyaWMtb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2F1dG9udW1lcmljL2F1dG9udW1lcmljLm1vZHVsZSc7XG5cbi8vIENvbXBvbmVudHMgYW5kIGRpcmVjdGl2ZXMgbXVzdCBiZSBleHBvcnRlZCB0byBzdXBwb3J0IEFuZ3VsYXIncyBcInBhcnRpYWxcIiBJdnkgY29tcGlsZXIuXG4vLyBPYnNjdXJlIG5hbWVzIGFyZSB1c2VkIHRvIGluZGljYXRlIHR5cGVzIGFyZSBub3QgcGFydCBvZiB0aGUgcHVibGljIEFQSS5cbmV4cG9ydCB7IFNreUF1dG9udW1lcmljRGlyZWN0aXZlIGFzIM67MSB9IGZyb20gJy4vbGliL21vZHVsZXMvYXV0b251bWVyaWMvYXV0b251bWVyaWMuZGlyZWN0aXZlJztcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Provides options to the underlying [autoNumeric utility](https://github.com/autoNumeric/autoNumeric).
5
+ * This can set global options on multiple input fields.
6
+ */
7
+ export class SkyAutonumericOptionsProvider {
8
+ /**
9
+ * Specifies the value for a settings object to pass to the autoNumeric utility.
10
+ * This overrides any default options specified by the `skyAutonumeric` attribute.
11
+ */
12
+ getConfig() {
13
+ return {};
14
+ }
15
+ }
16
+ SkyAutonumericOptionsProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericOptionsProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17
+ SkyAutonumericOptionsProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericOptionsProvider, providedIn: 'root' });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericOptionsProvider, decorators: [{
19
+ type: Injectable,
20
+ args: [{
21
+ providedIn: 'root',
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b251bWVyaWMtb3B0aW9ucy1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hdXRvbnVtZXJpYy9zcmMvbGliL21vZHVsZXMvYXV0b251bWVyaWMvYXV0b251bWVyaWMtb3B0aW9ucy1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQzs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sNkJBQTZCO0lBQ3hDOzs7T0FHRztJQUNJLFNBQVM7UUFDZCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7OzBIQVBVLDZCQUE2Qjs4SEFBN0IsNkJBQTZCLGNBRjVCLE1BQU07MkZBRVAsNkJBQTZCO2tCQUh6QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5QXV0b251bWVyaWNPcHRpb25zIH0gZnJvbSAnLi9hdXRvbnVtZXJpYy1vcHRpb25zJztcblxuLyoqXG4gKiBQcm92aWRlcyBvcHRpb25zIHRvIHRoZSB1bmRlcmx5aW5nIFthdXRvTnVtZXJpYyB1dGlsaXR5XShodHRwczovL2dpdGh1Yi5jb20vYXV0b051bWVyaWMvYXV0b051bWVyaWMpLlxuICogVGhpcyBjYW4gc2V0IGdsb2JhbCBvcHRpb25zIG9uIG11bHRpcGxlIGlucHV0IGZpZWxkcy5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreUF1dG9udW1lcmljT3B0aW9uc1Byb3ZpZGVyIHtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgdmFsdWUgZm9yIGEgc2V0dGluZ3Mgb2JqZWN0IHRvIHBhc3MgdG8gdGhlIGF1dG9OdW1lcmljIHV0aWxpdHkuXG4gICAqIFRoaXMgb3ZlcnJpZGVzIGFueSBkZWZhdWx0IG9wdGlvbnMgc3BlY2lmaWVkIGJ5IHRoZSBgc2t5QXV0b251bWVyaWNgIGF0dHJpYnV0ZS5cbiAgICovXG4gIHB1YmxpYyBnZXRDb25maWcoKTogU2t5QXV0b251bWVyaWNPcHRpb25zIHtcbiAgICByZXR1cm4ge307XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b251bWVyaWMtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hdXRvbnVtZXJpYy9zcmMvbGliL21vZHVsZXMvYXV0b251bWVyaWMvYXV0b251bWVyaWMtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEF1dG9OdW1lcmljIGZyb20gJ2F1dG9udW1lcmljJztcblxuLyoqXG4gKiBTcGVjaWZpZXMgY3VzdG9tIG9wdGlvbnMgdG8gcHJvdmlkZSBkaXJlY3RseSB0byB0aGUgdW5kZXJseWluZyBbYXV0b051bWVyaWMgdXRpbGl0eV0oaHR0cHM6Ly9naXRodWIuY29tL2F1dG9OdW1lcmljL2F1dG9OdW1lcmljKS5cbiAqIFRoZSB2YWx1ZSBjYW4gYmUgc2V0IHRvIGBzdHJpbmdgLCB3aGljaCBpcyBhbiBhbGlhcyB0aGF0IHJlcHJlc2VudHNcbiAqIGEgW3NldCBvZiBwcmVkZWZpbmVkIHNldCBvZiBvcHRpb25zXShodHRwczovL2dpdGh1Yi5jb20vYXV0b051bWVyaWMvYXV0b051bWVyaWMjcHJlZGVmaW5lZC1vcHRpb25zKVxuICogZm9yIGEgY3VycmVuY3kgb3IgbGFuZ3VhZ2UsIG9yIGBPcHRpb25zYCwgd2hpY2ggaXMgYVxuICogW2N1c3RvbSBzZXQgb2Ygb3B0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL2F1dG9OdW1lcmljL2F1dG9OdW1lcmljI29wdGlvbnMpXG4gKiB0aGF0IG92ZXJyaWRlIGFueSBkZWZhdWx0IG9wdGlvbnMgdGhhdCB0aGUgYHNreUF1dG9udW1lcmljYCBhdHRyaWJ1dGUgc3BlY2lmaWVzLlxuICovXG5leHBvcnQgdHlwZSBTa3lBdXRvbnVtZXJpY09wdGlvbnMgPVxuICB8IHN0cmluZ1xuICB8IGtleW9mIEF1dG9OdW1lcmljLlByZWRlZmluZWRPcHRpb25zXG4gIHwgQXV0b051bWVyaWMuT3B0aW9ucztcbiJdfQ==
@@ -0,0 +1,168 @@
1
+ import { ChangeDetectorRef, Directive, ElementRef, HostListener, Input, Renderer2, forwardRef, } from '@angular/core';
2
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
3
+ import AutoNumeric from 'autonumeric';
4
+ import { Subject, fromEvent } from 'rxjs';
5
+ import { takeUntil } from 'rxjs/operators';
6
+ import { SkyAutonumericOptionsProvider } from './autonumeric-options-provider';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./autonumeric-options-provider";
9
+ const SKY_AUTONUMERIC_VALUE_ACCESSOR = {
10
+ provide: NG_VALUE_ACCESSOR,
11
+ useExisting: forwardRef(() => SkyAutonumericDirective),
12
+ multi: true,
13
+ };
14
+ const SKY_AUTONUMERIC_VALIDATOR = {
15
+ provide: NG_VALIDATORS,
16
+ useExisting: forwardRef(() => SkyAutonumericDirective),
17
+ multi: true,
18
+ };
19
+ /**
20
+ * Wraps the [autoNumeric utility](https://github.com/autoNumeric/autoNumeric) to format
21
+ * any type of number, including currency.
22
+ */
23
+ export class SkyAutonumericDirective {
24
+ constructor(elementRef, globalConfig, renderer, changeDetector) {
25
+ this.elementRef = elementRef;
26
+ this.globalConfig = globalConfig;
27
+ this.renderer = renderer;
28
+ this.changeDetector = changeDetector;
29
+ this.isFirstChange = true;
30
+ this.ngUnsubscribe = new Subject();
31
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
32
+ this.onChange = (_) => { };
33
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
34
+ this.onTouched = () => { };
35
+ this.autonumericInstance = new AutoNumeric(this.elementRef.nativeElement);
36
+ }
37
+ /**
38
+ * Assigns the name of a property from `SkyAutonumericOptionsProvider`.
39
+ */
40
+ set skyAutonumeric(value) {
41
+ this.autonumericOptions = this.mergeOptions(value);
42
+ this.updateAutonumericInstance();
43
+ }
44
+ ngOnInit() {
45
+ // Ensure that we set the global config even if no local config has been given.
46
+ if (!this.autonumericOptions) {
47
+ this.autonumericOptions = this.globalConfig.getConfig();
48
+ }
49
+ this.updateAutonumericInstance();
50
+ fromEvent(this.elementRef.nativeElement, 'input')
51
+ .pipe(takeUntil(this.ngUnsubscribe))
52
+ .subscribe(() => {
53
+ const numericValue = this.getNumericValue();
54
+ /* istanbul ignore else */
55
+ if (this.value !== numericValue) {
56
+ this.value = numericValue;
57
+ this.onChange(numericValue);
58
+ }
59
+ /* istanbul ignore else */
60
+ if (this.control && !this.control.dirty) {
61
+ this.control.markAsDirty();
62
+ }
63
+ this.changeDetector.markForCheck();
64
+ });
65
+ }
66
+ ngOnDestroy() {
67
+ this.ngUnsubscribe.next();
68
+ this.ngUnsubscribe.complete();
69
+ }
70
+ /**
71
+ * Implemented as part of ControlValueAccessor.
72
+ */
73
+ setDisabledState(value) {
74
+ this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', value);
75
+ }
76
+ writeValue(value) {
77
+ if (this.value !== value) {
78
+ this.value = value;
79
+ this.onChange(value);
80
+ // Mark the control as "pristine" if it is initialized with a value.
81
+ const initializedWithValue = this.isFirstChange && this.control && this.value !== null;
82
+ if (initializedWithValue) {
83
+ this.isFirstChange = false;
84
+ this.control.markAsPristine();
85
+ }
86
+ }
87
+ if (typeof value === 'number') {
88
+ this.autonumericInstance.set(value);
89
+ }
90
+ else {
91
+ this.autonumericInstance.clear();
92
+ }
93
+ }
94
+ validate(control) {
95
+ const noErrors = null;
96
+ if (!this.control) {
97
+ this.control = control;
98
+ }
99
+ if (control.value === null || control.value === undefined) {
100
+ return noErrors;
101
+ }
102
+ if (typeof control.value !== 'number') {
103
+ return {
104
+ notTypeOfNumber: { value: control.value },
105
+ };
106
+ }
107
+ return noErrors;
108
+ }
109
+ registerOnChange(fn) {
110
+ this.onChange = fn;
111
+ }
112
+ registerOnTouched(fn) {
113
+ this.onTouched = fn;
114
+ }
115
+ onBlur() {
116
+ this.onTouched();
117
+ }
118
+ getNumericValue() {
119
+ const inputValue = this.getInputValue();
120
+ return inputValue && !this.isInputValueTheCurrencySymbol(inputValue)
121
+ ? this.autonumericInstance.getNumber()
122
+ : undefined;
123
+ }
124
+ /**
125
+ * Due to AutoNumeric's hover logic - when AutoNumeric has a currency symbol the value
126
+ * that we get back on empty fields will be the currency symbol.
127
+ * The following logic ensures that we don't accidentally set
128
+ * a form value when the only input was the programatically-added currency symbol.
129
+ */
130
+ isInputValueTheCurrencySymbol(inputValue) {
131
+ /* istanbul ignore next */
132
+ const currencySymbol = (this.autonumericOptions?.currencySymbol ?? '').trim();
133
+ return !!currencySymbol && inputValue === currencySymbol;
134
+ }
135
+ getInputValue() {
136
+ return this.elementRef.nativeElement.value;
137
+ }
138
+ updateAutonumericInstance() {
139
+ this.autonumericInstance.update(this.autonumericOptions);
140
+ }
141
+ mergeOptions(value) {
142
+ const globalOptions = this.globalConfig.getConfig();
143
+ let newOptions;
144
+ if (typeof value === 'string') {
145
+ const predefinedOptions = AutoNumeric.getPredefinedOptions();
146
+ newOptions = predefinedOptions[value];
147
+ }
148
+ else {
149
+ newOptions = value;
150
+ }
151
+ return Object.assign({}, globalOptions, newOptions);
152
+ }
153
+ }
154
+ SkyAutonumericDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericDirective, deps: [{ token: i0.ElementRef }, { token: i1.SkyAutonumericOptionsProvider }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
155
+ SkyAutonumericDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: SkyAutonumericDirective, selector: "input[skyAutonumeric]", inputs: { skyAutonumeric: "skyAutonumeric" }, host: { listeners: { "blur": "onBlur()" } }, providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR], ngImport: i0 });
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericDirective, decorators: [{
157
+ type: Directive,
158
+ args: [{
159
+ selector: 'input[skyAutonumeric]',
160
+ providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR],
161
+ }]
162
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SkyAutonumericOptionsProvider }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { skyAutonumeric: [{
163
+ type: Input
164
+ }], onBlur: [{
165
+ type: HostListener,
166
+ args: ['blur']
167
+ }] } });
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b251bWVyaWMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2F1dG9udW1lcmljL3NyYy9saWIvbW9kdWxlcy9hdXRvbnVtZXJpYy9hdXRvbnVtZXJpYy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sV0FBVyxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQUUvRSxNQUFNLDhCQUE4QixHQUFHO0lBQ3JDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztJQUN0RCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRixNQUFNLHlCQUF5QixHQUFHO0lBQ2hDLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7SUFDdEQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUY7OztHQUdHO0FBS0gsTUFBTSxPQUFPLHVCQUF1QjtJQW9CbEMsWUFDVSxVQUFzQixFQUN0QixZQUEyQyxFQUMzQyxRQUFtQixFQUNuQixjQUFpQztRQUhqQyxlQUFVLEdBQVYsVUFB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QWM7c0JBRHhCLEtBQUs7Z0JBZ0hDLE1BQU07c0JBRFosWUFBWTt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCBBdXRvTnVtZXJpYyBmcm9tICdhdXRvbnVtZXJpYyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5QXV0b251bWVyaWNPcHRpb25zIH0gZnJvbSAnLi9hdXRvbnVtZXJpYy1vcHRpb25zJztcbmltcG9ydCB7IFNreUF1dG9udW1lcmljT3B0aW9uc1Byb3ZpZGVyIH0gZnJvbSAnLi9hdXRvbnVtZXJpYy1vcHRpb25zLXByb3ZpZGVyJztcblxuY29uc3QgU0tZX0FVVE9OVU1FUklDX1ZBTFVFX0FDQ0VTU09SID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2t5QXV0b251bWVyaWNEaXJlY3RpdmUpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5cbmNvbnN0IFNLWV9BVVRPTlVNRVJJQ19WQUxJREFUT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNreUF1dG9udW1lcmljRGlyZWN0aXZlKSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG4vKipcbiAqIFdyYXBzIHRoZSBbYXV0b051bWVyaWMgdXRpbGl0eV0oaHR0cHM6Ly9naXRodWIuY29tL2F1dG9OdW1lcmljL2F1dG9OdW1lcmljKSB0byBmb3JtYXRcbiAqIGFueSB0eXBlIG9mIG51bWJlciwgaW5jbHVkaW5nIGN1cnJlbmN5LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdpbnB1dFtza3lBdXRvbnVtZXJpY10nLFxuICBwcm92aWRlcnM6IFtTS1lfQVVUT05VTUVSSUNfVkFMVUVfQUNDRVNTT1IsIFNLWV9BVVRPTlVNRVJJQ19WQUxJREFUT1JdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBdXRvbnVtZXJpY0RpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yXG57XG4gIC8qKlxuICAgKiBBc3NpZ25zIHRoZSBuYW1lIG9mIGEgcHJvcGVydHkgZnJvbSBgU2t5QXV0b251bWVyaWNPcHRpb25zUHJvdmlkZXJgLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBza3lBdXRvbnVtZXJpYyh2YWx1ZTogU2t5QXV0b251bWVyaWNPcHRpb25zKSB7XG4gICAgdGhpcy5hdXRvbnVtZXJpY09wdGlvbnMgPSB0aGlzLm1lcmdlT3B0aW9ucyh2YWx1ZSk7XG4gICAgdGhpcy51cGRhdGVBdXRvbnVtZXJpY0luc3RhbmNlKCk7XG4gIH1cblxuICBwcml2YXRlIGF1dG9udW1lcmljSW5zdGFuY2U6IEF1dG9OdW1lcmljO1xuICBwcml2YXRlIGF1dG9udW1lcmljT3B0aW9uczogU2t5QXV0b251bWVyaWNPcHRpb25zIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBpc0ZpcnN0Q2hhbmdlID0gdHJ1ZTtcbiAgcHJpdmF0ZSB2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgZ2xvYmFsQ29uZmlnOiBTa3lBdXRvbnVtZXJpY09wdGlvbnNQcm92aWRlcixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy5hdXRvbnVtZXJpY0luc3RhbmNlID0gbmV3IEF1dG9OdW1lcmljKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBFbnN1cmUgdGhhdCB3ZSBzZXQgdGhlIGdsb2JhbCBjb25maWcgZXZlbiBpZiBubyBsb2NhbCBjb25maWcgaGFzIGJlZW4gZ2l2ZW4uXG4gICAgaWYgKCF0aGlzLmF1dG9udW1lcmljT3B0aW9ucykge1xuICAgICAgdGhpcy5hdXRvbnVtZXJpY09wdGlvbnMgPSB0aGlzLmdsb2JhbENvbmZpZy5nZXRDb25maWcoKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVBdXRvbnVtZXJpY0luc3RhbmNlKCk7XG5cbiAgICBmcm9tRXZlbnQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdpbnB1dCcpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBjb25zdCBudW1lcmljVmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCA9IHRoaXMuZ2V0TnVtZXJpY1ZhbHVlKCk7XG5cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKHRoaXMudmFsdWUgIT09IG51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgIHRoaXMudmFsdWUgPSBudW1lcmljVmFsdWU7XG4gICAgICAgICAgdGhpcy5vbkNoYW5nZShudW1lcmljVmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCAmJiAhdGhpcy5jb250cm9sLmRpcnR5KSB7XG4gICAgICAgICAgdGhpcy5jb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCB2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcblxuICAgICAgLy8gTWFyayB0aGUgY29udHJvbCBhcyBcInByaXN0aW5lXCIgaWYgaXQgaXMgaW5pdGlhbGl6ZWQgd2l0aCBhIHZhbHVlLlxuICAgICAgY29uc3QgaW5pdGlhbGl6ZWRXaXRoVmFsdWUgPVxuICAgICAgICB0aGlzLmlzRmlyc3RDaGFuZ2UgJiYgdGhpcy5jb250cm9sICYmIHRoaXMudmFsdWUgIT09IG51bGw7XG4gICAgICBpZiAoaW5pdGlhbGl6ZWRXaXRoVmFsdWUpIHtcbiAgICAgICAgdGhpcy5pc0ZpcnN0Q2hhbmdlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY29udHJvbCEubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgdGhpcy5hdXRvbnVtZXJpY0luc3RhbmNlLnNldCh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXV0b251bWVyaWNJbnN0YW5jZS5jbGVhcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3Qgbm9FcnJvcnMgPSBudWxsO1xuXG4gICAgaWYgKCF0aGlzLmNvbnRyb2wpIHtcbiAgICAgIHRoaXMuY29udHJvbCA9IGNvbnRyb2w7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRyb2wudmFsdWUgPT09IG51bGwgfHwgY29udHJvbC52YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbm9FcnJvcnM7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBjb250cm9sLnZhbHVlICE9PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbm90VHlwZU9mTnVtYmVyOiB7IHZhbHVlOiBjb250cm9sLnZhbHVlIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBub0Vycm9ycztcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgcHVibGljIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROdW1lcmljVmFsdWUoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpbnB1dFZhbHVlID0gdGhpcy5nZXRJbnB1dFZhbHVlKCk7XG4gICAgcmV0dXJuIGlucHV0VmFsdWUgJiYgIXRoaXMuaXNJbnB1dFZhbHVlVGhlQ3VycmVuY3lTeW1ib2woaW5wdXRWYWx1ZSlcbiAgICAgID8gdGhpcy5hdXRvbnVtZXJpY0luc3RhbmNlLmdldE51bWJlcigpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEdWUgdG8gQXV0b051bWVyaWMncyBob3ZlciBsb2dpYyAtIHdoZW4gQXV0b051bWVyaWMgaGFzIGEgY3VycmVuY3kgc3ltYm9sIHRoZSB2YWx1ZVxuICAgKiB0aGF0IHdlIGdldCBiYWNrIG9uIGVtcHR5IGZpZWxkcyB3aWxsIGJlIHRoZSBjdXJyZW5jeSBzeW1ib2wuXG4gICAqIFRoZSBmb2xsb3dpbmcgbG9naWMgZW5zdXJlcyB0aGF0IHdlIGRvbid0IGFjY2lkZW50YWxseSBzZXRcbiAgICogYSBmb3JtIHZhbHVlIHdoZW4gdGhlIG9ubHkgaW5wdXQgd2FzIHRoZSBwcm9ncmFtYXRpY2FsbHktYWRkZWQgY3VycmVuY3kgc3ltYm9sLlxuICAgKi9cbiAgcHJpdmF0ZSBpc0lucHV0VmFsdWVUaGVDdXJyZW5jeVN5bWJvbChpbnB1dFZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGNvbnN0IGN1cnJlbmN5U3ltYm9sID0gKFxuICAgICAgKHRoaXMuYXV0b251bWVyaWNPcHRpb25zIGFzIEF1dG9OdW1lcmljLk9wdGlvbnMpPy5jdXJyZW5jeVN5bWJvbCA/PyAnJ1xuICAgICkudHJpbSgpO1xuICAgIHJldHVybiAhIWN1cnJlbmN5U3ltYm9sICYmIGlucHV0VmFsdWUgPT09IGN1cnJlbmN5U3ltYm9sO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnB1dFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVBdXRvbnVtZXJpY0luc3RhbmNlKCk6IHZvaWQge1xuICAgIHRoaXMuYXV0b251bWVyaWNJbnN0YW5jZS51cGRhdGUoXG4gICAgICB0aGlzLmF1dG9udW1lcmljT3B0aW9ucyBhcyBBdXRvTnVtZXJpYy5PcHRpb25zXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2VPcHRpb25zKHZhbHVlOiBTa3lBdXRvbnVtZXJpY09wdGlvbnMpOiBTa3lBdXRvbnVtZXJpY09wdGlvbnMge1xuICAgIGNvbnN0IGdsb2JhbE9wdGlvbnMgPSB0aGlzLmdsb2JhbENvbmZpZy5nZXRDb25maWcoKTtcblxuICAgIGxldCBuZXdPcHRpb25zOiBTa3lBdXRvbnVtZXJpY09wdGlvbnM7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IHByZWRlZmluZWRPcHRpb25zID0gQXV0b051bWVyaWMuZ2V0UHJlZGVmaW5lZE9wdGlvbnMoKTtcbiAgICAgIG5ld09wdGlvbnMgPSBwcmVkZWZpbmVkT3B0aW9uc1tcbiAgICAgICAgdmFsdWUgYXMga2V5b2YgQXV0b051bWVyaWMuT3B0aW9uc1xuICAgICAgXSBhcyBBdXRvTnVtZXJpYy5PcHRpb25zO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdPcHRpb25zID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIGdsb2JhbE9wdGlvbnMsIG5ld09wdGlvbnMpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwcml2YXRlIG9uQ2hhbmdlID0gKF86IG51bWJlciB8IHVuZGVmaW5lZCkgPT4ge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKSA9PiB7fTtcbn1cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { SkyAutonumericDirective } from './autonumeric.directive';
5
+ import * as i0 from "@angular/core";
6
+ export class SkyAutonumericModule {
7
+ }
8
+ SkyAutonumericModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ SkyAutonumericModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericModule, declarations: [SkyAutonumericDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule], exports: [SkyAutonumericDirective] });
10
+ SkyAutonumericModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericModule, imports: [[CommonModule, FormsModule, ReactiveFormsModule]] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ declarations: [SkyAutonumericDirective],
15
+ imports: [CommonModule, FormsModule, ReactiveFormsModule],
16
+ exports: [SkyAutonumericDirective],
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b251bWVyaWMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2F1dG9udW1lcmljL3NyYy9saWIvbW9kdWxlcy9hdXRvbnVtZXJpYy9hdXRvbnVtZXJpYy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQU9sRSxNQUFNLE9BQU8sb0JBQW9COztpSEFBcEIsb0JBQW9CO2tIQUFwQixvQkFBb0IsaUJBSmhCLHVCQUF1QixhQUM1QixZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixhQUM5Qyx1QkFBdUI7a0hBRXRCLG9CQUFvQixZQUh0QixDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLENBQUM7MkZBRzlDLG9CQUFvQjtrQkFMaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDdkMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQztvQkFDekQsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7aUJBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgU2t5QXV0b251bWVyaWNEaXJlY3RpdmUgfSBmcm9tICcuL2F1dG9udW1lcmljLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1NreUF1dG9udW1lcmljRGlyZWN0aXZlXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICBleHBvcnRzOiBbU2t5QXV0b251bWVyaWNEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBdXRvbnVtZXJpY01vZHVsZSB7fVxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtYXV0b251bWVyaWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYXV0b251bWVyaWMvc3JjL3NreXV4LWF1dG9udW1lcmljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -19,16 +19,15 @@ class SkyAutonumericOptionsProvider {
19
19
  return {};
20
20
  }
21
21
  }
22
- SkyAutonumericOptionsProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAutonumericOptionsProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
23
- SkyAutonumericOptionsProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAutonumericOptionsProvider, providedIn: 'root' });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAutonumericOptionsProvider, decorators: [{
22
+ SkyAutonumericOptionsProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericOptionsProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
23
+ SkyAutonumericOptionsProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericOptionsProvider, providedIn: 'root' });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericOptionsProvider, decorators: [{
25
25
  type: Injectable,
26
26
  args: [{
27
27
  providedIn: 'root',
28
28
  }]
29
29
  }] });
30
30
 
31
- // tslint:disable:no-forward-ref no-use-before-declare
32
31
  const SKY_AUTONUMERIC_VALUE_ACCESSOR = {
33
32
  provide: NG_VALUE_ACCESSOR,
34
33
  useExisting: forwardRef(() => SkyAutonumericDirective),
@@ -39,7 +38,6 @@ const SKY_AUTONUMERIC_VALIDATOR = {
39
38
  useExisting: forwardRef(() => SkyAutonumericDirective),
40
39
  multi: true,
41
40
  };
42
- // tslint:enable
43
41
  /**
44
42
  * Wraps the [autoNumeric utility](https://github.com/autoNumeric/autoNumeric) to format
45
43
  * any type of number, including currency.
@@ -116,7 +114,7 @@ class SkyAutonumericDirective {
116
114
  }
117
115
  }
118
116
  validate(control) {
119
- const noErrors = null; // tslint:disable-line: no-null-keyword
117
+ const noErrors = null;
120
118
  if (!this.control) {
121
119
  this.control = control;
122
120
  }
@@ -176,9 +174,9 @@ class SkyAutonumericDirective {
176
174
  return Object.assign({}, globalOptions, newOptions);
177
175
  }
178
176
  }
179
- SkyAutonumericDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAutonumericDirective, deps: [{ token: i0.ElementRef }, { token: SkyAutonumericOptionsProvider }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
180
- SkyAutonumericDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: SkyAutonumericDirective, selector: "input[skyAutonumeric]", inputs: { skyAutonumeric: "skyAutonumeric" }, host: { listeners: { "blur": "onBlur()" } }, providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR], ngImport: i0 });
181
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAutonumericDirective, decorators: [{
177
+ SkyAutonumericDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericDirective, deps: [{ token: i0.ElementRef }, { token: SkyAutonumericOptionsProvider }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
178
+ SkyAutonumericDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: SkyAutonumericDirective, selector: "input[skyAutonumeric]", inputs: { skyAutonumeric: "skyAutonumeric" }, host: { listeners: { "blur": "onBlur()" } }, providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR], ngImport: i0 });
179
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericDirective, decorators: [{
182
180
  type: Directive,
183
181
  args: [{
184
182
  selector: 'input[skyAutonumeric]',
@@ -193,10 +191,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
193
191
 
194
192
  class SkyAutonumericModule {
195
193
  }
196
- SkyAutonumericModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAutonumericModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
197
- SkyAutonumericModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAutonumericModule, declarations: [SkyAutonumericDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule], exports: [SkyAutonumericDirective] });
198
- SkyAutonumericModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAutonumericModule, imports: [[CommonModule, FormsModule, ReactiveFormsModule]] });
199
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAutonumericModule, decorators: [{
194
+ SkyAutonumericModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
195
+ SkyAutonumericModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericModule, declarations: [SkyAutonumericDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule], exports: [SkyAutonumericDirective] });
196
+ SkyAutonumericModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericModule, imports: [[CommonModule, FormsModule, ReactiveFormsModule]] });
197
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericModule, decorators: [{
200
198
  type: NgModule,
201
199
  args: [{
202
200
  declarations: [SkyAutonumericDirective],
@@ -210,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
210
208
  */
211
209
 
212
210
  export { SkyAutonumericModule, SkyAutonumericOptionsProvider, SkyAutonumericDirective as λ1 };
213
- //# sourceMappingURL=skyux-autonumeric.js.map
211
+ //# sourceMappingURL=skyux-autonumeric.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skyux-autonumeric.mjs","sources":["../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric-options-provider.ts","../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric.directive.ts","../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric.module.ts","../../../../../libs/components/autonumeric/src/skyux-autonumeric.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { SkyAutonumericOptions } from './autonumeric-options';\n\n/**\n * Provides options to the underlying [autoNumeric utility](https://github.com/autoNumeric/autoNumeric).\n * This can set global options on multiple input fields.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyAutonumericOptionsProvider {\n /**\n * Specifies the value for a settings object to pass to the autoNumeric utility.\n * This overrides any default options specified by the `skyAutonumeric` attribute.\n */\n public getConfig(): SkyAutonumericOptions {\n return {};\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n forwardRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport AutoNumeric from 'autonumeric';\nimport { Subject, fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyAutonumericOptions } from './autonumeric-options';\nimport { SkyAutonumericOptionsProvider } from './autonumeric-options-provider';\n\nconst SKY_AUTONUMERIC_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyAutonumericDirective),\n multi: true,\n};\n\nconst SKY_AUTONUMERIC_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyAutonumericDirective),\n multi: true,\n};\n\n/**\n * Wraps the [autoNumeric utility](https://github.com/autoNumeric/autoNumeric) to format\n * any type of number, including currency.\n */\n@Directive({\n selector: 'input[skyAutonumeric]',\n providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR],\n})\nexport class SkyAutonumericDirective\n implements OnInit, OnDestroy, ControlValueAccessor, Validator\n{\n /**\n * Assigns the name of a property from `SkyAutonumericOptionsProvider`.\n */\n @Input()\n public set skyAutonumeric(value: SkyAutonumericOptions) {\n this.autonumericOptions = this.mergeOptions(value);\n this.updateAutonumericInstance();\n }\n\n private autonumericInstance: AutoNumeric;\n private autonumericOptions: SkyAutonumericOptions | undefined;\n private control: AbstractControl | undefined;\n private isFirstChange = true;\n private value: number | undefined;\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(\n private elementRef: ElementRef,\n private globalConfig: SkyAutonumericOptionsProvider,\n private renderer: Renderer2,\n private changeDetector: ChangeDetectorRef\n ) {\n this.autonumericInstance = new AutoNumeric(this.elementRef.nativeElement);\n }\n\n public ngOnInit(): void {\n // Ensure that we set the global config even if no local config has been given.\n if (!this.autonumericOptions) {\n this.autonumericOptions = this.globalConfig.getConfig();\n }\n this.updateAutonumericInstance();\n\n fromEvent(this.elementRef.nativeElement, 'input')\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n const numericValue: number | undefined = this.getNumericValue();\n\n /* istanbul ignore else */\n if (this.value !== numericValue) {\n this.value = numericValue;\n this.onChange(numericValue);\n }\n\n /* istanbul ignore else */\n if (this.control && !this.control.dirty) {\n this.control.markAsDirty();\n }\n\n this.changeDetector.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n public setDisabledState(value: boolean): void {\n this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', value);\n }\n\n public writeValue(value: number | undefined): void {\n if (this.value !== value) {\n this.value = value;\n this.onChange(value);\n\n // Mark the control as \"pristine\" if it is initialized with a value.\n const initializedWithValue =\n this.isFirstChange && this.control && this.value !== null;\n if (initializedWithValue) {\n this.isFirstChange = false;\n this.control!.markAsPristine();\n }\n }\n\n if (typeof value === 'number') {\n this.autonumericInstance.set(value);\n } else {\n this.autonumericInstance.clear();\n }\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const noErrors = null;\n\n if (!this.control) {\n this.control = control;\n }\n\n if (control.value === null || control.value === undefined) {\n return noErrors;\n }\n\n if (typeof control.value !== 'number') {\n return {\n notTypeOfNumber: { value: control.value },\n };\n }\n\n return noErrors;\n }\n\n public registerOnChange(fn: (value: number | undefined) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n @HostListener('blur')\n public onBlur(): void {\n this.onTouched();\n }\n\n private getNumericValue(): number | undefined {\n const inputValue = this.getInputValue();\n return inputValue && !this.isInputValueTheCurrencySymbol(inputValue)\n ? this.autonumericInstance.getNumber()\n : undefined;\n }\n\n /**\n * Due to AutoNumeric's hover logic - when AutoNumeric has a currency symbol the value\n * that we get back on empty fields will be the currency symbol.\n * The following logic ensures that we don't accidentally set\n * a form value when the only input was the programatically-added currency symbol.\n */\n private isInputValueTheCurrencySymbol(inputValue: string): boolean {\n /* istanbul ignore next */\n const currencySymbol = (\n (this.autonumericOptions as AutoNumeric.Options)?.currencySymbol ?? ''\n ).trim();\n return !!currencySymbol && inputValue === currencySymbol;\n }\n\n private getInputValue(): string {\n return this.elementRef.nativeElement.value;\n }\n\n private updateAutonumericInstance(): void {\n this.autonumericInstance.update(\n this.autonumericOptions as AutoNumeric.Options\n );\n }\n\n private mergeOptions(value: SkyAutonumericOptions): SkyAutonumericOptions {\n const globalOptions = this.globalConfig.getConfig();\n\n let newOptions: SkyAutonumericOptions;\n if (typeof value === 'string') {\n const predefinedOptions = AutoNumeric.getPredefinedOptions();\n newOptions = predefinedOptions[\n value as keyof AutoNumeric.Options\n ] as AutoNumeric.Options;\n } else {\n newOptions = value;\n }\n\n return Object.assign({}, globalOptions, newOptions);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onChange = (_: number | undefined) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onTouched = () => {};\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { SkyAutonumericDirective } from './autonumeric.directive';\n\n@NgModule({\n declarations: [SkyAutonumericDirective],\n imports: [CommonModule, FormsModule, ReactiveFormsModule],\n exports: [SkyAutonumericDirective],\n})\nexport class SkyAutonumericModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SkyAutonumericOptionsProvider"],"mappings":"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"}
@@ -1,12 +1,33 @@
1
- import { ChangeDetectorRef, Directive, ElementRef, HostListener, Input, Renderer2, forwardRef, } from '@angular/core';
2
- import { NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, forwardRef, Directive, Input, HostListener, NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule, ReactiveFormsModule } from '@angular/forms';
3
5
  import AutoNumeric from 'autonumeric';
4
6
  import { Subject, fromEvent } from 'rxjs';
5
7
  import { takeUntil } from 'rxjs/operators';
6
- import { SkyAutonumericOptionsProvider } from './autonumeric-options-provider';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "./autonumeric-options-provider";
9
- // tslint:disable:no-forward-ref no-use-before-declare
8
+
9
+ /**
10
+ * Provides options to the underlying [autoNumeric utility](https://github.com/autoNumeric/autoNumeric).
11
+ * This can set global options on multiple input fields.
12
+ */
13
+ class SkyAutonumericOptionsProvider {
14
+ /**
15
+ * Specifies the value for a settings object to pass to the autoNumeric utility.
16
+ * This overrides any default options specified by the `skyAutonumeric` attribute.
17
+ */
18
+ getConfig() {
19
+ return {};
20
+ }
21
+ }
22
+ SkyAutonumericOptionsProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericOptionsProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
23
+ SkyAutonumericOptionsProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericOptionsProvider, providedIn: 'root' });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericOptionsProvider, decorators: [{
25
+ type: Injectable,
26
+ args: [{
27
+ providedIn: 'root',
28
+ }]
29
+ }] });
30
+
10
31
  const SKY_AUTONUMERIC_VALUE_ACCESSOR = {
11
32
  provide: NG_VALUE_ACCESSOR,
12
33
  useExisting: forwardRef(() => SkyAutonumericDirective),
@@ -17,12 +38,11 @@ const SKY_AUTONUMERIC_VALIDATOR = {
17
38
  useExisting: forwardRef(() => SkyAutonumericDirective),
18
39
  multi: true,
19
40
  };
20
- // tslint:enable
21
41
  /**
22
42
  * Wraps the [autoNumeric utility](https://github.com/autoNumeric/autoNumeric) to format
23
43
  * any type of number, including currency.
24
44
  */
25
- export class SkyAutonumericDirective {
45
+ class SkyAutonumericDirective {
26
46
  constructor(elementRef, globalConfig, renderer, changeDetector) {
27
47
  this.elementRef = elementRef;
28
48
  this.globalConfig = globalConfig;
@@ -94,7 +114,7 @@ export class SkyAutonumericDirective {
94
114
  }
95
115
  }
96
116
  validate(control) {
97
- const noErrors = null; // tslint:disable-line: no-null-keyword
117
+ const noErrors = null;
98
118
  if (!this.control) {
99
119
  this.control = control;
100
120
  }
@@ -130,9 +150,8 @@ export class SkyAutonumericDirective {
130
150
  * a form value when the only input was the programatically-added currency symbol.
131
151
  */
132
152
  isInputValueTheCurrencySymbol(inputValue) {
133
- var _a, _b;
134
153
  /* istanbul ignore next */
135
- const currencySymbol = ((_b = (_a = this.autonumericOptions) === null || _a === void 0 ? void 0 : _a.currencySymbol) !== null && _b !== void 0 ? _b : '').trim();
154
+ const currencySymbol = (this.autonumericOptions?.currencySymbol ?? '').trim();
136
155
  return !!currencySymbol && inputValue === currencySymbol;
137
156
  }
138
157
  getInputValue() {
@@ -154,18 +173,38 @@ export class SkyAutonumericDirective {
154
173
  return Object.assign({}, globalOptions, newOptions);
155
174
  }
156
175
  }
157
- SkyAutonumericDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAutonumericDirective, deps: [{ token: i0.ElementRef }, { token: i1.SkyAutonumericOptionsProvider }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
158
- SkyAutonumericDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: SkyAutonumericDirective, selector: "input[skyAutonumeric]", inputs: { skyAutonumeric: "skyAutonumeric" }, host: { listeners: { "blur": "onBlur()" } }, providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR], ngImport: i0 });
159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAutonumericDirective, decorators: [{
176
+ SkyAutonumericDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericDirective, deps: [{ token: i0.ElementRef }, { token: SkyAutonumericOptionsProvider }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
177
+ SkyAutonumericDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: SkyAutonumericDirective, selector: "input[skyAutonumeric]", inputs: { skyAutonumeric: "skyAutonumeric" }, host: { listeners: { "blur": "onBlur()" } }, providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR], ngImport: i0 });
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericDirective, decorators: [{
160
179
  type: Directive,
161
180
  args: [{
162
181
  selector: 'input[skyAutonumeric]',
163
182
  providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR],
164
183
  }]
165
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SkyAutonumericOptionsProvider }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { skyAutonumeric: [{
184
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: SkyAutonumericOptionsProvider }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { skyAutonumeric: [{
166
185
  type: Input
167
186
  }], onBlur: [{
168
187
  type: HostListener,
169
188
  args: ['blur']
170
189
  }] } });
171
- //# sourceMappingURL=autonumeric.directive.js.map
190
+
191
+ class SkyAutonumericModule {
192
+ }
193
+ SkyAutonumericModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
194
+ SkyAutonumericModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericModule, declarations: [SkyAutonumericDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule], exports: [SkyAutonumericDirective] });
195
+ SkyAutonumericModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericModule, imports: [[CommonModule, FormsModule, ReactiveFormsModule]] });
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutonumericModule, decorators: [{
197
+ type: NgModule,
198
+ args: [{
199
+ declarations: [SkyAutonumericDirective],
200
+ imports: [CommonModule, FormsModule, ReactiveFormsModule],
201
+ exports: [SkyAutonumericDirective],
202
+ }]
203
+ }] });
204
+
205
+ /**
206
+ * Generated bundle index. Do not edit.
207
+ */
208
+
209
+ export { SkyAutonumericModule, SkyAutonumericOptionsProvider, SkyAutonumericDirective as λ1 };
210
+ //# sourceMappingURL=skyux-autonumeric.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skyux-autonumeric.mjs","sources":["../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric-options-provider.ts","../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric.directive.ts","../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric.module.ts","../../../../../libs/components/autonumeric/src/skyux-autonumeric.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { SkyAutonumericOptions } from './autonumeric-options';\n\n/**\n * Provides options to the underlying [autoNumeric utility](https://github.com/autoNumeric/autoNumeric).\n * This can set global options on multiple input fields.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyAutonumericOptionsProvider {\n /**\n * Specifies the value for a settings object to pass to the autoNumeric utility.\n * This overrides any default options specified by the `skyAutonumeric` attribute.\n */\n public getConfig(): SkyAutonumericOptions {\n return {};\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n forwardRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport AutoNumeric from 'autonumeric';\nimport { Subject, fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyAutonumericOptions } from './autonumeric-options';\nimport { SkyAutonumericOptionsProvider } from './autonumeric-options-provider';\n\nconst SKY_AUTONUMERIC_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyAutonumericDirective),\n multi: true,\n};\n\nconst SKY_AUTONUMERIC_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyAutonumericDirective),\n multi: true,\n};\n\n/**\n * Wraps the [autoNumeric utility](https://github.com/autoNumeric/autoNumeric) to format\n * any type of number, including currency.\n */\n@Directive({\n selector: 'input[skyAutonumeric]',\n providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR],\n})\nexport class SkyAutonumericDirective\n implements OnInit, OnDestroy, ControlValueAccessor, Validator\n{\n /**\n * Assigns the name of a property from `SkyAutonumericOptionsProvider`.\n */\n @Input()\n public set skyAutonumeric(value: SkyAutonumericOptions) {\n this.autonumericOptions = this.mergeOptions(value);\n this.updateAutonumericInstance();\n }\n\n private autonumericInstance: AutoNumeric;\n private autonumericOptions: SkyAutonumericOptions | undefined;\n private control: AbstractControl | undefined;\n private isFirstChange = true;\n private value: number | undefined;\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(\n private elementRef: ElementRef,\n private globalConfig: SkyAutonumericOptionsProvider,\n private renderer: Renderer2,\n private changeDetector: ChangeDetectorRef\n ) {\n this.autonumericInstance = new AutoNumeric(this.elementRef.nativeElement);\n }\n\n public ngOnInit(): void {\n // Ensure that we set the global config even if no local config has been given.\n if (!this.autonumericOptions) {\n this.autonumericOptions = this.globalConfig.getConfig();\n }\n this.updateAutonumericInstance();\n\n fromEvent(this.elementRef.nativeElement, 'input')\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n const numericValue: number | undefined = this.getNumericValue();\n\n /* istanbul ignore else */\n if (this.value !== numericValue) {\n this.value = numericValue;\n this.onChange(numericValue);\n }\n\n /* istanbul ignore else */\n if (this.control && !this.control.dirty) {\n this.control.markAsDirty();\n }\n\n this.changeDetector.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n public setDisabledState(value: boolean): void {\n this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', value);\n }\n\n public writeValue(value: number | undefined): void {\n if (this.value !== value) {\n this.value = value;\n this.onChange(value);\n\n // Mark the control as \"pristine\" if it is initialized with a value.\n const initializedWithValue =\n this.isFirstChange && this.control && this.value !== null;\n if (initializedWithValue) {\n this.isFirstChange = false;\n this.control!.markAsPristine();\n }\n }\n\n if (typeof value === 'number') {\n this.autonumericInstance.set(value);\n } else {\n this.autonumericInstance.clear();\n }\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const noErrors = null;\n\n if (!this.control) {\n this.control = control;\n }\n\n if (control.value === null || control.value === undefined) {\n return noErrors;\n }\n\n if (typeof control.value !== 'number') {\n return {\n notTypeOfNumber: { value: control.value },\n };\n }\n\n return noErrors;\n }\n\n public registerOnChange(fn: (value: number | undefined) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n @HostListener('blur')\n public onBlur(): void {\n this.onTouched();\n }\n\n private getNumericValue(): number | undefined {\n const inputValue = this.getInputValue();\n return inputValue && !this.isInputValueTheCurrencySymbol(inputValue)\n ? this.autonumericInstance.getNumber()\n : undefined;\n }\n\n /**\n * Due to AutoNumeric's hover logic - when AutoNumeric has a currency symbol the value\n * that we get back on empty fields will be the currency symbol.\n * The following logic ensures that we don't accidentally set\n * a form value when the only input was the programatically-added currency symbol.\n */\n private isInputValueTheCurrencySymbol(inputValue: string): boolean {\n /* istanbul ignore next */\n const currencySymbol = (\n (this.autonumericOptions as AutoNumeric.Options)?.currencySymbol ?? ''\n ).trim();\n return !!currencySymbol && inputValue === currencySymbol;\n }\n\n private getInputValue(): string {\n return this.elementRef.nativeElement.value;\n }\n\n private updateAutonumericInstance(): void {\n this.autonumericInstance.update(\n this.autonumericOptions as AutoNumeric.Options\n );\n }\n\n private mergeOptions(value: SkyAutonumericOptions): SkyAutonumericOptions {\n const globalOptions = this.globalConfig.getConfig();\n\n let newOptions: SkyAutonumericOptions;\n if (typeof value === 'string') {\n const predefinedOptions = AutoNumeric.getPredefinedOptions();\n newOptions = predefinedOptions[\n value as keyof AutoNumeric.Options\n ] as AutoNumeric.Options;\n } else {\n newOptions = value;\n }\n\n return Object.assign({}, globalOptions, newOptions);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onChange = (_: number | undefined) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onTouched = () => {};\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { SkyAutonumericDirective } from './autonumeric.directive';\n\n@NgModule({\n declarations: [SkyAutonumericDirective],\n imports: [CommonModule, FormsModule, ReactiveFormsModule],\n exports: [SkyAutonumericDirective],\n})\nexport class SkyAutonumericModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SkyAutonumericOptionsProvider"],"mappings":";;;;;;;;AAIA;;;AAGG;MAIU,6BAA6B,CAAA;AACxC;;;AAGG;IACI,SAAS,GAAA;AACd,QAAA,OAAO,EAAE,CAAC;KACX;;0HAPU,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,cAF5B,MAAM,EAAA,CAAA,CAAA;2FAEP,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACiBD,MAAM,8BAA8B,GAAG;AACrC,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAuB,CAAC;AACtD,IAAA,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF,MAAM,yBAAyB,GAAG;AAChC,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAuB,CAAC;AACtD,IAAA,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF;;;AAGG;MAKU,uBAAuB,CAAA;AAoBlC,IAAA,WAAA,CACU,UAAsB,EACtB,YAA2C,EAC3C,QAAmB,EACnB,cAAiC,EAAA;QAHjC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA+B;QAC3C,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QATnC,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;AAGrB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;;AAwJpC,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAqB,KAAI,GAAG,CAAC;;AAEzC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAG,CAAC;AAlJ3B,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;KAC3E;AAxBD;;AAEG;IACH,IACW,cAAc,CAAC,KAA4B,EAAA;QACpD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;IAmBM,QAAQ,GAAA;;AAEb,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;AACzD,SAAA;QACD,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAEjC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC;AAC9C,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACnC,SAAS,CAAC,MAAK;AACd,YAAA,MAAM,YAAY,GAAuB,IAAI,CAAC,eAAe,EAAE,CAAC;;AAGhE,YAAA,IAAI,IAAI,CAAC,KAAK,KAAK,YAAY,EAAE;AAC/B,gBAAA,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;AAC1B,gBAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC7B,aAAA;;YAGD,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AACvC,gBAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AAC5B,aAAA;AAED,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;AACrC,SAAC,CAAC,CAAC;KACN;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KAC/B;AAED;;AAEG;AACI,IAAA,gBAAgB,CAAC,KAAc,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;KAC7E;AAEM,IAAA,UAAU,CAAC,KAAyB,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;;AAGrB,YAAA,MAAM,oBAAoB,GACxB,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;AAC5D,YAAA,IAAI,oBAAoB,EAAE;AACxB,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,gBAAA,IAAI,CAAC,OAAQ,CAAC,cAAc,EAAE,CAAC;AAChC,aAAA;AACF,SAAA;AAED,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACrC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;AAClC,SAAA;KACF;AAEM,IAAA,QAAQ,CAAC,OAAwB,EAAA;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAEtB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACxB,SAAA;QAED,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;AACzD,YAAA,OAAO,QAAQ,CAAC;AACjB,SAAA;AAED,QAAA,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE;YACrC,OAAO;AACL,gBAAA,eAAe,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;aAC1C,CAAC;AACH,SAAA;AAED,QAAA,OAAO,QAAQ,CAAC;KACjB;AAEM,IAAA,gBAAgB,CAAC,EAAuC,EAAA;AAC7D,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAEM,IAAA,iBAAiB,CAAC,EAAc,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;IAGM,MAAM,GAAA;QACX,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAEO,eAAe,GAAA;AACrB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,OAAO,UAAU,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC;AAClE,cAAE,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE;cACpC,SAAS,CAAC;KACf;AAED;;;;;AAKG;AACK,IAAA,6BAA6B,CAAC,UAAkB,EAAA;;AAEtD,QAAA,MAAM,cAAc,GAAG,CACpB,IAAI,CAAC,kBAA0C,EAAE,cAAc,IAAI,EAAE,EACtE,IAAI,EAAE,CAAC;AACT,QAAA,OAAO,CAAC,CAAC,cAAc,IAAI,UAAU,KAAK,cAAc,CAAC;KAC1D;IAEO,aAAa,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;KAC5C;IAEO,yBAAyB,GAAA;QAC/B,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAC7B,IAAI,CAAC,kBAAyC,CAC/C,CAAC;KACH;AAEO,IAAA,YAAY,CAAC,KAA4B,EAAA;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;AAEpD,QAAA,IAAI,UAAiC,CAAC;AACtC,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,MAAM,iBAAiB,GAAG,WAAW,CAAC,oBAAoB,EAAE,CAAC;AAC7D,YAAA,UAAU,GAAG,iBAAiB,CAC5B,KAAkC,CACZ,CAAC;AAC1B,SAAA;AAAM,aAAA;YACL,UAAU,GAAG,KAAK,CAAC;AACpB,SAAA;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;KACrD;;oHAvKU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,6BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAFvB,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,8BAA8B,EAAE,yBAAyB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAE3D,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,SAAS,EAAE,CAAC,8BAA8B,EAAE,yBAAyB,CAAC;AACvE,iBAAA,CAAA;kMAQY,cAAc,EAAA,CAAA;sBADxB,KAAK;gBAgHC,MAAM,EAAA,CAAA;sBADZ,YAAY;uBAAC,MAAM,CAAA;;;MCzJT,oBAAoB,CAAA;;iHAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;kHAApB,oBAAoB,EAAA,YAAA,EAAA,CAJhB,uBAAuB,CAC5B,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,WAAW,EAAE,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAC9C,uBAAuB,CAAA,EAAA,CAAA,CAAA;AAEtB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAHtB,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAA,EAAA,CAAA,CAAA;2FAG9C,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,uBAAuB,CAAC;AACvC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,CAAC;oBACzD,OAAO,EAAE,CAAC,uBAAuB,CAAC;AACnC,iBAAA,CAAA;;;ACVD;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/autonumeric",
3
- "version": "5.9.4",
3
+ "version": "6.0.0-beta.10",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -15,20 +15,36 @@
15
15
  "url": "https://github.com/blackbaud/skyux/issues"
16
16
  },
17
17
  "homepage": "https://github.com/blackbaud/skyux#readme",
18
+ "exports": {
19
+ "./package.json": {
20
+ "default": "./package.json"
21
+ },
22
+ ".": {
23
+ "types": "./skyux-autonumeric.d.ts",
24
+ "esm2020": "./esm2020/skyux-autonumeric.mjs",
25
+ "es2020": "./fesm2020/skyux-autonumeric.mjs",
26
+ "es2015": "./fesm2015/skyux-autonumeric.mjs",
27
+ "node": "./fesm2015/skyux-autonumeric.mjs",
28
+ "default": "./fesm2020/skyux-autonumeric.mjs"
29
+ },
30
+ "./documentation.json": {
31
+ "default": "./documentation.json"
32
+ }
33
+ },
18
34
  "peerDependencies": {
19
- "@angular/common": "^12.2.16",
20
- "@angular/core": "^12.2.16",
21
- "@angular/forms": "^12.2.16"
35
+ "@angular/common": "^13.3.2",
36
+ "@angular/core": "^13.3.2",
37
+ "@angular/forms": "^13.3.2"
22
38
  },
23
39
  "dependencies": {
24
40
  "autonumeric": "4.6.0",
25
41
  "tslib": "^2.3.1"
26
42
  },
27
- "main": "bundles/skyux-autonumeric.umd.js",
28
- "module": "fesm2015/skyux-autonumeric.js",
29
- "es2015": "fesm2015/skyux-autonumeric.js",
30
- "esm2015": "esm2015/skyux-autonumeric.js",
31
- "fesm2015": "fesm2015/skyux-autonumeric.js",
43
+ "module": "fesm2015/skyux-autonumeric.mjs",
44
+ "es2020": "fesm2020/skyux-autonumeric.mjs",
45
+ "esm2020": "esm2020/skyux-autonumeric.mjs",
46
+ "fesm2020": "fesm2020/skyux-autonumeric.mjs",
47
+ "fesm2015": "fesm2015/skyux-autonumeric.mjs",
32
48
  "typings": "skyux-autonumeric.d.ts",
33
49
  "sideEffects": false
34
50
  }
@@ -1,252 +0,0 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('autonumeric'), require('rxjs'), require('rxjs/operators')) :
3
- typeof define === 'function' && define.amd ? define('@skyux/autonumeric', ['exports', '@angular/core', '@angular/common', '@angular/forms', 'autonumeric', 'rxjs', 'rxjs/operators'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.skyux = global.skyux || {}, global.skyux.autonumeric = {}), global.ng.core, global.ng.common, global.ng.forms, global.AutoNumeric, global.rxjs, global.rxjs.operators));
5
- })(this, (function (exports, i0, common, forms, AutoNumeric, rxjs, operators) { 'use strict';
6
-
7
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
-
9
- function _interopNamespace(e) {
10
- if (e && e.__esModule) return e;
11
- var n = Object.create(null);
12
- if (e) {
13
- Object.keys(e).forEach(function (k) {
14
- if (k !== 'default') {
15
- var d = Object.getOwnPropertyDescriptor(e, k);
16
- Object.defineProperty(n, k, d.get ? d : {
17
- enumerable: true,
18
- get: function () { return e[k]; }
19
- });
20
- }
21
- });
22
- }
23
- n["default"] = e;
24
- return Object.freeze(n);
25
- }
26
-
27
- var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
28
- var AutoNumeric__default = /*#__PURE__*/_interopDefaultLegacy(AutoNumeric);
29
-
30
- /**
31
- * Provides options to the underlying [autoNumeric utility](https://github.com/autoNumeric/autoNumeric).
32
- * This can set global options on multiple input fields.
33
- */
34
- var SkyAutonumericOptionsProvider = /** @class */ (function () {
35
- function SkyAutonumericOptionsProvider() {
36
- }
37
- /**
38
- * Specifies the value for a settings object to pass to the autoNumeric utility.
39
- * This overrides any default options specified by the `skyAutonumeric` attribute.
40
- */
41
- SkyAutonumericOptionsProvider.prototype.getConfig = function () {
42
- return {};
43
- };
44
- return SkyAutonumericOptionsProvider;
45
- }());
46
- SkyAutonumericOptionsProvider.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAutonumericOptionsProvider, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
47
- SkyAutonumericOptionsProvider.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAutonumericOptionsProvider, providedIn: 'root' });
48
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAutonumericOptionsProvider, decorators: [{
49
- type: i0.Injectable,
50
- args: [{
51
- providedIn: 'root',
52
- }]
53
- }] });
54
-
55
- // tslint:disable:no-forward-ref no-use-before-declare
56
- var SKY_AUTONUMERIC_VALUE_ACCESSOR = {
57
- provide: forms.NG_VALUE_ACCESSOR,
58
- useExisting: i0.forwardRef(function () { return SkyAutonumericDirective; }),
59
- multi: true,
60
- };
61
- var SKY_AUTONUMERIC_VALIDATOR = {
62
- provide: forms.NG_VALIDATORS,
63
- useExisting: i0.forwardRef(function () { return SkyAutonumericDirective; }),
64
- multi: true,
65
- };
66
- // tslint:enable
67
- /**
68
- * Wraps the [autoNumeric utility](https://github.com/autoNumeric/autoNumeric) to format
69
- * any type of number, including currency.
70
- */
71
- var SkyAutonumericDirective = /** @class */ (function () {
72
- function SkyAutonumericDirective(elementRef, globalConfig, renderer, changeDetector) {
73
- this.elementRef = elementRef;
74
- this.globalConfig = globalConfig;
75
- this.renderer = renderer;
76
- this.changeDetector = changeDetector;
77
- this.isFirstChange = true;
78
- this.ngUnsubscribe = new rxjs.Subject();
79
- // eslint-disable-next-line @typescript-eslint/no-empty-function
80
- this.onChange = function (_) { };
81
- // eslint-disable-next-line @typescript-eslint/no-empty-function
82
- this.onTouched = function () { };
83
- this.autonumericInstance = new AutoNumeric__default["default"](this.elementRef.nativeElement);
84
- }
85
- Object.defineProperty(SkyAutonumericDirective.prototype, "skyAutonumeric", {
86
- /**
87
- * Assigns the name of a property from `SkyAutonumericOptionsProvider`.
88
- */
89
- set: function (value) {
90
- this.autonumericOptions = this.mergeOptions(value);
91
- this.updateAutonumericInstance();
92
- },
93
- enumerable: false,
94
- configurable: true
95
- });
96
- SkyAutonumericDirective.prototype.ngOnInit = function () {
97
- var _this = this;
98
- // Ensure that we set the global config even if no local config has been given.
99
- if (!this.autonumericOptions) {
100
- this.autonumericOptions = this.globalConfig.getConfig();
101
- }
102
- this.updateAutonumericInstance();
103
- rxjs.fromEvent(this.elementRef.nativeElement, 'input')
104
- .pipe(operators.takeUntil(this.ngUnsubscribe))
105
- .subscribe(function () {
106
- var numericValue = _this.getNumericValue();
107
- /* istanbul ignore else */
108
- if (_this.value !== numericValue) {
109
- _this.value = numericValue;
110
- _this.onChange(numericValue);
111
- }
112
- /* istanbul ignore else */
113
- if (_this.control && !_this.control.dirty) {
114
- _this.control.markAsDirty();
115
- }
116
- _this.changeDetector.markForCheck();
117
- });
118
- };
119
- SkyAutonumericDirective.prototype.ngOnDestroy = function () {
120
- this.ngUnsubscribe.next();
121
- this.ngUnsubscribe.complete();
122
- };
123
- /**
124
- * Implemented as part of ControlValueAccessor.
125
- */
126
- SkyAutonumericDirective.prototype.setDisabledState = function (value) {
127
- this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', value);
128
- };
129
- SkyAutonumericDirective.prototype.writeValue = function (value) {
130
- if (this.value !== value) {
131
- this.value = value;
132
- this.onChange(value);
133
- // Mark the control as "pristine" if it is initialized with a value.
134
- var initializedWithValue = this.isFirstChange && this.control && this.value !== null;
135
- if (initializedWithValue) {
136
- this.isFirstChange = false;
137
- this.control.markAsPristine();
138
- }
139
- }
140
- if (typeof value === 'number') {
141
- this.autonumericInstance.set(value);
142
- }
143
- else {
144
- this.autonumericInstance.clear();
145
- }
146
- };
147
- SkyAutonumericDirective.prototype.validate = function (control) {
148
- var noErrors = null; // tslint:disable-line: no-null-keyword
149
- if (!this.control) {
150
- this.control = control;
151
- }
152
- if (control.value === null || control.value === undefined) {
153
- return noErrors;
154
- }
155
- if (typeof control.value !== 'number') {
156
- return {
157
- notTypeOfNumber: { value: control.value },
158
- };
159
- }
160
- return noErrors;
161
- };
162
- SkyAutonumericDirective.prototype.registerOnChange = function (fn) {
163
- this.onChange = fn;
164
- };
165
- SkyAutonumericDirective.prototype.registerOnTouched = function (fn) {
166
- this.onTouched = fn;
167
- };
168
- SkyAutonumericDirective.prototype.onBlur = function () {
169
- this.onTouched();
170
- };
171
- SkyAutonumericDirective.prototype.getNumericValue = function () {
172
- var inputValue = this.getInputValue();
173
- return inputValue && !this.isInputValueTheCurrencySymbol(inputValue)
174
- ? this.autonumericInstance.getNumber()
175
- : undefined;
176
- };
177
- /**
178
- * Due to AutoNumeric's hover logic - when AutoNumeric has a currency symbol the value
179
- * that we get back on empty fields will be the currency symbol.
180
- * The following logic ensures that we don't accidentally set
181
- * a form value when the only input was the programatically-added currency symbol.
182
- */
183
- SkyAutonumericDirective.prototype.isInputValueTheCurrencySymbol = function (inputValue) {
184
- var _a, _b;
185
- /* istanbul ignore next */
186
- var currencySymbol = ((_b = (_a = this.autonumericOptions) === null || _a === void 0 ? void 0 : _a.currencySymbol) !== null && _b !== void 0 ? _b : '').trim();
187
- return !!currencySymbol && inputValue === currencySymbol;
188
- };
189
- SkyAutonumericDirective.prototype.getInputValue = function () {
190
- return this.elementRef.nativeElement.value;
191
- };
192
- SkyAutonumericDirective.prototype.updateAutonumericInstance = function () {
193
- this.autonumericInstance.update(this.autonumericOptions);
194
- };
195
- SkyAutonumericDirective.prototype.mergeOptions = function (value) {
196
- var globalOptions = this.globalConfig.getConfig();
197
- var newOptions;
198
- if (typeof value === 'string') {
199
- var predefinedOptions = AutoNumeric__default["default"].getPredefinedOptions();
200
- newOptions = predefinedOptions[value];
201
- }
202
- else {
203
- newOptions = value;
204
- }
205
- return Object.assign({}, globalOptions, newOptions);
206
- };
207
- return SkyAutonumericDirective;
208
- }());
209
- SkyAutonumericDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAutonumericDirective, deps: [{ token: i0__namespace.ElementRef }, { token: SkyAutonumericOptionsProvider }, { token: i0__namespace.Renderer2 }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Directive });
210
- SkyAutonumericDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: SkyAutonumericDirective, selector: "input[skyAutonumeric]", inputs: { skyAutonumeric: "skyAutonumeric" }, host: { listeners: { "blur": "onBlur()" } }, providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR], ngImport: i0__namespace });
211
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAutonumericDirective, decorators: [{
212
- type: i0.Directive,
213
- args: [{
214
- selector: 'input[skyAutonumeric]',
215
- providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR],
216
- }]
217
- }], ctorParameters: function () { return [{ type: i0__namespace.ElementRef }, { type: SkyAutonumericOptionsProvider }, { type: i0__namespace.Renderer2 }, { type: i0__namespace.ChangeDetectorRef }]; }, propDecorators: { skyAutonumeric: [{
218
- type: i0.Input
219
- }], onBlur: [{
220
- type: i0.HostListener,
221
- args: ['blur']
222
- }] } });
223
-
224
- var SkyAutonumericModule = /** @class */ (function () {
225
- function SkyAutonumericModule() {
226
- }
227
- return SkyAutonumericModule;
228
- }());
229
- SkyAutonumericModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAutonumericModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
230
- SkyAutonumericModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAutonumericModule, declarations: [SkyAutonumericDirective], imports: [common.CommonModule, forms.FormsModule, forms.ReactiveFormsModule], exports: [SkyAutonumericDirective] });
231
- SkyAutonumericModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAutonumericModule, imports: [[common.CommonModule, forms.FormsModule, forms.ReactiveFormsModule]] });
232
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAutonumericModule, decorators: [{
233
- type: i0.NgModule,
234
- args: [{
235
- declarations: [SkyAutonumericDirective],
236
- imports: [common.CommonModule, forms.FormsModule, forms.ReactiveFormsModule],
237
- exports: [SkyAutonumericDirective],
238
- }]
239
- }] });
240
-
241
- /**
242
- * Generated bundle index. Do not edit.
243
- */
244
-
245
- exports.SkyAutonumericModule = SkyAutonumericModule;
246
- exports.SkyAutonumericOptionsProvider = SkyAutonumericOptionsProvider;
247
- exports["λ1"] = SkyAutonumericDirective;
248
-
249
- Object.defineProperty(exports, '__esModule', { value: true });
250
-
251
- }));
252
- //# sourceMappingURL=skyux-autonumeric.umd.js.map
package/esm2015/index.js DELETED
@@ -1,7 +0,0 @@
1
- export * from './lib/modules/autonumeric/autonumeric-options-provider';
2
- export * from './lib/modules/autonumeric/autonumeric-options';
3
- export * from './lib/modules/autonumeric/autonumeric.module';
4
- // Components and directives must be exported to support Angular's "partial" Ivy compiler.
5
- // Obscure names are used to indicate types are not part of the public API.
6
- export { SkyAutonumericDirective as λ1 } from './lib/modules/autonumeric/autonumeric.directive';
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/components/autonumeric/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wDAAwD,CAAC;AACvE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,8CAA8C,CAAC;AAE7D,0FAA0F;AAC1F,2EAA2E;AAC3E,OAAO,EAAE,uBAAuB,IAAI,EAAE,EAAE,MAAM,iDAAiD,CAAC","sourcesContent":["export * from './lib/modules/autonumeric/autonumeric-options-provider';\nexport * from './lib/modules/autonumeric/autonumeric-options';\nexport * from './lib/modules/autonumeric/autonumeric.module';\n\n// Components and directives must be exported to support Angular's \"partial\" Ivy compiler.\n// Obscure names are used to indicate types are not part of the public API.\nexport { SkyAutonumericDirective as λ1 } from './lib/modules/autonumeric/autonumeric.directive';\n"]}
@@ -1,24 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Provides options to the underlying [autoNumeric utility](https://github.com/autoNumeric/autoNumeric).
5
- * This can set global options on multiple input fields.
6
- */
7
- export class SkyAutonumericOptionsProvider {
8
- /**
9
- * Specifies the value for a settings object to pass to the autoNumeric utility.
10
- * This overrides any default options specified by the `skyAutonumeric` attribute.
11
- */
12
- getConfig() {
13
- return {};
14
- }
15
- }
16
- SkyAutonumericOptionsProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAutonumericOptionsProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17
- SkyAutonumericOptionsProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAutonumericOptionsProvider, providedIn: 'root' });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAutonumericOptionsProvider, decorators: [{
19
- type: Injectable,
20
- args: [{
21
- providedIn: 'root',
22
- }]
23
- }] });
24
- //# sourceMappingURL=autonumeric-options-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"autonumeric-options-provider.js","sourceRoot":"","sources":["../../../../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric-options-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;;AAI3C;;;GAGG;AAIH,MAAM,OAAO,6BAA6B;IACxC;;;OAGG;IACI,SAAS;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;;2HAPU,6BAA6B;+HAA7B,6BAA6B,cAF5B,MAAM;4FAEP,6BAA6B;kBAHzC,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB","sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { SkyAutonumericOptions } from './autonumeric-options';\n\n/**\n * Provides options to the underlying [autoNumeric utility](https://github.com/autoNumeric/autoNumeric).\n * This can set global options on multiple input fields.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyAutonumericOptionsProvider {\n /**\n * Specifies the value for a settings object to pass to the autoNumeric utility.\n * This overrides any default options specified by the `skyAutonumeric` attribute.\n */\n public getConfig(): SkyAutonumericOptions {\n return {};\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=autonumeric-options.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"autonumeric-options.js","sourceRoot":"","sources":["../../../../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric-options.ts"],"names":[],"mappings":"","sourcesContent":["import AutoNumeric from 'autonumeric';\n\n/**\n * Specifies custom options to provide directly to the underlying [autoNumeric utility](https://github.com/autoNumeric/autoNumeric).\n * The value can be set to `string`, which is an alias that represents\n * a [set of predefined set of options](https://github.com/autoNumeric/autoNumeric#predefined-options)\n * for a currency or language, or `Options`, which is a\n * [custom set of options](https://github.com/autoNumeric/autoNumeric#options)\n * that override any default options that the `skyAutonumeric` attribute specifies.\n */\nexport type SkyAutonumericOptions =\n | string\n | keyof AutoNumeric.PredefinedOptions\n | AutoNumeric.Options;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"autonumeric.directive.js","sourceRoot":"","sources":["../../../../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n forwardRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport AutoNumeric from 'autonumeric';\nimport { Subject, fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyAutonumericOptions } from './autonumeric-options';\nimport { SkyAutonumericOptionsProvider } from './autonumeric-options-provider';\n\n// tslint:disable:no-forward-ref no-use-before-declare\nconst SKY_AUTONUMERIC_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyAutonumericDirective),\n multi: true,\n};\n\nconst SKY_AUTONUMERIC_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyAutonumericDirective),\n multi: true,\n};\n// tslint:enable\n\n/**\n * Wraps the [autoNumeric utility](https://github.com/autoNumeric/autoNumeric) to format\n * any type of number, including currency.\n */\n@Directive({\n selector: 'input[skyAutonumeric]',\n providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR],\n})\nexport class SkyAutonumericDirective\n implements OnInit, OnDestroy, ControlValueAccessor, Validator\n{\n /**\n * Assigns the name of a property from `SkyAutonumericOptionsProvider`.\n */\n @Input()\n public set skyAutonumeric(value: SkyAutonumericOptions) {\n this.autonumericOptions = this.mergeOptions(value);\n this.updateAutonumericInstance();\n }\n\n private autonumericInstance: AutoNumeric;\n private autonumericOptions: SkyAutonumericOptions | undefined;\n private control: AbstractControl | undefined;\n private isFirstChange = true;\n private value: number | undefined;\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(\n private elementRef: ElementRef,\n private globalConfig: SkyAutonumericOptionsProvider,\n private renderer: Renderer2,\n private changeDetector: ChangeDetectorRef\n ) {\n this.autonumericInstance = new AutoNumeric(this.elementRef.nativeElement);\n }\n\n public ngOnInit(): void {\n // Ensure that we set the global config even if no local config has been given.\n if (!this.autonumericOptions) {\n this.autonumericOptions = this.globalConfig.getConfig();\n }\n this.updateAutonumericInstance();\n\n fromEvent(this.elementRef.nativeElement, 'input')\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n const numericValue: number | undefined = this.getNumericValue();\n\n /* istanbul ignore else */\n if (this.value !== numericValue) {\n this.value = numericValue;\n this.onChange(numericValue);\n }\n\n /* istanbul ignore else */\n if (this.control && !this.control.dirty) {\n this.control.markAsDirty();\n }\n\n this.changeDetector.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n public setDisabledState(value: boolean): void {\n this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', value);\n }\n\n public writeValue(value: number | undefined): void {\n if (this.value !== value) {\n this.value = value;\n this.onChange(value);\n\n // Mark the control as \"pristine\" if it is initialized with a value.\n const initializedWithValue =\n this.isFirstChange && this.control && this.value !== null;\n if (initializedWithValue) {\n this.isFirstChange = false;\n this.control!.markAsPristine();\n }\n }\n\n if (typeof value === 'number') {\n this.autonumericInstance.set(value);\n } else {\n this.autonumericInstance.clear();\n }\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const noErrors = null; // tslint:disable-line: no-null-keyword\n\n if (!this.control) {\n this.control = control;\n }\n\n if (control.value === null || control.value === undefined) {\n return noErrors;\n }\n\n if (typeof control.value !== 'number') {\n return {\n notTypeOfNumber: { value: control.value },\n };\n }\n\n return noErrors;\n }\n\n public registerOnChange(fn: (value: number | undefined) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n @HostListener('blur')\n public onBlur(): void {\n this.onTouched();\n }\n\n private getNumericValue(): number | undefined {\n const inputValue = this.getInputValue();\n return inputValue && !this.isInputValueTheCurrencySymbol(inputValue)\n ? this.autonumericInstance.getNumber()\n : undefined;\n }\n\n /**\n * Due to AutoNumeric's hover logic - when AutoNumeric has a currency symbol the value\n * that we get back on empty fields will be the currency symbol.\n * The following logic ensures that we don't accidentally set\n * a form value when the only input was the programatically-added currency symbol.\n */\n private isInputValueTheCurrencySymbol(inputValue: string): boolean {\n /* istanbul ignore next */\n const currencySymbol = (\n (this.autonumericOptions as AutoNumeric.Options)?.currencySymbol ?? ''\n ).trim();\n return !!currencySymbol && inputValue === currencySymbol;\n }\n\n private getInputValue(): string {\n return this.elementRef.nativeElement.value;\n }\n\n private updateAutonumericInstance(): void {\n this.autonumericInstance.update(\n this.autonumericOptions as AutoNumeric.Options\n );\n }\n\n private mergeOptions(value: SkyAutonumericOptions): SkyAutonumericOptions {\n const globalOptions = this.globalConfig.getConfig();\n\n let newOptions: SkyAutonumericOptions;\n if (typeof value === 'string') {\n const predefinedOptions = AutoNumeric.getPredefinedOptions();\n newOptions = predefinedOptions[\n value as keyof AutoNumeric.Options\n ] as AutoNumeric.Options;\n } else {\n newOptions = value;\n }\n\n return Object.assign({}, globalOptions, newOptions);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onChange = (_: number | undefined) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onTouched = () => {};\n}\n"]}
@@ -1,19 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { SkyAutonumericDirective } from './autonumeric.directive';
5
- import * as i0 from "@angular/core";
6
- export class SkyAutonumericModule {
7
- }
8
- SkyAutonumericModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAutonumericModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- SkyAutonumericModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAutonumericModule, declarations: [SkyAutonumericDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule], exports: [SkyAutonumericDirective] });
10
- SkyAutonumericModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAutonumericModule, imports: [[CommonModule, FormsModule, ReactiveFormsModule]] });
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAutonumericModule, decorators: [{
12
- type: NgModule,
13
- args: [{
14
- declarations: [SkyAutonumericDirective],
15
- imports: [CommonModule, FormsModule, ReactiveFormsModule],
16
- exports: [SkyAutonumericDirective],
17
- }]
18
- }] });
19
- //# sourceMappingURL=autonumeric.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"autonumeric.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;;AAOlE,MAAM,OAAO,oBAAoB;;kHAApB,oBAAoB;mHAApB,oBAAoB,iBAJhB,uBAAuB,aAC5B,YAAY,EAAE,WAAW,EAAE,mBAAmB,aAC9C,uBAAuB;mHAEtB,oBAAoB,YAHtB,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,CAAC;4FAG9C,oBAAoB;kBALhC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,uBAAuB,CAAC;oBACvC,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,CAAC;oBACzD,OAAO,EAAE,CAAC,uBAAuB,CAAC;iBACnC","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { SkyAutonumericDirective } from './autonumeric.directive';\n\n@NgModule({\n declarations: [SkyAutonumericDirective],\n imports: [CommonModule, FormsModule, ReactiveFormsModule],\n exports: [SkyAutonumericDirective],\n})\nexport class SkyAutonumericModule {}\n"]}
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=skyux-autonumeric.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skyux-autonumeric.js","sourceRoot":"","sources":["../../../../../libs/components/autonumeric/src/skyux-autonumeric.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"skyux-autonumeric.js","sources":["../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric-options-provider.ts","../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric.directive.ts","../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric.module.ts","../../../../../libs/components/autonumeric/src/skyux-autonumeric.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { SkyAutonumericOptions } from './autonumeric-options';\n\n/**\n * Provides options to the underlying [autoNumeric utility](https://github.com/autoNumeric/autoNumeric).\n * This can set global options on multiple input fields.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyAutonumericOptionsProvider {\n /**\n * Specifies the value for a settings object to pass to the autoNumeric utility.\n * This overrides any default options specified by the `skyAutonumeric` attribute.\n */\n public getConfig(): SkyAutonumericOptions {\n return {};\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n forwardRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport AutoNumeric from 'autonumeric';\nimport { Subject, fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyAutonumericOptions } from './autonumeric-options';\nimport { SkyAutonumericOptionsProvider } from './autonumeric-options-provider';\n\n// tslint:disable:no-forward-ref no-use-before-declare\nconst SKY_AUTONUMERIC_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyAutonumericDirective),\n multi: true,\n};\n\nconst SKY_AUTONUMERIC_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyAutonumericDirective),\n multi: true,\n};\n// tslint:enable\n\n/**\n * Wraps the [autoNumeric utility](https://github.com/autoNumeric/autoNumeric) to format\n * any type of number, including currency.\n */\n@Directive({\n selector: 'input[skyAutonumeric]',\n providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR],\n})\nexport class SkyAutonumericDirective\n implements OnInit, OnDestroy, ControlValueAccessor, Validator\n{\n /**\n * Assigns the name of a property from `SkyAutonumericOptionsProvider`.\n */\n @Input()\n public set skyAutonumeric(value: SkyAutonumericOptions) {\n this.autonumericOptions = this.mergeOptions(value);\n this.updateAutonumericInstance();\n }\n\n private autonumericInstance: AutoNumeric;\n private autonumericOptions: SkyAutonumericOptions | undefined;\n private control: AbstractControl | undefined;\n private isFirstChange = true;\n private value: number | undefined;\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(\n private elementRef: ElementRef,\n private globalConfig: SkyAutonumericOptionsProvider,\n private renderer: Renderer2,\n private changeDetector: ChangeDetectorRef\n ) {\n this.autonumericInstance = new AutoNumeric(this.elementRef.nativeElement);\n }\n\n public ngOnInit(): void {\n // Ensure that we set the global config even if no local config has been given.\n if (!this.autonumericOptions) {\n this.autonumericOptions = this.globalConfig.getConfig();\n }\n this.updateAutonumericInstance();\n\n fromEvent(this.elementRef.nativeElement, 'input')\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n const numericValue: number | undefined = this.getNumericValue();\n\n /* istanbul ignore else */\n if (this.value !== numericValue) {\n this.value = numericValue;\n this.onChange(numericValue);\n }\n\n /* istanbul ignore else */\n if (this.control && !this.control.dirty) {\n this.control.markAsDirty();\n }\n\n this.changeDetector.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n public setDisabledState(value: boolean): void {\n this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', value);\n }\n\n public writeValue(value: number | undefined): void {\n if (this.value !== value) {\n this.value = value;\n this.onChange(value);\n\n // Mark the control as \"pristine\" if it is initialized with a value.\n const initializedWithValue =\n this.isFirstChange && this.control && this.value !== null;\n if (initializedWithValue) {\n this.isFirstChange = false;\n this.control!.markAsPristine();\n }\n }\n\n if (typeof value === 'number') {\n this.autonumericInstance.set(value);\n } else {\n this.autonumericInstance.clear();\n }\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const noErrors = null; // tslint:disable-line: no-null-keyword\n\n if (!this.control) {\n this.control = control;\n }\n\n if (control.value === null || control.value === undefined) {\n return noErrors;\n }\n\n if (typeof control.value !== 'number') {\n return {\n notTypeOfNumber: { value: control.value },\n };\n }\n\n return noErrors;\n }\n\n public registerOnChange(fn: (value: number | undefined) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n @HostListener('blur')\n public onBlur(): void {\n this.onTouched();\n }\n\n private getNumericValue(): number | undefined {\n const inputValue = this.getInputValue();\n return inputValue && !this.isInputValueTheCurrencySymbol(inputValue)\n ? this.autonumericInstance.getNumber()\n : undefined;\n }\n\n /**\n * Due to AutoNumeric's hover logic - when AutoNumeric has a currency symbol the value\n * that we get back on empty fields will be the currency symbol.\n * The following logic ensures that we don't accidentally set\n * a form value when the only input was the programatically-added currency symbol.\n */\n private isInputValueTheCurrencySymbol(inputValue: string): boolean {\n /* istanbul ignore next */\n const currencySymbol = (\n (this.autonumericOptions as AutoNumeric.Options)?.currencySymbol ?? ''\n ).trim();\n return !!currencySymbol && inputValue === currencySymbol;\n }\n\n private getInputValue(): string {\n return this.elementRef.nativeElement.value;\n }\n\n private updateAutonumericInstance(): void {\n this.autonumericInstance.update(\n this.autonumericOptions as AutoNumeric.Options\n );\n }\n\n private mergeOptions(value: SkyAutonumericOptions): SkyAutonumericOptions {\n const globalOptions = this.globalConfig.getConfig();\n\n let newOptions: SkyAutonumericOptions;\n if (typeof value === 'string') {\n const predefinedOptions = AutoNumeric.getPredefinedOptions();\n newOptions = predefinedOptions[\n value as keyof AutoNumeric.Options\n ] as AutoNumeric.Options;\n } else {\n newOptions = value;\n }\n\n return Object.assign({}, globalOptions, newOptions);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onChange = (_: number | undefined) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onTouched = () => {};\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { SkyAutonumericDirective } from './autonumeric.directive';\n\n@NgModule({\n declarations: [SkyAutonumericDirective],\n imports: [CommonModule, FormsModule, ReactiveFormsModule],\n exports: [SkyAutonumericDirective],\n})\nexport class SkyAutonumericModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}