@decaf-ts/for-angular 0.0.10 → 0.0.12
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/dist/for-angular/cli/cli-module.d.ts +22 -0
- package/dist/for-angular/cli/cli-module.d.ts.map +1 -0
- package/dist/for-angular/cli/cli-module.js +131 -0
- package/dist/for-angular/cli/cli-module.js.map +1 -0
- package/dist/{components → lib/components}/component-renderer/component-renderer.component.d.ts +1 -0
- package/dist/lib/components/component-renderer/component-renderer.component.d.ts.map +1 -0
- package/dist/{components → lib/components}/crud-field/crud-field.component.d.ts +1 -0
- package/dist/lib/components/crud-field/crud-field.component.d.ts.map +1 -0
- package/dist/{components → lib/components}/crud-form/constants.d.ts +1 -0
- package/dist/lib/components/crud-form/constants.d.ts.map +1 -0
- package/dist/{components → lib/components}/crud-form/crud-form.component.d.ts +1 -0
- package/dist/lib/components/crud-form/crud-form.component.d.ts.map +1 -0
- package/dist/{components → lib/components}/crud-form/types.d.ts +1 -0
- package/dist/lib/components/crud-form/types.d.ts.map +1 -0
- package/dist/{components → lib/components}/empty-state/empty-state.component.d.ts +1 -0
- package/dist/lib/components/empty-state/empty-state.component.d.ts.map +1 -0
- package/dist/{components → lib/components}/fieldset/fieldset.component.d.ts +1 -0
- package/dist/lib/components/fieldset/fieldset.component.d.ts.map +1 -0
- package/dist/{components → lib/components}/filter/filter.component.d.ts +1 -0
- package/dist/lib/components/filter/filter.component.d.ts.map +1 -0
- package/dist/{components → lib/components}/for-angular-components.module.d.ts +1 -0
- package/dist/lib/components/for-angular-components.module.d.ts.map +1 -0
- package/dist/{components → lib/components}/index.d.ts +1 -0
- package/dist/lib/components/index.d.ts.map +1 -0
- package/dist/{components → lib/components}/layout/layout.component.d.ts +1 -0
- package/dist/lib/components/layout/layout.component.d.ts.map +1 -0
- package/dist/{components → lib/components}/list/constants.d.ts +1 -0
- package/dist/lib/components/list/constants.d.ts.map +1 -0
- package/dist/{components → lib/components}/list/list.component.d.ts +1 -0
- package/dist/lib/components/list/list.component.d.ts.map +1 -0
- package/dist/{components → lib/components}/list-item/list-item.component.d.ts +1 -0
- package/dist/lib/components/list-item/list-item.component.d.ts.map +1 -0
- package/dist/{components → lib/components}/model-renderer/model-renderer.component.d.ts +1 -0
- package/dist/lib/components/model-renderer/model-renderer.component.d.ts.map +1 -0
- package/dist/{components → lib/components}/pagination/constants.d.ts +1 -0
- package/dist/lib/components/pagination/constants.d.ts.map +1 -0
- package/dist/{components → lib/components}/pagination/pagination.component.d.ts +1 -0
- package/dist/lib/components/pagination/pagination.component.d.ts.map +1 -0
- package/dist/{components → lib/components}/searchbar/searchbar.component.d.ts +1 -0
- package/dist/lib/components/searchbar/searchbar.component.d.ts.map +1 -0
- package/dist/lib/decaf-ts-for-angular.d.ts.map +1 -0
- package/dist/{directives → lib/directives}/collapsable.directive.d.ts +1 -0
- package/dist/lib/directives/collapsable.directive.d.ts.map +1 -0
- package/dist/{directives → lib/directives}/index.d.ts +1 -0
- package/dist/lib/directives/index.d.ts.map +1 -0
- package/dist/{engine → lib/engine}/DynamicModule.d.ts +1 -0
- package/dist/lib/engine/DynamicModule.d.ts.map +1 -0
- package/dist/{engine → lib/engine}/NgxBaseComponent.d.ts +1 -0
- package/dist/lib/engine/NgxBaseComponent.d.ts.map +1 -0
- package/dist/{engine → lib/engine}/NgxCrudFormField.d.ts +1 -0
- package/dist/lib/engine/NgxCrudFormField.d.ts.map +1 -0
- package/dist/{engine → lib/engine}/NgxFormService.d.ts +1 -0
- package/dist/lib/engine/NgxFormService.d.ts.map +1 -0
- package/dist/{engine → lib/engine}/NgxRenderingEngine.d.ts +1 -0
- package/dist/lib/engine/NgxRenderingEngine.d.ts.map +1 -0
- package/dist/{engine → lib/engine}/NgxRenderingEngine2.d.ts +1 -0
- package/dist/lib/engine/NgxRenderingEngine2.d.ts.map +1 -0
- package/dist/{engine → lib/engine}/ValidatorFactory.d.ts +1 -0
- package/dist/lib/engine/ValidatorFactory.d.ts.map +1 -0
- package/dist/{engine → lib/engine}/constants.d.ts +1 -0
- package/dist/lib/engine/constants.d.ts.map +1 -0
- package/dist/{engine → lib/engine}/decorators.d.ts +1 -0
- package/dist/lib/engine/decorators.d.ts.map +1 -0
- package/dist/{engine → lib/engine}/index.d.ts +1 -0
- package/dist/lib/engine/index.d.ts.map +1 -0
- package/dist/{engine → lib/engine}/types.d.ts +1 -0
- package/dist/lib/engine/types.d.ts.map +1 -0
- package/dist/lib/esm2022/components/component-renderer/component-renderer.component.mjs +359 -0
- package/dist/lib/esm2022/components/crud-field/crud-field.component.mjs +456 -0
- package/dist/lib/esm2022/components/crud-form/constants.mjs +14 -0
- package/dist/lib/esm2022/components/crud-form/crud-form.component.mjs +272 -0
- package/dist/lib/esm2022/components/crud-form/types.mjs +2 -0
- package/dist/lib/esm2022/components/empty-state/empty-state.component.mjs +410 -0
- package/dist/lib/esm2022/components/fieldset/fieldset.component.mjs +250 -0
- package/dist/lib/esm2022/components/filter/filter.component.mjs +906 -0
- package/dist/lib/esm2022/components/for-angular-components.module.mjs +72 -0
- package/dist/lib/esm2022/components/index.mjs +20 -0
- package/dist/lib/esm2022/components/layout/layout.component.mjs +245 -0
- package/dist/lib/esm2022/components/list/constants.mjs +6 -0
- package/dist/lib/esm2022/components/list/list.component.mjs +1405 -0
- package/dist/lib/esm2022/components/list-item/list-item.component.mjs +612 -0
- package/dist/lib/esm2022/components/model-renderer/model-renderer.component.mjs +182 -0
- package/dist/lib/esm2022/components/pagination/constants.mjs +2 -0
- package/dist/lib/esm2022/components/pagination/pagination.component.mjs +364 -0
- package/dist/lib/esm2022/components/searchbar/searchbar.component.mjs +503 -0
- package/dist/lib/esm2022/decaf-ts-for-angular.mjs +5 -0
- package/dist/lib/esm2022/directives/collapsable.directive.mjs +28 -0
- package/dist/lib/esm2022/directives/index.mjs +2 -0
- package/dist/lib/esm2022/engine/DynamicModule.mjs +18 -0
- package/dist/lib/esm2022/engine/NgxBaseComponent.mjs +546 -0
- package/dist/lib/esm2022/engine/NgxCrudFormField.mjs +125 -0
- package/dist/lib/esm2022/engine/NgxFormService.mjs +315 -0
- package/dist/lib/esm2022/engine/NgxRenderingEngine.mjs +192 -0
- package/dist/lib/esm2022/engine/NgxRenderingEngine2.mjs +332 -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 +17 -0
- package/dist/lib/esm2022/engine/types.mjs +4 -0
- package/dist/lib/esm2022/for-angular.module.mjs +119 -0
- package/dist/lib/esm2022/helpers/index.mjs +13 -0
- package/dist/lib/esm2022/helpers/utils.mjs +415 -0
- package/dist/lib/esm2022/interfaces.mjs +2 -0
- package/dist/lib/esm2022/public-apis.mjs +14 -0
- package/dist/{fesm2022 → lib/fesm2022}/decaf-ts-for-angular.mjs +1805 -621
- package/dist/lib/fesm2022/decaf-ts-for-angular.mjs.map +1 -0
- package/dist/{for-angular.module.d.ts → lib/for-angular.module.d.ts} +1 -0
- package/dist/lib/for-angular.module.d.ts.map +1 -0
- package/dist/{helpers → lib/helpers}/index.d.ts +1 -0
- package/dist/lib/helpers/index.d.ts.map +1 -0
- package/dist/{helpers → lib/helpers}/utils.d.ts +1 -0
- package/dist/lib/helpers/utils.d.ts.map +1 -0
- package/dist/{index.d.ts → lib/index.d.ts} +1 -0
- package/dist/{interfaces.d.ts → lib/interfaces.d.ts} +1 -0
- package/dist/lib/interfaces.d.ts.map +1 -0
- package/dist/{public-apis.d.ts → lib/public-apis.d.ts} +1 -0
- package/dist/lib/public-apis.d.ts.map +1 -0
- package/package.json +3 -2
- package/dist/esm2022/components/component-renderer/component-renderer.component.mjs +0 -313
- package/dist/esm2022/components/crud-field/crud-field.component.mjs +0 -301
- package/dist/esm2022/components/crud-form/constants.mjs +0 -14
- package/dist/esm2022/components/crud-form/crud-form.component.mjs +0 -139
- package/dist/esm2022/components/crud-form/types.mjs +0 -2
- package/dist/esm2022/components/empty-state/empty-state.component.mjs +0 -348
- package/dist/esm2022/components/fieldset/fieldset.component.mjs +0 -225
- package/dist/esm2022/components/filter/filter.component.mjs +0 -689
- package/dist/esm2022/components/for-angular-components.module.mjs +0 -71
- package/dist/esm2022/components/index.mjs +0 -20
- package/dist/esm2022/components/layout/layout.component.mjs +0 -176
- package/dist/esm2022/components/list/constants.mjs +0 -6
- package/dist/esm2022/components/list/list.component.mjs +0 -1236
- package/dist/esm2022/components/list-item/list-item.component.mjs +0 -408
- package/dist/esm2022/components/model-renderer/model-renderer.component.mjs +0 -138
- package/dist/esm2022/components/pagination/constants.mjs +0 -2
- package/dist/esm2022/components/pagination/pagination.component.mjs +0 -323
- package/dist/esm2022/components/searchbar/searchbar.component.mjs +0 -493
- package/dist/esm2022/decaf-ts-for-angular.mjs +0 -5
- package/dist/esm2022/directives/collapsable.directive.mjs +0 -28
- package/dist/esm2022/directives/index.mjs +0 -2
- package/dist/esm2022/engine/DynamicModule.mjs +0 -18
- package/dist/esm2022/engine/NgxBaseComponent.mjs +0 -539
- package/dist/esm2022/engine/NgxCrudFormField.mjs +0 -125
- package/dist/esm2022/engine/NgxFormService.mjs +0 -315
- package/dist/esm2022/engine/NgxRenderingEngine.mjs +0 -192
- package/dist/esm2022/engine/NgxRenderingEngine2.mjs +0 -332
- package/dist/esm2022/engine/ValidatorFactory.mjs +0 -102
- package/dist/esm2022/engine/constants.mjs +0 -160
- package/dist/esm2022/engine/decorators.mjs +0 -38
- package/dist/esm2022/engine/index.mjs +0 -17
- package/dist/esm2022/engine/types.mjs +0 -4
- package/dist/esm2022/for-angular.module.mjs +0 -118
- package/dist/esm2022/helpers/index.mjs +0 -13
- package/dist/esm2022/helpers/utils.mjs +0 -415
- package/dist/esm2022/interfaces.mjs +0 -2
- package/dist/esm2022/public-apis.mjs +0 -14
- package/dist/fesm2022/decaf-ts-for-angular.mjs.map +0 -1
- /package/dist/{README.md → lib/README.md} +0 -0
- /package/dist/{assets → lib/assets}/i18n/en.json +0 -0
- /package/dist/{assets → lib/assets}/images/angular-logo.svg +0 -0
- /package/dist/{assets → lib/assets}/images/decaf-logo-black.svg +0 -0
- /package/dist/{assets → lib/assets}/images/decaf-logo-lw.svg +0 -0
- /package/dist/{assets → lib/assets}/images/decaf-logo-white.svg +0 -0
- /package/dist/{assets → lib/assets}/images/decaf-logo.svg +0 -0
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Component, ElementRef, EventEmitter, inject, Input, Output, ViewChild, } from '@angular/core';
|
|
3
|
+
import { Location } from '@angular/common';
|
|
4
|
+
import { NgxFormService } from '../../engine/NgxFormService';
|
|
5
|
+
import { Dynamic, EventConstants } from '../../engine';
|
|
6
|
+
import { OperationKeys } from '@decaf-ts/db-decorators';
|
|
7
|
+
import { DefaultFormReactiveOptions } from './constants';
|
|
8
|
+
import { ForAngularModule, getLogger } from '../../for-angular.module';
|
|
9
|
+
import { IonIcon } from '@ionic/angular/standalone';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@ionic/angular/standalone";
|
|
12
|
+
import * as i2 from "@angular/forms";
|
|
13
|
+
const _c0 = ["reactiveForm"];
|
|
14
|
+
const _c1 = ["*"];
|
|
15
|
+
const _c2 = () => ["create", "update"];
|
|
16
|
+
const _c3 = () => ["delete", "read", "update"];
|
|
17
|
+
function CrudFormComponent_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
18
|
+
i0.ɵɵelement(0, "ion-icon", 6);
|
|
19
|
+
} if (rf & 2) {
|
|
20
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
21
|
+
i0.ɵɵproperty("slot", ctx_r1.options.buttons.submit.iconSlot)("name", ctx_r1.options.buttons.submit.icon);
|
|
22
|
+
} }
|
|
23
|
+
function CrudFormComponent_Conditional_0_Conditional_9_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
24
|
+
i0.ɵɵelement(0, "ion-icon", 6);
|
|
25
|
+
} if (rf & 2) {
|
|
26
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
27
|
+
i0.ɵɵproperty("slot", ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.iconSlot)("name", ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.icon);
|
|
28
|
+
} }
|
|
29
|
+
function CrudFormComponent_Conditional_0_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
30
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
31
|
+
i0.ɵɵelementStart(0, "ion-button", 8);
|
|
32
|
+
i0.ɵɵlistener("click", function CrudFormComponent_Conditional_0_Conditional_9_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.handleReset()); });
|
|
33
|
+
i0.ɵɵtemplate(1, CrudFormComponent_Conditional_0_Conditional_9_Conditional_1_Template, 1, 2, "ion-icon", 6);
|
|
34
|
+
i0.ɵɵtext(2);
|
|
35
|
+
i0.ɵɵelementEnd();
|
|
36
|
+
} if (rf & 2) {
|
|
37
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
38
|
+
i0.ɵɵadvance();
|
|
39
|
+
i0.ɵɵconditional((ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.icon) ? 1 : -1);
|
|
40
|
+
i0.ɵɵadvance();
|
|
41
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpureFunction0(2, _c2).includes(ctx_r1.operation) ? "Back" : ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.text, " ");
|
|
42
|
+
} }
|
|
43
|
+
function CrudFormComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
44
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
45
|
+
i0.ɵɵelementStart(0, "form", 3, 0);
|
|
46
|
+
i0.ɵɵlistener("submit", function CrudFormComponent_Conditional_0_Template_form_submit_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.submit($event)); });
|
|
47
|
+
i0.ɵɵprojection(2, 0, ["#formContent", ""]);
|
|
48
|
+
i0.ɵɵelementStart(3, "div", 4)(4, "div")(5, "ion-button", 5);
|
|
49
|
+
i0.ɵɵtemplate(6, CrudFormComponent_Conditional_0_Conditional_6_Template, 1, 2, "ion-icon", 6);
|
|
50
|
+
i0.ɵɵtext(7);
|
|
51
|
+
i0.ɵɵelementEnd()();
|
|
52
|
+
i0.ɵɵelementStart(8, "div");
|
|
53
|
+
i0.ɵɵtemplate(9, CrudFormComponent_Conditional_0_Conditional_9_Template, 3, 3, "ion-button", 7);
|
|
54
|
+
i0.ɵɵelementEnd()()();
|
|
55
|
+
} if (rf & 2) {
|
|
56
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
57
|
+
i0.ɵɵproperty("id", ctx_r1.rendererId)("formGroup", ctx_r1.formGroup)("target", ctx_r1.target);
|
|
58
|
+
i0.ɵɵadvance(6);
|
|
59
|
+
i0.ɵɵconditional(ctx_r1.options.buttons.submit.icon ? 6 : -1);
|
|
60
|
+
i0.ɵɵadvance();
|
|
61
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.action ? ctx_r1.action : ctx_r1.options.buttons.submit.text, " ");
|
|
62
|
+
i0.ɵɵadvance(2);
|
|
63
|
+
i0.ɵɵconditional(ctx_r1.options.buttons.clear ? 9 : -1);
|
|
64
|
+
} }
|
|
65
|
+
function CrudFormComponent_Conditional_1_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
66
|
+
i0.ɵɵelement(0, "ion-icon", 6);
|
|
67
|
+
} if (rf & 2) {
|
|
68
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
69
|
+
i0.ɵɵproperty("slot", ctx_r1.options.buttons.submit.iconSlot)("name", ctx_r1.options.buttons.submit.icon);
|
|
70
|
+
} }
|
|
71
|
+
function CrudFormComponent_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
72
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
73
|
+
i0.ɵɵelementStart(0, "div")(1, "ion-button", 10);
|
|
74
|
+
i0.ɵɵlistener("click", function CrudFormComponent_Conditional_1_Conditional_1_Template_ion_button_click_1_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.handleDelete()); });
|
|
75
|
+
i0.ɵɵtemplate(2, CrudFormComponent_Conditional_1_Conditional_1_Conditional_2_Template, 1, 2, "ion-icon", 6);
|
|
76
|
+
i0.ɵɵtext(3, " Delete ");
|
|
77
|
+
i0.ɵɵelementEnd()();
|
|
78
|
+
} if (rf & 2) {
|
|
79
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
80
|
+
i0.ɵɵadvance(2);
|
|
81
|
+
i0.ɵɵconditional(ctx_r1.options.buttons.submit.icon ? 2 : -1);
|
|
82
|
+
} }
|
|
83
|
+
function CrudFormComponent_Conditional_1_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
84
|
+
i0.ɵɵelement(0, "ion-icon", 6);
|
|
85
|
+
} if (rf & 2) {
|
|
86
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
87
|
+
i0.ɵɵproperty("slot", ctx_r1.options.buttons.submit.iconSlot)("name", ctx_r1.options.buttons.submit.icon);
|
|
88
|
+
} }
|
|
89
|
+
function CrudFormComponent_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
90
|
+
i0.ɵɵelementStart(0, "div")(1, "ion-button", 5);
|
|
91
|
+
i0.ɵɵtemplate(2, CrudFormComponent_Conditional_1_Conditional_2_Conditional_2_Template, 1, 2, "ion-icon", 6);
|
|
92
|
+
i0.ɵɵtext(3);
|
|
93
|
+
i0.ɵɵelementEnd()();
|
|
94
|
+
} if (rf & 2) {
|
|
95
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
96
|
+
i0.ɵɵadvance(2);
|
|
97
|
+
i0.ɵɵconditional(ctx_r1.options.buttons.submit.icon ? 2 : -1);
|
|
98
|
+
i0.ɵɵadvance();
|
|
99
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.options.buttons.submit.text, " ");
|
|
100
|
+
} }
|
|
101
|
+
function CrudFormComponent_Conditional_1_Conditional_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
102
|
+
i0.ɵɵelement(0, "ion-icon", 6);
|
|
103
|
+
} if (rf & 2) {
|
|
104
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
105
|
+
i0.ɵɵproperty("slot", ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.iconSlot)("name", ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.icon);
|
|
106
|
+
} }
|
|
107
|
+
function CrudFormComponent_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
108
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
109
|
+
i0.ɵɵelementStart(0, "div")(1, "ion-button", 8);
|
|
110
|
+
i0.ɵɵlistener("click", function CrudFormComponent_Conditional_1_Conditional_3_Template_ion_button_click_1_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.handleReset()); });
|
|
111
|
+
i0.ɵɵtemplate(2, CrudFormComponent_Conditional_1_Conditional_3_Conditional_2_Template, 1, 2, "ion-icon", 6);
|
|
112
|
+
i0.ɵɵtext(3);
|
|
113
|
+
i0.ɵɵelementEnd()();
|
|
114
|
+
} if (rf & 2) {
|
|
115
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
116
|
+
i0.ɵɵadvance(2);
|
|
117
|
+
i0.ɵɵconditional((ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.icon) ? 2 : -1);
|
|
118
|
+
i0.ɵɵadvance();
|
|
119
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpureFunction0(2, _c3).includes(ctx_r1.operation) ? "Back" : ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.text, " ");
|
|
120
|
+
} }
|
|
121
|
+
function CrudFormComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
122
|
+
i0.ɵɵelementStart(0, "div", 9);
|
|
123
|
+
i0.ɵɵtemplate(1, CrudFormComponent_Conditional_1_Conditional_1_Template, 4, 1, "div")(2, CrudFormComponent_Conditional_1_Conditional_2_Template, 4, 2, "div")(3, CrudFormComponent_Conditional_1_Conditional_3_Template, 4, 3, "div");
|
|
124
|
+
i0.ɵɵelementEnd();
|
|
125
|
+
} if (rf & 2) {
|
|
126
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
127
|
+
i0.ɵɵclassMap("dcf-grid dcf-grid-collapse dcf-flex dcf-flex-left " + ctx_r1.operation);
|
|
128
|
+
i0.ɵɵadvance();
|
|
129
|
+
i0.ɵɵconditional(ctx_r1.operation === "delete" && ctx_r1.uid ? 1 : -1);
|
|
130
|
+
i0.ɵɵadvance();
|
|
131
|
+
i0.ɵɵconditional(ctx_r1.operation === ctx_r1.OperationKeys.CREATE || ctx_r1.operation === ctx_r1.OperationKeys.UPDATE ? 2 : -1);
|
|
132
|
+
i0.ɵɵadvance();
|
|
133
|
+
i0.ɵɵconditional(ctx_r1.options.buttons.clear ? 3 : -1);
|
|
134
|
+
} }
|
|
135
|
+
/**
|
|
136
|
+
* @component CrudFormComponent
|
|
137
|
+
* @example <ngx-decaf-crud-form
|
|
138
|
+
* action="create"
|
|
139
|
+
* operation="create"
|
|
140
|
+
* formGroup="formGroup"
|
|
141
|
+
* rendererId="rendererId"
|
|
142
|
+
* submitEvent="submitEvent"
|
|
143
|
+
* target="_self"
|
|
144
|
+
* method="event">
|
|
145
|
+
* </ngx-decaf-crud-form>
|
|
146
|
+
*
|
|
147
|
+
* @param {string} action - The action to be performed (create, read, update, delete)
|
|
148
|
+
* @param {CrudOperations} operation - The CRUD operation being performed (create, read, update, delete)
|
|
149
|
+
* @param {FormGroup} formGroup - The form group
|
|
150
|
+
* @param {string} rendererId - The renderer id
|
|
151
|
+
* @param {SubmitEvent} submitEvent - The submit event
|
|
152
|
+
* @param {string} target - The target
|
|
153
|
+
* @param {string} method - The method
|
|
154
|
+
*/
|
|
155
|
+
let CrudFormComponent = class CrudFormComponent {
|
|
156
|
+
constructor() {
|
|
157
|
+
this.updateOn = 'change';
|
|
158
|
+
this.target = '_self';
|
|
159
|
+
this.method = 'event';
|
|
160
|
+
this.submitEvent = new EventEmitter();
|
|
161
|
+
/**
|
|
162
|
+
* @description Angular Location service.
|
|
163
|
+
* @summary Injected service that provides access to the browser's URL and history.
|
|
164
|
+
* This service is used for interacting with the browser's history API, allowing
|
|
165
|
+
* for back navigation and URL manipulation outside of Angular's router.
|
|
166
|
+
*
|
|
167
|
+
* @private
|
|
168
|
+
* @type {Location}
|
|
169
|
+
* @memberOf CrudFormComponent
|
|
170
|
+
*/
|
|
171
|
+
this.location = inject(Location);
|
|
172
|
+
this.OperationKeys = OperationKeys;
|
|
173
|
+
}
|
|
174
|
+
// ngAfterViewInit() {
|
|
175
|
+
// if (![OperationKeys.READ, OperationKeys.DELETE].includes(this.operation))
|
|
176
|
+
// NgxFormService.formAfterViewInit(this, this.rendererId);
|
|
177
|
+
// }
|
|
178
|
+
async ngOnInit() {
|
|
179
|
+
if (!this.logger)
|
|
180
|
+
this.logger = getLogger(this);
|
|
181
|
+
if (this.operation === OperationKeys.READ || this.operation === OperationKeys.DELETE)
|
|
182
|
+
this.formGroup = undefined;
|
|
183
|
+
this.options = Object.assign({}, DefaultFormReactiveOptions, this.options || {});
|
|
184
|
+
}
|
|
185
|
+
ngOnDestroy() {
|
|
186
|
+
if (this.formGroup)
|
|
187
|
+
NgxFormService.unregister(this.formGroup);
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* @param {SubmitEvent} event
|
|
191
|
+
*/
|
|
192
|
+
async submit(event) {
|
|
193
|
+
event.preventDefault();
|
|
194
|
+
event.stopImmediatePropagation();
|
|
195
|
+
event.stopPropagation();
|
|
196
|
+
if (!NgxFormService.validateFields(this.formGroup))
|
|
197
|
+
return false;
|
|
198
|
+
const data = NgxFormService.getFormData(this.formGroup);
|
|
199
|
+
this.submitEvent.emit({
|
|
200
|
+
data,
|
|
201
|
+
component: 'CrudFormComponent',
|
|
202
|
+
name: this.action || EventConstants.SUBMIT_EVENT,
|
|
203
|
+
handlers: this.handlers,
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
handleReset() {
|
|
207
|
+
this.location.back();
|
|
208
|
+
// if(OperationKeys.DELETE !== this.operation)
|
|
209
|
+
// NgxFormService.reset(this.formGroup);
|
|
210
|
+
// else
|
|
211
|
+
// this.location.back();
|
|
212
|
+
}
|
|
213
|
+
handleDelete() {
|
|
214
|
+
this.submitEvent.emit({
|
|
215
|
+
data: this.uid,
|
|
216
|
+
component: 'CrudFormComponent',
|
|
217
|
+
name: EventConstants.SUBMIT_EVENT,
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
static { this.ɵfac = function CrudFormComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CrudFormComponent)(); }; }
|
|
221
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CrudFormComponent, selectors: [["ngx-decaf-crud-form"]], viewQuery: function CrudFormComponent_Query(rf, ctx) { if (rf & 1) {
|
|
222
|
+
i0.ɵɵviewQuery(_c0, 5, ElementRef);
|
|
223
|
+
} if (rf & 2) {
|
|
224
|
+
let _t;
|
|
225
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.component = _t.first);
|
|
226
|
+
} }, inputs: { model: "model", updateOn: "updateOn", target: "target", method: "method", options: "options", action: "action", operation: "operation", handlers: "handlers", formGroup: "formGroup", childOf: "childOf", rendererId: "rendererId", uid: "uid" }, outputs: { submitEvent: "submitEvent" }, standalone: true, features: [i0.ɵɵStandaloneFeature], ngContentSelectors: _c1, decls: 2, vars: 1, consts: [["reactiveForm", ""], ["novalidate", "", 3, "id", "formGroup", "target"], ["id", "dcf-buttons-container", 3, "class"], ["novalidate", "", 3, "submit", "id", "formGroup", "target"], ["id", "dcf-buttons-container", 1, "dcf-grid", "dcf-grid-collapse", "dcf-flex", "dcf-flex-left"], ["type", "submit"], ["aria-hidden", "true", 3, "slot", "name"], ["fill", "clear"], ["fill", "clear", 3, "click"], ["id", "dcf-buttons-container"], ["color", "danger", "type", "button", 3, "click"]], template: function CrudFormComponent_Template(rf, ctx) { if (rf & 1) {
|
|
227
|
+
i0.ɵɵprojectionDef();
|
|
228
|
+
i0.ɵɵtemplate(0, CrudFormComponent_Conditional_0_Template, 10, 6, "form", 1)(1, CrudFormComponent_Conditional_1_Template, 4, 5, "div", 2);
|
|
229
|
+
} if (rf & 2) {
|
|
230
|
+
i0.ɵɵconditional(ctx.operation !== "read" && ctx.operation !== "delete" ? 0 : 1);
|
|
231
|
+
} }, dependencies: [ForAngularModule, i1.IonButton, i2.ɵNgNoValidate, i2.NgControlStatusGroup, i2.FormGroupDirective, IonIcon], styles: ["#dcf-buttons-container[_ngcontent-%COMP%]{margin-top:1.8rem;margin-bottom:0}@media (min-width: 991px){#dcf-buttons-container.dcf-flex[_ngcontent-%COMP%]{flex-direction:row-reverse}}@media (max-width: 990px){#dcf-buttons-container.dcf-flex[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:100%}#dcf-buttons-container.dcf-flex[_ngcontent-%COMP%] ion-button[_ngcontent-%COMP%]{width:100%;margin-bottom:1rem}}"] }); }
|
|
232
|
+
};
|
|
233
|
+
CrudFormComponent = __decorate([
|
|
234
|
+
Dynamic()
|
|
235
|
+
], CrudFormComponent);
|
|
236
|
+
export { CrudFormComponent };
|
|
237
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CrudFormComponent, [{
|
|
238
|
+
type: Component,
|
|
239
|
+
args: [{ standalone: true, selector: 'ngx-decaf-crud-form', imports: [ForAngularModule, IonIcon], template: "@if(operation !== 'read' && operation !== 'delete') {\n <form #reactiveForm [id]=\"rendererId\" [formGroup]=\"formGroup\" (submit)=\"submit($event)\" novalidate [target]=\"target\">\n <ng-content #formContent></ng-content>\n <div id=\"dcf-buttons-container\" class=\"dcf-grid dcf-grid-collapse dcf-flex dcf-flex-left\">\n <div>\n <ion-button\n type=\"submit\">\n @if(options.buttons.submit.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.submit.iconSlot\" [name]=\"options.buttons.submit.icon\"></ion-icon>\n }\n {{ action ? action : options.buttons.submit.text}}\n </ion-button>\n </div>\n <div>\n @if(options.buttons.clear) {\n <ion-button fill=\"clear\" (click)=\"handleReset()\">\n @if(options.buttons.clear?.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.clear?.iconSlot\" [name]=\"options.buttons.clear?.icon\"></ion-icon>\n }\n {{ ['create', 'update'].includes(operation) ? 'Back' : options.buttons.clear?.text}}\n </ion-button>\n }\n </div>\n </div>\n </form>\n} @else {\n <div [class]=\"'dcf-grid dcf-grid-collapse dcf-flex dcf-flex-left ' + operation\" id=\"dcf-buttons-container\">\n\n @if(operation === 'delete' && uid) {\n <div>\n <ion-button\n (click)=\"handleDelete()\"\n color=\"danger\"\n type=\"button\">\n @if(options.buttons.submit.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.submit.iconSlot\" [name]=\"options.buttons.submit.icon\"></ion-icon>\n }\n Delete\n </ion-button>\n </div>\n\n }\n @if(operation === OperationKeys.CREATE || operation === OperationKeys.UPDATE) {\n <div>\n <ion-button\n type=\"submit\">\n @if(options.buttons.submit.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.submit.iconSlot\" [name]=\"options.buttons.submit.icon\"></ion-icon>\n }\n {{options.buttons.submit.text}}\n </ion-button>\n </div>\n }\n\n @if(options.buttons.clear) {\n <div>\n <ion-button fill=\"clear\" (click)=\"handleReset()\">\n @if(options.buttons.clear?.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.clear?.iconSlot\" [name]=\"options.buttons.clear?.icon\"></ion-icon>\n }\n {{ ['delete', 'read', 'update'].includes(operation) ? 'Back' : options.buttons.clear?.text}}\n </ion-button>\n </div>\n\n }\n </div>\n}\n\n", styles: ["#dcf-buttons-container{margin-top:1.8rem;margin-bottom:0}@media (min-width: 991px){#dcf-buttons-container.dcf-flex{flex-direction:row-reverse}}@media (max-width: 990px){#dcf-buttons-container.dcf-flex div{width:100%}#dcf-buttons-container.dcf-flex ion-button{width:100%;margin-bottom:1rem}}\n"] }]
|
|
240
|
+
}], null, { model: [{
|
|
241
|
+
type: Input
|
|
242
|
+
}], updateOn: [{
|
|
243
|
+
type: Input
|
|
244
|
+
}], component: [{
|
|
245
|
+
type: ViewChild,
|
|
246
|
+
args: ['reactiveForm', { static: false, read: ElementRef }]
|
|
247
|
+
}], target: [{
|
|
248
|
+
type: Input
|
|
249
|
+
}], method: [{
|
|
250
|
+
type: Input
|
|
251
|
+
}], options: [{
|
|
252
|
+
type: Input
|
|
253
|
+
}], action: [{
|
|
254
|
+
type: Input
|
|
255
|
+
}], operation: [{
|
|
256
|
+
type: Input,
|
|
257
|
+
args: [{ required: true }]
|
|
258
|
+
}], handlers: [{
|
|
259
|
+
type: Input
|
|
260
|
+
}], formGroup: [{
|
|
261
|
+
type: Input
|
|
262
|
+
}], childOf: [{
|
|
263
|
+
type: Input
|
|
264
|
+
}], rendererId: [{
|
|
265
|
+
type: Input
|
|
266
|
+
}], uid: [{
|
|
267
|
+
type: Input
|
|
268
|
+
}], submitEvent: [{
|
|
269
|
+
type: Output
|
|
270
|
+
}] }); })();
|
|
271
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CrudFormComponent, { className: "CrudFormComponent", filePath: "components/crud-form/crud-form.component.ts", lineNumber: 54 }); })();
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9jcnVkLWZvcm0vY3J1ZC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9jcnVkLWZvcm0vY3J1ZC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUczQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFpQixPQUFPLEVBQUUsY0FBYyxFQUFrRCxNQUFNLGNBQWMsQ0FBQztBQUV0SCxPQUFPLEVBQWtCLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7SUNaeEMsOEJBQXNIOzs7SUFBaEQsQUFBekMsNkRBQXdDLDRDQUFxQzs7O0lBU3RHLDhCQUF1SDs7O0lBQWhELEFBQXpDLDBHQUF3Qyx5RkFBcUM7Ozs7SUFGL0cscUNBQWlEO0lBQXhCLHdNQUFTLG9CQUFhLEtBQUM7SUFDOUMsMkdBQWtDO0lBR2xDLFlBQ0Y7SUFBQSxpQkFBYTs7O0lBSlgsY0FFQztJQUZELDRHQUVDO0lBQ0QsY0FDRjtJQURFLGlMQUNGOzs7O0lBbkJWLGtDQUFxSDtJQUF2RCwyTEFBVSxx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UzttQkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFJOUQsTUFBTTtrQkFETCxLQUFLO1lBSU4sTUFBTTtrQkFETCxLQUFLO1lBSU4sT0FBTztrQkFETixLQUFLO1lBSU4sTUFBTTtrQkFETCxLQUFLO1lBSU4sU0FBUztrQkFEUixLQUFLO21CQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUl6QixRQUFRO2tCQURQLEtBQUs7WUFJTixTQUFTO2tCQURSLEtBQUs7WUFXTixPQUFPO2tCQUROLEtBQUs7WUFJTixVQUFVO2tCQURULEtBQUs7WUFXTixHQUFHO2tCQURGLEtBQUs7WUFLTixXQUFXO2tCQURWLE1BQU07O2tGQS9ESSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1FbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBOZ3hGb3JtU2VydmljZSB9IGZyb20gJy4uLy4uL2VuZ2luZS9OZ3hGb3JtU2VydmljZSc7XG5pbXBvcnQgeyBDcnVkRm9ybUV2ZW50LCBEeW5hbWljLCBFdmVudENvbnN0YW50cywgRmllbGRVcGRhdGVNb2RlLCBIVE1MRm9ybVRhcmdldCwgUmVuZGVyZWRNb2RlbCB9IGZyb20gJy4uLy4uL2VuZ2luZSc7XG5pbXBvcnQgeyBDcnVkRm9ybU9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IENydWRPcGVyYXRpb25zLCBPcGVyYXRpb25LZXlzIH0gZnJvbSAnQGRlY2FmLXRzL2RiLWRlY29yYXRvcnMnO1xuaW1wb3J0IHsgRGVmYXVsdEZvcm1SZWFjdGl2ZU9wdGlvbnMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBGb3JBbmd1bGFyTW9kdWxlLCBnZXRMb2dnZXIgfSBmcm9tICcuLi8uLi9mb3ItYW5ndWxhci5tb2R1bGUnO1xuaW1wb3J0IHsgSW9uSWNvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tICdAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb24nO1xuaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSAnQGRlY2FmLXRzL2xvZ2dpbmcnO1xuXG5cbi8qKlxuICogQGNvbXBvbmVudCBDcnVkRm9ybUNvbXBvbmVudFxuICogQGV4YW1wbGUgPG5neC1kZWNhZi1jcnVkLWZvcm1cbiAqICAgYWN0aW9uPVwiY3JlYXRlXCJcbiAqICAgb3BlcmF0aW9uPVwiY3JlYXRlXCJcbiAqICAgZm9ybUdyb3VwPVwiZm9ybUdyb3VwXCJcbiAqICAgcmVuZGVyZXJJZD1cInJlbmRlcmVySWRcIlxuICogICBzdWJtaXRFdmVudD1cInN1Ym1pdEV2ZW50XCJcbiAqICAgdGFyZ2V0PVwiX3NlbGZcIlxuICogICBtZXRob2Q9XCJldmVudFwiPlxuICogPC9uZ3gtZGVjYWYtY3J1ZC1mb3JtPlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhY3Rpb24gLSBUaGUgYWN0aW9uIHRvIGJlIHBlcmZvcm1lZCAoY3JlYXRlLCByZWFkLCB1cGRhdGUsIGRlbGV0ZSlcbiAqIEBwYXJhbSB7Q3J1ZE9wZXJhdGlvbnN9IG9wZXJhdGlvbiAtIFRoZSBDUlVEIG9wZXJhdGlvbiBiZWluZyBwZXJmb3JtZWQgKGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBkZWxldGUpXG4gKiBAcGFyYW0ge0Zvcm1Hcm91cH0gZm9ybUdyb3VwIC0gVGhlIGZvcm0gZ3JvdXBcbiAqIEBwYXJhbSB7c3RyaW5nfSByZW5kZXJlcklkIC0gVGhlIHJlbmRlcmVyIGlkXG4gKiBAcGFyYW0ge1N1Ym1pdEV2ZW50fSBzdWJtaXRFdmVudCAtIFRoZSBzdWJtaXQgZXZlbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSB0YXJnZXQgLSBUaGUgdGFyZ2V0XG4gKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kIC0gVGhlIG1ldGhvZFxuICovXG5ARHluYW1pYygpXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICduZ3gtZGVjYWYtY3J1ZC1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NydWQtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NydWQtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbRm9yQW5ndWxhck1vZHVsZSwgSW9uSWNvbl0sXG59KVxuZXhwb3J0IGNsYXNzIENydWRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBGb3JtRWxlbWVudCwgT25EZXN0cm95LCBSZW5kZXJlZE1vZGVsIHtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlcG9zaXRvcnkgbW9kZWwgZm9yIGRhdGEgb3BlcmF0aW9ucy5cbiAgICogQHN1bW1hcnkgVGhlIGRhdGEgbW9kZWwgcmVwb3NpdG9yeSB0aGF0IHRoaXMgY29tcG9uZW50IHdpbGwgdXNlIGZvciBDUlVEIG9wZXJhdGlvbnMuXG4gICAqIFRoaXMgcHJvdmlkZXMgYSBjb25uZWN0aW9uIHRvIHRoZSBkYXRhIGxheWVyIGZvciByZXRyaWV2aW5nIGFuZCBtYW5pcHVsYXRpbmcgZGF0YS5cbiAgICpcbiAgICogQHR5cGUge01vZGVsfCB1bmRlZmluZWR9XG4gICAqL1xuICBASW5wdXQoKVxuICBtb2RlbCE6IE1vZGVsIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIHVwZGF0ZU9uOiBGaWVsZFVwZGF0ZU1vZGUgPSAnY2hhbmdlJztcblxuICBAVmlld0NoaWxkKCdyZWFjdGl2ZUZvcm0nLCB7IHN0YXRpYzogZmFsc2UsIHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgY29tcG9uZW50ITogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKVxuICB0YXJnZXQ6IEhUTUxGb3JtVGFyZ2V0ID0gJ19zZWxmJztcblxuICBASW5wdXQoKVxuICBtZXRob2Q6ICdnZXQnIHwgJ3Bvc3QnIHwgJ2V2ZW50JyA9ICdldmVudCc7XG5cbiAgQElucHV0KClcbiAgb3B0aW9ucyE6IENydWRGb3JtT3B0aW9ucztcblxuICBASW5wdXQoKVxuICBhY3Rpb24/OiBzdHJpbmc7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgb3BlcmF0aW9uITogQ3J1ZE9wZXJhdGlvbnM7XG5cbiAgQElucHV0KClcbiAgaGFuZGxlcnMhOiBSZWNvcmQ8c3RyaW5nLCAoLi4uYXJnczogdW5rbm93bltdKSA9PiB1bmtub3duIHwgUHJvbWlzZTx1bmtub3duPj47XG5cbiAgQElucHV0KClcbiAgZm9ybUdyb3VwITogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUGF0aCB0byB0aGUgcGFyZW50IEZvcm1Hcm91cCwgaWYgbmVzdGVkLlxuICAgKiBAc3VtbWFyeSBGdWxsIGRvdC1kZWxpbWl0ZWQgcGF0aCBvZiB0aGUgcGFyZW50IEZvcm1Hcm91cC4gU2V0IG9ubHkgd2hlbiBpcyBwYXJ0IG9mIGEgbmVzdGVkIHN0cnVjdHVyZS5cbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlck9mIENydWRGb3JtQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBjaGlsZE9mPzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHJlbmRlcmVySWQhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGN1cnJlbnQgcmVjb3JkLlxuICAgKiBAc3VtbWFyeSBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgY3VycmVudCByZWNvcmQgYmVpbmcgZGlzcGxheWVkIG9yIG1hbmlwdWxhdGVkLlxuICAgKiBUaGlzIGlzIHR5cGljYWxseSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIHByaW1hcnkga2V5IGZvciBvcGVyYXRpb25zIG9uIHNwZWNpZmljIHJlY29yZHMuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmcgfCBudW1iZXJ9XG4gICAqL1xuICBASW5wdXQoKVxuICB1aWQhOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQ7XG5cblxuICBAT3V0cHV0KClcbiAgc3VibWl0RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPENydWRGb3JtRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMb2dnZXIgaW5zdGFuY2UgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqIEBzdW1tYXJ5IFByb3ZpZGVzIGxvZ2dpbmcgY2FwYWJpbGl0aWVzIGZvciB0aGUgY29tcG9uZW50LCBhbGxvd2luZyBmb3IgY29uc2lzdGVudFxuICAgKiBhbmQgc3RydWN0dXJlZCBsb2dnaW5nIG9mIGluZm9ybWF0aW9uLCB3YXJuaW5ncywgYW5kIGVycm9ycy4gVGhpcyBsb2dnZXIgaXMgaW5pdGlhbGl6ZWRcbiAgICogaW4gdGhlIG5nT25Jbml0IG1ldGhvZCB1c2luZyB0aGUgZ2V0TG9nZ2VyIGZ1bmN0aW9uIGZyb20gdGhlIEZvckFuZ3VsYXJNb2R1bGUuXG4gICAqXG4gICAqIFRoZSBsb2dnZXIgaXMgdXNlZCB0aHJvdWdob3V0IHRoZSBjb21wb25lbnQgdG8gcmVjb3JkIGltcG9ydGFudCBldmVudHMsIGRlYnVnIGluZm9ybWF0aW9uLFxuICAgKiBhbmQgcG90ZW50aWFsIGlzc3Vlcy4gSXQgaGVscHMgaW4gbW9uaXRvcmluZyB0aGUgY29tcG9uZW50J3MgYmVoYXZpb3IsIHRyYWNraW5nIHRoZSBmbG93XG4gICAqIG9mIG9wZXJhdGlvbnMsIGFuZCBmYWNpbGl0YXRpbmcgZWFzaWVyIGRlYnVnZ2luZyBhbmQgbWFpbnRlbmFuY2UuXG4gICAqXG4gICAqIEB0eXBlIHtMb2dnZXJ9XG4gICAqIEBwcml2YXRlXG4gICAqIEBtZW1iZXJPZiBDcnVkRm9ybUNvbXBvbmVudFxuICAgKi9cbiAgcHJpdmF0ZSBsb2dnZXIhOiBMb2dnZXI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBbmd1bGFyIExvY2F0aW9uIHNlcnZpY2UuXG4gICAqIEBzdW1tYXJ5IEluamVjdGVkIHNlcnZpY2UgdGhhdCBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIGJyb3dzZXIncyBVUkwgYW5kIGhpc3RvcnkuXG4gICAqIFRoaXMgc2VydmljZSBpcyB1c2VkIGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBicm93c2VyJ3MgaGlzdG9yeSBBUEksIGFsbG93aW5nXG4gICAqIGZvciBiYWNrIG5hdmlnYXRpb24gYW5kIFVSTCBtYW5pcHVsYXRpb24gb3V0c2lkZSBvZiBBbmd1bGFyJ3Mgcm91dGVyLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAdHlwZSB7TG9jYXRpb259XG4gICAqIEBtZW1iZXJPZiBDcnVkRm9ybUNvbXBvbmVudFxuICAgKi9cbiAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24gPSBpbmplY3QoTG9jYXRpb24pO1xuXG4gIC8vIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyBpZiAoIVtPcGVyYXRpb25LZXlzLlJFQUQsIE9wZXJhdGlvbktleXMuREVMRVRFXS5pbmNsdWRlcyh0aGlzLm9wZXJhdGlvbikpXG4gICAgLy8gICBOZ3hGb3JtU2VydmljZS5mb3JtQWZ0ZXJWaWV3SW5pdCh0aGlzLCB0aGlzLnJlbmRlcmVySWQpO1xuICAvLyB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmxvZ2dlcilcbiAgICAgIHRoaXMubG9nZ2VyID0gZ2V0TG9nZ2VyKHRoaXMpO1xuICAgIGlmICh0aGlzLm9wZXJhdGlvbiA9PT0gT3BlcmF0aW9uS2V5cy5SRUFEIHx8IHRoaXMub3BlcmF0aW9uID09PSBPcGVyYXRpb25LZXlzLkRFTEVURSlcbiAgICAgIHRoaXMuZm9ybUdyb3VwID0gdW5kZWZpbmVkO1xuICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIERlZmF1bHRGb3JtUmVhY3RpdmVPcHRpb25zLFxuICAgICAgdGhpcy5vcHRpb25zIHx8IHt9LFxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXApXG4gICAgICBOZ3hGb3JtU2VydmljZS51bnJlZ2lzdGVyKHRoaXMuZm9ybUdyb3VwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gIHtTdWJtaXRFdmVudH0gZXZlbnRcbiAgICovXG4gIGFzeW5jIHN1Ym1pdChldmVudDogU3VibWl0RXZlbnQpOiBQcm9taXNlPGJvb2xlYW4gfCB2b2lkPiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICghTmd4Rm9ybVNlcnZpY2UudmFsaWRhdGVGaWVsZHModGhpcy5mb3JtR3JvdXAgYXMgRm9ybUdyb3VwKSlcbiAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IGRhdGEgPSBOZ3hGb3JtU2VydmljZS5nZXRGb3JtRGF0YSh0aGlzLmZvcm1Hcm91cCBhcyBGb3JtR3JvdXApO1xuICAgIHRoaXMuc3VibWl0RXZlbnQuZW1pdCh7XG4gICAgICBkYXRhLFxuICAgICAgY29tcG9uZW50OiAnQ3J1ZEZvcm1Db21wb25lbnQnLFxuICAgICAgbmFtZTogdGhpcy5hY3Rpb24gfHwgRXZlbnRDb25zdGFudHMuU1VCTUlUX0VWRU5ULFxuICAgICAgaGFuZGxlcnM6IHRoaXMuaGFuZGxlcnMsXG4gICAgfSk7XG4gIH1cblxuICBoYW5kbGVSZXNldCgpIHtcbiAgICB0aGlzLmxvY2F0aW9uLmJhY2soKTtcbiAgICAvLyBpZihPcGVyYXRpb25LZXlzLkRFTEVURSAhPT0gdGhpcy5vcGVyYXRpb24pXG4gICAgLy8gICBOZ3hGb3JtU2VydmljZS5yZXNldCh0aGlzLmZvcm1Hcm91cCk7XG4gICAgLy8gZWxzZVxuICAgIC8vICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XG4gIH1cblxuICBoYW5kbGVEZWxldGUoKSB7XG4gICAgdGhpcy5zdWJtaXRFdmVudC5lbWl0KHtcbiAgICAgIGRhdGE6IHRoaXMudWlkLFxuICAgICAgY29tcG9uZW50OiAnQ3J1ZEZvcm1Db21wb25lbnQnLFxuICAgICAgbmFtZTogRXZlbnRDb25zdGFudHMuU1VCTUlUX0VWRU5ULFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IE9wZXJhdGlvbktleXMgPSBPcGVyYXRpb25LZXlzO1xufVxuIiwiQGlmKG9wZXJhdGlvbiAhPT0gJ3JlYWQnICYmIG9wZXJhdGlvbiAhPT0gJ2RlbGV0ZScpIHtcbiAgPGZvcm0gI3JlYWN0aXZlRm9ybSBbaWRdPVwicmVuZGVyZXJJZFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgKHN1Ym1pdCk9XCJzdWJtaXQoJGV2ZW50KVwiIG5vdmFsaWRhdGUgW3RhcmdldF09XCJ0YXJnZXRcIj5cbiAgICA8bmctY29udGVudCAjZm9ybUNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDxkaXYgaWQ9XCJkY2YtYnV0dG9ucy1jb250YWluZXJcIiBjbGFzcz1cImRjZi1ncmlkIGRjZi1ncmlkLWNvbGxhcHNlIGRjZi1mbGV4IGRjZi1mbGV4LWxlZnRcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgdHlwZT1cInN1Ym1pdFwiPlxuICAgICAgICAgIEBpZihvcHRpb25zLmJ1dHRvbnMuc3VibWl0Lmljb24pIHtcbiAgICAgICAgICAgIDxpb24taWNvbiBhcmlhLWhpZGRlbj1cInRydWVcIiBbc2xvdF09XCJvcHRpb25zLmJ1dHRvbnMuc3VibWl0Lmljb25TbG90XCIgW25hbWVdPVwib3B0aW9ucy5idXR0b25zLnN1Ym1pdC5pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAge3sgYWN0aW9uID8gYWN0aW9uIDogb3B0aW9ucy5idXR0b25zLnN1Ym1pdC50ZXh0fX1cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICAgIEBpZihvcHRpb25zLmJ1dHRvbnMuY2xlYXIpIHtcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIChjbGljayk9XCJoYW5kbGVSZXNldCgpXCI+XG4gICAgICAgICAgICAgIEBpZihvcHRpb25zLmJ1dHRvbnMuY2xlYXI/Lmljb24pIHtcbiAgICAgICAgICAgICAgICA8aW9uLWljb24gIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtzbG90XT1cIm9wdGlvbnMuYnV0dG9ucy5jbGVhcj8uaWNvblNsb3RcIiBbbmFtZV09XCJvcHRpb25zLmJ1dHRvbnMuY2xlYXI/Lmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHt7IFsnY3JlYXRlJywgJ3VwZGF0ZSddLmluY2x1ZGVzKG9wZXJhdGlvbikgPyAnQmFjaycgOiBvcHRpb25zLmJ1dHRvbnMuY2xlYXI/LnRleHR9fVxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cbn0gQGVsc2Uge1xuICA8ZGl2IFtjbGFzc109XCInZGNmLWdyaWQgZGNmLWdyaWQtY29sbGFwc2UgZGNmLWZsZXggZGNmLWZsZXgtbGVmdCAnICsgb3BlcmF0aW9uXCIgaWQ9XCJkY2YtYnV0dG9ucy1jb250YWluZXJcIj5cblxuICAgIEBpZihvcGVyYXRpb24gPT09ICdkZWxldGUnICYmIHVpZCkge1xuICAgICAgPGRpdj5cbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlRGVsZXRlKClcIlxuICAgICAgICAgIGNvbG9yPVwiZGFuZ2VyXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgQGlmKG9wdGlvbnMuYnV0dG9ucy5zdWJtaXQuaWNvbikge1xuICAgICAgICAgICAgPGlvbi1pY29uIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtzbG90XT1cIm9wdGlvbnMuYnV0dG9ucy5zdWJtaXQuaWNvblNsb3RcIiBbbmFtZV09XCJvcHRpb25zLmJ1dHRvbnMuc3VibWl0Lmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgICBEZWxldGVcbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICB9XG4gICAgQGlmKG9wZXJhdGlvbiA9PT0gT3BlcmF0aW9uS2V5cy5DUkVBVEUgfHwgb3BlcmF0aW9uID09PSBPcGVyYXRpb25LZXlzLlVQREFURSkge1xuICAgICAgPGRpdj5cbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICB0eXBlPVwic3VibWl0XCI+XG4gICAgICAgICAgQGlmKG9wdGlvbnMuYnV0dG9ucy5zdWJtaXQuaWNvbikge1xuICAgICAgICAgICAgPGlvbi1pY29uIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtzbG90XT1cIm9wdGlvbnMuYnV0dG9ucy5zdWJtaXQuaWNvblNsb3RcIiBbbmFtZV09XCJvcHRpb25zLmJ1dHRvbnMuc3VibWl0Lmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgICB7e29wdGlvbnMuYnV0dG9ucy5zdWJtaXQudGV4dH19XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZihvcHRpb25zLmJ1dHRvbnMuY2xlYXIpIHtcbiAgICAgIDxkaXY+XG4gICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgKGNsaWNrKT1cImhhbmRsZVJlc2V0KClcIj5cbiAgICAgICAgICBAaWYob3B0aW9ucy5idXR0b25zLmNsZWFyPy5pY29uKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtzbG90XT1cIm9wdGlvbnMuYnV0dG9ucy5jbGVhcj8uaWNvblNsb3RcIiBbbmFtZV09XCJvcHRpb25zLmJ1dHRvbnMuY2xlYXI/Lmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgICB7eyBbJ2RlbGV0ZScsICdyZWFkJywgJ3VwZGF0ZSddLmluY2x1ZGVzKG9wZXJhdGlvbikgPyAnQmFjaycgOiBvcHRpb25zLmJ1dHRvbnMuY2xlYXI/LnRleHR9fVxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgIH1cbiAgPC9kaXY+XG59XG5cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvY3J1ZC1mb3JtL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEZvcm1SZWFjdGl2ZVN1Ym1pdEV2ZW50IHtcbiAgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3J1ZEZvcm1PcHRpb25zIHtcbiAgYnV0dG9uczoge1xuICAgIHN1Ym1pdDoge1xuICAgICAgaWNvbj86IHN0cmluZztcbiAgICAgIGljb25TbG90PzogJ3N0YXJ0JyB8ICdlbmQnO1xuICAgICAgdGV4dD86IHN0cmluZztcbiAgICB9O1xuICAgIGNsZWFyPzoge1xuICAgICAgaWNvbj86IHN0cmluZztcbiAgICAgIGljb25TbG90PzogJ3N0YXJ0JyB8ICdlbmQnO1xuICAgICAgdGV4dD86IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuIl19
|