valtech-components 2.0.407 → 2.0.410
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/horizontal-scroll/horizontal-scroll.component.mjs +82 -0
- package/esm2022/lib/components/atoms/horizontal-scroll/types.mjs +2 -0
- package/esm2022/lib/components/atoms/rights-footer/rights-footer.component.mjs +82 -0
- package/esm2022/lib/components/atoms/rights-footer/types.mjs +2 -0
- package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +55 -11
- package/esm2022/lib/components/molecules/email-input/email-input.component.mjs +13 -4
- package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +27 -23
- package/esm2022/lib/components/molecules/footer-links/footer-links.component.mjs +277 -0
- package/esm2022/lib/components/molecules/footer-links/types.mjs +2 -0
- package/esm2022/lib/components/molecules/links-accordion/links-accordion.component.mjs +157 -0
- package/esm2022/lib/components/molecules/links-accordion/types.mjs +2 -0
- package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +12 -2
- package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +21 -9
- package/esm2022/lib/components/molecules/prompter/types.mjs +1 -1
- package/esm2022/lib/components/molecules/radio-input/radio-input.component.mjs +13 -4
- package/esm2022/lib/components/molecules/recap-card/recap-card.component.mjs +78 -0
- package/esm2022/lib/components/molecules/recap-card/types.mjs +2 -0
- package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +31 -14
- package/esm2022/lib/components/molecules/swipe-carousel/swipe-carousel.component.mjs +206 -0
- package/esm2022/lib/components/molecules/swipe-carousel/types.mjs +2 -0
- package/esm2022/lib/components/molecules/testimonial-card/testimonial-card.component.mjs +138 -0
- package/esm2022/lib/components/molecules/testimonial-card/types.mjs +2 -0
- package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +14 -4
- package/esm2022/lib/components/organisms/cards-carousel/cards-carousel.component.mjs +61 -0
- package/esm2022/lib/components/organisms/cards-carousel/types.mjs +2 -0
- package/esm2022/lib/components/organisms/company-footer/company-footer.component.mjs +72 -0
- package/esm2022/lib/components/organisms/company-footer/types.mjs +2 -0
- package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +175 -3
- package/esm2022/lib/components/organisms/data-table/types.mjs +1 -1
- package/esm2022/lib/components/organisms/form/form.component.mjs +2 -2
- package/esm2022/lib/components/organisms/fun-header/fun-header.component.mjs +225 -0
- package/esm2022/lib/components/organisms/fun-header/types.mjs +2 -0
- package/esm2022/lib/components/organisms/menu/menu.component.mjs +197 -0
- package/esm2022/lib/components/organisms/menu/types.mjs +2 -0
- package/esm2022/lib/components/organisms/testimonial-carousel/testimonial-carousel.component.mjs +72 -0
- package/esm2022/lib/components/organisms/testimonial-carousel/types.mjs +2 -0
- package/esm2022/lib/components/templates/page-content/page-content.component.mjs +156 -0
- package/esm2022/lib/components/templates/page-content/types.mjs +2 -0
- package/esm2022/lib/components/templates/page-template/page-template.component.mjs +181 -0
- package/esm2022/lib/components/templates/page-template/types.mjs +2 -0
- package/esm2022/lib/components/templates/page-wrapper/page-wrapper.component.mjs +195 -0
- package/esm2022/lib/components/templates/page-wrapper/types.mjs +2 -0
- package/esm2022/lib/components/types.mjs +1 -1
- package/esm2022/lib/services/firebase/config.mjs +103 -0
- package/esm2022/lib/services/firebase/firebase.service.mjs +285 -0
- package/esm2022/lib/services/firebase/firestore-collection.mjs +266 -0
- package/esm2022/lib/services/firebase/firestore.service.mjs +508 -0
- package/esm2022/lib/services/firebase/index.mjs +46 -0
- package/esm2022/lib/services/firebase/messaging.service.mjs +503 -0
- package/esm2022/lib/services/firebase/storage.service.mjs +421 -0
- package/esm2022/lib/services/firebase/types.mjs +8 -0
- package/esm2022/lib/services/firebase/utils/path-builder.mjs +195 -0
- package/esm2022/lib/services/firebase/utils/query-builder.mjs +302 -0
- package/esm2022/lib/services/icons.service.mjs +3 -2
- package/esm2022/public-api.mjs +33 -1
- package/fesm2022/valtech-components.mjs +5823 -869
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/horizontal-scroll/horizontal-scroll.component.d.ts +41 -0
- package/lib/components/atoms/horizontal-scroll/types.d.ts +13 -0
- package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +39 -0
- package/lib/components/atoms/rights-footer/types.d.ts +13 -0
- package/lib/components/molecules/check-input/check-input.component.d.ts +17 -2
- package/lib/components/molecules/email-input/email-input.component.d.ts +1 -2
- package/lib/components/molecules/footer-links/footer-links.component.d.ts +47 -0
- package/lib/components/molecules/footer-links/types.d.ts +37 -0
- package/lib/components/molecules/links-accordion/links-accordion.component.d.ts +48 -0
- package/lib/components/molecules/links-accordion/types.d.ts +33 -0
- package/lib/components/molecules/password-input/password-input.component.d.ts +1 -1
- package/lib/components/molecules/prompter/prompter.component.d.ts +8 -1
- package/lib/components/molecules/prompter/types.d.ts +7 -1
- package/lib/components/molecules/radio-input/radio-input.component.d.ts +1 -2
- package/lib/components/molecules/recap-card/recap-card.component.d.ts +36 -0
- package/lib/components/molecules/recap-card/types.d.ts +30 -0
- package/lib/components/molecules/select-input/select-input.component.d.ts +6 -1
- package/lib/components/molecules/swipe-carousel/swipe-carousel.component.d.ts +66 -0
- package/lib/components/molecules/swipe-carousel/types.d.ts +35 -0
- package/lib/components/molecules/testimonial-card/testimonial-card.component.d.ts +41 -0
- package/lib/components/molecules/testimonial-card/types.d.ts +25 -0
- package/lib/components/molecules/text-input/text-input.component.d.ts +13 -4
- package/lib/components/organisms/cards-carousel/cards-carousel.component.d.ts +30 -0
- package/lib/components/organisms/cards-carousel/types.d.ts +11 -0
- package/lib/components/organisms/company-footer/company-footer.component.d.ts +32 -0
- package/lib/components/organisms/company-footer/types.d.ts +15 -0
- package/lib/components/organisms/data-table/data-table.component.d.ts +1 -1
- package/lib/components/organisms/data-table/types.d.ts +6 -0
- package/lib/components/organisms/fun-header/fun-header.component.d.ts +72 -0
- package/lib/components/organisms/fun-header/types.d.ts +28 -0
- package/lib/components/organisms/menu/menu.component.d.ts +39 -0
- package/lib/components/organisms/menu/types.d.ts +23 -0
- package/lib/components/organisms/testimonial-carousel/testimonial-carousel.component.d.ts +33 -0
- package/lib/components/organisms/testimonial-carousel/types.d.ts +8 -0
- package/lib/components/templates/page-content/page-content.component.d.ts +55 -0
- package/lib/components/templates/page-content/types.d.ts +14 -0
- package/lib/components/templates/page-template/page-template.component.d.ts +49 -0
- package/lib/components/templates/page-template/types.d.ts +17 -0
- package/lib/components/templates/page-wrapper/page-wrapper.component.d.ts +61 -0
- package/lib/components/templates/page-wrapper/types.d.ts +19 -0
- package/lib/components/types.d.ts +14 -0
- package/lib/services/firebase/config.d.ts +49 -0
- package/lib/services/firebase/firebase.service.d.ts +140 -0
- package/lib/services/firebase/firestore-collection.d.ts +195 -0
- package/lib/services/firebase/firestore.service.d.ts +303 -0
- package/lib/services/firebase/index.d.ts +38 -0
- package/lib/services/firebase/messaging.service.d.ts +254 -0
- package/lib/services/firebase/storage.service.d.ts +204 -0
- package/lib/services/firebase/types.d.ts +279 -0
- package/lib/services/firebase/utils/path-builder.d.ts +132 -0
- package/lib/services/firebase/utils/query-builder.d.ts +210 -0
- package/package.json +3 -1
- package/public-api.d.ts +31 -0
|
@@ -218,7 +218,7 @@ export class FormComponent {
|
|
|
218
218
|
></val-button-group>
|
|
219
219
|
</form>
|
|
220
220
|
</div>
|
|
221
|
-
`, isInline: true, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.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: NumberFromToComponent, selector: "val-number-from-to", 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"] }, { kind: "component", type: SelectSearchComponent, selector: "val-select-search", inputs: ["label", "labelProperty", "valueProperty", "multiple", "placeholder", "props"] }, { kind: "component", type: MultiSelectSearchComponent, selector: "val-multi-select-search", inputs: ["label", "labelProperty", "valueProperty", "placeholder", "props"] }, { kind: "component", type: SearchSelectorComponent, selector: "val-select-input", inputs: ["props"] }] }); }
|
|
221
|
+
`, isInline: true, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.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", inputs: ["props"] }, { 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: NumberFromToComponent, selector: "val-number-from-to", 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"] }, { kind: "component", type: SelectSearchComponent, selector: "val-select-search", inputs: ["label", "labelProperty", "valueProperty", "multiple", "placeholder", "props"] }, { kind: "component", type: MultiSelectSearchComponent, selector: "val-multi-select-search", inputs: ["label", "labelProperty", "valueProperty", "placeholder", "props"] }, { kind: "component", type: SearchSelectorComponent, selector: "val-select-input", inputs: ["props"] }] }); }
|
|
222
222
|
}
|
|
223
223
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormComponent, decorators: [{
|
|
224
224
|
type: Component,
|
|
@@ -326,4 +326,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
326
326
|
}], onSelectChange: [{
|
|
327
327
|
type: Output
|
|
328
328
|
}] } });
|
|
329
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Zvcm0vZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUF1QyxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDM0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDeEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDOUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDckYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxD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ICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGlzQXRFbmQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvZG9tJztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IERpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXZpZGVyL2RpdmlkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2J1dHRvbi1ncm91cC9idXR0b24tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY2hlY2staW5wdXQvY2hlY2staW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1lbnRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jb21tZW50LWlucHV0L2NvbW1lbnQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9kYXRlLWlucHV0L2RhdGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEVtYWlsSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1haWwtaW5wdXQvZW1haWwtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9maWxlLWlucHV0L2ZpbGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEhpbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvaGludC9oaW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIb3VySW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvaG91ci1pbnB1dC9ob3VyLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOdW1iZXJJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOdW1iZXJGcm9tVG9Db21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvbnVtYmVyLWZyb20tdG8vbnVtYmVyLWZyb20tdG8uY29tcG9uZW50JztcbmltcG9ydCB7IFBhc3N3b3JkSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFBpbklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3Bpbi1pbnB1dC9waW4taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcmFkaW8taW5wdXQvcmFkaW8taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zZWxlY3Qtc2VhcmNoL3NlbGVjdC1zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IE11bHRpU2VsZWN0U2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL211bHRpLXNlbGVjdC1zZWFyY2gvbXVsdGktc2VsZWN0LXNlYXJjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uTWV0YWRhdGEsIENvbXBvbmVudFN0YXRlcywgRm9ybU1ldGFkYXRhLCBGb3JtU3VibWl0LCBJbnB1dE1ldGFkYXRhLCBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1mb3JtJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIERpc3BsYXlDb21wb25lbnQsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gICAgVGV4dElucHV0Q29tcG9uZW50LFxuICAgIENoZWNrSW5wdXRDb21wb25lbnQsXG4gICAgQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gICAgRGl2aWRlckNvbXBvbmVudCxcbiAgICBIaW50Q29tcG9uZW50LFxuICAgIENvbW1lbnRJbnB1dENvbXBvbmVudCxcbiAgICBEYXRlSW5wdXRDb21wb25lbnQsXG4gICAgRmlsZUlucHV0Q29tcG9uZW50LFxuICAgIEhvdXJJbnB1dENvbXBvbmVudCxcbiAgICBFbWFpbElucHV0Q29tcG9uZW50LFxuICAgIE51bWJlcklucHV0Q29tcG9uZW50LFxuICAgIE51bWJlckZyb21Ub0NvbXBvbmVudCxcbiAgICBSYWRpb0lucHV0Q29tcG9uZW50LFxuICAgIFBhc3N3b3JkSW5wdXRDb21wb25lbnQsXG4gICAgUGluSW5wdXRDb21wb25lbnQsXG4gICAgU2VsZWN0U2VhcmNoQ29tcG9uZW50LFxuICAgIE11bHRpU2VsZWN0U2VhcmNoQ29tcG9uZW50LFxuICAgIFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICA8dmFsLWRpc3BsYXlcbiAgICAgICAgICAqbmdJZj1cInByb3BzLm5hbWVcIlxuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBjb250ZW50OiBwcm9wcy5uYW1lLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIHNpemU6ICdsYXJnZScsXG4gICAgICAgICAgfVwiXG4gICAgICAgID48L3ZhbC1kaXNwbGF5PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiICpuZ0Zvcj1cImxldCBzIG9mIHByb3BzLnNlY3Rpb25zXCI+XG4gICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwieyBjb250ZW50OiBzLm5hbWUsIHNpemU6ICdsYXJnZScsIGNvbG9yOiAnJywgYm9sZDogZmFsc2UgfVwiPjwvdmFsLXRpdGxlPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dFwiICpuZ0Zvcj1cImxldCBmIG9mIHMuZmllbGRzXCI+XG4gICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IGYubGFiZWwsIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGJvbGQ6IGZhbHNlIH1cIj48L3ZhbC10aXRsZT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLlRFWFRcIj5cbiAgICAgICAgICAgICAgPHZhbC10ZXh0LWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC10ZXh0LWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5DSEVDS1wiPlxuICAgICAgICAgICAgICA8dmFsLWNoZWNrLWlucHV0PjwvdmFsLWNoZWNrLWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5DT01NRU5UXCI+XG4gICAgICAgICAgICAgIDx2YWwtY29tbWVudC1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtY29tbWVudC1pbnB1dD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYudHlwZSA9PT0gdHlwZXMuREFURVwiPlxuICAgICAgICAgICAgICA8dmFsLWRhdGUtaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWRhdGUtaW5wdXQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLkVNQUlMXCI+XG4gICAgICAgICAgICAgIDx2YWwtZW1haWwtaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWVtYWlsLWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5GSUxFXCI+XG4gICAgICAgICAgICAgIDx2YWwtZmlsZS1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtZmlsZS1pbnB1dD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYudHlwZSA9PT0gdHlwZXMuSE9VUlwiPlxuICAgICAgICAgICAgICA8dmFsLWhvdXItaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWhvdXItaW5wdXQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLk5VTUJFUlwiPlxuICAgICAgICAgICAgICA8dmFsLW51bWJlci1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtbnVtYmVyLWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5OVU1CRVJfRlJPTV9UT1wiPlxuICAgICAgICAgICAgICA8dmFsLW51bWJlci1mcm9tLXRvIFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1udW1iZXItZnJvbS10bz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYudHlwZSA9PT0gdHlwZXMuUEFTU1dPUkRcIj5cbiAgICAgICAgICAgICAgPHZhbC1wYXNzd29yZC1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtcGFzc3dvcmQtaW5wdXQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLlBJTl9DT0RFXCI+XG4gICAgICAgICAgICAgIDx2YWwtcGluLWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1waW4taW5wdXQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLlJBRElPXCI+XG4gICAgICAgICAgICAgIDx2YWwtcmFkaW8taW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLXJhZGlvLWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5TRUxFQ1RcIj5cbiAgICAgICAgICAgICAgPHZhbC1zZWxlY3QtaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLXNlbGVjdC1pbnB1dD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYudHlwZSA9PT0gdHlwZXMuU0VBUkNIX1NFTEVDVFwiPlxuICAgICAgICAgICAgICA8dmFsLXNlbGVjdC1zZWFyY2ggW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLXNlbGVjdC1zZWFyY2g+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLk1VTFRJX1NFTEVDVFwiPlxuICAgICAgICAgICAgICA8dmFsLW11bHRpLXNlbGVjdC1zZWFyY2ggW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLW11bHRpLXNlbGVjdC1zZWFyY2g+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDx2YWwtaGludCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtaGludD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8dmFsLWRpdmlkZXIgW3Byb3BzXT1cInsgZmlsbDogJ3NvbGlkJywgc2l6ZTogJ21lZGl1bScsIGNvbG9yOiAnbWVkaXVtJyB9XCI+PC92YWwtZGl2aWRlcj5cbiAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dmFsLWJ1dHRvbi1ncm91cFxuICAgICAgICAgIFtwcm9wc109XCJ7IGJ1dHRvbnM6IGFjdGlvbnMsIHBvc2l0aW9uOiAnY2VudGVyJywgY29sdW1uZWQ6IGZhbHNlIH1cIlxuICAgICAgICAgIChvbkNsaWNrKT1cInN1Ym1pdEhhbmRsZXIoJGV2ZW50KVwiXG4gICAgICAgID48L3ZhbC1idXR0b24tZ3JvdXA+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIHByb3BzOiBGb3JtTWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpXG4gIG9uU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtU3VibWl0PigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkludmFsaWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uU2VsZWN0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IGZpZWxkOiBzdHJpbmc7IHZhbHVlOiBhbnkgfT4oKTtcblxuICBmb3JtOiBGb3JtR3JvdXA7XG4gIHR5cGVzID0gSW5wdXRUeXBlO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBmb3JtQ29udHJvbHMgPSB7fTtcbiAgICB0aGlzLnByb3BzLnNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XG4gICAgICBzZWN0aW9uLmZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IHRoaXMudHlwZXMuTlVNQkVSX0ZST01fVE8pIHtcbiAgICAgICAgICAvLyBDcmVhciBkb3MgY29udHJvbGVzIHBhcmEgY2FtcG9zIE5VTUJFUl9GUk9NX1RPXG4gICAgICAgICAgZm9ybUNvbnRyb2xzW2Ake2ZpZWxkLm5hbWV9X2Zyb21gXSA9IFt1bmRlZmluZWQsIGZpZWxkLnZhbGlkYXRvcnMgfHwgW11dO1xuICAgICAgICAgIGZvcm1Db250cm9sc1tgJHtmaWVsZC5uYW1lfV90b2BdID0gW3VuZGVmaW5lZCwgZmllbGQudmFsaWRhdG9ycyB8fCBbXV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9ybUNvbnRyb2xzW2ZpZWxkLm5hbWVdID0gW3VuZGVmaW5lZCwgZmllbGQudmFsaWRhdG9ycyB8fCBbXV07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoZm9ybUNvbnRyb2xzKTtcbiAgICB0aGlzLnByb3BzLnNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XG4gICAgICBzZWN0aW9uLmZpZWxkc1xuICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgIHggPT5cbiAgICAgICAgICAgIHgudHlwZSA9PT0gdGhpcy50eXBlcy5TRUxFQ1QgfHxcbiAgICAgICAgICAgIHgudHlwZSA9PT0gdGhpcy50eXBlcy5URVhUIHx8XG4gICAgICAgICAgICB4LnR5cGUgPT09IHRoaXMudHlwZXMuU0VBUkNIX1NFTEVDVCB8fFxuICAgICAgICAgICAgeC50eXBlID09PSB0aGlzLnR5cGVzLk1VTFRJX1NFTEVDVFxuICAgICAgICApXG4gICAgICAgIC5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICB0aGlzLnRyYWNrU2VsZWN0Q2hhbmdlcyhmaWVsZC5uYW1lKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyBDbGVhbnVwIHN1YnNjcmlwdGlvbnMgdG8gYXZvaWQgbWVtb3J5IGxlYWtzXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHRyYWNrU2VsZWN0Q2hhbmdlcyhmaWVsZE5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woZmllbGROYW1lKTtcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBjb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgdGhpcy5vblNlbGVjdENoYW5nZS5lbWl0KHsgZmllbGQ6IGZpZWxkTmFtZSwgdmFsdWUgfSk7XG4gICAgfSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcbiAgfVxuXG4gIGFzeW5jIHN1Ym1pdEhhbmRsZXIodG9rZW4/OiBzdHJpbmcpIHtcbiAgICB0aGlzLm9uU3VibWl0LmVtaXQoeyBmaWVsZHM6IHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpLCB0b2tlbiB9KTtcbiAgfVxuXG4gIGdldENvbnRyb2woZmllbGQ6IHN0cmluZyk6IEZvcm1Db250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5Gb3JtLmdldChmaWVsZCkgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICBnZXRGaWVsZFByb3AoZmllbGQ6IElucHV0TWV0YWRhdGEpOiBJbnB1dE1ldGFkYXRhIHtcbiAgICBmaWVsZC50b2tlbjtcbiAgICBpZiAoIWZpZWxkLnRva2VuKSB7XG4gICAgICBmaWVsZC50b2tlbiA9IGBpbnB1dC0ke2ZpZWxkLnR5cGV9LSR7ZmllbGQubmFtZX1gO1xuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSB0aGlzLnR5cGVzLk5VTUJFUl9GUk9NX1RPKSB7XG4gICAgICBjb25zdCBmcm9tQ29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChgJHtmaWVsZC5uYW1lfV9mcm9tYCk7XG4gICAgICBjb25zdCB0b0NvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woYCR7ZmllbGQubmFtZX1fdG9gKTtcblxuICAgICAgaWYgKGZpZWxkLnN0YXRlID09PSBDb21wb25lbnRTdGF0ZXMuRElTQUJMRUQpIHtcbiAgICAgICAgZnJvbUNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICB0b0NvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZnJvbUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIHRvQ29udHJvbC5lbmFibGUoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZmllbGQsXG4gICAgICAgIGZyb21Db250cm9sLFxuICAgICAgICB0b0NvbnRyb2wsXG4gICAgICAgIGNvbnRyb2w6IHVuZGVmaW5lZCwgLy8gUmVtb3ZlIGNvbnRyb2wgZm9yIE5VTUJFUl9GUk9NX1RPIGZpZWxkc1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChmaWVsZC5uYW1lKTtcbiAgICAgIGlmIChmaWVsZC5zdGF0ZSA9PT0gQ29tcG9uZW50U3RhdGVzLkRJU0FCTEVEKSB7XG4gICAgICAgIGNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29udHJvbC5lbmFibGUoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmZpZWxkLFxuICAgICAgICBjb250cm9sLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNBdEVuZE9mRm9ybSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNBdEVuZCh0aGlzLmVsZW1lbnRSZWYpO1xuICB9XG5cbiAgZ2V0IEZvcm0oKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtO1xuICB9XG5cbiAgZ2V0IEZvcm1TdGF0ZSgpOiB7IGZvcm06IEZvcm1Hcm91cDsgZGF0YTogRm9ybU1ldGFkYXRhIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBmb3JtOiB0aGlzLkZvcm0sXG4gICAgICBkYXRhOiB0aGlzLnByb3BzLFxuICAgIH07XG4gIH1cblxuICBnZXQgYWN0aW9ucygpOiBCdXR0b25NZXRhZGF0YVtdIHtcbiAgICBpZiAoIXRoaXMuZm9ybSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMucHJvcHMuYWN0aW9ucy5zdGF0ZSA9IENvbXBvbmVudFN0YXRlcy5FTkFCTEVEO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLnN0YXRlID09PSBDb21wb25lbnRTdGF0ZXMuV09SS0lORykge1xuICAgICAgdGhpcy5wcm9wcy5hY3Rpb25zLnN0YXRlID0gQ29tcG9uZW50U3RhdGVzLldPUktJTkc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvcHMuc3RhdGUgPT09IENvbXBvbmVudFN0YXRlcy5FTkFCTEVEKSB7XG4gICAgICB0aGlzLnByb3BzLmFjdGlvbnMuc3RhdGUgPSBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9wcy5zdGF0ZSA9PT0gQ29tcG9uZW50U3RhdGVzLkRJU0FCTEVEKSB7XG4gICAgICB0aGlzLnByb3BzLmFjdGlvbnMuc3RhdGUgPSBDb21wb25lbnRTdGF0ZXMuRElTQUJMRUQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIFt0aGlzLnByb3BzLmFjdGlvbnNdO1xuICB9XG59XG4iXX0=
|
|
329
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Zvcm0vZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUF1QyxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDM0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDeEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDOUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDckYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxD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ICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGlzQXRFbmQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvZG9tJztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IERpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXZpZGVyL2RpdmlkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2J1dHRvbi1ncm91cC9idXR0b24tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY2hlY2staW5wdXQvY2hlY2staW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1lbnRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jb21tZW50LWlucHV0L2NvbW1lbnQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9kYXRlLWlucHV0L2RhdGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEVtYWlsSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1haWwtaW5wdXQvZW1haWwtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9maWxlLWlucHV0L2ZpbGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEhpbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvaGludC9oaW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIb3VySW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvaG91ci1pbnB1dC9ob3VyLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOdW1iZXJJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOdW1iZXJGcm9tVG9Db21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvbnVtYmVyLWZyb20tdG8vbnVtYmVyLWZyb20tdG8uY29tcG9uZW50JztcbmltcG9ydCB7IFBhc3N3b3JkSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFBpbklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3Bpbi1pbnB1dC9waW4taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcmFkaW8taW5wdXQvcmFkaW8taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zZWxlY3Qtc2VhcmNoL3NlbGVjdC1zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IE11bHRpU2VsZWN0U2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL211bHRpLXNlbGVjdC1zZWFyY2gvbXVsdGktc2VsZWN0LXNlYXJjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uTWV0YWRhdGEsIENvbXBvbmVudFN0YXRlcywgRm9ybU1ldGFkYXRhLCBGb3JtU3VibWl0LCBJbnB1dE1ldGFkYXRhLCBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1mb3JtJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIERpc3BsYXlDb21wb25lbnQsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gICAgVGV4dElucHV0Q29tcG9uZW50LFxuICAgIENoZWNrSW5wdXRDb21wb25lbnQsXG4gICAgQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gICAgRGl2aWRlckNvbXBvbmVudCxcbiAgICBIaW50Q29tcG9uZW50LFxuICAgIENvbW1lbnRJbnB1dENvbXBvbmVudCxcbiAgICBEYXRlSW5wdXRDb21wb25lbnQsXG4gICAgRmlsZUlucHV0Q29tcG9uZW50LFxuICAgIEhvdXJJbnB1dENvbXBvbmVudCxcbiAgICBFbWFpbElucHV0Q29tcG9uZW50LFxuICAgIE51bWJlcklucHV0Q29tcG9uZW50LFxuICAgIE51bWJlckZyb21Ub0NvbXBvbmVudCxcbiAgICBSYWRpb0lucHV0Q29tcG9uZW50LFxuICAgIFBhc3N3b3JkSW5wdXRDb21wb25lbnQsXG4gICAgUGluSW5wdXRDb21wb25lbnQsXG4gICAgU2VsZWN0U2VhcmNoQ29tcG9uZW50LFxuICAgIE11bHRpU2VsZWN0U2VhcmNoQ29tcG9uZW50LFxuICAgIFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICA8dmFsLWRpc3BsYXlcbiAgICAgICAgICAqbmdJZj1cInByb3BzLm5hbWVcIlxuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBjb250ZW50OiBwcm9wcy5uYW1lLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIHNpemU6ICdsYXJnZScsXG4gICAgICAgICAgfVwiXG4gICAgICAgID48L3ZhbC1kaXNwbGF5PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiICpuZ0Zvcj1cImxldCBzIG9mIHByb3BzLnNlY3Rpb25zXCI+XG4gICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwieyBjb250ZW50OiBzLm5hbWUsIHNpemU6ICdsYXJnZScsIGNvbG9yOiAnJywgYm9sZDogZmFsc2UgfVwiPjwvdmFsLXRpdGxlPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dFwiICpuZ0Zvcj1cImxldCBmIG9mIHMuZmllbGRzXCI+XG4gICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IGYubGFiZWwsIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGJvbGQ6IGZhbHNlIH1cIj48L3ZhbC10aXRsZT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLlRFWFRcIj5cbiAgICAgICAgICAgICAgPHZhbC10ZXh0LWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC10ZXh0LWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5DSEVDS1wiPlxuICAgICAgICAgICAgICA8dmFsLWNoZWNrLWlucHV0PjwvdmFsLWNoZWNrLWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5DT01NRU5UXCI+XG4gICAgICAgICAgICAgIDx2YWwtY29tbWVudC1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtY29tbWVudC1pbnB1dD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYudHlwZSA9PT0gdHlwZXMuREFURVwiPlxuICAgICAgICAgICAgICA8dmFsLWRhdGUtaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWRhdGUtaW5wdXQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLkVNQUlMXCI+XG4gICAgICAgICAgICAgIDx2YWwtZW1haWwtaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWVtYWlsLWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5GSUxFXCI+XG4gICAgICAgICAgICAgIDx2YWwtZmlsZS1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtZmlsZS1pbnB1dD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYudHlwZSA9PT0gdHlwZXMuSE9VUlwiPlxuICAgICAgICAgICAgICA8dmFsLWhvdXItaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWhvdXItaW5wdXQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLk5VTUJFUlwiPlxuICAgICAgICAgICAgICA8dmFsLW51bWJlci1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtbnVtYmVyLWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5OVU1CRVJfRlJPTV9UT1wiPlxuICAgICAgICAgICAgICA8dmFsLW51bWJlci1mcm9tLXRvIFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1udW1iZXItZnJvbS10bz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYudHlwZSA9PT0gdHlwZXMuUEFTU1dPUkRcIj5cbiAgICAgICAgICAgICAgPHZhbC1wYXNzd29yZC1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtcGFzc3dvcmQtaW5wdXQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLlBJTl9DT0RFXCI+XG4gICAgICAgICAgICAgIDx2YWwtcGluLWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1waW4taW5wdXQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLlJBRElPXCI+XG4gICAgICAgICAgICAgIDx2YWwtcmFkaW8taW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLXJhZGlvLWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5TRUxFQ1RcIj5cbiAgICAgICAgICAgICAgPHZhbC1zZWxlY3QtaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLXNlbGVjdC1pbnB1dD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYudHlwZSA9PT0gdHlwZXMuU0VBUkNIX1NFTEVDVFwiPlxuICAgICAgICAgICAgICA8dmFsLXNlbGVjdC1zZWFyY2ggW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLXNlbGVjdC1zZWFyY2g+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLk1VTFRJX1NFTEVDVFwiPlxuICAgICAgICAgICAgICA8dmFsLW11bHRpLXNlbGVjdC1zZWFyY2ggW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLW11bHRpLXNlbGVjdC1zZWFyY2g+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDx2YWwtaGludCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtaGludD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8dmFsLWRpdmlkZXIgW3Byb3BzXT1cInsgZmlsbDogJ3NvbGlkJywgc2l6ZTogJ21lZGl1bScsIGNvbG9yOiAnbWVkaXVtJyB9XCI+PC92YWwtZGl2aWRlcj5cbiAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dmFsLWJ1dHRvbi1ncm91cFxuICAgICAgICAgIFtwcm9wc109XCJ7IGJ1dHRvbnM6IGFjdGlvbnMsIHBvc2l0aW9uOiAnY2VudGVyJywgY29sdW1uZWQ6IGZhbHNlIH1cIlxuICAgICAgICAgIChvbkNsaWNrKT1cInN1Ym1pdEhhbmRsZXIoJGV2ZW50KVwiXG4gICAgICAgID48L3ZhbC1idXR0b24tZ3JvdXA+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIHByb3BzOiBGb3JtTWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpXG4gIG9uU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtU3VibWl0PigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkludmFsaWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uU2VsZWN0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IGZpZWxkOiBzdHJpbmc7IHZhbHVlOiBhbnkgfT4oKTtcblxuICBmb3JtOiBGb3JtR3JvdXA7XG4gIHR5cGVzID0gSW5wdXRUeXBlO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBmb3JtQ29udHJvbHMgPSB7fTtcbiAgICB0aGlzLnByb3BzLnNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XG4gICAgICBzZWN0aW9uLmZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IHRoaXMudHlwZXMuTlVNQkVSX0ZST01fVE8pIHtcbiAgICAgICAgICAvLyBDcmVhciBkb3MgY29udHJvbGVzIHBhcmEgY2FtcG9zIE5VTUJFUl9GUk9NX1RPXG4gICAgICAgICAgZm9ybUNvbnRyb2xzW2Ake2ZpZWxkLm5hbWV9X2Zyb21gXSA9IFt1bmRlZmluZWQsIGZpZWxkLnZhbGlkYXRvcnMgfHwgW11dO1xuICAgICAgICAgIGZvcm1Db250cm9sc1tgJHtmaWVsZC5uYW1lfV90b2BdID0gW3VuZGVmaW5lZCwgZmllbGQudmFsaWRhdG9ycyB8fCBbXV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9ybUNvbnRyb2xzW2ZpZWxkLm5hbWVdID0gW3VuZGVmaW5lZCwgZmllbGQudmFsaWRhdG9ycyB8fCBbXV07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoZm9ybUNvbnRyb2xzKTtcbiAgICB0aGlzLnByb3BzLnNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XG4gICAgICBzZWN0aW9uLmZpZWxkc1xuICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgIHggPT5cbiAgICAgICAgICAgIHgudHlwZSA9PT0gdGhpcy50eXBlcy5TRUxFQ1QgfHxcbiAgICAgICAgICAgIHgudHlwZSA9PT0gdGhpcy50eXBlcy5URVhUIHx8XG4gICAgICAgICAgICB4LnR5cGUgPT09IHRoaXMudHlwZXMuU0VBUkNIX1NFTEVDVCB8fFxuICAgICAgICAgICAgeC50eXBlID09PSB0aGlzLnR5cGVzLk1VTFRJX1NFTEVDVFxuICAgICAgICApXG4gICAgICAgIC5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICB0aGlzLnRyYWNrU2VsZWN0Q2hhbmdlcyhmaWVsZC5uYW1lKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyBDbGVhbnVwIHN1YnNjcmlwdGlvbnMgdG8gYXZvaWQgbWVtb3J5IGxlYWtzXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHRyYWNrU2VsZWN0Q2hhbmdlcyhmaWVsZE5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woZmllbGROYW1lKTtcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBjb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgdGhpcy5vblNlbGVjdENoYW5nZS5lbWl0KHsgZmllbGQ6IGZpZWxkTmFtZSwgdmFsdWUgfSk7XG4gICAgfSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcbiAgfVxuXG4gIGFzeW5jIHN1Ym1pdEhhbmRsZXIodG9rZW4/OiBzdHJpbmcpIHtcbiAgICB0aGlzLm9uU3VibWl0LmVtaXQoeyBmaWVsZHM6IHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpLCB0b2tlbiB9KTtcbiAgfVxuXG4gIGdldENvbnRyb2woZmllbGQ6IHN0cmluZyk6IEZvcm1Db250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5Gb3JtLmdldChmaWVsZCkgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICBnZXRGaWVsZFByb3AoZmllbGQ6IElucHV0TWV0YWRhdGEpOiBJbnB1dE1ldGFkYXRhIHtcbiAgICBmaWVsZC50b2tlbjtcbiAgICBpZiAoIWZpZWxkLnRva2VuKSB7XG4gICAgICBmaWVsZC50b2tlbiA9IGBpbnB1dC0ke2ZpZWxkLnR5cGV9LSR7ZmllbGQubmFtZX1gO1xuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSB0aGlzLnR5cGVzLk5VTUJFUl9GUk9NX1RPKSB7XG4gICAgICBjb25zdCBmcm9tQ29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChgJHtmaWVsZC5uYW1lfV9mcm9tYCk7XG4gICAgICBjb25zdCB0b0NvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woYCR7ZmllbGQubmFtZX1fdG9gKTtcblxuICAgICAgaWYgKGZpZWxkLnN0YXRlID09PSBDb21wb25lbnRTdGF0ZXMuRElTQUJMRUQpIHtcbiAgICAgICAgZnJvbUNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICB0b0NvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZnJvbUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIHRvQ29udHJvbC5lbmFibGUoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZmllbGQsXG4gICAgICAgIGZyb21Db250cm9sLFxuICAgICAgICB0b0NvbnRyb2wsXG4gICAgICAgIGNvbnRyb2w6IHVuZGVmaW5lZCwgLy8gUmVtb3ZlIGNvbnRyb2wgZm9yIE5VTUJFUl9GUk9NX1RPIGZpZWxkc1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChmaWVsZC5uYW1lKTtcbiAgICAgIGlmIChmaWVsZC5zdGF0ZSA9PT0gQ29tcG9uZW50U3RhdGVzLkRJU0FCTEVEKSB7XG4gICAgICAgIGNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29udHJvbC5lbmFibGUoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmZpZWxkLFxuICAgICAgICBjb250cm9sLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNBdEVuZE9mRm9ybSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNBdEVuZCh0aGlzLmVsZW1lbnRSZWYpO1xuICB9XG5cbiAgZ2V0IEZvcm0oKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtO1xuICB9XG5cbiAgZ2V0IEZvcm1TdGF0ZSgpOiB7IGZvcm06IEZvcm1Hcm91cDsgZGF0YTogRm9ybU1ldGFkYXRhIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBmb3JtOiB0aGlzLkZvcm0sXG4gICAgICBkYXRhOiB0aGlzLnByb3BzLFxuICAgIH07XG4gIH1cblxuICBnZXQgYWN0aW9ucygpOiBCdXR0b25NZXRhZGF0YVtdIHtcbiAgICBpZiAoIXRoaXMuZm9ybSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMucHJvcHMuYWN0aW9ucy5zdGF0ZSA9IENvbXBvbmVudFN0YXRlcy5FTkFCTEVEO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLnN0YXRlID09PSBDb21wb25lbnRTdGF0ZXMuV09SS0lORykge1xuICAgICAgdGhpcy5wcm9wcy5hY3Rpb25zLnN0YXRlID0gQ29tcG9uZW50U3RhdGVzLldPUktJTkc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvcHMuc3RhdGUgPT09IENvbXBvbmVudFN0YXRlcy5FTkFCTEVEKSB7XG4gICAgICB0aGlzLnByb3BzLmFjdGlvbnMuc3RhdGUgPSBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9wcy5zdGF0ZSA9PT0gQ29tcG9uZW50U3RhdGVzLkRJU0FCTEVEKSB7XG4gICAgICB0aGlzLnByb3BzLmFjdGlvbnMuc3RhdGUgPSBDb21wb25lbnRTdGF0ZXMuRElTQUJMRUQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIFt0aGlzLnByb3BzLmFjdGlvbnNdO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, inject, Input } from '@angular/core';
|
|
3
|
+
import { IonCol, IonGrid, IonRow } from '@ionic/angular/standalone';
|
|
4
|
+
import { BannerComponent } from '../banner/banner.component';
|
|
5
|
+
import { ThemeService } from '../../../services/theme.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common";
|
|
8
|
+
/**
|
|
9
|
+
* val-fun-header
|
|
10
|
+
*
|
|
11
|
+
* A decorative header component with flexible background options,
|
|
12
|
+
* optional logo, and integrated banner content. Supports dark mode,
|
|
13
|
+
* gradients, images with overlays, and various styling options.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* <val-fun-header
|
|
17
|
+
* [props]="{
|
|
18
|
+
* image: '/assets/logo.png',
|
|
19
|
+
* background: 'primary',
|
|
20
|
+
* gradient: true,
|
|
21
|
+
* content: {
|
|
22
|
+
* title: 'Welcome',
|
|
23
|
+
* description: 'Get started with our platform'
|
|
24
|
+
* },
|
|
25
|
+
* rounded: true,
|
|
26
|
+
* shadowed: true
|
|
27
|
+
* }"
|
|
28
|
+
* ></val-fun-header>
|
|
29
|
+
*
|
|
30
|
+
* @input props - Header configuration
|
|
31
|
+
*/
|
|
32
|
+
export class FunHeaderComponent {
|
|
33
|
+
constructor() {
|
|
34
|
+
this.theme = inject(ThemeService);
|
|
35
|
+
/**
|
|
36
|
+
* Header configuration.
|
|
37
|
+
*/
|
|
38
|
+
this.props = {
|
|
39
|
+
content: {
|
|
40
|
+
color: 'primary',
|
|
41
|
+
bordered: false,
|
|
42
|
+
closable: false,
|
|
43
|
+
mode: 'column',
|
|
44
|
+
alignment: 'center',
|
|
45
|
+
content: {
|
|
46
|
+
position: 'center',
|
|
47
|
+
title: { content: '', size: 'medium', color: 'light', bold: true },
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Check if the image is a CSS variable (starts with --)
|
|
54
|
+
*/
|
|
55
|
+
isImageVariable(image) {
|
|
56
|
+
return image?.startsWith('--') || false;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get the image source, handling CSS variables
|
|
60
|
+
*/
|
|
61
|
+
getImageSrc() {
|
|
62
|
+
if (!this.props.image)
|
|
63
|
+
return '';
|
|
64
|
+
return this.isImageVariable(this.props.image) ? '' : this.props.image;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Generate header background styles
|
|
68
|
+
* Supports: images, gradients, colors, CSS variables, and dark mode
|
|
69
|
+
*/
|
|
70
|
+
headerStyle() {
|
|
71
|
+
const style = {};
|
|
72
|
+
const isDark = this.theme.IsDark;
|
|
73
|
+
const background = isDark ? this.props.backgroundDark || this.props.background : this.props.background;
|
|
74
|
+
if (!background) {
|
|
75
|
+
// Default gradient if no background specified
|
|
76
|
+
style['background'] = isDark
|
|
77
|
+
? 'linear-gradient(180deg, var(--ion-background-color) 12%, var(--ion-color-dark) 80%)'
|
|
78
|
+
: 'linear-gradient(180deg, var(--ion-background-color) 12%, var(--ion-color-secondary) 90%)';
|
|
79
|
+
return style;
|
|
80
|
+
}
|
|
81
|
+
// If gradient is enabled, create automatic gradient from --ion-background-color to the specified color
|
|
82
|
+
if (this.props.gradient) {
|
|
83
|
+
const targetColor = this.resolveBackgroundColor(background);
|
|
84
|
+
const gradientPercentage = isDark ? '80%' : '90%';
|
|
85
|
+
style['background'] = `linear-gradient(180deg, var(--ion-background-color) 12%, ${targetColor} ${gradientPercentage})`;
|
|
86
|
+
return style;
|
|
87
|
+
}
|
|
88
|
+
// Handle different background types
|
|
89
|
+
if (this.isBackgroundImage(background)) {
|
|
90
|
+
this.applyImageBackground(style, background);
|
|
91
|
+
}
|
|
92
|
+
else if (this.isGradient(background)) {
|
|
93
|
+
style['background'] = background;
|
|
94
|
+
}
|
|
95
|
+
else if (this.isCSSVariable(background)) {
|
|
96
|
+
style['background'] = `var(${background})`;
|
|
97
|
+
}
|
|
98
|
+
else if (this.isColorValue(background)) {
|
|
99
|
+
style['background'] = background;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
// Assume it's an Ionic color name
|
|
103
|
+
style['background'] = `var(--ion-color-${background})`;
|
|
104
|
+
}
|
|
105
|
+
return style;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Resolve background color for gradient generation
|
|
109
|
+
*/
|
|
110
|
+
resolveBackgroundColor(background) {
|
|
111
|
+
if (this.isCSSVariable(background)) {
|
|
112
|
+
return `var(${background})`;
|
|
113
|
+
}
|
|
114
|
+
else if (this.isColorValue(background)) {
|
|
115
|
+
return background;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
// Assume it's an Ionic color name
|
|
119
|
+
return `var(--ion-color-${background})`;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Check if background is an image URL
|
|
124
|
+
*/
|
|
125
|
+
isBackgroundImage(bg) {
|
|
126
|
+
const lower = bg.trim().toLowerCase();
|
|
127
|
+
return (lower.includes('.jpg') ||
|
|
128
|
+
lower.includes('.png') ||
|
|
129
|
+
lower.includes('.jpeg') ||
|
|
130
|
+
lower.includes('.webp') ||
|
|
131
|
+
lower.includes('.svg') ||
|
|
132
|
+
lower.startsWith('url('));
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Check if background is a gradient
|
|
136
|
+
*/
|
|
137
|
+
isGradient(bg) {
|
|
138
|
+
return bg.includes('linear-gradient') || bg.includes('radial-gradient') || bg.includes('conic-gradient');
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Check if background is a CSS variable
|
|
142
|
+
*/
|
|
143
|
+
isCSSVariable(bg) {
|
|
144
|
+
return bg.startsWith('--');
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Check if background is a direct color value
|
|
148
|
+
*/
|
|
149
|
+
isColorValue(bg) {
|
|
150
|
+
return bg.startsWith('#') || bg.startsWith('rgb') || bg.startsWith('hsl');
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Apply image background with optional overlay
|
|
154
|
+
*/
|
|
155
|
+
applyImageBackground(style, background) {
|
|
156
|
+
const imageUrl = background.startsWith('url(') ? background : `url(${background})`;
|
|
157
|
+
if (this.props.overlay) {
|
|
158
|
+
const opacity = this.props.overlayOpacity || 0.3;
|
|
159
|
+
const isDark = this.theme.IsDark;
|
|
160
|
+
const overlayColor = isDark ? `rgba(0,0,0,${opacity})` : `rgba(255,255,255,${opacity})`;
|
|
161
|
+
style['backgroundImage'] = `linear-gradient(0deg, ${overlayColor}, ${overlayColor}), ${imageUrl}`;
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
style['backgroundImage'] = imageUrl;
|
|
165
|
+
}
|
|
166
|
+
style['backgroundSize'] = 'cover';
|
|
167
|
+
style['backgroundPosition'] = 'center';
|
|
168
|
+
style['backgroundRepeat'] = 'no-repeat';
|
|
169
|
+
}
|
|
170
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FunHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
171
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FunHeaderComponent, isStandalone: true, selector: "val-fun-header", inputs: { props: "props" }, ngImport: i0, template: `
|
|
172
|
+
<ion-grid>
|
|
173
|
+
<ion-row
|
|
174
|
+
class="ion-justify-content-center header-ground"
|
|
175
|
+
[class.bordered]="props.bordered"
|
|
176
|
+
[class.shadowed]="props.shadowed"
|
|
177
|
+
[class.rounded]="props.rounded"
|
|
178
|
+
[ngStyle]="headerStyle()"
|
|
179
|
+
>
|
|
180
|
+
<ion-col size="12" size-md="12" size-lg="8">
|
|
181
|
+
<div class="fun-image-container" *ngIf="props.image">
|
|
182
|
+
<img
|
|
183
|
+
[src]="getImageSrc()"
|
|
184
|
+
[ngStyle]="{
|
|
185
|
+
content: isImageVariable(props.image) ? 'var(' + props.image + ')' : undefined
|
|
186
|
+
}"
|
|
187
|
+
alt="header logo"
|
|
188
|
+
/>
|
|
189
|
+
</div>
|
|
190
|
+
<val-banner [props]="props.content" />
|
|
191
|
+
</ion-col>
|
|
192
|
+
</ion-row>
|
|
193
|
+
</ion-grid>
|
|
194
|
+
`, isInline: true, styles: [".fun-image-container{margin:16px 0;display:flex;justify-content:flex-start}@media (min-width: 768px){.fun-image-container{justify-content:center}}.fun-image-container img{width:7.5rem}@media (min-width: 768px){.fun-image-container img{width:11.25rem}}.header-ground{padding:32px 24px;background-size:cover;background-position:center;background-repeat:no-repeat}.rounded{border-radius:0 0 32px 32px}.shadowed{box-shadow:0 2px 8px #0000001a}.bordered{border:.0625rem solid var(--ion-color-medium)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: BannerComponent, selector: "val-banner", inputs: ["props"], outputs: ["onClick", "onClose"] }, { kind: "component", type: IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: IonRow, selector: "ion-row" }, { kind: "component", type: IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }] }); }
|
|
195
|
+
}
|
|
196
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FunHeaderComponent, decorators: [{
|
|
197
|
+
type: Component,
|
|
198
|
+
args: [{ selector: 'val-fun-header', standalone: true, imports: [CommonModule, BannerComponent, IonGrid, IonRow, IonCol], template: `
|
|
199
|
+
<ion-grid>
|
|
200
|
+
<ion-row
|
|
201
|
+
class="ion-justify-content-center header-ground"
|
|
202
|
+
[class.bordered]="props.bordered"
|
|
203
|
+
[class.shadowed]="props.shadowed"
|
|
204
|
+
[class.rounded]="props.rounded"
|
|
205
|
+
[ngStyle]="headerStyle()"
|
|
206
|
+
>
|
|
207
|
+
<ion-col size="12" size-md="12" size-lg="8">
|
|
208
|
+
<div class="fun-image-container" *ngIf="props.image">
|
|
209
|
+
<img
|
|
210
|
+
[src]="getImageSrc()"
|
|
211
|
+
[ngStyle]="{
|
|
212
|
+
content: isImageVariable(props.image) ? 'var(' + props.image + ')' : undefined
|
|
213
|
+
}"
|
|
214
|
+
alt="header logo"
|
|
215
|
+
/>
|
|
216
|
+
</div>
|
|
217
|
+
<val-banner [props]="props.content" />
|
|
218
|
+
</ion-col>
|
|
219
|
+
</ion-row>
|
|
220
|
+
</ion-grid>
|
|
221
|
+
`, styles: [".fun-image-container{margin:16px 0;display:flex;justify-content:flex-start}@media (min-width: 768px){.fun-image-container{justify-content:center}}.fun-image-container img{width:7.5rem}@media (min-width: 768px){.fun-image-container img{width:11.25rem}}.header-ground{padding:32px 24px;background-size:cover;background-position:center;background-repeat:no-repeat}.rounded{border-radius:0 0 32px 32px}.shadowed{box-shadow:0 2px 8px #0000001a}.bordered{border:.0625rem solid var(--ion-color-medium)}\n"] }]
|
|
222
|
+
}], propDecorators: { props: [{
|
|
223
|
+
type: Input
|
|
224
|
+
}] } });
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Z1bi1oZWFkZXIvZnVuLWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUFHL0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBK0JILE1BQU0sT0FBTyxrQkFBa0I7SUE5Qi9CO1FBK0JVLFVBQUssR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFckM7O1dBRUc7UUFDTSxVQUFLLEdBQXNCO1lBQ2xDLE9BQU8sRUFBRTtnQkFDUCxLQUFLLEVBQUUsU0FBUztnQkFDaEIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsU0FBUyxFQUFFLFFBQVE7Z0JBQ25CLE9BQU8sRUFBRTtvQkFDUCxRQUFRLEVBQUUsUUFBUTtvQkFDbEIsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtpQkFDbkU7YUFDRjtTQUNGLENBQUM7S0FpSUg7SUEvSEM7O09BRUc7SUFDSCxlQUFlLENBQUMsS0FBYztRQUM1QixP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bmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkNvbCwgSW9uR3JpZCwgSW9uUm93IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBCYW5uZXJDb21wb25lbnQgfSBmcm9tICcuLi9iYW5uZXIvYmFubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZ1bkhlYWRlck1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogdmFsLWZ1bi1oZWFkZXJcbiAqXG4gKiBBIGRlY29yYXRpdmUgaGVhZGVyIGNvbXBvbmVudCB3aXRoIGZsZXhpYmxlIGJhY2tncm91bmQgb3B0aW9ucyxcbiAqIG9wdGlvbmFsIGxvZ28sIGFuZCBpbnRlZ3JhdGVkIGJhbm5lciBjb250ZW50LiBTdXBwb3J0cyBkYXJrIG1vZGUsXG4gKiBncmFkaWVudHMsIGltYWdlcyB3aXRoIG92ZXJsYXlzLCBhbmQgdmFyaW91cyBzdHlsaW5nIG9wdGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtZnVuLWhlYWRlclxuICogICBbcHJvcHNdPVwie1xuICogICAgIGltYWdlOiAnL2Fzc2V0cy9sb2dvLnBuZycsXG4gKiAgICAgYmFja2dyb3VuZDogJ3ByaW1hcnknLFxuICogICAgIGdyYWRpZW50OiB0cnVlLFxuICogICAgIGNvbnRlbnQ6IHtcbiAqICAgICAgIHRpdGxlOiAnV2VsY29tZScsXG4gKiAgICAgICBkZXNjcmlwdGlvbjogJ0dldCBzdGFydGVkIHdpdGggb3VyIHBsYXRmb3JtJ1xuICogICAgIH0sXG4gKiAgICAgcm91bmRlZDogdHJ1ZSxcbiAqICAgICBzaGFkb3dlZDogdHJ1ZVxuICogICB9XCJcbiAqID48L3ZhbC1mdW4taGVhZGVyPlxuICpcbiAqIEBpbnB1dCBwcm9wcyAtIEhlYWRlciBjb25maWd1cmF0aW9uXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1mdW4taGVhZGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQmFubmVyQ29tcG9uZW50LCBJb25HcmlkLCBJb25Sb3csIElvbkNvbF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1ncmlkPlxuICAgICAgPGlvbi1yb3dcbiAgICAgICAgY2xhc3M9XCJpb24tanVzdGlmeS1jb250ZW50LWNlbnRlciBoZWFkZXItZ3JvdW5kXCJcbiAgICAgICAgW2NsYXNzLmJvcmRlcmVkXT1cInByb3BzLmJvcmRlcmVkXCJcbiAgICAgICAgW2NsYXNzLnNoYWRvd2VkXT1cInByb3BzLnNoYWRvd2VkXCJcbiAgICAgICAgW2NsYXNzLnJvdW5kZWRdPVwicHJvcHMucm91bmRlZFwiXG4gICAgICAgIFtuZ1N0eWxlXT1cImhlYWRlclN0eWxlKClcIlxuICAgICAgPlxuICAgICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIiBzaXplLW1kPVwiMTJcIiBzaXplLWxnPVwiOFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdW4taW1hZ2UtY29udGFpbmVyXCIgKm5nSWY9XCJwcm9wcy5pbWFnZVwiPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICBbc3JjXT1cImdldEltYWdlU3JjKClcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgY29udGVudDogaXNJbWFnZVZhcmlhYmxlKHByb3BzLmltYWdlKSA/ICd2YXIoJyArIHByb3BzLmltYWdlICsgJyknIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICBhbHQ9XCJoZWFkZXIgbG9nb1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDx2YWwtYmFubmVyIFtwcm9wc109XCJwcm9wcy5jb250ZW50XCIgLz5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgPC9pb24tcm93PlxuICAgIDwvaW9uLWdyaWQ+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2Z1bi1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRnVuSGVhZGVyQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSB0aGVtZSA9IGluamVjdChUaGVtZVNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBIZWFkZXIgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIEBJbnB1dCgpIHByb3BzOiBGdW5IZWFkZXJNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50OiB7XG4gICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgYm9yZGVyZWQ6IGZhbHNlLFxuICAgICAgY2xvc2FibGU6IGZhbHNlLFxuICAgICAgbW9kZTogJ2NvbHVtbicsXG4gICAgICBhbGlnbm1lbnQ6ICdjZW50ZXInLFxuICAgICAgY29udGVudDoge1xuICAgICAgICBwb3NpdGlvbjogJ2NlbnRlcicsXG4gICAgICAgIHRpdGxlOiB7IGNvbnRlbnQ6ICcnLCBzaXplOiAnbWVkaXVtJywgY29sb3I6ICdsaWdodCcsIGJvbGQ6IHRydWUgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhlIGltYWdlIGlzIGEgQ1NTIHZhcmlhYmxlIChzdGFydHMgd2l0aCAtLSlcbiAgICovXG4gIGlzSW1hZ2VWYXJpYWJsZShpbWFnZT86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpbWFnZT8uc3RhcnRzV2l0aCgnLS0nKSB8fCBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGltYWdlIHNvdXJjZSwgaGFuZGxpbmcgQ1NTIHZhcmlhYmxlc1xuICAgKi9cbiAgZ2V0SW1hZ2VTcmMoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMucHJvcHMuaW1hZ2UpIHJldHVybiAnJztcbiAgICByZXR1cm4gdGhpcy5pc0ltYWdlVmFyaWFibGUodGhpcy5wcm9wcy5pbWFnZSkgPyAnJyA6IHRoaXMucHJvcHMuaW1hZ2U7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgaGVhZGVyIGJhY2tncm91bmQgc3R5bGVzXG4gICAqIFN1cHBvcnRzOiBpbWFnZXMsIGdyYWRpZW50cywgY29sb3JzLCBDU1MgdmFyaWFibGVzLCBhbmQgZGFyayBtb2RlXG4gICAqL1xuICBoZWFkZXJTdHlsZSgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBjb25zdCBzdHlsZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgIGNvbnN0IGlzRGFyayA9IHRoaXMudGhlbWUuSXNEYXJrO1xuICAgIGNvbnN0IGJhY2tncm91bmQgPSBpc0RhcmsgPyB0aGlzLnByb3BzLmJhY2tncm91bmREYXJrIHx8IHRoaXMucHJvcHMuYmFja2dyb3VuZCA6IHRoaXMucHJvcHMuYmFja2dyb3VuZDtcblxuICAgIGlmICghYmFja2dyb3VuZCkge1xuICAgICAgLy8gRGVmYXVsdCBncmFkaWVudCBpZiBubyBiYWNrZ3JvdW5kIHNwZWNpZmllZFxuICAgICAgc3R5bGVbJ2JhY2tncm91bmQnXSA9IGlzRGFya1xuICAgICAgICA/ICdsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCB2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvcikgMTIlLCB2YXIoLS1pb24tY29sb3ItZGFyaykgODAlKSdcbiAgICAgICAgOiAnbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IpIDEyJSwgdmFyKC0taW9uLWNvbG9yLXNlY29uZGFyeSkgOTAlKSc7XG4gICAgICByZXR1cm4gc3R5bGU7XG4gICAgfVxuXG4gICAgLy8gSWYgZ3JhZGllbnQgaXMgZW5hYmxlZCwgY3JlYXRlIGF1dG9tYXRpYyBncmFkaWVudCBmcm9tIC0taW9uLWJhY2tncm91bmQtY29sb3IgdG8gdGhlIHNwZWNpZmllZCBjb2xvclxuICAgIGlmICh0aGlzLnByb3BzLmdyYWRpZW50KSB7XG4gICAgICBjb25zdCB0YXJnZXRDb2xvciA9IHRoaXMucmVzb2x2ZUJhY2tncm91bmRDb2xvcihiYWNrZ3JvdW5kKTtcbiAgICAgIGNvbnN0IGdyYWRpZW50UGVyY2VudGFnZSA9IGlzRGFyayA/ICc4MCUnIDogJzkwJSc7XG4gICAgICBzdHlsZVsnYmFja2dyb3VuZCddID0gYGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yKSAxMiUsICR7dGFyZ2V0Q29sb3J9ICR7Z3JhZGllbnRQZXJjZW50YWdlfSlgO1xuICAgICAgcmV0dXJuIHN0eWxlO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBkaWZmZXJlbnQgYmFja2dyb3VuZCB0eXBlc1xuICAgIGlmICh0aGlzLmlzQmFja2dyb3VuZEltYWdlKGJhY2tncm91bmQpKSB7XG4gICAgICB0aGlzLmFwcGx5SW1hZ2VCYWNrZ3JvdW5kKHN0eWxlLCBiYWNrZ3JvdW5kKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNHcmFkaWVudChiYWNrZ3JvdW5kKSkge1xuICAgICAgc3R5bGVbJ2JhY2tncm91bmQnXSA9IGJhY2tncm91bmQ7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzQ1NTVmFyaWFibGUoYmFja2dyb3VuZCkpIHtcbiAgICAgIHN0eWxlWydiYWNrZ3JvdW5kJ10gPSBgdmFyKCR7YmFja2dyb3VuZH0pYDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNDb2xvclZhbHVlKGJhY2tncm91bmQpKSB7XG4gICAgICBzdHlsZVsnYmFja2dyb3VuZCddID0gYmFja2dyb3VuZDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQXNzdW1lIGl0J3MgYW4gSW9uaWMgY29sb3IgbmFtZVxuICAgICAgc3R5bGVbJ2JhY2tncm91bmQnXSA9IGB2YXIoLS1pb24tY29sb3ItJHtiYWNrZ3JvdW5kfSlgO1xuICAgIH1cblxuICAgIHJldHVybiBzdHlsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlIGJhY2tncm91bmQgY29sb3IgZm9yIGdyYWRpZW50IGdlbmVyYXRpb25cbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZUJhY2tncm91bmRDb2xvcihiYWNrZ3JvdW5kOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzQ1NTVmFyaWFibGUoYmFja2dyb3VuZCkpIHtcbiAgICAgIHJldHVybiBgdmFyKCR7YmFja2dyb3VuZH0pYDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNDb2xvclZhbHVlKGJhY2tncm91bmQpKSB7XG4gICAgICByZXR1cm4gYmFja2dyb3VuZDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQXNzdW1lIGl0J3MgYW4gSW9uaWMgY29sb3IgbmFtZVxuICAgICAgcmV0dXJuIGB2YXIoLS1pb24tY29sb3ItJHtiYWNrZ3JvdW5kfSlgO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBiYWNrZ3JvdW5kIGlzIGFuIGltYWdlIFVSTFxuICAgKi9cbiAgcHJpdmF0ZSBpc0JhY2tncm91bmRJbWFnZShiZzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbG93ZXIgPSBiZy50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gKFxuICAgICAgbG93ZXIuaW5jbHVkZXMoJy5qcGcnKSB8fFxuICAgICAgbG93ZXIuaW5jbHVkZXMoJy5wbmcnKSB8fFxuICAgICAgbG93ZXIuaW5jbHVkZXMoJy5qcGVnJykgfHxcbiAgICAgIGxvd2VyLmluY2x1ZGVzKCcud2VicCcpIHx8XG4gICAgICBsb3dlci5pbmNsdWRlcygnLnN2ZycpIHx8XG4gICAgICBsb3dlci5zdGFydHNXaXRoKCd1cmwoJylcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGJhY2tncm91bmQgaXMgYSBncmFkaWVudFxuICAgKi9cbiAgcHJpdmF0ZSBpc0dyYWRpZW50KGJnOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gYmcuaW5jbHVkZXMoJ2xpbmVhci1ncmFkaWVudCcpIHx8IGJnLmluY2x1ZGVzKCdyYWRpYWwtZ3JhZGllbnQnKSB8fCBiZy5pbmNsdWRlcygnY29uaWMtZ3JhZGllbnQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBiYWNrZ3JvdW5kIGlzIGEgQ1NTIHZhcmlhYmxlXG4gICAqL1xuICBwcml2YXRlIGlzQ1NTVmFyaWFibGUoYmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBiZy5zdGFydHNXaXRoKCctLScpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGJhY2tncm91bmQgaXMgYSBkaXJlY3QgY29sb3IgdmFsdWVcbiAgICovXG4gIHByaXZhdGUgaXNDb2xvclZhbHVlKGJnOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gYmcuc3RhcnRzV2l0aCgnIycpIHx8IGJnLnN0YXJ0c1dpdGgoJ3JnYicpIHx8IGJnLnN0YXJ0c1dpdGgoJ2hzbCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGx5IGltYWdlIGJhY2tncm91bmQgd2l0aCBvcHRpb25hbCBvdmVybGF5XG4gICAqL1xuICBwcml2YXRlIGFwcGx5SW1hZ2VCYWNrZ3JvdW5kKHN0eWxlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBiYWNrZ3JvdW5kOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBpbWFnZVVybCA9IGJhY2tncm91bmQuc3RhcnRzV2l0aCgndXJsKCcpID8gYmFja2dyb3VuZCA6IGB1cmwoJHtiYWNrZ3JvdW5kfSlgO1xuXG4gICAgaWYgKHRoaXMucHJvcHMub3ZlcmxheSkge1xuICAgICAgY29uc3Qgb3BhY2l0eSA9IHRoaXMucHJvcHMub3ZlcmxheU9wYWNpdHkgfHwgMC4zO1xuICAgICAgY29uc3QgaXNEYXJrID0gdGhpcy50aGVtZS5Jc0Rhcms7XG4gICAgICBjb25zdCBvdmVybGF5Q29sb3IgPSBpc0RhcmsgPyBgcmdiYSgwLDAsMCwke29wYWNpdHl9KWAgOiBgcmdiYSgyNTUsMjU1LDI1NSwke29wYWNpdHl9KWA7XG5cbiAgICAgIHN0eWxlWydiYWNrZ3JvdW5kSW1hZ2UnXSA9IGBsaW5lYXItZ3JhZGllbnQoMGRlZywgJHtvdmVybGF5Q29sb3J9LCAke292ZXJsYXlDb2xvcn0pLCAke2ltYWdlVXJsfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlWydiYWNrZ3JvdW5kSW1hZ2UnXSA9IGltYWdlVXJsO1xuICAgIH1cblxuICAgIHN0eWxlWydiYWNrZ3JvdW5kU2l6ZSddID0gJ2NvdmVyJztcbiAgICBzdHlsZVsnYmFja2dyb3VuZFBvc2l0aW9uJ10gPSAnY2VudGVyJztcbiAgICBzdHlsZVsnYmFja2dyb3VuZFJlcGVhdCddID0gJ25vLXJlcGVhdCc7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Z1bi1oZWFkZXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhbm5lck1ldGFkYXRhIH0gZnJvbSAnLi4vYmFubmVyL3R5cGVzJztcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciB0aGUgZnVuIGhlYWRlciBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuSGVhZGVyTWV0YWRhdGEge1xuICAvKiogT3B0aW9uYWwgdG9rZW4gZm9yIHRyYWNraW5nL2FuYWx5dGljcyAqL1xuICB0b2tlbj86IHN0cmluZztcbiAgLyoqIExvZ28gaW1hZ2UgcGF0aCBvciBDU1MgdmFyaWFibGUgKGUuZy4sICctLW15LWxvZ28nKSAqL1xuICBpbWFnZT86IHN0cmluZztcbiAgLyoqIEJhY2tncm91bmQgaW1hZ2UgVVJMLCBncmFkaWVudCwgY29sb3IsIG9yIENTUyB2YXJpYWJsZSAqL1xuICBiYWNrZ3JvdW5kPzogc3RyaW5nO1xuICAvKiogRGFyayBtb2RlIGJhY2tncm91bmQgKG9wdGlvbmFsLCBmYWxscyBiYWNrIHRvIGJhY2tncm91bmQpICovXG4gIGJhY2tncm91bmREYXJrPzogc3RyaW5nO1xuICAvKiogQ3JlYXRlIGF1dG9tYXRpYyBncmFkaWVudCBmcm9tIC0taW9uLWJhY2tncm91bmQtY29sb3IgdG8gYmFja2dyb3VuZCBjb2xvciAqL1xuICBncmFkaWVudD86IGJvb2xlYW47XG4gIC8qKiBBZGQgb3ZlcmxheSBmb3IgYmV0dGVyIHRleHQgY29udHJhc3Qgb24gaW1hZ2VzICovXG4gIG92ZXJsYXk/OiBib29sZWFuO1xuICAvKiogT3ZlcmxheSBvcGFjaXR5ICgwLTEsIGRlZmF1bHQ6IDAuMykgKi9cbiAgb3ZlcmxheU9wYWNpdHk/OiBudW1iZXI7XG4gIC8qKiBCYW5uZXIgY29udGVudCBjb25maWd1cmF0aW9uICovXG4gIGNvbnRlbnQ6IEJhbm5lck1ldGFkYXRhO1xuICAvKiogQWRkIGJvcmRlciBhcm91bmQgdGhlIGhlYWRlciAqL1xuICBib3JkZXJlZD86IGJvb2xlYW47XG4gIC8qKiBBZGQgYm94IHNoYWRvdyB0byB0aGUgaGVhZGVyICovXG4gIHNoYWRvd2VkPzogYm9vbGVhbjtcbiAgLyoqIEFkZCByb3VuZGVkIGJvdHRvbSBjb3JuZXJzICovXG4gIHJvdW5kZWQ/OiBib29sZWFuO1xufVxuIl19
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, inject, Input } from '@angular/core';
|
|
3
|
+
import { IonButton, IonButtons, IonContent, IonHeader, IonIcon, IonMenu, IonMenuToggle, IonToolbar, MenuController, } from '@ionic/angular/standalone';
|
|
4
|
+
import { ImageComponent } from '../../atoms/image/image.component';
|
|
5
|
+
import { ButtonComponent } from '../../atoms/button/button.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common";
|
|
8
|
+
/**
|
|
9
|
+
* val-menu
|
|
10
|
+
*
|
|
11
|
+
* A side menu component using Ionic IonMenu with customizable logo,
|
|
12
|
+
* close button, and content projection for menu items.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* <val-menu
|
|
16
|
+
* [props]="{
|
|
17
|
+
* id: 'main-menu',
|
|
18
|
+
* contentId: 'main-content',
|
|
19
|
+
* side: 'start',
|
|
20
|
+
* type: 'overlay',
|
|
21
|
+
* swipe: true,
|
|
22
|
+
* showCloseButton: true
|
|
23
|
+
* }"
|
|
24
|
+
* >
|
|
25
|
+
* <val-links-accordion [props]="menuLinks"></val-links-accordion>
|
|
26
|
+
* </val-menu>
|
|
27
|
+
*
|
|
28
|
+
* <ion-router-outlet id="main-content"></ion-router-outlet>
|
|
29
|
+
*
|
|
30
|
+
* @input props - Menu configuration
|
|
31
|
+
*/
|
|
32
|
+
export class MenuComponent {
|
|
33
|
+
constructor() {
|
|
34
|
+
this.menuCtrl = inject(MenuController);
|
|
35
|
+
/**
|
|
36
|
+
* Menu configuration.
|
|
37
|
+
*/
|
|
38
|
+
this.props = {
|
|
39
|
+
side: 'start',
|
|
40
|
+
type: 'overlay',
|
|
41
|
+
swipe: true,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Closes the menu.
|
|
46
|
+
*/
|
|
47
|
+
async closeMenu() {
|
|
48
|
+
await this.menuCtrl.close(this.props.id);
|
|
49
|
+
}
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
51
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: MenuComponent, isStandalone: true, selector: "val-menu", inputs: { props: "props" }, ngImport: i0, template: `
|
|
52
|
+
<ion-menu
|
|
53
|
+
[menuId]="props.id"
|
|
54
|
+
[contentId]="props.contentId"
|
|
55
|
+
[type]="props.type || 'overlay'"
|
|
56
|
+
[side]="props.side || 'start'"
|
|
57
|
+
[swipeGesture]="props.swipe !== false"
|
|
58
|
+
>
|
|
59
|
+
<ion-header [class.ion-no-border]="true">
|
|
60
|
+
<ion-toolbar>
|
|
61
|
+
<ion-buttons slot="start" style="padding-left: .5rem;">
|
|
62
|
+
<val-image
|
|
63
|
+
*ngIf="props.logo"
|
|
64
|
+
[props]="props.logo"
|
|
65
|
+
/>
|
|
66
|
+
<val-image
|
|
67
|
+
*ngIf="!props.logo"
|
|
68
|
+
[props]="{
|
|
69
|
+
src: '--main-logo-mini',
|
|
70
|
+
alt: 'menu logo',
|
|
71
|
+
mode: 'box',
|
|
72
|
+
shaded: false,
|
|
73
|
+
bordered: false,
|
|
74
|
+
size: 'small',
|
|
75
|
+
limited: false,
|
|
76
|
+
width: 2,
|
|
77
|
+
flex: true
|
|
78
|
+
}"
|
|
79
|
+
/>
|
|
80
|
+
</ion-buttons>
|
|
81
|
+
|
|
82
|
+
<ion-buttons slot="end">
|
|
83
|
+
<ion-menu-toggle>
|
|
84
|
+
<ion-button>
|
|
85
|
+
<ion-icon color="dark" slot="icon-only" name="close-outline"></ion-icon>
|
|
86
|
+
</ion-button>
|
|
87
|
+
</ion-menu-toggle>
|
|
88
|
+
</ion-buttons>
|
|
89
|
+
</ion-toolbar>
|
|
90
|
+
</ion-header>
|
|
91
|
+
<ion-content>
|
|
92
|
+
<ng-content></ng-content>
|
|
93
|
+
</ion-content>
|
|
94
|
+
@if (props.showCloseButton) {
|
|
95
|
+
<val-button
|
|
96
|
+
class="menu-close-button"
|
|
97
|
+
[props]="{
|
|
98
|
+
text: props.closeButtonText || 'Close',
|
|
99
|
+
color: 'dark',
|
|
100
|
+
size: 'default',
|
|
101
|
+
type: 'button',
|
|
102
|
+
state: 'ENABLED',
|
|
103
|
+
fill: 'outline',
|
|
104
|
+
shape: 'round',
|
|
105
|
+
icon: {
|
|
106
|
+
name: 'close-outline',
|
|
107
|
+
slot: 'start'
|
|
108
|
+
}
|
|
109
|
+
}"
|
|
110
|
+
(onClick)="closeMenu()"
|
|
111
|
+
/>
|
|
112
|
+
}
|
|
113
|
+
</ion-menu>
|
|
114
|
+
`, isInline: true, styles: ["ion-menu{--min-width: 75%}@media (min-width: 768px){ion-menu{--min-width: 40%}}ion-menu ion-header{background:var(--ion-color-light)}ion-menu ion-content{--background: var(--ion-color-light)}.menu-close-button{display:block;margin:1rem .5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonMenu, selector: "ion-menu", inputs: ["contentId", "disabled", "maxEdgeStart", "menuId", "side", "swipeGesture", "type"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonMenuToggle, selector: "ion-menu-toggle", inputs: ["autoHide", "menu"] }, { 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: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["props"], outputs: ["onClick"] }] }); }
|
|
115
|
+
}
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MenuComponent, decorators: [{
|
|
117
|
+
type: Component,
|
|
118
|
+
args: [{ selector: 'val-menu', standalone: true, imports: [
|
|
119
|
+
CommonModule,
|
|
120
|
+
IonMenu,
|
|
121
|
+
IonButtons,
|
|
122
|
+
IonMenuToggle,
|
|
123
|
+
IonButton,
|
|
124
|
+
IonIcon,
|
|
125
|
+
IonHeader,
|
|
126
|
+
IonToolbar,
|
|
127
|
+
IonContent,
|
|
128
|
+
ImageComponent,
|
|
129
|
+
ButtonComponent,
|
|
130
|
+
], template: `
|
|
131
|
+
<ion-menu
|
|
132
|
+
[menuId]="props.id"
|
|
133
|
+
[contentId]="props.contentId"
|
|
134
|
+
[type]="props.type || 'overlay'"
|
|
135
|
+
[side]="props.side || 'start'"
|
|
136
|
+
[swipeGesture]="props.swipe !== false"
|
|
137
|
+
>
|
|
138
|
+
<ion-header [class.ion-no-border]="true">
|
|
139
|
+
<ion-toolbar>
|
|
140
|
+
<ion-buttons slot="start" style="padding-left: .5rem;">
|
|
141
|
+
<val-image
|
|
142
|
+
*ngIf="props.logo"
|
|
143
|
+
[props]="props.logo"
|
|
144
|
+
/>
|
|
145
|
+
<val-image
|
|
146
|
+
*ngIf="!props.logo"
|
|
147
|
+
[props]="{
|
|
148
|
+
src: '--main-logo-mini',
|
|
149
|
+
alt: 'menu logo',
|
|
150
|
+
mode: 'box',
|
|
151
|
+
shaded: false,
|
|
152
|
+
bordered: false,
|
|
153
|
+
size: 'small',
|
|
154
|
+
limited: false,
|
|
155
|
+
width: 2,
|
|
156
|
+
flex: true
|
|
157
|
+
}"
|
|
158
|
+
/>
|
|
159
|
+
</ion-buttons>
|
|
160
|
+
|
|
161
|
+
<ion-buttons slot="end">
|
|
162
|
+
<ion-menu-toggle>
|
|
163
|
+
<ion-button>
|
|
164
|
+
<ion-icon color="dark" slot="icon-only" name="close-outline"></ion-icon>
|
|
165
|
+
</ion-button>
|
|
166
|
+
</ion-menu-toggle>
|
|
167
|
+
</ion-buttons>
|
|
168
|
+
</ion-toolbar>
|
|
169
|
+
</ion-header>
|
|
170
|
+
<ion-content>
|
|
171
|
+
<ng-content></ng-content>
|
|
172
|
+
</ion-content>
|
|
173
|
+
@if (props.showCloseButton) {
|
|
174
|
+
<val-button
|
|
175
|
+
class="menu-close-button"
|
|
176
|
+
[props]="{
|
|
177
|
+
text: props.closeButtonText || 'Close',
|
|
178
|
+
color: 'dark',
|
|
179
|
+
size: 'default',
|
|
180
|
+
type: 'button',
|
|
181
|
+
state: 'ENABLED',
|
|
182
|
+
fill: 'outline',
|
|
183
|
+
shape: 'round',
|
|
184
|
+
icon: {
|
|
185
|
+
name: 'close-outline',
|
|
186
|
+
slot: 'start'
|
|
187
|
+
}
|
|
188
|
+
}"
|
|
189
|
+
(onClick)="closeMenu()"
|
|
190
|
+
/>
|
|
191
|
+
}
|
|
192
|
+
</ion-menu>
|
|
193
|
+
`, styles: ["ion-menu{--min-width: 75%}@media (min-width: 768px){ion-menu{--min-width: 40%}}ion-menu ion-header{background:var(--ion-color-light)}ion-menu ion-content{--background: var(--ion-color-light)}.menu-close-button{display:block;margin:1rem .5rem}\n"] }]
|
|
194
|
+
}], propDecorators: { props: [{
|
|
195
|
+
type: Input
|
|
196
|
+
}] } });
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21lbnUvbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsU0FBUyxFQUNULE9BQU8sRUFDUCxPQUFPLEVBQ1AsYUFBYSxFQUNiLFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7QUFHdEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBbUZILE1BQU0sT0FBTyxhQUFhO0lBbEYxQjtRQW1GVSxhQUFRLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTFDOztXQUVHO1FBQ00sVUFBSyxHQUFpQjtZQUM3QixJQUFJLEVBQUUsT0FBTztZQUNiLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDO0tBUUg7SUFOQzs7T0FFRztJQUNILEtBQUssQ0FBQyxTQUFTO1FBQ2IsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7K0dBakJVLGFBQWE7bUdBQWIsYUFBYSxnR0FsRWQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStEVCw2VEEzRUMsWUFBWSxtSUFDWixPQUFPLGtKQUNQLFVBQVUsOEVBQ1YsYUFBYSwwRkFDYixTQUFTLG9QQUNULE9BQU8sMkpBQ1AsU0FBUyxvR0FDVCxVQUFVLG1GQUNWLFVBQVUsd0tBQ1YsY0FBYyx5RUFDZCxlQUFlOzs0RkFvRU4sYUFBYTtrQkFsRnpCLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLE9BQU87d0JBQ1AsVUFBVTt3QkFDVixhQUFhO3dCQUNiLFNBQVM7d0JBQ1QsT0FBTzt3QkFDUCxTQUFTO3dCQUNULFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixjQUFjO3dCQUNkLGVBQWU7cUJBQ2hCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStEVDs4QkFTUSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBJb25CdXR0b24sXG4gIElvbkJ1dHRvbnMsXG4gIElvbkNvbnRlbnQsXG4gIElvbkhlYWRlcixcbiAgSW9uSWNvbixcbiAgSW9uTWVudSxcbiAgSW9uTWVudVRvZ2dsZSxcbiAgSW9uVG9vbGJhcixcbiAgTWVudUNvbnRyb2xsZXIsXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9pbWFnZS9pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVudU1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogdmFsLW1lbnVcbiAqXG4gKiBBIHNpZGUgbWVudSBjb21wb25lbnQgdXNpbmcgSW9uaWMgSW9uTWVudSB3aXRoIGN1c3RvbWl6YWJsZSBsb2dvLFxuICogY2xvc2UgYnV0dG9uLCBhbmQgY29udGVudCBwcm9qZWN0aW9uIGZvciBtZW51IGl0ZW1zLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLW1lbnVcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBpZDogJ21haW4tbWVudScsXG4gKiAgICAgY29udGVudElkOiAnbWFpbi1jb250ZW50JyxcbiAqICAgICBzaWRlOiAnc3RhcnQnLFxuICogICAgIHR5cGU6ICdvdmVybGF5JyxcbiAqICAgICBzd2lwZTogdHJ1ZSxcbiAqICAgICBzaG93Q2xvc2VCdXR0b246IHRydWVcbiAqICAgfVwiXG4gKiA+XG4gKiAgIDx2YWwtbGlua3MtYWNjb3JkaW9uIFtwcm9wc109XCJtZW51TGlua3NcIj48L3ZhbC1saW5rcy1hY2NvcmRpb24+XG4gKiA8L3ZhbC1tZW51PlxuICpcbiAqIDxpb24tcm91dGVyLW91dGxldCBpZD1cIm1haW4tY29udGVudFwiPjwvaW9uLXJvdXRlci1vdXRsZXQ+XG4gKlxuICogQGlucHV0IHByb3BzIC0gTWVudSBjb25maWd1cmF0aW9uXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1tZW51JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJb25NZW51LFxuICAgIElvbkJ1dHRvbnMsXG4gICAgSW9uTWVudVRvZ2dsZSxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uSWNvbixcbiAgICBJb25IZWFkZXIsXG4gICAgSW9uVG9vbGJhcixcbiAgICBJb25Db250ZW50LFxuICAgIEltYWdlQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLW1lbnVcbiAgICAgIFttZW51SWRdPVwicHJvcHMuaWRcIlxuICAgICAgW2NvbnRlbnRJZF09XCJwcm9wcy5jb250ZW50SWRcIlxuICAgICAgW3R5cGVdPVwicHJvcHMudHlwZSB8fCAnb3ZlcmxheSdcIlxuICAgICAgW3NpZGVdPVwicHJvcHMuc2lkZSB8fCAnc3RhcnQnXCJcbiAgICAgIFtzd2lwZUdlc3R1cmVdPVwicHJvcHMuc3dpcGUgIT09IGZhbHNlXCJcbiAgICA+XG4gICAgICA8aW9uLWhlYWRlciBbY2xhc3MuaW9uLW5vLWJvcmRlcl09XCJ0cnVlXCI+XG4gICAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IC41cmVtO1wiPlxuICAgICAgICAgICAgPHZhbC1pbWFnZVxuICAgICAgICAgICAgICAqbmdJZj1cInByb3BzLmxvZ29cIlxuICAgICAgICAgICAgICBbcHJvcHNdPVwicHJvcHMubG9nb1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHZhbC1pbWFnZVxuICAgICAgICAgICAgICAqbmdJZj1cIiFwcm9wcy5sb2dvXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICBzcmM6ICctLW1haW4tbG9nby1taW5pJyxcbiAgICAgICAgICAgICAgICBhbHQ6ICdtZW51IGxvZ28nLFxuICAgICAgICAgICAgICAgIG1vZGU6ICdib3gnLFxuICAgICAgICAgICAgICAgIHNoYWRlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYm9yZGVyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICAgICAgICAgICAgbGltaXRlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDIsXG4gICAgICAgICAgICAgICAgZmxleDogdHJ1ZVxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9pb24tYnV0dG9ucz5cblxuICAgICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgICA8aW9uLW1lbnUtdG9nZ2xlPlxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8aW9uLWljb24gY29sb3I9XCJkYXJrXCIgc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjbG9zZS1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9pb24tbWVudS10b2dnbGU+XG4gICAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICAgIDwvaW9uLWhlYWRlcj5cbiAgICAgIDxpb24tY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9pb24tY29udGVudD5cbiAgICAgIEBpZiAocHJvcHMuc2hvd0Nsb3NlQnV0dG9uKSB7XG4gICAgICAgIDx2YWwtYnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJtZW51LWNsb3NlLWJ1dHRvblwiXG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIHRleHQ6IHByb3BzLmNsb3NlQnV0dG9uVGV4dCB8fCAnQ2xvc2UnLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgc3RhdGU6ICdFTkFCTEVEJyxcbiAgICAgICAgICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgICAgICAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgICAgICAgaWNvbjoge1xuICAgICAgICAgICAgICBuYW1lOiAnY2xvc2Utb3V0bGluZScsXG4gICAgICAgICAgICAgIHNsb3Q6ICdzdGFydCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XCJcbiAgICAgICAgICAob25DbGljayk9XCJjbG9zZU1lbnUoKVwiXG4gICAgICAgIC8+XG4gICAgICB9XG4gICAgPC9pb24tbWVudT5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBtZW51Q3RybCA9IGluamVjdChNZW51Q29udHJvbGxlcik7XG5cbiAgLyoqXG4gICAqIE1lbnUgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIEBJbnB1dCgpIHByb3BzOiBNZW51TWV0YWRhdGEgPSB7XG4gICAgc2lkZTogJ3N0YXJ0JyxcbiAgICB0eXBlOiAnb3ZlcmxheScsXG4gICAgc3dpcGU6IHRydWUsXG4gIH07XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgbWVudS5cbiAgICovXG4gIGFzeW5jIGNsb3NlTWVudSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLm1lbnVDdHJsLmNsb3NlKHRoaXMucHJvcHMuaWQpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21lbnUvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lbnVUeXBlLCBTaWRlIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VNZXRhZGF0YSB9IGZyb20gJy4uLy4uL2F0b21zL2ltYWdlL3R5cGVzJztcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciB0aGUgbWVudSBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWVudU1ldGFkYXRhIHtcbiAgLyoqIE1lbnUgdHlwZTogJ292ZXJsYXknLCAncmV2ZWFsJywgb3IgJ3B1c2gnICovXG4gIHR5cGU/OiBNZW51VHlwZTtcbiAgLyoqIEVuYWJsZSBzd2lwZSBnZXN0dXJlIHRvIG9wZW4vY2xvc2UgKi9cbiAgc3dpcGU/OiBib29sZWFuO1xuICAvKiogSUQgb2YgdGhlIGNvbnRlbnQgZWxlbWVudCB0aGlzIG1lbnUgaXMgYXNzb2NpYXRlZCB3aXRoICovXG4gIGNvbnRlbnRJZD86IHN0cmluZztcbiAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbWVudSAqL1xuICBpZD86IHN0cmluZztcbiAgLyoqIFdoaWNoIHNpZGUgdGhlIG1lbnUgYXBwZWFycyBvbiAqL1xuICBzaWRlPzogU2lkZTtcbiAgLyoqIFNob3cgYSBjbG9zZSBidXR0b24gYXQgdGhlIGJvdHRvbSAqL1xuICBzaG93Q2xvc2VCdXR0b24/OiBib29sZWFuO1xuICAvKiogQ2xvc2UgYnV0dG9uIHRleHQgKGRlZmF1bHQ6ICdDbG9zZScpICovXG4gIGNsb3NlQnV0dG9uVGV4dD86IHN0cmluZztcbiAgLyoqIExvZ28gaW1hZ2UgY29uZmlndXJhdGlvbiAqL1xuICBsb2dvPzogSW1hZ2VNZXRhZGF0YTtcbn1cbiJdfQ==
|