ngx-render-material-forms 2.5.12 → 2.5.14
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/esm2022/lib/FormioControl.mjs +36 -0
- package/esm2022/lib/components/Base.mjs +32 -0
- package/esm2022/lib/components/MaterialComponent.mjs +148 -0
- package/esm2022/lib/components/MaterialNestedComponent.mjs +38 -0
- package/esm2022/lib/components/Webform.mjs +18 -0
- package/esm2022/lib/components/add-on-products/add-on-products.component.mjs +841 -0
- package/esm2022/lib/components/button/button.component.mjs +101 -0
- package/esm2022/lib/components/calendar/calendar.component.mjs +127 -0
- package/esm2022/lib/components/checkbox/checkbox.component.mjs +53 -0
- package/esm2022/lib/components/columns/columns.component.mjs +58 -0
- package/esm2022/lib/components/common.service.mjs +255 -0
- package/esm2022/lib/components/confirmation-dialog/confirmation-dialog.component.mjs +24 -0
- package/esm2022/lib/components/container/container.component.mjs +24 -0
- package/{esm2020 → esm2022}/lib/components/content/content.component.mjs +18 -18
- package/esm2022/lib/components/currency/currency.component.mjs +41 -0
- package/esm2022/lib/components/datagrid/datagrid.component.mjs +693 -0
- package/esm2022/lib/components/date/date.component.mjs +336 -0
- package/{esm2020 → esm2022}/lib/components/day/day.component.mjs +75 -75
- package/esm2022/lib/components/editgrid/editgrid.component.mjs +243 -0
- package/esm2022/lib/components/email/email.component.mjs +28 -0
- package/esm2022/lib/components/fieldset/fieldset.component.mjs +49 -0
- package/esm2022/lib/components/formio-form-field/formio-form-field.component.mjs +56 -0
- package/esm2022/lib/components/formio.wizard.mjs +88 -0
- package/{esm2020 → esm2022}/lib/components/hidden/hidden.component.mjs +20 -20
- package/esm2022/lib/components/html/html.component.mjs +29 -0
- package/esm2022/lib/components/index.mjs +125 -0
- package/{esm2020 → esm2022}/lib/components/label/label.component.mjs +17 -17
- package/esm2022/lib/components/number/number.component.mjs +65 -0
- package/esm2022/lib/components/panel/panel.component.mjs +56 -0
- package/esm2022/lib/components/password/password.component.mjs +28 -0
- package/esm2022/lib/components/phonenumber/phonenumber.component.mjs +28 -0
- package/esm2022/lib/components/radio/radio.component.mjs +93 -0
- package/esm2022/lib/components/select/select.component.mjs +592 -0
- package/esm2022/lib/components/selectboxes/selectboxes.component.mjs +99 -0
- package/esm2022/lib/components/signature/signature.component.mjs +99 -0
- package/esm2022/lib/components/survey/survey.component.mjs +166 -0
- package/esm2022/lib/components/table/table.component.mjs +96 -0
- package/esm2022/lib/components/tabs/tabs.component.mjs +42 -0
- package/esm2022/lib/components/tags/tags.component.mjs +114 -0
- package/esm2022/lib/components/textarea/textarea.component.mjs +94 -0
- package/esm2022/lib/components/textfield/textfield.component.mjs +122 -0
- package/esm2022/lib/components/time/time.component.mjs +205 -0
- package/esm2022/lib/components/url/url.component.mjs +28 -0
- package/esm2022/lib/components/well/well.component.mjs +41 -0
- package/{esm2020 → esm2022}/lib/const/ButtonsThemes.mjs +16 -16
- package/{esm2020 → esm2022}/lib/const/LabelPositions.mjs +9 -9
- package/esm2022/lib/directives/mask.directive.mjs +65 -0
- package/esm2022/lib/formio.component.mjs +77 -0
- package/{esm2020 → esm2022}/lib/ngx-render-material-forms.component.mjs +15 -15
- package/esm2022/lib/ngx-render-material-forms.module.mjs +332 -0
- package/{esm2020 → esm2022}/lib/ngx-render-material-forms.service.mjs +14 -14
- package/{esm2020 → esm2022}/lib/renderer.mjs +12 -12
- package/{esm2020 → esm2022}/ngx-render-material-forms.js +4 -4
- package/{esm2020 → esm2022}/public-api.mjs +6 -6
- package/{fesm2020 → fesm2022}/ngx-render-material-forms.js +4218 -4286
- package/fesm2022/ngx-render-material-forms.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/FormioControl.d.ts +7 -7
- package/lib/components/Base.d.ts +2 -2
- package/lib/components/MaterialComponent.d.ts +30 -30
- package/lib/components/MaterialNestedComponent.d.ts +13 -13
- package/lib/components/Webform.d.ts +1 -1
- package/lib/components/add-on-products/add-on-products.component.d.ts +142 -142
- package/lib/components/button/button.component.d.ts +30 -30
- package/lib/components/calendar/calendar.component.d.ts +34 -34
- package/lib/components/checkbox/checkbox.component.d.ts +9 -9
- package/lib/components/columns/columns.component.d.ts +12 -12
- package/lib/components/common.service.d.ts +86 -86
- package/lib/components/confirmation-dialog/confirmation-dialog.component.d.ts +11 -11
- package/lib/components/container/container.component.d.ts +8 -8
- package/lib/components/content/content.component.d.ts +8 -8
- package/lib/components/currency/currency.component.d.ts +10 -10
- package/lib/components/datagrid/datagrid.component.d.ts +81 -81
- package/lib/components/date/date.component.d.ts +40 -40
- package/lib/components/day/day.component.d.ts +16 -16
- package/lib/components/editgrid/editgrid.component.d.ts +50 -50
- package/lib/components/email/email.component.d.ts +9 -9
- package/lib/components/fieldset/fieldset.component.d.ts +8 -8
- package/lib/components/formio-form-field/formio-form-field.component.d.ts +18 -18
- package/lib/components/formio.wizard.d.ts +19 -19
- package/lib/components/hidden/hidden.component.d.ts +8 -8
- package/lib/components/html/html.component.d.ts +11 -11
- package/lib/components/index.d.ts +2 -2
- package/lib/components/label/label.component.d.ts +6 -6
- package/lib/components/number/number.component.d.ts +18 -18
- package/lib/components/panel/panel.component.d.ts +8 -8
- package/lib/components/password/password.component.d.ts +9 -9
- package/lib/components/phonenumber/phonenumber.component.d.ts +9 -9
- package/lib/components/radio/radio.component.d.ts +12 -12
- package/lib/components/select/select.component.d.ts +77 -77
- package/lib/components/selectboxes/selectboxes.component.d.ts +15 -15
- package/lib/components/signature/signature.component.d.ts +12 -12
- package/lib/components/survey/survey.component.d.ts +14 -14
- package/lib/components/table/table.component.d.ts +12 -12
- package/lib/components/tabs/tabs.component.d.ts +9 -9
- package/lib/components/tags/tags.component.d.ts +15 -15
- package/lib/components/textarea/textarea.component.d.ts +13 -13
- package/lib/components/textfield/textfield.component.d.ts +18 -18
- package/lib/components/time/time.component.d.ts +27 -27
- package/lib/components/url/url.component.d.ts +9 -9
- package/lib/components/well/well.component.d.ts +8 -8
- package/lib/const/ButtonsThemes.d.ts +14 -14
- package/lib/const/LabelPositions.d.ts +8 -8
- package/lib/directives/mask.directive.d.ts +17 -17
- package/lib/formio.component.d.ts +15 -15
- package/lib/ngx-render-material-forms.component.d.ts +8 -8
- package/lib/ngx-render-material-forms.module.d.ts +110 -112
- package/lib/ngx-render-material-forms.service.d.ts +6 -6
- package/lib/renderer.d.ts +8 -8
- package/package.json +5 -11
- package/public-api.d.ts +3 -3
- package/esm2020/lib/FormioControl.mjs +0 -36
- package/esm2020/lib/components/Base.mjs +0 -32
- package/esm2020/lib/components/MaterialComponent.mjs +0 -145
- package/esm2020/lib/components/MaterialNestedComponent.mjs +0 -38
- package/esm2020/lib/components/Webform.mjs +0 -18
- package/esm2020/lib/components/add-on-products/add-on-products.component.mjs +0 -842
- package/esm2020/lib/components/button/button.component.mjs +0 -102
- package/esm2020/lib/components/calendar/calendar.component.mjs +0 -129
- package/esm2020/lib/components/checkbox/checkbox.component.mjs +0 -54
- package/esm2020/lib/components/columns/columns.component.mjs +0 -69
- package/esm2020/lib/components/common.service.mjs +0 -256
- package/esm2020/lib/components/confirmation-dialog/confirmation-dialog.component.mjs +0 -25
- package/esm2020/lib/components/container/container.component.mjs +0 -25
- package/esm2020/lib/components/currency/currency.component.mjs +0 -43
- package/esm2020/lib/components/datagrid/datagrid.component.mjs +0 -694
- package/esm2020/lib/components/date/date.component.mjs +0 -337
- package/esm2020/lib/components/editgrid/editgrid.component.mjs +0 -243
- package/esm2020/lib/components/email/email.component.mjs +0 -30
- package/esm2020/lib/components/fieldset/fieldset.component.mjs +0 -50
- package/esm2020/lib/components/formio-form-field/formio-form-field.component.mjs +0 -57
- package/esm2020/lib/components/formio.wizard.mjs +0 -88
- package/esm2020/lib/components/html/html.component.mjs +0 -29
- package/esm2020/lib/components/index.mjs +0 -125
- package/esm2020/lib/components/number/number.component.mjs +0 -67
- package/esm2020/lib/components/panel/panel.component.mjs +0 -57
- package/esm2020/lib/components/password/password.component.mjs +0 -30
- package/esm2020/lib/components/phonenumber/phonenumber.component.mjs +0 -30
- package/esm2020/lib/components/radio/radio.component.mjs +0 -96
- package/esm2020/lib/components/select/select.component.mjs +0 -593
- package/esm2020/lib/components/selectboxes/selectboxes.component.mjs +0 -102
- package/esm2020/lib/components/signature/signature.component.mjs +0 -103
- package/esm2020/lib/components/survey/survey.component.mjs +0 -167
- package/esm2020/lib/components/table/table.component.mjs +0 -97
- package/esm2020/lib/components/tabs/tabs.component.mjs +0 -43
- package/esm2020/lib/components/tags/tags.component.mjs +0 -117
- package/esm2020/lib/components/textarea/textarea.component.mjs +0 -98
- package/esm2020/lib/components/textfield/textfield.component.mjs +0 -124
- package/esm2020/lib/components/time/time.component.mjs +0 -206
- package/esm2020/lib/components/url/url.component.mjs +0 -30
- package/esm2020/lib/components/well/well.component.mjs +0 -43
- package/esm2020/lib/directives/mask.directive.mjs +0 -65
- package/esm2020/lib/formio.component.mjs +0 -80
- package/esm2020/lib/ngx-render-material-forms.module.mjs +0 -378
- package/fesm2015/ngx-render-material-forms.js +0 -5848
- package/fesm2015/ngx-render-material-forms.mjs.map +0 -1
- package/fesm2020/ngx-render-material-forms.mjs.map +0 -1
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild, ViewChildren } from '@angular/core';
|
|
2
|
-
import { MaterialNestedComponent } from '../MaterialNestedComponent';
|
|
3
|
-
import EditGridComponent from 'formiojs/components/editgrid/EditGrid.js';
|
|
4
|
-
import Components from 'formiojs/components/Components';
|
|
5
|
-
import isString from 'lodash/isString';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
var EditRowState;
|
|
8
|
-
(function (EditRowState) {
|
|
9
|
-
EditRowState["NEW"] = "new";
|
|
10
|
-
EditRowState["EDITING"] = "editing";
|
|
11
|
-
EditRowState["SAVED"] = "saved";
|
|
12
|
-
EditRowState["REMOVED"] = "removed";
|
|
13
|
-
EditRowState["DRAFT"] = "draft";
|
|
14
|
-
})(EditRowState || (EditRowState = {}));
|
|
15
|
-
;
|
|
16
|
-
/* tslint:disable no-bitwise only-arrow-functions */
|
|
17
|
-
const hashCode = function (str) {
|
|
18
|
-
let hash = 0;
|
|
19
|
-
let i = 0;
|
|
20
|
-
let chr;
|
|
21
|
-
str = str.replace(/\s/g, '');
|
|
22
|
-
if (str.length === 0) {
|
|
23
|
-
return hash;
|
|
24
|
-
}
|
|
25
|
-
for (i = 0; i < str.length; i++) {
|
|
26
|
-
chr = str.charCodeAt(i);
|
|
27
|
-
hash = ((hash << 5) - hash) + chr;
|
|
28
|
-
hash |= 0; // Convert to 32bit integer
|
|
29
|
-
}
|
|
30
|
-
return hash;
|
|
31
|
-
};
|
|
32
|
-
/* tslint:enable no-bitwise only-arrow-functions */
|
|
33
|
-
// Do nothing to createRowComponents, let mat-formio handle it.
|
|
34
|
-
/* tslint:disable only-arrow-functions */
|
|
35
|
-
EditGridComponent.prototype.createRowComponents = function () {
|
|
36
|
-
return [];
|
|
37
|
-
};
|
|
38
|
-
const checkRow = EditGridComponent.prototype.checkRow;
|
|
39
|
-
EditGridComponent.prototype.checkRow = function (data, editRow, flags = {}) {
|
|
40
|
-
if (flags.checkRow) {
|
|
41
|
-
return checkRow.call(this, data, editRow, flags);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
return true;
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
/* tslint:enable only-arrow-functions */
|
|
48
|
-
const DEFAULT_HEADER_TEMPLATES = [
|
|
49
|
-
hashCode(EditGridComponent.defaultHeaderTemplate),
|
|
50
|
-
hashCode(`
|
|
51
|
-
<div class="row">
|
|
52
|
-
{% (components || []).forEach(function(component) { %}
|
|
53
|
-
<div class="col-sm-2">{{ component.label }}</div>
|
|
54
|
-
{% }) %}
|
|
55
|
-
</div>`)
|
|
56
|
-
];
|
|
57
|
-
const DEFAULT_ROW_TEMPLATES = [
|
|
58
|
-
hashCode(EditGridComponent.defaultRowTemplate),
|
|
59
|
-
hashCode(`<div class="row">
|
|
60
|
-
{% util.eachComponent(components, function(component) { %}
|
|
61
|
-
<div class="col-sm-2">
|
|
62
|
-
{{ getView(component, row[component.key]) }}
|
|
63
|
-
</div>
|
|
64
|
-
{% }) %}
|
|
65
|
-
{% if (!instance.options.readOnly) { %}
|
|
66
|
-
<div class="col-sm-2">
|
|
67
|
-
<div class="btn-group pull-right">
|
|
68
|
-
<button class="btn btn-default btn-sm editRow">Edit</button>
|
|
69
|
-
<button class="btn btn-danger btn-sm removeRow">Delete</button>
|
|
70
|
-
</div>
|
|
71
|
-
</div>
|
|
72
|
-
{% } %}
|
|
73
|
-
</div>`)
|
|
74
|
-
];
|
|
75
|
-
export class MaterialEditGridComponent extends MaterialNestedComponent {
|
|
76
|
-
constructor() {
|
|
77
|
-
super(...arguments);
|
|
78
|
-
this.columns = {};
|
|
79
|
-
this.colWidth = 0;
|
|
80
|
-
this.valid = true;
|
|
81
|
-
this.RowStates = EditRowState;
|
|
82
|
-
}
|
|
83
|
-
getRowTemplate(content) {
|
|
84
|
-
return `<mat-list style="display: flex;">
|
|
85
|
-
{% (components || []).forEach(function(component) { %}
|
|
86
|
-
{% if (!component.hasOwnProperty('tableView') || component.tableView) { %}
|
|
87
|
-
<mat-list-item style="width: {{ colWidth }}%; margin: 0 0.8rem">${content}</mat-list-item>
|
|
88
|
-
{% } %}
|
|
89
|
-
{% }) %}
|
|
90
|
-
</mat-list>`;
|
|
91
|
-
}
|
|
92
|
-
validate(index) {
|
|
93
|
-
if (!this.forms) {
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
const forms = this.forms.toArray();
|
|
97
|
-
if (!forms[index]) {
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
const formioComponent = forms[index];
|
|
101
|
-
const { data } = formioComponent.formio.submission;
|
|
102
|
-
const isInvalid = Object.keys(data).some(value => isString(data[value]) && data[value].length === 0);
|
|
103
|
-
if (isInvalid) {
|
|
104
|
-
this.valid = false;
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
this.valid = true;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
setInstance(instance) {
|
|
111
|
-
if (instance.component.templates.header &&
|
|
112
|
-
(DEFAULT_HEADER_TEMPLATES.indexOf(hashCode(instance.component.templates.header)) !== -1)) {
|
|
113
|
-
instance.component.templates.header = this.getRowTemplate('{{ component.label }}');
|
|
114
|
-
}
|
|
115
|
-
if (instance.component.templates.row &&
|
|
116
|
-
(DEFAULT_ROW_TEMPLATES.indexOf(hashCode(instance.component.templates.row)) !== -1)) {
|
|
117
|
-
instance.component.templates.row = this.getRowTemplate('{{ getView(component, row[component.key]) }}');
|
|
118
|
-
}
|
|
119
|
-
this.displayedColumns = instance.component.components.map((comp) => {
|
|
120
|
-
if (comp.hasOwnProperty('tableView') && !comp.tableView) {
|
|
121
|
-
return false;
|
|
122
|
-
}
|
|
123
|
-
this.columns[comp.key] = comp;
|
|
124
|
-
return comp.key;
|
|
125
|
-
}).filter(name => !!name);
|
|
126
|
-
const dataValue = instance.dataValue || [];
|
|
127
|
-
this.colWidth = instance.component.components.length ? Math.floor(100 / instance.component.components.length) : 100;
|
|
128
|
-
if (instance.component.templates && instance.component.templates.header) {
|
|
129
|
-
this.header = instance.renderString(instance.component.templates.header, {
|
|
130
|
-
components: instance.component.components,
|
|
131
|
-
value: dataValue,
|
|
132
|
-
colWidth: this.colWidth
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
if (instance.component.templates && instance.component.templates.footer) {
|
|
136
|
-
this.footer = instance.renderString(instance.component.templates.footer, {
|
|
137
|
-
components: instance.component.components,
|
|
138
|
-
value: dataValue,
|
|
139
|
-
colWidth: this.colWidth
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
setTimeout(() => {
|
|
143
|
-
this.renderTemplate(this.headerElement, this.header);
|
|
144
|
-
this.renderTemplate(this.footerElement, this.footer);
|
|
145
|
-
}, 0);
|
|
146
|
-
super.setInstance(instance);
|
|
147
|
-
}
|
|
148
|
-
addAnother() {
|
|
149
|
-
const row = this.instance.addRow();
|
|
150
|
-
}
|
|
151
|
-
editRow(row, index) {
|
|
152
|
-
const { state } = row;
|
|
153
|
-
const { NEW, REMOVED } = this.RowStates;
|
|
154
|
-
if (state === NEW || state === REMOVED) {
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
this.instance.editRow(index);
|
|
158
|
-
const forms = this.forms.toArray();
|
|
159
|
-
if (forms[index]) {
|
|
160
|
-
forms[index].formio.submission = { data: JSON.parse(JSON.stringify(row.data)) };
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Updates the row template.
|
|
165
|
-
*
|
|
166
|
-
* @param row
|
|
167
|
-
* @param index
|
|
168
|
-
*/
|
|
169
|
-
updateRowTemplate(rowElement, index, comps) {
|
|
170
|
-
const self = this;
|
|
171
|
-
const editRow = { ...this.instance.editRows[index] };
|
|
172
|
-
if (editRow.state !== this.RowStates.NEW) {
|
|
173
|
-
this.renderTemplate(rowElement, this.instance.renderString(this.instance.component.templates.row, {
|
|
174
|
-
row: this.instance.dataValue[index] || {},
|
|
175
|
-
data: this.instance.data,
|
|
176
|
-
rowIndex: index,
|
|
177
|
-
colWidth: this.colWidth,
|
|
178
|
-
components: this.instance.component.components,
|
|
179
|
-
getView: function getView(component, data) {
|
|
180
|
-
if (!comps[component.type]) {
|
|
181
|
-
comps[component.type] = Components.create(component, {}, {}, true);
|
|
182
|
-
}
|
|
183
|
-
return comps[component.type] ? comps[component.type].getView(data) : '';
|
|
184
|
-
}
|
|
185
|
-
}));
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
/**
|
|
189
|
-
* Saves a row.
|
|
190
|
-
*
|
|
191
|
-
* @param row - The edit grid row.
|
|
192
|
-
* @param index - The index for this row.
|
|
193
|
-
*/
|
|
194
|
-
saveRow(row, index) {
|
|
195
|
-
const forms = this.forms.toArray();
|
|
196
|
-
if (forms[index]) {
|
|
197
|
-
const formioComponent = forms[index];
|
|
198
|
-
row.data = JSON.parse(JSON.stringify(formioComponent.formio.submission.data));
|
|
199
|
-
this.instance.saveRow(index);
|
|
200
|
-
const rows = this.rowElements.toArray();
|
|
201
|
-
if (rows && rows[index]) {
|
|
202
|
-
this.updateRowTemplate(rows[index], index, {});
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
cancelRow(index) {
|
|
207
|
-
this.instance.cancelRow(index);
|
|
208
|
-
this.valid = true;
|
|
209
|
-
}
|
|
210
|
-
renderTemplate(element, template) {
|
|
211
|
-
if (!element || !element.nativeElement) {
|
|
212
|
-
return;
|
|
213
|
-
}
|
|
214
|
-
element.nativeElement.innerHTML = template;
|
|
215
|
-
}
|
|
216
|
-
ngAfterViewInit() {
|
|
217
|
-
this.rowElements.changes.subscribe((rows) => {
|
|
218
|
-
const rowCache = {};
|
|
219
|
-
rows.forEach((row, index) => this.updateRowTemplate(row, index, rowCache));
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
MaterialEditGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialEditGridComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
224
|
-
MaterialEditGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialEditGridComponent, selector: "mat-formio-editgrid", viewQueries: [{ propertyName: "headerElement", first: true, predicate: ["header"], descendants: true }, { propertyName: "footerElement", first: true, predicate: ["footer"], descendants: true }, { propertyName: "rowElements", predicate: ["rows"], descendants: true }, { propertyName: "forms", predicate: ["forms"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\" [labelTemplate]=\"labelTemplate\">\r\n</mat-formio-form-field>\r\n<ng-template #componentTemplate let-hasLabel>\r\n\r\n <span fxLayout=\"column\" fxLayoutGap=\"1em\" fxFill>\r\n <ng-container *ngIf=\"hasLabel\">\r\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\r\n </ng-container>\r\n <mat-accordion>\r\n <mat-expansion-panel *ngIf=\"header\" disabled=\"true\">\r\n <mat-expansion-panel-header>\r\n <span #header fxFill></span>\r\n </mat-expansion-panel-header>\r\n </mat-expansion-panel>\r\n\r\n <mat-expansion-panel *ngFor=\"let row of instance.editRows; index as i;\" [expanded]=\"instance.isOpen(row)\">\r\n <mat-expansion-panel-header (click)=\"editRow(row, i)\">\r\n <span *ngIf=\"row.state !== RowStates.NEW\" #rows fxFill></span>\r\n </mat-expansion-panel-header>\r\n\r\n <mat-formio [form]=\"instance.component\" #forms (change)=\"validate(i)\"></mat-formio>\r\n\r\n <span fxLayout=\"row\" fxLayoutGap=\"1em\">\r\n <button mat-raised-button color=\"primary\" [disabled]=\"!valid\" (click)=\"saveRow(row, i)\">Save</button>\r\n <button mat-raised-button color=\"secondary\" (click)=\"cancelRow(i)\">Cancel</button>\r\n <button mat-raised-button color=\"warn\" (click)=\"instance.removeRow(i)\" class=\"delete-button\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </span>\r\n </mat-expansion-panel>\r\n\r\n <mat-expansion-panel *ngIf=\"footer\" disabled=\"true\">\r\n <mat-expansion-panel-header>\r\n <span #footer></span>\r\n </mat-expansion-panel-header>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n\r\n <span fxFill=\"none\" *ngIf=\"instance.hasAddButton()\">\r\n <button mat-raised-button color=\"primary\" (click)=\"addAnother()\">\r\n <mat-icon>add</mat-icon> Add Another\r\n </button>\r\n </span>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #labelTemplate>\r\n <mat-card-title>\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-card-title>\r\n</ng-template> -->\r\n", styles: [":host .delete-button{margin-left:auto;order:2}\n"] });
|
|
225
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialEditGridComponent, decorators: [{
|
|
226
|
-
type: Component,
|
|
227
|
-
args: [{ selector: 'mat-formio-editgrid', template: "<!-- <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\" [labelTemplate]=\"labelTemplate\">\r\n</mat-formio-form-field>\r\n<ng-template #componentTemplate let-hasLabel>\r\n\r\n <span fxLayout=\"column\" fxLayoutGap=\"1em\" fxFill>\r\n <ng-container *ngIf=\"hasLabel\">\r\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\r\n </ng-container>\r\n <mat-accordion>\r\n <mat-expansion-panel *ngIf=\"header\" disabled=\"true\">\r\n <mat-expansion-panel-header>\r\n <span #header fxFill></span>\r\n </mat-expansion-panel-header>\r\n </mat-expansion-panel>\r\n\r\n <mat-expansion-panel *ngFor=\"let row of instance.editRows; index as i;\" [expanded]=\"instance.isOpen(row)\">\r\n <mat-expansion-panel-header (click)=\"editRow(row, i)\">\r\n <span *ngIf=\"row.state !== RowStates.NEW\" #rows fxFill></span>\r\n </mat-expansion-panel-header>\r\n\r\n <mat-formio [form]=\"instance.component\" #forms (change)=\"validate(i)\"></mat-formio>\r\n\r\n <span fxLayout=\"row\" fxLayoutGap=\"1em\">\r\n <button mat-raised-button color=\"primary\" [disabled]=\"!valid\" (click)=\"saveRow(row, i)\">Save</button>\r\n <button mat-raised-button color=\"secondary\" (click)=\"cancelRow(i)\">Cancel</button>\r\n <button mat-raised-button color=\"warn\" (click)=\"instance.removeRow(i)\" class=\"delete-button\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </span>\r\n </mat-expansion-panel>\r\n\r\n <mat-expansion-panel *ngIf=\"footer\" disabled=\"true\">\r\n <mat-expansion-panel-header>\r\n <span #footer></span>\r\n </mat-expansion-panel-header>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n\r\n <span fxFill=\"none\" *ngIf=\"instance.hasAddButton()\">\r\n <button mat-raised-button color=\"primary\" (click)=\"addAnother()\">\r\n <mat-icon>add</mat-icon> Add Another\r\n </button>\r\n </span>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #labelTemplate>\r\n <mat-card-title>\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-card-title>\r\n</ng-template> -->\r\n", styles: [":host .delete-button{margin-left:auto;order:2}\n"] }]
|
|
228
|
-
}], propDecorators: { headerElement: [{
|
|
229
|
-
type: ViewChild,
|
|
230
|
-
args: ['header']
|
|
231
|
-
}], footerElement: [{
|
|
232
|
-
type: ViewChild,
|
|
233
|
-
args: ['footer']
|
|
234
|
-
}], rowElements: [{
|
|
235
|
-
type: ViewChildren,
|
|
236
|
-
args: ['rows']
|
|
237
|
-
}], forms: [{
|
|
238
|
-
type: ViewChildren,
|
|
239
|
-
args: ['forms']
|
|
240
|
-
}] } });
|
|
241
|
-
EditGridComponent.MaterialComponent = MaterialEditGridComponent;
|
|
242
|
-
export { EditGridComponent };
|
|
243
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvZWRpdGdyaWQvZWRpdGdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvZWRpdGdyaWQvZWRpdGdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxFQUliLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8saUJBQWlCLE1BQU0sMENBQTBDLENBQUM7QUFFekUsT0FBTyxVQUFVLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEQsT0FBTyxRQUFRLE1BQU0saUJBQWlCLENBQUM7O0FBRXZDLElBQUssWUFNSjtBQU5ELFdBQUssWUFBWTtJQUNmLDJCQUFXLENBQUE7SUFDWCxtQ0FBa0IsQ0FBQTtJQUNsQiwrQkFBZSxDQUFBO0lBQ2YsbUNBQW1CLENBQUE7SUFDbkIsK0JBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTkksWUFBWSxLQUFaLFlBQVksUUFNaEI7QUFBQSxDQUFDO0FBRUYsb0RBQW9EO0FBQ3BELE1BQU0sUUFBUSxHQUFHLFVBQVMsR0FBRztJQUMzQixJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7SUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDVixJQUFJLEdBQUcsQ0FBQztJQUNSLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3QixJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFF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Q2EseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHFCQUFxQjs4QkFLVixhQUFhO3NCQUFqQyxTQUFTO3VCQUFDLFFBQVE7Z0JBQ0UsYUFBYTtzQkFBakMsU0FBUzt1QkFBQyxRQUFRO2dCQUNHLFdBQVc7c0JBQWhDLFlBQVk7dUJBQUMsTUFBTTtnQkFDRyxLQUFLO3NCQUEzQixZQUFZO3VCQUFDLE9BQU87O0FBdUt2QixpQkFBaUIsQ0FBQyxpQkFBaUIsR0FBRyx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q2hpbGRyZW4sXHJcbiAgUXVlcnlMaXN0LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQWZ0ZXJWaWV3SW5pdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE5lc3RlZENvbXBvbmVudCB9IGZyb20gJy4uL01hdGVyaWFsTmVzdGVkQ29tcG9uZW50JztcclxuaW1wb3J0IEVkaXRHcmlkQ29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvZWRpdGdyaWQvRWRpdEdyaWQuanMnO1xyXG5pbXBvcnQgeyBGb3JtaW9Db21wb25lbnQgfSBmcm9tICcuLi8uLi9mb3JtaW8uY29tcG9uZW50JztcclxuaW1wb3J0IENvbXBvbmVudHMgZnJvbSAnZm9ybWlvanMvY29tcG9uZW50cy9Db21wb25lbnRzJztcclxuaW1wb3J0IGlzU3RyaW5nIGZyb20gJ2xvZGFzaC9pc1N0cmluZyc7XHJcblxyXG5lbnVtIEVkaXRSb3dTdGF0ZSB7XHJcbiAgTkVXID0gJ25ldycsXHJcbiAgRURJVElORyA9J2VkaXRpbmcnLFxyXG4gIFNBVkVEID0gJ3NhdmVkJyxcclxuICBSRU1PVkVEID0gJ3JlbW92ZWQnLFxyXG4gIERSQUZUID0gJ2RyYWZ0J1xyXG59O1xyXG5cclxuLyogdHNsaW50OmRpc2FibGUgbm8tYml0d2lzZSBvbmx5LWFycm93LWZ1bmN0aW9ucyAqL1xyXG5jb25zdCBoYXNoQ29kZSA9IGZ1bmN0aW9uKHN0cikge1xyXG4gIGxldCBoYXNoID0gMDtcclxuICBsZXQgaSA9IDA7XHJcbiAgbGV0IGNocjtcclxuICBzdHIgPSBzdHIucmVwbGFjZSgvXFxzL2csICcnKTtcclxuICBpZiAoc3RyLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgcmV0dXJuIGhhc2g7XHJcbiAgfVxyXG4gIGZvciAoaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcclxuICAgIGNociAgID0gc3RyLmNoYXJDb2RlQXQoaSk7XHJcbiAgICBoYXNoICA9ICgoaGFzaCA8PCA1KSAtIGhhc2gpICsgY2hyO1xyXG4gICAgaGFzaCB8PSAwOyAvLyBDb252ZXJ0IHRvIDMyYml0IGludGVnZXJcclxuICB9XHJcbiAgcmV0dXJuIGhhc2g7XHJcbn07XHJcbi8qIHRzbGludDplbmFibGUgbm8tYml0d2lzZSBvbmx5LWFycm93LWZ1bmN0aW9ucyAqL1xyXG5cclxuLy8gRG8gbm90aGluZyB0byBjcmVhdGVSb3dDb21wb25lbnRzLCBsZXQgbWF0LWZvcm1pbyBoYW5kbGUgaXQuXHJcbi8qIHRzbGludDpkaXNhYmxlIG9ubHktYXJyb3ctZnVuY3Rpb25zICovXHJcbkVkaXRHcmlkQ29tcG9uZW50LnByb3RvdHlwZS5jcmVhdGVSb3dDb21wb25lbnRzID0gZnVuY3Rpb24oKSB7XHJcbiAgcmV0dXJuIFtdO1xyXG59O1xyXG5cclxuY29uc3QgY2hlY2tSb3cgPSBFZGl0R3JpZENvbXBvbmVudC5wcm90b3R5cGUuY2hlY2tSb3c7XHJcbkVkaXRHcmlkQ29tcG9uZW50LnByb3RvdHlwZS5jaGVja1JvdyA9IGZ1bmN0aW9uKGRhdGEsIGVkaXRSb3csIGZsYWdzOiBhbnkgPSB7fSkge1xyXG4gIGlmIChmbGFncy5jaGVja1Jvdykge1xyXG4gICAgcmV0dXJuIGNoZWNrUm93LmNhbGwodGhpcywgZGF0YSwgZWRpdFJvdywgZmxhZ3MpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbn07XHJcbi8qIHRzbGludDplbmFibGUgb25seS1hcnJvdy1mdW5jdGlvbnMgKi9cclxuXHJcbmNvbnN0IERFRkFVTFRfSEVBREVSX1RFTVBMQVRFUyA9IFtcclxuICBoYXNoQ29kZSgoRWRpdEdyaWRDb21wb25lbnQgYXMgYW55KS5kZWZhdWx0SGVhZGVyVGVtcGxhdGUpLFxyXG4gIGhhc2hDb2RlKGBcclxuICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICB7JSAoY29tcG9uZW50cyB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbihjb21wb25lbnQpIHsgJX1cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0yXCI+e3sgY29tcG9uZW50LmxhYmVsIH19PC9kaXY+XHJcbiAgICB7JSB9KSAlfVxyXG4gIDwvZGl2PmApXHJcbl07XHJcblxyXG5jb25zdCBERUZBVUxUX1JPV19URU1QTEFURVMgPSBbXHJcbiAgaGFzaENvZGUoKEVkaXRHcmlkQ29tcG9uZW50IGFzIGFueSkuZGVmYXVsdFJvd1RlbXBsYXRlKSxcclxuICBoYXNoQ29kZShgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gIHslIHV0aWwuZWFjaENvbXBvbmVudChjb21wb25lbnRzLCBmdW5jdGlvbihjb21wb25lbnQpIHsgJX1cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMlwiPlxyXG4gICAgICB7eyBnZXRWaWV3KGNvbXBvbmVudCwgcm93W2NvbXBvbmVudC5rZXldKSB9fVxyXG4gICAgPC9kaXY+XHJcbiAgeyUgfSkgJX1cclxuICB7JSBpZiAoIWluc3RhbmNlLm9wdGlvbnMucmVhZE9ubHkpIHsgJX1cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwIHB1bGwtcmlnaHRcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbSBlZGl0Um93XCI+RWRpdDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWRhbmdlciBidG4tc20gcmVtb3ZlUm93XCI+RGVsZXRlPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgeyUgfSAlfVxyXG48L2Rpdj5gKVxyXG5dO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLWVkaXRncmlkJyxcclxuICBzdHlsZVVybHM6IFsnLi9lZGl0Z3JpZC5jb21wb25lbnQuY3NzJ10sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXRncmlkLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxFZGl0R3JpZENvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnaGVhZGVyJykgaGVhZGVyRWxlbWVudDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdmb290ZXInKSBmb290ZXJFbGVtZW50OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGRyZW4oJ3Jvd3MnKSByb3dFbGVtZW50czogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xyXG4gIEBWaWV3Q2hpbGRyZW4oJ2Zvcm1zJykgZm9ybXM6IFF1ZXJ5TGlzdDxGb3JtaW9Db21wb25lbnQ+O1xyXG4gIHB1YmxpYyBoZWFkZXI6IHN0cmluZztcclxuICBwdWJsaWMgZm9vdGVyOiBzdHJpbmc7XHJcbiAgcHVibGljIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdO1xyXG4gIHB1YmxpYyBjb2x1bW5zOiBhbnkgPSB7fTtcclxuICBwdWJsaWMgY29sV2lkdGggPSAwO1xyXG4gIHB1YmxpYyB2YWxpZCA9IHRydWU7XHJcbiAgcHVibGljIFJvd1N0YXRlcyA9IEVkaXRSb3dTdGF0ZTtcclxuXHJcbiAgZ2V0Um93VGVtcGxhdGUoY29udGVudCkge1xyXG4gICAgcmV0dXJuIGA8bWF0LWxpc3Qgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICB7JSAoY29tcG9uZW50cyB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbihjb21wb25lbnQpIHsgJX1cclxuICAgICAgICB7JSBpZiAoIWNvbXBvbmVudC5oYXNPd25Qcm9wZXJ0eSgndGFibGVWaWV3JykgfHwgY29tcG9uZW50LnRhYmxlVmlldykgeyAlfVxyXG4gICAgICAgICAgPG1hdC1saXN0LWl0ZW0gc3R5bGU9XCJ3aWR0aDoge3sgY29sV2lkdGggfX0lOyBtYXJnaW46IDAgMC44cmVtXCI+JHtjb250ZW50fTwvbWF0LWxpc3QtaXRlbT5cclxuICAgICAgICB7JSB9ICV9XHJcbiAgICAgIHslIH0pICV9XHJcbiAgICA8L21hdC1saXN0PmA7XHJcbn1cclxuXHJcbiAgdmFsaWRhdGUoaW5kZXgpIHtcclxuICAgIGlmICghdGhpcy5mb3Jtcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBmb3JtcyA9IHRoaXMuZm9ybXMudG9BcnJheSgpO1xyXG4gICAgaWYgKCFmb3Jtc1tpbmRleF0pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZm9ybWlvQ29tcG9uZW50ID0gZm9ybXNbaW5kZXhdO1xyXG4gICAgY29uc3Qge2RhdGF9ID0gZm9ybWlvQ29tcG9uZW50LmZvcm1pby5zdWJtaXNzaW9uO1xyXG4gICAgY29uc3QgaXNJbnZhbGlkID0gT2JqZWN0LmtleXMoZGF0YSkuc29tZShcclxuICAgICAgdmFsdWUgPT4gaXNTdHJpbmcoZGF0YVt2YWx1ZV0pICYmIGRhdGFbdmFsdWVdLmxlbmd0aCA9PT0gMFxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoaXNJbnZhbGlkKSB7XHJcbiAgICAgIHRoaXMudmFsaWQgPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsaWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0SW5zdGFuY2UoaW5zdGFuY2UpIHtcclxuICAgIGlmIChcclxuICAgICAgaW5zdGFuY2UuY29tcG9uZW50LnRlbXBsYXRlcy5oZWFkZXIgJiZcclxuICAgICAgKERFRkFVTFRfSEVBREVSX1RFTVBMQVRFUy5pbmRleE9mKGhhc2hDb2RlKGluc3RhbmNlLmNvbXBvbmVudC50ZW1wbGF0ZXMuaGVhZGVyKSkgIT09IC0xKVxyXG4gICAgKSB7XHJcbiAgICAgIGluc3RhbmNlLmNvbXBvbmVudC50ZW1wbGF0ZXMuaGVhZGVyID0gdGhpcy5nZXRSb3dUZW1wbGF0ZSgne3sgY29tcG9uZW50LmxhYmVsIH19Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGluc3RhbmNlLmNvbXBvbmVudC50ZW1wbGF0ZXMucm93ICYmXHJcbiAgICAgIChERUZBVUxUX1JPV19URU1QTEFURVMuaW5kZXhPZihoYXNoQ29kZShpbnN0YW5jZS5jb21wb25lbnQudGVtcGxhdGVzLnJvdykpICE9PSAtMSlcclxuICAgICkge1xyXG4gICAgICBpbnN0YW5jZS5jb21wb25lbnQudGVtcGxhdGVzLnJvdyA9IHRoaXMuZ2V0Um93VGVtcGxhdGUoJ3t7IGdldFZpZXcoY29tcG9uZW50LCByb3dbY29tcG9uZW50LmtleV0pIH19Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gaW5zdGFuY2UuY29tcG9uZW50LmNvbXBvbmVudHMubWFwKChjb21wKSA9PiB7XHJcbiAgICAgIGlmIChjb21wLmhhc093blByb3BlcnR5KCd0YWJsZVZpZXcnKSAmJiAhY29tcC50YWJsZVZpZXcpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuY29sdW1uc1tjb21wLmtleV0gPSBjb21wO1xyXG4gICAgICByZXR1cm4gY29tcC5rZXk7XHJcbiAgICB9KS5maWx0ZXIobmFtZSA9PiAhIW5hbWUpO1xyXG4gICAgY29uc3QgZGF0YVZhbHVlID0gaW5zdGFuY2UuZGF0YVZhbHVlIHx8IFtdO1xyXG4gICAgdGhpcy5jb2xXaWR0aCA9IGluc3RhbmNlLmNvbXBvbmVudC5jb21wb25lbnRzLmxlbmd0aCA/IE1hdGguZmxvb3IoMTAwIC8gaW5zdGFuY2UuY29tcG9uZW50LmNvbXBvbmVudHMubGVuZ3RoKSA6IDEwMDtcclxuICAgIGlmIChpbnN0YW5jZS5jb21wb25lbnQudGVtcGxhdGVzICYmIGluc3RhbmNlLmNvbXBvbmVudC50ZW1wbGF0ZXMuaGVhZGVyKSB7XHJcbiAgICAgIHRoaXMuaGVhZGVyID0gaW5zdGFuY2UucmVuZGVyU3RyaW5nKGluc3RhbmNlLmNvbXBvbmVudC50ZW1wbGF0ZXMuaGVhZGVyLCB7XHJcbiAgICAgICAgY29tcG9uZW50czogaW5zdGFuY2UuY29tcG9uZW50LmNvbXBvbmVudHMsXHJcbiAgICAgICAgdmFsdWU6IGRhdGFWYWx1ZSxcclxuICAgICAgICBjb2xXaWR0aDogdGhpcy5jb2xXaWR0aFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChpbnN0YW5jZS5jb21wb25lbnQudGVtcGxhdGVzICYmIGluc3RhbmNlLmNvbXBvbmVudC50ZW1wbGF0ZXMuZm9vdGVyKSB7XHJcbiAgICAgIHRoaXMuZm9vdGVyID0gaW5zdGFuY2UucmVuZGVyU3RyaW5nKGluc3RhbmNlLmNvbXBvbmVudC50ZW1wbGF0ZXMuZm9vdGVyLCB7XHJcbiAgICAgICAgY29tcG9uZW50czogaW5zdGFuY2UuY29tcG9uZW50LmNvbXBvbmVudHMsXHJcbiAgICAgICAgdmFsdWU6IGRhdGFWYWx1ZSxcclxuICAgICAgICBjb2xXaWR0aDogdGhpcy5jb2xXaWR0aFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlbmRlclRlbXBsYXRlKHRoaXMuaGVhZGVyRWxlbWVudCwgdGhpcy5oZWFkZXIpO1xyXG4gICAgICB0aGlzLnJlbmRlclRlbXBsYXRlKHRoaXMuZm9vdGVyRWxlbWVudCwgdGhpcy5mb290ZXIpO1xyXG4gICAgfSwgMCk7XHJcbiAgICBzdXBlci5zZXRJbnN0YW5jZShpbnN0YW5jZSk7XHJcbiAgfVxyXG5cclxuICBhZGRBbm90aGVyKCkge1xyXG4gICAgY29uc3Qgcm93ID0gdGhpcy5pbnN0YW5jZS5hZGRSb3coKTtcclxuICB9XHJcblxyXG4gIGVkaXRSb3cocm93LCBpbmRleCkge1xyXG4gICAgY29uc3QgeyBzdGF0ZSB9ID0gcm93O1xyXG4gICAgY29uc3QgeyBORVcsIFJFTU9WRUQgfSA9IHRoaXMuUm93U3RhdGVzO1xyXG5cclxuICAgIGlmIChzdGF0ZSA9PT0gTkVXIHx8IHN0YXRlID09PSBSRU1PVkVEKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaW5zdGFuY2UuZWRpdFJvdyhpbmRleCk7XHJcbiAgICBjb25zdCBmb3JtcyA9IHRoaXMuZm9ybXMudG9BcnJheSgpO1xyXG4gICAgaWYgKGZvcm1zW2luZGV4XSkge1xyXG4gICAgICBmb3Jtc1tpbmRleF0uZm9ybWlvLnN1Ym1pc3Npb24gPSB7ZGF0YTogSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShyb3cuZGF0YSkpfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIHJvdyB0ZW1wbGF0ZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSByb3dcclxuICAgKiBAcGFyYW0gaW5kZXhcclxuICAgKi9cclxuICB1cGRhdGVSb3dUZW1wbGF0ZShyb3dFbGVtZW50OiBFbGVtZW50UmVmLCBpbmRleCwgY29tcHMpIHtcclxuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgY29uc3QgZWRpdFJvdzogYW55ID0gey4uLnRoaXMuaW5zdGFuY2UuZWRpdFJvd3NbaW5kZXhdfTtcclxuICAgIGlmIChlZGl0Um93LnN0YXRlICE9PSB0aGlzLlJvd1N0YXRlcy5ORVcpIHtcclxuICAgICAgdGhpcy5yZW5kZXJUZW1wbGF0ZShyb3dFbGVtZW50LCB0aGlzLmluc3RhbmNlLnJlbmRlclN0cmluZyh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC50ZW1wbGF0ZXMucm93LCB7XHJcbiAgICAgICAgcm93OiB0aGlzLmluc3RhbmNlLmRhdGFWYWx1ZVtpbmRleF0gfHwge30sXHJcbiAgICAgICAgZGF0YTogdGhpcy5pbnN0YW5jZS5kYXRhLFxyXG4gICAgICAgIHJvd0luZGV4OiBpbmRleCxcclxuICAgICAgICBjb2xXaWR0aDogdGhpcy5jb2xXaWR0aCxcclxuICAgICAgICBjb21wb25lbnRzOiB0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5jb21wb25lbnRzLFxyXG4gICAgICAgIGdldFZpZXc6IGZ1bmN0aW9uIGdldFZpZXcoY29tcG9uZW50LCBkYXRhKSB7XHJcbiAgICAgICAgICBpZiAoIWNvbXBzW2NvbXBvbmVudC50eXBlXSkge1xyXG4gICAgICAgICAgICBjb21wc1tjb21wb25lbnQudHlwZV0gPSBDb21wb25lbnRzLmNyZWF0ZShjb21wb25lbnQsIHt9LCB7fSwgdHJ1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gY29tcHNbY29tcG9uZW50LnR5cGVdID8gY29tcHNbY29tcG9uZW50LnR5cGVdLmdldFZpZXcoZGF0YSkgOiAnJztcclxuICAgICAgICB9XHJcbiAgICAgIH0pKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNhdmVzIGEgcm93LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHJvdyAtIFRoZSBlZGl0IGdyaWQgcm93LlxyXG4gICAqIEBwYXJhbSBpbmRleCAtIFRoZSBpbmRleCBmb3IgdGhpcyByb3cuXHJcbiAgICovXHJcbiAgc2F2ZVJvdyhyb3csIGluZGV4KSB7XHJcbiAgICBjb25zdCBmb3JtcyA9IHRoaXMuZm9ybXMudG9BcnJheSgpO1xyXG4gICAgaWYgKGZvcm1zW2luZGV4XSkge1xyXG4gICAgICBjb25zdCBmb3JtaW9Db21wb25lbnQgPSBmb3Jtc1tpbmRleF07XHJcbiAgICAgIHJvdy5kYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShmb3JtaW9Db21wb25lbnQuZm9ybWlvLnN1Ym1pc3Npb24uZGF0YSkpO1xyXG4gICAgICB0aGlzLmluc3RhbmNlLnNhdmVSb3coaW5kZXgpO1xyXG4gICAgICBjb25zdCByb3dzID0gdGhpcy5yb3dFbGVtZW50cy50b0FycmF5KCk7XHJcbiAgICAgIGlmIChyb3dzICYmIHJvd3NbaW5kZXhdKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVSb3dUZW1wbGF0ZShyb3dzW2luZGV4XSwgaW5kZXgsIHt9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FuY2VsUm93KGluZGV4KSB7XHJcbiAgICB0aGlzLmluc3RhbmNlLmNhbmNlbFJvdyhpbmRleCk7XHJcbiAgICB0aGlzLnZhbGlkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHJlbmRlclRlbXBsYXRlKGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHRlbXBsYXRlKSB7XHJcbiAgICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdGVtcGxhdGU7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnJvd0VsZW1lbnRzLmNoYW5nZXMuc3Vic2NyaWJlKChyb3dzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj4pID0+IHtcclxuICAgICAgY29uc3Qgcm93Q2FjaGUgPSB7fTtcclxuICAgICAgcm93cy5mb3JFYWNoKChyb3c6IEVsZW1lbnRSZWYsIGluZGV4KSA9PiB0aGlzLnVwZGF0ZVJvd1RlbXBsYXRlKHJvdywgaW5kZXgsIHJvd0NhY2hlKSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuRWRpdEdyaWRDb21wb25lbnQuTWF0ZXJpYWxDb21wb25lbnQgPSBNYXRlcmlhbEVkaXRHcmlkQ29tcG9uZW50O1xyXG5leHBvcnQgeyBFZGl0R3JpZENvbXBvbmVudCB9O1xyXG4iLCI8IS0tIDxtYXQtZm9ybWlvLWZvcm0tZmllbGQgW2luc3RhbmNlXT1cImluc3RhbmNlXCIgW2NvbXBvbmVudFRlbXBsYXRlXT1cImNvbXBvbmVudFRlbXBsYXRlXCIgW2xhYmVsVGVtcGxhdGVdPVwibGFiZWxUZW1wbGF0ZVwiPlxyXG48L21hdC1mb3JtaW8tZm9ybS1maWVsZD5cclxuPG5nLXRlbXBsYXRlICNjb21wb25lbnRUZW1wbGF0ZSBsZXQtaGFzTGFiZWw+XHJcblxyXG4gIDxzcGFuIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRHYXA9XCIxZW1cIiBmeEZpbGw+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzTGFiZWxcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG1hdC1hY2NvcmRpb24+XHJcbiAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsICpuZ0lmPVwiaGVhZGVyXCIgZGlzYWJsZWQ9XCJ0cnVlXCI+XHJcbiAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICAgICAgPHNwYW4gI2hlYWRlciBmeEZpbGw+PC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cclxuXHJcbiAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsICpuZ0Zvcj1cImxldCByb3cgb2YgaW5zdGFuY2UuZWRpdFJvd3M7IGluZGV4IGFzIGk7XCIgW2V4cGFuZGVkXT1cImluc3RhbmNlLmlzT3Blbihyb3cpXCI+XHJcbiAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIChjbGljayk9XCJlZGl0Um93KHJvdywgaSlcIj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwicm93LnN0YXRlICE9PSBSb3dTdGF0ZXMuTkVXXCIgI3Jvd3MgZnhGaWxsPjwvc3Bhbj5cclxuICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cclxuICAgICAgICA8bWF0LWZvcm1pbyBbZm9ybV09XCJpbnN0YW5jZS5jb21wb25lbnRcIiAjZm9ybXMgKGNoYW5nZSk9XCJ2YWxpZGF0ZShpKVwiPjwvbWF0LWZvcm1pbz5cclxuXHJcbiAgICAgICAgPHNwYW4gZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjFlbVwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiIXZhbGlkXCIgKGNsaWNrKT1cInNhdmVSb3cocm93LCBpKVwiPlNhdmU8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwiY2FuY2VsUm93KGkpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwid2FyblwiIChjbGljayk9XCJpbnN0YW5jZS5yZW1vdmVSb3coaSlcIiBjbGFzcz1cImRlbGV0ZS1idXR0b25cIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cclxuXHJcbiAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsICpuZ0lmPVwiZm9vdGVyXCIgZGlzYWJsZWQ9XCJ0cnVlXCI+XHJcbiAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICAgICAgPHNwYW4gI2Zvb3Rlcj48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG4gICAgPC9tYXQtYWNjb3JkaW9uPlxyXG5cclxuICAgIDxzcGFuIGZ4RmlsbD1cIm5vbmVcIiAqbmdJZj1cImluc3RhbmNlLmhhc0FkZEJ1dHRvbigpXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImFkZEFub3RoZXIoKVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPiBBZGQgQW5vdGhlclxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvc3Bhbj5cclxuICA8L3NwYW4+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2xhYmVsVGVtcGxhdGU+XHJcbiAgPG1hdC1jYXJkLXRpdGxlPlxyXG4gICAgPHNwYW4gW2luc3RhbmNlXT1cImluc3RhbmNlXCIgbWF0Rm9ybWlvTGFiZWw+PC9zcGFuPlxyXG4gIDwvbWF0LWNhcmQtdGl0bGU+XHJcbjwvbmctdGVtcGxhdGU+IC0tPlxyXG4iXX0=
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';
|
|
3
|
-
import EmailComponent from 'formiojs/components/email/Email.js';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common";
|
|
6
|
-
import * as i2 from "@angular/forms";
|
|
7
|
-
import * as i3 from "@angular/material/form-field";
|
|
8
|
-
import * as i4 from "@angular/material/input";
|
|
9
|
-
import * as i5 from "@angular/flex-layout/flex";
|
|
10
|
-
import * as i6 from "@angular/flex-layout/extended";
|
|
11
|
-
import * as i7 from "../formio-form-field/formio-form-field.component";
|
|
12
|
-
import * as i8 from "../label/label.component";
|
|
13
|
-
export class MaterialEmailComponent extends MaterialTextfieldComponent {
|
|
14
|
-
constructor() {
|
|
15
|
-
super(...arguments);
|
|
16
|
-
this.inputType = 'email';
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
MaterialEmailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialEmailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
20
|
-
MaterialEmailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialEmailComponent, selector: "mat-formio-email", usesInheritance: true, ngImport: i0, template: "\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <mat-form-field [appearance]=\"getFormFieldAppearance()\" fxFill>\n\n <mat-label *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n\n <span *ngIf=\"instance.component.prefix && instance.type !== 'currency'\"\n matPrefix\n >\n {{ instance.component.prefix }} \n </span>\n <input matInput\n type=\"{{ inputType }}\"\n [formControl]=\"control\"\n [placeholder]=\"instance.component.placeholder\"\n (input)=\"onChange()\" #input\n [ngClass]=\"{ 'show-invalid': inputType=='email' }\"\n >\n <span *ngIf=\"instance.component.suffix\" matSuffix>{{ instance.component.suffix }}</span>\n\n <mat-hint *ngIf=\"instance.component.showWordCount || instance.component.showCharCount\">\n {{ getHint() }}\n </mat-hint>\n\n <br/>\n <mat-error *ngIf=\"isError()\" >{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </ng-template>\n", isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i5.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i6.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i7.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i8.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] });
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialEmailComponent, decorators: [{
|
|
22
|
-
type: Component,
|
|
23
|
-
args: [{
|
|
24
|
-
selector: 'mat-formio-email',
|
|
25
|
-
template: TEXTFIELD_TEMPLATE
|
|
26
|
-
}]
|
|
27
|
-
}] });
|
|
28
|
-
EmailComponent.MaterialComponent = MaterialEmailComponent;
|
|
29
|
-
export { EmailComponent };
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvZW1haWwvZW1haWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEcsT0FBTyxjQUFjLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7Ozs7QUFLaEUsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDBCQUEwQjtJQUp0RTs7UUFLUyxjQUFTLEdBQUcsT0FBTyxDQUFDO0tBQzVCOzttSEFGWSxzQkFBc0I7dUdBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQUpsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRSxrQkFBa0I7aUJBQzdCOztBQUlELGNBQWMsQ0FBQyxpQkFBaUIsR0FBRyxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxUZXh0ZmllbGRDb21wb25lbnQsIFRFWFRGSUVMRF9URU1QTEFURSB9IGZyb20gJy4uL3RleHRmaWVsZC90ZXh0ZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IEVtYWlsQ29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvZW1haWwvRW1haWwuanMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21hdC1mb3JtaW8tZW1haWwnLFxyXG4gIHRlbXBsYXRlOiBURVhURklFTERfVEVNUExBVEVcclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsRW1haWxDb21wb25lbnQgZXh0ZW5kcyBNYXRlcmlhbFRleHRmaWVsZENvbXBvbmVudCB7XHJcbiAgcHVibGljIGlucHV0VHlwZSA9ICdlbWFpbCc7XHJcbn1cclxuRW1haWxDb21wb25lbnQuTWF0ZXJpYWxDb21wb25lbnQgPSBNYXRlcmlhbEVtYWlsQ29tcG9uZW50O1xyXG5leHBvcnQgeyBFbWFpbENvbXBvbmVudCB9O1xyXG4iXX0=
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import FieldsetComponent from 'formiojs/components/fieldset/Fieldset.js';
|
|
3
|
-
import { MaterialNestedComponent } from '../MaterialNestedComponent';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common";
|
|
6
|
-
import * as i2 from "@angular/material/form-field";
|
|
7
|
-
import * as i3 from "@angular/material/tooltip";
|
|
8
|
-
import * as i4 from "@angular/material/icon";
|
|
9
|
-
import * as i5 from "@angular/flex-layout/flex";
|
|
10
|
-
export class MaterialFieldsetComponent extends MaterialNestedComponent {
|
|
11
|
-
}
|
|
12
|
-
MaterialFieldsetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialFieldsetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
-
MaterialFieldsetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialFieldsetComponent, selector: "mat-formio-fieldset", usesInheritance: true, ngImport: i0, template: `
|
|
14
|
-
<fieldset>
|
|
15
|
-
<legend [attr.ref]="'header'">
|
|
16
|
-
{{ instance.component.legend }}
|
|
17
|
-
<mat-icon *ngIf="instance.component.tooltip"
|
|
18
|
-
matSuffix
|
|
19
|
-
matTooltip="{{ instance.component.tooltip }}"
|
|
20
|
-
>
|
|
21
|
-
info
|
|
22
|
-
</mat-icon>
|
|
23
|
-
</legend>
|
|
24
|
-
<div class="fieldset-body" [attr.ref]="instance.component.key" fxLayout="column" fxLayoutGap="1em">
|
|
25
|
-
<ng-template #components></ng-template>
|
|
26
|
-
</div>
|
|
27
|
-
</fieldset>
|
|
28
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }] });
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialFieldsetComponent, decorators: [{
|
|
30
|
-
type: Component,
|
|
31
|
-
args: [{ selector: 'mat-formio-fieldset', template: `
|
|
32
|
-
<fieldset>
|
|
33
|
-
<legend [attr.ref]="'header'">
|
|
34
|
-
{{ instance.component.legend }}
|
|
35
|
-
<mat-icon *ngIf="instance.component.tooltip"
|
|
36
|
-
matSuffix
|
|
37
|
-
matTooltip="{{ instance.component.tooltip }}"
|
|
38
|
-
>
|
|
39
|
-
info
|
|
40
|
-
</mat-icon>
|
|
41
|
-
</legend>
|
|
42
|
-
<div class="fieldset-body" [attr.ref]="instance.component.key" fxLayout="column" fxLayoutGap="1em">
|
|
43
|
-
<ng-template #components></ng-template>
|
|
44
|
-
</div>
|
|
45
|
-
</fieldset>
|
|
46
|
-
` }]
|
|
47
|
-
}] });
|
|
48
|
-
FieldsetComponent.MaterialComponent = MaterialFieldsetComponent;
|
|
49
|
-
export { FieldsetComponent };
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvZmllbGRzZXQvZmllbGRzZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxpQkFBaUIsTUFBTSwwQ0FBMEMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7OztBQXFCckUsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHVCQUF1Qjs7c0hBQXpELHlCQUF5QjswR0FBekIseUJBQXlCLGtGQWxCMUI7Ozs7Ozs7Ozs7Ozs7OztHQWVUOzJGQUdVLHlCQUF5QjtrQkFwQnJDLFNBQVM7K0JBQ0UscUJBQXFCLFlBQ3JCOzs7Ozs7Ozs7Ozs7Ozs7R0FlVDs7QUFJSCxpQkFBaUIsQ0FBQyxpQkFBaUIsR0FBRyx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgRmllbGRzZXRDb21wb25lbnQgZnJvbSAnZm9ybWlvanMvY29tcG9uZW50cy9maWVsZHNldC9GaWVsZHNldC5qcyc7XHJcbmltcG9ydCB7IE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50IH0gZnJvbSAnLi4vTWF0ZXJpYWxOZXN0ZWRDb21wb25lbnQnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21hdC1mb3JtaW8tZmllbGRzZXQnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZmllbGRzZXQ+XHJcbiAgICAgIDxsZWdlbmQgW2F0dHIucmVmXT1cIidoZWFkZXInXCI+XHJcbiAgICAgICAge3sgaW5zdGFuY2UuY29tcG9uZW50LmxlZ2VuZCB9fVxyXG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImluc3RhbmNlLmNvbXBvbmVudC50b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgbWF0U3VmZml4XHJcbiAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyBpbnN0YW5jZS5jb21wb25lbnQudG9vbHRpcCB9fVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgaW5mb1xyXG4gICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgIDwvbGVnZW5kPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGRzZXQtYm9keVwiIFthdHRyLnJlZl09XCJpbnN0YW5jZS5jb21wb25lbnQua2V5XCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEdhcD1cIjFlbVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50cz48L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZmllbGRzZXQ+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbEZpZWxkc2V0Q29tcG9uZW50IGV4dGVuZHMgTWF0ZXJpYWxOZXN0ZWRDb21wb25lbnQge31cclxuRmllbGRzZXRDb21wb25lbnQuTWF0ZXJpYWxDb21wb25lbnQgPSBNYXRlcmlhbEZpZWxkc2V0Q29tcG9uZW50O1xyXG5leHBvcnQgeyBGaWVsZHNldENvbXBvbmVudCB9O1xyXG4iXX0=
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { LabelPositions } from '../../const/LabelPositions';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "@angular/material/form-field";
|
|
6
|
-
import * as i3 from "@angular/flex-layout/extended";
|
|
7
|
-
import * as i4 from "../label/label.component";
|
|
8
|
-
export class FormioFormFieldComponent {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.labelPositions = LabelPositions;
|
|
11
|
-
this.renderTopLabel = false;
|
|
12
|
-
this.showDescription = true;
|
|
13
|
-
this.renderElementOnly = false;
|
|
14
|
-
}
|
|
15
|
-
set instance(instance) {
|
|
16
|
-
this._instance = instance;
|
|
17
|
-
if (instance) {
|
|
18
|
-
this.componentTemplateContext = { $implicit: this.hasLabel(['top']) };
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
get instance() {
|
|
22
|
-
return this._instance;
|
|
23
|
-
}
|
|
24
|
-
hasLabel(labelPositions) {
|
|
25
|
-
const { component } = this.instance;
|
|
26
|
-
const hasNoLabel = !component.label || component.hideLabel;
|
|
27
|
-
const labelPositionIsNotSpecified = !labelPositions ||
|
|
28
|
-
!labelPositions.length ||
|
|
29
|
-
!component.labelPosition;
|
|
30
|
-
if (hasNoLabel || labelPositionIsNotSpecified || this.renderElementOnly) {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
if (labelPositions.includes(component.labelPosition)) {
|
|
34
|
-
return true;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
FormioFormFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FormioFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
39
|
-
FormioFormFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: { labelTemplate: "labelTemplate", renderTopLabel: "renderTopLabel", showDescription: "showDescription", renderElementOnly: "renderElementOnly", instance: "instance", componentTemplate: "componentTemplate" }, ngImport: i0, template: "<div class=\"mat-formio-component-wrapper\" *ngIf=\"instance && !renderElementOnly\"\r\n [ngClass]=\"{\r\n 'mat-formio-label-right': hasLabel([labelPositions.RIGHT_RIGHT, labelPositions.RIGHT_LEFT]),\r\n 'mat-formio-label-left': hasLabel([labelPositions.LEFT_LEFT, labelPositions.LEFT_RIGHT])\r\n }\"\r\n>\r\n <span *ngIf=\"renderTopLabel && hasLabel([labelPositions.TOP])\"\r\n class=\"mat-formio-label\"\r\n [ngClass]=\"{\r\n 'mat-formio-label-align-right': hasLabel([labelPositions.LEFT_RIGHT, labelPositions.RIGHT_RIGHT]),\r\n 'mat-formio-label-align-left': hasLabel([labelPositions.LEFT_LEFT, labelPositions.RIGHT_LEFT])\r\n }\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"labelTemplate || defaultLabel\"></ng-container>\r\n </span>\r\n\r\n <div class=\"mat-formio-component\" *ngTemplateOutlet=\"componentTemplate; context: componentTemplateContext\"></div>\r\n\r\n <span *ngIf=\"hasLabel([\r\n labelPositions.BOTTOM,\r\n labelPositions.RIGHT_RIGHT,\r\n labelPositions.RIGHT_LEFT,\r\n labelPositions.LEFT_LEFT,\r\n labelPositions.LEFT_RIGHT\r\n ])\"\r\n class=\"mat-formio-label\"\r\n [ngClass]=\"{\r\n 'mat-formio-label-align-right': hasLabel([labelPositions.LEFT_RIGHT, labelPositions.RIGHT_RIGHT]),\r\n 'mat-formio-label-align-left': hasLabel([labelPositions.LEFT_LEFT, labelPositions.RIGHT_LEFT])\r\n }\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"labelTemplate || defaultLabel\"></ng-container>\r\n </span>\r\n\r\n <mat-hint *ngIf=\"showDescription && instance.component.description\" class=\"mat-formio-component-description\">\r\n {{ instance.component.description }}\r\n </mat-hint>\r\n</div>\r\n\r\n<div class=\"mat-formio-component-wrapper\" *ngIf=\"renderElementOnly\">\r\n <div class=\"mat-formio-component\" *ngTemplateOutlet=\"componentTemplate; context: componentTemplateContext\"></div>\r\n</div>\r\n\r\n<ng-template #defaultLabel>\r\n <mat-label>\r\n <span style=\"display: block;\"\r\n [instance]=\"instance\" matFormioLabel>\r\n </span>\r\n </mat-label>\r\n</ng-template>\r\n", styles: [".mat-formio-component-description{display:block;grid-area:description}.mat-formio-component{grid-area:component}.mat-formio-label{grid-area:label}.mat-formio-label.mat-formio-label-align-right{margin-left:auto}.mat-formio-label.mat-formio-label-align-left{margin-right:auto}.mat-formio-component-wrapper.mat-formio-label-left,.mat-formio-component-wrapper.mat-formio-label-right{display:grid;grid-template-columns:auto auto;grid-column-gap:1em}.mat-formio-component-wrapper.mat-formio-label-right{grid-template-areas:\"component label\" \"description label\"}.mat-formio-component-wrapper.mat-formio-label-left{grid-template-areas:\"label component\" \"label description\"}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i4.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] });
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FormioFormFieldComponent, decorators: [{
|
|
41
|
-
type: Component,
|
|
42
|
-
args: [{ selector: 'mat-formio-form-field', template: "<div class=\"mat-formio-component-wrapper\" *ngIf=\"instance && !renderElementOnly\"\r\n [ngClass]=\"{\r\n 'mat-formio-label-right': hasLabel([labelPositions.RIGHT_RIGHT, labelPositions.RIGHT_LEFT]),\r\n 'mat-formio-label-left': hasLabel([labelPositions.LEFT_LEFT, labelPositions.LEFT_RIGHT])\r\n }\"\r\n>\r\n <span *ngIf=\"renderTopLabel && hasLabel([labelPositions.TOP])\"\r\n class=\"mat-formio-label\"\r\n [ngClass]=\"{\r\n 'mat-formio-label-align-right': hasLabel([labelPositions.LEFT_RIGHT, labelPositions.RIGHT_RIGHT]),\r\n 'mat-formio-label-align-left': hasLabel([labelPositions.LEFT_LEFT, labelPositions.RIGHT_LEFT])\r\n }\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"labelTemplate || defaultLabel\"></ng-container>\r\n </span>\r\n\r\n <div class=\"mat-formio-component\" *ngTemplateOutlet=\"componentTemplate; context: componentTemplateContext\"></div>\r\n\r\n <span *ngIf=\"hasLabel([\r\n labelPositions.BOTTOM,\r\n labelPositions.RIGHT_RIGHT,\r\n labelPositions.RIGHT_LEFT,\r\n labelPositions.LEFT_LEFT,\r\n labelPositions.LEFT_RIGHT\r\n ])\"\r\n class=\"mat-formio-label\"\r\n [ngClass]=\"{\r\n 'mat-formio-label-align-right': hasLabel([labelPositions.LEFT_RIGHT, labelPositions.RIGHT_RIGHT]),\r\n 'mat-formio-label-align-left': hasLabel([labelPositions.LEFT_LEFT, labelPositions.RIGHT_LEFT])\r\n }\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"labelTemplate || defaultLabel\"></ng-container>\r\n </span>\r\n\r\n <mat-hint *ngIf=\"showDescription && instance.component.description\" class=\"mat-formio-component-description\">\r\n {{ instance.component.description }}\r\n </mat-hint>\r\n</div>\r\n\r\n<div class=\"mat-formio-component-wrapper\" *ngIf=\"renderElementOnly\">\r\n <div class=\"mat-formio-component\" *ngTemplateOutlet=\"componentTemplate; context: componentTemplateContext\"></div>\r\n</div>\r\n\r\n<ng-template #defaultLabel>\r\n <mat-label>\r\n <span style=\"display: block;\"\r\n [instance]=\"instance\" matFormioLabel>\r\n </span>\r\n </mat-label>\r\n</ng-template>\r\n", styles: [".mat-formio-component-description{display:block;grid-area:description}.mat-formio-component{grid-area:component}.mat-formio-label{grid-area:label}.mat-formio-label.mat-formio-label-align-right{margin-left:auto}.mat-formio-label.mat-formio-label-align-left{margin-right:auto}.mat-formio-component-wrapper.mat-formio-label-left,.mat-formio-component-wrapper.mat-formio-label-right{display:grid;grid-template-columns:auto auto;grid-column-gap:1em}.mat-formio-component-wrapper.mat-formio-label-right{grid-template-areas:\"component label\" \"description label\"}.mat-formio-component-wrapper.mat-formio-label-left{grid-template-areas:\"label component\" \"label description\"}\n"] }]
|
|
43
|
-
}], propDecorators: { labelTemplate: [{
|
|
44
|
-
type: Input
|
|
45
|
-
}], renderTopLabel: [{
|
|
46
|
-
type: Input
|
|
47
|
-
}], showDescription: [{
|
|
48
|
-
type: Input
|
|
49
|
-
}], renderElementOnly: [{
|
|
50
|
-
type: Input
|
|
51
|
-
}], instance: [{
|
|
52
|
-
type: Input,
|
|
53
|
-
args: ['instance']
|
|
54
|
-
}], componentTemplate: [{
|
|
55
|
-
type: Input
|
|
56
|
-
}] } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWlvLWZvcm0tZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvZm9ybWlvLWZvcm0tZmllbGQvZm9ybWlvLWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvZm9ybWlvLWZvcm0tZmllbGQvZm9ybWlvLWZvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFPNUQsTUFBTSxPQUFPLHdCQUF3QjtJQUxyQztRQU9TLG1CQUFjLEdBQUcsY0FBYyxDQUFDO1FBRTlCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztLQWdDcEM7SUE5QkMsSUFDSSxRQUFRLENBQUMsUUFBUTtRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixJQUFJLFFBQVEsRUFBRTtZQUNaLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxFQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDO1NBQ3JFO0lBQ0gsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBS0QsUUFBUSxDQUFDLGNBQXlCO1FBQ2hDLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3BDLE1BQU0sVUFBVSxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQzNELE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxjQUFjO1lBQ2YsQ0FBQyxjQUFjLENBQUMsTUFBTTtZQUN0QixDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7UUFFN0QsSUFBSSxVQUFVLElBQUksMkJBQTJCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3ZFLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3BELE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDOztxSEFyQ1Usd0JBQXdCO3lHQUF4Qix3QkFBd0IscVJDUnJDLCt1RUFrREE7MkZEMUNhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSx1QkFBdUI7OEJBT3hCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHRixRQUFRO3NCQURYLEtBQUs7dUJBQUMsVUFBVTtnQkFZUixpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9ucyB9IGZyb20gJy4uLy4uL2NvbnN0L0xhYmVsUG9zaXRpb25zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWF0LWZvcm1pby1mb3JtLWZpZWxkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybWlvLWZvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm1pby1mb3JtLWZpZWxkLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybWlvRm9ybUZpZWxkQ29tcG9uZW50IHtcclxuICBwcml2YXRlIF9pbnN0YW5jZTtcclxuICBwdWJsaWMgbGFiZWxQb3NpdGlvbnMgPSBMYWJlbFBvc2l0aW9ucztcclxuICBASW5wdXQoKSBsYWJlbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIHJlbmRlclRvcExhYmVsID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd0Rlc2NyaXB0aW9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSByZW5kZXJFbGVtZW50T25seSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoJ2luc3RhbmNlJylcclxuICBzZXQgaW5zdGFuY2UoaW5zdGFuY2UpIHtcclxuICAgIHRoaXMuX2luc3RhbmNlID0gaW5zdGFuY2U7XHJcbiAgICBpZiAoaW5zdGFuY2UpIHtcclxuICAgICAgdGhpcy5jb21wb25lbnRUZW1wbGF0ZUNvbnRleHQgPSB7JGltcGxpY2l0OiB0aGlzLmhhc0xhYmVsKFsndG9wJ10pfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBpbnN0YW5jZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGNvbXBvbmVudFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGNvbXBvbmVudFRlbXBsYXRlQ29udGV4dDtcclxuXHJcbiAgaGFzTGFiZWwobGFiZWxQb3NpdGlvbnM/OiBzdHJpbmdbXSkge1xyXG4gICAgY29uc3QgeyBjb21wb25lbnQgfSA9IHRoaXMuaW5zdGFuY2U7XHJcbiAgICBjb25zdCBoYXNOb0xhYmVsID0gIWNvbXBvbmVudC5sYWJlbCB8fCBjb21wb25lbnQuaGlkZUxhYmVsO1xyXG4gICAgY29uc3QgbGFiZWxQb3NpdGlvbklzTm90U3BlY2lmaWVkID0gIWxhYmVsUG9zaXRpb25zIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhbGFiZWxQb3NpdGlvbnMubGVuZ3RoIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhY29tcG9uZW50LmxhYmVsUG9zaXRpb247XHJcblxyXG4gICAgaWYgKGhhc05vTGFiZWwgfHwgbGFiZWxQb3NpdGlvbklzTm90U3BlY2lmaWVkIHx8IHRoaXMucmVuZGVyRWxlbWVudE9ubHkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChsYWJlbFBvc2l0aW9ucy5pbmNsdWRlcyhjb21wb25lbnQubGFiZWxQb3NpdGlvbikpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtYXQtZm9ybWlvLWNvbXBvbmVudC13cmFwcGVyXCIgKm5nSWY9XCJpbnN0YW5jZSAmJiAhcmVuZGVyRWxlbWVudE9ubHlcIlxyXG4gICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAnbWF0LWZvcm1pby1sYWJlbC1yaWdodCc6IGhhc0xhYmVsKFtsYWJlbFBvc2l0aW9ucy5SSUdIVF9SSUdIVCwgbGFiZWxQb3NpdGlvbnMuUklHSFRfTEVGVF0pLFxyXG4gICAgICAgICdtYXQtZm9ybWlvLWxhYmVsLWxlZnQnOiBoYXNMYWJlbChbbGFiZWxQb3NpdGlvbnMuTEVGVF9MRUZULCBsYWJlbFBvc2l0aW9ucy5MRUZUX1JJR0hUXSlcclxuICAgICB9XCJcclxuPlxyXG4gIDxzcGFuICpuZ0lmPVwicmVuZGVyVG9wTGFiZWwgJiYgaGFzTGFiZWwoW2xhYmVsUG9zaXRpb25zLlRPUF0pXCJcclxuICAgICAgICBjbGFzcz1cIm1hdC1mb3JtaW8tbGFiZWxcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICdtYXQtZm9ybWlvLWxhYmVsLWFsaWduLXJpZ2h0JzogaGFzTGFiZWwoW2xhYmVsUG9zaXRpb25zLkxFRlRfUklHSFQsIGxhYmVsUG9zaXRpb25zLlJJR0hUX1JJR0hUXSksXHJcbiAgICAgICAgICAnbWF0LWZvcm1pby1sYWJlbC1hbGlnbi1sZWZ0JzogaGFzTGFiZWwoW2xhYmVsUG9zaXRpb25zLkxFRlRfTEVGVCwgbGFiZWxQb3NpdGlvbnMuUklHSFRfTEVGVF0pXHJcbiAgICAgICAgfVwiXHJcbiAgPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsVGVtcGxhdGUgfHwgZGVmYXVsdExhYmVsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9zcGFuPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwibWF0LWZvcm1pby1jb21wb25lbnRcIiAqbmdUZW1wbGF0ZU91dGxldD1cImNvbXBvbmVudFRlbXBsYXRlOyBjb250ZXh0OiBjb21wb25lbnRUZW1wbGF0ZUNvbnRleHRcIj48L2Rpdj5cclxuXHJcbiAgPHNwYW4gKm5nSWY9XCJoYXNMYWJlbChbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxQb3NpdGlvbnMuQk9UVE9NLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsUG9zaXRpb25zLlJJR0hUX1JJR0hULFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsUG9zaXRpb25zLlJJR0hUX0xFRlQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxQb3NpdGlvbnMuTEVGVF9MRUZULFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsUG9zaXRpb25zLkxFRlRfUklHSFRcclxuICAgICAgICAgICAgICAgICAgICAgICAgXSlcIlxyXG4gICAgICAgIGNsYXNzPVwibWF0LWZvcm1pby1sYWJlbFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgJ21hdC1mb3JtaW8tbGFiZWwtYWxpZ24tcmlnaHQnOiBoYXNMYWJlbChbbGFiZWxQb3NpdGlvbnMuTEVGVF9SSUdIVCwgbGFiZWxQb3NpdGlvbnMuUklHSFRfUklHSFRdKSxcclxuICAgICAgICAgICdtYXQtZm9ybWlvLWxhYmVsLWFsaWduLWxlZnQnOiBoYXNMYWJlbChbbGFiZWxQb3NpdGlvbnMuTEVGVF9MRUZULCBsYWJlbFBvc2l0aW9ucy5SSUdIVF9MRUZUXSlcclxuICAgICAgICB9XCJcclxuICA+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFiZWxUZW1wbGF0ZSB8fCBkZWZhdWx0TGFiZWxcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L3NwYW4+XHJcblxyXG4gIDxtYXQtaGludCAqbmdJZj1cInNob3dEZXNjcmlwdGlvbiAmJiBpbnN0YW5jZS5jb21wb25lbnQuZGVzY3JpcHRpb25cIiBjbGFzcz1cIm1hdC1mb3JtaW8tY29tcG9uZW50LWRlc2NyaXB0aW9uXCI+XHJcbiAgICB7eyBpbnN0YW5jZS5jb21wb25lbnQuZGVzY3JpcHRpb24gfX1cclxuICA8L21hdC1oaW50PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJtYXQtZm9ybWlvLWNvbXBvbmVudC13cmFwcGVyXCIgKm5nSWY9XCJyZW5kZXJFbGVtZW50T25seVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJtYXQtZm9ybWlvLWNvbXBvbmVudFwiICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29tcG9uZW50VGVtcGxhdGU7IGNvbnRleHQ6IGNvbXBvbmVudFRlbXBsYXRlQ29udGV4dFwiPjwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdExhYmVsPlxyXG4gIDxtYXQtbGFiZWw+XHJcbiAgICA8c3BhbiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiXHJcbiAgICAgICAgICBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD5cclxuICAgIDwvc3Bhbj5cclxuICA8L21hdC1sYWJlbD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild } from '@angular/core';
|
|
2
|
-
import Wizard from 'formiojs/Wizard';
|
|
3
|
-
import Displays from 'formiojs/displays/Displays';
|
|
4
|
-
import { MaterialNestedComponent } from './MaterialNestedComponent';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common";
|
|
7
|
-
import * as i2 from "@angular/material/button";
|
|
8
|
-
import * as i3 from "@angular/material/stepper";
|
|
9
|
-
export class MaterialWizardComponent extends MaterialNestedComponent {
|
|
10
|
-
constructor() {
|
|
11
|
-
super(...arguments);
|
|
12
|
-
this.isLinear = true;
|
|
13
|
-
this.prevNumOfPages = 0;
|
|
14
|
-
}
|
|
15
|
-
setInstance(instance) {
|
|
16
|
-
this.isLinear = (instance.options &&
|
|
17
|
-
instance.options.breadcrumbSettings &&
|
|
18
|
-
instance.options.breadcrumbSettings.clickable) ? false : true;
|
|
19
|
-
this.updatePages(instance);
|
|
20
|
-
instance.on('pagesChanged', () => this.updatePages());
|
|
21
|
-
super.setInstance(instance);
|
|
22
|
-
}
|
|
23
|
-
updatePages(instance = this.instance) {
|
|
24
|
-
if (this.prevNumOfPages !== instance.pages.length) {
|
|
25
|
-
instance.pages.forEach((page, pageIndex) => {
|
|
26
|
-
page.viewContainer = () => {
|
|
27
|
-
return this.viewContainers ? this.viewContainers[pageIndex] : null;
|
|
28
|
-
};
|
|
29
|
-
});
|
|
30
|
-
this.prevNumOfPages = instance.pages.length;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
resetWizard() {
|
|
34
|
-
this.instance.cancel();
|
|
35
|
-
this.stepper.reset();
|
|
36
|
-
}
|
|
37
|
-
nextPage() {
|
|
38
|
-
this.instance.nextPage().then(() => this.stepper.next());
|
|
39
|
-
}
|
|
40
|
-
prevPage() {
|
|
41
|
-
this.instance.prevPage().then(() => this.stepper.previous());
|
|
42
|
-
}
|
|
43
|
-
submit() {
|
|
44
|
-
this.instance.submit();
|
|
45
|
-
}
|
|
46
|
-
renderComponents() {
|
|
47
|
-
if (this.instance.renderComponents && this.instance.pages) {
|
|
48
|
-
this.instance.renderComponents(this.instance.pages.reduce((comps, page) => {
|
|
49
|
-
return comps.concat(page.components);
|
|
50
|
-
}, []));
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
MaterialWizardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialWizardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
55
|
-
MaterialWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialWizardComponent, selector: "mat-formio-wizard", viewQueries: [{ propertyName: "stepper", first: true, predicate: ["stepper"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
56
|
-
<mat-horizontal-stepper [linear]="isLinear" #stepper>
|
|
57
|
-
<mat-step *ngFor="let page of instance.pages" [label]="page.component.title">
|
|
58
|
-
<ng-template #components></ng-template>
|
|
59
|
-
<div class="navigation-button-row">
|
|
60
|
-
<button *ngIf="instance.hasButton('cancel')" mat-raised-button (click)="resetWizard()">Cancel</button>
|
|
61
|
-
<button *ngIf="instance.hasButton('previous')" mat-raised-button color="primary" (click)="prevPage()">Previous</button>
|
|
62
|
-
<button *ngIf="instance.hasButton('next')" mat-raised-button color="primary" (click)="nextPage()">Next</button>
|
|
63
|
-
<button *ngIf="instance.hasButton('submit')" mat-raised-button color="primary" (click)="submit()">Submit</button>
|
|
64
|
-
</div>
|
|
65
|
-
</mat-step>
|
|
66
|
-
</mat-horizontal-stepper>`, isInline: true, styles: [":host .navigation-button-row{margin-top:8px}\n", ":host .navigation-button-row button{margin-right:8px}\n"], 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.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "component", type: i3.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }] });
|
|
67
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialWizardComponent, decorators: [{
|
|
68
|
-
type: Component,
|
|
69
|
-
args: [{ selector: 'mat-formio-wizard', template: `
|
|
70
|
-
<mat-horizontal-stepper [linear]="isLinear" #stepper>
|
|
71
|
-
<mat-step *ngFor="let page of instance.pages" [label]="page.component.title">
|
|
72
|
-
<ng-template #components></ng-template>
|
|
73
|
-
<div class="navigation-button-row">
|
|
74
|
-
<button *ngIf="instance.hasButton('cancel')" mat-raised-button (click)="resetWizard()">Cancel</button>
|
|
75
|
-
<button *ngIf="instance.hasButton('previous')" mat-raised-button color="primary" (click)="prevPage()">Previous</button>
|
|
76
|
-
<button *ngIf="instance.hasButton('next')" mat-raised-button color="primary" (click)="nextPage()">Next</button>
|
|
77
|
-
<button *ngIf="instance.hasButton('submit')" mat-raised-button color="primary" (click)="submit()">Submit</button>
|
|
78
|
-
</div>
|
|
79
|
-
</mat-step>
|
|
80
|
-
</mat-horizontal-stepper>`, styles: [":host .navigation-button-row{margin-top:8px}\n", ":host .navigation-button-row button{margin-right:8px}\n"] }]
|
|
81
|
-
}], propDecorators: { stepper: [{
|
|
82
|
-
type: ViewChild,
|
|
83
|
-
args: ['stepper', { static: true }]
|
|
84
|
-
}] } });
|
|
85
|
-
Wizard.MaterialComponent = MaterialWizardComponent;
|
|
86
|
-
Displays.addDisplay('wizard', Wizard);
|
|
87
|
-
export { Wizard };
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWlvLndpemFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1pby53aXphcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7O0FBcUJwRSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsdUJBQXVCO0lBbkJwRTs7UUFxQlMsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNmLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO0tBa0Q1QjtJQWhEQyxXQUFXLENBQUMsUUFBYTtRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLENBQ2QsUUFBUSxDQUFDLE9BQU87WUFDaEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0I7WUFDbkMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQzlDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRWpCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0IsUUFBUSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFdEQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUTtRQUNsQyxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDakQsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxFQUFFO29CQUN4QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDckUsQ0FBQyxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDekQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ3hFLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdkMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDVDtJQUNILENBQUM7O29IQXBEVSx1QkFBdUI7d0dBQXZCLHVCQUF1QixrTUFieEI7Ozs7Ozs7Ozs7OzhCQVdrQjsyRkFFakIsdUJBQXVCO2tCQW5CbkMsU0FBUzsrQkFDRSxtQkFBbUIsWUFLbkI7Ozs7Ozs7Ozs7OzhCQVdrQjs4QkFHVSxPQUFPO3NCQUE1QyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7O0FBcUR0QyxNQUFNLENBQUMsaUJBQWlCLEdBQUcsdUJBQXVCLENBQUM7QUFDbkQsUUFBUSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0U3RlcHBlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXInO1xyXG5pbXBvcnQgV2l6YXJkIGZyb20gJ2Zvcm1pb2pzL1dpemFyZCc7XHJcbmltcG9ydCBEaXNwbGF5cyBmcm9tICdmb3JtaW9qcy9kaXNwbGF5cy9EaXNwbGF5cyc7XHJcbmltcG9ydCB7IE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50IH0gZnJvbSAnLi9NYXRlcmlhbE5lc3RlZENvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21hdC1mb3JtaW8td2l6YXJkJyxcclxuICBzdHlsZXM6IFtcclxuICAgICc6aG9zdCAubmF2aWdhdGlvbi1idXR0b24tcm93IHsgbWFyZ2luLXRvcDogOHB4OyB9JyxcclxuICAgICc6aG9zdCAubmF2aWdhdGlvbi1idXR0b24tcm93IGJ1dHRvbiB7IG1hcmdpbi1yaWdodDogOHB4OyB9J1xyXG4gIF0sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtYXQtaG9yaXpvbnRhbC1zdGVwcGVyIFtsaW5lYXJdPVwiaXNMaW5lYXJcIiAjc3RlcHBlcj5cclxuICAgICAgPG1hdC1zdGVwICpuZ0Zvcj1cImxldCBwYWdlIG9mIGluc3RhbmNlLnBhZ2VzXCIgW2xhYmVsXT1cInBhZ2UuY29tcG9uZW50LnRpdGxlXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRzPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hdmlnYXRpb24tYnV0dG9uLXJvd1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImluc3RhbmNlLmhhc0J1dHRvbignY2FuY2VsJylcIiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwicmVzZXRXaXphcmQoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImluc3RhbmNlLmhhc0J1dHRvbigncHJldmlvdXMnKVwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJwcmV2UGFnZSgpXCI+UHJldmlvdXM8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJpbnN0YW5jZS5oYXNCdXR0b24oJ25leHQnKVwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJuZXh0UGFnZSgpXCI+TmV4dDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImluc3RhbmNlLmhhc0J1dHRvbignc3VibWl0JylcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwic3VibWl0KClcIj5TdWJtaXQ8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9tYXQtc3RlcD5cclxuICAgIDwvbWF0LWhvcml6b250YWwtc3RlcHBlcj5gXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbFdpemFyZENvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50IHtcclxuICBAVmlld0NoaWxkKCdzdGVwcGVyJywge3N0YXRpYzogdHJ1ZX0pIHN0ZXBwZXI6IE1hdFN0ZXBwZXI7XHJcbiAgcHVibGljIGlzTGluZWFyID0gdHJ1ZTtcclxuICBwcml2YXRlIHByZXZOdW1PZlBhZ2VzID0gMDtcclxuXHJcbiAgc2V0SW5zdGFuY2UoaW5zdGFuY2U6IGFueSkge1xyXG4gICAgdGhpcy5pc0xpbmVhciA9IChcclxuICAgICAgaW5zdGFuY2Uub3B0aW9ucyAmJlxyXG4gICAgICBpbnN0YW5jZS5vcHRpb25zLmJyZWFkY3J1bWJTZXR0aW5ncyAmJlxyXG4gICAgICBpbnN0YW5jZS5vcHRpb25zLmJyZWFkY3J1bWJTZXR0aW5ncy5jbGlja2FibGVcclxuICAgICkgPyBmYWxzZSA6IHRydWU7XHJcblxyXG4gICAgdGhpcy51cGRhdGVQYWdlcyhpbnN0YW5jZSk7XHJcbiAgICBpbnN0YW5jZS5vbigncGFnZXNDaGFuZ2VkJywgKCkgPT4gdGhpcy51cGRhdGVQYWdlcygpKTtcclxuXHJcbiAgICBzdXBlci5zZXRJbnN0YW5jZShpbnN0YW5jZSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVQYWdlcyhpbnN0YW5jZSA9IHRoaXMuaW5zdGFuY2UpIHtcclxuICAgIGlmICh0aGlzLnByZXZOdW1PZlBhZ2VzICE9PSBpbnN0YW5jZS5wYWdlcy5sZW5ndGgpIHtcclxuICAgICAgaW5zdGFuY2UucGFnZXMuZm9yRWFjaCgocGFnZSwgcGFnZUluZGV4KSA9PiB7XHJcbiAgICAgICAgcGFnZS52aWV3Q29udGFpbmVyID0gKCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRhaW5lcnMgPyB0aGlzLnZpZXdDb250YWluZXJzW3BhZ2VJbmRleF0gOiBudWxsO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnByZXZOdW1PZlBhZ2VzID0gaW5zdGFuY2UucGFnZXMubGVuZ3RoO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXRXaXphcmQoKSB7XHJcbiAgICB0aGlzLmluc3RhbmNlLmNhbmNlbCgpO1xyXG4gICAgdGhpcy5zdGVwcGVyLnJlc2V0KCk7XHJcbiAgfVxyXG5cclxuICBuZXh0UGFnZSgpIHtcclxuICAgIHRoaXMuaW5zdGFuY2UubmV4dFBhZ2UoKS50aGVuKCgpID0+IHRoaXMuc3RlcHBlci5uZXh0KCkpO1xyXG4gIH1cclxuXHJcbiAgcHJldlBhZ2UoKSB7XHJcbiAgICB0aGlzLmluc3RhbmNlLnByZXZQYWdlKCkudGhlbigoKSA9PiB0aGlzLnN0ZXBwZXIucHJldmlvdXMoKSk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXQoKSB7XHJcbiAgICB0aGlzLmluc3RhbmNlLnN1Ym1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyQ29tcG9uZW50cygpIHtcclxuICAgIGlmICh0aGlzLmluc3RhbmNlLnJlbmRlckNvbXBvbmVudHMgJiYgdGhpcy5pbnN0YW5jZS5wYWdlcykge1xyXG4gICAgICB0aGlzLmluc3RhbmNlLnJlbmRlckNvbXBvbmVudHModGhpcy5pbnN0YW5jZS5wYWdlcy5yZWR1Y2UoKGNvbXBzLCBwYWdlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGNvbXBzLmNvbmNhdChwYWdlLmNvbXBvbmVudHMpO1xyXG4gICAgICB9LCBbXSkpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5XaXphcmQuTWF0ZXJpYWxDb21wb25lbnQgPSBNYXRlcmlhbFdpemFyZENvbXBvbmVudDtcclxuRGlzcGxheXMuYWRkRGlzcGxheSgnd2l6YXJkJywgV2l6YXJkKTtcclxuZXhwb3J0IHsgV2l6YXJkIH07XHJcbiJdfQ==
|