ngx-render-material-forms 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/esm2020/lib/FormioControl.mjs +36 -0
- package/esm2020/lib/components/Base.mjs +32 -0
- package/esm2020/lib/components/MaterialComponent.mjs +145 -0
- package/esm2020/lib/components/MaterialNestedComponent.mjs +38 -0
- package/esm2020/lib/components/Webform.mjs +19 -0
- package/esm2020/lib/components/button/button.component.mjs +91 -0
- package/esm2020/lib/components/calendar/calendar.component.mjs +129 -0
- package/esm2020/lib/components/checkbox/checkbox.component.mjs +54 -0
- package/esm2020/lib/components/columns/columns.component.mjs +69 -0
- package/esm2020/lib/components/container/container.component.mjs +25 -0
- package/esm2020/lib/components/content/content.component.mjs +18 -0
- package/esm2020/lib/components/currency/currency.component.mjs +35 -0
- package/esm2020/lib/components/datagrid/datagrid.component.mjs +244 -0
- package/esm2020/lib/components/date/date.component.mjs +325 -0
- package/esm2020/lib/components/day/day.component.mjs +154 -0
- package/esm2020/lib/components/editgrid/editgrid.component.mjs +243 -0
- package/esm2020/lib/components/email/email.component.mjs +29 -0
- package/esm2020/lib/components/fieldset/fieldset.component.mjs +50 -0
- package/esm2020/lib/components/formio-form-field/formio-form-field.component.mjs +57 -0
- package/esm2020/lib/components/formio.wizard.mjs +88 -0
- package/esm2020/lib/components/hidden/hidden.component.mjs +20 -0
- package/esm2020/lib/components/html/html.component.mjs +29 -0
- package/esm2020/lib/components/index.mjs +125 -0
- package/esm2020/lib/components/label/label.component.mjs +17 -0
- package/esm2020/lib/components/number/number.component.mjs +66 -0
- package/esm2020/lib/components/panel/panel.component.mjs +57 -0
- package/esm2020/lib/components/password/password.component.mjs +29 -0
- package/esm2020/lib/components/phonenumber/phonenumber.component.mjs +29 -0
- package/esm2020/lib/components/radio/radio.component.mjs +96 -0
- package/esm2020/lib/components/select/select.component.mjs +186 -0
- package/esm2020/lib/components/selectboxes/selectboxes.component.mjs +102 -0
- package/esm2020/lib/components/signature/signature.component.mjs +103 -0
- package/esm2020/lib/components/survey/survey.component.mjs +167 -0
- package/esm2020/lib/components/table/table.component.mjs +97 -0
- package/esm2020/lib/components/tabs/tabs.component.mjs +43 -0
- package/esm2020/lib/components/tags/tags.component.mjs +117 -0
- package/esm2020/lib/components/textarea/textarea.component.mjs +82 -0
- package/esm2020/lib/components/textfield/textfield.component.mjs +108 -0
- package/esm2020/lib/components/time/time.component.mjs +206 -0
- package/esm2020/lib/components/url/url.component.mjs +29 -0
- package/esm2020/lib/components/well/well.component.mjs +43 -0
- package/esm2020/lib/const/ButtonsThemes.mjs +17 -0
- package/esm2020/lib/const/LabelPositions.mjs +10 -0
- package/esm2020/lib/directives/mask.directive.mjs +65 -0
- package/esm2020/lib/formio.component.mjs +80 -0
- package/esm2020/lib/ngx-render-material-forms.component.mjs +22 -0
- package/esm2020/lib/ngx-render-material-forms.module.mjs +344 -0
- package/esm2020/lib/ngx-render-material-forms.service.mjs +14 -0
- package/esm2020/lib/renderer.mjs +13 -0
- package/esm2020/ngx-render-material-forms.mjs +5 -0
- package/esm2020/public-api.mjs +7 -0
- package/fesm2015/ngx-render-material-forms - Copy.mjs +3787 -0
- package/fesm2015/ngx-render-material-forms.js +3787 -0
- package/fesm2015/ngx-render-material-forms.mjs.map +1 -0
- package/fesm2020/ngx-render-material-forms.mjs +3788 -0
- package/fesm2020/ngx-render-material-forms.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/FormioControl.d.ts +7 -0
- package/lib/components/Base.d.ts +2 -0
- package/lib/components/MaterialComponent.d.ts +30 -0
- package/lib/components/MaterialNestedComponent.d.ts +13 -0
- package/lib/components/Webform.d.ts +1 -0
- package/lib/components/button/button.component.d.ts +23 -0
- package/lib/components/calendar/calendar.component.d.ts +34 -0
- package/lib/components/checkbox/checkbox.component.d.ts +9 -0
- package/lib/components/columns/columns.component.d.ts +12 -0
- package/lib/components/container/container.component.d.ts +8 -0
- package/lib/components/content/content.component.d.ts +8 -0
- package/lib/components/currency/currency.component.d.ts +10 -0
- package/lib/components/datagrid/datagrid.component.d.ts +22 -0
- package/lib/components/date/date.component.d.ts +40 -0
- package/lib/components/day/day.component.d.ts +16 -0
- package/lib/components/editgrid/editgrid.component.d.ts +50 -0
- package/lib/components/email/email.component.d.ts +9 -0
- package/lib/components/fieldset/fieldset.component.d.ts +8 -0
- package/lib/components/formio-form-field/formio-form-field.component.d.ts +18 -0
- package/lib/components/formio.wizard.d.ts +19 -0
- package/lib/components/hidden/hidden.component.d.ts +8 -0
- package/lib/components/html/html.component.d.ts +11 -0
- package/lib/components/index.d.ts +2 -0
- package/lib/components/label/label.component.d.ts +6 -0
- package/lib/components/number/number.component.d.ts +18 -0
- package/lib/components/panel/panel.component.d.ts +8 -0
- package/lib/components/password/password.component.d.ts +9 -0
- package/lib/components/phonenumber/phonenumber.component.d.ts +9 -0
- package/lib/components/radio/radio.component.d.ts +12 -0
- package/lib/components/select/select.component.d.ts +25 -0
- package/lib/components/selectboxes/selectboxes.component.d.ts +15 -0
- package/lib/components/signature/signature.component.d.ts +12 -0
- package/lib/components/survey/survey.component.d.ts +14 -0
- package/lib/components/table/table.component.d.ts +12 -0
- package/lib/components/tabs/tabs.component.d.ts +9 -0
- package/lib/components/tags/tags.component.d.ts +15 -0
- package/lib/components/textarea/textarea.component.d.ts +12 -0
- package/lib/components/textfield/textfield.component.d.ts +17 -0
- package/lib/components/time/time.component.d.ts +27 -0
- package/lib/components/url/url.component.d.ts +9 -0
- package/lib/components/well/well.component.d.ts +8 -0
- package/lib/const/ButtonsThemes.d.ts +14 -0
- package/lib/const/LabelPositions.d.ts +8 -0
- package/lib/directives/mask.directive.d.ts +17 -0
- package/lib/formio.component.d.ts +15 -0
- package/lib/ngx-render-material-forms.component.d.ts +8 -0
- package/lib/ngx-render-material-forms.module.d.ts +106 -0
- package/lib/ngx-render-material-forms.service.d.ts +6 -0
- package/lib/renderer.d.ts +8 -0
- package/package.json +38 -0
- package/public-api.d.ts +3 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Component, ViewChild } from '@angular/core';
|
|
2
|
+
import { MaterialComponent } from '../MaterialComponent';
|
|
3
|
+
import HtmlComponent from 'formiojs/components/html/HTML.js';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class MaterialHtmlComponent extends MaterialComponent {
|
|
6
|
+
ngAfterViewInit() {
|
|
7
|
+
super.ngAfterViewInit();
|
|
8
|
+
if (this.instance.component.refreshOnChange) {
|
|
9
|
+
this.instance.checkRefreshOn = () => {
|
|
10
|
+
this.htmlBody.nativeElement.innerHTML = this.instance.renderContent();
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
MaterialHtmlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialHtmlComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
MaterialHtmlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MaterialHtmlComponent, selector: "mat-formio-html", viewQueries: [{ propertyName: "htmlBody", first: true, predicate: ["htmlBody"], descendants: true }], usesInheritance: true, ngImport: i0, template: `<div #htmlBody></div>`, isInline: true });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialHtmlComponent, decorators: [{
|
|
18
|
+
type: Component,
|
|
19
|
+
args: [{
|
|
20
|
+
selector: 'mat-formio-html',
|
|
21
|
+
template: `<div #htmlBody></div>`
|
|
22
|
+
}]
|
|
23
|
+
}], propDecorators: { htmlBody: [{
|
|
24
|
+
type: ViewChild,
|
|
25
|
+
args: ['htmlBody']
|
|
26
|
+
}] } });
|
|
27
|
+
HtmlComponent.MaterialComponent = MaterialHtmlComponent;
|
|
28
|
+
export { HtmlComponent };
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVuZGVyLW1hdGVyaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9odG1sL2h0bWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWlCLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFNN0QsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGlCQUFpQjtJQUcxRCxlQUFlO1FBQ2IsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFO1lBQzNDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxHQUFHLEdBQUcsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDeEUsQ0FBQyxDQUFDO1NBQ0g7SUFDSCxDQUFDOztrSEFWVSxxQkFBcUI7c0dBQXJCLHFCQUFxQixvTEFGdEIsdUJBQXVCOzJGQUV0QixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFLHVCQUF1QjtpQkFDbEM7OEJBRXdCLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTs7QUFXdkIsYUFBYSxDQUFDLGlCQUFpQixHQUFHLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRlcmlhbENvbXBvbmVudCB9IGZyb20gJy4uL01hdGVyaWFsQ29tcG9uZW50JztcbmltcG9ydCBIdG1sQ29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvaHRtbC9IVE1MLmpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWF0LWZvcm1pby1odG1sJyxcbiAgdGVtcGxhdGU6IGA8ZGl2ICNodG1sQm9keT48L2Rpdj5gXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsSHRtbENvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ2h0bWxCb2R5JykgaHRtbEJvZHk6IEVsZW1lbnRSZWY7XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5yZWZyZXNoT25DaGFuZ2UpIHtcbiAgICAgIHRoaXMuaW5zdGFuY2UuY2hlY2tSZWZyZXNoT24gPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuaHRtbEJvZHkubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLmluc3RhbmNlLnJlbmRlckNvbnRlbnQoKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG5IdG1sQ29tcG9uZW50Lk1hdGVyaWFsQ29tcG9uZW50ID0gTWF0ZXJpYWxIdG1sQ29tcG9uZW50O1xuZXhwb3J0IHsgSHRtbENvbXBvbmVudCB9O1xuIl19
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
const Components = require('formiojs/components/Components').default;
|
|
2
|
+
import Component from 'formiojs/components/_classes/component/Component.js';
|
|
3
|
+
import { TextFieldComponent } from './textfield/textfield.component';
|
|
4
|
+
import { PasswordComponent } from './password/password.component';
|
|
5
|
+
import { EmailComponent } from './email/email.component';
|
|
6
|
+
import { UrlComponent } from './url/url.component';
|
|
7
|
+
import { PhoneNumberComponent } from './phonenumber/phonenumber.component';
|
|
8
|
+
import { NumberComponent } from './number/number.component';
|
|
9
|
+
import { CurrencyComponent } from './currency/currency.component';
|
|
10
|
+
import { DayComponent } from './day/day.component';
|
|
11
|
+
import { HiddenComponent } from './hidden/hidden.component';
|
|
12
|
+
import { HtmlComponent } from './html/html.component';
|
|
13
|
+
import { TagsComponent } from './tags/tags.component';
|
|
14
|
+
import { ButtonComponent } from './button/button.component';
|
|
15
|
+
import { TextAreaComponent } from './textarea/textarea.component';
|
|
16
|
+
import { PanelComponent } from './panel/panel.component';
|
|
17
|
+
import { ColumnsComponent } from './columns/columns.component';
|
|
18
|
+
import { ContainerComponent } from './container/container.component';
|
|
19
|
+
import { TabsComponent } from './tabs/tabs.component';
|
|
20
|
+
import { DateTimeComponent } from './date/date.component';
|
|
21
|
+
import { CheckboxComponent } from './checkbox/checkbox.component';
|
|
22
|
+
import { FieldsetComponent } from './fieldset/fieldset.component';
|
|
23
|
+
import { ContentComponent } from './content/content.component';
|
|
24
|
+
import { SignatureComponent } from './signature/signature.component';
|
|
25
|
+
import { SurveyComponent } from './survey/survey.component';
|
|
26
|
+
import { SelectBoxesComponent } from './selectboxes/selectboxes.component';
|
|
27
|
+
import { RadioComponent } from './radio/radio.component';
|
|
28
|
+
import { SelectComponent } from './select/select.component';
|
|
29
|
+
import { WellComponent } from './well/well.component';
|
|
30
|
+
import { DataGridComponent } from './datagrid/datagrid.component';
|
|
31
|
+
import { EditGridComponent } from './editgrid/editgrid.component';
|
|
32
|
+
import { TableComponent } from './table/table.component';
|
|
33
|
+
import { FormioComponent } from './MaterialComponent';
|
|
34
|
+
import { Wizard } from './formio.wizard';
|
|
35
|
+
import { TimeComponent } from './time/time.component';
|
|
36
|
+
// Set the components.
|
|
37
|
+
const components = {
|
|
38
|
+
textfield: TextFieldComponent,
|
|
39
|
+
password: PasswordComponent,
|
|
40
|
+
url: UrlComponent,
|
|
41
|
+
checkbox: CheckboxComponent,
|
|
42
|
+
email: EmailComponent,
|
|
43
|
+
phoneNumber: PhoneNumberComponent,
|
|
44
|
+
number: NumberComponent,
|
|
45
|
+
currency: CurrencyComponent,
|
|
46
|
+
day: DayComponent,
|
|
47
|
+
hidden: HiddenComponent,
|
|
48
|
+
htmlelement: HtmlComponent,
|
|
49
|
+
tags: TagsComponent,
|
|
50
|
+
textarea: TextAreaComponent,
|
|
51
|
+
button: ButtonComponent,
|
|
52
|
+
datetime: DateTimeComponent,
|
|
53
|
+
panel: PanelComponent,
|
|
54
|
+
columns: ColumnsComponent,
|
|
55
|
+
tabs: TabsComponent,
|
|
56
|
+
table: TableComponent,
|
|
57
|
+
well: WellComponent,
|
|
58
|
+
fieldset: FieldsetComponent,
|
|
59
|
+
content: ContentComponent,
|
|
60
|
+
signature: SignatureComponent,
|
|
61
|
+
survey: SurveyComponent,
|
|
62
|
+
selectboxes: SelectBoxesComponent,
|
|
63
|
+
radio: RadioComponent,
|
|
64
|
+
select: SelectComponent,
|
|
65
|
+
container: ContainerComponent,
|
|
66
|
+
datagrid: DataGridComponent,
|
|
67
|
+
editgrid: EditGridComponent,
|
|
68
|
+
unknown: FormioComponent,
|
|
69
|
+
time: TimeComponent,
|
|
70
|
+
wizard: Wizard
|
|
71
|
+
};
|
|
72
|
+
export function getComponents() {
|
|
73
|
+
for (const type of Object.keys(components)) {
|
|
74
|
+
const CompClass = components[type];
|
|
75
|
+
CompClass.prototype.render = (function () {
|
|
76
|
+
if (this.materialComponent) {
|
|
77
|
+
return this.materialComponent.renderComponents();
|
|
78
|
+
}
|
|
79
|
+
const viewContainer = this.parent ? this.parent.viewContainer(this) : this.viewContainer(this);
|
|
80
|
+
if (!viewContainer) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const factory = this.options.viewResolver.resolveComponentFactory(CompClass.MaterialComponent);
|
|
84
|
+
const componentRef = viewContainer.createComponent(factory);
|
|
85
|
+
componentRef.instance.setInstance(this);
|
|
86
|
+
});
|
|
87
|
+
const setValue = CompClass.prototype.setValue;
|
|
88
|
+
CompClass.prototype.setValue = (function (...args) {
|
|
89
|
+
if (this.materialComponent) {
|
|
90
|
+
this.materialComponent.setValue(args[0]);
|
|
91
|
+
}
|
|
92
|
+
return setValue.call(this, ...args);
|
|
93
|
+
});
|
|
94
|
+
components[type] = CompClass;
|
|
95
|
+
}
|
|
96
|
+
return components;
|
|
97
|
+
}
|
|
98
|
+
export function registerComponent(name, CompClass) {
|
|
99
|
+
class DummyComponent extends Component {
|
|
100
|
+
}
|
|
101
|
+
;
|
|
102
|
+
const formIOComp = DummyComponent;
|
|
103
|
+
formIOComp.MaterialComponent = CompClass;
|
|
104
|
+
formIOComp.prototype.render = (function () {
|
|
105
|
+
if (this.materialComponent) {
|
|
106
|
+
return this.materialComponent;
|
|
107
|
+
}
|
|
108
|
+
const viewContainer = this.parent ? this.parent.viewContainer(this) : this.viewContainer(this);
|
|
109
|
+
if (!viewContainer) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
const factory = this.options.viewResolver.resolveComponentFactory(formIOComp.MaterialComponent);
|
|
113
|
+
const componentRef = viewContainer.createComponent(factory);
|
|
114
|
+
componentRef.instance.setInstance(this);
|
|
115
|
+
});
|
|
116
|
+
const setValue = formIOComp.prototype.setValue;
|
|
117
|
+
formIOComp.prototype.setValue = (function (...args) {
|
|
118
|
+
if (this.materialComponent) {
|
|
119
|
+
this.materialComponent.setValue(args[0]);
|
|
120
|
+
}
|
|
121
|
+
return setValue.call(this, ...args);
|
|
122
|
+
});
|
|
123
|
+
Components.addComponent(name, formIOComp);
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVuZGVyLW1hdGVyaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFDckUsT0FBTyxTQUFTLE1BQU0scURBQXFELENBQUM7QUFFNUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZC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LENBQUM7QUFFNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IENvbXBvbmVudHMgPSByZXF1aXJlKCdmb3JtaW9qcy9jb21wb25lbnRzL0NvbXBvbmVudHMnKS5kZWZhdWx0O1xuaW1wb3J0IENvbXBvbmVudCBmcm9tICdmb3JtaW9qcy9jb21wb25lbnRzL19jbGFzc2VzL2NvbXBvbmVudC9Db21wb25lbnQuanMnO1xuXG5pbXBvcnQgeyBUZXh0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL3RleHRmaWVsZC90ZXh0ZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnLi9wYXNzd29yZC9wYXNzd29yZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1haWxDb21wb25lbnQgfSBmcm9tICcuL2VtYWlsL2VtYWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVcmxDb21wb25lbnQgfSBmcm9tICcuL3VybC91cmwuY29tcG9uZW50JztcbmltcG9ydCB7IFBob25lTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9waG9uZW51bWJlci9waG9uZW51bWJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9udW1iZXIvbnVtYmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXJyZW5jeUNvbXBvbmVudCB9IGZyb20gJy4vY3VycmVuY3kvY3VycmVuY3kuY29tcG9uZW50JztcbmltcG9ydCB7IERheUNvbXBvbmVudCB9IGZyb20gJy4vZGF5L2RheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGlkZGVuQ29tcG9uZW50IH0gZnJvbSAnLi9oaWRkZW4vaGlkZGVuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIdG1sQ29tcG9uZW50IH0gZnJvbSAnLi9odG1sL2h0bWwuY29tcG9uZW50JztcbmltcG9ydCB7IFRhZ3NDb21wb25lbnQgfSBmcm9tICcuL3RhZ3MvdGFncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0QXJlYUNvbXBvbmVudCB9IGZyb20gJy4vdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50JztcbmltcG9ydCB7IFBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9wYW5lbC9wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sdW1uc0NvbXBvbmVudCB9IGZyb20gJy4vY29sdW1ucy9jb2x1bW5zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbnRhaW5lci9jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYnNDb21wb25lbnQgfSBmcm9tICcuL3RhYnMvdGFicy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVRpbWVDb21wb25lbnQgfSBmcm9tICcuL2RhdGUvZGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWVsZHNldENvbXBvbmVudCB9IGZyb20gJy4vZmllbGRzZXQvZmllbGRzZXQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbnRlbnQvY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2lnbmF0dXJlQ29tcG9uZW50IH0gZnJvbSAnLi9zaWduYXR1cmUvc2lnbmF0dXJlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuL3N1cnZleS9zdXJ2ZXkuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdEJveGVzQ29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3Rib3hlcy9zZWxlY3Rib3hlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmFkaW9Db21wb25lbnQgfSBmcm9tICcuL3JhZGlvL3JhZGlvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IFdlbGxDb21wb25lbnQgfSBmcm9tICcuL3dlbGwvd2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YUdyaWRDb21wb25lbnQgfSBmcm9tICcuL2RhdGFncmlkL2RhdGFncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFZGl0R3JpZENvbXBvbmVudCB9IGZyb20gJy4vZWRpdGdyaWQvZWRpdGdyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWlvQ29tcG9uZW50IH0gZnJvbSAnLi9NYXRlcmlhbENvbXBvbmVudCc7XG5pbXBvcnQgeyBXaXphcmQgfSBmcm9tICcuL2Zvcm1pby53aXphcmQnO1xuaW1wb3J0IHsgVGltZUNvbXBvbmVudCB9IGZyb20gJy4vdGltZS90aW1lLmNvbXBvbmVudCdcblxuLy8gU2V0IHRoZSBjb21wb25lbnRzLlxuY29uc3QgY29tcG9uZW50czogYW55ID0ge1xuICB0ZXh0ZmllbGQ6IFRleHRGaWVsZENvbXBvbmVudCxcbiAgcGFzc3dvcmQ6IFBhc3N3b3JkQ29tcG9uZW50LFxuICB1cmw6IFVybENvbXBvbmVudCxcbiAgY2hlY2tib3g6IENoZWNrYm94Q29tcG9uZW50LFxuICBlbWFpbDogRW1haWxDb21wb25lbnQsXG4gIHBob25lTnVtYmVyOiBQaG9uZU51bWJlckNvbXBvbmVudCxcbiAgbnVtYmVyOiBOdW1iZXJDb21wb25lbnQsXG4gIGN1cnJlbmN5OiBDdXJyZW5jeUNvbXBvbmVudCxcbiAgZGF5OiBEYXlDb21wb25lbnQsXG4gIGhpZGRlbjogSGlkZGVuQ29tcG9uZW50LFxuICBodG1sZWxlbWVudDogSHRtbENvbXBvbmVudCxcbiAgdGFnczogVGFnc0NvbXBvbmVudCxcbiAgdGV4dGFyZWE6IFRleHRBcmVhQ29tcG9uZW50LFxuICBidXR0b246IEJ1dHRvbkNvbXBvbmVudCxcbiAgZGF0ZXRpbWU6IERhdGVUaW1lQ29tcG9uZW50LFxuICBwYW5lbDogUGFuZWxDb21wb25lbnQsXG4gIGNvbHVtbnM6IENvbHVtbnNDb21wb25lbnQsXG4gIHRhYnM6IFRhYnNDb21wb25lbnQsXG4gIHRhYmxlOiBUYWJsZUNvbXBvbmVudCxcbiAgd2VsbDogV2VsbENvbXBvbmVudCxcbiAgZmllbGRzZXQ6IEZpZWxkc2V0Q29tcG9uZW50LFxuICBjb250ZW50OiBDb250ZW50Q29tcG9uZW50LFxuICBzaWduYXR1cmU6IFNpZ25hdHVyZUNvbXBvbmVudCxcbiAgc3VydmV5OiBTdXJ2ZXlDb21wb25lbnQsXG4gIHNlbGVjdGJveGVzOiBTZWxlY3RCb3hlc0NvbXBvbmVudCxcbiAgcmFkaW86IFJhZGlvQ29tcG9uZW50LFxuICBzZWxlY3Q6IFNlbGVjdENvbXBvbmVudCxcbiAgY29udGFpbmVyOiBDb250YWluZXJDb21wb25lbnQsXG4gIGRhdGFncmlkOiBEYXRhR3JpZENvbXBvbmVudCxcbiAgZWRpdGdyaWQ6IEVkaXRHcmlkQ29tcG9uZW50LFxuICB1bmtub3duOiBGb3JtaW9Db21wb25lbnQsXG4gIHRpbWU6IFRpbWVDb21wb25lbnQsXG4gIHdpemFyZDogV2l6YXJkXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29tcG9uZW50cygpIHtcbiAgZm9yIChjb25zdCB0eXBlIG9mIE9iamVjdC5rZXlzKGNvbXBvbmVudHMpKSB7XG4gICAgY29uc3QgQ29tcENsYXNzID0gY29tcG9uZW50c1t0eXBlXTtcbiAgICBDb21wQ2xhc3MucHJvdG90eXBlLnJlbmRlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAodGhpcy5tYXRlcmlhbENvbXBvbmVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXRlcmlhbENvbXBvbmVudC5yZW5kZXJDb21wb25lbnRzKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHZpZXdDb250YWluZXIgPSB0aGlzLnBhcmVudCA/IHRoaXMucGFyZW50LnZpZXdDb250YWluZXIodGhpcykgOiB0aGlzLnZpZXdDb250YWluZXIodGhpcyk7XG4gICAgICBpZiAoIXZpZXdDb250YWluZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMub3B0aW9ucy52aWV3UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoQ29tcENsYXNzLk1hdGVyaWFsQ29tcG9uZW50KTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuICAgICAgKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBhbnkpLnNldEluc3RhbmNlKHRoaXMpO1xuICAgIH0pO1xuXG4gICAgY29uc3Qgc2V0VmFsdWUgPSBDb21wQ2xhc3MucHJvdG90eXBlLnNldFZhbHVlO1xuICAgIENvbXBDbGFzcy5wcm90b3R5cGUuc2V0VmFsdWUgPSAoZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgIGlmICh0aGlzLm1hdGVyaWFsQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMubWF0ZXJpYWxDb21wb25lbnQuc2V0VmFsdWUoYXJnc1swXSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc2V0VmFsdWUuY2FsbCh0aGlzLCAuLi5hcmdzKTtcbiAgICB9KTtcblxuICAgIGNvbXBvbmVudHNbdHlwZV0gPSBDb21wQ2xhc3M7XG4gIH1cblxuICByZXR1cm4gY29tcG9uZW50cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQ29tcG9uZW50KG5hbWU6IHN0cmluZywgQ29tcENsYXNzOiBhbnkpIHtcblxuICBjbGFzcyBEdW1teUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudCB7fTtcbiAgY29uc3QgZm9ybUlPQ29tcCA9IChEdW1teUNvbXBvbmVudCBhcyBhbnkpO1xuXG4gIGZvcm1JT0NvbXAuTWF0ZXJpYWxDb21wb25lbnQgPSBDb21wQ2xhc3M7XG4gIGZvcm1JT0NvbXAucHJvdG90eXBlLnJlbmRlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMubWF0ZXJpYWxDb21wb25lbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLm1hdGVyaWFsQ29tcG9uZW50O1xuICAgIH1cbiAgICBjb25zdCB2aWV3Q29udGFpbmVyID0gdGhpcy5wYXJlbnQgPyB0aGlzLnBhcmVudC52aWV3Q29udGFpbmVyKHRoaXMpIDogdGhpcy52aWV3Q29udGFpbmVyKHRoaXMpO1xuICAgIGlmICghdmlld0NvbnRhaW5lcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5vcHRpb25zLnZpZXdSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShmb3JtSU9Db21wLk1hdGVyaWFsQ29tcG9uZW50KTtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB2aWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcbiAgICAoY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIGFueSkuc2V0SW5zdGFuY2UodGhpcyk7XG4gIH0pO1xuXG4gIGNvbnN0IHNldFZhbHVlID0gZm9ybUlPQ29tcC5wcm90b3R5cGUuc2V0VmFsdWU7XG4gIGZvcm1JT0NvbXAucHJvdG90eXBlLnNldFZhbHVlID0gKGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgaWYgKHRoaXMubWF0ZXJpYWxDb21wb25lbnQpIHtcbiAgICAgIHRoaXMubWF0ZXJpYWxDb21wb25lbnQuc2V0VmFsdWUoYXJnc1swXSk7XG4gICAgfVxuICAgIHJldHVybiBzZXRWYWx1ZS5jYWxsKHRoaXMsIC4uLmFyZ3MpO1xuICB9KTtcblxuICBDb21wb25lbnRzLmFkZENvbXBvbmVudChuYW1lLCBmb3JtSU9Db21wKTtcblxufVxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@angular/material/form-field";
|
|
5
|
+
import * as i3 from "@angular/material/tooltip";
|
|
6
|
+
import * as i4 from "@angular/material/icon";
|
|
7
|
+
export class LabelComponent {
|
|
8
|
+
}
|
|
9
|
+
LabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: LabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
LabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: LabelComponent, selector: "span[matFormioLabel]", inputs: { instance: "instance" }, ngImport: i0, template: "<ng-container *ngIf=\"instance\">\n {{ instance.component.label }}<span class=\"required-star\" *ngIf=\"instance.component.validate.required\">*</span>\n <mat-icon *ngIf=\"instance.component.tooltip\" style=\"font-size: 1rem;\"\n matTooltip=\"{{ instance.component.tooltip }}\" matSuffix\n >\n info\n </mat-icon>\n</ng-container>\n", styles: [":host{pointer-events:all;display:block}.required-star{margin-left:.2rem;color:red;font-size:.8rem;vertical-align:top}\n"], 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"] }] });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: LabelComponent, decorators: [{
|
|
12
|
+
type: Component,
|
|
13
|
+
args: [{ selector: 'span[matFormioLabel]', template: "<ng-container *ngIf=\"instance\">\n {{ instance.component.label }}<span class=\"required-star\" *ngIf=\"instance.component.validate.required\">*</span>\n <mat-icon *ngIf=\"instance.component.tooltip\" style=\"font-size: 1rem;\"\n matTooltip=\"{{ instance.component.tooltip }}\" matSuffix\n >\n info\n </mat-icon>\n</ng-container>\n", styles: [":host{pointer-events:all;display:block}.required-star{margin-left:.2rem;color:red;font-size:.8rem;vertical-align:top}\n"] }]
|
|
14
|
+
}], propDecorators: { instance: [{
|
|
15
|
+
type: Input
|
|
16
|
+
}] } });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvbGFiZWwvbGFiZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvbGFiZWwvbGFiZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVFqRCxNQUFNLE9BQU8sY0FBYzs7MkdBQWQsY0FBYzsrRkFBZCxjQUFjLDhGQ1IzQiwrVkFRQTsyRkRBYSxjQUFjO2tCQU4xQixTQUFTOytCQUVFLHNCQUFzQjs4QkFLdkIsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdzcGFuW21hdEZvcm1pb0xhYmVsXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9sYWJlbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xhYmVsLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMYWJlbENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGluc3RhbmNlO1xufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImluc3RhbmNlXCI+XG4gIHt7IGluc3RhbmNlLmNvbXBvbmVudC5sYWJlbCB9fTxzcGFuIGNsYXNzPVwicmVxdWlyZWQtc3RhclwiICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LnZhbGlkYXRlLnJlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgPG1hdC1pY29uICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LnRvb2x0aXBcIiBzdHlsZT1cImZvbnQtc2l6ZTogMXJlbTtcIlxuICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7IGluc3RhbmNlLmNvbXBvbmVudC50b29sdGlwIH19XCIgbWF0U3VmZml4XG4gID5cbiAgICBpbmZvXG4gIDwvbWF0LWljb24+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';
|
|
3
|
+
import NumberComponent from 'formiojs/components/number/Number.js';
|
|
4
|
+
import _ from 'lodash';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "@angular/forms";
|
|
8
|
+
import * as i3 from "@angular/material/form-field";
|
|
9
|
+
import * as i4 from "@angular/material/input";
|
|
10
|
+
import * as i5 from "@angular/flex-layout/flex";
|
|
11
|
+
import * as i6 from "../formio-form-field/formio-form-field.component";
|
|
12
|
+
import * as i7 from "../label/label.component";
|
|
13
|
+
export class MaterialNumberComponent extends MaterialTextfieldComponent {
|
|
14
|
+
constructor(element, ref, renderer) {
|
|
15
|
+
super(element, ref);
|
|
16
|
+
this.element = element;
|
|
17
|
+
this.ref = ref;
|
|
18
|
+
this.renderer = renderer;
|
|
19
|
+
this.inputType = 'text';
|
|
20
|
+
}
|
|
21
|
+
ngAfterViewInit() {
|
|
22
|
+
super.ngAfterViewInit();
|
|
23
|
+
if (this.instance) {
|
|
24
|
+
const { instance } = this;
|
|
25
|
+
this.renderer.listen(this.input.nativeElement, 'blur', () => {
|
|
26
|
+
let value = instance.parseValue(this.control.value);
|
|
27
|
+
value = instance.formatValue(value);
|
|
28
|
+
value = instance.getValueAsString(value);
|
|
29
|
+
this.control.setValue(value);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
getValue() {
|
|
34
|
+
let value = this.control.value;
|
|
35
|
+
if (value && this.instance) {
|
|
36
|
+
value = value.replace(this.instance.prefix, '');
|
|
37
|
+
return !_.isNil(value) && value !== '' ? this.instance.parseNumber(value) : value;
|
|
38
|
+
}
|
|
39
|
+
return value;
|
|
40
|
+
}
|
|
41
|
+
setValue(value) {
|
|
42
|
+
if (this.instance) {
|
|
43
|
+
const { instance } = this;
|
|
44
|
+
value = instance.formatValue(instance.parseValue(value));
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
value = value.toString();
|
|
48
|
+
}
|
|
49
|
+
return super.setValue(value);
|
|
50
|
+
}
|
|
51
|
+
onChange() {
|
|
52
|
+
super.onChange(true);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
MaterialNumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialNumberComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
56
|
+
MaterialNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MaterialNumberComponent, selector: "mat-formio-number", 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 >\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.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: "component", type: i6.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i7.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] });
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialNumberComponent, decorators: [{
|
|
58
|
+
type: Component,
|
|
59
|
+
args: [{
|
|
60
|
+
selector: 'mat-formio-number',
|
|
61
|
+
template: TEXTFIELD_TEMPLATE
|
|
62
|
+
}]
|
|
63
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }]; } });
|
|
64
|
+
NumberComponent.MaterialComponent = MaterialNumberComponent;
|
|
65
|
+
export { NumberComponent };
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL251bWJlci9udW1iZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRyxPQUFPLGVBQWUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRSxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7OztBQU12QixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsMEJBQTBCO0lBR3JFLFlBQW1CLE9BQW1CLEVBQVMsR0FBc0IsRUFBVSxRQUFtQjtRQUNoRyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBREgsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUYzRixjQUFTLEdBQUcsTUFBTSxDQUFDO0lBSTFCLENBQUM7SUFFRCxlQUFlO1FBQ2IsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBRXhCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQzFELElBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEQsS0FBSyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BDLEtBQUssR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDO1NBRU47SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQy9CLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDMUIsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEQsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztTQUNuRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFLO1FBQ1osSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDMUIsS0FBSyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQzFEO2FBQ0k7WUFDSCxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQzFCO1FBRUQsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxRQUFRO1FBQ04sS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixDQUFDOztvSEE3Q1UsdUJBQXVCO3dHQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUUsa0JBQWtCO2lCQUM3Qjs7QUFnREQsZUFBZSxDQUFDLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0ZXJpYWxUZXh0ZmllbGRDb21wb25lbnQsIFRFWFRGSUVMRF9URU1QTEFURSB9IGZyb20gJy4uL3RleHRmaWVsZC90ZXh0ZmllbGQuY29tcG9uZW50JztcbmltcG9ydCBOdW1iZXJDb21wb25lbnQgZnJvbSAnZm9ybWlvanMvY29tcG9uZW50cy9udW1iZXIvTnVtYmVyLmpzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hdC1mb3JtaW8tbnVtYmVyJyxcbiAgdGVtcGxhdGU6IFRFWFRGSUVMRF9URU1QTEFURVxufSlcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbE51bWJlckNvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsVGV4dGZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIHB1YmxpYyBpbnB1dFR5cGUgPSAndGV4dCc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHB1YmxpYyByZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICBzdXBlcihlbGVtZW50LCByZWYpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICBjb25zdCB7IGluc3RhbmNlIH0gPSB0aGlzO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgJ2JsdXInLCAoKSA9PiB7XG4gICAgICAgICAgbGV0IHZhbHVlID0gaW5zdGFuY2UucGFyc2VWYWx1ZSh0aGlzLmNvbnRyb2wudmFsdWUpO1xuICAgICAgICAgIHZhbHVlID0gaW5zdGFuY2UuZm9ybWF0VmFsdWUodmFsdWUpO1xuICAgICAgICAgIHZhbHVlID0gaW5zdGFuY2UuZ2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgfSk7XG5cbiAgICB9XG4gIH1cblxuICBnZXRWYWx1ZSgpIHtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmNvbnRyb2wudmFsdWU7XG4gICAgaWYgKHZhbHVlICYmIHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSh0aGlzLmluc3RhbmNlLnByZWZpeCwgJycpO1xuICAgICAgcmV0dXJuICFfLmlzTmlsKHZhbHVlKSAmJiB2YWx1ZSAhPT0gJycgPyB0aGlzLmluc3RhbmNlLnBhcnNlTnVtYmVyKHZhbHVlKSA6IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzZXRWYWx1ZSh2YWx1ZSkge1xuICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICBjb25zdCB7IGluc3RhbmNlIH0gPSB0aGlzO1xuICAgICAgdmFsdWUgPSBpbnN0YW5jZS5mb3JtYXRWYWx1ZShpbnN0YW5jZS5wYXJzZVZhbHVlKHZhbHVlKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBlci5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBvbkNoYW5nZSgpIHtcbiAgICBzdXBlci5vbkNoYW5nZSh0cnVlKTtcbiAgfVxufVxuTnVtYmVyQ29tcG9uZW50Lk1hdGVyaWFsQ29tcG9uZW50ID0gTWF0ZXJpYWxOdW1iZXJDb21wb25lbnQ7XG5leHBvcnQgeyBOdW1iZXJDb21wb25lbnQgfTtcbiJdfQ==
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { MaterialNestedComponent } from '../MaterialNestedComponent';
|
|
3
|
+
import PanelComponent from 'formiojs/components/panel/Panel.js';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
import * as i2 from "@angular/material/expansion";
|
|
7
|
+
import * as i3 from "@angular/flex-layout/flex";
|
|
8
|
+
import * as i4 from "@angular/material/card";
|
|
9
|
+
export class MaterialPanelComponent extends MaterialNestedComponent {
|
|
10
|
+
}
|
|
11
|
+
MaterialPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
+
MaterialPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MaterialPanelComponent, selector: "mat-formio-panel", usesInheritance: true, ngImport: i0, template: `
|
|
13
|
+
<mat-card *ngIf="!instance.component.collapsible">
|
|
14
|
+
<mat-card-title *ngIf="instance?.component?.title">
|
|
15
|
+
{{ instance.component.title }}
|
|
16
|
+
</mat-card-title>
|
|
17
|
+
<mat-card-content fxLayout="column" fxLayoutGap="1em">
|
|
18
|
+
<ng-template #components></ng-template>
|
|
19
|
+
</mat-card-content>
|
|
20
|
+
</mat-card>
|
|
21
|
+
<mat-expansion-panel *ngIf="instance.component.collapsible"
|
|
22
|
+
[expanded]="!instance.component.collapsed"
|
|
23
|
+
>
|
|
24
|
+
<mat-expansion-panel-header *ngIf="instance?.component?.title">
|
|
25
|
+
<mat-panel-title>
|
|
26
|
+
{{ instance.component.title }}
|
|
27
|
+
</mat-panel-title>
|
|
28
|
+
</mat-expansion-panel-header>
|
|
29
|
+
<ng-template #components></ng-template>
|
|
30
|
+
</mat-expansion-panel>
|
|
31
|
+
`, isInline: true, styles: [":host{margin-bottom:1em}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i2.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { kind: "directive", type: i2.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i3.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: i3.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"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }] });
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialPanelComponent, decorators: [{
|
|
33
|
+
type: Component,
|
|
34
|
+
args: [{ selector: 'mat-formio-panel', template: `
|
|
35
|
+
<mat-card *ngIf="!instance.component.collapsible">
|
|
36
|
+
<mat-card-title *ngIf="instance?.component?.title">
|
|
37
|
+
{{ instance.component.title }}
|
|
38
|
+
</mat-card-title>
|
|
39
|
+
<mat-card-content fxLayout="column" fxLayoutGap="1em">
|
|
40
|
+
<ng-template #components></ng-template>
|
|
41
|
+
</mat-card-content>
|
|
42
|
+
</mat-card>
|
|
43
|
+
<mat-expansion-panel *ngIf="instance.component.collapsible"
|
|
44
|
+
[expanded]="!instance.component.collapsed"
|
|
45
|
+
>
|
|
46
|
+
<mat-expansion-panel-header *ngIf="instance?.component?.title">
|
|
47
|
+
<mat-panel-title>
|
|
48
|
+
{{ instance.component.title }}
|
|
49
|
+
</mat-panel-title>
|
|
50
|
+
</mat-expansion-panel-header>
|
|
51
|
+
<ng-template #components></ng-template>
|
|
52
|
+
</mat-expansion-panel>
|
|
53
|
+
`, styles: [":host{margin-bottom:1em}\n"] }]
|
|
54
|
+
}] });
|
|
55
|
+
PanelComponent.MaterialComponent = MaterialPanelComponent;
|
|
56
|
+
export { PanelComponent };
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvcGFuZWwvcGFuZWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxjQUFjLE1BQU0sb0NBQW9DLENBQUM7Ozs7OztBQTJCaEUsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHVCQUF1Qjs7bUhBQXRELHNCQUFzQjt1R0FBdEIsc0JBQXNCLCtFQXhCdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQlQ7MkZBS1Usc0JBQXNCO2tCQTFCbEMsU0FBUzsrQkFDRSxrQkFBa0IsWUFDbEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQlQ7O0FBTUgsY0FBYyxDQUFDLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0ZXJpYWxOZXN0ZWRDb21wb25lbnQgfSBmcm9tICcuLi9NYXRlcmlhbE5lc3RlZENvbXBvbmVudCc7XG5pbXBvcnQgUGFuZWxDb21wb25lbnQgZnJvbSAnZm9ybWlvanMvY29tcG9uZW50cy9wYW5lbC9QYW5lbC5qcyc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLXBhbmVsJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bWF0LWNhcmQgKm5nSWY9XCIhaW5zdGFuY2UuY29tcG9uZW50LmNvbGxhcHNpYmxlXCI+XG4gICAgICA8bWF0LWNhcmQtdGl0bGUgKm5nSWY9XCJpbnN0YW5jZT8uY29tcG9uZW50Py50aXRsZVwiPlxuICAgICAgICB7eyBpbnN0YW5jZS5jb21wb25lbnQudGl0bGUgfX1cbiAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICA8bWF0LWNhcmQtY29udGVudCBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0R2FwPVwiMWVtXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50cz48L25nLXRlbXBsYXRlPlxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgIDwvbWF0LWNhcmQ+XG4gICAgPG1hdC1leHBhbnNpb24tcGFuZWwgKm5nSWY9XCJpbnN0YW5jZS5jb21wb25lbnQuY29sbGFwc2libGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtleHBhbmRlZF09XCIhaW5zdGFuY2UuY29tcG9uZW50LmNvbGxhcHNlZFwiXG4gICAgPlxuICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyICpuZ0lmPVwiaW5zdGFuY2U/LmNvbXBvbmVudD8udGl0bGVcIj5cbiAgICAgICAgPG1hdC1wYW5lbC10aXRsZT5cbiAgICAgICAgICB7eyBpbnN0YW5jZS5jb21wb25lbnQudGl0bGUgfX1cbiAgICAgICAgPC9tYXQtcGFuZWwtdGl0bGU+XG4gICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRzPjwvbmctdGVtcGxhdGU+XG4gICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICAnOmhvc3QgeyBtYXJnaW4tYm90dG9tOiAxZW07IH0nXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxQYW5lbENvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50IHt9XG5QYW5lbENvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsUGFuZWxDb21wb25lbnQ7XG5leHBvcnQgeyBQYW5lbENvbXBvbmVudCB9O1xuIl19
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';
|
|
3
|
+
import PasswordComponent from 'formiojs/components/password/Password.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 "../formio-form-field/formio-form-field.component";
|
|
11
|
+
import * as i7 from "../label/label.component";
|
|
12
|
+
export class MaterialPasswordComponent extends MaterialTextfieldComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
this.inputType = 'password';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
MaterialPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialPasswordComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
19
|
+
MaterialPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MaterialPasswordComponent, selector: "mat-formio-password", 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 >\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.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: "component", type: i6.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i7.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialPasswordComponent, decorators: [{
|
|
21
|
+
type: Component,
|
|
22
|
+
args: [{
|
|
23
|
+
selector: 'mat-formio-password',
|
|
24
|
+
template: TEXTFIELD_TEMPLATE
|
|
25
|
+
}]
|
|
26
|
+
}] });
|
|
27
|
+
PasswordComponent.MaterialComponent = MaterialPasswordComponent;
|
|
28
|
+
export { PasswordComponent };
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvcGFzc3dvcmQvcGFzc3dvcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEcsT0FBTyxpQkFBaUIsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7O0FBS3pFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSwwQkFBMEI7SUFKekU7O1FBS1MsY0FBUyxHQUFHLFVBQVUsQ0FBQztLQUMvQjs7c0hBRlkseUJBQXlCOzBHQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUUsa0JBQWtCO2lCQUM3Qjs7QUFJRCxpQkFBaUIsQ0FBQyxpQkFBaUIsR0FBRyx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0ZXJpYWxUZXh0ZmllbGRDb21wb25lbnQsIFRFWFRGSUVMRF9URU1QTEFURSB9IGZyb20gJy4uL3RleHRmaWVsZC90ZXh0ZmllbGQuY29tcG9uZW50JztcbmltcG9ydCBQYXNzd29yZENvbXBvbmVudCBmcm9tICdmb3JtaW9qcy9jb21wb25lbnRzL3Bhc3N3b3JkL1Bhc3N3b3JkLmpzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hdC1mb3JtaW8tcGFzc3dvcmQnLFxuICB0ZW1wbGF0ZTogVEVYVEZJRUxEX1RFTVBMQVRFXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsUGFzc3dvcmRDb21wb25lbnQgZXh0ZW5kcyBNYXRlcmlhbFRleHRmaWVsZENvbXBvbmVudCB7XG4gIHB1YmxpYyBpbnB1dFR5cGUgPSAncGFzc3dvcmQnO1xufVxuUGFzc3dvcmRDb21wb25lbnQuTWF0ZXJpYWxDb21wb25lbnQgPSBNYXRlcmlhbFBhc3N3b3JkQ29tcG9uZW50O1xuZXhwb3J0IHsgUGFzc3dvcmRDb21wb25lbnQgfTtcbiJdfQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';
|
|
3
|
+
import PhoneNumberComponent from 'formiojs/components/phonenumber/PhoneNumber.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 "../formio-form-field/formio-form-field.component";
|
|
11
|
+
import * as i7 from "../label/label.component";
|
|
12
|
+
export class MaterialPhoneNumberComponent extends MaterialTextfieldComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
this.inputType = 'text';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
MaterialPhoneNumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialPhoneNumberComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
19
|
+
MaterialPhoneNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MaterialPhoneNumberComponent, selector: "mat-formio-phonenumber", 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 >\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.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: "component", type: i6.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i7.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialPhoneNumberComponent, decorators: [{
|
|
21
|
+
type: Component,
|
|
22
|
+
args: [{
|
|
23
|
+
selector: 'mat-formio-phonenumber',
|
|
24
|
+
template: TEXTFIELD_TEMPLATE
|
|
25
|
+
}]
|
|
26
|
+
}] });
|
|
27
|
+
PhoneNumberComponent.MaterialComponent = MaterialPhoneNumberComponent;
|
|
28
|
+
export { PhoneNumberComponent };
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmVudW1iZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvcGhvbmVudW1iZXIvcGhvbmVudW1iZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEcsT0FBTyxvQkFBb0IsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7Ozs7O0FBS2xGLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSwwQkFBMEI7SUFKNUU7O1FBS1MsY0FBUyxHQUFHLE1BQU0sQ0FBQztLQUMzQjs7eUhBRlksNEJBQTRCOzZHQUE1Qiw0QkFBNEI7MkZBQTVCLDRCQUE0QjtrQkFKeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUUsa0JBQWtCO2lCQUM3Qjs7QUFJRCxvQkFBb0IsQ0FBQyxpQkFBaUIsR0FBRyw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0ZXJpYWxUZXh0ZmllbGRDb21wb25lbnQsIFRFWFRGSUVMRF9URU1QTEFURSB9IGZyb20gJy4uL3RleHRmaWVsZC90ZXh0ZmllbGQuY29tcG9uZW50JztcbmltcG9ydCBQaG9uZU51bWJlckNvbXBvbmVudCBmcm9tICdmb3JtaW9qcy9jb21wb25lbnRzL3Bob25lbnVtYmVyL1Bob25lTnVtYmVyLmpzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hdC1mb3JtaW8tcGhvbmVudW1iZXInLFxuICB0ZW1wbGF0ZTogVEVYVEZJRUxEX1RFTVBMQVRFXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsUGhvbmVOdW1iZXJDb21wb25lbnQgZXh0ZW5kcyBNYXRlcmlhbFRleHRmaWVsZENvbXBvbmVudCB7XG4gIHB1YmxpYyBpbnB1dFR5cGUgPSAndGV4dCc7XG59XG5QaG9uZU51bWJlckNvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsUGhvbmVOdW1iZXJDb21wb25lbnQ7XG5leHBvcnQgeyBQaG9uZU51bWJlckNvbXBvbmVudCB9O1xuIl19
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { MaterialComponent } from '../MaterialComponent';
|
|
3
|
+
import RadioComponent from 'formiojs/components/radio/Radio.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/radio";
|
|
9
|
+
import * as i5 from "@angular/flex-layout/flex";
|
|
10
|
+
import * as i6 from "../formio-form-field/formio-form-field.component";
|
|
11
|
+
import * as i7 from "../label/label.component";
|
|
12
|
+
export class MaterialRadioComponent extends MaterialComponent {
|
|
13
|
+
getLayout() {
|
|
14
|
+
return this.instance.component.inline ? 'row' : 'column';
|
|
15
|
+
}
|
|
16
|
+
isRadioChecked(option) {
|
|
17
|
+
return option.value === this.instance.dataValue;
|
|
18
|
+
}
|
|
19
|
+
clearValue(event, option) {
|
|
20
|
+
if (this.isRadioChecked(option)) {
|
|
21
|
+
event.preventDefault();
|
|
22
|
+
this.deselectValue();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
deselectValue() {
|
|
26
|
+
this.instance.updateValue(null, {
|
|
27
|
+
modified: true,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
MaterialRadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialRadioComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
32
|
+
MaterialRadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MaterialRadioComponent, selector: "mat-formio-radio", usesInheritance: true, ngImport: i0, template: `
|
|
33
|
+
<mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
|
|
34
|
+
<ng-template #componentTemplate let-hasLabel>
|
|
35
|
+
<div fxLayout="column">
|
|
36
|
+
<mat-label *ngIf="hasLabel">
|
|
37
|
+
<span [instance]="instance" matFormioLabel></span>
|
|
38
|
+
</mat-label>
|
|
39
|
+
|
|
40
|
+
<mat-radio-group
|
|
41
|
+
(change)="onChange()"
|
|
42
|
+
[formControl]="control"
|
|
43
|
+
fxFlexOffset="10px"
|
|
44
|
+
fxLayout="{{ getLayout() }}"
|
|
45
|
+
fxLayoutGap="10px"
|
|
46
|
+
>
|
|
47
|
+
<mat-radio-button *ngFor="let option of instance.component.values"
|
|
48
|
+
value="{{ option.value }}"
|
|
49
|
+
[checked]="isRadioChecked(option)"
|
|
50
|
+
(keyup.space)="clearValue($event, option)"
|
|
51
|
+
(click)="clearValue($event, option)"
|
|
52
|
+
>
|
|
53
|
+
{{ option.label }}
|
|
54
|
+
</mat-radio-button>
|
|
55
|
+
<mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
|
|
56
|
+
</mat-radio-group>
|
|
57
|
+
</div>
|
|
58
|
+
</ng-template>
|
|
59
|
+
`, 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: "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: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { 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"] }, { kind: "directive", type: i5.DefaultFlexOffsetDirective, selector: " [fxFlexOffset], [fxFlexOffset.xs], [fxFlexOffset.sm], [fxFlexOffset.md], [fxFlexOffset.lg], [fxFlexOffset.xl], [fxFlexOffset.lt-sm], [fxFlexOffset.lt-md], [fxFlexOffset.lt-lg], [fxFlexOffset.lt-xl], [fxFlexOffset.gt-xs], [fxFlexOffset.gt-sm], [fxFlexOffset.gt-md], [fxFlexOffset.gt-lg]", inputs: ["fxFlexOffset", "fxFlexOffset.xs", "fxFlexOffset.sm", "fxFlexOffset.md", "fxFlexOffset.lg", "fxFlexOffset.xl", "fxFlexOffset.lt-sm", "fxFlexOffset.lt-md", "fxFlexOffset.lt-lg", "fxFlexOffset.lt-xl", "fxFlexOffset.gt-xs", "fxFlexOffset.gt-sm", "fxFlexOffset.gt-md", "fxFlexOffset.gt-lg"] }, { kind: "component", type: i6.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i7.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] });
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialRadioComponent, decorators: [{
|
|
61
|
+
type: Component,
|
|
62
|
+
args: [{
|
|
63
|
+
selector: 'mat-formio-radio',
|
|
64
|
+
template: `
|
|
65
|
+
<mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
|
|
66
|
+
<ng-template #componentTemplate let-hasLabel>
|
|
67
|
+
<div fxLayout="column">
|
|
68
|
+
<mat-label *ngIf="hasLabel">
|
|
69
|
+
<span [instance]="instance" matFormioLabel></span>
|
|
70
|
+
</mat-label>
|
|
71
|
+
|
|
72
|
+
<mat-radio-group
|
|
73
|
+
(change)="onChange()"
|
|
74
|
+
[formControl]="control"
|
|
75
|
+
fxFlexOffset="10px"
|
|
76
|
+
fxLayout="{{ getLayout() }}"
|
|
77
|
+
fxLayoutGap="10px"
|
|
78
|
+
>
|
|
79
|
+
<mat-radio-button *ngFor="let option of instance.component.values"
|
|
80
|
+
value="{{ option.value }}"
|
|
81
|
+
[checked]="isRadioChecked(option)"
|
|
82
|
+
(keyup.space)="clearValue($event, option)"
|
|
83
|
+
(click)="clearValue($event, option)"
|
|
84
|
+
>
|
|
85
|
+
{{ option.label }}
|
|
86
|
+
</mat-radio-button>
|
|
87
|
+
<mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
|
|
88
|
+
</mat-radio-group>
|
|
89
|
+
</div>
|
|
90
|
+
</ng-template>
|
|
91
|
+
`
|
|
92
|
+
}]
|
|
93
|
+
}] });
|
|
94
|
+
RadioComponent.MaterialComponent = MaterialRadioComponent;
|
|
95
|
+
export { RadioComponent };
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvcmFkaW8vcmFkaW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxjQUFjLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7OztBQWlDaEUsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGlCQUFpQjtJQUMzRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQzNELENBQUM7SUFFRCxjQUFjLENBQUMsTUFBTTtRQUNuQixPQUFPLE1BQU0sQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7SUFDbEQsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTTtRQUN0QixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDL0IsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFO1lBQzlCLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7bUhBcEJVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLCtFQTdCdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVDsyRkFFVSxzQkFBc0I7a0JBL0JsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJUO2lCQUNGOztBQXVCRCxjQUFjLENBQUMsaUJBQWlCLEdBQUcsc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRlcmlhbENvbXBvbmVudCB9IGZyb20gJy4uL01hdGVyaWFsQ29tcG9uZW50JztcbmltcG9ydCBSYWRpb0NvbXBvbmVudCBmcm9tICdmb3JtaW9qcy9jb21wb25lbnRzL3JhZGlvL1JhZGlvLmpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWF0LWZvcm1pby1yYWRpbycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG1hdC1mb3JtaW8tZm9ybS1maWVsZCBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBbY29tcG9uZW50VGVtcGxhdGVdPVwiY29tcG9uZW50VGVtcGxhdGVcIj48L21hdC1mb3JtaW8tZm9ybS1maWVsZD5cbiAgICA8bmctdGVtcGxhdGUgI2NvbXBvbmVudFRlbXBsYXRlIGxldC1oYXNMYWJlbD5cbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cbiAgICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cImhhc0xhYmVsXCI+XG4gICAgICAgICAgPHNwYW4gW2luc3RhbmNlXT1cImluc3RhbmNlXCIgbWF0Rm9ybWlvTGFiZWw+PC9zcGFuPlxuICAgICAgICA8L21hdC1sYWJlbD5cblxuICAgICAgICA8bWF0LXJhZGlvLWdyb3VwXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgpXCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICAgICAgICAgICAgZnhGbGV4T2Zmc2V0PVwiMTBweFwiXG4gICAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJ7eyBnZXRMYXlvdXQoKSB9fVwiXG4gICAgICAgICAgICAgICAgZnhMYXlvdXRHYXA9XCIxMHB4XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgaW5zdGFuY2UuY29tcG9uZW50LnZhbHVlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJ7eyBvcHRpb24udmFsdWUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImlzUmFkaW9DaGVja2VkKG9wdGlvbilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJjbGVhclZhbHVlKCRldmVudCwgb3B0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyVmFsdWUoJGV2ZW50LCBvcHRpb24pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XG4gICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImluc3RhbmNlLmVycm9yXCI+e3sgaW5zdGFuY2UuZXJyb3IubWVzc2FnZSB9fTwvbWF0LWVycm9yPlxuICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxSYWRpb0NvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsQ29tcG9uZW50IHtcbiAgZ2V0TGF5b3V0KCkge1xuICAgIHJldHVybiB0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5pbmxpbmUgPyAncm93JyA6ICdjb2x1bW4nO1xuICB9XG5cbiAgaXNSYWRpb0NoZWNrZWQob3B0aW9uKSB7XG4gICAgcmV0dXJuIG9wdGlvbi52YWx1ZSA9PT0gdGhpcy5pbnN0YW5jZS5kYXRhVmFsdWU7XG4gIH1cblxuICBjbGVhclZhbHVlKGV2ZW50LCBvcHRpb24pIHtcbiAgICBpZiAodGhpcy5pc1JhZGlvQ2hlY2tlZChvcHRpb24pKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5kZXNlbGVjdFZhbHVlKCk7XG4gICAgfVxuICB9XG5cbiAgZGVzZWxlY3RWYWx1ZSgpIHtcbiAgICB0aGlzLmluc3RhbmNlLnVwZGF0ZVZhbHVlKG51bGwsIHtcbiAgICAgIG1vZGlmaWVkOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG5SYWRpb0NvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsUmFkaW9Db21wb25lbnQ7XG5leHBvcnQgeyBSYWRpb0NvbXBvbmVudCB9O1xuIl19
|