@decaf-ts/for-angular 0.0.3 → 0.0.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.
- package/LICENSE.md +659 -21
- package/README.md +37 -242
- package/dist/lib/README.md +92 -0
- package/dist/lib/assets/i18n/en.json +131 -0
- package/dist/lib/assets/images/angular-logo.svg +45 -0
- package/dist/lib/assets/images/decaf-logo-black.svg +22 -0
- package/dist/lib/assets/images/decaf-logo-lw.svg +50 -0
- package/dist/lib/assets/images/decaf-logo-white.svg +22 -0
- package/dist/lib/assets/images/decaf-logo.svg +54 -0
- package/dist/lib/components/component-renderer/component-renderer.component.d.ts +267 -0
- package/dist/lib/components/crud-field/crud-field.component.d.ts +447 -0
- package/dist/lib/components/crud-form/crud-form.component.d.ts +102 -0
- package/dist/lib/components/model-renderer/model-renderer.component.d.ts +97 -0
- package/dist/lib/engine/DynamicModule.d.ts +17 -0
- package/dist/{for-angular → lib}/engine/NgxCrudFormField.d.ts +37 -30
- package/dist/lib/engine/NgxFormService.d.ts +167 -0
- package/dist/lib/engine/NgxRenderingEngine.d.ts +128 -0
- package/dist/lib/engine/NgxRenderingEngine2.d.ts +251 -0
- package/dist/lib/engine/ValidatorFactory.d.ts +15 -0
- package/dist/lib/engine/constants.d.ts +151 -0
- package/dist/lib/engine/decorators.d.ts +25 -0
- package/dist/lib/engine/index.d.ts +15 -0
- package/dist/lib/engine/types.d.ts +293 -0
- package/dist/lib/esm2022/components/component-renderer/component-renderer.component.mjs +309 -0
- package/dist/lib/esm2022/components/crud-field/crud-field.component.mjs +288 -0
- package/dist/lib/esm2022/components/crud-form/constants.mjs +14 -0
- package/dist/lib/esm2022/components/crud-form/crud-form.component.mjs +140 -0
- package/dist/lib/esm2022/components/crud-form/types.mjs +2 -0
- package/dist/lib/esm2022/components/model-renderer/model-renderer.component.mjs +137 -0
- package/dist/lib/esm2022/engine/DynamicModule.mjs +18 -0
- package/dist/lib/esm2022/engine/NgxCrudFormField.mjs +117 -0
- package/dist/lib/esm2022/engine/NgxFormService.mjs +315 -0
- package/dist/lib/esm2022/engine/NgxRenderingEngine.mjs +194 -0
- package/dist/lib/esm2022/engine/NgxRenderingEngine2.mjs +333 -0
- package/dist/lib/esm2022/engine/ValidatorFactory.mjs +102 -0
- package/dist/lib/esm2022/engine/constants.mjs +160 -0
- package/dist/lib/esm2022/engine/decorators.mjs +38 -0
- package/dist/lib/esm2022/engine/index.mjs +16 -0
- package/dist/lib/esm2022/engine/types.mjs +2 -0
- package/dist/lib/esm2022/for-angular.module.mjs +118 -0
- package/dist/lib/esm2022/interfaces.mjs +2 -0
- package/dist/lib/esm2022/public-apis.mjs +13 -0
- package/dist/lib/fesm2022/decaf-ts-for-angular.mjs +2138 -0
- package/dist/lib/fesm2022/decaf-ts-for-angular.mjs.map +1 -0
- package/dist/lib/for-angular.module.d.ts +44 -0
- package/dist/lib/interfaces.d.ts +28 -0
- package/dist/lib/public-apis.d.ts +12 -0
- package/package.json +74 -25
- package/dist/for-angular/README.md +0 -297
- package/dist/for-angular/assets/i18n/en.json +0 -21
- package/dist/for-angular/components/decaf-crud-field/decaf-crud-field.component.d.ts +0 -22
- package/dist/for-angular/components/decaf-crud-form/decaf-crud-form.component.d.ts +0 -28
- package/dist/for-angular/components/decaf-model-renderer/decaf-model-renderer.component.d.ts +0 -20
- package/dist/for-angular/directives/decaf-field.directive.d.ts +0 -8
- package/dist/for-angular/engine/DynamicModule.d.ts +0 -2
- package/dist/for-angular/engine/NgxFormService.d.ts +0 -119
- package/dist/for-angular/engine/NgxRenderingEngine.d.ts +0 -17
- package/dist/for-angular/engine/ValidatorFactory.d.ts +0 -4
- package/dist/for-angular/engine/constants.d.ts +0 -10
- package/dist/for-angular/engine/decorators.d.ts +0 -1
- package/dist/for-angular/engine/index.d.ts +0 -5
- package/dist/for-angular/engine/types.d.ts +0 -32
- package/dist/for-angular/esm2022/components/decaf-crud-field/decaf-crud-field.component.mjs +0 -66
- package/dist/for-angular/esm2022/components/decaf-crud-form/constants.mjs +0 -14
- package/dist/for-angular/esm2022/components/decaf-crud-form/decaf-crud-form.component.mjs +0 -84
- package/dist/for-angular/esm2022/components/decaf-crud-form/types.mjs +0 -2
- package/dist/for-angular/esm2022/components/decaf-model-renderer/decaf-model-renderer.component.mjs +0 -46
- package/dist/for-angular/esm2022/directives/decaf-field.directive.mjs +0 -23
- package/dist/for-angular/esm2022/engine/DynamicModule.mjs +0 -3
- package/dist/for-angular/esm2022/engine/NgxCrudFormField.mjs +0 -118
- package/dist/for-angular/esm2022/engine/NgxFormService.mjs +0 -232
- package/dist/for-angular/esm2022/engine/NgxRenderingEngine.mjs +0 -35
- package/dist/for-angular/esm2022/engine/ValidatorFactory.mjs +0 -48
- package/dist/for-angular/esm2022/engine/constants.mjs +0 -12
- package/dist/for-angular/esm2022/engine/decorators.mjs +0 -17
- package/dist/for-angular/esm2022/engine/index.mjs +0 -6
- package/dist/for-angular/esm2022/engine/types.mjs +0 -2
- package/dist/for-angular/esm2022/interfaces.mjs +0 -2
- package/dist/for-angular/esm2022/public-apis.mjs +0 -5
- package/dist/for-angular/fesm2022/decaf-ts-for-angular.mjs +0 -675
- package/dist/for-angular/fesm2022/decaf-ts-for-angular.mjs.map +0 -1
- package/dist/for-angular/interfaces.d.ts +0 -8
- package/dist/for-angular/public-apis.d.ts +0 -4
- /package/dist/{for-angular/components/decaf-crud-form → lib/components/crud-form}/constants.d.ts +0 -0
- /package/dist/{for-angular/components/decaf-crud-form → lib/components/crud-form}/types.d.ts +0 -0
- /package/dist/{for-angular → lib}/esm2022/decaf-ts-for-angular.mjs +0 -0
- /package/dist/{for-angular → lib}/index.d.ts +0 -0
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import { FieldProperties } from '@decaf-ts/ui-decorators';
|
|
2
|
-
import { AngularFieldDefinition, FieldUpdateMode } from './types';
|
|
3
|
-
import { FormGroup } from '@angular/forms';
|
|
4
|
-
import { FormElement } from '../interfaces';
|
|
5
|
-
/**
|
|
6
|
-
* @summary Service for managing Angular forms and form controls.
|
|
7
|
-
* @description
|
|
8
|
-
* The NgxFormService provides utility methods for handling form initialization,
|
|
9
|
-
* validation, data retrieval, and form control management in Angular applications.
|
|
10
|
-
* It offers a centralized way to manage form controls, perform validations, and
|
|
11
|
-
* handle form-related operations.
|
|
12
|
-
*/
|
|
13
|
-
export declare class NgxFormService {
|
|
14
|
-
/**
|
|
15
|
-
* @summary Storage for form controls.
|
|
16
|
-
* @description
|
|
17
|
-
* A static object that stores form controls indexed by form ID and field name.
|
|
18
|
-
* @type {Record<string, Record<string, { control: FormGroup; props: AngularFieldDefinition }>>}
|
|
19
|
-
*/
|
|
20
|
-
private static controls;
|
|
21
|
-
private constructor();
|
|
22
|
-
/**
|
|
23
|
-
* Initializes the form after the view has been initialized.
|
|
24
|
-
* This method sets up the form controls and creates a FormGroup.
|
|
25
|
-
*
|
|
26
|
-
* @param el - The form element to initialize.
|
|
27
|
-
* @param formId - The unique identifier for the form.
|
|
28
|
-
* @param formUpdateMode - The update mode for the form. Defaults to 'blur'.
|
|
29
|
-
*/
|
|
30
|
-
/**
|
|
31
|
-
* @summary Initializes the form after view initialization.
|
|
32
|
-
* @description
|
|
33
|
-
* Sets up form controls and creates a FormGroup for the given form element.
|
|
34
|
-
*
|
|
35
|
-
* @param {FormElement} el - The form element to initialize.
|
|
36
|
-
* @param {string} formId - The unique identifier for the form.
|
|
37
|
-
* @param {FieldUpdateMode} [formUpdateMode='blur'] - The update mode for the form.
|
|
38
|
-
*/
|
|
39
|
-
static formAfterViewInit(el: FormElement, formId: string, formUpdateMode?: FieldUpdateMode): void;
|
|
40
|
-
/**
|
|
41
|
-
* @summary Handles form component destruction.
|
|
42
|
-
* @description
|
|
43
|
-
* Unregisters the form from the service when the component is destroyed.
|
|
44
|
-
*
|
|
45
|
-
* @param {FormElement} el - The form element being destroyed.
|
|
46
|
-
* @param {string} formId - The unique identifier of the form to unregister.
|
|
47
|
-
*/
|
|
48
|
-
static forOnDestroy(el: FormElement, formId: string): void;
|
|
49
|
-
/**
|
|
50
|
-
* @summary Retrieves form data for a given form ID.
|
|
51
|
-
* @description
|
|
52
|
-
* Processes form controls and returns their values as an object.
|
|
53
|
-
*
|
|
54
|
-
* @param {string} formId - The unique identifier of the form to retrieve data from.
|
|
55
|
-
* @returns {Record<string, unknown>} An object containing the form data.
|
|
56
|
-
* @throws {Error} If the form with the given ID is not found.
|
|
57
|
-
*/
|
|
58
|
-
static getFormData(formId: string): Record<string, unknown>;
|
|
59
|
-
/**
|
|
60
|
-
* @summary Validates form fields.
|
|
61
|
-
* @description
|
|
62
|
-
* Validates either a specific field or all fields in the form group.
|
|
63
|
-
*
|
|
64
|
-
* @param {FormGroup} formGroup - The FormGroup to validate.
|
|
65
|
-
* @param {string} [fieldName] - Optional name of a specific field to validate.
|
|
66
|
-
* @returns {boolean} Indicates whether the validation passed (true) or failed (false).
|
|
67
|
-
*/
|
|
68
|
-
static validateFields(formGroup: FormGroup, fieldName?: string): boolean;
|
|
69
|
-
/**
|
|
70
|
-
* @summary Creates a FormGroup from field properties.
|
|
71
|
-
* @description
|
|
72
|
-
* Generates a new FormGroup instance based on the provided field definition and update mode.
|
|
73
|
-
*
|
|
74
|
-
* @param {AngularFieldDefinition} props - The Angular field definition properties.
|
|
75
|
-
* @param {FieldUpdateMode} updateMode - The update mode for the form group.
|
|
76
|
-
* @returns {FormGroup} A new FormGroup instance.
|
|
77
|
-
*/
|
|
78
|
-
static fromProps(props: AngularFieldDefinition, updateMode: FieldUpdateMode): FormGroup;
|
|
79
|
-
/**
|
|
80
|
-
* Retrieves a form by its ID from the stored controls.
|
|
81
|
-
*
|
|
82
|
-
* @param id - The unique identifier of the form to retrieve.
|
|
83
|
-
* @returns The form controls associated with the given ID.
|
|
84
|
-
* @throws Error if the form with the given ID is not found.
|
|
85
|
-
*/
|
|
86
|
-
private static getFormById;
|
|
87
|
-
/**
|
|
88
|
-
* Retrieves a specific field from a form by its name.
|
|
89
|
-
*
|
|
90
|
-
* @param formId - The unique identifier of the form.
|
|
91
|
-
* @param name - The name of the field to retrieve.
|
|
92
|
-
* @returns The field control and properties.
|
|
93
|
-
* @throws Error if the field is not found in the form.
|
|
94
|
-
*/
|
|
95
|
-
private static getFieldByName;
|
|
96
|
-
/**
|
|
97
|
-
* Generates an array of validator functions from the provided field properties.
|
|
98
|
-
*
|
|
99
|
-
* @param props - The field properties containing validation rules.
|
|
100
|
-
* @returns An array of ValidatorFn instances.
|
|
101
|
-
*/
|
|
102
|
-
private static validatorsFromProps;
|
|
103
|
-
/**
|
|
104
|
-
*
|
|
105
|
-
* @param el
|
|
106
|
-
* @param tag
|
|
107
|
-
*
|
|
108
|
-
* @throws {Error} when no parent exists with the provided tag
|
|
109
|
-
*/
|
|
110
|
-
static getParentEl(el: HTMLElement, tag: string): HTMLElement;
|
|
111
|
-
static register(formId: string, control: FormGroup, props: FieldProperties & AngularFieldDefinition): void;
|
|
112
|
-
/**
|
|
113
|
-
* Unregisters a form or a specific field from the service.
|
|
114
|
-
*
|
|
115
|
-
* @param formId - The unique identifier of the form.
|
|
116
|
-
* @param field - Optional. The specific field to unregister. If not provided, the entire form is unregistered.
|
|
117
|
-
*/
|
|
118
|
-
static unregister(formId: string, field?: HTMLElement): void;
|
|
119
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { RenderingEngine } from '@decaf-ts/ui-decorators';
|
|
2
|
-
import { AngularFieldDefinition, ComponentMetadata } from './types';
|
|
3
|
-
import { Constructor } from '@decaf-ts/decorator-validation';
|
|
4
|
-
export declare class NgxRenderingEngine extends RenderingEngine<AngularFieldDefinition> {
|
|
5
|
-
private static _components;
|
|
6
|
-
constructor();
|
|
7
|
-
initialize(...args: any[]): Promise<void>;
|
|
8
|
-
static registerComponent(name: string, constructor: Constructor<unknown>, metadata: ComponentMetadata): void;
|
|
9
|
-
static components(selector?: string): {
|
|
10
|
-
constructor: Constructor<unknown>;
|
|
11
|
-
metadata: ComponentMetadata;
|
|
12
|
-
} | {
|
|
13
|
-
constructor: Constructor<unknown>;
|
|
14
|
-
metadata: ComponentMetadata;
|
|
15
|
-
}[];
|
|
16
|
-
static key(key: string): string;
|
|
17
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function Dynamic(): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { FieldProperties } from '@decaf-ts/ui-decorators';
|
|
2
|
-
import { IonCheckbox, IonInput, IonSelect, IonTextarea } from '@ionic/angular';
|
|
3
|
-
import { TextFieldTypes } from '@ionic/core';
|
|
4
|
-
export type FieldUpdateMode = 'change' | 'blur' | 'submit';
|
|
5
|
-
export interface ComponentMetadata {
|
|
6
|
-
changeDetection: number;
|
|
7
|
-
selector: string;
|
|
8
|
-
standalone: boolean;
|
|
9
|
-
imports: (new (...args: unknown[]) => unknown)[];
|
|
10
|
-
template: string;
|
|
11
|
-
styles: string[];
|
|
12
|
-
}
|
|
13
|
-
export type AngularFieldDefinition = FieldProperties & Omit<IonInput, 'ionInput' | 'ionFocus' | 'ionChange' | 'ionBlur' | 'getInputElement' | 'setFocus' | 'label' | 'el' | 'z' | 'type'> & Pick<IonSelect, 'cancelText' | 'interface' | 'selectedText' | 'interfaceOptions'> & Pick<IonTextarea, 'rows' | 'cols'> & Pick<IonCheckbox, 'alignment' | 'justify' | 'checked'> & {
|
|
14
|
-
type: 'checkbox' | 'radio' | 'select' | TextFieldTypes | 'textarea';
|
|
15
|
-
className: string | string[];
|
|
16
|
-
} & Record<string, unknown>;
|
|
17
|
-
export type StringOrBoolean = 'true' | 'false' | boolean;
|
|
18
|
-
export type SelectOption = InputOption & {
|
|
19
|
-
selected?: boolean;
|
|
20
|
-
};
|
|
21
|
-
export type CheckboxOption = RadioOption;
|
|
22
|
-
export type RadioOption = InputOption & {
|
|
23
|
-
checked?: boolean;
|
|
24
|
-
};
|
|
25
|
-
export interface InputOption {
|
|
26
|
-
text: string;
|
|
27
|
-
value: string | number;
|
|
28
|
-
disabled?: StringOrBoolean;
|
|
29
|
-
className?: string;
|
|
30
|
-
icon?: string;
|
|
31
|
-
}
|
|
32
|
-
export type HTMLFormTarget = '_blank' | '_self' | '_parent' | '_top' | string;
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { Component, CUSTOM_ELEMENTS_SCHEMA, ElementRef, Input, NO_ERRORS_SCHEMA, ViewChild, } from '@angular/core';
|
|
2
|
-
import { FormGroup, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
-
import { HTML5InputTypes } from '@decaf-ts/ui-decorators';
|
|
4
|
-
import { IonCheckbox, IonInput, IonItem, IonRadio, IonRadioGroup, IonSelect, IonSelectOption, } from '@ionic/angular/standalone';
|
|
5
|
-
import { TranslatePipe } from '@ngx-translate/core';
|
|
6
|
-
import { DecafFieldDirective } from '../../directives/decaf-field.directive';
|
|
7
|
-
import { NgClass } from '@angular/common';
|
|
8
|
-
import { NgxCrudFormField } from '../../engine/NgxCrudFormField';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/forms";
|
|
11
|
-
// @Dynamic()
|
|
12
|
-
export class DecafCrudFieldComponent extends NgxCrudFormField {
|
|
13
|
-
constructor() {
|
|
14
|
-
super(...arguments);
|
|
15
|
-
this.updateOn = 'change';
|
|
16
|
-
this.translatable = true;
|
|
17
|
-
this.HTML5InputTypes = Object.values(HTML5InputTypes);
|
|
18
|
-
}
|
|
19
|
-
ngAfterViewInit() {
|
|
20
|
-
super.afterViewInit();
|
|
21
|
-
}
|
|
22
|
-
ngOnDestroy() {
|
|
23
|
-
this.onDestroy();
|
|
24
|
-
}
|
|
25
|
-
ngOnInit() {
|
|
26
|
-
super.onInit(this.updateOn);
|
|
27
|
-
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DecafCrudFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DecafCrudFieldComponent, isStandalone: true, selector: "decaf-crud-field", inputs: { updateOn: "updateOn", operation: "operation", props: "props", name: "name", options: "options", formGroup: "formGroup", translatable: "translatable" }, viewQueries: [{ propertyName: "component", first: true, predicate: ["component"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<ng-container #component [formGroup]=\"formGroup\">\n @if(props.type === 'textarea') {\n <ion-item>\n <ion-textarea\n [ngClass]=\"props.className\"\n [mode]=\"props.mode\"\n [hidden]=\"props.hidden\"\n [required]=\"props.required !== undefined ? props.required : null\"\n [minlength]=\"props.minlength !== undefined ? props.minlength : null\"\n [maxlength]=\"props.maxlength !== undefined ? props.maxlength : null\"\n [readonly]=\"props.readonly !== undefined ? props.readonly : null\"\n [inputmode]=\"props.inputmode\"\n [spellcheck]=\"props.spellcheck\"\n [rows]=\"props.rows\"\n [labelPlacement]=\"props.labelPlacement\"\n [value]=\"props.value\"\n [fill]=\"props.fill\"\n [placeholder]=\"translatable ? (props.placeholder | translate) : props.placeholder\"\n [formControlName]=\"props.name\"\n [label]=\"translatable ? (props.label | translate) : props.label\">\n </ion-textarea>\n </ion-item>\n }\n @if(props.type === 'checkbox') {\n <ion-item [formControlName]=\"props.name\">\n <ion-checkbox\n #checkboxElement\n [name]=\"props.name\"\n [ngClass]=\"props.className\"\n [mode]=\"props.mode\"\n [hidden]=\"props.hidden\"\n [labelPlacement]=\"props.labelPlacement\"\n [alignment]=\"props.alignment\"\n [justify]=\"props.justify\"\n [disabled]=\"props.disabled || props.readonly\"\n [attr.checkedValue]=\"props.value\"\n [value]=\"props.value\"\n [checked]=\"props.checked\"\n (ionChange)=\"props.checked = !props.checked\"\n [formControlName]=\"props.name\">\n <span [innerHTML]=\"props.label | translate\"></span>\n </ion-checkbox>\n </ion-item>\n }\n @else if(props.type === 'radio') {\n <ion-radio-group [ngClass]=\"props.className\" [formControlName]=\"props.name\" [name]=\"props.name\" [value]=\"props.value\">\n <label class=\"radio-group-label\">{{props.label | translate}}</label>\n @for(option of options; track option.value) {\n <ion-item>\n <ion-radio\n [mode]=\"props.mode\"\n [hidden]=\"props.hidden\"\n [disabled]=\"props.readonly || props.disabled\"\n [labelPlacement]=\"props.labelPlacement\"\n [alignment]=\"props.alignment\"\n [justify]=\"props.justify\"\n [value]=\"option.value\"\n >{{ option.text | translate }}</ion-radio>\n </ion-item>\n }\n </ion-radio-group>\n }\n @else if(props.type === 'select') {\n <ion-item>\n <ion-select\n [name]=\"props.name\"\n [ngClass]=\"props.className\"\n [mode]=\"props.mode\"\n [hidden]=\"props.hidden\"\n [labelPlacement]=\"props.labelPlacement\"\n [cancelText]=\"props.cancelText | translate\"\n [label]=\"translatable ? (props.label | translate) : props.label\"\n [value]=\"props.value\"\n [fill]=\"props.fill\"\n [disabled]=\"props.readonly || props.disabled\"\n [placeholder]=\"props.placeholder | translate\"\n [formControlName]=\"props.name\"\n [interface]=\"props.interface\">\n @for(option of options; track option.value) {\n <ion-select-option [value]=\"option.value\">\n {{ translatable ? (option.text | translate) : option.text }}\n </ion-select-option>\n }\n </ion-select>\n </ion-item>\n }\n @else if(HTML5InputTypes.includes(props.type)) {\n <ion-item>\n <ion-input\n [ngClass]=\"props.className\"\n [type]=\"props.type\"\n [mode]=\"props.mode\"\n [hidden]=\"props.hidden\"\n [inputmode]=\"props.inputmode\"\n [autocomplete]=\"props.autocomplete\"\n [spellcheck]=\"props.spellcheck\"\n [labelPlacement]=\"props.labelPlacement\"\n [required]=\"props.required !== undefined ? props.required : false\"\n [minlength]=\"props.minlength !== undefined ? props.minlength : null\"\n [maxlength]=\"props.maxlength !== undefined ? props.maxlength : null\"\n [readonly]=\"props.readonly !== undefined ? props.readonly : null\"\n [max]=\"props.max !== undefined ? props.max : null\"\n [min]=\"props.min !== undefined ? props.min : null\"\n [pattern]=\"props.pattern !== undefined ? props.pattern : null\"\n [step]=\"props.step !== undefined ? props.step : null\"\n [value]=\"props.value\"\n [fill]=\"props.fill\"\n [placeholder]=\"props.placeholder | translate\"\n [formControlName]=\"props.name\"\n [label]=\"props.label | translate\">\n </ion-input>\n </ion-item>\n }\n @else {\n <h1>INVALID FIELD TYPE</h1>\n }\n @if((!formGroup.pristine || formGroup.touched) && !formGroup.valid) {\n <div class=\"error uk-flex uk-flex-top\">\n @for(item of getErrors(); track item.key) {\n <p>\n <span color=\"danger\" class=\"ti ti-alert-triangle\"></span>\n <span>{{item.key}} - {{ sf((\"errors.\" + item.message) | translate, props[item.key]) }}</span>\n </p>\n }\n </div>\n }\n</ng-container>\n", styles: [".disabled{opacity:.7;pointer-events:none;touch-action:none}.disabled *{pointer-events:none;touch-action:none}.proccessing,.proccessing *{pointer-events:none;touch-action:none;cursor:text}ion-item{--border-color: transparent;--padding-start: .75rem;--background: transparent;--background-hover-opacity: .1;--background-hover: var(--ion-color-primary);--background-activated-opacity: .15;--background-focused: var(--ion-color-primary);--background-focused-opacity: .15}ion-textarea textarea{scrollbar-width:thin!important;margin-bottom:.5rem!important}ion-select.select-label-placement-floating::part(label){line-height:1.2rem!important}.radio-group-label{margin-left:.5rem}.radio-group-label+ion-item{margin-top:.5rem}ion-checkbox{--size: 1.5rem;--checkbox-background-checked: var(--ion-color-primary);--checkmark-width: 2px}ion-checkbox::part(container){border-radius:50%;border:2px solid var(--ion-color-primary);padding:3px}ion-item+.helper,ion-radio-group+.helper{padding-left:.75rem;position:relative}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: IonRadioGroup, selector: "ion-radio-group", inputs: ["allowEmptySelection", "compareWith", "name", "value"] }, { kind: "component", type: IonRadio, selector: "ion-radio", inputs: ["alignment", "color", "disabled", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "expandedIcon", "fill", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }] }); }
|
|
30
|
-
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DecafCrudFieldComponent, decorators: [{
|
|
32
|
-
type: Component,
|
|
33
|
-
args: [{ standalone: true, imports: [
|
|
34
|
-
ReactiveFormsModule,
|
|
35
|
-
NgClass,
|
|
36
|
-
IonInput,
|
|
37
|
-
IonItem,
|
|
38
|
-
IonCheckbox,
|
|
39
|
-
IonRadioGroup,
|
|
40
|
-
IonRadio,
|
|
41
|
-
IonSelect,
|
|
42
|
-
TranslatePipe,
|
|
43
|
-
IonSelectOption,
|
|
44
|
-
DecafFieldDirective,
|
|
45
|
-
], schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA], selector: 'decaf-crud-field', template: "<ng-container #component [formGroup]=\"formGroup\">\n @if(props.type === 'textarea') {\n <ion-item>\n <ion-textarea\n [ngClass]=\"props.className\"\n [mode]=\"props.mode\"\n [hidden]=\"props.hidden\"\n [required]=\"props.required !== undefined ? props.required : null\"\n [minlength]=\"props.minlength !== undefined ? props.minlength : null\"\n [maxlength]=\"props.maxlength !== undefined ? props.maxlength : null\"\n [readonly]=\"props.readonly !== undefined ? props.readonly : null\"\n [inputmode]=\"props.inputmode\"\n [spellcheck]=\"props.spellcheck\"\n [rows]=\"props.rows\"\n [labelPlacement]=\"props.labelPlacement\"\n [value]=\"props.value\"\n [fill]=\"props.fill\"\n [placeholder]=\"translatable ? (props.placeholder | translate) : props.placeholder\"\n [formControlName]=\"props.name\"\n [label]=\"translatable ? (props.label | translate) : props.label\">\n </ion-textarea>\n </ion-item>\n }\n @if(props.type === 'checkbox') {\n <ion-item [formControlName]=\"props.name\">\n <ion-checkbox\n #checkboxElement\n [name]=\"props.name\"\n [ngClass]=\"props.className\"\n [mode]=\"props.mode\"\n [hidden]=\"props.hidden\"\n [labelPlacement]=\"props.labelPlacement\"\n [alignment]=\"props.alignment\"\n [justify]=\"props.justify\"\n [disabled]=\"props.disabled || props.readonly\"\n [attr.checkedValue]=\"props.value\"\n [value]=\"props.value\"\n [checked]=\"props.checked\"\n (ionChange)=\"props.checked = !props.checked\"\n [formControlName]=\"props.name\">\n <span [innerHTML]=\"props.label | translate\"></span>\n </ion-checkbox>\n </ion-item>\n }\n @else if(props.type === 'radio') {\n <ion-radio-group [ngClass]=\"props.className\" [formControlName]=\"props.name\" [name]=\"props.name\" [value]=\"props.value\">\n <label class=\"radio-group-label\">{{props.label | translate}}</label>\n @for(option of options; track option.value) {\n <ion-item>\n <ion-radio\n [mode]=\"props.mode\"\n [hidden]=\"props.hidden\"\n [disabled]=\"props.readonly || props.disabled\"\n [labelPlacement]=\"props.labelPlacement\"\n [alignment]=\"props.alignment\"\n [justify]=\"props.justify\"\n [value]=\"option.value\"\n >{{ option.text | translate }}</ion-radio>\n </ion-item>\n }\n </ion-radio-group>\n }\n @else if(props.type === 'select') {\n <ion-item>\n <ion-select\n [name]=\"props.name\"\n [ngClass]=\"props.className\"\n [mode]=\"props.mode\"\n [hidden]=\"props.hidden\"\n [labelPlacement]=\"props.labelPlacement\"\n [cancelText]=\"props.cancelText | translate\"\n [label]=\"translatable ? (props.label | translate) : props.label\"\n [value]=\"props.value\"\n [fill]=\"props.fill\"\n [disabled]=\"props.readonly || props.disabled\"\n [placeholder]=\"props.placeholder | translate\"\n [formControlName]=\"props.name\"\n [interface]=\"props.interface\">\n @for(option of options; track option.value) {\n <ion-select-option [value]=\"option.value\">\n {{ translatable ? (option.text | translate) : option.text }}\n </ion-select-option>\n }\n </ion-select>\n </ion-item>\n }\n @else if(HTML5InputTypes.includes(props.type)) {\n <ion-item>\n <ion-input\n [ngClass]=\"props.className\"\n [type]=\"props.type\"\n [mode]=\"props.mode\"\n [hidden]=\"props.hidden\"\n [inputmode]=\"props.inputmode\"\n [autocomplete]=\"props.autocomplete\"\n [spellcheck]=\"props.spellcheck\"\n [labelPlacement]=\"props.labelPlacement\"\n [required]=\"props.required !== undefined ? props.required : false\"\n [minlength]=\"props.minlength !== undefined ? props.minlength : null\"\n [maxlength]=\"props.maxlength !== undefined ? props.maxlength : null\"\n [readonly]=\"props.readonly !== undefined ? props.readonly : null\"\n [max]=\"props.max !== undefined ? props.max : null\"\n [min]=\"props.min !== undefined ? props.min : null\"\n [pattern]=\"props.pattern !== undefined ? props.pattern : null\"\n [step]=\"props.step !== undefined ? props.step : null\"\n [value]=\"props.value\"\n [fill]=\"props.fill\"\n [placeholder]=\"props.placeholder | translate\"\n [formControlName]=\"props.name\"\n [label]=\"props.label | translate\">\n </ion-input>\n </ion-item>\n }\n @else {\n <h1>INVALID FIELD TYPE</h1>\n }\n @if((!formGroup.pristine || formGroup.touched) && !formGroup.valid) {\n <div class=\"error uk-flex uk-flex-top\">\n @for(item of getErrors(); track item.key) {\n <p>\n <span color=\"danger\" class=\"ti ti-alert-triangle\"></span>\n <span>{{item.key}} - {{ sf((\"errors.\" + item.message) | translate, props[item.key]) }}</span>\n </p>\n }\n </div>\n }\n</ng-container>\n", styles: [".disabled{opacity:.7;pointer-events:none;touch-action:none}.disabled *{pointer-events:none;touch-action:none}.proccessing,.proccessing *{pointer-events:none;touch-action:none;cursor:text}ion-item{--border-color: transparent;--padding-start: .75rem;--background: transparent;--background-hover-opacity: .1;--background-hover: var(--ion-color-primary);--background-activated-opacity: .15;--background-focused: var(--ion-color-primary);--background-focused-opacity: .15}ion-textarea textarea{scrollbar-width:thin!important;margin-bottom:.5rem!important}ion-select.select-label-placement-floating::part(label){line-height:1.2rem!important}.radio-group-label{margin-left:.5rem}.radio-group-label+ion-item{margin-top:.5rem}ion-checkbox{--size: 1.5rem;--checkbox-background-checked: var(--ion-color-primary);--checkmark-width: 2px}ion-checkbox::part(container){border-radius:50%;border:2px solid var(--ion-color-primary);padding:3px}ion-item+.helper,ion-radio-group+.helper{padding-left:.75rem;position:relative}\n"] }]
|
|
46
|
-
}], propDecorators: { updateOn: [{
|
|
47
|
-
type: Input
|
|
48
|
-
}], component: [{
|
|
49
|
-
type: ViewChild,
|
|
50
|
-
args: ['component', { read: ElementRef }]
|
|
51
|
-
}], operation: [{
|
|
52
|
-
type: Input,
|
|
53
|
-
args: [{ required: true }]
|
|
54
|
-
}], props: [{
|
|
55
|
-
type: Input,
|
|
56
|
-
args: [{ required: true }]
|
|
57
|
-
}], name: [{
|
|
58
|
-
type: Input
|
|
59
|
-
}], options: [{
|
|
60
|
-
type: Input
|
|
61
|
-
}], formGroup: [{
|
|
62
|
-
type: Input
|
|
63
|
-
}], translatable: [{
|
|
64
|
-
type: Input
|
|
65
|
-
}] } });
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjYWYtY3J1ZC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZGVjYWYtY3J1ZC1maWVsZC9kZWNhZi1jcnVkLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kZWNhZi1jcnVkLWZpZWxkL2RlY2FmLWNydWQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxzQkFBc0IsRUFDdEIsVUFBVSxFQUNWLEtBQUssRUFDTCxnQkFBZ0IsRUFHaEIsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUNMLFdBQVcsRUFDWCxRQUFRLEVBQ1IsT0FBTyxFQUNQLFFBQVEsRUFDUixhQUFhLEVBQ2IsU0FBUyxFQUNULGVBQWUsR0FDaEIsTUFBTSwyQkFBMkIsQ0FBQztBQVFuQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7QUFHakUsYUFBYTtBQXNCYixNQUFNLE9BQU8sdUJBQ1gsU0FBUSxnQkFBZ0I7SUF0QjFCOztRQTBCRSxhQUFRLEdBQW9CLFFBQVEsQ0FBQztRQXFCckMsaUJBQVksR0FBb0IsSUFBSSxDQUFDO1FBY2xCLG9CQUFlLEdBQWEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztLQUMvRTtJQWJDLGVBQWU7UUFDYixLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDOytHQXRDVSx1QkFBdUI7bUdBQXZCLHVCQUF1QixpVUFPRixVQUFVLG9EQ2pFNUMsMGxLQStIQSx3aUNEdkZJLG1CQUFtQixneENBQ25CLE9BQU8sb0ZBQ1AsUUFBUSw4ZUFDUixPQUFPLDBOQUNQLFdBQVcsMEtBQ1gsYUFBYSw2SEFDYixRQUFRLHdKQUNSLFNBQVMsa1RBQ1QsYUFBYSxrREFDYixlQUFlOzs0RkFTTix1QkFBdUI7a0JBckJuQyxTQUFTO2lDQUNJLElBQUksV0FDUDt3QkFDUCxtQkFBbUI7d0JBQ25CLE9BQU87d0JBQ1AsUUFBUTt3QkFDUixPQUFPO3dCQUNQLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixRQUFRO3dCQUNSLFNBQVM7d0JBQ1QsYUFBYTt3QkFDYixlQUFlO3dCQUNmLG1CQUFtQjtxQkFDcEIsV0FDUSxDQUFDLHNCQUFzQixFQUFFLGdCQUFnQixDQUFDLFlBRXpDLGtCQUFrQjs4QkFTNUIsUUFBUTtzQkFEUCxLQUFLO2dCQUlHLFNBQVM7c0JBRGpCLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJbkMsU0FBUztzQkFEakIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBSWhCLEtBQUs7c0JBRGIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBSWhCLElBQUk7c0JBRFosS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSUcsU0FBUztzQkFEakIsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBOT19FUlJPUlNfU0NIRU1BLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENydWRPcGVyYXRpb25zIH0gZnJvbSAnQGRlY2FmLXRzL2RiLWRlY29yYXRvcnMnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSFRNTDVJbnB1dFR5cGVzIH0gZnJvbSAnQGRlY2FmLXRzL3VpLWRlY29yYXRvcnMnO1xuaW1wb3J0IHtcbiAgSW9uQ2hlY2tib3gsXG4gIElvbklucHV0LFxuICBJb25JdGVtLFxuICBJb25SYWRpbyxcbiAgSW9uUmFkaW9Hcm91cCxcbiAgSW9uU2VsZWN0LFxuICBJb25TZWxlY3RPcHRpb24sXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHtcbiAgQW5ndWxhckZpZWxkRGVmaW5pdGlvbixcbiAgRmllbGRVcGRhdGVNb2RlLFxuICBSYWRpb09wdGlvbixcbiAgU2VsZWN0T3B0aW9uLFxuICBTdHJpbmdPckJvb2xlYW4sXG59IGZyb20gJy4uLy4uL2VuZ2luZS90eXBlcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBEZWNhZkZpZWxkRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9kZWNhZi1maWVsZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ3hDcnVkRm9ybUZpZWxkIH0gZnJvbSAnLi4vLi4vZW5naW5lL05neENydWRGb3JtRmllbGQnO1xuaW1wb3J0IHsgRHluYW1pYyB9IGZyb20gJy4uLy4uL2VuZ2luZS9kZWNvcmF0b3JzJztcblxuLy8gQER5bmFtaWMoKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE5nQ2xhc3MsXG4gICAgSW9uSW5wdXQsXG4gICAgSW9uSXRlbSxcbiAgICBJb25DaGVja2JveCxcbiAgICBJb25SYWRpb0dyb3VwLFxuICAgIElvblJhZGlvLFxuICAgIElvblNlbGVjdCxcbiAgICBUcmFuc2xhdGVQaXBlLFxuICAgIElvblNlbGVjdE9wdGlvbixcbiAgICBEZWNhZkZpZWxkRGlyZWN0aXZlLFxuICBdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnZGVjYWYtY3J1ZC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWNhZi1jcnVkLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2RlY2FmLWNydWQtZmllbGQuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBEZWNhZkNydWRGaWVsZENvbXBvbmVudFxuICBleHRlbmRzIE5neENydWRGb3JtRmllbGRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdFxue1xuICBASW5wdXQoKVxuICB1cGRhdGVPbjogRmllbGRVcGRhdGVNb2RlID0gJ2NoYW5nZSc7XG5cbiAgQFZpZXdDaGlsZCgnY29tcG9uZW50JywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIG92ZXJyaWRlIGNvbXBvbmVudCE6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgb3ZlcnJpZGUgb3BlcmF0aW9uITogQ3J1ZE9wZXJhdGlvbnM7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgb3ZlcnJpZGUgcHJvcHMhOiBBbmd1bGFyRmllbGREZWZpbml0aW9uO1xuXG4gIEBJbnB1dCgpXG4gIG92ZXJyaWRlIG5hbWUhOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgb3B0aW9ucyE6IFNlbGVjdE9wdGlvbltdIHwgUmFkaW9PcHRpb25bXTtcblxuICBASW5wdXQoKVxuICBvdmVycmlkZSBmb3JtR3JvdXAhOiBGb3JtR3JvdXA7XG5cbiAgQElucHV0KClcbiAgdHJhbnNsYXRhYmxlOiBTdHJpbmdPckJvb2xlYW4gPSB0cnVlO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzdXBlci5hZnRlclZpZXdJbml0KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uRGVzdHJveSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIub25Jbml0KHRoaXMudXBkYXRlT24pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEhUTUw1SW5wdXRUeXBlczogc3RyaW5nW10gPSBPYmplY3QudmFsdWVzKEhUTUw1SW5wdXRUeXBlcyk7XG59XG4iLCI8bmctY29udGFpbmVyICNjb21wb25lbnQgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgQGlmKHByb3BzLnR5cGUgPT09ICd0ZXh0YXJlYScpIHtcbiAgICA8aW9uLWl0ZW0+XG4gICAgICA8aW9uLXRleHRhcmVhXG4gICAgICAgIFtuZ0NsYXNzXT1cInByb3BzLmNsYXNzTmFtZVwiXG4gICAgICAgIFttb2RlXT1cInByb3BzLm1vZGVcIlxuICAgICAgICBbaGlkZGVuXT1cInByb3BzLmhpZGRlblwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJwcm9wcy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gcHJvcHMucmVxdWlyZWQgOiBudWxsXCJcbiAgICAgICAgW21pbmxlbmd0aF09XCJwcm9wcy5taW5sZW5ndGggIT09IHVuZGVmaW5lZCA/IHByb3BzLm1pbmxlbmd0aCA6IG51bGxcIlxuICAgICAgICBbbWF4bGVuZ3RoXT1cInByb3BzLm1heGxlbmd0aCAhPT0gdW5kZWZpbmVkID8gcHJvcHMubWF4bGVuZ3RoIDogbnVsbFwiXG4gICAgICAgIFtyZWFkb25seV09XCJwcm9wcy5yZWFkb25seSAhPT0gdW5kZWZpbmVkID8gcHJvcHMucmVhZG9ubHkgOiBudWxsXCJcbiAgICAgICAgW2lucHV0bW9kZV09XCJwcm9wcy5pbnB1dG1vZGVcIlxuICAgICAgICBbc3BlbGxjaGVja109XCJwcm9wcy5zcGVsbGNoZWNrXCJcbiAgICAgICAgW3Jvd3NdPVwicHJvcHMucm93c1wiXG4gICAgICAgIFtsYWJlbFBsYWNlbWVudF09XCJwcm9wcy5sYWJlbFBsYWNlbWVudFwiXG4gICAgICAgIFt2YWx1ZV09XCJwcm9wcy52YWx1ZVwiXG4gICAgICAgIFtmaWxsXT1cInByb3BzLmZpbGxcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRhYmxlID8gKHByb3BzLnBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlKSA6IHByb3BzLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJwcm9wcy5uYW1lXCJcbiAgICAgICAgW2xhYmVsXT1cInRyYW5zbGF0YWJsZSA/IChwcm9wcy5sYWJlbCB8IHRyYW5zbGF0ZSkgOiBwcm9wcy5sYWJlbFwiPlxuICAgICAgPC9pb24tdGV4dGFyZWE+XG4gICAgPC9pb24taXRlbT5cbiAgfVxuICBAaWYocHJvcHMudHlwZSA9PT0gJ2NoZWNrYm94Jykge1xuICAgIDxpb24taXRlbSBbZm9ybUNvbnRyb2xOYW1lXT1cInByb3BzLm5hbWVcIj5cbiAgICAgIDxpb24tY2hlY2tib3hcbiAgICAgICAgI2NoZWNrYm94RWxlbWVudFxuICAgICAgICBbbmFtZV09XCJwcm9wcy5uYW1lXCJcbiAgICAgICAgW25nQ2xhc3NdPVwicHJvcHMuY2xhc3NOYW1lXCJcbiAgICAgICAgW21vZGVdPVwicHJvcHMubW9kZVwiXG4gICAgICAgIFtoaWRkZW5dPVwicHJvcHMuaGlkZGVuXCJcbiAgICAgICAgW2xhYmVsUGxhY2VtZW50XT1cInByb3BzLmxhYmVsUGxhY2VtZW50XCJcbiAgICAgICAgW2FsaWdubWVudF09XCJwcm9wcy5hbGlnbm1lbnRcIlxuICAgICAgICBbanVzdGlmeV09XCJwcm9wcy5qdXN0aWZ5XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInByb3BzLmRpc2FibGVkIHx8IHByb3BzLnJlYWRvbmx5XCJcbiAgICAgICAgW2F0dHIuY2hlY2tlZFZhbHVlXT1cInByb3BzLnZhbHVlXCJcbiAgICAgICAgW3ZhbHVlXT1cInByb3BzLnZhbHVlXCJcbiAgICAgICAgW2NoZWNrZWRdPVwicHJvcHMuY2hlY2tlZFwiXG4gICAgICAgIChpb25DaGFuZ2UpPVwicHJvcHMuY2hlY2tlZCA9ICFwcm9wcy5jaGVja2VkXCJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJwcm9wcy5uYW1lXCI+XG4gICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwicHJvcHMubGFiZWwgfCB0cmFuc2xhdGVcIj48L3NwYW4+XG4gICAgICA8L2lvbi1jaGVja2JveD5cbiAgICA8L2lvbi1pdGVtPlxuICB9XG4gIEBlbHNlIGlmKHByb3BzLnR5cGUgPT09ICdyYWRpbycpIHtcbiAgICA8aW9uLXJhZGlvLWdyb3VwIFtuZ0NsYXNzXT1cInByb3BzLmNsYXNzTmFtZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicHJvcHMubmFtZVwiIFtuYW1lXT1cInByb3BzLm5hbWVcIiBbdmFsdWVdPVwicHJvcHMudmFsdWVcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cInJhZGlvLWdyb3VwLWxhYmVsXCI+e3twcm9wcy5sYWJlbCB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cbiAgICAgIEBmb3Iob3B0aW9uIG9mIG9wdGlvbnM7IHRyYWNrIG9wdGlvbi52YWx1ZSkge1xuICAgICAgICA8aW9uLWl0ZW0+XG4gICAgICAgICAgPGlvbi1yYWRpb1xuICAgICAgICAgICAgW21vZGVdPVwicHJvcHMubW9kZVwiXG4gICAgICAgICAgICBbaGlkZGVuXT1cInByb3BzLmhpZGRlblwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwicHJvcHMucmVhZG9ubHkgfHwgcHJvcHMuZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2xhYmVsUGxhY2VtZW50XT1cInByb3BzLmxhYmVsUGxhY2VtZW50XCJcbiAgICAgICAgICAgIFthbGlnbm1lbnRdPVwicHJvcHMuYWxpZ25tZW50XCJcbiAgICAgICAgICAgIFtqdXN0aWZ5XT1cInByb3BzLmp1c3RpZnlcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgICAgPnt7IG9wdGlvbi50ZXh0IHwgdHJhbnNsYXRlIH19PC9pb24tcmFkaW8+XG4gICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICB9XG4gICAgPC9pb24tcmFkaW8tZ3JvdXA+XG4gIH1cbiAgQGVsc2UgaWYocHJvcHMudHlwZSA9PT0gJ3NlbGVjdCcpIHtcbiAgICA8aW9uLWl0ZW0+XG4gICAgICA8aW9uLXNlbGVjdFxuICAgICAgICBbbmFtZV09XCJwcm9wcy5uYW1lXCJcbiAgICAgICAgW25nQ2xhc3NdPVwicHJvcHMuY2xhc3NOYW1lXCJcbiAgICAgICAgW21vZGVdPVwicHJvcHMubW9kZVwiXG4gICAgICAgIFtoaWRkZW5dPVwicHJvcHMuaGlkZGVuXCJcbiAgICAgICAgW2xhYmVsUGxhY2VtZW50XT1cInByb3BzLmxhYmVsUGxhY2VtZW50XCJcbiAgICAgICAgW2NhbmNlbFRleHRdPVwicHJvcHMuY2FuY2VsVGV4dCB8ICB0cmFuc2xhdGVcIlxuICAgICAgICBbbGFiZWxdPVwidHJhbnNsYXRhYmxlID8gKHByb3BzLmxhYmVsIHwgdHJhbnNsYXRlKSA6IHByb3BzLmxhYmVsXCJcbiAgICAgICAgW3ZhbHVlXT1cInByb3BzLnZhbHVlXCJcbiAgICAgICAgW2ZpbGxdPVwicHJvcHMuZmlsbFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJwcm9wcy5yZWFkb25seSB8fCBwcm9wcy5kaXNhYmxlZFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwcm9wcy5wbGFjZWhvbGRlciB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicHJvcHMubmFtZVwiXG4gICAgICAgIFtpbnRlcmZhY2VdPVwicHJvcHMuaW50ZXJmYWNlXCI+XG4gICAgICAgIEBmb3Iob3B0aW9uIG9mIG9wdGlvbnM7IHRyYWNrIG9wdGlvbi52YWx1ZSkge1xuICAgICAgICAgIDxpb24tc2VsZWN0LW9wdGlvbiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCI+XG4gICAgICAgICAgICB7eyB0cmFuc2xhdGFibGUgPyAob3B0aW9uLnRleHQgfCB0cmFuc2xhdGUpIDogb3B0aW9uLnRleHQgfX1cbiAgICAgICAgICA8L2lvbi1zZWxlY3Qtb3B0aW9uPlxuICAgICAgICB9XG4gICAgICA8L2lvbi1zZWxlY3Q+XG4gICAgPC9pb24taXRlbT5cbiAgfVxuICBAZWxzZSBpZihIVE1MNUlucHV0VHlwZXMuaW5jbHVkZXMocHJvcHMudHlwZSkpIHtcbiAgICA8aW9uLWl0ZW0+XG4gICAgICA8aW9uLWlucHV0XG4gICAgICAgIFtuZ0NsYXNzXT1cInByb3BzLmNsYXNzTmFtZVwiXG4gICAgICAgIFt0eXBlXT1cInByb3BzLnR5cGVcIlxuICAgICAgICBbbW9kZV09XCJwcm9wcy5tb2RlXCJcbiAgICAgICAgW2hpZGRlbl09XCJwcm9wcy5oaWRkZW5cIlxuICAgICAgICBbaW5wdXRtb2RlXT1cInByb3BzLmlucHV0bW9kZVwiXG4gICAgICAgIFthdXRvY29tcGxldGVdPVwicHJvcHMuYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgW3NwZWxsY2hlY2tdPVwicHJvcHMuc3BlbGxjaGVja1wiXG4gICAgICAgIFtsYWJlbFBsYWNlbWVudF09XCJwcm9wcy5sYWJlbFBsYWNlbWVudFwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJwcm9wcy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gcHJvcHMucmVxdWlyZWQgOiBmYWxzZVwiXG4gICAgICAgIFttaW5sZW5ndGhdPVwicHJvcHMubWlubGVuZ3RoICE9PSB1bmRlZmluZWQgPyBwcm9wcy5taW5sZW5ndGggOiBudWxsXCJcbiAgICAgICAgW21heGxlbmd0aF09XCJwcm9wcy5tYXhsZW5ndGggIT09IHVuZGVmaW5lZCA/IHByb3BzLm1heGxlbmd0aCA6IG51bGxcIlxuICAgICAgICBbcmVhZG9ubHldPVwicHJvcHMucmVhZG9ubHkgIT09IHVuZGVmaW5lZCA/IHByb3BzLnJlYWRvbmx5IDogbnVsbFwiXG4gICAgICAgIFttYXhdPVwicHJvcHMubWF4ICE9PSB1bmRlZmluZWQgPyBwcm9wcy5tYXggOiBudWxsXCJcbiAgICAgICAgW21pbl09XCJwcm9wcy5taW4gIT09IHVuZGVmaW5lZCA/IHByb3BzLm1pbiA6IG51bGxcIlxuICAgICAgICBbcGF0dGVybl09XCJwcm9wcy5wYXR0ZXJuICE9PSB1bmRlZmluZWQgPyBwcm9wcy5wYXR0ZXJuIDogbnVsbFwiXG4gICAgICAgIFtzdGVwXT1cInByb3BzLnN0ZXAgIT09IHVuZGVmaW5lZCA/IHByb3BzLnN0ZXAgOiBudWxsXCJcbiAgICAgICAgW3ZhbHVlXT1cInByb3BzLnZhbHVlXCJcbiAgICAgICAgW2ZpbGxdPVwicHJvcHMuZmlsbFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwcm9wcy5wbGFjZWhvbGRlciB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicHJvcHMubmFtZVwiXG4gICAgICAgIFtsYWJlbF09XCJwcm9wcy5sYWJlbCB8IHRyYW5zbGF0ZVwiPlxuICAgICAgPC9pb24taW5wdXQ+XG4gICAgPC9pb24taXRlbT5cbiAgfVxuICBAZWxzZSB7XG4gICAgPGgxPklOVkFMSUQgRklFTEQgVFlQRTwvaDE+XG4gIH1cbiAgQGlmKCghZm9ybUdyb3VwLnByaXN0aW5lIHx8IGZvcm1Hcm91cC50b3VjaGVkKSAmJiAhZm9ybUdyb3VwLnZhbGlkKSB7XG4gICAgPGRpdiBjbGFzcz1cImVycm9yIHVrLWZsZXggdWstZmxleC10b3BcIj5cbiAgICAgIEBmb3IoaXRlbSBvZiBnZXRFcnJvcnMoKTsgdHJhY2sgaXRlbS5rZXkpIHtcbiAgICAgICAgPHA+XG4gICAgICAgICAgPHNwYW4gY29sb3I9XCJkYW5nZXJcIiBjbGFzcz1cInRpIHRpLWFsZXJ0LXRyaWFuZ2xlXCI+PC9zcGFuPlxuICAgICAgICAgIDxzcGFuPnt7aXRlbS5rZXl9fSAtIHt7IHNmKChcImVycm9ycy5cIiArIGl0ZW0ubWVzc2FnZSkgfCB0cmFuc2xhdGUsIHByb3BzW2l0ZW0ua2V5XSkgfX08L3NwYW4+XG4gICAgICAgIDwvcD5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export const CssClasses = {
|
|
2
|
-
BUTTONS_CONTAINER: 'buttons-container',
|
|
3
|
-
};
|
|
4
|
-
export const DefaultFormReactiveOptions = {
|
|
5
|
-
buttons: {
|
|
6
|
-
submit: {
|
|
7
|
-
text: 'Submit',
|
|
8
|
-
},
|
|
9
|
-
clear: {
|
|
10
|
-
text: 'Clear',
|
|
11
|
-
},
|
|
12
|
-
},
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RlY2FmLWNydWQtZm9ybS9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLGlCQUFpQixFQUFFLG1CQUFtQjtDQUN2QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQW9CO0lBQ3pELE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRTtZQUNOLElBQUksRUFBRSxRQUFRO1NBQ2Y7UUFDRCxLQUFLLEVBQUU7WUFDTCxJQUFJLEVBQUUsT0FBTztTQUNkO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3J1ZEZvcm1PcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBDc3NDbGFzc2VzID0ge1xuICBCVVRUT05TX0NPTlRBSU5FUjogJ2J1dHRvbnMtY29udGFpbmVyJyxcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0Rm9ybVJlYWN0aXZlT3B0aW9uczogQ3J1ZEZvcm1PcHRpb25zID0ge1xuICBidXR0b25zOiB7XG4gICAgc3VibWl0OiB7XG4gICAgICB0ZXh0OiAnU3VibWl0JyxcbiAgICB9LFxuICAgIGNsZWFyOiB7XG4gICAgICB0ZXh0OiAnQ2xlYXInLFxuICAgIH0sXG4gIH0sXG59O1xuIl19
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { Component, ElementRef, ViewChild, Input, Output, EventEmitter, } from '@angular/core';
|
|
2
|
-
import { FormGroup, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
-
import { NgxFormService } from '../../engine/NgxFormService';
|
|
4
|
-
import { IonicModule } from '@ionic/angular';
|
|
5
|
-
import { DefaultFormReactiveOptions } from './constants';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@ionic/angular";
|
|
8
|
-
import * as i2 from "@angular/forms";
|
|
9
|
-
export class DecafCrudFormComponent {
|
|
10
|
-
constructor() {
|
|
11
|
-
this.updateOn = 'change';
|
|
12
|
-
this.target = '_self';
|
|
13
|
-
this.method = 'event';
|
|
14
|
-
this.formGroup = new FormGroup({});
|
|
15
|
-
this.submitEvent = new EventEmitter();
|
|
16
|
-
}
|
|
17
|
-
ngAfterViewInit() {
|
|
18
|
-
NgxFormService.formAfterViewInit(this, this.formId);
|
|
19
|
-
}
|
|
20
|
-
ngOnInit() {
|
|
21
|
-
this.options = Object.assign({}, DefaultFormReactiveOptions, this.options || {});
|
|
22
|
-
if (!this.formId)
|
|
23
|
-
this.formId = Date.now().toString();
|
|
24
|
-
}
|
|
25
|
-
ngOnDestroy() {
|
|
26
|
-
NgxFormService.forOnDestroy(this, this.formId);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* @param {Event} event
|
|
30
|
-
*/
|
|
31
|
-
submit(event) {
|
|
32
|
-
event.preventDefault();
|
|
33
|
-
event.stopImmediatePropagation();
|
|
34
|
-
event.stopPropagation();
|
|
35
|
-
if (!this.formGroup.valid)
|
|
36
|
-
return NgxFormService.validateFields(this.formGroup);
|
|
37
|
-
console.log('onSubmit');
|
|
38
|
-
// fix para valores de campos radio e check
|
|
39
|
-
const data = NgxFormService.getFormData(this.formId);
|
|
40
|
-
const submitEvent = {
|
|
41
|
-
data: data,
|
|
42
|
-
};
|
|
43
|
-
if (this.action)
|
|
44
|
-
return this.component.nativeElement.dispatchEvent(new CustomEvent('submit', data));
|
|
45
|
-
this.submitEvent.emit(submitEvent);
|
|
46
|
-
// self.emitEvent({
|
|
47
|
-
// role: button?.role || FORM_BUTTON_ROLES.SUBMIT,
|
|
48
|
-
// data,
|
|
49
|
-
// reset: button?.reset,
|
|
50
|
-
// operation: self.operation,
|
|
51
|
-
// eventName: self.eventName,
|
|
52
|
-
// event,
|
|
53
|
-
// } as FormReactiveSubmitEvent);
|
|
54
|
-
}
|
|
55
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DecafCrudFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
56
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DecafCrudFormComponent, isStandalone: true, selector: "decaf-crud-form", inputs: { updateOn: "updateOn", target: "target", method: "method", options: "options", action: "action", operation: "operation", formGroup: "formGroup", formId: "formId" }, outputs: { submitEvent: "submitEvent" }, viewQueries: [{ propertyName: "component", first: true, predicate: ["reactiveForm"], descendants: true, read: ElementRef }], ngImport: i0, template: "<form #reactiveForm [id]=\"formId\" [formGroup]=\"formGroup\" (submit)=\"submit($event)\" [target]=\"target\">\n <ng-content #formContent></ng-content>\n <div class=\"buttons-container\">\n <ion-button\n type=\"submit\">\n<!-- [shape]=\"buttons?.submit?.shape || 'round'\"-->\n<!-- [color]=\"buttons?.submit?.color || 'primary'\"-->\n<!-- [size]=\"buttons?.submit?.size || 'default'\"-->\n<!-- [fill]=\"buttons?.submit?.fill || 'solid'\"-->\n<!-- [disabled]=\"buttons?.submit?.disabled || false\"-->\n<!-- expand=\"block\"-->\n<!-- [disabled]=\"disableSubmitButtonWhenInvalid ? !form.valid : false\"-->\n @if(options.buttons.submit.icon) {\n <ion-icon [slot]=\"options.buttons.submit.iconSlot\" [name]=\"options.buttons.submit.icon\"></ion-icon>\n }\n {{options.buttons.submit.text}}\n </ion-button>\n @if(options.buttons.clear) {\n <ion-button>\n<!-- type=\"clear\"-->\n<!-- (click)=\"clear($event)\"-->\n<!-- [shape]=\"buttons?.clear?.shape || 'round'\"-->\n<!-- [color]=\"buttons?.clear?.color || 'primary'\"-->\n<!-- [size]=\"buttons?.clear?.size || 'default'\"-->\n<!-- [fill]=\"buttons?.clear?.fill || 'clear'\"-->\n<!-- [disabled]=\"buttons?.clear?.disabled || false\"-->\n<!-- expand=\"block\"-->\n @if(options.buttons.clear?.icon) {\n <ion-icon [slot]=\"options.buttons.clear?.iconSlot\" [name]=\"options.buttons.clear?.icon\"></ion-icon>\n }\n {{options.buttons.clear?.text}}\n </ion-button>\n }\n </div>\n</form>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] }); }
|
|
57
|
-
}
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DecafCrudFormComponent, decorators: [{
|
|
59
|
-
type: Component,
|
|
60
|
-
args: [{ standalone: true, selector: 'decaf-crud-form', imports: [IonicModule, ReactiveFormsModule], template: "<form #reactiveForm [id]=\"formId\" [formGroup]=\"formGroup\" (submit)=\"submit($event)\" [target]=\"target\">\n <ng-content #formContent></ng-content>\n <div class=\"buttons-container\">\n <ion-button\n type=\"submit\">\n<!-- [shape]=\"buttons?.submit?.shape || 'round'\"-->\n<!-- [color]=\"buttons?.submit?.color || 'primary'\"-->\n<!-- [size]=\"buttons?.submit?.size || 'default'\"-->\n<!-- [fill]=\"buttons?.submit?.fill || 'solid'\"-->\n<!-- [disabled]=\"buttons?.submit?.disabled || false\"-->\n<!-- expand=\"block\"-->\n<!-- [disabled]=\"disableSubmitButtonWhenInvalid ? !form.valid : false\"-->\n @if(options.buttons.submit.icon) {\n <ion-icon [slot]=\"options.buttons.submit.iconSlot\" [name]=\"options.buttons.submit.icon\"></ion-icon>\n }\n {{options.buttons.submit.text}}\n </ion-button>\n @if(options.buttons.clear) {\n <ion-button>\n<!-- type=\"clear\"-->\n<!-- (click)=\"clear($event)\"-->\n<!-- [shape]=\"buttons?.clear?.shape || 'round'\"-->\n<!-- [color]=\"buttons?.clear?.color || 'primary'\"-->\n<!-- [size]=\"buttons?.clear?.size || 'default'\"-->\n<!-- [fill]=\"buttons?.clear?.fill || 'clear'\"-->\n<!-- [disabled]=\"buttons?.clear?.disabled || false\"-->\n<!-- expand=\"block\"-->\n @if(options.buttons.clear?.icon) {\n <ion-icon [slot]=\"options.buttons.clear?.iconSlot\" [name]=\"options.buttons.clear?.icon\"></ion-icon>\n }\n {{options.buttons.clear?.text}}\n </ion-button>\n }\n </div>\n</form>\n" }]
|
|
61
|
-
}], propDecorators: { updateOn: [{
|
|
62
|
-
type: Input
|
|
63
|
-
}], component: [{
|
|
64
|
-
type: ViewChild,
|
|
65
|
-
args: ['reactiveForm', { static: false, read: ElementRef }]
|
|
66
|
-
}], target: [{
|
|
67
|
-
type: Input
|
|
68
|
-
}], method: [{
|
|
69
|
-
type: Input
|
|
70
|
-
}], options: [{
|
|
71
|
-
type: Input
|
|
72
|
-
}], action: [{
|
|
73
|
-
type: Input
|
|
74
|
-
}], operation: [{
|
|
75
|
-
type: Input,
|
|
76
|
-
args: [{ required: true }]
|
|
77
|
-
}], formGroup: [{
|
|
78
|
-
type: Input
|
|
79
|
-
}], formId: [{
|
|
80
|
-
type: Input
|
|
81
|
-
}], submitEvent: [{
|
|
82
|
-
type: Output
|
|
83
|
-
}] } });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjYWYtY3J1ZC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kZWNhZi1jcnVkLWZvcm0vZGVjYWYtY3J1ZC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kZWNhZi1jcnVkLWZvcm0vZGVjYWYtY3J1ZC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUVWLFNBQVMsRUFFVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksR0FFYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUk3QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUFVekQsTUFBTSxPQUFPLHNCQUFzQjtJQVJuQztRQVlFLGFBQVEsR0FBb0IsUUFBUSxDQUFDO1FBTXJDLFdBQU0sR0FBbUIsT0FBTyxDQUFDO1FBR2pDLFdBQU0sR0FBNkIsT0FBTyxDQUFDO1FBWTNDLGNBQVMsR0FBYyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQU16QyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUEyQixDQUFDO0tBcUQzRDtJQW5EQyxlQUFlO1FBQ2IsY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQzFCLEVBQUUsRUFDRiwwQkFBMEIsRUFDMUIsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQ25CLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRUQsV0FBVztRQUNULGNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsS0FBa0I7UUFDdkIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2pDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLO1lBQ3ZCLE9BQU8sY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV4QiwyQ0FBMkM7UUFDM0MsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFckQsTUFBTSxXQUFXLEdBQTRCO1lBQzNDLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLE1BQU07WUFDYixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FDL0MsSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUNoQyxDQUFDO1FBRUosSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkMsbUJBQW1CO1FBQ25CLG9EQUFvRDtRQUNwRCxVQUFVO1FBQ1YsMEJBQTBCO1FBQzFCLCtCQUErQjtRQUMvQiwrQkFBK0I7UUFDL0IsV0FBVztRQUNYLGlDQUFpQztJQUNuQyxDQUFDOytHQW5GVSxzQkFBc0I7bUdBQXRCLHNCQUFzQix3WEFNaUIsVUFBVSw2QkNsQzlELDRsREFtQ0EseUREVFksV0FBVyxtY0FBRSxtQkFBbUI7OzRGQUUvQixzQkFBc0I7a0JBUmxDLFNBQVM7aUNBQ0ksSUFBSSxZQUVOLGlCQUFpQixXQUdsQixDQUFDLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQzs4QkFNM0MsUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSTlELE1BQU07c0JBREwsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUl6QixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sTUFBTTtzQkFETCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIEFmdGVyVmlld0luaXQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1FbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBOZ3hGb3JtU2VydmljZSB9IGZyb20gJy4uLy4uL2VuZ2luZS9OZ3hGb3JtU2VydmljZSc7XG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IEZpZWxkVXBkYXRlTW9kZSwgSFRNTEZvcm1UYXJnZXQgfSBmcm9tICcuLi8uLi9lbmdpbmUnO1xuaW1wb3J0IHsgQ3J1ZEZvcm1PcHRpb25zLCBGb3JtUmVhY3RpdmVTdWJtaXRFdmVudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgQ3J1ZE9wZXJhdGlvbnMgfSBmcm9tICdAZGVjYWYtdHMvZGItZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBEZWZhdWx0Rm9ybVJlYWN0aXZlT3B0aW9ucyB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnZGVjYWYtY3J1ZC1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RlY2FmLWNydWQtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RlY2FmLWNydWQtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbSW9uaWNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBEZWNhZkNydWRGb3JtQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBGb3JtRWxlbWVudCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpXG4gIHVwZGF0ZU9uOiBGaWVsZFVwZGF0ZU1vZGUgPSAnY2hhbmdlJztcblxuICBAVmlld0NoaWxkKCdyZWFjdGl2ZUZvcm0nLCB7IHN0YXRpYzogZmFsc2UsIHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgY29tcG9uZW50ITogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKVxuICB0YXJnZXQ6IEhUTUxGb3JtVGFyZ2V0ID0gJ19zZWxmJztcblxuICBASW5wdXQoKVxuICBtZXRob2Q6ICdnZXQnIHwgJ3Bvc3QnIHwgJ2V2ZW50JyA9ICdldmVudCc7XG5cbiAgQElucHV0KClcbiAgb3B0aW9ucyE6IENydWRGb3JtT3B0aW9ucztcblxuICBASW5wdXQoKVxuICBhY3Rpb24/OiBzdHJpbmc7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgb3BlcmF0aW9uITogQ3J1ZE9wZXJhdGlvbnM7XG5cbiAgQElucHV0KClcbiAgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcblxuICBASW5wdXQoKVxuICBmb3JtSWQhOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpXG4gIHN1Ym1pdEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtUmVhY3RpdmVTdWJtaXRFdmVudD4oKTtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgTmd4Rm9ybVNlcnZpY2UuZm9ybUFmdGVyVmlld0luaXQodGhpcywgdGhpcy5mb3JtSWQpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgRGVmYXVsdEZvcm1SZWFjdGl2ZU9wdGlvbnMsXG4gICAgICB0aGlzLm9wdGlvbnMgfHwge30sXG4gICAgKTtcbiAgICBpZiAoIXRoaXMuZm9ybUlkKSB0aGlzLmZvcm1JZCA9IERhdGUubm93KCkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIE5neEZvcm1TZXJ2aWNlLmZvck9uRGVzdHJveSh0aGlzLCB0aGlzLmZvcm1JZCk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtICB7RXZlbnR9IGV2ZW50XG4gICAqL1xuICBzdWJtaXQoZXZlbnQ6IFN1Ym1pdEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICghdGhpcy5mb3JtR3JvdXAudmFsaWQpXG4gICAgICByZXR1cm4gTmd4Rm9ybVNlcnZpY2UudmFsaWRhdGVGaWVsZHModGhpcy5mb3JtR3JvdXApO1xuICAgIGNvbnNvbGUubG9nKCdvblN1Ym1pdCcpO1xuXG4gICAgLy8gZml4IHBhcmEgdmFsb3JlcyBkZSBjYW1wb3MgcmFkaW8gZSBjaGVja1xuICAgIGNvbnN0IGRhdGEgPSBOZ3hGb3JtU2VydmljZS5nZXRGb3JtRGF0YSh0aGlzLmZvcm1JZCk7XG5cbiAgICBjb25zdCBzdWJtaXRFdmVudDogRm9ybVJlYWN0aXZlU3VibWl0RXZlbnQgPSB7XG4gICAgICBkYXRhOiBkYXRhLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5hY3Rpb24pXG4gICAgICByZXR1cm4gdGhpcy5jb21wb25lbnQubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoJ3N1Ym1pdCcsIGRhdGEpLFxuICAgICAgKTtcblxuICAgIHRoaXMuc3VibWl0RXZlbnQuZW1pdChzdWJtaXRFdmVudCk7XG4gICAgLy8gc2VsZi5lbWl0RXZlbnQoe1xuICAgIC8vICAgcm9sZTogYnV0dG9uPy5yb2xlIHx8IEZPUk1fQlVUVE9OX1JPTEVTLlNVQk1JVCxcbiAgICAvLyAgIGRhdGEsXG4gICAgLy8gICByZXNldDogYnV0dG9uPy5yZXNldCxcbiAgICAvLyAgIG9wZXJhdGlvbjogc2VsZi5vcGVyYXRpb24sXG4gICAgLy8gICBldmVudE5hbWU6IHNlbGYuZXZlbnROYW1lLFxuICAgIC8vICAgZXZlbnQsXG4gICAgLy8gfSBhcyBGb3JtUmVhY3RpdmVTdWJtaXRFdmVudCk7XG4gIH1cbn1cbiIsIjxmb3JtICNyZWFjdGl2ZUZvcm0gW2lkXT1cImZvcm1JZFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgKHN1Ym1pdCk9XCJzdWJtaXQoJGV2ZW50KVwiIFt0YXJnZXRdPVwidGFyZ2V0XCI+XG4gIDxuZy1jb250ZW50ICNmb3JtQ29udGVudD48L25nLWNvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJidXR0b25zLWNvbnRhaW5lclwiPlxuICAgIDxpb24tYnV0dG9uXG4gICAgICB0eXBlPVwic3VibWl0XCI+XG48IS0tICAgICAgW3NoYXBlXT1cImJ1dHRvbnM/LnN1Ym1pdD8uc2hhcGUgfHwgJ3JvdW5kJ1wiLS0+XG48IS0tICAgICAgW2NvbG9yXT1cImJ1dHRvbnM/LnN1Ym1pdD8uY29sb3IgfHwgJ3ByaW1hcnknXCItLT5cbjwhLS0gICAgICBbc2l6ZV09XCJidXR0b25zPy5zdWJtaXQ/LnNpemUgfHwgJ2RlZmF1bHQnXCItLT5cbjwhLS0gICAgICBbZmlsbF09XCJidXR0b25zPy5zdWJtaXQ/LmZpbGwgfHwgJ3NvbGlkJ1wiLS0+XG48IS0tICAgICAgW2Rpc2FibGVkXT1cImJ1dHRvbnM/LnN1Ym1pdD8uZGlzYWJsZWQgfHwgZmFsc2VcIi0tPlxuPCEtLSAgICAgIGV4cGFuZD1cImJsb2NrXCItLT5cbjwhLS0gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZVN1Ym1pdEJ1dHRvbldoZW5JbnZhbGlkID8gIWZvcm0udmFsaWQgOiBmYWxzZVwiLS0+XG4gICAgICBAaWYob3B0aW9ucy5idXR0b25zLnN1Ym1pdC5pY29uKSB7XG4gICAgICAgIDxpb24taWNvbiBbc2xvdF09XCJvcHRpb25zLmJ1dHRvbnMuc3VibWl0Lmljb25TbG90XCIgW25hbWVdPVwib3B0aW9ucy5idXR0b25zLnN1Ym1pdC5pY29uXCI+PC9pb24taWNvbj5cbiAgICAgIH1cbiAgICAgIHt7b3B0aW9ucy5idXR0b25zLnN1Ym1pdC50ZXh0fX1cbiAgICA8L2lvbi1idXR0b24+XG4gICAgQGlmKG9wdGlvbnMuYnV0dG9ucy5jbGVhcikge1xuICAgICAgPGlvbi1idXR0b24+XG48IS0tICAgICAgICB0eXBlPVwiY2xlYXJcIi0tPlxuPCEtLSAgICAgICAgICAgIChjbGljayk9XCJjbGVhcigkZXZlbnQpXCItLT5cbjwhLS0gICAgICAgICAgICBbc2hhcGVdPVwiYnV0dG9ucz8uY2xlYXI/LnNoYXBlIHx8ICdyb3VuZCdcIi0tPlxuPCEtLSAgICAgICAgICAgIFtjb2xvcl09XCJidXR0b25zPy5jbGVhcj8uY29sb3IgfHwgJ3ByaW1hcnknXCItLT5cbjwhLS0gICAgICAgICAgICBbc2l6ZV09XCJidXR0b25zPy5jbGVhcj8uc2l6ZSB8fCAnZGVmYXVsdCdcIi0tPlxuPCEtLSAgICAgICAgICAgIFtmaWxsXT1cImJ1dHRvbnM/LmNsZWFyPy5maWxsIHx8ICdjbGVhcidcIi0tPlxuPCEtLSAgICAgICAgICAgIFtkaXNhYmxlZF09XCJidXR0b25zPy5jbGVhcj8uZGlzYWJsZWQgfHwgZmFsc2VcIi0tPlxuPCEtLSAgICAgICAgICAgIGV4cGFuZD1cImJsb2NrXCItLT5cbiAgICAgICAgQGlmKG9wdGlvbnMuYnV0dG9ucy5jbGVhcj8uaWNvbikge1xuICAgICAgICAgIDxpb24taWNvbiBbc2xvdF09XCJvcHRpb25zLmJ1dHRvbnMuY2xlYXI/Lmljb25TbG90XCIgW25hbWVdPVwib3B0aW9ucy5idXR0b25zLmNsZWFyPy5pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgfVxuICAgICAgICB7e29wdGlvbnMuYnV0dG9ucy5jbGVhcj8udGV4dH19XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgfVxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZGVjYWYtY3J1ZC1mb3JtL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEZvcm1SZWFjdGl2ZVN1Ym1pdEV2ZW50IHtcbiAgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3J1ZEZvcm1PcHRpb25zIHtcbiAgYnV0dG9uczoge1xuICAgIHN1Ym1pdDoge1xuICAgICAgaWNvbj86IHN0cmluZztcbiAgICAgIGljb25TbG90PzogJ3N0YXJ0JyB8ICdlbmQnO1xuICAgICAgdGV4dD86IHN0cmluZztcbiAgICB9O1xuICAgIGNsZWFyPzoge1xuICAgICAgaWNvbj86IHN0cmluZztcbiAgICAgIGljb25TbG90PzogJ3N0YXJ0JyB8ICdlbmQnO1xuICAgICAgdGV4dD86IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuIl19
|
package/dist/for-angular/esm2022/components/decaf-model-renderer/decaf-model-renderer.component.mjs
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Component, Input, ViewContainerRef, } from '@angular/core';
|
|
2
|
-
import { Model } from '@decaf-ts/decorator-validation';
|
|
3
|
-
import { IonSkeletonText } from '@ionic/angular/standalone';
|
|
4
|
-
import { NgComponentOutlet } from '@angular/common';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class DecafModelRendererComponent {
|
|
7
|
-
//
|
|
8
|
-
// @ViewChild('componentElementContainer', {
|
|
9
|
-
// static: true,
|
|
10
|
-
// read: ViewContainerRef,
|
|
11
|
-
// })
|
|
12
|
-
// componentElementContainer!: ViewContainerRef;
|
|
13
|
-
constructor(vcr) {
|
|
14
|
-
this.vcr = vcr;
|
|
15
|
-
}
|
|
16
|
-
ngOnInit() {
|
|
17
|
-
this.model =
|
|
18
|
-
typeof this.model === 'string'
|
|
19
|
-
? Model.build({}, JSON.parse(this.model))
|
|
20
|
-
: this.model;
|
|
21
|
-
// this.output = RenderingEngine.render(this.model as unknown as Model);
|
|
22
|
-
// this.component = NgxRenderingEngine.components(this.output.tag);
|
|
23
|
-
// this.props = this.output.props;
|
|
24
|
-
// this.content = this.output.children?.map((child) => {
|
|
25
|
-
// return this.vcr.createEmbeddedView();
|
|
26
|
-
// });
|
|
27
|
-
}
|
|
28
|
-
ngOnChanges(changes) {
|
|
29
|
-
if (changes['model']) {
|
|
30
|
-
const { currentValue, previousValue, firstChange } = changes['model'];
|
|
31
|
-
}
|
|
32
|
-
if (changes['details']) {
|
|
33
|
-
const { currentValue, previousValue, firstChange } = changes['details'];
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DecafModelRendererComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DecafModelRendererComponent, isStandalone: true, selector: "decaf-model-renderer", inputs: { model: "model" }, usesOnChanges: true, ngImport: i0, template: "<!--<div #loadingElement>-->\n<!-- <ion-skeleton-text [animated]=\"true\" style=\"width: 100%;\"></ion-skeleton-text>-->\n<!--</div>-->\n@if (output?.children?.length){\n @for (item of output.children; track item.props.name){\n <ng-template>{{item.props.name}}</ng-template>\n }\n}\n<ng-container *ngComponentOutlet=\"component;\n inputs: props;\n content: content;\">\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }] }); }
|
|
38
|
-
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DecafModelRendererComponent, decorators: [{
|
|
40
|
-
type: Component,
|
|
41
|
-
args: [{ standalone: true, imports: [IonSkeletonText, NgComponentOutlet], selector: 'decaf-model-renderer', template: "<!--<div #loadingElement>-->\n<!-- <ion-skeleton-text [animated]=\"true\" style=\"width: 100%;\"></ion-skeleton-text>-->\n<!--</div>-->\n@if (output?.children?.length){\n @for (item of output.children; track item.props.name){\n <ng-template>{{item.props.name}}</ng-template>\n }\n}\n<ng-container *ngComponentOutlet=\"component;\n inputs: props;\n content: content;\">\n</ng-container>\n" }]
|
|
42
|
-
}], ctorParameters: () => [{ type: i0.ViewContainerRef }], propDecorators: { model: [{
|
|
43
|
-
type: Input,
|
|
44
|
-
args: [{ required: true }]
|
|
45
|
-
}] } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjYWYtbW9kZWwtcmVuZGVyZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RlY2FmLW1vZGVsLXJlbmRlcmVyL2RlY2FmLW1vZGVsLXJlbmRlcmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kZWNhZi1tb2RlbC1yZW5kZXJlci9kZWNhZi1tb2RlbC1yZW5kZXJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFJTCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFVcEQsTUFBTSxPQUFPLDJCQUEyQjtJQWF0QyxFQUFFO0lBQ0YsNENBQTRDO0lBQzVDLGtCQUFrQjtJQUNsQiw0QkFBNEI7SUFDNUIsS0FBSztJQUNMLGdEQUFnRDtJQUVoRCxZQUFvQixHQUFxQjtRQUFyQixRQUFHLEdBQUgsR0FBRyxDQUFrQjtJQUFHLENBQUM7SUFFN0MsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLO1lBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVE7Z0JBQzVCLENBQUMsQ0FBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBTztnQkFDaEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDakIsd0VBQXdFO1FBQ3hFLG1FQUFtRTtRQUNuRSxrQ0FBa0M7UUFDbEMsd0RBQXdEO1FBQ3hELDBDQUEwQztRQUMxQyxNQUFNO0lBQ1IsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN2QixNQUFNLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUUsQ0FBQztJQUNILENBQUM7K0dBMUNVLDJCQUEyQjttR0FBM0IsMkJBQTJCLGlJQ3RCeEMsNmNBWUEsMERESTZCLGlCQUFpQjs7NEZBTWpDLDJCQUEyQjtrQkFSdkMsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLENBQUMsWUFFbkMsc0JBQXNCO3FGQVFoQyxLQUFLO3NCQURKLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGREZWZpbml0aW9uIH0gZnJvbSAnQGRlY2FmLXRzL3VpLWRlY29yYXRvcnMnO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tICdAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb24nO1xuaW1wb3J0IHsgSW9uU2tlbGV0b25UZXh0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBBbmd1bGFyRmllbGREZWZpbml0aW9uIH0gZnJvbSAnLi4vLi4vZW5naW5lJztcbmltcG9ydCB7IE5nQ29tcG9uZW50T3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJb25Ta2VsZXRvblRleHQsIE5nQ29tcG9uZW50T3V0bGV0XSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdkZWNhZi1tb2RlbC1yZW5kZXJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWNhZi1tb2RlbC1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kZWNhZi1tb2RlbC1yZW5kZXJlci5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIERlY2FmTW9kZWxSZW5kZXJlckNvbXBvbmVudDxNIGV4dGVuZHMgTW9kZWw+XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXNcbntcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgbW9kZWwhOiBNIHwgc3RyaW5nO1xuXG4gIGNvbXBvbmVudCE6IHVua25vd247XG5cbiAgcHJvcHMhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICBjb250ZW50ITogeyBpZDogc3RyaW5nIH1bXVtdO1xuXG4gIG91dHB1dCE6IEZpZWxkRGVmaW5pdGlvbjxBbmd1bGFyRmllbGREZWZpbml0aW9uPjtcbiAgLy9cbiAgLy8gQFZpZXdDaGlsZCgnY29tcG9uZW50RWxlbWVudENvbnRhaW5lcicsIHtcbiAgLy8gICBzdGF0aWM6IHRydWUsXG4gIC8vICAgcmVhZDogVmlld0NvbnRhaW5lclJlZixcbiAgLy8gfSlcbiAgLy8gY29tcG9uZW50RWxlbWVudENvbnRhaW5lciE6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2Y3I6IFZpZXdDb250YWluZXJSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbCA9XG4gICAgICB0eXBlb2YgdGhpcy5tb2RlbCA9PT0gJ3N0cmluZydcbiAgICAgICAgPyAoTW9kZWwuYnVpbGQoe30sIEpTT04ucGFyc2UodGhpcy5tb2RlbCkpIGFzIE0pXG4gICAgICAgIDogdGhpcy5tb2RlbDtcbiAgICAvLyB0aGlzLm91dHB1dCA9IFJlbmRlcmluZ0VuZ2luZS5yZW5kZXIodGhpcy5tb2RlbCBhcyB1bmtub3duIGFzIE1vZGVsKTtcbiAgICAvLyB0aGlzLmNvbXBvbmVudCA9IE5neFJlbmRlcmluZ0VuZ2luZS5jb21wb25lbnRzKHRoaXMub3V0cHV0LnRhZyk7XG4gICAgLy8gdGhpcy5wcm9wcyA9IHRoaXMub3V0cHV0LnByb3BzO1xuICAgIC8vIHRoaXMuY29udGVudCA9IHRoaXMub3V0cHV0LmNoaWxkcmVuPy5tYXAoKGNoaWxkKSA9PiB7XG4gICAgLy8gICByZXR1cm4gdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KCk7XG4gICAgLy8gfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ21vZGVsJ10pIHtcbiAgICAgIGNvbnN0IHsgY3VycmVudFZhbHVlLCBwcmV2aW91c1ZhbHVlLCBmaXJzdENoYW5nZSB9ID0gY2hhbmdlc1snbW9kZWwnXTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2RldGFpbHMnXSkge1xuICAgICAgY29uc3QgeyBjdXJyZW50VmFsdWUsIHByZXZpb3VzVmFsdWUsIGZpcnN0Q2hhbmdlIH0gPSBjaGFuZ2VzWydkZXRhaWxzJ107XG4gICAgfVxuICB9XG4gIC8vIC8vXG4gIC8vIG5nT25EZXN0cm95KCk6IHZvaWQge31cbn1cbiIsIjwhLS08ZGl2ICNsb2FkaW5nRWxlbWVudD4tLT5cbjwhLS0gIDxpb24tc2tlbGV0b24tdGV4dCBbYW5pbWF0ZWRdPVwidHJ1ZVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+PC9pb24tc2tlbGV0b24tdGV4dD4tLT5cbjwhLS08L2Rpdj4tLT5cbkBpZiAob3V0cHV0Py5jaGlsZHJlbj8ubGVuZ3RoKXtcbiAgQGZvciAoaXRlbSBvZiBvdXRwdXQuY2hpbGRyZW47IHRyYWNrIGl0ZW0ucHJvcHMubmFtZSl7XG4gICAgPG5nLXRlbXBsYXRlPnt7aXRlbS5wcm9wcy5uYW1lfX08L25nLXRlbXBsYXRlPlxuICB9XG59XG48bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cImNvbXBvbmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dHM6IHByb3BzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGNvbnRlbnQ7XCI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Directive, HostBinding, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class DecafFieldDirective {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.name = this.fieldName;
|
|
6
|
-
}
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DecafFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DecafFieldDirective, isStandalone: true, selector: "[appDecafField]", inputs: { fieldName: ["appDecafField", "fieldName"] }, host: { properties: { "#name": "this.name" } }, ngImport: i0 }); }
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DecafFieldDirective, decorators: [{
|
|
11
|
-
type: Directive,
|
|
12
|
-
args: [{
|
|
13
|
-
selector: '[appDecafField]',
|
|
14
|
-
standalone: true,
|
|
15
|
-
}]
|
|
16
|
-
}], ctorParameters: () => [], propDecorators: { fieldName: [{
|
|
17
|
-
type: Input,
|
|
18
|
-
args: [{ alias: 'appDecafField' }]
|
|
19
|
-
}], name: [{
|
|
20
|
-
type: HostBinding,
|
|
21
|
-
args: ['#name']
|
|
22
|
-
}] } });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjYWYtZmllbGQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9kaXJlY3RpdmVzL2RlY2FmLWZpZWxkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTlELE1BQU0sT0FBTyxtQkFBbUI7SUFLOUI7UUFDRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDN0IsQ0FBQzsrR0FQVSxtQkFBbUI7bUdBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7d0RBRW9DLFNBQVM7c0JBQTNDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFO2dCQUVYLElBQUk7c0JBQXpCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thcHBEZWNhZkZpZWxkXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIERlY2FmRmllbGREaXJlY3RpdmUge1xuICBASW5wdXQoeyBhbGlhczogJ2FwcERlY2FmRmllbGQnIH0pIGZpZWxkTmFtZSE6IHN0cmluZztcblxuICBASG9zdEJpbmRpbmcoJyNuYW1lJykgbmFtZSE6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLm5hbWUgPSB0aGlzLmZpZWxkTmFtZTtcbiAgfVxufVxuIl19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export class DynamicModule {
|
|
2
|
-
}
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY01vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZW5naW5lL0R5bmFtaWNNb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFnQixhQUFhO0NBQUciLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgYWJzdHJhY3QgY2xhc3MgRHluYW1pY01vZHVsZSB7fVxuIl19
|