@dereekb/dbx-form 9.16.2 → 9.16.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/formly/field/value/array/array.field.component.mjs +63 -22
- package/esm2020/lib/formly/field/value/array/array.field.mjs +8 -3
- package/fesm2015/dereekb-dbx-form.mjs +70 -24
- package/fesm2015/dereekb-dbx-form.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-form.mjs +69 -23
- package/fesm2020/dereekb-dbx-form.mjs.map +1 -1
- package/lib/formly/field/value/array/_array.scss +5 -1
- package/lib/formly/field/value/array/array.field.component.d.ts +43 -8
- package/lib/formly/field/value/array/array.field.d.ts +8 -7
- package/mapbox/package.json +4 -4
- package/package.json +4 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
|
-
import { getValueFromGetter } from '@dereekb/util';
|
|
2
|
+
import { asDecisionFunction, cachedGetter, getValueFromGetter, makeGetter } from '@dereekb/util';
|
|
3
3
|
import { FieldArrayType } from '@ngx-formly/core';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/common";
|
|
@@ -9,12 +9,30 @@ import * as i4 from "@angular/cdk/drag-drop";
|
|
|
9
9
|
import * as i5 from "@dereekb/dbx-web";
|
|
10
10
|
import * as i6 from "@ngx-formly/core";
|
|
11
11
|
export class DbxFormRepeatArrayTypeComponent extends FieldArrayType {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this._labelForField = cachedGetter(() => {
|
|
15
|
+
const input = this.repeatArrayField.labelForField;
|
|
16
|
+
if (typeof input === 'function') {
|
|
17
|
+
return input;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
return makeGetter(input ?? '');
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
this._allowRemove = cachedGetter(() => {
|
|
24
|
+
return asDecisionFunction(this.field.props.allowRemove, true);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
12
27
|
get repeatArrayField() {
|
|
13
28
|
return this.field.props;
|
|
14
29
|
}
|
|
15
30
|
get label() {
|
|
16
31
|
return this.field.props.label ?? this.field.key;
|
|
17
32
|
}
|
|
33
|
+
get description() {
|
|
34
|
+
return this.field.props.description;
|
|
35
|
+
}
|
|
18
36
|
get addText() {
|
|
19
37
|
return this.repeatArrayField.addText ?? 'Add';
|
|
20
38
|
}
|
|
@@ -27,7 +45,24 @@ export class DbxFormRepeatArrayTypeComponent extends FieldArrayType {
|
|
|
27
45
|
get count() {
|
|
28
46
|
return this.field.fieldGroup?.length ?? 0;
|
|
29
47
|
}
|
|
30
|
-
get
|
|
48
|
+
get disableRearrange() {
|
|
49
|
+
return Boolean(this.field.props.disableRearrange);
|
|
50
|
+
}
|
|
51
|
+
get allowAdd() {
|
|
52
|
+
return this.field.props.allowAdd ?? true;
|
|
53
|
+
}
|
|
54
|
+
allowRemove(i) {
|
|
55
|
+
const array = this.model;
|
|
56
|
+
const value = array[i];
|
|
57
|
+
return this._allowRemove()({
|
|
58
|
+
i,
|
|
59
|
+
value
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
get addItemDisabled() {
|
|
63
|
+
return !this.canAddItem;
|
|
64
|
+
}
|
|
65
|
+
get canAddItem() {
|
|
31
66
|
const max = this.max;
|
|
32
67
|
if (max == null) {
|
|
33
68
|
return true;
|
|
@@ -63,68 +98,74 @@ export class DbxFormRepeatArrayTypeComponent extends FieldArrayType {
|
|
|
63
98
|
drop(event) {
|
|
64
99
|
this.swapIndexes(event.previousIndex, event.currentIndex);
|
|
65
100
|
}
|
|
66
|
-
labelForItem(
|
|
67
|
-
|
|
101
|
+
labelForItem(fieldConfig, i) {
|
|
102
|
+
const array = this.model;
|
|
103
|
+
const value = array[i];
|
|
104
|
+
return getValueFromGetter(this._labelForField(), {
|
|
105
|
+
i,
|
|
106
|
+
value,
|
|
107
|
+
fieldConfig
|
|
108
|
+
});
|
|
68
109
|
}
|
|
69
110
|
}
|
|
70
111
|
DbxFormRepeatArrayTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxFormRepeatArrayTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
71
112
|
DbxFormRepeatArrayTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: DbxFormRepeatArrayTypeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
72
113
|
<div class="dbx-form-repeat-array">
|
|
73
|
-
<dbx-subsection [header]="label">
|
|
114
|
+
<dbx-subsection [header]="label" [hint]="description">
|
|
74
115
|
<!-- Fields -->
|
|
75
|
-
<div class="dbx-form-repeat-array-fields" cdkDropList (cdkDropListDropped)="drop($event)">
|
|
116
|
+
<div class="dbx-form-repeat-array-fields" cdkDropList [cdkDropListDisabled]="disableRearrange" (cdkDropListDropped)="drop($event)">
|
|
76
117
|
<div class="dbx-form-repeat-array-field" cdkDrag cdkDragLockAxis="y" *ngFor="let field of field.fieldGroup; let i = index; let last = last">
|
|
77
|
-
<div class="
|
|
78
|
-
<dbx-bar>
|
|
79
|
-
<button cdkDragHandle mat-flat-button><mat-icon>drag_handle</mat-icon></button>
|
|
118
|
+
<div class="dbx-form-repeat-array-drag-placeholder" *cdkDragPlaceholder></div>
|
|
119
|
+
<dbx-bar class="dbx-bar-fixed-height">
|
|
120
|
+
<button *ngIf="!disableRearrange" cdkDragHandle mat-flat-button><mat-icon>drag_handle</mat-icon></button>
|
|
80
121
|
<dbx-button-spacer></dbx-button-spacer>
|
|
81
122
|
<h4>
|
|
82
123
|
<span class="repeat-array-number">{{ i + 1 }}</span>
|
|
83
|
-
<span>{{ labelForItem(field) }}</span>
|
|
124
|
+
<span>{{ labelForItem(field, i) }}</span>
|
|
84
125
|
</h4>
|
|
85
126
|
<span class="dbx-spacer"></span>
|
|
86
|
-
<
|
|
127
|
+
<dbx-button *ngIf="allowRemove(i)" color="warn" [text]="removeText" (buttonClick)="remove(i)"></dbx-button>
|
|
87
128
|
</dbx-bar>
|
|
88
129
|
<formly-field class="dbx-form-repeat-array-field-content" [field]="field"></formly-field>
|
|
89
130
|
</div>
|
|
90
131
|
</div>
|
|
91
132
|
<!-- Add Button -->
|
|
92
133
|
<div class="dbx-form-repeat-array-footer">
|
|
93
|
-
<button *ngIf="
|
|
134
|
+
<dbx-button *ngIf="allowAdd" [raised]="true" [disabled]="addItemDisabled" [text]="addText" (buttonClick)="add()"></dbx-button>
|
|
94
135
|
</div>
|
|
95
136
|
</dbx-subsection>
|
|
96
137
|
</div>
|
|
97
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i4.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "component", type: i5.DbxSubSectionComponent, selector: "dbx-subsection" }, { kind: "directive", type: i5.DbxBarDirective, selector: "dbx-bar,[dbxBar]", inputs: ["color"] }, { kind: "directive", type: i5.DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "component", type: i6.FormlyField, selector: "formly-field", inputs: ["field"] }] });
|
|
138
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i4.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "component", type: i5.DbxSubSectionComponent, selector: "dbx-subsection" }, { kind: "directive", type: i5.DbxBarDirective, selector: "dbx-bar,[dbxBar]", inputs: ["color"] }, { kind: "component", type: i5.DbxButtonComponent, selector: "dbx-button", inputs: ["type", "raised", "stroked", "flat", "color", "customButtonColor", "customTextColor", "customSpinnerColor"] }, { kind: "directive", type: i5.DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "component", type: i6.FormlyField, selector: "formly-field", inputs: ["field"] }] });
|
|
98
139
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxFormRepeatArrayTypeComponent, decorators: [{
|
|
99
140
|
type: Component,
|
|
100
141
|
args: [{
|
|
101
142
|
template: `
|
|
102
143
|
<div class="dbx-form-repeat-array">
|
|
103
|
-
<dbx-subsection [header]="label">
|
|
144
|
+
<dbx-subsection [header]="label" [hint]="description">
|
|
104
145
|
<!-- Fields -->
|
|
105
|
-
<div class="dbx-form-repeat-array-fields" cdkDropList (cdkDropListDropped)="drop($event)">
|
|
146
|
+
<div class="dbx-form-repeat-array-fields" cdkDropList [cdkDropListDisabled]="disableRearrange" (cdkDropListDropped)="drop($event)">
|
|
106
147
|
<div class="dbx-form-repeat-array-field" cdkDrag cdkDragLockAxis="y" *ngFor="let field of field.fieldGroup; let i = index; let last = last">
|
|
107
|
-
<div class="
|
|
108
|
-
<dbx-bar>
|
|
109
|
-
<button cdkDragHandle mat-flat-button><mat-icon>drag_handle</mat-icon></button>
|
|
148
|
+
<div class="dbx-form-repeat-array-drag-placeholder" *cdkDragPlaceholder></div>
|
|
149
|
+
<dbx-bar class="dbx-bar-fixed-height">
|
|
150
|
+
<button *ngIf="!disableRearrange" cdkDragHandle mat-flat-button><mat-icon>drag_handle</mat-icon></button>
|
|
110
151
|
<dbx-button-spacer></dbx-button-spacer>
|
|
111
152
|
<h4>
|
|
112
153
|
<span class="repeat-array-number">{{ i + 1 }}</span>
|
|
113
|
-
<span>{{ labelForItem(field) }}</span>
|
|
154
|
+
<span>{{ labelForItem(field, i) }}</span>
|
|
114
155
|
</h4>
|
|
115
156
|
<span class="dbx-spacer"></span>
|
|
116
|
-
<
|
|
157
|
+
<dbx-button *ngIf="allowRemove(i)" color="warn" [text]="removeText" (buttonClick)="remove(i)"></dbx-button>
|
|
117
158
|
</dbx-bar>
|
|
118
159
|
<formly-field class="dbx-form-repeat-array-field-content" [field]="field"></formly-field>
|
|
119
160
|
</div>
|
|
120
161
|
</div>
|
|
121
162
|
<!-- Add Button -->
|
|
122
163
|
<div class="dbx-form-repeat-array-footer">
|
|
123
|
-
<button *ngIf="
|
|
164
|
+
<dbx-button *ngIf="allowAdd" [raised]="true" [disabled]="addItemDisabled" [text]="addText" (buttonClick)="add()"></dbx-button>
|
|
124
165
|
</div>
|
|
125
166
|
</dbx-subsection>
|
|
126
167
|
</div>
|
|
127
168
|
`
|
|
128
169
|
}]
|
|
129
170
|
}] });
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvdmFsdWUvYXJyYXkvYXJyYXkuZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFvQixrQkFBa0IsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQXdCLGNBQWMsRUFBdUMsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7QUFxQzdHLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxjQUE4RDtJQUNqSCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQWMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUVyQixJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQztTQUNiO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsS0FBYTtRQUNsQixJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDZixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsV0FBVyxDQUFDLFlBQW9CLEVBQUUsV0FBbUI7UUFDbkQsTUFBTSxLQUFLLEdBQWMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwQyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksQ0FBQyxLQUEyQjtRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxZQUFZLENBQUMsS0FBd0I7UUFDbkMsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxJQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5RSxDQUFDOzs0SEF2RVUsK0JBQStCO2dIQUEvQiwrQkFBK0IsMkVBNUJoQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQlQ7MkZBRVUsK0JBQStCO2tCQTdCM0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJUO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmFjdG9yeVdpdGhJbnB1dCwgZ2V0VmFsdWVGcm9tR2V0dGVyLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRmllbGRBcnJheVR5cGVDb25maWcsIEZpZWxkQXJyYXlUeXBlLCBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5RmllbGRQcm9wcyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZvcm1SZXBlYXRBcnJheUNvbmZpZyBleHRlbmRzIEZvcm1seUZpZWxkUHJvcHMge1xuICBsYWJlbEZvckZpZWxkPzogc3RyaW5nIHwgRmFjdG9yeVdpdGhJbnB1dDxzdHJpbmcsIEZvcm1seUZpZWxkQ29uZmlnPjtcbiAgYWRkVGV4dD86IHN0cmluZztcbiAgcmVtb3ZlVGV4dD86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImRieC1mb3JtLXJlcGVhdC1hcnJheVwiPlxuICAgICAgPGRieC1zdWJzZWN0aW9uIFtoZWFkZXJdPVwibGFiZWxcIj5cbiAgICAgICAgPCEtLSBGaWVsZHMgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXktZmllbGRzXCIgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGJ4LWZvcm0tcmVwZWF0LWFycmF5LWZpZWxkXCIgY2RrRHJhZyBjZGtEcmFnTG9ja0F4aXM9XCJ5XCIgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGZpZWxkLmZpZWxkR3JvdXA7IGxldCBpID0gaW5kZXg7IGxldCBsYXN0ID0gbGFzdFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4YW1wbGUtY3VzdG9tLXBsYWNlaG9sZGVyXCIgKmNka0RyYWdQbGFjZWhvbGRlcj48L2Rpdj5cbiAgICAgICAgICAgIDxkYngtYmFyPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNka0RyYWdIYW5kbGUgbWF0LWZsYXQtYnV0dG9uPjxtYXQtaWNvbj5kcmFnX2hhbmRsZTwvbWF0LWljb24+PC9idXR0b24+XG4gICAgICAgICAgICAgIDxkYngtYnV0dG9uLXNwYWNlcj48L2RieC1idXR0b24tc3BhY2VyPlxuICAgICAgICAgICAgICA8aDQ+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXBlYXQtYXJyYXktbnVtYmVyXCI+e3sgaSArIDEgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgbGFiZWxGb3JJdGVtKGZpZWxkKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYngtc3BhY2VyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cIndhcm5cIiAoY2xpY2spPVwicmVtb3ZlKGkpXCI+e3sgcmVtb3ZlVGV4dCB9fTwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kYngtYmFyPlxuICAgICAgICAgICAgPGZvcm1seS1maWVsZCBjbGFzcz1cImRieC1mb3JtLXJlcGVhdC1hcnJheS1maWVsZC1jb250ZW50XCIgW2ZpZWxkXT1cImZpZWxkXCI+PC9mb3JtbHktZmllbGQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIEFkZCBCdXR0b24gLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXktZm9vdGVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNhbkFkZFwiIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJhZGQoKVwiPnt7IGFkZFRleHQgfX08L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RieC1zdWJzZWN0aW9uPlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1SZXBlYXRBcnJheVR5cGVDb21wb25lbnQgZXh0ZW5kcyBGaWVsZEFycmF5VHlwZTxGaWVsZEFycmF5VHlwZUNvbmZpZzxEYnhGb3JtUmVwZWF0QXJyYXlDb25maWc+PiB7XG4gIGdldCByZXBlYXRBcnJheUZpZWxkKCk6IERieEZvcm1SZXBlYXRBcnJheUNvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQucHJvcHM7XG4gIH1cblxuICBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcy5sYWJlbCA/PyAodGhpcy5maWVsZC5rZXkgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIGdldCBhZGRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVwZWF0QXJyYXlGaWVsZC5hZGRUZXh0ID8/ICdBZGQnO1xuICB9XG5cbiAgZ2V0IHJlbW92ZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXBlYXRBcnJheUZpZWxkLnJlbW92ZVRleHQgPz8gJ1JlbW92ZSc7XG4gIH1cblxuICBnZXQgbWF4KCk6IE1heWJlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLm1heExlbmd0aDtcbiAgfVxuXG4gIGdldCBjb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLmZpZWxkR3JvdXA/Lmxlbmd0aCA/PyAwO1xuICB9XG5cbiAgZ2V0IGNhbkFkZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBtYXggPSB0aGlzLm1heDtcblxuICAgIGlmIChtYXggPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmNvdW50IDwgbWF4O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlcyB0aGUgdGFyZ2V0IGluZGV4IHVwIG9uZSB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIGluZGV4XG4gICAqL1xuICBtb3ZlVXAoaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3dhcEluZGV4ZXMoaW5kZXgsIGluZGV4IC0gMSk7XG4gIH1cblxuICBtb3ZlRG93bihpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5zd2FwSW5kZXhlcyhpbmRleCwgaW5kZXggKyAxKTtcbiAgfVxuXG4gIHN3YXBJbmRleGVzKGN1cnJlbnRJbmRleDogbnVtYmVyLCB0YXJnZXRJbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgYXJyYXk6IHVua25vd25bXSA9IHRoaXMubW9kZWw7XG4gICAgY29uc3QgdGFyZ2V0VmFsdWUgPSBhcnJheVtjdXJyZW50SW5kZXhdO1xuXG4gICAgaWYgKCF0YXJnZXRWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucmVtb3ZlKGN1cnJlbnRJbmRleCk7XG4gICAgdGhpcy5hZGQodGFyZ2V0SW5kZXgsIHRhcmdldFZhbHVlLCB7IG1hcmtBc0RpcnR5OiB0cnVlIH0pO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8dW5rbm93bj4pIHtcbiAgICB0aGlzLnN3YXBJbmRleGVzKGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gIH1cblxuICBsYWJlbEZvckl0ZW0oZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0VmFsdWVGcm9tR2V0dGVyKHRoaXMucmVwZWF0QXJyYXlGaWVsZC5sYWJlbEZvckZpZWxkID8/ICcnLCBmaWVsZCk7XG4gIH1cbn1cbiJdfQ==
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvdmFsdWUvYXJyYXkvYXJyYXkuZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFZLFlBQVksRUFBd0Usa0JBQWtCLEVBQVksVUFBVSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ2xNLE9BQU8sRUFBd0IsY0FBYyxFQUF1QyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7OztBQW1FN0csTUFBTSxPQUFPLCtCQUE2QyxTQUFRLGNBQThEO0lBN0JoSTs7UUE4QlUsbUJBQWMsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFO1lBQ3pDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7WUFFbEQsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUU7Z0JBQy9CLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7aUJBQU07Z0JBQ0wsT0FBTyxVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ2hDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSyxpQkFBWSxHQUF3RCxZQUFZLENBQUMsR0FBRyxFQUFFO1lBQzVGLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUFDO0tBeUdKO0lBdkdDLElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FB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QUMsS0FBSyxDQUFDO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQU0sQ0FBQztRQUU1QixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUMvQyxDQUFDO1lBQ0QsS0FBSztZQUNMLFdBQVc7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDOzs0SEFySFUsK0JBQStCO2dIQUEvQiwrQkFBK0IsMkVBNUJoQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQlQ7MkZBRVUsK0JBQStCO2tCQTdCM0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJUO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhc0RlY2lzaW9uRnVuY3Rpb24sIGFzR2V0dGVyLCBjYWNoZWRHZXR0ZXIsIERlY2lzaW9uRnVuY3Rpb24sIEZhY3RvcnlXaXRoSW5wdXQsIEZhY3RvcnlXaXRoUmVxdWlyZWRJbnB1dCwgR2V0dGVyLCBnZXRWYWx1ZUZyb21HZXR0ZXIsIEluZGV4UmVmLCBtYWtlR2V0dGVyLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRmllbGRBcnJheVR5cGVDb25maWcsIEZpZWxkQXJyYXlUeXBlLCBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5RmllbGRQcm9wcyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZvcm1SZXBlYXRBcnJheVBhaXI8VCA9IHVua25vd24+IGV4dGVuZHMgSW5kZXhSZWYge1xuICB2YWx1ZTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhGb3JtUmVwZWF0QXJyYXlGaWVsZENvbmZpZ1BhaXI8VCA9IHVua25vd24+IGV4dGVuZHMgRGJ4Rm9ybVJlcGVhdEFycmF5UGFpcjxUPiB7XG4gIGZpZWxkQ29uZmlnOiBGb3JtbHlGaWVsZENvbmZpZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhGb3JtUmVwZWF0QXJyYXlDb25maWc8VCA9IHVua25vd24+IGV4dGVuZHMgUGljazxGb3JtbHlGaWVsZFByb3BzLCAnbWF4TGVuZ3RoJyB8ICdsYWJlbCcgfCAnZGVzY3JpcHRpb24nPiB7XG4gIGxhYmVsRm9yRmllbGQ/OiBzdHJpbmcgfCBGYWN0b3J5V2l0aFJlcXVpcmVkSW5wdXQ8c3RyaW5nLCBEYnhGb3JtUmVwZWF0QXJyYXlGaWVsZENvbmZpZ1BhaXI8VD4+O1xuICAvKipcbiAgICogVGV4dCBmb3IgdGhlIGFkZCBidXR0b24uXG4gICAqL1xuICBhZGRUZXh0Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGV4dCBmb3IgdGhlIHJlbW92ZSBidXR0b24uXG4gICAqL1xuICByZW1vdmVUZXh0Pzogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlIG9yIG5vdCB0byBkaXNhYmxlIHJlYXJyYW5naW5nIGl0ZW1zLlxuICAgKlxuICAgKiBGYWxzZSBieSBkZWZhdWx0LlxuICAgKi9cbiAgZGlzYWJsZVJlYXJyYW5nZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXZXRoZXIgb3Igbm90IHRvIHNob3cgdGhlIGFkZCBidXR0b24uXG4gICAqXG4gICAqIFRydWUgYnkgZGVmYXVsdC5cbiAgICovXG4gIGFsbG93QWRkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGFsbG93IHJlbW92aW5nIGl0ZW1zLiBDYW4gb3B0aW9uYWxseSBwYXNzIGEgZGVjaXNpb24gZnVuY3Rpb24gdGhhdCBkZWNpZGVzIHdoZXRoZXIgb3Igbm90IGEgc3BlY2lmaWMgaXRlbSBjYW4gYmUgcmVtb3ZlZC5cbiAgICovXG4gIGFsbG93UmVtb3ZlPzogYm9vbGVhbiB8IERlY2lzaW9uRnVuY3Rpb248RGJ4Rm9ybVJlcGVhdEFycmF5UGFpcjxUPj47XG59XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXlcIj5cbiAgICAgIDxkYngtc3Vic2VjdGlvbiBbaGVhZGVyXT1cImxhYmVsXCIgW2hpbnRdPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgPCEtLSBGaWVsZHMgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXktZmllbGRzXCIgY2RrRHJvcExpc3QgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiZGlzYWJsZVJlYXJyYW5nZVwiIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRieC1mb3JtLXJlcGVhdC1hcnJheS1maWVsZFwiIGNka0RyYWcgY2RrRHJhZ0xvY2tBeGlzPVwieVwiICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBmaWVsZC5maWVsZEdyb3VwOyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXktZHJhZy1wbGFjZWhvbGRlclwiICpjZGtEcmFnUGxhY2Vob2xkZXI+PC9kaXY+XG4gICAgICAgICAgICA8ZGJ4LWJhciBjbGFzcz1cImRieC1iYXItZml4ZWQtaGVpZ2h0XCI+XG4gICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhZGlzYWJsZVJlYXJyYW5nZVwiIGNka0RyYWdIYW5kbGUgbWF0LWZsYXQtYnV0dG9uPjxtYXQtaWNvbj5kcmFnX2hhbmRsZTwvbWF0LWljb24+PC9idXR0b24+XG4gICAgICAgICAgICAgIDxkYngtYnV0dG9uLXNwYWNlcj48L2RieC1idXR0b24tc3BhY2VyPlxuICAgICAgICAgICAgICA8aDQ+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXBlYXQtYXJyYXktbnVtYmVyXCI+e3sgaSArIDEgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgbGFiZWxGb3JJdGVtKGZpZWxkLCBpKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYngtc3BhY2VyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8ZGJ4LWJ1dHRvbiAqbmdJZj1cImFsbG93UmVtb3ZlKGkpXCIgY29sb3I9XCJ3YXJuXCIgW3RleHRdPVwicmVtb3ZlVGV4dFwiIChidXR0b25DbGljayk9XCJyZW1vdmUoaSlcIj48L2RieC1idXR0b24+XG4gICAgICAgICAgICA8L2RieC1iYXI+XG4gICAgICAgICAgICA8Zm9ybWx5LWZpZWxkIGNsYXNzPVwiZGJ4LWZvcm0tcmVwZWF0LWFycmF5LWZpZWxkLWNvbnRlbnRcIiBbZmllbGRdPVwiZmllbGRcIj48L2Zvcm1seS1maWVsZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gQWRkIEJ1dHRvbiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRieC1mb3JtLXJlcGVhdC1hcnJheS1mb290ZXJcIj5cbiAgICAgICAgICA8ZGJ4LWJ1dHRvbiAqbmdJZj1cImFsbG93QWRkXCIgW3JhaXNlZF09XCJ0cnVlXCIgW2Rpc2FibGVkXT1cImFkZEl0ZW1EaXNhYmxlZFwiIFt0ZXh0XT1cImFkZFRleHRcIiAoYnV0dG9uQ2xpY2spPVwiYWRkKClcIj48L2RieC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kYngtc3Vic2VjdGlvbj5cbiAgICA8L2Rpdj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtUmVwZWF0QXJyYXlUeXBlQ29tcG9uZW50PFQgPSB1bmtub3duPiBleHRlbmRzIEZpZWxkQXJyYXlUeXBlPEZpZWxkQXJyYXlUeXBlQ29uZmlnPERieEZvcm1SZXBlYXRBcnJheUNvbmZpZz4+IHtcbiAgcHJpdmF0ZSBfbGFiZWxGb3JGaWVsZCA9IGNhY2hlZEdldHRlcigoKSA9PiB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLnJlcGVhdEFycmF5RmllbGQubGFiZWxGb3JGaWVsZDtcblxuICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG1ha2VHZXR0ZXIoaW5wdXQgPz8gJycpO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJpdmF0ZSBfYWxsb3dSZW1vdmU6IEdldHRlcjxEZWNpc2lvbkZ1bmN0aW9uPERieEZvcm1SZXBlYXRBcnJheVBhaXI8VD4+PiA9IGNhY2hlZEdldHRlcigoKSA9PiB7XG4gICAgcmV0dXJuIGFzRGVjaXNpb25GdW5jdGlvbih0aGlzLmZpZWxkLnByb3BzLmFsbG93UmVtb3ZlLCB0cnVlKTtcbiAgfSk7XG5cbiAgZ2V0IHJlcGVhdEFycmF5RmllbGQoKTogRGJ4Rm9ybVJlcGVhdEFycmF5Q29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcztcbiAgfVxuXG4gIGdldCBsYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLmxhYmVsID8/ICh0aGlzLmZpZWxkLmtleSBhcyBzdHJpbmcpO1xuICB9XG5cbiAgZ2V0IGRlc2NyaXB0aW9uKCk6IE1heWJlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLmRlc2NyaXB0aW9uO1xuICB9XG5cbiAgZ2V0IGFkZFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXBlYXRBcnJheUZpZWxkLmFkZFRleHQgPz8gJ0FkZCc7XG4gIH1cblxuICBnZXQgcmVtb3ZlVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlcGVhdEFycmF5RmllbGQucmVtb3ZlVGV4dCA/PyAnUmVtb3ZlJztcbiAgfVxuXG4gIGdldCBtYXgoKTogTWF5YmU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQucHJvcHMubWF4TGVuZ3RoO1xuICB9XG5cbiAgZ2V0IGNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQuZmllbGRHcm91cD8ubGVuZ3RoID8/IDA7XG4gIH1cblxuICBnZXQgZGlzYWJsZVJlYXJyYW5nZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLmZpZWxkLnByb3BzLmRpc2FibGVSZWFycmFuZ2UpO1xuICB9XG5cbiAgZ2V0IGFsbG93QWRkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLmFsbG93QWRkID8/IHRydWU7XG4gIH1cblxuICBhbGxvd1JlbW92ZShpOiBudW1iZXIpIHtcbiAgICBjb25zdCBhcnJheTogdW5rbm93bltdID0gdGhpcy5tb2RlbDtcbiAgICBjb25zdCB2YWx1ZSA9IGFycmF5W2ldIGFzIFQ7XG4gICAgcmV0dXJuIHRoaXMuX2FsbG93UmVtb3ZlKCkoe1xuICAgICAgaSxcbiAgICAgIHZhbHVlXG4gICAgfSk7XG4gIH1cblxuICBnZXQgYWRkSXRlbURpc2FibGVkKCkge1xuICAgIHJldHVybiAhdGhpcy5jYW5BZGRJdGVtO1xuICB9XG5cbiAgZ2V0IGNhbkFkZEl0ZW0oKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbWF4ID0gdGhpcy5tYXg7XG5cbiAgICBpZiAobWF4ID09IG51bGwpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5jb3VudCA8IG1heDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTW92ZXMgdGhlIHRhcmdldCBpbmRleCB1cCBvbmUgdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSBpbmRleFxuICAgKi9cbiAgbW92ZVVwKGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN3YXBJbmRleGVzKGluZGV4LCBpbmRleCAtIDEpO1xuICB9XG5cbiAgbW92ZURvd24oaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc3dhcEluZGV4ZXMoaW5kZXgsIGluZGV4ICsgMSk7XG4gIH1cblxuICBzd2FwSW5kZXhlcyhjdXJyZW50SW5kZXg6IG51bWJlciwgdGFyZ2V0SW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGFycmF5OiB1bmtub3duW10gPSB0aGlzLm1vZGVsO1xuICAgIGNvbnN0IHRhcmdldFZhbHVlID0gYXJyYXlbY3VycmVudEluZGV4XTtcblxuICAgIGlmICghdGFyZ2V0VmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlbW92ZShjdXJyZW50SW5kZXgpO1xuICAgIHRoaXMuYWRkKHRhcmdldEluZGV4LCB0YXJnZXRWYWx1ZSwgeyBtYXJrQXNEaXJ0eTogdHJ1ZSB9KTtcbiAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgfVxuXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHVua25vd24+KSB7XG4gICAgdGhpcy5zd2FwSW5kZXhlcyhldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICB9XG5cbiAgbGFiZWxGb3JJdGVtKGZpZWxkQ29uZmlnOiBGb3JtbHlGaWVsZENvbmZpZywgaTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBhcnJheTogdW5rbm93bltdID0gdGhpcy5tb2RlbDtcbiAgICBjb25zdCB2YWx1ZSA9IGFycmF5W2ldIGFzIFQ7XG5cbiAgICByZXR1cm4gZ2V0VmFsdWVGcm9tR2V0dGVyKHRoaXMuX2xhYmVsRm9yRmllbGQoKSwge1xuICAgICAgaSxcbiAgICAgIHZhbHVlLFxuICAgICAgZmllbGRDb25maWdcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
import { asArray } from '@dereekb/util';
|
|
2
2
|
import { formlyField, propsAndConfigForFieldConfig } from '../../field';
|
|
3
3
|
export function repeatArrayField(config) {
|
|
4
|
-
const { key, repeatFieldGroup, maxLength, addText, removeText, labelForField } = config;
|
|
4
|
+
const { key, label, description, repeatFieldGroup, maxLength, addText, removeText, labelForField, disableRearrange, allowAdd, allowRemove } = config;
|
|
5
5
|
return formlyField({
|
|
6
6
|
key,
|
|
7
7
|
type: 'repeatarray',
|
|
8
8
|
...propsAndConfigForFieldConfig(config, {
|
|
9
|
+
label,
|
|
10
|
+
description,
|
|
9
11
|
maxLength,
|
|
10
12
|
labelForField,
|
|
11
13
|
addText,
|
|
12
|
-
removeText
|
|
14
|
+
removeText,
|
|
15
|
+
disableRearrange,
|
|
16
|
+
allowAdd,
|
|
17
|
+
allowRemove
|
|
13
18
|
}),
|
|
14
19
|
fieldArray: {
|
|
15
20
|
fieldGroup: asArray(repeatFieldGroup)
|
|
16
21
|
}
|
|
17
22
|
});
|
|
18
23
|
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC92YWx1ZS9hcnJheS9hcnJheS5maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBQWUsV0FBVyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBT3JGLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBYyxNQUFpQztJQUM3RSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFckosT0FBTyxXQUFXLENBQUM7UUFDakIsR0FBRztRQUNILElBQUksRUFBRSxhQUFhO1FBQ25CLEdBQUcsNEJBQTRCLENBQUMsTUFBTSxFQUFFO1lBQ3RDLEtBQUs7WUFDTCxXQUFXO1lBQ1gsU0FBUztZQUNULGFBQWE7WUFDYixPQUFPO1lBQ1AsVUFBVTtZQUNWLGdCQUFnQjtZQUNoQixRQUFRO1lBQ1IsV0FBVztTQUNaLENBQUM7UUFDRixVQUFVLEVBQUU7WUFDVixVQUFVLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1NBQ3RDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFycmF5T3JWYWx1ZSwgYXNBcnJheSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IEZpZWxkQ29uZmlnLCBmb3JtbHlGaWVsZCwgcHJvcHNBbmRDb25maWdGb3JGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL2ZpZWxkJztcbmltcG9ydCB7IERieEZvcm1SZXBlYXRBcnJheUNvbmZpZyB9IGZyb20gJy4vYXJyYXkuZmllbGQuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBSZXBlYXRBcnJheUZpZWxkQ29uZmlnPFQgPSB1bmtub3duPiBleHRlbmRzIERieEZvcm1SZXBlYXRBcnJheUNvbmZpZzxUPiwgRmllbGRDb25maWcge1xuICByZXBlYXRGaWVsZEdyb3VwOiBBcnJheU9yVmFsdWU8Rm9ybWx5RmllbGRDb25maWc+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVwZWF0QXJyYXlGaWVsZDxUID0gdW5rbm93bj4oY29uZmlnOiBSZXBlYXRBcnJheUZpZWxkQ29uZmlnPFQ+KSB7XG4gIGNvbnN0IHsga2V5LCBsYWJlbCwgZGVzY3JpcHRpb24sIHJlcGVhdEZpZWxkR3JvdXAsIG1heExlbmd0aCwgYWRkVGV4dCwgcmVtb3ZlVGV4dCwgbGFiZWxGb3JGaWVsZCwgZGlzYWJsZVJlYXJyYW5nZSwgYWxsb3dBZGQsIGFsbG93UmVtb3ZlIH0gPSBjb25maWc7XG5cbiAgcmV0dXJuIGZvcm1seUZpZWxkKHtcbiAgICBrZXksXG4gICAgdHlwZTogJ3JlcGVhdGFycmF5JyxcbiAgICAuLi5wcm9wc0FuZENvbmZpZ0ZvckZpZWxkQ29uZmlnKGNvbmZpZywge1xuICAgICAgbGFiZWwsXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIG1heExlbmd0aCxcbiAgICAgIGxhYmVsRm9yRmllbGQsXG4gICAgICBhZGRUZXh0LFxuICAgICAgcmVtb3ZlVGV4dCxcbiAgICAgIGRpc2FibGVSZWFycmFuZ2UsXG4gICAgICBhbGxvd0FkZCxcbiAgICAgIGFsbG93UmVtb3ZlXG4gICAgfSksXG4gICAgZmllbGRBcnJheToge1xuICAgICAgZmllbGRHcm91cDogYXNBcnJheShyZXBlYXRGaWVsZEdyb3VwKVxuICAgIH1cbiAgfSk7XG59XG4iXX0=
|
|
@@ -26,7 +26,7 @@ import * as i1$2 from '@angular/material/button';
|
|
|
26
26
|
import { MatButtonModule } from '@angular/material/button';
|
|
27
27
|
import * as i3$3 from '@angular/flex-layout/flex';
|
|
28
28
|
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
29
|
-
import { objectIsEmpty, mergeObjectsFunction, filterFromPOJOFunction, mergeObjects, filterFromPOJO, asArray, objectHasNoKeys, addPlusPrefixToNumber, convertMaybeToArray, makeValuesGroupMap, findUnique, searchStringFilterFunction, caseInsensitiveFilterByIndexOfDecisionFactory, mergeIntoArray, lastValue, separateValues, arrayToMap, getValueFromGetter, filterMaybeValues, dateFromLogicalDate, WEBSITE_DOMAIN_NAME_REGEX, KeyValueTypleValueFilter, valuesFromPOJO, allObjectsAreEqual, isNumberDivisibleBy, nearestDivisibleValues, transformNumberFunction, concatArrays, transformStringFunction, US_STATE_CODE_STRING_REGEX, ZIP_CODE_STRING_REGEX, LAT_LNG_PATTERN, capitalizeFirstLetter, BooleanStringKeyArrayUtilityInstance } from '@dereekb/util';
|
|
29
|
+
import { objectIsEmpty, mergeObjectsFunction, filterFromPOJOFunction, mergeObjects, filterFromPOJO, asArray, objectHasNoKeys, addPlusPrefixToNumber, convertMaybeToArray, makeValuesGroupMap, findUnique, searchStringFilterFunction, caseInsensitiveFilterByIndexOfDecisionFactory, mergeIntoArray, lastValue, separateValues, arrayToMap, cachedGetter, makeGetter, asDecisionFunction, getValueFromGetter, filterMaybeValues, dateFromLogicalDate, WEBSITE_DOMAIN_NAME_REGEX, KeyValueTypleValueFilter, valuesFromPOJO, allObjectsAreEqual, isNumberDivisibleBy, nearestDivisibleValues, transformNumberFunction, concatArrays, transformStringFunction, US_STATE_CODE_STRING_REGEX, ZIP_CODE_STRING_REGEX, LAT_LNG_PATTERN, capitalizeFirstLetter, BooleanStringKeyArrayUtilityInstance } from '@dereekb/util';
|
|
30
30
|
import * as i2$1 from '@angular/material/slide-toggle';
|
|
31
31
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
32
32
|
import * as i2$2 from '@angular/flex-layout/extended';
|
|
@@ -2640,6 +2640,21 @@ function textEditorField(config) {
|
|
|
2640
2640
|
}
|
|
2641
2641
|
|
|
2642
2642
|
class DbxFormRepeatArrayTypeComponent extends FieldArrayType {
|
|
2643
|
+
constructor() {
|
|
2644
|
+
super(...arguments);
|
|
2645
|
+
this._labelForField = cachedGetter(() => {
|
|
2646
|
+
const input = this.repeatArrayField.labelForField;
|
|
2647
|
+
if (typeof input === 'function') {
|
|
2648
|
+
return input;
|
|
2649
|
+
}
|
|
2650
|
+
else {
|
|
2651
|
+
return makeGetter(input !== null && input !== void 0 ? input : '');
|
|
2652
|
+
}
|
|
2653
|
+
});
|
|
2654
|
+
this._allowRemove = cachedGetter(() => {
|
|
2655
|
+
return asDecisionFunction(this.field.props.allowRemove, true);
|
|
2656
|
+
});
|
|
2657
|
+
}
|
|
2643
2658
|
get repeatArrayField() {
|
|
2644
2659
|
return this.field.props;
|
|
2645
2660
|
}
|
|
@@ -2647,6 +2662,9 @@ class DbxFormRepeatArrayTypeComponent extends FieldArrayType {
|
|
|
2647
2662
|
var _a;
|
|
2648
2663
|
return (_a = this.field.props.label) !== null && _a !== void 0 ? _a : this.field.key;
|
|
2649
2664
|
}
|
|
2665
|
+
get description() {
|
|
2666
|
+
return this.field.props.description;
|
|
2667
|
+
}
|
|
2650
2668
|
get addText() {
|
|
2651
2669
|
var _a;
|
|
2652
2670
|
return (_a = this.repeatArrayField.addText) !== null && _a !== void 0 ? _a : 'Add';
|
|
@@ -2662,7 +2680,25 @@ class DbxFormRepeatArrayTypeComponent extends FieldArrayType {
|
|
|
2662
2680
|
var _a, _b;
|
|
2663
2681
|
return (_b = (_a = this.field.fieldGroup) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
|
|
2664
2682
|
}
|
|
2665
|
-
get
|
|
2683
|
+
get disableRearrange() {
|
|
2684
|
+
return Boolean(this.field.props.disableRearrange);
|
|
2685
|
+
}
|
|
2686
|
+
get allowAdd() {
|
|
2687
|
+
var _a;
|
|
2688
|
+
return (_a = this.field.props.allowAdd) !== null && _a !== void 0 ? _a : true;
|
|
2689
|
+
}
|
|
2690
|
+
allowRemove(i) {
|
|
2691
|
+
const array = this.model;
|
|
2692
|
+
const value = array[i];
|
|
2693
|
+
return this._allowRemove()({
|
|
2694
|
+
i,
|
|
2695
|
+
value
|
|
2696
|
+
});
|
|
2697
|
+
}
|
|
2698
|
+
get addItemDisabled() {
|
|
2699
|
+
return !this.canAddItem;
|
|
2700
|
+
}
|
|
2701
|
+
get canAddItem() {
|
|
2666
2702
|
const max = this.max;
|
|
2667
2703
|
if (max == null) {
|
|
2668
2704
|
return true;
|
|
@@ -2698,65 +2734,70 @@ class DbxFormRepeatArrayTypeComponent extends FieldArrayType {
|
|
|
2698
2734
|
drop(event) {
|
|
2699
2735
|
this.swapIndexes(event.previousIndex, event.currentIndex);
|
|
2700
2736
|
}
|
|
2701
|
-
labelForItem(
|
|
2702
|
-
|
|
2703
|
-
|
|
2737
|
+
labelForItem(fieldConfig, i) {
|
|
2738
|
+
const array = this.model;
|
|
2739
|
+
const value = array[i];
|
|
2740
|
+
return getValueFromGetter(this._labelForField(), {
|
|
2741
|
+
i,
|
|
2742
|
+
value,
|
|
2743
|
+
fieldConfig
|
|
2744
|
+
});
|
|
2704
2745
|
}
|
|
2705
2746
|
}
|
|
2706
2747
|
DbxFormRepeatArrayTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxFormRepeatArrayTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2707
2748
|
DbxFormRepeatArrayTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: DbxFormRepeatArrayTypeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
2708
2749
|
<div class="dbx-form-repeat-array">
|
|
2709
|
-
<dbx-subsection [header]="label">
|
|
2750
|
+
<dbx-subsection [header]="label" [hint]="description">
|
|
2710
2751
|
<!-- Fields -->
|
|
2711
|
-
<div class="dbx-form-repeat-array-fields" cdkDropList (cdkDropListDropped)="drop($event)">
|
|
2752
|
+
<div class="dbx-form-repeat-array-fields" cdkDropList [cdkDropListDisabled]="disableRearrange" (cdkDropListDropped)="drop($event)">
|
|
2712
2753
|
<div class="dbx-form-repeat-array-field" cdkDrag cdkDragLockAxis="y" *ngFor="let field of field.fieldGroup; let i = index; let last = last">
|
|
2713
|
-
<div class="
|
|
2714
|
-
<dbx-bar>
|
|
2715
|
-
<button cdkDragHandle mat-flat-button><mat-icon>drag_handle</mat-icon></button>
|
|
2754
|
+
<div class="dbx-form-repeat-array-drag-placeholder" *cdkDragPlaceholder></div>
|
|
2755
|
+
<dbx-bar class="dbx-bar-fixed-height">
|
|
2756
|
+
<button *ngIf="!disableRearrange" cdkDragHandle mat-flat-button><mat-icon>drag_handle</mat-icon></button>
|
|
2716
2757
|
<dbx-button-spacer></dbx-button-spacer>
|
|
2717
2758
|
<h4>
|
|
2718
2759
|
<span class="repeat-array-number">{{ i + 1 }}</span>
|
|
2719
|
-
<span>{{ labelForItem(field) }}</span>
|
|
2760
|
+
<span>{{ labelForItem(field, i) }}</span>
|
|
2720
2761
|
</h4>
|
|
2721
2762
|
<span class="dbx-spacer"></span>
|
|
2722
|
-
<
|
|
2763
|
+
<dbx-button *ngIf="allowRemove(i)" color="warn" [text]="removeText" (buttonClick)="remove(i)"></dbx-button>
|
|
2723
2764
|
</dbx-bar>
|
|
2724
2765
|
<formly-field class="dbx-form-repeat-array-field-content" [field]="field"></formly-field>
|
|
2725
2766
|
</div>
|
|
2726
2767
|
</div>
|
|
2727
2768
|
<!-- Add Button -->
|
|
2728
2769
|
<div class="dbx-form-repeat-array-footer">
|
|
2729
|
-
<button *ngIf="
|
|
2770
|
+
<dbx-button *ngIf="allowAdd" [raised]="true" [disabled]="addItemDisabled" [text]="addText" (buttonClick)="add()"></dbx-button>
|
|
2730
2771
|
</div>
|
|
2731
2772
|
</dbx-subsection>
|
|
2732
2773
|
</div>
|
|
2733
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1$2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4$5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4$5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4$5.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i4$5.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "component", type: i1$1.DbxSubSectionComponent, selector: "dbx-subsection" }, { kind: "directive", type: i1$1.DbxBarDirective, selector: "dbx-bar,[dbxBar]", inputs: ["color"] }, { kind: "directive", type: i1$1.DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "component", type: i1$3.FormlyField, selector: "formly-field", inputs: ["field"] }] });
|
|
2774
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1$2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4$5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4$5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4$5.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i4$5.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "component", type: i1$1.DbxSubSectionComponent, selector: "dbx-subsection" }, { kind: "directive", type: i1$1.DbxBarDirective, selector: "dbx-bar,[dbxBar]", inputs: ["color"] }, { kind: "component", type: i1$1.DbxButtonComponent, selector: "dbx-button", inputs: ["type", "raised", "stroked", "flat", "color", "customButtonColor", "customTextColor", "customSpinnerColor"] }, { kind: "directive", type: i1$1.DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "component", type: i1$3.FormlyField, selector: "formly-field", inputs: ["field"] }] });
|
|
2734
2775
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxFormRepeatArrayTypeComponent, decorators: [{
|
|
2735
2776
|
type: Component,
|
|
2736
2777
|
args: [{
|
|
2737
2778
|
template: `
|
|
2738
2779
|
<div class="dbx-form-repeat-array">
|
|
2739
|
-
<dbx-subsection [header]="label">
|
|
2780
|
+
<dbx-subsection [header]="label" [hint]="description">
|
|
2740
2781
|
<!-- Fields -->
|
|
2741
|
-
<div class="dbx-form-repeat-array-fields" cdkDropList (cdkDropListDropped)="drop($event)">
|
|
2782
|
+
<div class="dbx-form-repeat-array-fields" cdkDropList [cdkDropListDisabled]="disableRearrange" (cdkDropListDropped)="drop($event)">
|
|
2742
2783
|
<div class="dbx-form-repeat-array-field" cdkDrag cdkDragLockAxis="y" *ngFor="let field of field.fieldGroup; let i = index; let last = last">
|
|
2743
|
-
<div class="
|
|
2744
|
-
<dbx-bar>
|
|
2745
|
-
<button cdkDragHandle mat-flat-button><mat-icon>drag_handle</mat-icon></button>
|
|
2784
|
+
<div class="dbx-form-repeat-array-drag-placeholder" *cdkDragPlaceholder></div>
|
|
2785
|
+
<dbx-bar class="dbx-bar-fixed-height">
|
|
2786
|
+
<button *ngIf="!disableRearrange" cdkDragHandle mat-flat-button><mat-icon>drag_handle</mat-icon></button>
|
|
2746
2787
|
<dbx-button-spacer></dbx-button-spacer>
|
|
2747
2788
|
<h4>
|
|
2748
2789
|
<span class="repeat-array-number">{{ i + 1 }}</span>
|
|
2749
|
-
<span>{{ labelForItem(field) }}</span>
|
|
2790
|
+
<span>{{ labelForItem(field, i) }}</span>
|
|
2750
2791
|
</h4>
|
|
2751
2792
|
<span class="dbx-spacer"></span>
|
|
2752
|
-
<
|
|
2793
|
+
<dbx-button *ngIf="allowRemove(i)" color="warn" [text]="removeText" (buttonClick)="remove(i)"></dbx-button>
|
|
2753
2794
|
</dbx-bar>
|
|
2754
2795
|
<formly-field class="dbx-form-repeat-array-field-content" [field]="field"></formly-field>
|
|
2755
2796
|
</div>
|
|
2756
2797
|
</div>
|
|
2757
2798
|
<!-- Add Button -->
|
|
2758
2799
|
<div class="dbx-form-repeat-array-footer">
|
|
2759
|
-
<button *ngIf="
|
|
2800
|
+
<dbx-button *ngIf="allowAdd" [raised]="true" [disabled]="addItemDisabled" [text]="addText" (buttonClick)="add()"></dbx-button>
|
|
2760
2801
|
</div>
|
|
2761
2802
|
</dbx-subsection>
|
|
2762
2803
|
</div>
|
|
@@ -2814,12 +2855,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
2814
2855
|
}] });
|
|
2815
2856
|
|
|
2816
2857
|
function repeatArrayField(config) {
|
|
2817
|
-
const { key, repeatFieldGroup, maxLength, addText, removeText, labelForField } = config;
|
|
2858
|
+
const { key, label, description, repeatFieldGroup, maxLength, addText, removeText, labelForField, disableRearrange, allowAdd, allowRemove } = config;
|
|
2818
2859
|
return formlyField(Object.assign(Object.assign({ key, type: 'repeatarray' }, propsAndConfigForFieldConfig(config, {
|
|
2860
|
+
label,
|
|
2861
|
+
description,
|
|
2819
2862
|
maxLength,
|
|
2820
2863
|
labelForField,
|
|
2821
2864
|
addText,
|
|
2822
|
-
removeText
|
|
2865
|
+
removeText,
|
|
2866
|
+
disableRearrange,
|
|
2867
|
+
allowAdd,
|
|
2868
|
+
allowRemove
|
|
2823
2869
|
})), { fieldArray: {
|
|
2824
2870
|
fieldGroup: asArray(repeatFieldGroup)
|
|
2825
2871
|
} }));
|