@skyux/autonumeric 8.7.0 → 9.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/autonumeric",
3
- "version": "8.7.0",
3
+ "version": "9.0.0-alpha.0",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -21,30 +21,24 @@
21
21
  },
22
22
  ".": {
23
23
  "types": "./index.d.ts",
24
- "esm2020": "./esm2020/skyux-autonumeric.mjs",
25
- "es2020": "./fesm2020/skyux-autonumeric.mjs",
26
- "es2015": "./fesm2015/skyux-autonumeric.mjs",
27
- "node": "./fesm2015/skyux-autonumeric.mjs",
28
- "default": "./fesm2020/skyux-autonumeric.mjs"
24
+ "esm2022": "./esm2022/skyux-autonumeric.mjs",
25
+ "esm": "./esm2022/skyux-autonumeric.mjs",
26
+ "default": "./fesm2022/skyux-autonumeric.mjs"
29
27
  },
30
28
  "./documentation.json": {
31
29
  "default": "./documentation.json"
32
30
  }
33
31
  },
34
32
  "peerDependencies": {
35
- "@angular/common": "^15.2.9",
36
- "@angular/core": "^15.2.9",
37
- "@angular/forms": "^15.2.9",
33
+ "@angular/common": "^16.1.7",
34
+ "@angular/core": "^16.1.7",
35
+ "@angular/forms": "^16.1.7",
38
36
  "autonumeric": "^4.8.1"
39
37
  },
40
38
  "dependencies": {
41
39
  "tslib": "^2.5.0"
42
40
  },
43
- "module": "fesm2015/skyux-autonumeric.mjs",
44
- "es2020": "fesm2020/skyux-autonumeric.mjs",
45
- "esm2020": "esm2020/skyux-autonumeric.mjs",
46
- "fesm2020": "fesm2020/skyux-autonumeric.mjs",
47
- "fesm2015": "fesm2015/skyux-autonumeric.mjs",
41
+ "module": "fesm2022/skyux-autonumeric.mjs",
48
42
  "typings": "index.d.ts",
49
43
  "sideEffects": false
50
44
  }
