valtech-components 2.0.19 → 2.0.21
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/components/atoms/avatar/types.mjs +1 -1
- package/esm2022/lib/components/atoms/box/box.component.mjs +47 -0
- package/esm2022/lib/components/atoms/box/types.mjs +2 -0
- package/esm2022/lib/components/atoms/button/button.component.mjs +1 -1
- package/esm2022/lib/components/atoms/button/factory.mjs +1 -1
- package/esm2022/lib/components/atoms/display/display.component.mjs +28 -0
- package/esm2022/lib/components/atoms/display/types.mjs +2 -0
- package/esm2022/lib/components/atoms/divider/divider.component.mjs +17 -0
- package/esm2022/lib/components/atoms/divider/types.mjs +2 -0
- package/esm2022/lib/components/atoms/href/href.component.mjs +51 -0
- package/esm2022/lib/components/atoms/href/types.mjs +2 -0
- package/esm2022/lib/components/atoms/icon/icon.component.mjs +18 -0
- package/esm2022/lib/components/atoms/icon/types.mjs +2 -0
- package/esm2022/lib/components/atoms/image/image.component.mjs +50 -0
- package/esm2022/lib/components/atoms/image/types.mjs +2 -0
- package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +36 -0
- package/esm2022/lib/components/atoms/progress-bar/types.mjs +2 -0
- package/esm2022/lib/components/atoms/text/text.component.mjs +24 -0
- package/esm2022/lib/components/atoms/text/types.mjs +2 -0
- package/esm2022/lib/components/atoms/title/title.component.mjs +31 -0
- package/esm2022/lib/components/atoms/title/types.mjs +2 -0
- package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +32 -0
- package/esm2022/lib/components/molecules/alert-box/types.mjs +2 -0
- package/esm2022/lib/components/molecules/button-group/button-group.component.mjs +49 -0
- package/esm2022/lib/components/molecules/button-group/types.mjs +2 -0
- package/esm2022/lib/components/molecules/card/card.component.mjs +369 -0
- package/esm2022/lib/components/molecules/card/types.mjs +16 -0
- package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +15 -0
- package/esm2022/lib/components/molecules/comment-input/comment-input.component.mjs +23 -0
- package/esm2022/lib/components/molecules/content-loader/content-loader.component.mjs +32 -0
- package/esm2022/lib/components/molecules/content-loader/types.mjs +2 -0
- package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +73 -0
- package/esm2022/lib/components/molecules/email-input/email-input.component.mjs +19 -0
- package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +69 -0
- package/esm2022/lib/components/molecules/hint/hint.component.mjs +52 -0
- package/esm2022/lib/components/molecules/hour-input/hour-input.component.mjs +18 -0
- package/esm2022/lib/components/molecules/link/link.component.mjs +37 -0
- package/esm2022/lib/components/molecules/link/types.mjs +2 -0
- package/esm2022/lib/components/molecules/links-cake/links-cake.component.mjs +37 -0
- package/esm2022/lib/components/molecules/links-cake/types.mjs +2 -0
- package/esm2022/lib/components/molecules/notes-box/notes-box.component.mjs +33 -0
- package/esm2022/lib/components/molecules/notes-box/types.mjs +2 -0
- package/esm2022/lib/components/molecules/number-input/number-input.component.mjs +18 -0
- package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +44 -0
- package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +45 -0
- package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +94 -0
- package/esm2022/lib/components/molecules/progress-status/types.mjs +2 -0
- package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +84 -0
- package/esm2022/lib/components/molecules/prompter/types.mjs +2 -0
- package/esm2022/lib/components/molecules/radio-input/radio-input.component.mjs +33 -0
- package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +61 -0
- package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +18 -0
- package/esm2022/lib/components/molecules/title-block/title-block.component.mjs +77 -0
- package/esm2022/lib/components/molecules/title-block/types.mjs +2 -0
- package/esm2022/lib/components/organisms/banner/banner.component.mjs +75 -0
- package/esm2022/lib/components/organisms/banner/types.mjs +2 -0
- package/esm2022/lib/components/organisms/footer/footer.component.mjs +50 -0
- package/esm2022/lib/components/organisms/footer/types.mjs +2 -0
- package/esm2022/lib/components/organisms/form/factory.mjs +8 -0
- package/esm2022/lib/components/organisms/form/form-footer/form-footer.component.mjs +76 -0
- package/esm2022/lib/components/organisms/form/form.component.mjs +230 -0
- package/esm2022/lib/components/organisms/header/header.component.mjs +33 -0
- package/esm2022/lib/components/organisms/header/types.mjs +2 -0
- package/esm2022/lib/components/organisms/no-content/no-content.component.mjs +34 -0
- package/esm2022/lib/components/organisms/no-content/types.mjs +2 -0
- package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +168 -0
- package/esm2022/lib/components/organisms/toolbar/types.mjs +2 -0
- package/esm2022/lib/components/organisms/wizard/types.mjs +7 -0
- package/esm2022/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.mjs +107 -0
- package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +103 -0
- package/esm2022/lib/components/templates/simple/simple.component.mjs +64 -0
- package/esm2022/lib/components/templates/simple/types.mjs +2 -0
- package/esm2022/lib/components/types.mjs +8 -1
- package/esm2022/public-api.mjs +71 -4
- package/fesm2022/valtech-components.mjs +2529 -159
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/avatar/types.d.ts +1 -1
- package/lib/components/atoms/box/box.component.d.ts +12 -0
- package/lib/components/atoms/box/types.d.ts +7 -0
- package/lib/components/atoms/button/button.component.d.ts +1 -1
- package/lib/components/atoms/button/factory.d.ts +1 -1
- package/lib/components/atoms/display/display.component.d.ts +10 -0
- package/lib/components/atoms/display/types.d.ts +6 -0
- package/lib/components/atoms/divider/divider.component.d.ts +10 -0
- package/lib/components/atoms/divider/types.d.ts +5 -0
- package/lib/components/atoms/href/href.component.d.ts +15 -0
- package/lib/components/atoms/href/types.d.ts +9 -0
- package/lib/components/atoms/icon/icon.component.d.ts +10 -0
- package/lib/components/atoms/icon/types.d.ts +6 -0
- package/lib/components/atoms/image/image.component.d.ts +12 -0
- package/lib/components/atoms/image/types.d.ts +11 -0
- package/lib/components/atoms/progress-bar/progress-bar.component.d.ts +10 -0
- package/lib/components/atoms/progress-bar/types.d.ts +9 -0
- package/lib/components/atoms/text/text.component.d.ts +10 -0
- package/lib/components/atoms/text/types.d.ts +7 -0
- package/lib/components/atoms/title/title.component.d.ts +10 -0
- package/lib/components/atoms/title/types.d.ts +7 -0
- package/lib/components/molecules/alert-box/alert-box.component.d.ts +10 -0
- package/lib/components/molecules/alert-box/types.d.ts +8 -0
- package/lib/components/molecules/button-group/button-group.component.d.ts +13 -0
- package/lib/components/molecules/button-group/types.d.ts +6 -0
- package/lib/components/molecules/card/card.component.d.ts +16 -0
- package/lib/components/molecules/card/types.d.ts +33 -0
- package/lib/components/molecules/check-input/check-input.component.d.ts +8 -0
- package/lib/components/molecules/comment-input/comment-input.component.d.ts +10 -0
- package/lib/components/molecules/content-loader/content-loader.component.d.ts +10 -0
- package/lib/components/molecules/content-loader/types.d.ts +7 -0
- package/lib/components/molecules/date-input/date-input.component.d.ts +10 -0
- package/lib/components/molecules/email-input/email-input.component.d.ts +10 -0
- package/lib/components/molecules/file-input/file-input.component.d.ts +15 -0
- package/lib/components/molecules/hint/hint.component.d.ts +11 -0
- package/lib/components/molecules/hour-input/hour-input.component.d.ts +10 -0
- package/lib/components/molecules/link/link.component.d.ts +12 -0
- package/lib/components/molecules/link/types.d.ts +6 -0
- package/lib/components/molecules/links-cake/links-cake.component.d.ts +10 -0
- package/lib/components/molecules/links-cake/types.d.ts +6 -0
- package/lib/components/molecules/notes-box/notes-box.component.d.ts +10 -0
- package/lib/components/molecules/notes-box/types.d.ts +8 -0
- package/lib/components/molecules/number-input/number-input.component.d.ts +10 -0
- package/lib/components/molecules/password-input/password-input.component.d.ts +11 -0
- package/lib/components/molecules/pin-input/pin-input.component.d.ts +15 -0
- package/lib/components/molecules/progress-status/progress-status.component.d.ts +14 -0
- package/lib/components/molecules/progress-status/types.d.ts +10 -0
- package/lib/components/molecules/prompter/prompter.component.d.ts +12 -0
- package/lib/components/molecules/prompter/types.d.ts +11 -0
- package/lib/components/molecules/radio-input/radio-input.component.d.ts +10 -0
- package/lib/components/molecules/searchbar/searchbar.component.d.ts +14 -0
- package/lib/components/molecules/text-input/text-input.component.d.ts +10 -0
- package/lib/components/molecules/title-block/title-block.component.d.ts +10 -0
- package/lib/components/molecules/title-block/types.d.ts +12 -0
- package/lib/components/organisms/banner/banner.component.d.ts +14 -0
- package/lib/components/organisms/banner/types.d.ts +11 -0
- package/lib/components/organisms/footer/footer.component.d.ts +12 -0
- package/lib/components/organisms/footer/types.d.ts +6 -0
- package/lib/components/organisms/form/factory.d.ts +5 -0
- package/lib/components/organisms/form/form-footer/form-footer.component.d.ts +15 -0
- package/lib/components/organisms/form/form.component.d.ts +23 -0
- package/lib/components/organisms/header/header.component.d.ts +12 -0
- package/lib/components/organisms/header/types.d.ts +6 -0
- package/lib/components/organisms/no-content/no-content.component.d.ts +12 -0
- package/lib/components/organisms/no-content/types.d.ts +6 -0
- package/lib/components/organisms/toolbar/toolbar.component.d.ts +21 -0
- package/lib/components/organisms/toolbar/types.d.ts +11 -0
- package/lib/components/organisms/wizard/types.d.ts +20 -0
- package/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.d.ts +21 -0
- package/lib/components/organisms/wizard/wizard.component.d.ts +22 -0
- package/lib/components/templates/simple/simple.component.d.ts +7 -0
- package/lib/components/templates/simple/types.d.ts +7 -0
- package/lib/components/types.d.ts +37 -2
- package/package.json +1 -1
- package/public-api.d.ts +70 -3
- package/esm2022/lib/components/atoms/button/types.mjs +0 -2
- package/lib/components/atoms/button/types.d.ts +0 -22
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { ButtonGroupComponent } from '../../../molecules/button-group/button-group.component';
|
|
3
|
+
import { ComponentStates } from '../../../types';
|
|
4
|
+
import { FooterComponent } from '../../footer/footer.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class FormFooterComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.onSubmit = new EventEmitter();
|
|
9
|
+
}
|
|
10
|
+
ngOnInit() { }
|
|
11
|
+
async submitHandler(token) {
|
|
12
|
+
this.onSubmit.emit({ fields: this.form.value, token });
|
|
13
|
+
}
|
|
14
|
+
get actions() {
|
|
15
|
+
if (!this.form) {
|
|
16
|
+
return [];
|
|
17
|
+
}
|
|
18
|
+
if (this.form.valid) {
|
|
19
|
+
this.action.state = ComponentStates.ENABLED;
|
|
20
|
+
}
|
|
21
|
+
return [this.action];
|
|
22
|
+
}
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FormFooterComponent, isStandalone: true, selector: "val-form-footer", inputs: { form: "form", action: "action" }, outputs: { onSubmit: "onSubmit" }, ngImport: i0, template: `
|
|
25
|
+
<val-footer
|
|
26
|
+
[props]="{
|
|
27
|
+
bordered: false,
|
|
28
|
+
translucent: false,
|
|
29
|
+
toolbar: {
|
|
30
|
+
title: '',
|
|
31
|
+
actions: [],
|
|
32
|
+
color: 'background',
|
|
33
|
+
withBack: false,
|
|
34
|
+
withActions: false,
|
|
35
|
+
},
|
|
36
|
+
}"
|
|
37
|
+
>
|
|
38
|
+
<val-button-group
|
|
39
|
+
extra
|
|
40
|
+
[props]="{ buttons: actions, position: 'center', columned: false }"
|
|
41
|
+
(onClick)="submitHandler($event)"
|
|
42
|
+
></val-button-group>
|
|
43
|
+
</val-footer>
|
|
44
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: FooterComponent, selector: "val-footer", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["props"], outputs: ["onClick"] }] }); }
|
|
45
|
+
}
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormFooterComponent, decorators: [{
|
|
47
|
+
type: Component,
|
|
48
|
+
args: [{ selector: 'val-form-footer', standalone: true, imports: [FooterComponent, ButtonGroupComponent], template: `
|
|
49
|
+
<val-footer
|
|
50
|
+
[props]="{
|
|
51
|
+
bordered: false,
|
|
52
|
+
translucent: false,
|
|
53
|
+
toolbar: {
|
|
54
|
+
title: '',
|
|
55
|
+
actions: [],
|
|
56
|
+
color: 'background',
|
|
57
|
+
withBack: false,
|
|
58
|
+
withActions: false,
|
|
59
|
+
},
|
|
60
|
+
}"
|
|
61
|
+
>
|
|
62
|
+
<val-button-group
|
|
63
|
+
extra
|
|
64
|
+
[props]="{ buttons: actions, position: 'center', columned: false }"
|
|
65
|
+
(onClick)="submitHandler($event)"
|
|
66
|
+
></val-button-group>
|
|
67
|
+
</val-footer>
|
|
68
|
+
` }]
|
|
69
|
+
}], ctorParameters: () => [], propDecorators: { form: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], action: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], onSubmit: [{
|
|
74
|
+
type: Output
|
|
75
|
+
}] } });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1mb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGVjaC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZm9ybS9mb3JtLWZvb3Rlci9mb3JtLWZvb3Rlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM5RixPQUFPLEVBQWtCLGVBQWUsRUFBYyxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUE2QmhFLE1BQU0sT0FBTyxtQkFBbUI7SUFVOUI7UUFGQSxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztJQUUzQixDQUFDO0lBRWhCLFFBQVEsS0FBSSxDQUFDO0lBRWIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFjO1FBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksT0FBTztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztRQUM5QyxDQUFDO1FBRUQsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QixDQUFDOytHQTVCVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiwwSkF2QnBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CVCwwRUFyQlMsZUFBZSxnR0FBRSxvQkFBb0I7OzRGQXdCcEMsbUJBQW1CO2tCQTNCL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsb0JBQW9CLENBQUMsWUFDdEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JUO3dEQUtELElBQUk7c0JBREgsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQnV0dG9uR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9tb2xlY3VsZXMvYnV0dG9uLWdyb3VwL2J1dHRvbi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uTWV0YWRhdGEsIENvbXBvbmVudFN0YXRlcywgRm9ybVN1Ym1pdCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWZvcm0tZm9vdGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0Zvb3RlckNvbXBvbmVudCwgQnV0dG9uR3JvdXBDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDx2YWwtZm9vdGVyXG4gICAgICBbcHJvcHNdPVwie1xuICAgICAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgICAgIHRyYW5zbHVjZW50OiBmYWxzZSxcbiAgICAgICAgdG9vbGJhcjoge1xuICAgICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgICBhY3Rpb25zOiBbXSxcbiAgICAgICAgICBjb2xvcjogJ2JhY2tncm91bmQnLFxuICAgICAgICAgIHdpdGhCYWNrOiBmYWxzZSxcbiAgICAgICAgICB3aXRoQWN0aW9uczogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8dmFsLWJ1dHRvbi1ncm91cFxuICAgICAgICBleHRyYVxuICAgICAgICBbcHJvcHNdPVwieyBidXR0b25zOiBhY3Rpb25zLCBwb3NpdGlvbjogJ2NlbnRlcicsIGNvbHVtbmVkOiBmYWxzZSB9XCJcbiAgICAgICAgKG9uQ2xpY2spPVwic3VibWl0SGFuZGxlcigkZXZlbnQpXCJcbiAgICAgID48L3ZhbC1idXR0b24tZ3JvdXA+XG4gICAgPC92YWwtZm9vdGVyPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWZvb3Rlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRm9vdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIEBJbnB1dCgpXG4gIGFjdGlvbjogQnV0dG9uTWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpXG4gIG9uU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtU3VibWl0PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgYXN5bmMgc3VibWl0SGFuZGxlcih0b2tlbj86IHN0cmluZykge1xuICAgIHRoaXMub25TdWJtaXQuZW1pdCh7IGZpZWxkczogdGhpcy5mb3JtLnZhbHVlLCB0b2tlbiB9KTtcbiAgfVxuXG4gIGdldCBhY3Rpb25zKCk6IEJ1dHRvbk1ldGFkYXRhW10ge1xuICAgIGlmICghdGhpcy5mb3JtKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5hY3Rpb24uc3RhdGUgPSBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRDtcbiAgICB9XG5cbiAgICByZXR1cm4gW3RoaXMuYWN0aW9uXTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { isAtEnd } from '../../../shared/utils/dom';
|
|
5
|
+
import { DisplayComponent } from '../../atoms/display/display.component';
|
|
6
|
+
import { DividerComponent } from '../../atoms/divider/divider.component';
|
|
7
|
+
import { TitleComponent } from '../../atoms/title/title.component';
|
|
8
|
+
import { ButtonGroupComponent } from '../../molecules/button-group/button-group.component';
|
|
9
|
+
import { CheckInputComponent } from '../../molecules/check-input/check-input.component';
|
|
10
|
+
import { CommentInputComponent } from '../../molecules/comment-input/comment-input.component';
|
|
11
|
+
import { DateInputComponent } from '../../molecules/date-input/date-input.component';
|
|
12
|
+
import { EmailInputComponent } from '../../molecules/email-input/email-input.component';
|
|
13
|
+
import { FileInputComponent } from '../../molecules/file-input/file-input.component';
|
|
14
|
+
import { HintComponent } from '../../molecules/hint/hint.component';
|
|
15
|
+
import { HourInputComponent } from '../../molecules/hour-input/hour-input.component';
|
|
16
|
+
import { NumberInputComponent } from '../../molecules/number-input/number-input.component';
|
|
17
|
+
import { PasswordInputComponent } from '../../molecules/password-input/password-input.component';
|
|
18
|
+
import { PinInputComponent } from '../../molecules/pin-input/pin-input.component';
|
|
19
|
+
import { RadioInputComponent } from '../../molecules/radio-input/radio-input.component';
|
|
20
|
+
import { TextInputComponent } from '../../molecules/text-input/text-input.component';
|
|
21
|
+
import { ComponentStates, InputType } from '../../types';
|
|
22
|
+
import * as i0 from "@angular/core";
|
|
23
|
+
import * as i1 from "@angular/forms";
|
|
24
|
+
import * as i2 from "@angular/common";
|
|
25
|
+
export class FormComponent {
|
|
26
|
+
constructor(fb, elementRef) {
|
|
27
|
+
this.fb = fb;
|
|
28
|
+
this.elementRef = elementRef;
|
|
29
|
+
this.onSubmit = new EventEmitter();
|
|
30
|
+
this.onInvalid = new EventEmitter();
|
|
31
|
+
this.types = InputType;
|
|
32
|
+
}
|
|
33
|
+
ngOnInit() {
|
|
34
|
+
const formControls = {};
|
|
35
|
+
this.props.sections.forEach(section => {
|
|
36
|
+
section.fields.forEach(field => {
|
|
37
|
+
formControls[field.name] = [undefined, field.validators || []];
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
this.form = this.fb.group(formControls);
|
|
41
|
+
}
|
|
42
|
+
async submitHandler(token) {
|
|
43
|
+
this.onSubmit.emit({ fields: this.form.value, token });
|
|
44
|
+
}
|
|
45
|
+
getControl(field) {
|
|
46
|
+
return this.Form.get(field);
|
|
47
|
+
}
|
|
48
|
+
getFieldProp(field) {
|
|
49
|
+
return {
|
|
50
|
+
...field,
|
|
51
|
+
control: this.getControl(field.name),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
get isAtEndOfForm() {
|
|
55
|
+
return isAtEnd(this.elementRef);
|
|
56
|
+
}
|
|
57
|
+
get Form() {
|
|
58
|
+
return this.form;
|
|
59
|
+
}
|
|
60
|
+
get actions() {
|
|
61
|
+
if (!this.form) {
|
|
62
|
+
return [];
|
|
63
|
+
}
|
|
64
|
+
if (this.form.valid) {
|
|
65
|
+
this.props.actions.state = ComponentStates.ENABLED;
|
|
66
|
+
}
|
|
67
|
+
if (this.props.state === ComponentStates.WORKING) {
|
|
68
|
+
this.props.actions.state = ComponentStates.WORKING;
|
|
69
|
+
}
|
|
70
|
+
if (this.props.state === ComponentStates.ENABLED) {
|
|
71
|
+
this.props.actions.state = ComponentStates.ENABLED;
|
|
72
|
+
}
|
|
73
|
+
if (this.props.state === ComponentStates.DISABLED) {
|
|
74
|
+
this.props.actions.state = ComponentStates.DISABLED;
|
|
75
|
+
}
|
|
76
|
+
return [this.props.actions];
|
|
77
|
+
}
|
|
78
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormComponent, deps: [{ token: i1.FormBuilder }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
79
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FormComponent, isStandalone: true, selector: "val-form", inputs: { props: "props" }, outputs: { onSubmit: "onSubmit", onInvalid: "onInvalid" }, ngImport: i0, template: `
|
|
80
|
+
<div class="container">
|
|
81
|
+
<form [formGroup]="form">
|
|
82
|
+
<val-display
|
|
83
|
+
[props]="{
|
|
84
|
+
content: props.name,
|
|
85
|
+
color: 'dark',
|
|
86
|
+
size: 'large',
|
|
87
|
+
}"
|
|
88
|
+
></val-display>
|
|
89
|
+
<div class="section" *ngFor="let s of props.sections">
|
|
90
|
+
<val-title [props]="{ content: s.name, size: 'large', color: '', bold: false }"></val-title>
|
|
91
|
+
<div class="input" *ngFor="let f of s.fields">
|
|
92
|
+
<val-title [props]="{ content: f.label, size: 'small', color: 'dark', bold: false }"></val-title>
|
|
93
|
+
<ng-container *ngIf="f.type === types.TEXT">
|
|
94
|
+
<val-text-input [props]="getFieldProp(f)"></val-text-input>
|
|
95
|
+
</ng-container>
|
|
96
|
+
<ng-container *ngIf="f.type === types.CHECK">
|
|
97
|
+
<val-check-input></val-check-input>
|
|
98
|
+
</ng-container>
|
|
99
|
+
<ng-container *ngIf="f.type === types.COMMENT">
|
|
100
|
+
<val-comment-input [props]="getFieldProp(f)"></val-comment-input>
|
|
101
|
+
</ng-container>
|
|
102
|
+
<ng-container *ngIf="f.type === types.DATE">
|
|
103
|
+
<val-date-input [props]="getFieldProp(f)"></val-date-input>
|
|
104
|
+
</ng-container>
|
|
105
|
+
<ng-container *ngIf="f.type === types.EMAIL">
|
|
106
|
+
<val-email-input [props]="getFieldProp(f)"></val-email-input>
|
|
107
|
+
</ng-container>
|
|
108
|
+
<ng-container *ngIf="f.type === types.FILE">
|
|
109
|
+
<val-file-input [props]="getFieldProp(f)"></val-file-input>
|
|
110
|
+
</ng-container>
|
|
111
|
+
<ng-container *ngIf="f.type === types.HOUR">
|
|
112
|
+
<val-hour-input [props]="getFieldProp(f)"></val-hour-input>
|
|
113
|
+
</ng-container>
|
|
114
|
+
<ng-container *ngIf="f.type === types.NUMBER">
|
|
115
|
+
<val-number-input [props]="getFieldProp(f)"></val-number-input>
|
|
116
|
+
</ng-container>
|
|
117
|
+
<ng-container *ngIf="f.type === types.PASSWORD">
|
|
118
|
+
<val-password-input [props]="getFieldProp(f)"></val-password-input>
|
|
119
|
+
</ng-container>
|
|
120
|
+
<ng-container *ngIf="f.type === types.PIN_CODE">
|
|
121
|
+
<val-pin-input [props]="getFieldProp(f)"></val-pin-input>
|
|
122
|
+
</ng-container>
|
|
123
|
+
<ng-container *ngIf="f.type === types.RADIO">
|
|
124
|
+
<val-radio-input [props]="getFieldProp(f)"></val-radio-input>
|
|
125
|
+
</ng-container>
|
|
126
|
+
<ng-container *ngIf="f.type === types.SELECT">
|
|
127
|
+
<!-- <val-select-input></val-select-input> -->
|
|
128
|
+
</ng-container>
|
|
129
|
+
<val-hint [props]="getFieldProp(f)"></val-hint>
|
|
130
|
+
</div>
|
|
131
|
+
<val-divider [props]="{ fill: 'solid', size: 'medium', color: 'medium' }"></val-divider>
|
|
132
|
+
</div>
|
|
133
|
+
<val-button-group
|
|
134
|
+
[props]="{ buttons: actions, position: 'center', columned: false }"
|
|
135
|
+
(onClick)="submitHandler($event)"
|
|
136
|
+
></val-button-group>
|
|
137
|
+
</form>
|
|
138
|
+
</div>
|
|
139
|
+
`, isInline: true, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextInputComponent, selector: "val-text-input", inputs: ["props"] }, { kind: "component", type: CheckInputComponent, selector: "val-check-input" }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: DividerComponent, selector: "val-divider", inputs: ["props"] }, { kind: "component", type: HintComponent, selector: "val-hint", inputs: ["props"] }, { kind: "component", type: CommentInputComponent, selector: "val-comment-input", inputs: ["props"] }, { kind: "component", type: DateInputComponent, selector: "val-date-input", inputs: ["props"] }, { kind: "component", type: FileInputComponent, selector: "val-file-input", inputs: ["props"] }, { kind: "component", type: HourInputComponent, selector: "val-hour-input", inputs: ["props"] }, { kind: "component", type: EmailInputComponent, selector: "val-email-input", inputs: ["props"] }, { kind: "component", type: NumberInputComponent, selector: "val-number-input", inputs: ["props"] }, { kind: "component", type: RadioInputComponent, selector: "val-radio-input", inputs: ["props"] }, { kind: "component", type: PasswordInputComponent, selector: "val-password-input", inputs: ["props"] }, { kind: "component", type: PinInputComponent, selector: "val-pin-input", inputs: ["props"] }] }); }
|
|
140
|
+
}
|
|
141
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormComponent, decorators: [{
|
|
142
|
+
type: Component,
|
|
143
|
+
args: [{ selector: 'val-form', standalone: true, imports: [
|
|
144
|
+
CommonModule,
|
|
145
|
+
ReactiveFormsModule,
|
|
146
|
+
DisplayComponent,
|
|
147
|
+
TitleComponent,
|
|
148
|
+
TextInputComponent,
|
|
149
|
+
CheckInputComponent,
|
|
150
|
+
ButtonGroupComponent,
|
|
151
|
+
DividerComponent,
|
|
152
|
+
HintComponent,
|
|
153
|
+
CommentInputComponent,
|
|
154
|
+
DateInputComponent,
|
|
155
|
+
FileInputComponent,
|
|
156
|
+
HourInputComponent,
|
|
157
|
+
EmailInputComponent,
|
|
158
|
+
NumberInputComponent,
|
|
159
|
+
RadioInputComponent,
|
|
160
|
+
PasswordInputComponent,
|
|
161
|
+
PinInputComponent,
|
|
162
|
+
], template: `
|
|
163
|
+
<div class="container">
|
|
164
|
+
<form [formGroup]="form">
|
|
165
|
+
<val-display
|
|
166
|
+
[props]="{
|
|
167
|
+
content: props.name,
|
|
168
|
+
color: 'dark',
|
|
169
|
+
size: 'large',
|
|
170
|
+
}"
|
|
171
|
+
></val-display>
|
|
172
|
+
<div class="section" *ngFor="let s of props.sections">
|
|
173
|
+
<val-title [props]="{ content: s.name, size: 'large', color: '', bold: false }"></val-title>
|
|
174
|
+
<div class="input" *ngFor="let f of s.fields">
|
|
175
|
+
<val-title [props]="{ content: f.label, size: 'small', color: 'dark', bold: false }"></val-title>
|
|
176
|
+
<ng-container *ngIf="f.type === types.TEXT">
|
|
177
|
+
<val-text-input [props]="getFieldProp(f)"></val-text-input>
|
|
178
|
+
</ng-container>
|
|
179
|
+
<ng-container *ngIf="f.type === types.CHECK">
|
|
180
|
+
<val-check-input></val-check-input>
|
|
181
|
+
</ng-container>
|
|
182
|
+
<ng-container *ngIf="f.type === types.COMMENT">
|
|
183
|
+
<val-comment-input [props]="getFieldProp(f)"></val-comment-input>
|
|
184
|
+
</ng-container>
|
|
185
|
+
<ng-container *ngIf="f.type === types.DATE">
|
|
186
|
+
<val-date-input [props]="getFieldProp(f)"></val-date-input>
|
|
187
|
+
</ng-container>
|
|
188
|
+
<ng-container *ngIf="f.type === types.EMAIL">
|
|
189
|
+
<val-email-input [props]="getFieldProp(f)"></val-email-input>
|
|
190
|
+
</ng-container>
|
|
191
|
+
<ng-container *ngIf="f.type === types.FILE">
|
|
192
|
+
<val-file-input [props]="getFieldProp(f)"></val-file-input>
|
|
193
|
+
</ng-container>
|
|
194
|
+
<ng-container *ngIf="f.type === types.HOUR">
|
|
195
|
+
<val-hour-input [props]="getFieldProp(f)"></val-hour-input>
|
|
196
|
+
</ng-container>
|
|
197
|
+
<ng-container *ngIf="f.type === types.NUMBER">
|
|
198
|
+
<val-number-input [props]="getFieldProp(f)"></val-number-input>
|
|
199
|
+
</ng-container>
|
|
200
|
+
<ng-container *ngIf="f.type === types.PASSWORD">
|
|
201
|
+
<val-password-input [props]="getFieldProp(f)"></val-password-input>
|
|
202
|
+
</ng-container>
|
|
203
|
+
<ng-container *ngIf="f.type === types.PIN_CODE">
|
|
204
|
+
<val-pin-input [props]="getFieldProp(f)"></val-pin-input>
|
|
205
|
+
</ng-container>
|
|
206
|
+
<ng-container *ngIf="f.type === types.RADIO">
|
|
207
|
+
<val-radio-input [props]="getFieldProp(f)"></val-radio-input>
|
|
208
|
+
</ng-container>
|
|
209
|
+
<ng-container *ngIf="f.type === types.SELECT">
|
|
210
|
+
<!-- <val-select-input></val-select-input> -->
|
|
211
|
+
</ng-container>
|
|
212
|
+
<val-hint [props]="getFieldProp(f)"></val-hint>
|
|
213
|
+
</div>
|
|
214
|
+
<val-divider [props]="{ fill: 'solid', size: 'medium', color: 'medium' }"></val-divider>
|
|
215
|
+
</div>
|
|
216
|
+
<val-button-group
|
|
217
|
+
[props]="{ buttons: actions, position: 'center', columned: false }"
|
|
218
|
+
(onClick)="submitHandler($event)"
|
|
219
|
+
></val-button-group>
|
|
220
|
+
</form>
|
|
221
|
+
</div>
|
|
222
|
+
`, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\n"] }]
|
|
223
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i0.ElementRef }], propDecorators: { props: [{
|
|
224
|
+
type: Input
|
|
225
|
+
}], onSubmit: [{
|
|
226
|
+
type: Output
|
|
227
|
+
}], onInvalid: [{
|
|
228
|
+
type: Output
|
|
229
|
+
}] } });
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBdUMsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNERUO3lHQUtELEtBQUs7c0JBREosS0FBSztnQkFJTixRQUFRO3NCQURQLE1BQU07Z0JBSVAsU0FBUztzQkFEUixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaXNBdEVuZCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC91dGlscy9kb20nO1xuaW1wb3J0IHsgRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGl2aWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2RpdmlkZXIvZGl2aWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvYnV0dG9uLWdyb3VwL2J1dHRvbi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hlY2tJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jaGVjay1pbnB1dC9jaGVjay1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbWVudElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2NvbW1lbnQtaW5wdXQvY29tbWVudC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1haWxJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9lbWFpbC1pbnB1dC9lbWFpbC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGludENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9oaW50L2hpbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEhvdXJJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9ob3VyLWlucHV0L2hvdXItaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IE51bWJlcklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFBhc3N3b3JkSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFBpbklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3Bpbi1pbnB1dC9waW4taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcmFkaW8taW5wdXQvcmFkaW8taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbk1ldGFkYXRhLCBDb21wb25lbnRTdGF0ZXMsIEZvcm1NZXRhZGF0YSwgRm9ybVN1Ym1pdCwgSW5wdXRNZXRhZGF0YSwgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZm9ybScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBEaXNwbGF5Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBDaGVja0lucHV0Q29tcG9uZW50LFxuICAgIEJ1dHRvbkdyb3VwQ29tcG9uZW50LFxuICAgIERpdmlkZXJDb21wb25lbnQsXG4gICAgSGludENvbXBvbmVudCxcbiAgICBDb21tZW50SW5wdXRDb21wb25lbnQsXG4gICAgRGF0ZUlucHV0Q29tcG9uZW50LFxuICAgIEZpbGVJbnB1dENvbXBvbmVudCxcbiAgICBIb3VySW5wdXRDb21wb25lbnQsXG4gICAgRW1haWxJbnB1dENvbXBvbmVudCxcbiAgICBOdW1iZXJJbnB1dENvbXBvbmVudCxcbiAgICBSYWRpb0lucHV0Q29tcG9uZW50LFxuICAgIFBhc3N3b3JkSW5wdXRDb21wb25lbnQsXG4gICAgUGluSW5wdXRDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIDx2YWwtZGlzcGxheVxuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBjb250ZW50OiBwcm9wcy5uYW1lLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIHNpemU6ICdsYXJnZScsXG4gICAgICAgICAgfVwiXG4gICAgICAgID48L3ZhbC1kaXNwbGF5PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiICpuZ0Zvcj1cImxldCBzIG9mIHByb3BzLnNlY3Rpb25zXCI+XG4gICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwieyBjb250ZW50OiBzLm5hbWUsIHNpemU6ICdsYXJnZScsIGNvbG9yOiAnJywgYm9sZDogZmFsc2UgfVwiPjwvdmFsLXRpdGxlPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dFwiICpuZ0Zvcj1cImxldCBmIG9mIHMuZmllbGRzXCI+XG4gICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IGYubGFiZWwsIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGJvbGQ6IGZhbHNlIH1cIj48L3ZhbC10aXRsZT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLlRFWFRcIj5cbiAgICAgICAgICAgICAgPHZhbC10ZXh0LWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC10ZXh0LWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5DSEVDS1wiPlxuICAgICAgICAgICAgICA8dmFsLWNoZWNrLWlucHV0PjwvdmFsLWNoZWNrLWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5DT01NRU5UXCI+XG4gICAgICAgICAgICAgIDx2YWwtY29tbWVudC1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtY29tbWVudC1pbnB1dD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYudHlwZSA9PT0gdHlwZXMuREFURVwiPlxuICAgICAgICAgICAgICA8dmFsLWRhdGUtaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWRhdGUtaW5wdXQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLkVNQUlMXCI+XG4gICAgICAgICAgICAgIDx2YWwtZW1haWwtaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWVtYWlsLWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5GSUxFXCI+XG4gICAgICAgICAgICAgIDx2YWwtZmlsZS1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtZmlsZS1pbnB1dD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYudHlwZSA9PT0gdHlwZXMuSE9VUlwiPlxuICAgICAgICAgICAgICA8dmFsLWhvdXItaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWhvdXItaW5wdXQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLk5VTUJFUlwiPlxuICAgICAgICAgICAgICA8dmFsLW51bWJlci1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtbnVtYmVyLWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5QQVNTV09SRFwiPlxuICAgICAgICAgICAgICA8dmFsLXBhc3N3b3JkLWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1wYXNzd29yZC1pbnB1dD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYudHlwZSA9PT0gdHlwZXMuUElOX0NPREVcIj5cbiAgICAgICAgICAgICAgPHZhbC1waW4taW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLXBpbi1pbnB1dD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYudHlwZSA9PT0gdHlwZXMuUkFESU9cIj5cbiAgICAgICAgICAgICAgPHZhbC1yYWRpby1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtcmFkaW8taW5wdXQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLlNFTEVDVFwiPlxuICAgICAgICAgICAgICA8IS0tIDx2YWwtc2VsZWN0LWlucHV0PjwvdmFsLXNlbGVjdC1pbnB1dD4gLS0+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDx2YWwtaGludCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtaGludD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8dmFsLWRpdmlkZXIgW3Byb3BzXT1cInsgZmlsbDogJ3NvbGlkJywgc2l6ZTogJ21lZGl1bScsIGNvbG9yOiAnbWVkaXVtJyB9XCI+PC92YWwtZGl2aWRlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDx2YWwtYnV0dG9uLWdyb3VwXG4gICAgICAgICAgW3Byb3BzXT1cInsgYnV0dG9uczogYWN0aW9ucywgcG9zaXRpb246ICdjZW50ZXInLCBjb2x1bW5lZDogZmFsc2UgfVwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwic3VibWl0SGFuZGxlcigkZXZlbnQpXCJcbiAgICAgICAgPjwvdmFsLWJ1dHRvbi1ncm91cD5cbiAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgcHJvcHM6IEZvcm1NZXRhZGF0YTtcblxuICBAT3V0cHV0KClcbiAgb25TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1TdWJtaXQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uSW52YWxpZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBmb3JtOiBGb3JtR3JvdXA7XG4gIHR5cGVzID0gSW5wdXRUeXBlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgZm9ybUNvbnRyb2xzID0ge307XG4gICAgdGhpcy5wcm9wcy5zZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgIGZvcm1Db250cm9sc1tmaWVsZC5uYW1lXSA9IFt1bmRlZmluZWQsIGZpZWxkLnZhbGlkYXRvcnMgfHwgW11dO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cChmb3JtQ29udHJvbHMpO1xuICB9XG5cbiAgYXN5bmMgc3VibWl0SGFuZGxlcih0b2tlbj86IHN0cmluZykge1xuICAgIHRoaXMub25TdWJtaXQuZW1pdCh7IGZpZWxkczogdGhpcy5mb3JtLnZhbHVlLCB0b2tlbiB9KTtcbiAgfVxuXG4gIGdldENvbnRyb2woZmllbGQ6IHN0cmluZyk6IEZvcm1Db250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5Gb3JtLmdldChmaWVsZCkgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICBnZXRGaWVsZFByb3AoZmllbGQ6IElucHV0TWV0YWRhdGEpOiBJbnB1dE1ldGFkYXRhIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZmllbGQsXG4gICAgICBjb250cm9sOiB0aGlzLmdldENvbnRyb2woZmllbGQubmFtZSksXG4gICAgfTtcbiAgfVxuXG4gIGdldCBpc0F0RW5kT2ZGb3JtKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0F0RW5kKHRoaXMuZWxlbWVudFJlZik7XG4gIH1cblxuICBnZXQgRm9ybSgpOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLmZvcm07XG4gIH1cblxuICBnZXQgYWN0aW9ucygpOiBCdXR0b25NZXRhZGF0YVtdIHtcbiAgICBpZiAoIXRoaXMuZm9ybSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMucHJvcHMuYWN0aW9ucy5zdGF0ZSA9IENvbXBvbmVudFN0YXRlcy5FTkFCTEVEO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLnN0YXRlID09PSBDb21wb25lbnRTdGF0ZXMuV09SS0lORykge1xuICAgICAgdGhpcy5wcm9wcy5hY3Rpb25zLnN0YXRlID0gQ29tcG9uZW50U3RhdGVzLldPUktJTkc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvcHMuc3RhdGUgPT09IENvbXBvbmVudFN0YXRlcy5FTkFCTEVEKSB7XG4gICAgICB0aGlzLnByb3BzLmFjdGlvbnMuc3RhdGUgPSBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9wcy5zdGF0ZSA9PT0gQ29tcG9uZW50U3RhdGVzLkRJU0FCTEVEKSB7XG4gICAgICB0aGlzLnByb3BzLmFjdGlvbnMuc3RhdGUgPSBDb21wb25lbnRTdGF0ZXMuRElTQUJMRUQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIFt0aGlzLnByb3BzLmFjdGlvbnNdO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { NgClass } from '@angular/common';
|
|
2
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
+
import { IonHeader } from '@ionic/angular/standalone';
|
|
4
|
+
import { ToolbarComponent } from '../toolbar/toolbar.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class HeaderComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.onClick = new EventEmitter();
|
|
9
|
+
}
|
|
10
|
+
ngOnInit() { }
|
|
11
|
+
clickHandler(token) {
|
|
12
|
+
this.onClick.emit(token);
|
|
13
|
+
}
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: HeaderComponent, isStandalone: true, selector: "val-header", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
|
|
16
|
+
<ion-header [class.ion-no-border]="!props.bordered" [translucent]="props.translucent">
|
|
17
|
+
<val-toolbar [props]="props.toolbar" (onClick)="clickHandler($event)"></val-toolbar>
|
|
18
|
+
</ion-header>
|
|
19
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: ToolbarComponent, selector: "val-toolbar", inputs: ["props"], outputs: ["onClick"] }] }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderComponent, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{ selector: 'val-header', standalone: true, imports: [NgClass, IonHeader, ToolbarComponent], template: `
|
|
24
|
+
<ion-header [class.ion-no-border]="!props.bordered" [translucent]="props.translucent">
|
|
25
|
+
<val-toolbar [props]="props.toolbar" (onClick)="clickHandler($event)"></val-toolbar>
|
|
26
|
+
</ion-header>
|
|
27
|
+
` }]
|
|
28
|
+
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
29
|
+
type: Input
|
|
30
|
+
}], onClick: [{
|
|
31
|
+
type: Output
|
|
32
|
+
}] } });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFjaEUsTUFBTSxPQUFPLGVBQWU7SUFPMUI7UUFGQSxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUV0QixDQUFDO0lBRWhCLFFBQVEsS0FBSSxDQUFDO0lBRWIsWUFBWSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQzsrR0FiVSxlQUFlO21HQUFmLGVBQWUsbUlBUGhCOzs7O0dBSVQsMEVBTGtCLFNBQVMsb0dBQUUsZ0JBQWdCOzs0RkFRbkMsZUFBZTtrQkFYM0IsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxZQUNyQzs7OztHQUlUO3dEQUtELEtBQUs7c0JBREosS0FBSztnQkFJTixPQUFPO3NCQUROLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkhlYWRlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2xiYXIvdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGVhZGVyTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWhlYWRlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBJb25IZWFkZXIsIFRvb2xiYXJDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24taGVhZGVyIFtjbGFzcy5pb24tbm8tYm9yZGVyXT1cIiFwcm9wcy5ib3JkZXJlZFwiIFt0cmFuc2x1Y2VudF09XCJwcm9wcy50cmFuc2x1Y2VudFwiPlxuICAgICAgPHZhbC10b29sYmFyIFtwcm9wc109XCJwcm9wcy50b29sYmFyXCIgKG9uQ2xpY2spPVwiY2xpY2tIYW5kbGVyKCRldmVudClcIj48L3ZhbC10b29sYmFyPlxuICAgIDwvaW9uLWhlYWRlcj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIHByb3BzOiBIZWFkZXJNZXRhZGF0YTtcblxuICBAT3V0cHV0KClcbiAgb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgY2xpY2tIYW5kbGVyKHRva2VuPzogc3RyaW5nKSB7XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQodG9rZW4pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9oZWFkZXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRvb2xiYXJNZXRhZGF0YSB9IGZyb20gJy4uL3Rvb2xiYXIvdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBIZWFkZXJNZXRhZGF0YSA9IHtcbiAgdHJhbnNsdWNlbnQ/OiBib29sZWFuO1xuICBib3JkZXJlZD86IGJvb2xlYW47XG4gIHRvb2xiYXI6IFRvb2xiYXJNZXRhZGF0YTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { ImageComponent } from '../../atoms/image/image.component';
|
|
3
|
+
import { BannerComponent } from '../banner/banner.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class NoContentComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.onClick = new EventEmitter();
|
|
8
|
+
}
|
|
9
|
+
ngOnInit() { }
|
|
10
|
+
onClickHandler(token) {
|
|
11
|
+
this.onClick.emit(token);
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NoContentComponent, isStandalone: true, selector: "val-no-content", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
|
|
15
|
+
<val-image class="image-container" [props]="props.image"></val-image>
|
|
16
|
+
<div>
|
|
17
|
+
<val-banner [props]="props.content" (onClick)="onClickHandler($event)"></val-banner>
|
|
18
|
+
</div>
|
|
19
|
+
`, isInline: true, styles: [".image-container{display:flex;justify-content:center;margin-bottom:1rem}val-image .image{margin:0 auto}\n"], dependencies: [{ kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: BannerComponent, selector: "val-banner", inputs: ["props"], outputs: ["onClick", "onClose"] }] }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoContentComponent, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{ selector: 'val-no-content', standalone: true, imports: [ImageComponent, BannerComponent], template: `
|
|
24
|
+
<val-image class="image-container" [props]="props.image"></val-image>
|
|
25
|
+
<div>
|
|
26
|
+
<val-banner [props]="props.content" (onClick)="onClickHandler($event)"></val-banner>
|
|
27
|
+
</div>
|
|
28
|
+
`, styles: [".image-container{display:flex;justify-content:center;margin-bottom:1rem}val-image .image{margin:0 auto}\n"] }]
|
|
29
|
+
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], onClick: [{
|
|
32
|
+
type: Output
|
|
33
|
+
}] } });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9uby1jb250ZW50L25vLWNvbnRlbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFlN0QsTUFBTSxPQUFPLGtCQUFrQjtJQU83QjtRQUZBLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRXRCLENBQUM7SUFFaEIsUUFBUSxLQUFJLENBQUM7SUFFYixjQUFjLENBQUMsS0FBYTtRQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDOytHQWJVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHVJQVJuQjs7Ozs7R0FLVCxtTEFOUyxjQUFjLHlFQUFFLGVBQWU7OzRGQVM5QixrQkFBa0I7a0JBWjlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsY0FBYyxFQUFFLGVBQWUsQ0FBQyxZQUNoQzs7Ozs7R0FLVDt3REFLRCxLQUFLO3NCQURKLEtBQUs7Z0JBSU4sT0FBTztzQkFETixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9pbWFnZS9pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFubmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFubmVyL2Jhbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm9Db250ZW50TWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLW5vLWNvbnRlbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSW1hZ2VDb21wb25lbnQsIEJhbm5lckNvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHZhbC1pbWFnZSBjbGFzcz1cImltYWdlLWNvbnRhaW5lclwiIFtwcm9wc109XCJwcm9wcy5pbWFnZVwiPjwvdmFsLWltYWdlPlxuICAgIDxkaXY+XG4gICAgICA8dmFsLWJhbm5lciBbcHJvcHNdPVwicHJvcHMuY29udGVudFwiIChvbkNsaWNrKT1cIm9uQ2xpY2tIYW5kbGVyKCRldmVudClcIj48L3ZhbC1iYW5uZXI+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL25vLWNvbnRlbnQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTm9Db250ZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgcHJvcHM6IE5vQ29udGVudE1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICBvbkNsaWNrSGFuZGxlcih0b2tlbjogc3RyaW5nKSB7XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQodG9rZW4pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9uby1jb250ZW50L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbWFnZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vYXRvbXMvaW1hZ2UvdHlwZXMnO1xuaW1wb3J0IHsgQmFubmVyTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvYmFubmVyL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgTm9Db250ZW50TWV0YWRhdGEgPSB7XG4gIGltYWdlOiBJbWFnZU1ldGFkYXRhO1xuICBjb250ZW50OiBCYW5uZXJNZXRhZGF0YTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
+
import { IonButton, IonButtons, IonIcon, IonText, IonTitle, IonToolbar } from '@ionic/angular/standalone';
|
|
4
|
+
import { AvatarComponent } from '../../atoms/avatar/avatar.component';
|
|
5
|
+
import { ImageComponent } from '../../atoms/image/image.component';
|
|
6
|
+
import { ToolbarActionType } from '../../types';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@ionic/angular";
|
|
9
|
+
import * as i2 from "@angular/common";
|
|
10
|
+
export class ToolbarComponent {
|
|
11
|
+
constructor(navCtrl) {
|
|
12
|
+
this.navCtrl = navCtrl;
|
|
13
|
+
this.onClick = new EventEmitter();
|
|
14
|
+
this.actionTypes = ToolbarActionType;
|
|
15
|
+
}
|
|
16
|
+
ngOnInit() { }
|
|
17
|
+
goBack() {
|
|
18
|
+
this.navCtrl.back();
|
|
19
|
+
}
|
|
20
|
+
rightActions() {
|
|
21
|
+
return this.props.actions.filter(x => x.position === 'right');
|
|
22
|
+
}
|
|
23
|
+
leftActions() {
|
|
24
|
+
return this.props.actions.filter(x => x.position === 'left');
|
|
25
|
+
}
|
|
26
|
+
someInRight() {
|
|
27
|
+
return !!this.props.actions.find(x => x.position === 'right');
|
|
28
|
+
}
|
|
29
|
+
someInLeft() {
|
|
30
|
+
return !!this.props.actions.find(x => x.position === 'left');
|
|
31
|
+
}
|
|
32
|
+
clickHandler(token) {
|
|
33
|
+
this.onClick.emit(token);
|
|
34
|
+
}
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolbarComponent, deps: [{ token: i1.NavController }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToolbarComponent, isStandalone: true, selector: "val-toolbar", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
|
|
37
|
+
<ion-toolbar [color]="props.color" [class.background]="props.color === 'background'">
|
|
38
|
+
<ng-container *ngIf="props.withBack">
|
|
39
|
+
<ion-buttons class="left-buttons" slot="start" *ngIf="props.withBack">
|
|
40
|
+
<ion-button fill="clear" (click)="goBack()" [color]="props.textColor">
|
|
41
|
+
<ion-icon name="chevron-back-outline" [slot]="props.backText ? 'start' : 'icon-only'"></ion-icon>
|
|
42
|
+
<ion-text *ngIf="props.backText">{{ props.backText }}</ion-text>
|
|
43
|
+
</ion-button>
|
|
44
|
+
</ion-buttons>
|
|
45
|
+
</ng-container>
|
|
46
|
+
<ng-container *ngIf="props.withActions">
|
|
47
|
+
<ion-buttons slot="end" *ngIf="someInRight()">
|
|
48
|
+
<ng-container *ngFor="let action of rightActions()">
|
|
49
|
+
<ion-button *ngIf="action.type === actionTypes.ICON" (click)="clickHandler(action.token)">
|
|
50
|
+
<ion-icon slot="icon-only" [name]="action.description" color="dark"></ion-icon>
|
|
51
|
+
</ion-button>
|
|
52
|
+
<val-avatar
|
|
53
|
+
*ngIf="action.type === actionTypes.AVATAR"
|
|
54
|
+
[props]="{ size: 'small', image: action.description, default: '' }"
|
|
55
|
+
(onClick)="clickHandler(action.token)"
|
|
56
|
+
></val-avatar>
|
|
57
|
+
<val-image
|
|
58
|
+
*ngIf="action.type === actionTypes.IMAGE"
|
|
59
|
+
[props]="action.image"
|
|
60
|
+
(click)="clickHandler(action.token)"
|
|
61
|
+
></val-image>
|
|
62
|
+
<ion-button *ngIf="action.type === actionTypes.BUTTON" (click)="clickHandler(action.token)">{{
|
|
63
|
+
action.description
|
|
64
|
+
}}</ion-button>
|
|
65
|
+
</ng-container>
|
|
66
|
+
</ion-buttons>
|
|
67
|
+
<ion-buttons slot="start" *ngIf="someInLeft()">
|
|
68
|
+
<ng-container *ngFor="let action of leftActions()">
|
|
69
|
+
<ion-button *ngIf="action.type === actionTypes.ICON" (click)="clickHandler(action.token)">
|
|
70
|
+
<ion-icon slot="icon-only" [name]="action.description" color="dark"></ion-icon>
|
|
71
|
+
</ion-button>
|
|
72
|
+
<val-avatar
|
|
73
|
+
*ngIf="action.type === actionTypes.AVATAR"
|
|
74
|
+
[props]="{ size: 'small', image: action.description, default: '' }"
|
|
75
|
+
(onClick)="clickHandler(action.token)"
|
|
76
|
+
></val-avatar>
|
|
77
|
+
<val-image
|
|
78
|
+
*ngIf="action.type === actionTypes.IMAGE"
|
|
79
|
+
[props]="action.image"
|
|
80
|
+
(click)="clickHandler(action.token)"
|
|
81
|
+
></val-image>
|
|
82
|
+
<ion-button *ngIf="action.type === actionTypes.BUTTON" (click)="clickHandler(action.token)">{{
|
|
83
|
+
action.description
|
|
84
|
+
}}</ion-button>
|
|
85
|
+
</ng-container>
|
|
86
|
+
</ion-buttons>
|
|
87
|
+
</ng-container>
|
|
88
|
+
<ion-title *ngIf="props.title" [color]="props.textColor">{{ props.title }}</ion-title>
|
|
89
|
+
<!-- experimental -->
|
|
90
|
+
<ng-content select="[toolbar-bottom]"></ng-content>
|
|
91
|
+
</ion-toolbar>
|
|
92
|
+
`, isInline: true, styles: ["ion-button{font-family:var(--ion-default-font),Arial,sans-serif}.left-buttons{margin-left:-1rem}.background{background:var(--ion-background-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }] }); }
|
|
93
|
+
}
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolbarComponent, decorators: [{
|
|
95
|
+
type: Component,
|
|
96
|
+
args: [{ selector: 'val-toolbar', standalone: true, imports: [
|
|
97
|
+
CommonModule,
|
|
98
|
+
IonToolbar,
|
|
99
|
+
IonButtons,
|
|
100
|
+
IonButton,
|
|
101
|
+
IonIcon,
|
|
102
|
+
IonText,
|
|
103
|
+
IonTitle,
|
|
104
|
+
AvatarComponent,
|
|
105
|
+
ImageComponent,
|
|
106
|
+
], template: `
|
|
107
|
+
<ion-toolbar [color]="props.color" [class.background]="props.color === 'background'">
|
|
108
|
+
<ng-container *ngIf="props.withBack">
|
|
109
|
+
<ion-buttons class="left-buttons" slot="start" *ngIf="props.withBack">
|
|
110
|
+
<ion-button fill="clear" (click)="goBack()" [color]="props.textColor">
|
|
111
|
+
<ion-icon name="chevron-back-outline" [slot]="props.backText ? 'start' : 'icon-only'"></ion-icon>
|
|
112
|
+
<ion-text *ngIf="props.backText">{{ props.backText }}</ion-text>
|
|
113
|
+
</ion-button>
|
|
114
|
+
</ion-buttons>
|
|
115
|
+
</ng-container>
|
|
116
|
+
<ng-container *ngIf="props.withActions">
|
|
117
|
+
<ion-buttons slot="end" *ngIf="someInRight()">
|
|
118
|
+
<ng-container *ngFor="let action of rightActions()">
|
|
119
|
+
<ion-button *ngIf="action.type === actionTypes.ICON" (click)="clickHandler(action.token)">
|
|
120
|
+
<ion-icon slot="icon-only" [name]="action.description" color="dark"></ion-icon>
|
|
121
|
+
</ion-button>
|
|
122
|
+
<val-avatar
|
|
123
|
+
*ngIf="action.type === actionTypes.AVATAR"
|
|
124
|
+
[props]="{ size: 'small', image: action.description, default: '' }"
|
|
125
|
+
(onClick)="clickHandler(action.token)"
|
|
126
|
+
></val-avatar>
|
|
127
|
+
<val-image
|
|
128
|
+
*ngIf="action.type === actionTypes.IMAGE"
|
|
129
|
+
[props]="action.image"
|
|
130
|
+
(click)="clickHandler(action.token)"
|
|
131
|
+
></val-image>
|
|
132
|
+
<ion-button *ngIf="action.type === actionTypes.BUTTON" (click)="clickHandler(action.token)">{{
|
|
133
|
+
action.description
|
|
134
|
+
}}</ion-button>
|
|
135
|
+
</ng-container>
|
|
136
|
+
</ion-buttons>
|
|
137
|
+
<ion-buttons slot="start" *ngIf="someInLeft()">
|
|
138
|
+
<ng-container *ngFor="let action of leftActions()">
|
|
139
|
+
<ion-button *ngIf="action.type === actionTypes.ICON" (click)="clickHandler(action.token)">
|
|
140
|
+
<ion-icon slot="icon-only" [name]="action.description" color="dark"></ion-icon>
|
|
141
|
+
</ion-button>
|
|
142
|
+
<val-avatar
|
|
143
|
+
*ngIf="action.type === actionTypes.AVATAR"
|
|
144
|
+
[props]="{ size: 'small', image: action.description, default: '' }"
|
|
145
|
+
(onClick)="clickHandler(action.token)"
|
|
146
|
+
></val-avatar>
|
|
147
|
+
<val-image
|
|
148
|
+
*ngIf="action.type === actionTypes.IMAGE"
|
|
149
|
+
[props]="action.image"
|
|
150
|
+
(click)="clickHandler(action.token)"
|
|
151
|
+
></val-image>
|
|
152
|
+
<ion-button *ngIf="action.type === actionTypes.BUTTON" (click)="clickHandler(action.token)">{{
|
|
153
|
+
action.description
|
|
154
|
+
}}</ion-button>
|
|
155
|
+
</ng-container>
|
|
156
|
+
</ion-buttons>
|
|
157
|
+
</ng-container>
|
|
158
|
+
<ion-title *ngIf="props.title" [color]="props.textColor">{{ props.title }}</ion-title>
|
|
159
|
+
<!-- experimental -->
|
|
160
|
+
<ng-content select="[toolbar-bottom]"></ng-content>
|
|
161
|
+
</ion-toolbar>
|
|
162
|
+
`, styles: ["ion-button{font-family:var(--ion-default-font),Arial,sans-serif}.left-buttons{margin-left:-1rem}.background{background:var(--ion-background-color)}\n"] }]
|
|
163
|
+
}], ctorParameters: () => [{ type: i1.NavController }], propDecorators: { props: [{
|
|
164
|
+
type: Input
|
|
165
|
+
}], onClick: [{
|
|
166
|
+
type: Output
|
|
167
|
+
}] } });
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7OztBQTRFL0QsTUFBTSxPQUFPLGdCQUFnQjtJQVMzQixZQUFvQixPQUFzQjtRQUF0QixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBSjFDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXJDLGdCQUFXLEdBQUcsaUJBQWlCLENBQUM7SUFFYSxDQUFDO0lBRTlDLFFBQVEsS0FBSSxDQUFDO0lBRWIsTUFBTTtRQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQzsrR0FuQ1UsZ0JBQWdCO21HQUFoQixnQkFBZ0Isb0lBM0RqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3RFQsOE5BbEVDLFlBQVksZ1FBQ1osVUFBVSxtRkFDVixVQUFVLDhFQUNWLFNBQVMsb1BBQ1QsT0FBTywySkFDUCxPQUFPLGdGQUNQLFFBQVEsaUZBQ1IsZUFBZSxnR0FDZixjQUFjOzs0RkE2REwsZ0JBQWdCO2tCQXpFNUIsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osVUFBVTt3QkFDVixVQUFVO3dCQUNWLFNBQVM7d0JBQ1QsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLFFBQVE7d0JBQ1IsZUFBZTt3QkFDZixjQUFjO3FCQUNmLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0RUO2tGQUtELEtBQUs7c0JBREosS0FBSztnQkFJTixPQUFPO3NCQUROLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uQnV0dG9ucywgSW9uSWNvbiwgSW9uVGV4dCwgSW9uVGl0bGUsIElvblRvb2xiYXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7IEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2xiYXJBY3Rpb24sIFRvb2xiYXJBY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgVG9vbGJhck1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC10b29sYmFyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJb25Ub29sYmFyLFxuICAgIElvbkJ1dHRvbnMsXG4gICAgSW9uQnV0dG9uLFxuICAgIElvbkljb24sXG4gICAgSW9uVGV4dCxcbiAgICBJb25UaXRsZSxcbiAgICBBdmF0YXJDb21wb25lbnQsXG4gICAgSW1hZ2VDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi10b29sYmFyIFtjb2xvcl09XCJwcm9wcy5jb2xvclwiIFtjbGFzcy5iYWNrZ3JvdW5kXT1cInByb3BzLmNvbG9yID09PSAnYmFja2dyb3VuZCdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wcy53aXRoQmFja1wiPlxuICAgICAgICA8aW9uLWJ1dHRvbnMgY2xhc3M9XCJsZWZ0LWJ1dHRvbnNcIiBzbG90PVwic3RhcnRcIiAqbmdJZj1cInByb3BzLndpdGhCYWNrXCI+XG4gICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgKGNsaWNrKT1cImdvQmFjaygpXCIgW2NvbG9yXT1cInByb3BzLnRleHRDb2xvclwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGV2cm9uLWJhY2stb3V0bGluZVwiIFtzbG90XT1cInByb3BzLmJhY2tUZXh0ID8gJ3N0YXJ0JyA6ICdpY29uLW9ubHknXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDxpb24tdGV4dCAqbmdJZj1cInByb3BzLmJhY2tUZXh0XCI+e3sgcHJvcHMuYmFja1RleHQgfX08L2lvbi10ZXh0PlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb3BzLndpdGhBY3Rpb25zXCI+XG4gICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCIgKm5nSWY9XCJzb21lSW5SaWdodCgpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHJpZ2h0QWN0aW9ucygpXCI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5JQ09OXCIgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihhY3Rpb24udG9rZW4pXCI+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgW25hbWVdPVwiYWN0aW9uLmRlc2NyaXB0aW9uXCIgY29sb3I9XCJkYXJrXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDx2YWwtYXZhdGFyXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLkFWQVRBUlwiXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7IHNpemU6ICdzbWFsbCcsIGltYWdlOiBhY3Rpb24uZGVzY3JpcHRpb24sIGRlZmF1bHQ6ICcnIH1cIlxuICAgICAgICAgICAgICAob25DbGljayk9XCJjbGlja0hhbmRsZXIoYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+PC92YWwtYXZhdGFyPlxuICAgICAgICAgICAgPHZhbC1pbWFnZVxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5JTUFHRVwiXG4gICAgICAgICAgICAgIFtwcm9wc109XCJhY3Rpb24uaW1hZ2VcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgPjwvdmFsLWltYWdlPlxuICAgICAgICAgICAgPGlvbi1idXR0b24gKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuQlVUVE9OXCIgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihhY3Rpb24udG9rZW4pXCI+e3tcbiAgICAgICAgICAgICAgYWN0aW9uLmRlc2NyaXB0aW9uXG4gICAgICAgICAgICB9fTwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiICpuZ0lmPVwic29tZUluTGVmdCgpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGxlZnRBY3Rpb25zKClcIj5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklDT05cIiAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKGFjdGlvbi50b2tlbilcIj5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBbbmFtZV09XCJhY3Rpb24uZGVzY3JpcHRpb25cIiBjb2xvcj1cImRhcmtcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPHZhbC1hdmF0YXJcbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuQVZBVEFSXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cInsgc2l6ZTogJ3NtYWxsJywgaW1hZ2U6IGFjdGlvbi5kZXNjcmlwdGlvbiwgZGVmYXVsdDogJycgfVwiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcihhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID48L3ZhbC1hdmF0YXI+XG4gICAgICAgICAgICA8dmFsLWltYWdlXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklNQUdFXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cImFjdGlvbi5pbWFnZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+PC92YWwtaW1hZ2U+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5CVVRUT05cIiAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKGFjdGlvbi50b2tlbilcIj57e1xuICAgICAgICAgICAgICBhY3Rpb24uZGVzY3JpcHRpb25cbiAgICAgICAgICAgIH19PC9pb24tYnV0dG9uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8aW9uLXRpdGxlICpuZ0lmPVwicHJvcHMudGl0bGVcIiBbY29sb3JdPVwicHJvcHMudGV4dENvbG9yXCI+e3sgcHJvcHMudGl0bGUgfX08L2lvbi10aXRsZT5cbiAgICAgIDwhLS0gZXhwZXJpbWVudGFsIC0tPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Rvb2xiYXItYm90dG9tXVwiPjwvbmctY29udGVudD5cbiAgICA8L2lvbi10b29sYmFyPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi90b29sYmFyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRvb2xiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBwcm9wczogVG9vbGJhck1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgYWN0aW9uVHlwZXMgPSBUb29sYmFyQWN0aW9uVHlwZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5hdkN0cmw6IE5hdkNvbnRyb2xsZXIpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIGdvQmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLm5hdkN0cmwuYmFjaygpO1xuICB9XG5cbiAgcmlnaHRBY3Rpb25zKCk6IFRvb2xiYXJBY3Rpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuYWN0aW9ucy5maWx0ZXIoeCA9PiB4LnBvc2l0aW9uID09PSAncmlnaHQnKTtcbiAgfVxuXG4gIGxlZnRBY3Rpb25zKCk6IFRvb2xiYXJBY3Rpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuYWN0aW9ucy5maWx0ZXIoeCA9PiB4LnBvc2l0aW9uID09PSAnbGVmdCcpO1xuICB9XG5cbiAgc29tZUluUmlnaHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5wcm9wcy5hY3Rpb25zLmZpbmQoeCA9PiB4LnBvc2l0aW9uID09PSAncmlnaHQnKTtcbiAgfVxuXG4gIHNvbWVJbkxlZnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5wcm9wcy5hY3Rpb25zLmZpbmQoeCA9PiB4LnBvc2l0aW9uID09PSAnbGVmdCcpO1xuICB9XG5cbiAgY2xpY2tIYW5kbGVyKHRva2VuPzogc3RyaW5nKSB7XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQodG9rZW4pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy90b29sYmFyL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xvciB9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7IFRvb2xiYXJBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIFRvb2xiYXJNZXRhZGF0YSA9IHtcbiAgd2l0aEJhY2s6IGJvb2xlYW47XG4gIGJhY2tUZXh0Pzogc3RyaW5nO1xuICB3aXRoQWN0aW9uczogYm9vbGVhbjtcbiAgY29sb3I/OiBDb2xvcjtcbiAgdGV4dENvbG9yPzogQ29sb3I7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGFjdGlvbnM6IFRvb2xiYXJBY3Rpb25bXTtcbn07XG4iXX0=
|