@skyux/autonumeric 5.7.1 → 6.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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.2.7", ngImport: i0, type: SkyAutonumericOptionsProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17
+ SkyAutonumericOptionsProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAutonumericOptionsProvider, providedIn: 'root' });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", 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,170 @@
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
+ // tslint:disable:no-forward-ref no-use-before-declare
10
+ const SKY_AUTONUMERIC_VALUE_ACCESSOR = {
11
+ provide: NG_VALUE_ACCESSOR,
12
+ useExisting: forwardRef(() => SkyAutonumericDirective),
13
+ multi: true,
14
+ };
15
+ const SKY_AUTONUMERIC_VALIDATOR = {
16
+ provide: NG_VALIDATORS,
17
+ useExisting: forwardRef(() => SkyAutonumericDirective),
18
+ multi: true,
19
+ };
20
+ // tslint:enable
21
+ /**
22
+ * Wraps the [autoNumeric utility](https://github.com/autoNumeric/autoNumeric) to format
23
+ * any type of number, including currency.
24
+ */
25
+ export class SkyAutonumericDirective {
26
+ constructor(elementRef, globalConfig, renderer, changeDetector) {
27
+ this.elementRef = elementRef;
28
+ this.globalConfig = globalConfig;
29
+ this.renderer = renderer;
30
+ this.changeDetector = changeDetector;
31
+ this.isFirstChange = true;
32
+ this.ngUnsubscribe = new Subject();
33
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
34
+ this.onChange = (_) => { };
35
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
36
+ this.onTouched = () => { };
37
+ this.autonumericInstance = new AutoNumeric(this.elementRef.nativeElement);
38
+ }
39
+ /**
40
+ * Assigns the name of a property from `SkyAutonumericOptionsProvider`.
41
+ */
42
+ set skyAutonumeric(value) {
43
+ this.autonumericOptions = this.mergeOptions(value);
44
+ this.updateAutonumericInstance();
45
+ }
46
+ ngOnInit() {
47
+ // Ensure that we set the global config even if no local config has been given.
48
+ if (!this.autonumericOptions) {
49
+ this.autonumericOptions = this.globalConfig.getConfig();
50
+ }
51
+ this.updateAutonumericInstance();
52
+ fromEvent(this.elementRef.nativeElement, 'input')
53
+ .pipe(takeUntil(this.ngUnsubscribe))
54
+ .subscribe(() => {
55
+ const numericValue = this.getNumericValue();
56
+ /* istanbul ignore else */
57
+ if (this.value !== numericValue) {
58
+ this.value = numericValue;
59
+ this.onChange(numericValue);
60
+ }
61
+ /* istanbul ignore else */
62
+ if (this.control && !this.control.dirty) {
63
+ this.control.markAsDirty();
64
+ }
65
+ this.changeDetector.markForCheck();
66
+ });
67
+ }
68
+ ngOnDestroy() {
69
+ this.ngUnsubscribe.next();
70
+ this.ngUnsubscribe.complete();
71
+ }
72
+ /**
73
+ * Implemented as part of ControlValueAccessor.
74
+ */
75
+ setDisabledState(value) {
76
+ this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', value);
77
+ }
78
+ writeValue(value) {
79
+ if (this.value !== value) {
80
+ this.value = value;
81
+ this.onChange(value);
82
+ // Mark the control as "pristine" if it is initialized with a value.
83
+ const initializedWithValue = this.isFirstChange && this.control && this.value !== null;
84
+ if (initializedWithValue) {
85
+ this.isFirstChange = false;
86
+ this.control.markAsPristine();
87
+ }
88
+ }
89
+ if (typeof value === 'number') {
90
+ this.autonumericInstance.set(value);
91
+ }
92
+ else {
93
+ this.autonumericInstance.clear();
94
+ }
95
+ }
96
+ validate(control) {
97
+ const noErrors = null; // tslint:disable-line: no-null-keyword
98
+ if (!this.control) {
99
+ this.control = control;
100
+ }
101
+ if (control.value === null || control.value === undefined) {
102
+ return noErrors;
103
+ }
104
+ if (typeof control.value !== 'number') {
105
+ return {
106
+ notTypeOfNumber: { value: control.value },
107
+ };
108
+ }
109
+ return noErrors;
110
+ }
111
+ registerOnChange(fn) {
112
+ this.onChange = fn;
113
+ }
114
+ registerOnTouched(fn) {
115
+ this.onTouched = fn;
116
+ }
117
+ onBlur() {
118
+ this.onTouched();
119
+ }
120
+ getNumericValue() {
121
+ const inputValue = this.getInputValue();
122
+ return inputValue && !this.isInputValueTheCurrencySymbol(inputValue)
123
+ ? this.autonumericInstance.getNumber()
124
+ : undefined;
125
+ }
126
+ /**
127
+ * Due to AutoNumeric's hover logic - when AutoNumeric has a currency symbol the value
128
+ * that we get back on empty fields will be the currency symbol.
129
+ * The following logic ensures that we don't accidentally set
130
+ * a form value when the only input was the programatically-added currency symbol.
131
+ */
132
+ isInputValueTheCurrencySymbol(inputValue) {
133
+ /* istanbul ignore next */
134
+ const currencySymbol = (this.autonumericOptions?.currencySymbol ?? '').trim();
135
+ return !!currencySymbol && inputValue === currencySymbol;
136
+ }
137
+ getInputValue() {
138
+ return this.elementRef.nativeElement.value;
139
+ }
140
+ updateAutonumericInstance() {
141
+ this.autonumericInstance.update(this.autonumericOptions);
142
+ }
143
+ mergeOptions(value) {
144
+ const globalOptions = this.globalConfig.getConfig();
145
+ let newOptions;
146
+ if (typeof value === 'string') {
147
+ const predefinedOptions = AutoNumeric.getPredefinedOptions();
148
+ newOptions = predefinedOptions[value];
149
+ }
150
+ else {
151
+ newOptions = value;
152
+ }
153
+ return Object.assign({}, globalOptions, newOptions);
154
+ }
155
+ }
156
+ SkyAutonumericDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAutonumericDirective, deps: [{ token: i0.ElementRef }, { token: i1.SkyAutonumericOptionsProvider }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
157
+ SkyAutonumericDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SkyAutonumericDirective, selector: "input[skyAutonumeric]", inputs: { skyAutonumeric: "skyAutonumeric" }, host: { listeners: { "blur": "onBlur()" } }, providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR], ngImport: i0 });
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAutonumericDirective, decorators: [{
159
+ type: Directive,
160
+ args: [{
161
+ selector: 'input[skyAutonumeric]',
162
+ providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR],
163
+ }]
164
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SkyAutonumericOptionsProvider }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { skyAutonumeric: [{
165
+ type: Input
166
+ }], onBlur: [{
167
+ type: HostListener,
168
+ args: ['blur']
169
+ }] } });
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b251bWVyaWMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2F1dG9udW1lcmljL3NyYy9saWIvbW9kdWxlcy9hdXRvbnVtZXJpYy9hdXRvbnVtZXJpYy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sV0FBVyxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQUUvRSxzREFBc0Q7QUFDdEQsTUFBTSw4QkFBOEIsR0FBRztJQUNyQyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7SUFDdEQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUYsTUFBTSx5QkFBeUIsR0FBRztJQUNoQyxPQUFPLEVBQUUsYUFBYTtJQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO0lBQ3RELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUNGLGdCQUFnQjtBQUVoQjs7O0dBR0c7QUFLSCxNQUFNLE9BQU8sdUJBQXVCO0lBb0JsQyxZQUNVLFVBQXNCLEVBQ3RCLFlBQTJDLEVBQzNDLFFBQW1CLEVBQ25C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QkFBOEIsRUFBRSx5QkFBeUIsQ0FBQztpQkFDdkU7cU1BUVksY0FBYztzQkFEeEIsS0FBSztnQkFnSEMsTUFBTTtzQkFEWixZQUFZO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgUmVuZGVyZXIyLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IEF1dG9OdW1lcmljIGZyb20gJ2F1dG9udW1lcmljJztcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lBdXRvbnVtZXJpY09wdGlvbnMgfSBmcm9tICcuL2F1dG9udW1lcmljLW9wdGlvbnMnO1xuaW1wb3J0IHsgU2t5QXV0b251bWVyaWNPcHRpb25zUHJvdmlkZXIgfSBmcm9tICcuL2F1dG9udW1lcmljLW9wdGlvbnMtcHJvdmlkZXInO1xuXG4vLyB0c2xpbnQ6ZGlzYWJsZTpuby1mb3J3YXJkLXJlZiBuby11c2UtYmVmb3JlLWRlY2xhcmVcbmNvbnN0IFNLWV9BVVRPTlVNRVJJQ19WQUxVRV9BQ0NFU1NPUiA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNreUF1dG9udW1lcmljRGlyZWN0aXZlKSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG5jb25zdCBTS1lfQVVUT05VTUVSSUNfVkFMSURBVE9SID0ge1xuICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lBdXRvbnVtZXJpY0RpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufTtcbi8vIHRzbGludDplbmFibGVcblxuLyoqXG4gKiBXcmFwcyB0aGUgW2F1dG9OdW1lcmljIHV0aWxpdHldKGh0dHBzOi8vZ2l0aHViLmNvbS9hdXRvTnVtZXJpYy9hdXRvTnVtZXJpYykgdG8gZm9ybWF0XG4gKiBhbnkgdHlwZSBvZiBudW1iZXIsIGluY2x1ZGluZyBjdXJyZW5jeS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnaW5wdXRbc2t5QXV0b251bWVyaWNdJyxcbiAgcHJvdmlkZXJzOiBbU0tZX0FVVE9OVU1FUklDX1ZBTFVFX0FDQ0VTU09SLCBTS1lfQVVUT05VTUVSSUNfVkFMSURBVE9SXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QXV0b251bWVyaWNEaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvclxue1xuICAvKipcbiAgICogQXNzaWducyB0aGUgbmFtZSBvZiBhIHByb3BlcnR5IGZyb20gYFNreUF1dG9udW1lcmljT3B0aW9uc1Byb3ZpZGVyYC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2t5QXV0b251bWVyaWModmFsdWU6IFNreUF1dG9udW1lcmljT3B0aW9ucykge1xuICAgIHRoaXMuYXV0b251bWVyaWNPcHRpb25zID0gdGhpcy5tZXJnZU9wdGlvbnModmFsdWUpO1xuICAgIHRoaXMudXBkYXRlQXV0b251bWVyaWNJbnN0YW5jZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhdXRvbnVtZXJpY0luc3RhbmNlOiBBdXRvTnVtZXJpYztcbiAgcHJpdmF0ZSBhdXRvbnVtZXJpY09wdGlvbnM6IFNreUF1dG9udW1lcmljT3B0aW9ucyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgaXNGaXJzdENoYW5nZSA9IHRydWU7XG4gIHByaXZhdGUgdmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGdsb2JhbENvbmZpZzogU2t5QXV0b251bWVyaWNPcHRpb25zUHJvdmlkZXIsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHRoaXMuYXV0b251bWVyaWNJbnN0YW5jZSA9IG5ldyBBdXRvTnVtZXJpYyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gRW5zdXJlIHRoYXQgd2Ugc2V0IHRoZSBnbG9iYWwgY29uZmlnIGV2ZW4gaWYgbm8gbG9jYWwgY29uZmlnIGhhcyBiZWVuIGdpdmVuLlxuICAgIGlmICghdGhpcy5hdXRvbnVtZXJpY09wdGlvbnMpIHtcbiAgICAgIHRoaXMuYXV0b251bWVyaWNPcHRpb25zID0gdGhpcy5nbG9iYWxDb25maWcuZ2V0Q29uZmlnKCk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlQXV0b251bWVyaWNJbnN0YW5jZSgpO1xuXG4gICAgZnJvbUV2ZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnaW5wdXQnKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgbnVtZXJpY1ZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQgPSB0aGlzLmdldE51bWVyaWNWYWx1ZSgpO1xuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmICh0aGlzLnZhbHVlICE9PSBudW1lcmljVmFsdWUpIHtcbiAgICAgICAgICB0aGlzLnZhbHVlID0gbnVtZXJpY1ZhbHVlO1xuICAgICAgICAgIHRoaXMub25DaGFuZ2UobnVtZXJpY1ZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wgJiYgIXRoaXMuY29udHJvbC5kaXJ0eSkge1xuICAgICAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJywgdmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG5cbiAgICAgIC8vIE1hcmsgdGhlIGNvbnRyb2wgYXMgXCJwcmlzdGluZVwiIGlmIGl0IGlzIGluaXRpYWxpemVkIHdpdGggYSB2YWx1ZS5cbiAgICAgIGNvbnN0IGluaXRpYWxpemVkV2l0aFZhbHVlID1cbiAgICAgICAgdGhpcy5pc0ZpcnN0Q2hhbmdlICYmIHRoaXMuY29udHJvbCAmJiB0aGlzLnZhbHVlICE9PSBudWxsO1xuICAgICAgaWYgKGluaXRpYWxpemVkV2l0aFZhbHVlKSB7XG4gICAgICAgIHRoaXMuaXNGaXJzdENoYW5nZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvbnRyb2whLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHRoaXMuYXV0b251bWVyaWNJbnN0YW5jZS5zZXQodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmF1dG9udW1lcmljSW5zdGFuY2UuY2xlYXIoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IG5vRXJyb3JzID0gbnVsbDsgLy8gdHNsaW50OmRpc2FibGUtbGluZTogbm8tbnVsbC1rZXl3b3JkXG5cbiAgICBpZiAoIXRoaXMuY29udHJvbCkge1xuICAgICAgdGhpcy5jb250cm9sID0gY29udHJvbDtcbiAgICB9XG5cbiAgICBpZiAoY29udHJvbC52YWx1ZSA9PT0gbnVsbCB8fCBjb250cm9sLnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBub0Vycm9ycztcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNvbnRyb2wudmFsdWUgIT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBub3RUeXBlT2ZOdW1iZXI6IHsgdmFsdWU6IGNvbnRyb2wudmFsdWUgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vRXJyb3JzO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICBwdWJsaWMgb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBwcml2YXRlIGdldE51bWVyaWNWYWx1ZSgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGlucHV0VmFsdWUgPSB0aGlzLmdldElucHV0VmFsdWUoKTtcbiAgICByZXR1cm4gaW5wdXRWYWx1ZSAmJiAhdGhpcy5pc0lucHV0VmFsdWVUaGVDdXJyZW5jeVN5bWJvbChpbnB1dFZhbHVlKVxuICAgICAgPyB0aGlzLmF1dG9udW1lcmljSW5zdGFuY2UuZ2V0TnVtYmVyKClcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIER1ZSB0byBBdXRvTnVtZXJpYydzIGhvdmVyIGxvZ2ljIC0gd2hlbiBBdXRvTnVtZXJpYyBoYXMgYSBjdXJyZW5jeSBzeW1ib2wgdGhlIHZhbHVlXG4gICAqIHRoYXQgd2UgZ2V0IGJhY2sgb24gZW1wdHkgZmllbGRzIHdpbGwgYmUgdGhlIGN1cnJlbmN5IHN5bWJvbC5cbiAgICogVGhlIGZvbGxvd2luZyBsb2dpYyBlbnN1cmVzIHRoYXQgd2UgZG9uJ3QgYWNjaWRlbnRhbGx5IHNldFxuICAgKiBhIGZvcm0gdmFsdWUgd2hlbiB0aGUgb25seSBpbnB1dCB3YXMgdGhlIHByb2dyYW1hdGljYWxseS1hZGRlZCBjdXJyZW5jeSBzeW1ib2wuXG4gICAqL1xuICBwcml2YXRlIGlzSW5wdXRWYWx1ZVRoZUN1cnJlbmN5U3ltYm9sKGlucHV0VmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgY29uc3QgY3VycmVuY3lTeW1ib2wgPSAoXG4gICAgICAodGhpcy5hdXRvbnVtZXJpY09wdGlvbnMgYXMgQXV0b051bWVyaWMuT3B0aW9ucyk/LmN1cnJlbmN5U3ltYm9sID8/ICcnXG4gICAgKS50cmltKCk7XG4gICAgcmV0dXJuICEhY3VycmVuY3lTeW1ib2wgJiYgaW5wdXRWYWx1ZSA9PT0gY3VycmVuY3lTeW1ib2w7XG4gIH1cblxuICBwcml2YXRlIGdldElucHV0VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUF1dG9udW1lcmljSW5zdGFuY2UoKTogdm9pZCB7XG4gICAgdGhpcy5hdXRvbnVtZXJpY0luc3RhbmNlLnVwZGF0ZShcbiAgICAgIHRoaXMuYXV0b251bWVyaWNPcHRpb25zIGFzIEF1dG9OdW1lcmljLk9wdGlvbnNcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZU9wdGlvbnModmFsdWU6IFNreUF1dG9udW1lcmljT3B0aW9ucyk6IFNreUF1dG9udW1lcmljT3B0aW9ucyB7XG4gICAgY29uc3QgZ2xvYmFsT3B0aW9ucyA9IHRoaXMuZ2xvYmFsQ29uZmlnLmdldENvbmZpZygpO1xuXG4gICAgbGV0IG5ld09wdGlvbnM6IFNreUF1dG9udW1lcmljT3B0aW9ucztcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgcHJlZGVmaW5lZE9wdGlvbnMgPSBBdXRvTnVtZXJpYy5nZXRQcmVkZWZpbmVkT3B0aW9ucygpO1xuICAgICAgbmV3T3B0aW9ucyA9IHByZWRlZmluZWRPcHRpb25zW1xuICAgICAgICB2YWx1ZSBhcyBrZXlvZiBBdXRvTnVtZXJpYy5PcHRpb25zXG4gICAgICBdIGFzIEF1dG9OdW1lcmljLk9wdGlvbnM7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld09wdGlvbnMgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgZ2xvYmFsT3B0aW9ucywgbmV3T3B0aW9ucyk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAoXzogbnVtYmVyIHwgdW5kZWZpbmVkKSA9PiB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xufVxuIl19
@@ -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.2.7", ngImport: i0, type: SkyAutonumericModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ SkyAutonumericModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAutonumericModule, declarations: [SkyAutonumericDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule], exports: [SkyAutonumericDirective] });
10
+ SkyAutonumericModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAutonumericModule, imports: [[CommonModule, FormsModule, ReactiveFormsModule]] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", 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,9 +19,9 @@ 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.2.7", ngImport: i0, type: SkyAutonumericOptionsProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
23
+ SkyAutonumericOptionsProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAutonumericOptionsProvider, providedIn: 'root' });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAutonumericOptionsProvider, decorators: [{
25
25
  type: Injectable,
26
26
  args: [{
27
27
  providedIn: 'root',
@@ -176,9 +176,9 @@ class SkyAutonumericDirective {
176
176
  return Object.assign({}, globalOptions, newOptions);
177
177
  }
178
178
  }
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: [{
179
+ SkyAutonumericDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", 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: "13.2.7", 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: "13.2.7", ngImport: i0, type: SkyAutonumericDirective, decorators: [{
182
182
  type: Directive,
183
183
  args: [{
184
184
  selector: 'input[skyAutonumeric]',
@@ -193,10 +193,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
193
193
 
194
194
  class SkyAutonumericModule {
195
195
  }
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: [{
196
+ SkyAutonumericModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAutonumericModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
197
+ SkyAutonumericModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAutonumericModule, declarations: [SkyAutonumericDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule], exports: [SkyAutonumericDirective] });
198
+ SkyAutonumericModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAutonumericModule, imports: [[CommonModule, FormsModule, ReactiveFormsModule]] });
199
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAutonumericModule, decorators: [{
200
200
  type: NgModule,
201
201
  args: [{
202
202
  declarations: [SkyAutonumericDirective],
@@ -210,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
210
210
  */
211
211
 
212
212
  export { SkyAutonumericModule, SkyAutonumericOptionsProvider, SkyAutonumericDirective as λ1 };
213
- //# sourceMappingURL=skyux-autonumeric.js.map
213
+ //# 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\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":["i1.SkyAutonumericOptionsProvider"],"mappings":"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"}
@@ -1,11 +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";
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.2.7", ngImport: i0, type: SkyAutonumericOptionsProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
23
+ SkyAutonumericOptionsProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAutonumericOptionsProvider, providedIn: 'root' });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAutonumericOptionsProvider, decorators: [{
25
+ type: Injectable,
26
+ args: [{
27
+ providedIn: 'root',
28
+ }]
29
+ }] });
30
+
9
31
  // tslint:disable:no-forward-ref no-use-before-declare
10
32
  const SKY_AUTONUMERIC_VALUE_ACCESSOR = {
11
33
  provide: NG_VALUE_ACCESSOR,
@@ -22,7 +44,7 @@ const SKY_AUTONUMERIC_VALIDATOR = {
22
44
  * Wraps the [autoNumeric utility](https://github.com/autoNumeric/autoNumeric) to format
23
45
  * any type of number, including currency.
24
46
  */
25
- export class SkyAutonumericDirective {
47
+ class SkyAutonumericDirective {
26
48
  constructor(elementRef, globalConfig, renderer, changeDetector) {
27
49
  this.elementRef = elementRef;
28
50
  this.globalConfig = globalConfig;
@@ -130,9 +152,8 @@ export class SkyAutonumericDirective {
130
152
  * a form value when the only input was the programatically-added currency symbol.
131
153
  */
132
154
  isInputValueTheCurrencySymbol(inputValue) {
133
- var _a, _b;
134
155
  /* istanbul ignore next */
135
- const currencySymbol = ((_b = (_a = this.autonumericOptions) === null || _a === void 0 ? void 0 : _a.currencySymbol) !== null && _b !== void 0 ? _b : '').trim();
156
+ const currencySymbol = (this.autonumericOptions?.currencySymbol ?? '').trim();
136
157
  return !!currencySymbol && inputValue === currencySymbol;
137
158
  }
138
159
  getInputValue() {
@@ -154,18 +175,38 @@ export class SkyAutonumericDirective {
154
175
  return Object.assign({}, globalOptions, newOptions);
155
176
  }
156
177
  }
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: [{
178
+ SkyAutonumericDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAutonumericDirective, deps: [{ token: i0.ElementRef }, { token: SkyAutonumericOptionsProvider }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
179
+ SkyAutonumericDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SkyAutonumericDirective, selector: "input[skyAutonumeric]", inputs: { skyAutonumeric: "skyAutonumeric" }, host: { listeners: { "blur": "onBlur()" } }, providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR], ngImport: i0 });
180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAutonumericDirective, decorators: [{
160
181
  type: Directive,
161
182
  args: [{
162
183
  selector: 'input[skyAutonumeric]',
163
184
  providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR],
164
185
  }]
165
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SkyAutonumericOptionsProvider }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { skyAutonumeric: [{
186
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: SkyAutonumericOptionsProvider }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { skyAutonumeric: [{
166
187
  type: Input
167
188
  }], onBlur: [{
168
189
  type: HostListener,
169
190
  args: ['blur']
170
191
  }] } });
171
- //# sourceMappingURL=autonumeric.directive.js.map
192
+
193
+ class SkyAutonumericModule {
194
+ }
195
+ SkyAutonumericModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAutonumericModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
196
+ SkyAutonumericModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAutonumericModule, declarations: [SkyAutonumericDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule], exports: [SkyAutonumericDirective] });
197
+ SkyAutonumericModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAutonumericModule, imports: [[CommonModule, FormsModule, ReactiveFormsModule]] });
198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAutonumericModule, decorators: [{
199
+ type: NgModule,
200
+ args: [{
201
+ declarations: [SkyAutonumericDirective],
202
+ imports: [CommonModule, FormsModule, ReactiveFormsModule],
203
+ exports: [SkyAutonumericDirective],
204
+ }]
205
+ }] });
206
+
207
+ /**
208
+ * Generated bundle index. Do not edit.
209
+ */
210
+
211
+ export { SkyAutonumericModule, SkyAutonumericOptionsProvider, SkyAutonumericDirective as λ1 };
212
+ //# 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\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":["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;AACA,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;AACF;AAEA;;;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;AACtC,QAAA,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;;;MC3JT,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.7.1",
3
+ "version": "6.0.0-beta.0",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -16,19 +16,32 @@
16
16
  },
17
17
  "homepage": "https://github.com/blackbaud/skyux#readme",
18
18
  "peerDependencies": {
19
- "@angular/common": "^12.2.16",
20
- "@angular/core": "^12.2.16",
21
- "@angular/forms": "^12.2.16"
19
+ "@angular/common": "^13.2.7",
20
+ "@angular/core": "^13.2.7",
21
+ "@angular/forms": "^13.2.7"
22
22
  },
23
23
  "dependencies": {
24
24
  "autonumeric": "4.6.0",
25
25
  "tslib": "^2.3.1"
26
26
  },
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",
27
+ "module": "fesm2015/skyux-autonumeric.mjs",
28
+ "es2020": "fesm2020/skyux-autonumeric.mjs",
29
+ "esm2020": "esm2020/skyux-autonumeric.mjs",
30
+ "fesm2020": "fesm2020/skyux-autonumeric.mjs",
31
+ "fesm2015": "fesm2015/skyux-autonumeric.mjs",
32
32
  "typings": "skyux-autonumeric.d.ts",
33
+ "exports": {
34
+ "./package.json": {
35
+ "default": "./package.json"
36
+ },
37
+ ".": {
38
+ "types": "./skyux-autonumeric.d.ts",
39
+ "esm2020": "./esm2020/skyux-autonumeric.mjs",
40
+ "es2020": "./fesm2020/skyux-autonumeric.mjs",
41
+ "es2015": "./fesm2015/skyux-autonumeric.mjs",
42
+ "node": "./fesm2015/skyux-autonumeric.mjs",
43
+ "default": "./fesm2020/skyux-autonumeric.mjs"
44
+ }
45
+ },
33
46
  "sideEffects": false
34
47
  }
@@ -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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"}