@experteam-mx/ngx-input-number 1.6.2 → 1.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/.browserslistrc +16 -0
  2. package/karma.conf.js +44 -0
  3. package/ng-package.json +11 -0
  4. package/package.json +5 -22
  5. package/{lib/di.d.ts → src/lib/di.ts} +2 -1
  6. package/src/lib/ngx-input-number.component.html +14 -0
  7. package/src/lib/ngx-input-number.component.sass +11 -0
  8. package/src/lib/ngx-input-number.component.spec.ts +25 -0
  9. package/src/lib/ngx-input-number.component.ts +160 -0
  10. package/src/lib/ngx-input-number.module.ts +38 -0
  11. package/src/lib/ngx-input-number.service.spec.ts +16 -0
  12. package/src/lib/ngx-input-number.service.ts +59 -0
  13. package/src/lib/types.ts +14 -0
  14. package/src/lib/typesProvider.ts +26 -0
  15. package/{public-api.d.ts → src/public-api.ts} +9 -5
  16. package/src/test.ts +27 -0
  17. package/tsconfig.lib.json +27 -0
  18. package/tsconfig.lib.prod.json +10 -0
  19. package/tsconfig.spec.json +17 -0
  20. package/esm2020/experteam-mx-ngx-input-number.mjs +0 -5
  21. package/esm2020/lib/di.mjs +0 -3
  22. package/esm2020/lib/ngx-input-number.component.mjs +0 -133
  23. package/esm2020/lib/ngx-input-number.module.mjs +0 -49
  24. package/esm2020/lib/ngx-input-number.service.mjs +0 -63
  25. package/esm2020/lib/types.mjs +0 -5
  26. package/esm2020/lib/typesProvider.mjs +0 -30
  27. package/esm2020/public-api.mjs +0 -9
  28. package/experteam-mx-ngx-input-number.d.ts +0 -5
  29. package/fesm2015/experteam-mx-ngx-input-number.mjs +0 -282
  30. package/fesm2015/experteam-mx-ngx-input-number.mjs.map +0 -1
  31. package/fesm2020/experteam-mx-ngx-input-number.mjs +0 -280
  32. package/fesm2020/experteam-mx-ngx-input-number.mjs.map +0 -1
  33. package/lib/ngx-input-number.component.d.ts +0 -34
  34. package/lib/ngx-input-number.module.d.ts +0 -13
  35. package/lib/ngx-input-number.service.d.ts +0 -18
  36. package/lib/types.d.ts +0 -12
  37. package/lib/typesProvider.d.ts +0 -19