@@ -1,183 +0,0 @@
1
- var _SkyAutonumericDirective_instances, _SkyAutonumericDirective_autonumericInstance, _SkyAutonumericDirective_autonumericOptions, _SkyAutonumericDirective_control, _SkyAutonumericDirective_isFirstChange, _SkyAutonumericDirective_value, _SkyAutonumericDirective_ngUnsubscribe, _SkyAutonumericDirective_elementRef, _SkyAutonumericDirective_globalConfig, _SkyAutonumericDirective_renderer, _SkyAutonumericDirective_changeDetector, _SkyAutonumericDirective_getNumericValue, _SkyAutonumericDirective_isInputValueTheCurrencySymbol, _SkyAutonumericDirective_getInputValue, _SkyAutonumericDirective_updateAutonumericInstance, _SkyAutonumericDirective_mergeOptions, _SkyAutonumericDirective_onChange, _SkyAutonumericDirective_onTouched;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { Directive, HostListener, Input, forwardRef, } from '@angular/core';
4
- import { NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
5
- import AutoNumeric from 'autonumeric';
6
- import { Subject, fromEvent } from 'rxjs';
7
- import { takeUntil } from 'rxjs/operators';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "./autonumeric-options-provider";
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
- /**
21
- * Wraps the [autoNumeric utility](https://github.com/autoNumeric/autoNumeric) to format
22
- * any type of number, including currency.
23
- */
24
- export class SkyAutonumericDirective {
25
- /**
26
- * Assigns the name of a property from `SkyAutonumericOptionsProvider`.
27
- */
28
- set skyAutonumeric(value) {
29
- __classPrivateFieldSet(this, _SkyAutonumericDirective_autonumericOptions, __classPrivateFieldGet(this, _SkyAutonumericDirective_instances, "m", _SkyAutonumericDirective_mergeOptions).call(this, value), "f");
30
- __classPrivateFieldGet(this, _SkyAutonumericDirective_instances, "m", _SkyAutonumericDirective_updateAutonumericInstance).call(this);
31
- }
32
- constructor(elementRef, globalConfig, renderer, changeDetector) {
33
- _SkyAutonumericDirective_instances.add(this);
34
- /**
35
- * @internal
36
- */
37
- this.skyAutonumericFormChangesUnformatted = false;
38
- _SkyAutonumericDirective_autonumericInstance.set(this, void 0);
39
- _SkyAutonumericDirective_autonumericOptions.set(this, void 0);
40
- _SkyAutonumericDirective_control.set(this, void 0);
41
- _SkyAutonumericDirective_isFirstChange.set(this, true);
42
- _SkyAutonumericDirective_value.set(this, void 0);
43
- _SkyAutonumericDirective_ngUnsubscribe.set(this, new Subject());
44
- _SkyAutonumericDirective_elementRef.set(this, void 0);
45
- _SkyAutonumericDirective_globalConfig.set(this, void 0);
46
- _SkyAutonumericDirective_renderer.set(this, void 0);
47
- _SkyAutonumericDirective_changeDetector.set(this, void 0);
48
- // istanbul ignore next
49
- // eslint-disable-next-line @typescript-eslint/no-empty-function , @typescript-eslint/no-unused-vars
50
- _SkyAutonumericDirective_onChange.set(this, (_) => { });
51
- // istanbul ignore next
52
- // eslint-disable-next-line @typescript-eslint/no-empty-function
53
- _SkyAutonumericDirective_onTouched.set(this, () => { });
54
- __classPrivateFieldSet(this, _SkyAutonumericDirective_elementRef, elementRef, "f");
55
- __classPrivateFieldSet(this, _SkyAutonumericDirective_globalConfig, globalConfig, "f");
56
- __classPrivateFieldSet(this, _SkyAutonumericDirective_renderer, renderer, "f");
57
- __classPrivateFieldSet(this, _SkyAutonumericDirective_changeDetector, changeDetector, "f");
58
- __classPrivateFieldSet(this, _SkyAutonumericDirective_autonumericInstance, new AutoNumeric(elementRef.nativeElement), "f");
59
- }
60
- ngOnInit() {
61
- // Ensure that we set the global config even if no local config has been given.
62
- if (!__classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericOptions, "f")) {
63
- __classPrivateFieldSet(this, _SkyAutonumericDirective_autonumericOptions, __classPrivateFieldGet(this, _SkyAutonumericDirective_globalConfig, "f").getConfig(), "f");
64
- }
65
- __classPrivateFieldGet(this, _SkyAutonumericDirective_instances, "m", _SkyAutonumericDirective_updateAutonumericInstance).call(this);
66
- fromEvent(__classPrivateFieldGet(this, _SkyAutonumericDirective_elementRef, "f").nativeElement, 'input')
67
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyAutonumericDirective_ngUnsubscribe, "f")))
68
- .subscribe(() => {
69
- const numericValue = __classPrivateFieldGet(this, _SkyAutonumericDirective_instances, "m", _SkyAutonumericDirective_getNumericValue).call(this);
70
- /* istanbul ignore else */
71
- if (__classPrivateFieldGet(this, _SkyAutonumericDirective_value, "f") !== numericValue) {
72
- __classPrivateFieldSet(this, _SkyAutonumericDirective_value, numericValue, "f");
73
- __classPrivateFieldGet(this, _SkyAutonumericDirective_onChange, "f").call(this, numericValue);
74
- }
75
- /* istanbul ignore else */
76
- if (__classPrivateFieldGet(this, _SkyAutonumericDirective_control, "f") && !__classPrivateFieldGet(this, _SkyAutonumericDirective_control, "f").dirty) {
77
- __classPrivateFieldGet(this, _SkyAutonumericDirective_control, "f").markAsDirty();
78
- }
79
- __classPrivateFieldGet(this, _SkyAutonumericDirective_changeDetector, "f").markForCheck();
80
- });
81
- }
82
- ngOnDestroy() {
83
- __classPrivateFieldGet(this, _SkyAutonumericDirective_ngUnsubscribe, "f").next();
84
- __classPrivateFieldGet(this, _SkyAutonumericDirective_ngUnsubscribe, "f").complete();
85
- }
86
- /**
87
- * Implemented as part of ControlValueAccessor.
88
- */
89
- setDisabledState(value) {
90
- __classPrivateFieldGet(this, _SkyAutonumericDirective_renderer, "f").setProperty(__classPrivateFieldGet(this, _SkyAutonumericDirective_elementRef, "f").nativeElement, 'disabled', value);
91
- }
92
- writeValue(value) {
93
- if (__classPrivateFieldGet(this, _SkyAutonumericDirective_value, "f") !== value) {
94
- __classPrivateFieldSet(this, _SkyAutonumericDirective_value, value, "f");
95
- __classPrivateFieldGet(this, _SkyAutonumericDirective_onChange, "f").call(this, value);
96
- // Mark the control as "pristine" if it is initialized with a value.
97
- if (__classPrivateFieldGet(this, _SkyAutonumericDirective_isFirstChange, "f") && __classPrivateFieldGet(this, _SkyAutonumericDirective_control, "f") && __classPrivateFieldGet(this, _SkyAutonumericDirective_value, "f") !== null) {
98
- __classPrivateFieldSet(this, _SkyAutonumericDirective_isFirstChange, false, "f");
99
- __classPrivateFieldGet(this, _SkyAutonumericDirective_control, "f").markAsPristine();
100
- }
101
- }
102
- if (typeof value === 'number') {
103
- if (this.skyAutonumericFormChangesUnformatted) {
104
- __classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericInstance, "f").setUnformatted(value);
105
- }
106
- else {
107
- __classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericInstance, "f").set(value);
108
- }
109
- }
110
- else {
111
- __classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericInstance, "f").clear();
112
- }
113
- }
114
- validate(control) {
115
- const noErrors = null;
116
- if (!__classPrivateFieldGet(this, _SkyAutonumericDirective_control, "f")) {
117
- __classPrivateFieldSet(this, _SkyAutonumericDirective_control, control, "f");
118
- }
119
- if (control.value === null || control.value === undefined) {
120
- return noErrors;
121
- }
122
- if (typeof control.value !== 'number') {
123
- return {
124
- notTypeOfNumber: { value: control.value },
125
- };
126
- }
127
- return noErrors;
128
- }
129
- registerOnChange(fn) {
130
- __classPrivateFieldSet(this, _SkyAutonumericDirective_onChange, fn, "f");
131
- }
132
- registerOnTouched(fn) {
133
- __classPrivateFieldSet(this, _SkyAutonumericDirective_onTouched, fn, "f");
134
- }
135
- onBlur() {
136
- __classPrivateFieldGet(this, _SkyAutonumericDirective_onTouched, "f").call(this);
137
- }
138
- }
139
- _SkyAutonumericDirective_autonumericInstance = new WeakMap(), _SkyAutonumericDirective_autonumericOptions = new WeakMap(), _SkyAutonumericDirective_control = new WeakMap(), _SkyAutonumericDirective_isFirstChange = new WeakMap(), _SkyAutonumericDirective_value = new WeakMap(), _SkyAutonumericDirective_ngUnsubscribe = new WeakMap(), _SkyAutonumericDirective_elementRef = new WeakMap(), _SkyAutonumericDirective_globalConfig = new WeakMap(), _SkyAutonumericDirective_renderer = new WeakMap(), _SkyAutonumericDirective_changeDetector = new WeakMap(), _SkyAutonumericDirective_onChange = new WeakMap(), _SkyAutonumericDirective_onTouched = new WeakMap(), _SkyAutonumericDirective_instances = new WeakSet(), _SkyAutonumericDirective_getNumericValue = function _SkyAutonumericDirective_getNumericValue() {
140
- const inputValue = __classPrivateFieldGet(this, _SkyAutonumericDirective_instances, "m", _SkyAutonumericDirective_getInputValue).call(this);
141
- const numericValue = __classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericInstance, "f").getNumber();
142
- return inputValue &&
143
- !__classPrivateFieldGet(this, _SkyAutonumericDirective_instances, "m", _SkyAutonumericDirective_isInputValueTheCurrencySymbol).call(this, inputValue) &&
144
- typeof numericValue === 'number'
145
- ? numericValue
146
- : undefined;
147
- }, _SkyAutonumericDirective_isInputValueTheCurrencySymbol = function _SkyAutonumericDirective_isInputValueTheCurrencySymbol(inputValue) {
148
- /* istanbul ignore next */
149
- const currencySymbol = (__classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericOptions, "f")?.currencySymbol ?? '').trim();
150
- return !!currencySymbol && inputValue === currencySymbol;
151
- }, _SkyAutonumericDirective_getInputValue = function _SkyAutonumericDirective_getInputValue() {
152
- return __classPrivateFieldGet(this, _SkyAutonumericDirective_elementRef, "f").nativeElement.value;
153
- }, _SkyAutonumericDirective_updateAutonumericInstance = function _SkyAutonumericDirective_updateAutonumericInstance() {
154
- __classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericInstance, "f").update(__classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericOptions, "f"));
155
- }, _SkyAutonumericDirective_mergeOptions = function _SkyAutonumericDirective_mergeOptions(value) {
156
- const globalOptions = __classPrivateFieldGet(this, _SkyAutonumericDirective_globalConfig, "f").getConfig();
157
- let newOptions;
158
- if (typeof value === 'string') {
159
- const predefinedOptions = AutoNumeric.getPredefinedOptions();
160
- newOptions = predefinedOptions[value];
161
- }
162
- else {
163
- newOptions = value;
164
- }
165
- return Object.assign({}, globalOptions, newOptions);
166
- };
167
- SkyAutonumericDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAutonumericDirective, deps: [{ token: i0.ElementRef }, { token: i1.SkyAutonumericOptionsProvider }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
168
- SkyAutonumericDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: SkyAutonumericDirective, selector: "input[skyAutonumeric]", inputs: { skyAutonumeric: "skyAutonumeric", skyAutonumericFormChangesUnformatted: "skyAutonumericFormChangesUnformatted" }, host: { listeners: { "blur": "onBlur()" } }, providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR], ngImport: i0 });
169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAutonumericDirective, decorators: [{
170
- type: Directive,
171
- args: [{
172
- selector: 'input[skyAutonumeric]',
173
- providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR],
174
- }]
175
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SkyAutonumericOptionsProvider }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { skyAutonumeric: [{
176
- type: Input
177
- }], skyAutonumericFormChangesUnformatted: [{
178
- type: Input
179
- }], onBlur: [{
180
- type: HostListener,
181
- args: ['blur']
182
- }] } });
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b251bWVyaWMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2F1dG9udW1lcmljL3NyYy9saWIvbW9kdWxlcy9hdXRvbnVtZXJpYy9hdXRvbnVtZXJpYy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBSUwsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxhQUFhLEVBQ2IsaUJBQWlCLEdBR2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxXQUFXLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBSzNDLE1BQU0sOEJBQThCLEdBQUc7SUFDckMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO0lBQ3RELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQUc7SUFDaEMsT0FBTyxFQUFFLGFBQWE7SUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztJQUN0RCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRjs7O0dBR0c7QUFLSCxNQUFNLE9BQU8sdUJBQXVCO0lBR2xDOztPQUVHO0lBQ0gsSUFDVyxjQUFjLENBQUMsS0FBd0M7UUFDaEUsdUJBQUEsSUFBSSwrQ0FBdUIsdUJBQUEsSUFBSSxpRkFBYyxNQUFsQixJQUFJLEVBQWUsS0FBSyxDQUFDLE1BQUEsQ0FBQztRQUNyRCx1QkFBQSxJQUFJLDhGQUEyQixNQUEvQixJQUFJ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QixFQUFFLENBQUM7UUFDN0QsVUFBVSxHQUFHLGlCQUFpQixDQUM1QixLQUFrQyxDQUNaLENBQUM7S0FDMUI7U0FBTTtRQUNMLFVBQVUsR0FBRyxLQUFLLENBQUM7S0FDcEI7SUFFRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUN0RCxDQUFDO29IQWxNVSx1QkFBdUI7d0dBQXZCLHVCQUF1Qix5TkFGdkIsQ0FBQyw4QkFBOEIsRUFBRSx5QkFBeUIsQ0FBQzsyRkFFM0QsdUJBQXVCO2tCQUpuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFNBQVMsRUFBRSxDQUFDLDhCQUE4QixFQUFFLHlCQUF5QixDQUFDO2lCQUN2RTtxTUFRWSxjQUFjO3NCQUR4QixLQUFLO2dCQVVDLG9DQUFvQztzQkFEMUMsS0FBSztnQkE2SEMsTUFBTTtzQkFEWixZQUFZO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgUmVuZGVyZXIyLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IEF1dG9OdW1lcmljIGZyb20gJ2F1dG9udW1lcmljJztcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lBdXRvbnVtZXJpY09wdGlvbnMgfSBmcm9tICcuL2F1dG9udW1lcmljLW9wdGlvbnMnO1xuaW1wb3J0IHsgU2t5QXV0b251bWVyaWNPcHRpb25zUHJvdmlkZXIgfSBmcm9tICcuL2F1dG9udW1lcmljLW9wdGlvbnMtcHJvdmlkZXInO1xuXG5jb25zdCBTS1lfQVVUT05VTUVSSUNfVkFMVUVfQUNDRVNTT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lBdXRvbnVtZXJpY0RpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuY29uc3QgU0tZX0FVVE9OVU1FUklDX1ZBTElEQVRPUiA9IHtcbiAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2t5QXV0b251bWVyaWNEaXJlY3RpdmUpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5cbi8qKlxuICogV3JhcHMgdGhlIFthdXRvTnVtZXJpYyB1dGlsaXR5XShodHRwczovL2dpdGh1Yi5jb20vYXV0b051bWVyaWMvYXV0b051bWVyaWMpIHRvIGZvcm1hdFxuICogYW55IHR5cGUgb2YgbnVtYmVyLCBpbmNsdWRpbmcgY3VycmVuY3kuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2lucHV0W3NreUF1dG9udW1lcmljXScsXG4gIHByb3ZpZGVyczogW1NLWV9BVVRPTlVNRVJJQ19WQUxVRV9BQ0NFU1NPUiwgU0tZX0FVVE9OVU1FUklDX1ZBTElEQVRPUl0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUF1dG9udW1lcmljRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3JcbntcbiAgLyoqXG4gICAqIEFzc2lnbnMgdGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBmcm9tIGBTa3lBdXRvbnVtZXJpY09wdGlvbnNQcm92aWRlcmAuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNreUF1dG9udW1lcmljKHZhbHVlOiBTa3lBdXRvbnVtZXJpY09wdGlvbnMgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNhdXRvbnVtZXJpY09wdGlvbnMgPSB0aGlzLiNtZXJnZU9wdGlvbnModmFsdWUpO1xuICAgIHRoaXMuI3VwZGF0ZUF1dG9udW1lcmljSW5zdGFuY2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBza3lBdXRvbnVtZXJpY0Zvcm1DaGFuZ2VzVW5mb3JtYXR0ZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICAjYXV0b251bWVyaWNJbnN0YW5jZTogQXV0b051bWVyaWM7XG4gICNhdXRvbnVtZXJpY09wdGlvbnM6IFNreUF1dG9udW1lcmljT3B0aW9ucyB8IHVuZGVmaW5lZDtcbiAgI2NvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IHVuZGVmaW5lZDtcbiAgI2lzRmlyc3RDaGFuZ2UgPSB0cnVlO1xuICAjdmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG4gICNnbG9iYWxDb25maWc6IFNreUF1dG9udW1lcmljT3B0aW9uc1Byb3ZpZGVyO1xuICAjcmVuZGVyZXI6IFJlbmRlcmVyMjtcbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIGdsb2JhbENvbmZpZzogU2t5QXV0b251bWVyaWNPcHRpb25zUHJvdmlkZXIsXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy4jZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG4gICAgdGhpcy4jZ2xvYmFsQ29uZmlnID0gZ2xvYmFsQ29uZmlnO1xuICAgIHRoaXMuI3JlbmRlcmVyID0gcmVuZGVyZXI7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IgPSBjaGFuZ2VEZXRlY3RvcjtcblxuICAgIHRoaXMuI2F1dG9udW1lcmljSW5zdGFuY2UgPSBuZXcgQXV0b051bWVyaWMoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBFbnN1cmUgdGhhdCB3ZSBzZXQgdGhlIGdsb2JhbCBjb25maWcgZXZlbiBpZiBubyBsb2NhbCBjb25maWcgaGFzIGJlZW4gZ2l2ZW4uXG4gICAgaWYgKCF0aGlzLiNhdXRvbnVtZXJpY09wdGlvbnMpIHtcbiAgICAgIHRoaXMuI2F1dG9udW1lcmljT3B0aW9ucyA9IHRoaXMuI2dsb2JhbENvbmZpZy5nZXRDb25maWcoKTtcbiAgICB9XG4gICAgdGhpcy4jdXBkYXRlQXV0b251bWVyaWNJbnN0YW5jZSgpO1xuXG4gICAgZnJvbUV2ZW50KHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2lucHV0JylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBjb25zdCBudW1lcmljVmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCA9IHRoaXMuI2dldE51bWVyaWNWYWx1ZSgpO1xuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmICh0aGlzLiN2YWx1ZSAhPT0gbnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgdGhpcy4jdmFsdWUgPSBudW1lcmljVmFsdWU7XG4gICAgICAgICAgdGhpcy4jb25DaGFuZ2UobnVtZXJpY1ZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmICh0aGlzLiNjb250cm9sICYmICF0aGlzLiNjb250cm9sLmRpcnR5KSB7XG4gICAgICAgICAgdGhpcy4jY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy4jcmVuZGVyZXIuc2V0UHJvcGVydHkoXG4gICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAnZGlzYWJsZWQnLFxuICAgICAgdmFsdWVcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiN2YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuI3ZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLiNvbkNoYW5nZSh2YWx1ZSk7XG5cbiAgICAgIC8vIE1hcmsgdGhlIGNvbnRyb2wgYXMgXCJwcmlzdGluZVwiIGlmIGl0IGlzIGluaXRpYWxpemVkIHdpdGggYSB2YWx1ZS5cbiAgICAgIGlmICh0aGlzLiNpc0ZpcnN0Q2hhbmdlICYmIHRoaXMuI2NvbnRyb2wgJiYgdGhpcy4jdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy4jaXNGaXJzdENoYW5nZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLiNjb250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGlmICh0aGlzLnNreUF1dG9udW1lcmljRm9ybUNoYW5nZXNVbmZvcm1hdHRlZCkge1xuICAgICAgICB0aGlzLiNhdXRvbnVtZXJpY0luc3RhbmNlLnNldFVuZm9ybWF0dGVkKHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuI2F1dG9udW1lcmljSW5zdGFuY2Uuc2V0KHZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jYXV0b251bWVyaWNJbnN0YW5jZS5jbGVhcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3Qgbm9FcnJvcnMgPSBudWxsO1xuXG4gICAgaWYgKCF0aGlzLiNjb250cm9sKSB7XG4gICAgICB0aGlzLiNjb250cm9sID0gY29udHJvbDtcbiAgICB9XG5cbiAgICBpZiAoY29udHJvbC52YWx1ZSA9PT0gbnVsbCB8fCBjb250cm9sLnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBub0Vycm9ycztcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNvbnRyb2wudmFsdWUgIT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBub3RUeXBlT2ZOdW1iZXI6IHsgdmFsdWU6IGNvbnRyb2wudmFsdWUgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vRXJyb3JzO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy4jb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuI29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gIHB1YmxpYyBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy4jb25Ub3VjaGVkKCk7XG4gIH1cblxuICAjZ2V0TnVtZXJpY1ZhbHVlKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaW5wdXRWYWx1ZSA9IHRoaXMuI2dldElucHV0VmFsdWUoKTtcbiAgICBjb25zdCBudW1lcmljVmFsdWUgPSB0aGlzLiNhdXRvbnVtZXJpY0luc3RhbmNlLmdldE51bWJlcigpO1xuICAgIHJldHVybiBpbnB1dFZhbHVlICYmXG4gICAgICAhdGhpcy4jaXNJbnB1dFZhbHVlVGhlQ3VycmVuY3lTeW1ib2woaW5wdXRWYWx1ZSkgJiZcbiAgICAgIHR5cGVvZiBudW1lcmljVmFsdWUgPT09ICdudW1iZXInXG4gICAgICA/IG51bWVyaWNWYWx1ZVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogRHVlIHRvIEF1dG9OdW1lcmljJ3MgaG92ZXIgbG9naWMgLSB3aGVuIEF1dG9OdW1lcmljIGhhcyBhIGN1cnJlbmN5IHN5bWJvbCwgdGhlIHZhbHVlXG4gICAqIHRoYXQgd2UgZ2V0IGJhY2sgb24gZW1wdHkgZmllbGRzIHdpbGwgYmUgdGhlIGN1cnJlbmN5IHN5bWJvbC5cbiAgICogVGhlIGZvbGxvd2luZyBsb2dpYyBlbnN1cmVzIHRoYXQgd2UgZG9uJ3QgYWNjaWRlbnRhbGx5IHNldFxuICAgKiBhIGZvcm0gdmFsdWUgd2hlbiB0aGUgb25seSBpbnB1dCB3YXMgdGhlIHByb2dyYW1tYXRpY2FsbHktYWRkZWQgY3VycmVuY3kgc3ltYm9sLlxuICAgKi9cbiAgI2lzSW5wdXRWYWx1ZVRoZUN1cnJlbmN5U3ltYm9sKGlucHV0VmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgY29uc3QgY3VycmVuY3lTeW1ib2wgPSAoXG4gICAgICAodGhpcy4jYXV0b251bWVyaWNPcHRpb25zIGFzIEF1dG9OdW1lcmljLk9wdGlvbnMpPy5jdXJyZW5jeVN5bWJvbCA/PyAnJ1xuICAgICkudHJpbSgpO1xuICAgIHJldHVybiAhIWN1cnJlbmN5U3ltYm9sICYmIGlucHV0VmFsdWUgPT09IGN1cnJlbmN5U3ltYm9sO1xuICB9XG5cbiAgI2dldElucHV0VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICB9XG5cbiAgI3VwZGF0ZUF1dG9udW1lcmljSW5zdGFuY2UoKTogdm9pZCB7XG4gICAgdGhpcy4jYXV0b251bWVyaWNJbnN0YW5jZS51cGRhdGUoXG4gICAgICB0aGlzLiNhdXRvbnVtZXJpY09wdGlvbnMgYXMgQXV0b051bWVyaWMuT3B0aW9uc1xuICAgICk7XG4gIH1cblxuICAjbWVyZ2VPcHRpb25zKFxuICAgIHZhbHVlOiBTa3lBdXRvbnVtZXJpY09wdGlvbnMgfCB1bmRlZmluZWRcbiAgKTogU2t5QXV0b251bWVyaWNPcHRpb25zIHtcbiAgICBjb25zdCBnbG9iYWxPcHRpb25zOiBTa3lBdXRvbnVtZXJpY09wdGlvbnMgPSB0aGlzLiNnbG9iYWxDb25maWcuZ2V0Q29uZmlnKCk7XG5cbiAgICBsZXQgbmV3T3B0aW9uczogU2t5QXV0b251bWVyaWNPcHRpb25zIHwgdW5kZWZpbmVkO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBwcmVkZWZpbmVkT3B0aW9ucyA9IEF1dG9OdW1lcmljLmdldFByZWRlZmluZWRPcHRpb25zKCk7XG4gICAgICBuZXdPcHRpb25zID0gcHJlZGVmaW5lZE9wdGlvbnNbXG4gICAgICAgIHZhbHVlIGFzIGtleW9mIEF1dG9OdW1lcmljLk9wdGlvbnNcbiAgICAgIF0gYXMgQXV0b051bWVyaWMuT3B0aW9ucztcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3T3B0aW9ucyA9IHZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBnbG9iYWxPcHRpb25zLCBuZXdPcHRpb25zKTtcbiAgfVxuXG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24gLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgI29uQ2hhbmdlID0gKF86IG51bWJlciB8IHVuZGVmaW5lZCkgPT4ge307XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgI29uVG91Y2hlZCA9ICgpID0+IHt9O1xufVxuIl19
@@ -1,227 +0,0 @@
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';
5
- import { __classPrivateFieldSet, __classPrivateFieldGet } from 'tslib';
6
- import AutoNumeric from 'autonumeric';
7
- import { Subject, fromEvent } from 'rxjs';
8
- import { takeUntil } from 'rxjs/operators';
9
-
10
- /**
11
- * Provides options to the underlying [AutoNumeric library](https://github.com/autoNumeric/autoNumeric).
12
- * This can set global options on multiple input fields.
13
- */
14
- class SkyAutonumericOptionsProvider {
15
- /**
16
- * The value for a settings object to pass to the AutoNumeric library.
17
- * This overrides any default options specified by the `skyAutonumeric` attribute.
18
- */
19
- getConfig() {
20
- return {};
21
- }
22
- }
23
- SkyAutonumericOptionsProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAutonumericOptionsProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
24
- SkyAutonumericOptionsProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAutonumericOptionsProvider, providedIn: 'root' });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAutonumericOptionsProvider, decorators: [{
26
- type: Injectable,
27
- args: [{
28
- providedIn: 'root',
29
- }]
30
- }] });
31
-
32
- var _SkyAutonumericDirective_instances, _SkyAutonumericDirective_autonumericInstance, _SkyAutonumericDirective_autonumericOptions, _SkyAutonumericDirective_control, _SkyAutonumericDirective_isFirstChange, _SkyAutonumericDirective_value, _SkyAutonumericDirective_ngUnsubscribe, _SkyAutonumericDirective_elementRef, _SkyAutonumericDirective_globalConfig, _SkyAutonumericDirective_renderer, _SkyAutonumericDirective_changeDetector, _SkyAutonumericDirective_getNumericValue, _SkyAutonumericDirective_isInputValueTheCurrencySymbol, _SkyAutonumericDirective_getInputValue, _SkyAutonumericDirective_updateAutonumericInstance, _SkyAutonumericDirective_mergeOptions, _SkyAutonumericDirective_onChange, _SkyAutonumericDirective_onTouched;
33
- const SKY_AUTONUMERIC_VALUE_ACCESSOR = {
34
- provide: NG_VALUE_ACCESSOR,
35
- useExisting: forwardRef(() => SkyAutonumericDirective),
36
- multi: true,
37
- };
38
- const SKY_AUTONUMERIC_VALIDATOR = {
39
- provide: NG_VALIDATORS,
40
- useExisting: forwardRef(() => SkyAutonumericDirective),
41
- multi: true,
42
- };
43
- /**
44
- * Wraps the [autoNumeric utility](https://github.com/autoNumeric/autoNumeric) to format
45
- * any type of number, including currency.
46
- */
47
- class SkyAutonumericDirective {
48
- /**
49
- * Assigns the name of a property from `SkyAutonumericOptionsProvider`.
50
- */
51
- set skyAutonumeric(value) {
52
- __classPrivateFieldSet(this, _SkyAutonumericDirective_autonumericOptions, __classPrivateFieldGet(this, _SkyAutonumericDirective_instances, "m", _SkyAutonumericDirective_mergeOptions).call(this, value), "f");
53
- __classPrivateFieldGet(this, _SkyAutonumericDirective_instances, "m", _SkyAutonumericDirective_updateAutonumericInstance).call(this);
54
- }
55
- constructor(elementRef, globalConfig, renderer, changeDetector) {
56
- _SkyAutonumericDirective_instances.add(this);
57
- /**
58
- * @internal
59
- */
60
- this.skyAutonumericFormChangesUnformatted = false;
61
- _SkyAutonumericDirective_autonumericInstance.set(this, void 0);
62
- _SkyAutonumericDirective_autonumericOptions.set(this, void 0);
63
- _SkyAutonumericDirective_control.set(this, void 0);
64
- _SkyAutonumericDirective_isFirstChange.set(this, true);
65
- _SkyAutonumericDirective_value.set(this, void 0);
66
- _SkyAutonumericDirective_ngUnsubscribe.set(this, new Subject());
67
- _SkyAutonumericDirective_elementRef.set(this, void 0);
68
- _SkyAutonumericDirective_globalConfig.set(this, void 0);
69
- _SkyAutonumericDirective_renderer.set(this, void 0);
70
- _SkyAutonumericDirective_changeDetector.set(this, void 0);
71
- // istanbul ignore next
72
- // eslint-disable-next-line @typescript-eslint/no-empty-function , @typescript-eslint/no-unused-vars
73
- _SkyAutonumericDirective_onChange.set(this, (_) => { });
74
- // istanbul ignore next
75
- // eslint-disable-next-line @typescript-eslint/no-empty-function
76
- _SkyAutonumericDirective_onTouched.set(this, () => { });
77
- __classPrivateFieldSet(this, _SkyAutonumericDirective_elementRef, elementRef, "f");
78
- __classPrivateFieldSet(this, _SkyAutonumericDirective_globalConfig, globalConfig, "f");
79
- __classPrivateFieldSet(this, _SkyAutonumericDirective_renderer, renderer, "f");
80
- __classPrivateFieldSet(this, _SkyAutonumericDirective_changeDetector, changeDetector, "f");
81
- __classPrivateFieldSet(this, _SkyAutonumericDirective_autonumericInstance, new AutoNumeric(elementRef.nativeElement), "f");
82
- }
83
- ngOnInit() {
84
- // Ensure that we set the global config even if no local config has been given.
85
- if (!__classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericOptions, "f")) {
86
- __classPrivateFieldSet(this, _SkyAutonumericDirective_autonumericOptions, __classPrivateFieldGet(this, _SkyAutonumericDirective_globalConfig, "f").getConfig(), "f");
87
- }
88
- __classPrivateFieldGet(this, _SkyAutonumericDirective_instances, "m", _SkyAutonumericDirective_updateAutonumericInstance).call(this);
89
- fromEvent(__classPrivateFieldGet(this, _SkyAutonumericDirective_elementRef, "f").nativeElement, 'input')
90
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyAutonumericDirective_ngUnsubscribe, "f")))
91
- .subscribe(() => {
92
- const numericValue = __classPrivateFieldGet(this, _SkyAutonumericDirective_instances, "m", _SkyAutonumericDirective_getNumericValue).call(this);
93
- /* istanbul ignore else */
94
- if (__classPrivateFieldGet(this, _SkyAutonumericDirective_value, "f") !== numericValue) {
95
- __classPrivateFieldSet(this, _SkyAutonumericDirective_value, numericValue, "f");
96
- __classPrivateFieldGet(this, _SkyAutonumericDirective_onChange, "f").call(this, numericValue);
97
- }
98
- /* istanbul ignore else */
99
- if (__classPrivateFieldGet(this, _SkyAutonumericDirective_control, "f") && !__classPrivateFieldGet(this, _SkyAutonumericDirective_control, "f").dirty) {
100
- __classPrivateFieldGet(this, _SkyAutonumericDirective_control, "f").markAsDirty();
101
- }
102
- __classPrivateFieldGet(this, _SkyAutonumericDirective_changeDetector, "f").markForCheck();
103
- });
104
- }
105
- ngOnDestroy() {
106
- __classPrivateFieldGet(this, _SkyAutonumericDirective_ngUnsubscribe, "f").next();
107
- __classPrivateFieldGet(this, _SkyAutonumericDirective_ngUnsubscribe, "f").complete();
108
- }
109
- /**
110
- * Implemented as part of ControlValueAccessor.
111
- */
112
- setDisabledState(value) {
113
- __classPrivateFieldGet(this, _SkyAutonumericDirective_renderer, "f").setProperty(__classPrivateFieldGet(this, _SkyAutonumericDirective_elementRef, "f").nativeElement, 'disabled', value);
114
- }
115
- writeValue(value) {
116
- if (__classPrivateFieldGet(this, _SkyAutonumericDirective_value, "f") !== value) {
117
- __classPrivateFieldSet(this, _SkyAutonumericDirective_value, value, "f");
118
- __classPrivateFieldGet(this, _SkyAutonumericDirective_onChange, "f").call(this, value);
119
- // Mark the control as "pristine" if it is initialized with a value.
120
- if (__classPrivateFieldGet(this, _SkyAutonumericDirective_isFirstChange, "f") && __classPrivateFieldGet(this, _SkyAutonumericDirective_control, "f") && __classPrivateFieldGet(this, _SkyAutonumericDirective_value, "f") !== null) {
121
- __classPrivateFieldSet(this, _SkyAutonumericDirective_isFirstChange, false, "f");
122
- __classPrivateFieldGet(this, _SkyAutonumericDirective_control, "f").markAsPristine();
123
- }
124
- }
125
- if (typeof value === 'number') {
126
- if (this.skyAutonumericFormChangesUnformatted) {
127
- __classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericInstance, "f").setUnformatted(value);
128
- }
129
- else {
130
- __classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericInstance, "f").set(value);
131
- }
132
- }
133
- else {
134
- __classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericInstance, "f").clear();
135
- }
136
- }
137
- validate(control) {
138
- const noErrors = null;
139
- if (!__classPrivateFieldGet(this, _SkyAutonumericDirective_control, "f")) {
140
- __classPrivateFieldSet(this, _SkyAutonumericDirective_control, control, "f");
141
- }
142
- if (control.value === null || control.value === undefined) {
143
- return noErrors;
144
- }
145
- if (typeof control.value !== 'number') {
146
- return {
147
- notTypeOfNumber: { value: control.value },
148
- };
149
- }
150
- return noErrors;
151
- }
152
- registerOnChange(fn) {
153
- __classPrivateFieldSet(this, _SkyAutonumericDirective_onChange, fn, "f");
154
- }
155
- registerOnTouched(fn) {
156
- __classPrivateFieldSet(this, _SkyAutonumericDirective_onTouched, fn, "f");
157
- }
158
- onBlur() {
159
- __classPrivateFieldGet(this, _SkyAutonumericDirective_onTouched, "f").call(this);
160
- }
161
- }
162
- _SkyAutonumericDirective_autonumericInstance = new WeakMap(), _SkyAutonumericDirective_autonumericOptions = new WeakMap(), _SkyAutonumericDirective_control = new WeakMap(), _SkyAutonumericDirective_isFirstChange = new WeakMap(), _SkyAutonumericDirective_value = new WeakMap(), _SkyAutonumericDirective_ngUnsubscribe = new WeakMap(), _SkyAutonumericDirective_elementRef = new WeakMap(), _SkyAutonumericDirective_globalConfig = new WeakMap(), _SkyAutonumericDirective_renderer = new WeakMap(), _SkyAutonumericDirective_changeDetector = new WeakMap(), _SkyAutonumericDirective_onChange = new WeakMap(), _SkyAutonumericDirective_onTouched = new WeakMap(), _SkyAutonumericDirective_instances = new WeakSet(), _SkyAutonumericDirective_getNumericValue = function _SkyAutonumericDirective_getNumericValue() {
163
- const inputValue = __classPrivateFieldGet(this, _SkyAutonumericDirective_instances, "m", _SkyAutonumericDirective_getInputValue).call(this);
164
- const numericValue = __classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericInstance, "f").getNumber();
165
- return inputValue &&
166
- !__classPrivateFieldGet(this, _SkyAutonumericDirective_instances, "m", _SkyAutonumericDirective_isInputValueTheCurrencySymbol).call(this, inputValue) &&
167
- typeof numericValue === 'number'
168
- ? numericValue
169
- : undefined;
170
- }, _SkyAutonumericDirective_isInputValueTheCurrencySymbol = function _SkyAutonumericDirective_isInputValueTheCurrencySymbol(inputValue) {
171
- var _a, _b;
172
- /* istanbul ignore next */
173
- const currencySymbol = ((_b = (_a = __classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericOptions, "f")) === null || _a === void 0 ? void 0 : _a.currencySymbol) !== null && _b !== void 0 ? _b : '').trim();
174
- return !!currencySymbol && inputValue === currencySymbol;
175
- }, _SkyAutonumericDirective_getInputValue = function _SkyAutonumericDirective_getInputValue() {
176
- return __classPrivateFieldGet(this, _SkyAutonumericDirective_elementRef, "f").nativeElement.value;
177
- }, _SkyAutonumericDirective_updateAutonumericInstance = function _SkyAutonumericDirective_updateAutonumericInstance() {
178
- __classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericInstance, "f").update(__classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericOptions, "f"));
179
- }, _SkyAutonumericDirective_mergeOptions = function _SkyAutonumericDirective_mergeOptions(value) {
180
- const globalOptions = __classPrivateFieldGet(this, _SkyAutonumericDirective_globalConfig, "f").getConfig();
181
- let newOptions;
182
- if (typeof value === 'string') {
183
- const predefinedOptions = AutoNumeric.getPredefinedOptions();
184
- newOptions = predefinedOptions[value];
185
- }
186
- else {
187
- newOptions = value;
188
- }
189
- return Object.assign({}, globalOptions, newOptions);
190
- };
191
- SkyAutonumericDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAutonumericDirective, deps: [{ token: i0.ElementRef }, { token: SkyAutonumericOptionsProvider }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
192
- SkyAutonumericDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: SkyAutonumericDirective, selector: "input[skyAutonumeric]", inputs: { skyAutonumeric: "skyAutonumeric", skyAutonumericFormChangesUnformatted: "skyAutonumericFormChangesUnformatted" }, host: { listeners: { "blur": "onBlur()" } }, providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR], ngImport: i0 });
193
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAutonumericDirective, decorators: [{
194
- type: Directive,
195
- args: [{
196
- selector: 'input[skyAutonumeric]',
197
- providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR],
198
- }]
199
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: SkyAutonumericOptionsProvider }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { skyAutonumeric: [{
200
- type: Input
201
- }], skyAutonumericFormChangesUnformatted: [{
202
- type: Input
203
- }], onBlur: [{
204
- type: HostListener,
205
- args: ['blur']
206
- }] } });
207
-
208
- class SkyAutonumericModule {
209
- }
210
- SkyAutonumericModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAutonumericModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
211
- SkyAutonumericModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyAutonumericModule, declarations: [SkyAutonumericDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule], exports: [SkyAutonumericDirective] });
212
- SkyAutonumericModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAutonumericModule, imports: [CommonModule, FormsModule, ReactiveFormsModule] });
213
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAutonumericModule, decorators: [{
214
- type: NgModule,
215
- args: [{
216
- declarations: [SkyAutonumericDirective],
217
- imports: [CommonModule, FormsModule, ReactiveFormsModule],
218
- exports: [SkyAutonumericDirective],
219
- }]
220
- }] });
221
-
222
- /**
223
- * Generated bundle index. Do not edit.
224
- */
225
-
226
- export { SkyAutonumericModule, SkyAutonumericOptionsProvider, SkyAutonumericDirective as λ1 };
227
- //# sourceMappingURL=skyux-autonumeric.mjs.map