@skyux/autonumeric 7.0.0-beta.1 → 7.0.0-beta.3
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/documentation.json +56 -56
- package/esm2020/lib/modules/autonumeric/autonumeric.directive.mjs +81 -78
- package/fesm2015/skyux-autonumeric.mjs +82 -79
- package/fesm2015/skyux-autonumeric.mjs.map +1 -1
- package/fesm2020/skyux-autonumeric.mjs +81 -78
- package/fesm2020/skyux-autonumeric.mjs.map +1 -1
- package/lib/modules/autonumeric/autonumeric.directive.d.ts +3 -25
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-autonumeric.mjs","sources":["../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric-options-provider.ts","../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric.directive.ts","../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric.module.ts","../../../../../libs/components/autonumeric/src/skyux-autonumeric.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { SkyAutonumericOptions } from './autonumeric-options';\n\n/**\n * Provides options to the underlying [autoNumeric utility](https://github.com/autoNumeric/autoNumeric).\n * This can set global options on multiple input fields.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyAutonumericOptionsProvider {\n /**\n * Specifies the value for a settings object to pass to the autoNumeric utility.\n * This overrides any default options specified by the `skyAutonumeric` attribute.\n */\n public getConfig(): SkyAutonumericOptions {\n return {};\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n forwardRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport AutoNumeric from 'autonumeric';\nimport { Subject, fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyAutonumericOptions } from './autonumeric-options';\nimport { SkyAutonumericOptionsProvider } from './autonumeric-options-provider';\n\nconst SKY_AUTONUMERIC_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyAutonumericDirective),\n multi: true,\n};\n\nconst SKY_AUTONUMERIC_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyAutonumericDirective),\n multi: true,\n};\n\n/**\n * Wraps the [autoNumeric utility](https://github.com/autoNumeric/autoNumeric) to format\n * any type of number, including currency.\n */\n@Directive({\n selector: 'input[skyAutonumeric]',\n providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR],\n})\nexport class SkyAutonumericDirective\n implements OnInit, OnDestroy, ControlValueAccessor, Validator\n{\n /**\n * Assigns the name of a property from `SkyAutonumericOptionsProvider`.\n */\n @Input()\n public set skyAutonumeric(value: SkyAutonumericOptions) {\n this.autonumericOptions = this.mergeOptions(value);\n this.updateAutonumericInstance();\n }\n\n /**\n * @internal\n */\n @Input()\n public skyAutonumericFormChangesUnformatted = false;\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 if (this.skyAutonumericFormChangesUnformatted) {\n this.autonumericInstance.setUnformatted(value);\n } else {\n this.autonumericInstance.set(value);\n }\n } else {\n this.autonumericInstance.clear();\n }\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const noErrors = null;\n\n if (!this.control) {\n this.control = control;\n }\n\n if (control.value === null || control.value === undefined) {\n return noErrors;\n }\n\n if (typeof control.value !== 'number') {\n return {\n notTypeOfNumber: { value: control.value },\n };\n }\n\n return noErrors;\n }\n\n public registerOnChange(fn: (value: number | undefined) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n @HostListener('blur')\n public onBlur(): void {\n this.onTouched();\n }\n\n private getNumericValue(): number | undefined {\n const inputValue = this.getInputValue();\n return inputValue && !this.isInputValueTheCurrencySymbol(inputValue)\n ? this.autonumericInstance.getNumber()\n : undefined;\n }\n\n /**\n * Due to AutoNumeric's hover logic - when AutoNumeric has a currency symbol the value\n * that we get back on empty fields will be the currency symbol.\n * The following logic ensures that we don't accidentally set\n * a form value when the only input was the programatically-added currency symbol.\n */\n private isInputValueTheCurrencySymbol(inputValue: string): boolean {\n /* istanbul ignore next */\n const currencySymbol = (\n (this.autonumericOptions as AutoNumeric.Options)?.currencySymbol ?? ''\n ).trim();\n return !!currencySymbol && inputValue === currencySymbol;\n }\n\n private getInputValue(): string {\n return this.elementRef.nativeElement.value;\n }\n\n private updateAutonumericInstance(): void {\n this.autonumericInstance.update(\n this.autonumericOptions as AutoNumeric.Options\n );\n }\n\n private mergeOptions(value: SkyAutonumericOptions): SkyAutonumericOptions {\n const globalOptions = this.globalConfig.getConfig();\n\n let newOptions: SkyAutonumericOptions;\n if (typeof value === 'string') {\n const predefinedOptions = AutoNumeric.getPredefinedOptions();\n newOptions = predefinedOptions[\n value as keyof AutoNumeric.Options\n ] as AutoNumeric.Options;\n } else {\n newOptions = value;\n }\n\n return Object.assign({}, globalOptions, newOptions);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n // istanbul ignore next\n private onChange = (_: number | undefined) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n // istanbul ignore next\n private onTouched = () => {};\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { SkyAutonumericDirective } from './autonumeric.directive';\n\n@NgModule({\n declarations: [SkyAutonumericDirective],\n imports: [CommonModule, FormsModule, ReactiveFormsModule],\n exports: [SkyAutonumericDirective],\n})\nexport class SkyAutonumericModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SkyAutonumericOptionsProvider"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skyux-autonumeric.mjs","sources":["../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric-options-provider.ts","../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric.directive.ts","../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric.module.ts","../../../../../libs/components/autonumeric/src/skyux-autonumeric.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { SkyAutonumericOptions } from './autonumeric-options';\n\n/**\n * Provides options to the underlying [autoNumeric utility](https://github.com/autoNumeric/autoNumeric).\n * This can set global options on multiple input fields.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyAutonumericOptionsProvider {\n /**\n * Specifies the value for a settings object to pass to the autoNumeric utility.\n * This overrides any default options specified by the `skyAutonumeric` attribute.\n */\n public getConfig(): SkyAutonumericOptions {\n return {};\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n forwardRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport AutoNumeric from 'autonumeric';\nimport { Subject, fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyAutonumericOptions } from './autonumeric-options';\nimport { SkyAutonumericOptionsProvider } from './autonumeric-options-provider';\n\nconst SKY_AUTONUMERIC_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyAutonumericDirective),\n multi: true,\n};\n\nconst SKY_AUTONUMERIC_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyAutonumericDirective),\n multi: true,\n};\n\n/**\n * Wraps the [autoNumeric utility](https://github.com/autoNumeric/autoNumeric) to format\n * any type of number, including currency.\n */\n@Directive({\n selector: 'input[skyAutonumeric]',\n providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR],\n})\nexport class SkyAutonumericDirective\n implements OnInit, OnDestroy, ControlValueAccessor, Validator\n{\n /**\n * Assigns the name of a property from `SkyAutonumericOptionsProvider`.\n */\n @Input()\n public set skyAutonumeric(value: SkyAutonumericOptions | undefined) {\n this.#autonumericOptions = this.#mergeOptions(value);\n this.#updateAutonumericInstance();\n }\n\n /**\n * @internal\n */\n @Input()\n public skyAutonumericFormChangesUnformatted: boolean | undefined = false;\n\n #autonumericInstance: AutoNumeric;\n #autonumericOptions: SkyAutonumericOptions | undefined;\n #control: AbstractControl | undefined;\n #isFirstChange = true;\n #value: number | undefined;\n\n #ngUnsubscribe = new Subject<void>();\n\n #elementRef: ElementRef;\n #globalConfig: SkyAutonumericOptionsProvider;\n #renderer: Renderer2;\n #changeDetector: ChangeDetectorRef;\n\n constructor(\n elementRef: ElementRef,\n globalConfig: SkyAutonumericOptionsProvider,\n renderer: Renderer2,\n changeDetector: ChangeDetectorRef\n ) {\n this.#elementRef = elementRef;\n this.#globalConfig = globalConfig;\n this.#renderer = renderer;\n this.#changeDetector = changeDetector;\n\n this.#autonumericInstance = new AutoNumeric(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(\n this.#elementRef.nativeElement,\n 'disabled',\n value\n );\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 if (this.#isFirstChange && this.#control && this.#value !== null) {\n this.#isFirstChange = false;\n this.#control.markAsPristine();\n }\n }\n\n if (typeof value === 'number') {\n if (this.skyAutonumericFormChangesUnformatted) {\n this.#autonumericInstance.setUnformatted(value);\n } else {\n this.#autonumericInstance.set(value);\n }\n } else {\n this.#autonumericInstance.clear();\n }\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const noErrors = null;\n\n if (!this.#control) {\n this.#control = control;\n }\n\n if (control.value === null || control.value === undefined) {\n return noErrors;\n }\n\n if (typeof control.value !== 'number') {\n return {\n notTypeOfNumber: { value: control.value },\n };\n }\n\n return noErrors;\n }\n\n public registerOnChange(fn: (value: number | undefined) => void): void {\n this.#onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.#onTouched = fn;\n }\n\n @HostListener('blur')\n public onBlur(): void {\n this.#onTouched();\n }\n\n #getNumericValue(): number | undefined {\n const inputValue = this.#getInputValue();\n const numericValue = this.#autonumericInstance.getNumber();\n return inputValue &&\n !this.#isInputValueTheCurrencySymbol(inputValue) &&\n typeof numericValue === 'number'\n ? numericValue\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 #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 #getInputValue(): string {\n return this.#elementRef.nativeElement.value;\n }\n\n #updateAutonumericInstance(): void {\n this.#autonumericInstance.update(\n this.#autonumericOptions as AutoNumeric.Options\n );\n }\n\n #mergeOptions(\n value: SkyAutonumericOptions | undefined\n ): SkyAutonumericOptions {\n const globalOptions: SkyAutonumericOptions = this.#globalConfig.getConfig();\n\n let newOptions: SkyAutonumericOptions | undefined;\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 // istanbul ignore next\n // eslint-disable-next-line @typescript-eslint/no-empty-function , @typescript-eslint/no-unused-vars\n #onChange = (_: number | undefined) => {};\n // istanbul ignore next\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #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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"}
|
|
@@ -2,6 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Injectable, forwardRef, Directive, Input, HostListener, NgModule } from '@angular/core';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import { __classPrivateFieldSet, __classPrivateFieldGet } from 'tslib';
|
|
5
6
|
import AutoNumeric from 'autonumeric';
|
|
6
7
|
import { Subject, fromEvent } from 'rxjs';
|
|
7
8
|
import { takeUntil } from 'rxjs/operators';
|
|
@@ -28,6 +29,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
28
29
|
}]
|
|
29
30
|
}] });
|
|
30
31
|
|
|
32
|
+
var _SkyAutonumericDirective_instances, _SkyAutonumericDirective_autonumericInstance, _SkyAutonumericDirective_autonumericOptions, _SkyAutonumericDirective_control, _SkyAutonumericDirective_isFirstChange, _SkyAutonumericDirective_value, _SkyAutonumericDirective_ngUnsubscribe, _SkyAutonumericDirective_elementRef, _SkyAutonumericDirective_globalConfig, _SkyAutonumericDirective_renderer, _SkyAutonumericDirective_changeDetector, _SkyAutonumericDirective_getNumericValue, _SkyAutonumericDirective_isInputValueTheCurrencySymbol, _SkyAutonumericDirective_getInputValue, _SkyAutonumericDirective_updateAutonumericInstance, _SkyAutonumericDirective_mergeOptions, _SkyAutonumericDirective_onChange, _SkyAutonumericDirective_onTouched;
|
|
31
33
|
const SKY_AUTONUMERIC_VALUE_ACCESSOR = {
|
|
32
34
|
provide: NG_VALUE_ACCESSOR,
|
|
33
35
|
useExisting: forwardRef(() => SkyAutonumericDirective),
|
|
@@ -44,90 +46,98 @@ const SKY_AUTONUMERIC_VALIDATOR = {
|
|
|
44
46
|
*/
|
|
45
47
|
class SkyAutonumericDirective {
|
|
46
48
|
constructor(elementRef, globalConfig, renderer, changeDetector) {
|
|
47
|
-
this
|
|
48
|
-
this.globalConfig = globalConfig;
|
|
49
|
-
this.renderer = renderer;
|
|
50
|
-
this.changeDetector = changeDetector;
|
|
49
|
+
_SkyAutonumericDirective_instances.add(this);
|
|
51
50
|
/**
|
|
52
51
|
* @internal
|
|
53
52
|
*/
|
|
54
53
|
this.skyAutonumericFormChangesUnformatted = false;
|
|
55
|
-
this
|
|
56
|
-
this
|
|
57
|
-
|
|
54
|
+
_SkyAutonumericDirective_autonumericInstance.set(this, void 0);
|
|
55
|
+
_SkyAutonumericDirective_autonumericOptions.set(this, void 0);
|
|
56
|
+
_SkyAutonumericDirective_control.set(this, void 0);
|
|
57
|
+
_SkyAutonumericDirective_isFirstChange.set(this, true);
|
|
58
|
+
_SkyAutonumericDirective_value.set(this, void 0);
|
|
59
|
+
_SkyAutonumericDirective_ngUnsubscribe.set(this, new Subject());
|
|
60
|
+
_SkyAutonumericDirective_elementRef.set(this, void 0);
|
|
61
|
+
_SkyAutonumericDirective_globalConfig.set(this, void 0);
|
|
62
|
+
_SkyAutonumericDirective_renderer.set(this, void 0);
|
|
63
|
+
_SkyAutonumericDirective_changeDetector.set(this, void 0);
|
|
58
64
|
// istanbul ignore next
|
|
59
|
-
|
|
60
|
-
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function , @typescript-eslint/no-unused-vars
|
|
66
|
+
_SkyAutonumericDirective_onChange.set(this, (_) => { });
|
|
61
67
|
// istanbul ignore next
|
|
62
|
-
|
|
63
|
-
this
|
|
68
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
69
|
+
_SkyAutonumericDirective_onTouched.set(this, () => { });
|
|
70
|
+
__classPrivateFieldSet(this, _SkyAutonumericDirective_elementRef, elementRef, "f");
|
|
71
|
+
__classPrivateFieldSet(this, _SkyAutonumericDirective_globalConfig, globalConfig, "f");
|
|
72
|
+
__classPrivateFieldSet(this, _SkyAutonumericDirective_renderer, renderer, "f");
|
|
73
|
+
__classPrivateFieldSet(this, _SkyAutonumericDirective_changeDetector, changeDetector, "f");
|
|
74
|
+
__classPrivateFieldSet(this, _SkyAutonumericDirective_autonumericInstance, new AutoNumeric(elementRef.nativeElement), "f");
|
|
64
75
|
}
|
|
65
76
|
/**
|
|
66
77
|
* Assigns the name of a property from `SkyAutonumericOptionsProvider`.
|
|
67
78
|
*/
|
|
68
79
|
set skyAutonumeric(value) {
|
|
69
|
-
this
|
|
70
|
-
this.
|
|
80
|
+
__classPrivateFieldSet(this, _SkyAutonumericDirective_autonumericOptions, __classPrivateFieldGet(this, _SkyAutonumericDirective_instances, "m", _SkyAutonumericDirective_mergeOptions).call(this, value), "f");
|
|
81
|
+
__classPrivateFieldGet(this, _SkyAutonumericDirective_instances, "m", _SkyAutonumericDirective_updateAutonumericInstance).call(this);
|
|
71
82
|
}
|
|
72
83
|
ngOnInit() {
|
|
73
84
|
// Ensure that we set the global config even if no local config has been given.
|
|
74
|
-
if (!this
|
|
75
|
-
this
|
|
85
|
+
if (!__classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericOptions, "f")) {
|
|
86
|
+
__classPrivateFieldSet(this, _SkyAutonumericDirective_autonumericOptions, __classPrivateFieldGet(this, _SkyAutonumericDirective_globalConfig, "f").getConfig(), "f");
|
|
76
87
|
}
|
|
77
|
-
this.
|
|
78
|
-
fromEvent(this.
|
|
79
|
-
.pipe(takeUntil(this
|
|
88
|
+
__classPrivateFieldGet(this, _SkyAutonumericDirective_instances, "m", _SkyAutonumericDirective_updateAutonumericInstance).call(this);
|
|
89
|
+
fromEvent(__classPrivateFieldGet(this, _SkyAutonumericDirective_elementRef, "f").nativeElement, 'input')
|
|
90
|
+
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyAutonumericDirective_ngUnsubscribe, "f")))
|
|
80
91
|
.subscribe(() => {
|
|
81
|
-
const numericValue = this.
|
|
92
|
+
const numericValue = __classPrivateFieldGet(this, _SkyAutonumericDirective_instances, "m", _SkyAutonumericDirective_getNumericValue).call(this);
|
|
82
93
|
/* istanbul ignore else */
|
|
83
|
-
if (this
|
|
84
|
-
this
|
|
85
|
-
this.
|
|
94
|
+
if (__classPrivateFieldGet(this, _SkyAutonumericDirective_value, "f") !== numericValue) {
|
|
95
|
+
__classPrivateFieldSet(this, _SkyAutonumericDirective_value, numericValue, "f");
|
|
96
|
+
__classPrivateFieldGet(this, _SkyAutonumericDirective_onChange, "f").call(this, numericValue);
|
|
86
97
|
}
|
|
87
98
|
/* istanbul ignore else */
|
|
88
|
-
if (this
|
|
89
|
-
this.
|
|
99
|
+
if (__classPrivateFieldGet(this, _SkyAutonumericDirective_control, "f") && !__classPrivateFieldGet(this, _SkyAutonumericDirective_control, "f").dirty) {
|
|
100
|
+
__classPrivateFieldGet(this, _SkyAutonumericDirective_control, "f").markAsDirty();
|
|
90
101
|
}
|
|
91
|
-
this.
|
|
102
|
+
__classPrivateFieldGet(this, _SkyAutonumericDirective_changeDetector, "f").markForCheck();
|
|
92
103
|
});
|
|
93
104
|
}
|
|
94
105
|
ngOnDestroy() {
|
|
95
|
-
this.
|
|
96
|
-
this.
|
|
106
|
+
__classPrivateFieldGet(this, _SkyAutonumericDirective_ngUnsubscribe, "f").next();
|
|
107
|
+
__classPrivateFieldGet(this, _SkyAutonumericDirective_ngUnsubscribe, "f").complete();
|
|
97
108
|
}
|
|
98
109
|
/**
|
|
99
110
|
* Implemented as part of ControlValueAccessor.
|
|
100
111
|
*/
|
|
101
112
|
setDisabledState(value) {
|
|
102
|
-
this.
|
|
113
|
+
__classPrivateFieldGet(this, _SkyAutonumericDirective_renderer, "f").setProperty(__classPrivateFieldGet(this, _SkyAutonumericDirective_elementRef, "f").nativeElement, 'disabled', value);
|
|
103
114
|
}
|
|
104
115
|
writeValue(value) {
|
|
105
|
-
if (this
|
|
106
|
-
this
|
|
107
|
-
this.
|
|
116
|
+
if (__classPrivateFieldGet(this, _SkyAutonumericDirective_value, "f") !== value) {
|
|
117
|
+
__classPrivateFieldSet(this, _SkyAutonumericDirective_value, value, "f");
|
|
118
|
+
__classPrivateFieldGet(this, _SkyAutonumericDirective_onChange, "f").call(this, value);
|
|
108
119
|
// Mark the control as "pristine" if it is initialized with a value.
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
this
|
|
112
|
-
this.control.markAsPristine();
|
|
120
|
+
if (__classPrivateFieldGet(this, _SkyAutonumericDirective_isFirstChange, "f") && __classPrivateFieldGet(this, _SkyAutonumericDirective_control, "f") && __classPrivateFieldGet(this, _SkyAutonumericDirective_value, "f") !== null) {
|
|
121
|
+
__classPrivateFieldSet(this, _SkyAutonumericDirective_isFirstChange, false, "f");
|
|
122
|
+
__classPrivateFieldGet(this, _SkyAutonumericDirective_control, "f").markAsPristine();
|
|
113
123
|
}
|
|
114
124
|
}
|
|
115
125
|
if (typeof value === 'number') {
|
|
116
126
|
if (this.skyAutonumericFormChangesUnformatted) {
|
|
117
|
-
this.
|
|
127
|
+
__classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericInstance, "f").setUnformatted(value);
|
|
118
128
|
}
|
|
119
129
|
else {
|
|
120
|
-
this.
|
|
130
|
+
__classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericInstance, "f").set(value);
|
|
121
131
|
}
|
|
122
132
|
}
|
|
123
133
|
else {
|
|
124
|
-
this.
|
|
134
|
+
__classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericInstance, "f").clear();
|
|
125
135
|
}
|
|
126
136
|
}
|
|
127
137
|
validate(control) {
|
|
128
138
|
const noErrors = null;
|
|
129
|
-
if (!this
|
|
130
|
-
this
|
|
139
|
+
if (!__classPrivateFieldGet(this, _SkyAutonumericDirective_control, "f")) {
|
|
140
|
+
__classPrivateFieldSet(this, _SkyAutonumericDirective_control, control, "f");
|
|
131
141
|
}
|
|
132
142
|
if (control.value === null || control.value === undefined) {
|
|
133
143
|
return noErrors;
|
|
@@ -140,50 +150,43 @@ class SkyAutonumericDirective {
|
|
|
140
150
|
return noErrors;
|
|
141
151
|
}
|
|
142
152
|
registerOnChange(fn) {
|
|
143
|
-
this
|
|
153
|
+
__classPrivateFieldSet(this, _SkyAutonumericDirective_onChange, fn, "f");
|
|
144
154
|
}
|
|
145
155
|
registerOnTouched(fn) {
|
|
146
|
-
this
|
|
156
|
+
__classPrivateFieldSet(this, _SkyAutonumericDirective_onTouched, fn, "f");
|
|
147
157
|
}
|
|
148
158
|
onBlur() {
|
|
149
|
-
this.
|
|
150
|
-
}
|
|
151
|
-
getNumericValue() {
|
|
152
|
-
const inputValue = this.getInputValue();
|
|
153
|
-
return inputValue && !this.isInputValueTheCurrencySymbol(inputValue)
|
|
154
|
-
? this.autonumericInstance.getNumber()
|
|
155
|
-
: undefined;
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Due to AutoNumeric's hover logic - when AutoNumeric has a currency symbol the value
|
|
159
|
-
* that we get back on empty fields will be the currency symbol.
|
|
160
|
-
* The following logic ensures that we don't accidentally set
|
|
161
|
-
* a form value when the only input was the programatically-added currency symbol.
|
|
162
|
-
*/
|
|
163
|
-
isInputValueTheCurrencySymbol(inputValue) {
|
|
164
|
-
/* istanbul ignore next */
|
|
165
|
-
const currencySymbol = (this.autonumericOptions?.currencySymbol ?? '').trim();
|
|
166
|
-
return !!currencySymbol && inputValue === currencySymbol;
|
|
167
|
-
}
|
|
168
|
-
getInputValue() {
|
|
169
|
-
return this.elementRef.nativeElement.value;
|
|
170
|
-
}
|
|
171
|
-
updateAutonumericInstance() {
|
|
172
|
-
this.autonumericInstance.update(this.autonumericOptions);
|
|
173
|
-
}
|
|
174
|
-
mergeOptions(value) {
|
|
175
|
-
const globalOptions = this.globalConfig.getConfig();
|
|
176
|
-
let newOptions;
|
|
177
|
-
if (typeof value === 'string') {
|
|
178
|
-
const predefinedOptions = AutoNumeric.getPredefinedOptions();
|
|
179
|
-
newOptions = predefinedOptions[value];
|
|
180
|
-
}
|
|
181
|
-
else {
|
|
182
|
-
newOptions = value;
|
|
183
|
-
}
|
|
184
|
-
return Object.assign({}, globalOptions, newOptions);
|
|
159
|
+
__classPrivateFieldGet(this, _SkyAutonumericDirective_onTouched, "f").call(this);
|
|
185
160
|
}
|
|
186
161
|
}
|
|
162
|
+
_SkyAutonumericDirective_autonumericInstance = new WeakMap(), _SkyAutonumericDirective_autonumericOptions = new WeakMap(), _SkyAutonumericDirective_control = new WeakMap(), _SkyAutonumericDirective_isFirstChange = new WeakMap(), _SkyAutonumericDirective_value = new WeakMap(), _SkyAutonumericDirective_ngUnsubscribe = new WeakMap(), _SkyAutonumericDirective_elementRef = new WeakMap(), _SkyAutonumericDirective_globalConfig = new WeakMap(), _SkyAutonumericDirective_renderer = new WeakMap(), _SkyAutonumericDirective_changeDetector = new WeakMap(), _SkyAutonumericDirective_onChange = new WeakMap(), _SkyAutonumericDirective_onTouched = new WeakMap(), _SkyAutonumericDirective_instances = new WeakSet(), _SkyAutonumericDirective_getNumericValue = function _SkyAutonumericDirective_getNumericValue() {
|
|
163
|
+
const inputValue = __classPrivateFieldGet(this, _SkyAutonumericDirective_instances, "m", _SkyAutonumericDirective_getInputValue).call(this);
|
|
164
|
+
const numericValue = __classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericInstance, "f").getNumber();
|
|
165
|
+
return inputValue &&
|
|
166
|
+
!__classPrivateFieldGet(this, _SkyAutonumericDirective_instances, "m", _SkyAutonumericDirective_isInputValueTheCurrencySymbol).call(this, inputValue) &&
|
|
167
|
+
typeof numericValue === 'number'
|
|
168
|
+
? numericValue
|
|
169
|
+
: undefined;
|
|
170
|
+
}, _SkyAutonumericDirective_isInputValueTheCurrencySymbol = function _SkyAutonumericDirective_isInputValueTheCurrencySymbol(inputValue) {
|
|
171
|
+
/* istanbul ignore next */
|
|
172
|
+
const currencySymbol = (__classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericOptions, "f")?.currencySymbol ?? '').trim();
|
|
173
|
+
return !!currencySymbol && inputValue === currencySymbol;
|
|
174
|
+
}, _SkyAutonumericDirective_getInputValue = function _SkyAutonumericDirective_getInputValue() {
|
|
175
|
+
return __classPrivateFieldGet(this, _SkyAutonumericDirective_elementRef, "f").nativeElement.value;
|
|
176
|
+
}, _SkyAutonumericDirective_updateAutonumericInstance = function _SkyAutonumericDirective_updateAutonumericInstance() {
|
|
177
|
+
__classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericInstance, "f").update(__classPrivateFieldGet(this, _SkyAutonumericDirective_autonumericOptions, "f"));
|
|
178
|
+
}, _SkyAutonumericDirective_mergeOptions = function _SkyAutonumericDirective_mergeOptions(value) {
|
|
179
|
+
const globalOptions = __classPrivateFieldGet(this, _SkyAutonumericDirective_globalConfig, "f").getConfig();
|
|
180
|
+
let newOptions;
|
|
181
|
+
if (typeof value === 'string') {
|
|
182
|
+
const predefinedOptions = AutoNumeric.getPredefinedOptions();
|
|
183
|
+
newOptions = predefinedOptions[value];
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
newOptions = value;
|
|
187
|
+
}
|
|
188
|
+
return Object.assign({}, globalOptions, newOptions);
|
|
189
|
+
};
|
|
187
190
|
SkyAutonumericDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyAutonumericDirective, deps: [{ token: i0.ElementRef }, { token: SkyAutonumericOptionsProvider }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
188
191
|
SkyAutonumericDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: SkyAutonumericDirective, selector: "input[skyAutonumeric]", inputs: { skyAutonumeric: "skyAutonumeric", skyAutonumericFormChangesUnformatted: "skyAutonumericFormChangesUnformatted" }, host: { listeners: { "blur": "onBlur()" } }, providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR], ngImport: i0 });
|
|
189
192
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyAutonumericDirective, decorators: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-autonumeric.mjs","sources":["../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric-options-provider.ts","../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric.directive.ts","../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric.module.ts","../../../../../libs/components/autonumeric/src/skyux-autonumeric.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { SkyAutonumericOptions } from './autonumeric-options';\n\n/**\n * Provides options to the underlying [autoNumeric utility](https://github.com/autoNumeric/autoNumeric).\n * This can set global options on multiple input fields.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyAutonumericOptionsProvider {\n /**\n * Specifies the value for a settings object to pass to the autoNumeric utility.\n * This overrides any default options specified by the `skyAutonumeric` attribute.\n */\n public getConfig(): SkyAutonumericOptions {\n return {};\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n forwardRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport AutoNumeric from 'autonumeric';\nimport { Subject, fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyAutonumericOptions } from './autonumeric-options';\nimport { SkyAutonumericOptionsProvider } from './autonumeric-options-provider';\n\nconst SKY_AUTONUMERIC_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyAutonumericDirective),\n multi: true,\n};\n\nconst SKY_AUTONUMERIC_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyAutonumericDirective),\n multi: true,\n};\n\n/**\n * Wraps the [autoNumeric utility](https://github.com/autoNumeric/autoNumeric) to format\n * any type of number, including currency.\n */\n@Directive({\n selector: 'input[skyAutonumeric]',\n providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR],\n})\nexport class SkyAutonumericDirective\n implements OnInit, OnDestroy, ControlValueAccessor, Validator\n{\n /**\n * Assigns the name of a property from `SkyAutonumericOptionsProvider`.\n */\n @Input()\n public set skyAutonumeric(value: SkyAutonumericOptions) {\n this.autonumericOptions = this.mergeOptions(value);\n this.updateAutonumericInstance();\n }\n\n /**\n * @internal\n */\n @Input()\n public skyAutonumericFormChangesUnformatted = false;\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 if (this.skyAutonumericFormChangesUnformatted) {\n this.autonumericInstance.setUnformatted(value);\n } else {\n this.autonumericInstance.set(value);\n }\n } else {\n this.autonumericInstance.clear();\n }\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const noErrors = null;\n\n if (!this.control) {\n this.control = control;\n }\n\n if (control.value === null || control.value === undefined) {\n return noErrors;\n }\n\n if (typeof control.value !== 'number') {\n return {\n notTypeOfNumber: { value: control.value },\n };\n }\n\n return noErrors;\n }\n\n public registerOnChange(fn: (value: number | undefined) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n @HostListener('blur')\n public onBlur(): void {\n this.onTouched();\n }\n\n private getNumericValue(): number | undefined {\n const inputValue = this.getInputValue();\n return inputValue && !this.isInputValueTheCurrencySymbol(inputValue)\n ? this.autonumericInstance.getNumber()\n : undefined;\n }\n\n /**\n * Due to AutoNumeric's hover logic - when AutoNumeric has a currency symbol the value\n * that we get back on empty fields will be the currency symbol.\n * The following logic ensures that we don't accidentally set\n * a form value when the only input was the programatically-added currency symbol.\n */\n private isInputValueTheCurrencySymbol(inputValue: string): boolean {\n /* istanbul ignore next */\n const currencySymbol = (\n (this.autonumericOptions as AutoNumeric.Options)?.currencySymbol ?? ''\n ).trim();\n return !!currencySymbol && inputValue === currencySymbol;\n }\n\n private getInputValue(): string {\n return this.elementRef.nativeElement.value;\n }\n\n private updateAutonumericInstance(): void {\n this.autonumericInstance.update(\n this.autonumericOptions as AutoNumeric.Options\n );\n }\n\n private mergeOptions(value: SkyAutonumericOptions): SkyAutonumericOptions {\n const globalOptions = this.globalConfig.getConfig();\n\n let newOptions: SkyAutonumericOptions;\n if (typeof value === 'string') {\n const predefinedOptions = AutoNumeric.getPredefinedOptions();\n newOptions = predefinedOptions[\n value as keyof AutoNumeric.Options\n ] as AutoNumeric.Options;\n } else {\n newOptions = value;\n }\n\n return Object.assign({}, globalOptions, newOptions);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n // istanbul ignore next\n private onChange = (_: number | undefined) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n // istanbul ignore next\n private onTouched = () => {};\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { SkyAutonumericDirective } from './autonumeric.directive';\n\n@NgModule({\n declarations: [SkyAutonumericDirective],\n imports: [CommonModule, FormsModule, ReactiveFormsModule],\n exports: [SkyAutonumericDirective],\n})\nexport class SkyAutonumericModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SkyAutonumericOptionsProvider"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skyux-autonumeric.mjs","sources":["../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric-options-provider.ts","../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric.directive.ts","../../../../../libs/components/autonumeric/src/lib/modules/autonumeric/autonumeric.module.ts","../../../../../libs/components/autonumeric/src/skyux-autonumeric.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { SkyAutonumericOptions } from './autonumeric-options';\n\n/**\n * Provides options to the underlying [autoNumeric utility](https://github.com/autoNumeric/autoNumeric).\n * This can set global options on multiple input fields.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyAutonumericOptionsProvider {\n /**\n * Specifies the value for a settings object to pass to the autoNumeric utility.\n * This overrides any default options specified by the `skyAutonumeric` attribute.\n */\n public getConfig(): SkyAutonumericOptions {\n return {};\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n forwardRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport AutoNumeric from 'autonumeric';\nimport { Subject, fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyAutonumericOptions } from './autonumeric-options';\nimport { SkyAutonumericOptionsProvider } from './autonumeric-options-provider';\n\nconst SKY_AUTONUMERIC_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyAutonumericDirective),\n multi: true,\n};\n\nconst SKY_AUTONUMERIC_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyAutonumericDirective),\n multi: true,\n};\n\n/**\n * Wraps the [autoNumeric utility](https://github.com/autoNumeric/autoNumeric) to format\n * any type of number, including currency.\n */\n@Directive({\n selector: 'input[skyAutonumeric]',\n providers: [SKY_AUTONUMERIC_VALUE_ACCESSOR, SKY_AUTONUMERIC_VALIDATOR],\n})\nexport class SkyAutonumericDirective\n implements OnInit, OnDestroy, ControlValueAccessor, Validator\n{\n /**\n * Assigns the name of a property from `SkyAutonumericOptionsProvider`.\n */\n @Input()\n public set skyAutonumeric(value: SkyAutonumericOptions | undefined) {\n this.#autonumericOptions = this.#mergeOptions(value);\n this.#updateAutonumericInstance();\n }\n\n /**\n * @internal\n */\n @Input()\n public skyAutonumericFormChangesUnformatted: boolean | undefined = false;\n\n #autonumericInstance: AutoNumeric;\n #autonumericOptions: SkyAutonumericOptions | undefined;\n #control: AbstractControl | undefined;\n #isFirstChange = true;\n #value: number | undefined;\n\n #ngUnsubscribe = new Subject<void>();\n\n #elementRef: ElementRef;\n #globalConfig: SkyAutonumericOptionsProvider;\n #renderer: Renderer2;\n #changeDetector: ChangeDetectorRef;\n\n constructor(\n elementRef: ElementRef,\n globalConfig: SkyAutonumericOptionsProvider,\n renderer: Renderer2,\n changeDetector: ChangeDetectorRef\n ) {\n this.#elementRef = elementRef;\n this.#globalConfig = globalConfig;\n this.#renderer = renderer;\n this.#changeDetector = changeDetector;\n\n this.#autonumericInstance = new AutoNumeric(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(\n this.#elementRef.nativeElement,\n 'disabled',\n value\n );\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 if (this.#isFirstChange && this.#control && this.#value !== null) {\n this.#isFirstChange = false;\n this.#control.markAsPristine();\n }\n }\n\n if (typeof value === 'number') {\n if (this.skyAutonumericFormChangesUnformatted) {\n this.#autonumericInstance.setUnformatted(value);\n } else {\n this.#autonumericInstance.set(value);\n }\n } else {\n this.#autonumericInstance.clear();\n }\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const noErrors = null;\n\n if (!this.#control) {\n this.#control = control;\n }\n\n if (control.value === null || control.value === undefined) {\n return noErrors;\n }\n\n if (typeof control.value !== 'number') {\n return {\n notTypeOfNumber: { value: control.value },\n };\n }\n\n return noErrors;\n }\n\n public registerOnChange(fn: (value: number | undefined) => void): void {\n this.#onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.#onTouched = fn;\n }\n\n @HostListener('blur')\n public onBlur(): void {\n this.#onTouched();\n }\n\n #getNumericValue(): number | undefined {\n const inputValue = this.#getInputValue();\n const numericValue = this.#autonumericInstance.getNumber();\n return inputValue &&\n !this.#isInputValueTheCurrencySymbol(inputValue) &&\n typeof numericValue === 'number'\n ? numericValue\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 #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 #getInputValue(): string {\n return this.#elementRef.nativeElement.value;\n }\n\n #updateAutonumericInstance(): void {\n this.#autonumericInstance.update(\n this.#autonumericOptions as AutoNumeric.Options\n );\n }\n\n #mergeOptions(\n value: SkyAutonumericOptions | undefined\n ): SkyAutonumericOptions {\n const globalOptions: SkyAutonumericOptions = this.#globalConfig.getConfig();\n\n let newOptions: SkyAutonumericOptions | undefined;\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 // istanbul ignore next\n // eslint-disable-next-line @typescript-eslint/no-empty-function , @typescript-eslint/no-unused-vars\n #onChange = (_: number | undefined) => {};\n // istanbul ignore next\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #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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"}
|
|
@@ -8,24 +8,15 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
* any type of number, including currency.
|
|
9
9
|
*/
|
|
10
10
|
export declare class SkyAutonumericDirective implements OnInit, OnDestroy, ControlValueAccessor, Validator {
|
|
11
|
-
private
|
|
12
|
-
private globalConfig;
|
|
13
|
-
private renderer;
|
|
14
|
-
private changeDetector;
|
|
11
|
+
#private;
|
|
15
12
|
/**
|
|
16
13
|
* Assigns the name of a property from `SkyAutonumericOptionsProvider`.
|
|
17
14
|
*/
|
|
18
|
-
set skyAutonumeric(value: SkyAutonumericOptions);
|
|
15
|
+
set skyAutonumeric(value: SkyAutonumericOptions | undefined);
|
|
19
16
|
/**
|
|
20
17
|
* @internal
|
|
21
18
|
*/
|
|
22
|
-
skyAutonumericFormChangesUnformatted: boolean;
|
|
23
|
-
private autonumericInstance;
|
|
24
|
-
private autonumericOptions;
|
|
25
|
-
private control;
|
|
26
|
-
private isFirstChange;
|
|
27
|
-
private value;
|
|
28
|
-
private ngUnsubscribe;
|
|
19
|
+
skyAutonumericFormChangesUnformatted: boolean | undefined;
|
|
29
20
|
constructor(elementRef: ElementRef, globalConfig: SkyAutonumericOptionsProvider, renderer: Renderer2, changeDetector: ChangeDetectorRef);
|
|
30
21
|
ngOnInit(): void;
|
|
31
22
|
ngOnDestroy(): void;
|
|
@@ -38,19 +29,6 @@ export declare class SkyAutonumericDirective implements OnInit, OnDestroy, Contr
|
|
|
38
29
|
registerOnChange(fn: (value: number | undefined) => void): void;
|
|
39
30
|
registerOnTouched(fn: () => void): void;
|
|
40
31
|
onBlur(): void;
|
|
41
|
-
private getNumericValue;
|
|
42
|
-
/**
|
|
43
|
-
* Due to AutoNumeric's hover logic - when AutoNumeric has a currency symbol the value
|
|
44
|
-
* that we get back on empty fields will be the currency symbol.
|
|
45
|
-
* The following logic ensures that we don't accidentally set
|
|
46
|
-
* a form value when the only input was the programatically-added currency symbol.
|
|
47
|
-
*/
|
|
48
|
-
private isInputValueTheCurrencySymbol;
|
|
49
|
-
private getInputValue;
|
|
50
|
-
private updateAutonumericInstance;
|
|
51
|
-
private mergeOptions;
|
|
52
|
-
private onChange;
|
|
53
|
-
private onTouched;
|
|
54
32
|
static ɵfac: i0.ɵɵFactoryDeclaration<SkyAutonumericDirective, never>;
|
|
55
33
|
static ɵdir: i0.ɵɵDirectiveDeclaration<SkyAutonumericDirective, "input[skyAutonumeric]", never, { "skyAutonumeric": "skyAutonumeric"; "skyAutonumericFormChangesUnformatted": "skyAutonumericFormChangesUnformatted"; }, {}, never, never, false>;
|
|
56
34
|
}
|