@skyux/autonumeric 5.7.0 → 6.0.0-beta.1
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/esm2020/index.mjs +7 -0
- package/esm2020/lib/modules/autonumeric/autonumeric-options-provider.mjs +24 -0
- package/esm2020/lib/modules/autonumeric/autonumeric-options.mjs +2 -0
- package/esm2020/lib/modules/autonumeric/autonumeric.directive.mjs +170 -0
- package/esm2020/lib/modules/autonumeric/autonumeric.module.mjs +19 -0
- package/esm2020/skyux-autonumeric.mjs +5 -0
- package/fesm2015/{skyux-autonumeric.js → skyux-autonumeric.mjs} +11 -11
- package/fesm2015/skyux-autonumeric.mjs.map +1 -0
- package/{esm2015/lib/modules/autonumeric/autonumeric.directive.js → fesm2020/skyux-autonumeric.mjs} +54 -13
- package/fesm2020/skyux-autonumeric.mjs.map +1 -0
- package/package.json +22 -9
- package/bundles/skyux-autonumeric.umd.js +0 -252
- package/esm2015/index.js +0 -7
- package/esm2015/index.js.map +0 -1
- package/esm2015/lib/modules/autonumeric/autonumeric-options-provider.js +0 -24
- package/esm2015/lib/modules/autonumeric/autonumeric-options-provider.js.map +0 -1
- package/esm2015/lib/modules/autonumeric/autonumeric-options.js +0 -2
- package/esm2015/lib/modules/autonumeric/autonumeric-options.js.map +0 -1
- package/esm2015/lib/modules/autonumeric/autonumeric.directive.js.map +0 -1
- package/esm2015/lib/modules/autonumeric/autonumeric.module.js +0 -19
- package/esm2015/lib/modules/autonumeric/autonumeric.module.js.map +0 -1
- package/esm2015/skyux-autonumeric.js +0 -5
- package/esm2015/skyux-autonumeric.js.map +0 -1
- package/fesm2015/skyux-autonumeric.js.map +0 -1
|
@@ -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: "
|
|
23
|
-
SkyAutonumericOptionsProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
180
|
-
SkyAutonumericDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
|
|
181
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
197
|
-
SkyAutonumericModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
198
|
-
SkyAutonumericModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
199
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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.
|
|
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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"}
|
package/{esm2015/lib/modules/autonumeric/autonumeric.directive.js → fesm2020/skyux-autonumeric.mjs}
RENAMED
|
@@ -1,11 +1,33 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
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 = (
|
|
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: "
|
|
158
|
-
SkyAutonumericDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
|
|
159
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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:
|
|
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
|
-
|
|
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":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skyux/autonumeric",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0-beta.1",
|
|
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": "^
|
|
20
|
-
"@angular/core": "^
|
|
21
|
-
"@angular/forms": "^
|
|
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
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"fesm2015": "fesm2015/skyux-autonumeric.
|
|
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
|
package/esm2015/index.js.map
DELETED
|
@@ -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 +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 +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":";;;;;;;;AAIA;;;;MAOa,6BAA6B;;;;;IAKjC,SAAS;QACd,OAAO,EAAE,CAAC;KACX;;2HAPU,6BAA6B;+HAA7B,6BAA6B,cAF5B,MAAM;4FAEP,6BAA6B;kBAHzC,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;ACiBD;AACA,MAAM,8BAA8B,GAAG;IACrC,OAAO,EAAE,iBAAiB;IAC1B,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAuB,CAAC;IACtD,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF,MAAM,yBAAyB,GAAG;IAChC,OAAO,EAAE,aAAa;IACtB,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAuB,CAAC;IACtD,KAAK,EAAE,IAAI;CACZ,CAAC;AACF;AAEA;;;;MAQa,uBAAuB;IAoBlC,YACU,UAAsB,EACtB,YAA2C,EAC3C,QAAmB,EACnB,cAAiC;QAHjC,eAAU,GAAV,UAAU,CAAY;QACtB,iBAAY,GAAZ,YAAY,CAA+B;QAC3C,aAAQ,GAAR,QAAQ,CAAW;QACnB,mBAAc,GAAd,cAAc,CAAmB;QATnC,kBAAa,GAAG,IAAI,CAAC;QAGrB,kBAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;;QAwJpC,aAAQ,GAAG,CAAC,CAAqB,QAAO,CAAC;;QAEzC,cAAS,GAAG,SAAQ,CAAC;QAlJ3B,IAAI,CAAC,mBAAmB,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;KAC3E;;;;IArBD,IACW,cAAc,CAAC,KAA4B;QACpD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;IAmBM,QAAQ;;QAEb,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;SACzD;QACD,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAEjC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC;aAC9C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACnC,SAAS,CAAC;YACT,MAAM,YAAY,GAAuB,IAAI,CAAC,eAAe,EAAE,CAAC;;YAGhE,IAAI,IAAI,CAAC,KAAK,KAAK,YAAY,EAAE;gBAC/B,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;gBAC1B,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;aAC7B;;YAGD,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACvC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;aAC5B;YAED,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;SACpC,CAAC,CAAC;KACN;IAEM,WAAW;QAChB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KAC/B;;;;IAKM,gBAAgB,CAAC,KAAc;QACpC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;KAC7E;IAEM,UAAU,CAAC,KAAyB;QACzC,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;YACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;;YAGrB,MAAM,oBAAoB,GACxB,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;YAC5D,IAAI,oBAAoB,EAAE;gBACxB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,OAAQ,CAAC,cAAc,EAAE,CAAC;aAChC;SACF;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACrC;aAAM;YACL,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;SAClC;KACF;IAEM,QAAQ,CAAC,OAAwB;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;QAED,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;YACzD,OAAO,QAAQ,CAAC;SACjB;QAED,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE;YACrC,OAAO;gBACL,eAAe,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;aAC1C,CAAC;SACH;QAED,OAAO,QAAQ,CAAC;KACjB;IAEM,gBAAgB,CAAC,EAAuC;QAC7D,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;IAEM,iBAAiB,CAAC,EAAc;QACrC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;IAGM,MAAM;QACX,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAEO,eAAe;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,OAAO,UAAU,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC;cAChE,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE;cACpC,SAAS,CAAC;KACf;;;;;;;IAQO,6BAA6B,CAAC,UAAkB;;;QAEtD,MAAM,cAAc,GAAG,CACrB,MAAA,MAAC,IAAI,CAAC,kBAA0C,0CAAE,cAAc,mCAAI,EAAE,EACtE,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,CAAC,cAAc,IAAI,UAAU,KAAK,cAAc,CAAC;KAC1D;IAEO,aAAa;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;KAC5C;IAEO,yBAAyB;QAC/B,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAC7B,IAAI,CAAC,kBAAyC,CAC/C,CAAC;KACH;IAEO,YAAY,CAAC,KAA4B;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;QAEpD,IAAI,UAAiC,CAAC;QACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,MAAM,iBAAiB,GAAG,WAAW,CAAC,oBAAoB,EAAE,CAAC;YAC7D,UAAU,GAAG,iBAAiB,CAC5B,KAAkC,CACZ,CAAC;SAC1B;aAAM;YACL,UAAU,GAAG,KAAK,CAAC;SACpB;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;KACrD;;qHAvKU,uBAAuB;yGAAvB,uBAAuB,2IAFvB,CAAC,8BAA8B,EAAE,yBAAyB,CAAC;4FAE3D,uBAAuB;kBAJnC,SAAS;mBAAC;oBACT,QAAQ,EAAE,uBAAuB;oBACjC,SAAS,EAAE,CAAC,8BAA8B,EAAE,yBAAyB,CAAC;iBACvE;kMAQY,cAAc;sBADxB,KAAK;gBAgHC,MAAM;sBADZ,YAAY;uBAAC,MAAM;;;MC3JT,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;;;ACVD;;;;;;"}
|