@@ -0,0 +1,16 @@
1
+ # This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
2
+ # For additional information regarding the format and rule options, please see:
3
+ # https://github.com/browserslist/browserslist#queries
4
+
5
+ # For the full list of supported browsers by the Angular framework, please see:
6
+ # https://angular.io/guide/browser-support
7
+
8
+ # You can see what browsers were selected by your queries by running:
9
+ # npx browserslist
10
+
11
+ last 1 Chrome version
12
+ last 1 Firefox version
13
+ last 2 Edge major versions
14
+ last 2 Safari major versions
15
+ last 2 iOS major versions
16
+ Firefox ESR
package/karma.conf.js ADDED
@@ -0,0 +1,44 @@
1
+ // Karma configuration file, see link for more information
2
+ // https://karma-runner.github.io/1.0/config/configuration-file.html
3
+
4
+ module.exports = function (config) {
5
+ config.set({
6
+ basePath: '',
7
+ frameworks: ['jasmine', '@angular-devkit/build-angular'],
8
+ plugins: [
9
+ require('karma-jasmine'),
10
+ require('karma-chrome-launcher'),
11
+ require('karma-jasmine-html-reporter'),
12
+ require('karma-coverage'),
13
+ require('@angular-devkit/build-angular/plugins/karma')
14
+ ],
15
+ client: {
16
+ jasmine: {
17
+ // you can add configuration options for Jasmine here
18
+ // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
19
+ // for example, you can disable the random execution with `random: false`
20
+ // or set a specific seed with `seed: 4321`
21
+ },
22
+ clearContext: false // leave Jasmine Spec Runner output visible in browser
23
+ },
24
+ jasmineHtmlReporter: {
25
+ suppressAll: true // removes the duplicated traces
26
+ },
27
+ coverageReporter: {
28
+ dir: require('path').join(__dirname, '../../coverage/ngx-input-number'),
29
+ subdir: '.',
30
+ reporters: [
31
+ { type: 'html' },
32
+ { type: 'text-summary' }
33
+ ]
34
+ },
35
+ reporters: ['progress', 'kjhtml'],
36
+ port: 9876,
37
+ colors: true,
38
+ logLevel: config.LOG_INFO,
39
+ autoWatch: true,
40
+ browsers: ['Chrome'],
41
+ singleRun: false,
42
+ restartOnFileChange: true
43
+ });
44
+ };
@@ -0,0 +1,11 @@
1
+ {
2
+ "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3
+ "dest": "../../dist/ngx-input-number",
4
+ "deleteDestPath": false,
5
+ "lib": {
6
+ "entryFile": "src/public-api.ts"
7
+ },
8
+ "allowedNonPeerDependencies": [
9
+ "."
10
+ ]
11
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@experteam-mx/ngx-input-number",
3
- "version": "1.6.2",
3
+ "version": "1.6.5",
4
4
  "license": "MIT",
5
5
  "peerDependencies": {},
6
6
  "dependencies": {
@@ -11,24 +11,7 @@
11
11
  "inputmask": "^5.0.7",
12
12
  "tslib": "^2.1.0"
13
13
  },
14
- "module": "fesm2015/experteam-mx-ngx-input-number.mjs",
15
- "es2020": "fesm2020/experteam-mx-ngx-input-number.mjs",
16
- "esm2020": "esm2020/experteam-mx-ngx-input-number.mjs",
17
- "fesm2020": "fesm2020/experteam-mx-ngx-input-number.mjs",
18
- "fesm2015": "fesm2015/experteam-mx-ngx-input-number.mjs",
19
- "typings": "experteam-mx-ngx-input-number.d.ts",
20
- "exports": {
21
- "./package.json": {
22
- "default": "./package.json"
23
- },
24
- ".": {
25
- "types": "./experteam-mx-ngx-input-number.d.ts",
26
- "esm2020": "./esm2020/experteam-mx-ngx-input-number.mjs",
27
- "es2020": "./fesm2020/experteam-mx-ngx-input-number.mjs",
28
- "es2015": "./fesm2015/experteam-mx-ngx-input-number.mjs",
29
- "node": "./fesm2015/experteam-mx-ngx-input-number.mjs",
30
- "default": "./fesm2020/experteam-mx-ngx-input-number.mjs"
31
- }
32
- },
33
- "sideEffects": false
34
- }
14
+ "devDependencies": {
15
+ "@types/inputmask": "^5.0.1"
16
+ }
17
+ }
@@ -1,3 +1,4 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  import { inputConfigs } from './types';
3
- export declare const INPUT_CONFIG_TOKEN: InjectionToken<inputConfigs>;
3
+
4
+ export const INPUT_CONFIG_TOKEN = new InjectionToken<inputConfigs>('INPUT_CONFIG');
@@ -0,0 +1,14 @@
1
+ <div class="position-relative">
2
+ <input
3
+ *ngIf="!loading"
4
+ #inputElement
5
+ type="text"
6
+ class="form-control {{ addClass }}"
7
+ [class.is-invalid]="control.touched && control.invalid"
8
+ [formControl]="control"
9
+ [tabindex]="tabIndex"
10
+ [(inputMask)]="inputMask"
11
+ [id]="idForLabel"
12
+ >
13
+ <label class="lbl-key-invalid position-absolute top-100 end-0 p-2 d-none" [innerHTML]="lblKeyInvalidRender"></label>
14
+ </div>
@@ -0,0 +1,11 @@
1
+ @import "~bootstrap/scss/bootstrap"
2
+
3
+ input
4
+ &.key-invalid
5
+ border-color: #dc3545 !important
6
+ box-shadow: 0 0 0 0.25rem #dc354540 !important
7
+ &+.lbl-key-invalid
8
+ background-color: #dc3545
9
+ color: #fff
10
+ display: block !important
11
+ z-index: 1
@@ -0,0 +1,25 @@
1
+ import { ComponentFixture, TestBed } from '@angular/core/testing';
2
+
3
+ import { NgxInputNumberComponent } from './ngx-input-number.component';
4
+
5
+ describe('NgxInputNumberComponent', () => {
6
+ let component: NgxInputNumberComponent;
7
+ let fixture: ComponentFixture<NgxInputNumberComponent>;
8
+
9
+ beforeEach(async () => {
10
+ await TestBed.configureTestingModule({
11
+ declarations: [ NgxInputNumberComponent ]
12
+ })
13
+ .compileComponents();
14
+ });
15
+
16
+ beforeEach(() => {
17
+ fixture = TestBed.createComponent(NgxInputNumberComponent);
18
+ component = fixture.componentInstance;
19
+ fixture.detectChanges();
20
+ });
21
+
22
+ it('should create', () => {
23
+ expect(component).toBeTruthy();
24
+ });
25
+ });
@@ -0,0 +1,160 @@
1
+ import { Component, OnInit, Input, OnChanges, AfterViewInit, AfterContentInit, ElementRef, ViewChild, SimpleChanges, ChangeDetectorRef } from '@angular/core';
2
+ import { FormBuilder, Validators, FormArray, FormGroup, FormControl } from "@angular/forms";
3
+ import { createMask, InputmaskOptions } from '@ngneat/input-mask';
4
+
5
+ import { inputConfigs, typesProvider } from './typesProvider';
6
+ import { NgxInputNumberService } from './ngx-input-number.service';
7
+
8
+ @Component({
9
+ selector: 'app-input-number',
10
+ templateUrl: './ngx-input-number.component.html',
11
+ styleUrls: ['./ngx-input-number.component.sass']
12
+ })
13
+ export class NgxInputNumberComponent implements OnInit, OnChanges {
14
+
15
+ constructor(
16
+ private _ChangeDetectorRef: ChangeDetectorRef,
17
+ private readonly _typesProvider: typesProvider,
18
+ private _NgxInputNumberService: NgxInputNumberService,
19
+ ) { }
20
+
21
+ @ViewChild('inputElement') inputElement!: ElementRef;
22
+
23
+ @Input() control!: FormControl
24
+ @Input() negative!: any
25
+ @Input() autofocus: any = false
26
+ @Input() decimals: any
27
+ @Input() max: any
28
+ @Input() idForLabel: any = ""
29
+ @Input() tabIndex: any
30
+ @Input() addClass: any = "form-control-sm"
31
+ @Input() groupSeparator: any
32
+ @Input() radixPoint: any
33
+ @Input() lblKeyInvalid: any
34
+ lblKeyInvalidRender: any
35
+
36
+ inputMask: InputmaskOptions<any> = {}
37
+
38
+ placeholder = "0"
39
+
40
+ loading = false
41
+
42
+ ngAfterViewInit(): void {
43
+ if( this.autofocus ){
44
+ setTimeout(()=>{
45
+ this.inputElement.nativeElement.focus();
46
+ })
47
+ }
48
+ }
49
+
50
+ ngAfterContentInit(): void {
51
+ }
52
+
53
+ render(){
54
+ this._ChangeDetectorRef.detectChanges()
55
+
56
+ this.lblKeyInvalidRender = this._NgxInputNumberService.lblKeyInvalid
57
+
58
+ this.inputMask = createMask({
59
+ allowMinus: this._NgxInputNumberService.negative,
60
+ alias: 'numeric',
61
+ numericInput: false,
62
+ inputType: "number",
63
+ inputmode: "numeric",
64
+ groupSeparator: this._NgxInputNumberService.groupSeparator,
65
+ radixPoint : this._NgxInputNumberService.radixPoint,
66
+ max : this._NgxInputNumberService.max,
67
+ digits: this._NgxInputNumberService.decimals,
68
+ digitsOptional: false,
69
+ placeholder: '0',
70
+ unmaskAsNumber: true,
71
+ autoUnmask: true,
72
+ showMaskOnFocus: false,
73
+ showMaskOnHover: false,
74
+ onBeforePaste: ( pastedValue: any, opts ) =>{
75
+ return pastedValue.replaceAll( opts.groupSeparator!, "" )
76
+ },
77
+ onKeyValidation: ( key, result ) => {
78
+ if( !result ){
79
+ this.inputElement.nativeElement.classList.add("key-invalid")
80
+ setTimeout(
81
+ ()=>{
82
+ this.inputElement.nativeElement.classList.remove("key-invalid")
83
+ },
84
+ 1000
85
+ )
86
+ }
87
+ }
88
+ })
89
+
90
+ if( this.negative !== undefined ){
91
+ this.inputMask.allowMinus = this.negative
92
+ }
93
+ if( this.max !== undefined ){
94
+ this.inputMask.max = this.max
95
+ }
96
+
97
+ if( this.groupSeparator !== undefined ){
98
+ this.inputMask.groupSeparator = this.groupSeparator
99
+ }
100
+ if( this.radixPoint !== undefined ){
101
+ this.inputMask.radixPoint = this.radixPoint
102
+ }
103
+ if( this.lblKeyInvalid !== undefined ){
104
+ this.lblKeyInvalidRender = this.lblKeyInvalid
105
+ }
106
+
107
+ if( this.decimals !== undefined ){
108
+ this.inputMask.digits = this.decimals
109
+ }
110
+
111
+
112
+
113
+ if( this.inputMask.digits! > 0 ){
114
+ this.placeholder = '0' + String(this.inputMask.radixPoint)
115
+ }
116
+ for( let x = 0; x < this.inputMask.digits!; x++ ){
117
+ this.placeholder += "0"
118
+ }
119
+
120
+ this.loading = false
121
+
122
+ }
123
+
124
+ onBlur(value: any){
125
+ // if( value != '' && Number( this.inputMask.digits ) > 0 ){
126
+ // let valueBlurSplit = String(value).split(".")
127
+ // let valueString = ""
128
+ // if( valueBlurSplit.length == 1 ){
129
+ // valueString = valueBlurSplit[0] + "." + String("").padEnd(Number(this.inputMask.digits), "0")
130
+ // }else{
131
+ // valueString = valueBlurSplit[0] + "." + String(valueBlurSplit[1]).padEnd(Number(this.inputMask.digits), "0")
132
+ // }
133
+ // this.control.setValue( parseFloat( valueString ) )
134
+ // }
135
+ this.control.setValue( value )
136
+ }
137
+
138
+ ngOnInit(): void {
139
+ this._NgxInputNumberService.getChangeEvent().subscribe(
140
+ ( configs )=>{
141
+ if( configs ){
142
+ this.loading = true
143
+
144
+ setTimeout(() => {
145
+ this.render()
146
+ }, 0);
147
+ }
148
+ }
149
+ )
150
+ }
151
+
152
+ ngOnChanges(changes: SimpleChanges): void {
153
+ this.loading = true
154
+
155
+ setTimeout(() => {
156
+ this.render()
157
+ }, 0);
158
+ }
159
+
160
+ }
@@ -0,0 +1,38 @@
1
+ import { NgModule, ModuleWithProviders } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule, ReactiveFormsModule } from "@angular/forms";
4
+
5
+ import { NgxInputNumberComponent } from './ngx-input-number.component';
6
+ import { InputMaskModule } from '@ngneat/input-mask';
7
+
8
+ import { inputConfigsHelp, typesProvider, defaultTypesProvider } from './typesProvider';
9
+
10
+ @NgModule({
11
+ declarations: [
12
+ NgxInputNumberComponent
13
+ ],
14
+ imports: [
15
+ CommonModule,
16
+ InputMaskModule.forRoot({ inputSelector: 'input', isAsync: true }),
17
+ FormsModule,
18
+ ReactiveFormsModule,
19
+ ],
20
+ exports: [
21
+ NgxInputNumberComponent
22
+ ],
23
+ providers:[
24
+ ]
25
+ })
26
+ export class NgxInputNumberModule {
27
+ static forRoot(config: inputConfigsHelp = {} ): ModuleWithProviders<NgxInputNumberModule> {
28
+ return {
29
+ ngModule: NgxInputNumberModule,
30
+ providers: [
31
+ config.config || {
32
+ provide: typesProvider,
33
+ useClass: defaultTypesProvider
34
+ }
35
+ ],
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,16 @@
1
+ import { TestBed } from '@angular/core/testing';
2
+
3
+ import { NgxInputNumberService } from './ngx-input-number.service';
4
+
5
+ describe('NgxInputNumberService', () => {
6
+ let service: NgxInputNumberService;
7
+
8
+ beforeEach(() => {
9
+ TestBed.configureTestingModule({});
10
+ service = TestBed.inject(NgxInputNumberService);
11
+ });
12
+
13
+ it('should be created', () => {
14
+ expect(service).toBeTruthy();
15
+ });
16
+ });
@@ -0,0 +1,59 @@
1
+ import { Injectable, Optional, Inject, EventEmitter, Output } from '@angular/core';
2
+ import { INPUT_CONFIG_TOKEN } from './di';
3
+ import { inputConfigs } from './types';
4
+ import { BehaviorSubject, Subject } from "rxjs";
5
+
6
+ @Injectable({
7
+ providedIn: 'root'
8
+ })
9
+ export class NgxInputNumberService {
10
+
11
+ changeEvent = new BehaviorSubject<boolean>(false);
12
+ groupSeparator = ','
13
+ radixPoint = '.'
14
+ lblKeyInvalid = 'Please enter a valid amount'
15
+ negative: any = true
16
+ max: any = undefined
17
+ decimals = 2
18
+
19
+ constructor(
20
+ @Optional() @Inject(INPUT_CONFIG_TOKEN)
21
+ private readonly config: inputConfigs | null,
22
+ ) {
23
+ if( config != null ){
24
+ this.groupSeparator = config.groupSeparator!
25
+ this.radixPoint = config.radixPoint!
26
+ this.lblKeyInvalid = config.lblKeyInvalid!
27
+ this.negative = config.negative!
28
+ this.max = config.max!
29
+ this.decimals = config.decimals!
30
+ }
31
+ }
32
+
33
+ onChangeParams( config: inputConfigs ){
34
+ if( config.groupSeparator ){
35
+ this.groupSeparator = config.groupSeparator
36
+ }
37
+ if( config.radixPoint ){
38
+ this.radixPoint = config.radixPoint
39
+ }
40
+ if( config.lblKeyInvalid ){
41
+ this.lblKeyInvalid = config.lblKeyInvalid
42
+ }
43
+ if( config.negative !== undefined ){
44
+ this.negative = config.negative
45
+ }
46
+ if( config.max ){
47
+ this.max = config.max!
48
+ }
49
+ if( config.decimals ){
50
+ this.decimals = config.decimals
51
+ }
52
+
53
+ this.changeEvent.next( true )
54
+ }
55
+
56
+ getChangeEvent(){
57
+ return this.changeEvent
58
+ }
59
+ }
@@ -0,0 +1,14 @@
1
+ import { Provider } from '@angular/core';
2
+
3
+ export class inputConfigs {
4
+ groupSeparator?: string;
5
+ radixPoint?: string;
6
+ lblKeyInvalid?: string;
7
+ max?: number;
8
+ decimals?: number;
9
+ negative?: boolean;
10
+ }
11
+
12
+ export class inputConfigsHelp {
13
+ config?: Provider;
14
+ }
@@ -0,0 +1,26 @@
1
+ import { Injectable, Provider } from '@angular/core';
2
+
3
+ export class inputConfigs {
4
+ groupSeparator?: string;
5
+ radixPoint?: string;
6
+ }
7
+
8
+ @Injectable({ providedIn: 'root' })
9
+ export abstract class typesProvider {
10
+ abstract get config(): inputConfigs;
11
+ }
12
+
13
+ @Injectable({ providedIn: 'root' })
14
+ export class defaultTypesProvider extends typesProvider {
15
+ get config(): inputConfigs {
16
+ // return default config
17
+ return {
18
+ groupSeparator: ",",
19
+ radixPoint: "."
20
+ };
21
+ }
22
+ }
23
+
24
+ export class inputConfigsHelp {
25
+ config?: Provider;
26
+ }
@@ -1,5 +1,9 @@
1
- export * from './lib/typesProvider';
2
- export * from './lib/ngx-input-number.service';
3
- export * from './lib/ngx-input-number.component';
4
- export * from './lib/ngx-input-number.module';
5
- export * from '@ngneat/input-mask';
1
+ /*
2
+ * Public API Surface of ngx-input-number
3
+ */
4
+
5
+ export * from './lib/typesProvider';
6
+ export * from './lib/ngx-input-number.service';
7
+ export * from './lib/ngx-input-number.component';
8
+ export * from './lib/ngx-input-number.module';
9
+ export * from '@ngneat/input-mask';
package/src/test.ts ADDED
@@ -0,0 +1,27 @@
1
+ // This file is required by karma.conf.js and loads recursively all the .spec and framework files
2
+
3
+ import 'zone.js';
4
+ import 'zone.js/testing';
5
+ import { getTestBed } from '@angular/core/testing';
6
+ import {
7
+ BrowserDynamicTestingModule,
8
+ platformBrowserDynamicTesting
9
+ } from '@angular/platform-browser-dynamic/testing';
10
+
11
+ declare const require: {
12
+ context(path: string, deep?: boolean, filter?: RegExp): {
13
+ <T>(id: string): T;
14
+ keys(): string[];
15
+ };
16
+ };
17
+
18
+ // First, initialize the Angular testing environment.
19
+ getTestBed().initTestEnvironment(
20
+ BrowserDynamicTestingModule,
21
+ platformBrowserDynamicTesting(),
22
+ );
23
+
24
+ // Then we find all the tests.
25
+ const context = require.context('./', true, /\.spec\.ts$/);
26
+ // And load the modules.
27
+ context.keys().map(context);
@@ -0,0 +1,27 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "../../tsconfig.json",
4
+ "compilerOptions": {
5
+ "outDir": "../../out-tsc/lib",
6
+ "target": "es2015",
7
+ "declaration": true,
8
+ "declarationMap": true,
9
+ "inlineSources": true,
10
+ "types": [],
11
+ "lib": [
12
+ "dom",
13
+ "es2018"
14
+ ]
15
+ },
16
+ "angularCompilerOptions": {
17
+ "skipTemplateCodegen": true,
18
+ "strictMetadataEmit": true,
19
+ "enableResourceInlining": true,
20
+ "strictTemplates": false,
21
+ "enableIvy": false
22
+ },
23
+ "exclude": [
24
+ "src/test.ts",
25
+ "**/*.spec.ts"
26
+ ]
27
+ }
@@ -0,0 +1,10 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "./tsconfig.lib.json",
4
+ "compilerOptions": {
5
+ "declarationMap": false
6
+ },
7
+ "angularCompilerOptions": {
8
+ "compilationMode": "partial"
9
+ }
10
+ }
@@ -0,0 +1,17 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "../../tsconfig.json",
4
+ "compilerOptions": {
5
+ "outDir": "../../out-tsc/spec",
6
+ "types": [
7
+ "jasmine"
8
+ ]
9
+ },
10
+ "files": [
11
+ "src/test.ts"
12
+ ],
13
+ "include": [
14
+ "**/*.spec.ts",
15
+ "**/*.d.ts"
16
+ ]
17
+ }
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwZXJ0ZWFtLW14LW5neC1pbnB1dC1udW1iZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaW5wdXQtbnVtYmVyL3NyYy9leHBlcnRlYW0tbXgtbmd4LWlucHV0LW51bWJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,3 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const INPUT_CONFIG_TOKEN = new InjectionToken('INPUT_CONFIG');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaW5wdXQtbnVtYmVyL3NyYy9saWIvZGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBZSxjQUFjLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGlucHV0Q29uZmlncyB9IGZyb20gJy4vdHlwZXMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IElOUFVUX0NPTkZJR19UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxpbnB1dENvbmZpZ3M+KCdJTlBVVF9DT05GSUcnKTsiXX0=