@dynamic-field-kit/angular 1.2.10 → 1.3.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/README.md +63 -1
- package/angular.json +27 -0
- package/dist/README.md +63 -1
- package/dist/components/BaseInput.d.ts +23 -5
- package/dist/components/DynamicInput.d.ts +13 -6
- package/dist/components/FieldInput.d.ts +10 -6
- package/dist/components/MultiFieldInput.d.ts +20 -3
- package/dist/esm2022/components/BaseInput.mjs +11 -3
- package/dist/esm2022/components/DynamicInput.mjs +112 -83
- package/dist/esm2022/components/FieldInput.mjs +25 -16
- package/dist/esm2022/components/MultiFieldInput.mjs +207 -28
- package/dist/esm2022/layout/defaultLayouts.mjs +70 -23
- package/dist/esm2022/layout/index.mjs +2 -1
- package/dist/esm2022/layout/layoutRegistry.mjs +14 -0
- package/dist/esm2022/public-api.mjs +1 -1
- package/dist/esm2022/types/layout.mjs +1 -1
- package/dist/fesm2022/dynamic-field-kit-angular.mjs +430 -146
- package/dist/fesm2022/dynamic-field-kit-angular.mjs.map +1 -1
- package/dist/layout/defaultLayouts.d.ts +21 -3
- package/dist/layout/index.d.ts +1 -0
- package/dist/layout/layoutRegistry.d.ts +12 -0
- package/dist/public-api.d.ts +1 -1
- package/dist/types/layout.d.ts +25 -1
- package/karma.conf.js +37 -0
- package/package.json +18 -5
- package/src/components/BaseInput.ts +34 -5
- package/src/components/DynamicInput.ts +142 -106
- package/src/components/FieldInput.ts +30 -12
- package/src/components/MultiFieldInput.ts +181 -18
- package/src/layout/defaultLayouts.ts +42 -10
- package/src/layout/index.ts +1 -0
- package/src/layout/layoutRegistry.ts +25 -0
- package/src/public-api.ts +1 -1
- package/src/types/layout.ts +36 -1
- package/test/DynamicInput.spec.ts +30 -0
- package/test/FieldInput.spec.ts +44 -0
- package/test/angular.spec.ts +102 -0
- package/test/integration.spec.ts +57 -0
- package/test/layouts.spec.ts +26 -0
- package/test.ts +12 -0
- package/tsconfig.spec.json +21 -0
- package/src/adapters/tailwind.ts +0 -13
- package/src/components/imports.ts +0 -3
- package/src/examples/index.ts +0 -4
- package/src/examples/registerExample.ts +0 -7
- package/src/examples/text-field.component.ts +0 -18
- package/src/types.ts +0 -1
package/README.md
CHANGED
|
@@ -88,6 +88,67 @@ export class AppComponent {
|
|
|
88
88
|
></dfk-multi-field-input>
|
|
89
89
|
```
|
|
90
90
|
|
|
91
|
+
## Layouts
|
|
92
|
+
|
|
93
|
+
`MultiFieldInput` supports `column`, `row`, `grid`, and `responsive` (mobile/desktop with a custom breakpoint), matching the React and Vue adapters:
|
|
94
|
+
|
|
95
|
+
```html
|
|
96
|
+
<dfk-multi-field-input
|
|
97
|
+
[fieldDescriptions]="fields"
|
|
98
|
+
[layout]="{ type: 'grid', columns: 3, gap: 16 }"
|
|
99
|
+
></dfk-multi-field-input>
|
|
100
|
+
|
|
101
|
+
<dfk-multi-field-input
|
|
102
|
+
[fieldDescriptions]="fields"
|
|
103
|
+
[layout]="{
|
|
104
|
+
type: 'responsive',
|
|
105
|
+
mobile: 'column',
|
|
106
|
+
desktop: { type: 'grid', columns: 2, gap: 12 }
|
|
107
|
+
}"
|
|
108
|
+
></dfk-multi-field-input>
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Derived fields with `computeValue`
|
|
112
|
+
|
|
113
|
+
Give a field a `computeValue` to derive its value from the rest of the form data whenever any field changes:
|
|
114
|
+
|
|
115
|
+
```ts
|
|
116
|
+
fields: FieldDescription[] = [
|
|
117
|
+
{ name: 'firstName', type: 'text' },
|
|
118
|
+
{ name: 'lastName', type: 'text' },
|
|
119
|
+
{
|
|
120
|
+
name: 'fullName',
|
|
121
|
+
type: 'text',
|
|
122
|
+
computeValue: (data) => `${data.firstName ?? ''} ${data.lastName ?? ''}`.trim(),
|
|
123
|
+
},
|
|
124
|
+
];
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Repeatable field groups
|
|
128
|
+
|
|
129
|
+
A field with `fields` renders as a repeatable group: `data[name]` becomes an array of items, each shaped by the nested `fields`, with "Add"/"Remove" controls rendered automatically.
|
|
130
|
+
|
|
131
|
+
```ts
|
|
132
|
+
fields: FieldDescription[] = [
|
|
133
|
+
{
|
|
134
|
+
name: 'contacts',
|
|
135
|
+
type: 'group',
|
|
136
|
+
label: 'Contacts',
|
|
137
|
+
fields: [
|
|
138
|
+
{ name: 'email', type: 'text', label: 'Email' },
|
|
139
|
+
{ name: 'phone', type: 'text', label: 'Phone' },
|
|
140
|
+
],
|
|
141
|
+
defaultItem: { email: '', phone: '' },
|
|
142
|
+
minItems: 1,
|
|
143
|
+
maxItems: 5,
|
|
144
|
+
},
|
|
145
|
+
];
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
```html
|
|
149
|
+
<dfk-multi-field-input [fieldDescriptions]="fields"></dfk-multi-field-input>
|
|
150
|
+
```
|
|
151
|
+
|
|
91
152
|
## Legacy setup (Angular 14 and earlier with NgModule)
|
|
92
153
|
|
|
93
154
|
```ts
|
|
@@ -118,7 +179,8 @@ declare module '@dynamic-field-kit/core' {
|
|
|
118
179
|
|
|
119
180
|
- Register Angular component classes in `fieldRegistry`.
|
|
120
181
|
- Do not register React or Vue renderers in the Angular adapter.
|
|
121
|
-
- `MultiFieldInput` supports `column`, `row`, and `
|
|
182
|
+
- `MultiFieldInput` supports `column`, `row`, `grid`, and `responsive` layouts, and derives fields using `computeValue`.
|
|
183
|
+
- Fields with `fields` render as repeatable groups instead of going through `fieldRegistry`.
|
|
122
184
|
- The shared schema and field types still come from `@dynamic-field-kit/core`.
|
|
123
185
|
|
|
124
186
|
## License
|
package/angular.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"newProjectRoot": "projects",
|
|
5
|
+
"projects": {
|
|
6
|
+
"dynamic-field-kit-angular": {
|
|
7
|
+
"projectType": "library",
|
|
8
|
+
"root": "",
|
|
9
|
+
"sourceRoot": "src",
|
|
10
|
+
"prefix": "dfk",
|
|
11
|
+
"architect": {
|
|
12
|
+
"test": {
|
|
13
|
+
"builder": "@angular-devkit/build-angular:karma",
|
|
14
|
+
"options": {
|
|
15
|
+
"main": "test.ts",
|
|
16
|
+
"polyfills": ["zone.js"],
|
|
17
|
+
"tsConfig": "tsconfig.spec.json",
|
|
18
|
+
"karmaConfig": "karma.conf.js",
|
|
19
|
+
"assets": [],
|
|
20
|
+
"styles": [],
|
|
21
|
+
"scripts": []
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
package/dist/README.md
CHANGED
|
@@ -88,6 +88,67 @@ export class AppComponent {
|
|
|
88
88
|
></dfk-multi-field-input>
|
|
89
89
|
```
|
|
90
90
|
|
|
91
|
+
## Layouts
|
|
92
|
+
|
|
93
|
+
`MultiFieldInput` supports `column`, `row`, `grid`, and `responsive` (mobile/desktop with a custom breakpoint), matching the React and Vue adapters:
|
|
94
|
+
|
|
95
|
+
```html
|
|
96
|
+
<dfk-multi-field-input
|
|
97
|
+
[fieldDescriptions]="fields"
|
|
98
|
+
[layout]="{ type: 'grid', columns: 3, gap: 16 }"
|
|
99
|
+
></dfk-multi-field-input>
|
|
100
|
+
|
|
101
|
+
<dfk-multi-field-input
|
|
102
|
+
[fieldDescriptions]="fields"
|
|
103
|
+
[layout]="{
|
|
104
|
+
type: 'responsive',
|
|
105
|
+
mobile: 'column',
|
|
106
|
+
desktop: { type: 'grid', columns: 2, gap: 12 }
|
|
107
|
+
}"
|
|
108
|
+
></dfk-multi-field-input>
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Derived fields with `computeValue`
|
|
112
|
+
|
|
113
|
+
Give a field a `computeValue` to derive its value from the rest of the form data whenever any field changes:
|
|
114
|
+
|
|
115
|
+
```ts
|
|
116
|
+
fields: FieldDescription[] = [
|
|
117
|
+
{ name: 'firstName', type: 'text' },
|
|
118
|
+
{ name: 'lastName', type: 'text' },
|
|
119
|
+
{
|
|
120
|
+
name: 'fullName',
|
|
121
|
+
type: 'text',
|
|
122
|
+
computeValue: (data) => `${data.firstName ?? ''} ${data.lastName ?? ''}`.trim(),
|
|
123
|
+
},
|
|
124
|
+
];
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Repeatable field groups
|
|
128
|
+
|
|
129
|
+
A field with `fields` renders as a repeatable group: `data[name]` becomes an array of items, each shaped by the nested `fields`, with "Add"/"Remove" controls rendered automatically.
|
|
130
|
+
|
|
131
|
+
```ts
|
|
132
|
+
fields: FieldDescription[] = [
|
|
133
|
+
{
|
|
134
|
+
name: 'contacts',
|
|
135
|
+
type: 'group',
|
|
136
|
+
label: 'Contacts',
|
|
137
|
+
fields: [
|
|
138
|
+
{ name: 'email', type: 'text', label: 'Email' },
|
|
139
|
+
{ name: 'phone', type: 'text', label: 'Phone' },
|
|
140
|
+
],
|
|
141
|
+
defaultItem: { email: '', phone: '' },
|
|
142
|
+
minItems: 1,
|
|
143
|
+
maxItems: 5,
|
|
144
|
+
},
|
|
145
|
+
];
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
```html
|
|
149
|
+
<dfk-multi-field-input [fieldDescriptions]="fields"></dfk-multi-field-input>
|
|
150
|
+
```
|
|
151
|
+
|
|
91
152
|
## Legacy setup (Angular 14 and earlier with NgModule)
|
|
92
153
|
|
|
93
154
|
```ts
|
|
@@ -118,7 +179,8 @@ declare module '@dynamic-field-kit/core' {
|
|
|
118
179
|
|
|
119
180
|
- Register Angular component classes in `fieldRegistry`.
|
|
120
181
|
- Do not register React or Vue renderers in the Angular adapter.
|
|
121
|
-
- `MultiFieldInput` supports `column`, `row`, and `
|
|
182
|
+
- `MultiFieldInput` supports `column`, `row`, `grid`, and `responsive` layouts, and derives fields using `computeValue`.
|
|
183
|
+
- Fields with `fields` render as repeatable groups instead of going through `fieldRegistry`.
|
|
122
184
|
- The shared schema and field types still come from `@dynamic-field-kit/core`.
|
|
123
185
|
|
|
124
186
|
## License
|
|
@@ -1,13 +1,28 @@
|
|
|
1
|
-
import { ChangeDetectorRef, EventEmitter } from '@angular/core';
|
|
1
|
+
import { ChangeDetectorRef, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export
|
|
3
|
+
export interface FieldInputProps {
|
|
4
|
+
value?: unknown;
|
|
5
|
+
label?: string;
|
|
6
|
+
placeholder?: string;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
options?: unknown[];
|
|
10
|
+
className?: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
errorMessage?: string;
|
|
13
|
+
acceptFile?: string;
|
|
14
|
+
maxLength?: number;
|
|
15
|
+
minNumber?: number;
|
|
16
|
+
maxNumber?: number;
|
|
17
|
+
}
|
|
18
|
+
export declare abstract class BaseInputComponent implements OnChanges {
|
|
4
19
|
protected cdr: ChangeDetectorRef;
|
|
5
|
-
value?:
|
|
20
|
+
value?: unknown;
|
|
6
21
|
label?: string;
|
|
7
22
|
placeholder?: string;
|
|
8
23
|
required?: boolean;
|
|
9
24
|
disabled?: boolean;
|
|
10
|
-
options?:
|
|
25
|
+
options?: unknown[];
|
|
11
26
|
className?: string;
|
|
12
27
|
description?: string;
|
|
13
28
|
errorMessage?: string;
|
|
@@ -15,8 +30,11 @@ export declare abstract class BaseInputComponent {
|
|
|
15
30
|
maxLength?: number;
|
|
16
31
|
minNumber?: number;
|
|
17
32
|
maxNumber?: number;
|
|
18
|
-
valueChange: EventEmitter<
|
|
33
|
+
valueChange: EventEmitter<unknown>;
|
|
19
34
|
constructor(cdr: ChangeDetectorRef);
|
|
35
|
+
ngOnChanges(_changes: SimpleChanges): void;
|
|
36
|
+
protected detectChanges(): void;
|
|
37
|
+
protected hasChanges(changes: SimpleChanges, prop: string): boolean;
|
|
20
38
|
static ɵfac: i0.ɵɵFactoryDeclaration<BaseInputComponent, never>;
|
|
21
39
|
static ɵcmp: i0.ɵɵComponentDeclaration<BaseInputComponent, "ng-component", never, { "value": { "alias": "value"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "options": { "alias": "options"; "required": false; }; "className": { "alias": "className"; "required": false; }; "description": { "alias": "description"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "acceptFile": { "alias": "acceptFile"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "minNumber": { "alias": "minNumber"; "required": false; }; "maxNumber": { "alias": "maxNumber"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
22
40
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AfterViewInit, EventEmitter, OnChanges, OnDestroy, SimpleChanges, ViewContainerRef } from '@angular/core';
|
|
2
2
|
import { FieldTypeKey } from '@dynamic-field-kit/core';
|
|
3
3
|
import { BaseInputComponent } from './BaseInput';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class DynamicInput extends BaseInputComponent implements OnChanges, AfterViewInit, OnDestroy {
|
|
6
6
|
type: FieldTypeKey;
|
|
7
|
-
valueChange: EventEmitter<
|
|
8
|
-
onChange: EventEmitter<
|
|
7
|
+
valueChange: EventEmitter<unknown>;
|
|
8
|
+
onChange: EventEmitter<unknown>;
|
|
9
9
|
host: ViewContainerRef;
|
|
10
10
|
private compRef?;
|
|
11
11
|
private inputInstance?;
|
|
@@ -13,12 +13,19 @@ export declare class DynamicInput extends BaseInputComponent implements OnChange
|
|
|
13
13
|
ngOnChanges(changes: SimpleChanges): void;
|
|
14
14
|
ngAfterViewInit(): void;
|
|
15
15
|
ngOnDestroy(): void;
|
|
16
|
+
private syncPropsToInstance;
|
|
17
|
+
private cleanup;
|
|
16
18
|
private cleanupSubscriptions;
|
|
19
|
+
private cleanupRenderedComponent;
|
|
17
20
|
private render;
|
|
18
|
-
private
|
|
19
|
-
private
|
|
21
|
+
private isComponentType;
|
|
22
|
+
private renderComponent;
|
|
23
|
+
private renderFallback;
|
|
24
|
+
private getFallbackProps;
|
|
25
|
+
private applyProps;
|
|
26
|
+
private bindOutputs;
|
|
20
27
|
private emitValue;
|
|
21
|
-
private
|
|
28
|
+
private renderError;
|
|
22
29
|
static ɵfac: i0.ɵɵFactoryDeclaration<DynamicInput, never>;
|
|
23
30
|
static ɵcmp: i0.ɵɵComponentDeclaration<DynamicInput, "dfk-dynamic-input", never, { "type": { "alias": "type"; "required": false; }; }, { "valueChange": "valueChange"; "onChange": "onChange"; }, never, never, true, never>;
|
|
24
31
|
}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import { FieldDescription
|
|
1
|
+
import { ChangeDetectorRef, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { FieldDescription } from '@dynamic-field-kit/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class FieldInput {
|
|
4
|
+
export declare class FieldInput implements OnChanges {
|
|
5
|
+
private cdr;
|
|
5
6
|
fieldDescription?: FieldDescription;
|
|
6
|
-
|
|
7
|
+
value?: unknown;
|
|
7
8
|
onValueChangeField: EventEmitter<{
|
|
8
|
-
value:
|
|
9
|
+
value: unknown;
|
|
9
10
|
key: string;
|
|
10
11
|
}>;
|
|
12
|
+
shouldRender: boolean;
|
|
13
|
+
constructor(cdr: ChangeDetectorRef);
|
|
14
|
+
ngOnChanges(_changes: SimpleChanges): void;
|
|
11
15
|
getFieldValue(): unknown;
|
|
12
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<FieldInput, never>;
|
|
13
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FieldInput, "dfk-field-input", never, { "fieldDescription": { "alias": "fieldDescription"; "required": false; }; "
|
|
17
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FieldInput, "dfk-field-input", never, { "fieldDescription": { "alias": "fieldDescription"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "onValueChangeField": "onValueChangeField"; }, never, never, true, never>;
|
|
14
18
|
}
|
|
@@ -1,23 +1,40 @@
|
|
|
1
|
-
import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
|
1
|
+
import { ChangeDetectorRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { FieldDescription, Properties } from '@dynamic-field-kit/core';
|
|
3
|
-
import { LayoutConfig } from '../types/layout';
|
|
3
|
+
import { BaseLayoutConfig, LayoutConfig } from '../types/layout';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class MultiFieldInput implements OnInit, OnChanges {
|
|
6
|
+
private cdr;
|
|
6
7
|
fieldDescriptions: FieldDescription[];
|
|
7
8
|
properties?: Properties;
|
|
8
9
|
onChange: EventEmitter<Properties>;
|
|
9
10
|
layout: LayoutConfig;
|
|
10
11
|
data: Properties;
|
|
11
12
|
visibleFields: FieldDescription[];
|
|
13
|
+
private isMobile;
|
|
14
|
+
constructor(cdr: ChangeDetectorRef);
|
|
15
|
+
onWindowResize(): void;
|
|
16
|
+
get resolvedLayout(): BaseLayoutConfig;
|
|
17
|
+
get resolvedLayoutType(): string;
|
|
18
|
+
get gap(): number;
|
|
19
|
+
get columns(): number;
|
|
12
20
|
trackByFn(index: number, field: FieldDescription): string | number;
|
|
21
|
+
trackByIndex(index: number): number;
|
|
13
22
|
ngOnInit(): void;
|
|
14
23
|
ngOnChanges(_changes: SimpleChanges): void;
|
|
24
|
+
private updateIsMobile;
|
|
15
25
|
private init;
|
|
16
26
|
private updateVisibleFields;
|
|
17
27
|
onFieldChange(event: {
|
|
18
|
-
value:
|
|
28
|
+
value: unknown;
|
|
19
29
|
key: string;
|
|
20
30
|
}): void;
|
|
31
|
+
getItems(field: FieldDescription): Properties[];
|
|
32
|
+
canAddItem(field: FieldDescription): boolean;
|
|
33
|
+
canRemoveItem(field: FieldDescription): boolean;
|
|
34
|
+
onGroupItemAdd(field: FieldDescription): void;
|
|
35
|
+
onGroupItemRemove(field: FieldDescription, index: number): void;
|
|
36
|
+
onGroupItemChange(field: FieldDescription, index: number, next: Properties): void;
|
|
37
|
+
private commitData;
|
|
21
38
|
static ɵfac: i0.ɵɵFactoryDeclaration<MultiFieldInput, never>;
|
|
22
39
|
static ɵcmp: i0.ɵɵComponentDeclaration<MultiFieldInput, "dfk-multi-field-input", never, { "fieldDescriptions": { "alias": "fieldDescriptions"; "required": false; }; "properties": { "alias": "properties"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; }, { "onChange": "onChange"; }, never, never, true, never>;
|
|
23
40
|
}
|
|
@@ -15,13 +15,21 @@ export class BaseInputComponent {
|
|
|
15
15
|
maxLength;
|
|
16
16
|
minNumber;
|
|
17
17
|
maxNumber;
|
|
18
|
-
// Add more from mplis as needed
|
|
19
18
|
valueChange = new EventEmitter();
|
|
20
19
|
constructor(cdr) {
|
|
21
20
|
this.cdr = cdr;
|
|
22
21
|
}
|
|
22
|
+
ngOnChanges(_changes) {
|
|
23
|
+
this.detectChanges();
|
|
24
|
+
}
|
|
25
|
+
detectChanges() {
|
|
26
|
+
this.cdr.markForCheck();
|
|
27
|
+
}
|
|
28
|
+
hasChanges(changes, prop) {
|
|
29
|
+
return changes[prop] !== undefined;
|
|
30
|
+
}
|
|
23
31
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: BaseInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: BaseInputComponent, isStandalone: true, selector: "ng-component", inputs: { value: "value", label: "label", placeholder: "placeholder", required: "required", disabled: "disabled", options: "options", className: "className", description: "description", errorMessage: "errorMessage", acceptFile: "acceptFile", maxLength: "maxLength", minNumber: "minNumber", maxNumber: "maxNumber" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: '', isInline: true });
|
|
32
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: BaseInputComponent, isStandalone: true, selector: "ng-component", inputs: { value: "value", label: "label", placeholder: "placeholder", required: "required", disabled: "disabled", options: "options", className: "className", description: "description", errorMessage: "errorMessage", acceptFile: "acceptFile", maxLength: "maxLength", minNumber: "minNumber", maxNumber: "maxNumber" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
|
|
25
33
|
}
|
|
26
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: BaseInputComponent, decorators: [{
|
|
27
35
|
type: Component,
|
|
@@ -57,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
57
65
|
}], valueChange: [{
|
|
58
66
|
type: Output
|
|
59
67
|
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZUlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvQmFzZUlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7O0FBcUJ2QixNQUFNLE9BQWdCLGtCQUFrQjtJQWlCaEI7SUFoQmIsS0FBSyxDQUFXO0lBQ2hCLEtBQUssQ0FBVTtJQUNmLFdBQVcsQ0FBVTtJQUNyQixRQUFRLENBQVc7SUFDbkIsUUFBUSxDQUFXO0lBQ25CLE9BQU8sQ0FBYTtJQUNwQixTQUFTLENBQVU7SUFDbkIsV0FBVyxDQUFVO0lBQ3JCLFlBQVksQ0FBVTtJQUN0QixVQUFVLENBQVU7SUFDcEIsU0FBUyxDQUFVO0lBQ25CLFNBQVMsQ0FBVTtJQUNuQixTQUFTLENBQVU7SUFFbEIsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFcEQsWUFBc0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFBRyxDQUFDO0lBRWhELFdBQVcsQ0FBQyxRQUF1QjtRQUNqQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVTLGFBQWE7UUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRVMsVUFBVSxDQUFDLE9BQXNCLEVBQUUsSUFBWTtRQUN2RCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxTQUFTLENBQUM7SUFDckMsQ0FBQzt3R0E3Qm1CLGtCQUFrQjs0RkFBbEIsa0JBQWtCLGtjQUY1QixFQUFFOzs0RkFFUSxrQkFBa0I7a0JBSHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7c0ZBRVUsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkSW5wdXRQcm9wcyB7XG4gIHZhbHVlPzogdW5rbm93bjtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICByZXF1aXJlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgb3B0aW9ucz86IHVua25vd25bXTtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBhY2NlcHRGaWxlPzogc3RyaW5nO1xuICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIG1pbk51bWJlcj86IG51bWJlcjtcbiAgbWF4TnVtYmVyPzogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6ICcnLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSB2YWx1ZT86IHVua25vd247XG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgQElucHV0KCkgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBASW5wdXQoKSBkaXNhYmxlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIG9wdGlvbnM/OiB1bmtub3duW107XG4gIEBJbnB1dCgpIGNsYXNzTmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgQElucHV0KCkgYWNjZXB0RmlsZT86IHN0cmluZztcbiAgQElucHV0KCkgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBASW5wdXQoKSBtaW5OdW1iZXI/OiBudW1iZXI7XG4gIEBJbnB1dCgpIG1heE51bWJlcj86IG51bWJlcjtcblxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHVua25vd24+KCk7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkNoYW5nZXMoX2NoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZXRlY3RDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhc0NoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcywgcHJvcDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNoYW5nZXNbcHJvcF0gIT09IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
|