valtech-components 2.0.404 → 2.0.406
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +71 -0
- package/esm2022/lib/components/atoms/avatar/avatar.component.mjs +4 -4
- package/esm2022/lib/components/atoms/avatar/types.mjs +1 -1
- package/esm2022/lib/components/atoms/box/box.component.mjs +4 -4
- package/esm2022/lib/components/atoms/box/types.mjs +1 -1
- package/esm2022/lib/components/atoms/button/button.component.mjs +4 -4
- package/esm2022/lib/components/atoms/button/factory.mjs +1 -1
- package/esm2022/lib/components/atoms/countdown/countdown.component.mjs +343 -0
- package/esm2022/lib/components/atoms/countdown/types.mjs +27 -0
- package/esm2022/lib/components/atoms/display/display.component.mjs +4 -4
- package/esm2022/lib/components/atoms/display/types.mjs +1 -1
- package/esm2022/lib/components/atoms/divider/divider.component.mjs +4 -4
- package/esm2022/lib/components/atoms/divider/types.mjs +1 -1
- package/esm2022/lib/components/atoms/fab/fab.component.mjs +152 -0
- package/esm2022/lib/components/atoms/fab/types.mjs +2 -0
- package/esm2022/lib/components/atoms/href/href.component.mjs +4 -4
- package/esm2022/lib/components/atoms/href/types.mjs +1 -1
- package/esm2022/lib/components/atoms/icon/icon.component.mjs +4 -4
- package/esm2022/lib/components/atoms/icon/types.mjs +1 -1
- package/esm2022/lib/components/atoms/image/image.component.mjs +6 -6
- package/esm2022/lib/components/atoms/image/types.mjs +1 -1
- package/esm2022/lib/components/atoms/price-tag/price-tag.component.mjs +245 -0
- package/esm2022/lib/components/atoms/price-tag/types.mjs +15 -0
- package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +4 -4
- package/esm2022/lib/components/atoms/progress-bar/types.mjs +1 -1
- package/esm2022/lib/components/atoms/progress-ring/progress-ring.component.mjs +149 -0
- package/esm2022/lib/components/atoms/progress-ring/types.mjs +2 -0
- package/esm2022/lib/components/atoms/qr-code/qr-code.component.mjs +417 -0
- package/esm2022/lib/components/atoms/qr-code/types.mjs +2 -0
- package/esm2022/lib/components/atoms/skeleton/skeleton.component.mjs +193 -0
- package/esm2022/lib/components/atoms/skeleton/types.mjs +13 -0
- package/esm2022/lib/components/atoms/text/text.component.mjs +4 -4
- package/esm2022/lib/components/atoms/text/types.mjs +1 -1
- package/esm2022/lib/components/atoms/title/title.component.mjs +4 -4
- package/esm2022/lib/components/atoms/title/types.mjs +1 -1
- package/esm2022/lib/components/molecules/accordion/accordion.component.mjs +139 -0
- package/esm2022/lib/components/molecules/accordion/types.mjs +2 -0
- package/esm2022/lib/components/molecules/action-header/action-header.component.mjs +4 -4
- package/esm2022/lib/components/molecules/action-header/types.mjs +1 -1
- package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +4 -4
- package/esm2022/lib/components/molecules/alert-box/types.mjs +1 -1
- package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +137 -0
- package/esm2022/lib/components/molecules/breadcrumb/types.mjs +2 -0
- package/esm2022/lib/components/molecules/button-group/button-group.component.mjs +4 -4
- package/esm2022/lib/components/molecules/button-group/types.mjs +1 -1
- package/esm2022/lib/components/molecules/card/card.component.mjs +5 -5
- package/esm2022/lib/components/molecules/card/types.mjs +1 -1
- package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +174 -0
- package/esm2022/lib/components/molecules/chip-group/types.mjs +2 -0
- package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +4 -4
- package/esm2022/lib/components/molecules/code-display/types.mjs +1 -1
- package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +4 -4
- package/esm2022/lib/components/molecules/command-display/types.mjs +1 -1
- package/esm2022/lib/components/molecules/comment/comment.component.mjs +634 -0
- package/esm2022/lib/components/molecules/comment/types.mjs +2 -0
- package/esm2022/lib/components/molecules/comment-input/comment-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/content-loader/content-loader.component.mjs +4 -4
- package/esm2022/lib/components/molecules/content-loader/types.mjs +1 -1
- package/esm2022/lib/components/molecules/currency-input/currency-input.component.mjs +368 -0
- package/esm2022/lib/components/molecules/currency-input/types.mjs +18 -0
- package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +5 -5
- package/esm2022/lib/components/molecules/date-range-input/date-range-input.component.mjs +418 -0
- package/esm2022/lib/components/molecules/date-range-input/types.mjs +2 -0
- package/esm2022/lib/components/molecules/email-input/email-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +4 -4
- package/esm2022/lib/components/molecules/expandable-text/types.mjs +1 -1
- package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +279 -0
- package/esm2022/lib/components/molecules/glow-card/types.mjs +11 -0
- package/esm2022/lib/components/molecules/hint/hint.component.mjs +4 -4
- package/esm2022/lib/components/molecules/hour-input/hour-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/info/info.component.mjs +4 -4
- package/esm2022/lib/components/molecules/info/types.mjs +1 -1
- package/esm2022/lib/components/molecules/language-selector/language-selector.component.mjs +4 -4
- package/esm2022/lib/components/molecules/language-selector/types.mjs +1 -1
- package/esm2022/lib/components/molecules/layered-card/layered-card.component.mjs +4 -4
- package/esm2022/lib/components/molecules/layered-card/types.mjs +1 -1
- package/esm2022/lib/components/molecules/link/link.component.mjs +4 -4
- package/esm2022/lib/components/molecules/link/types.mjs +1 -1
- package/esm2022/lib/components/molecules/links-cake/links-cake.component.mjs +4 -4
- package/esm2022/lib/components/molecules/links-cake/types.mjs +1 -1
- package/esm2022/lib/components/molecules/multi-select-search/multi-select-search.component.mjs +5 -5
- package/esm2022/lib/components/molecules/notes-box/notes-box.component.mjs +4 -4
- package/esm2022/lib/components/molecules/notes-box/types.mjs +1 -1
- package/esm2022/lib/components/molecules/number-from-to/number-from-to.component.mjs +4 -4
- package/esm2022/lib/components/molecules/number-input/number-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/number-stepper/number-stepper.component.mjs +377 -0
- package/esm2022/lib/components/molecules/number-stepper/types.mjs +2 -0
- package/esm2022/lib/components/molecules/pagination/pagination.component.mjs +253 -0
- package/esm2022/lib/components/molecules/pagination/types.mjs +2 -0
- package/esm2022/lib/components/molecules/participant-card/participant-card.component.mjs +486 -0
- package/esm2022/lib/components/molecules/participant-card/types.mjs +21 -0
- package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/phone-input/phone-input.component.mjs +336 -0
- package/esm2022/lib/components/molecules/phone-input/types.mjs +19 -0
- package/esm2022/lib/components/molecules/pill/pill.component.mjs +4 -4
- package/esm2022/lib/components/molecules/pill/types.mjs +1 -1
- package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/plain-code-box/plain-code-box.component.mjs +4 -4
- package/esm2022/lib/components/molecules/plain-code-box/types.mjs +1 -1
- package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +5 -5
- package/esm2022/lib/components/molecules/popover-selector/types.mjs +1 -1
- package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +4 -4
- package/esm2022/lib/components/molecules/progress-status/types.mjs +1 -1
- package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +4 -4
- package/esm2022/lib/components/molecules/prompter/types.mjs +1 -1
- package/esm2022/lib/components/molecules/quote-box/quote-box.component.mjs +155 -0
- package/esm2022/lib/components/molecules/radio-input/radio-input.component.mjs +5 -5
- package/esm2022/lib/components/molecules/raffle-status-card/raffle-status-card.component.mjs +484 -0
- package/esm2022/lib/components/molecules/raffle-status-card/types.mjs +23 -0
- package/esm2022/lib/components/molecules/range-input/range-input.component.mjs +148 -0
- package/esm2022/lib/components/molecules/range-input/types.mjs +2 -0
- package/esm2022/lib/components/molecules/rating/rating.component.mjs +149 -0
- package/esm2022/lib/components/molecules/rating/types.mjs +2 -0
- package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +4 -4
- package/esm2022/lib/components/molecules/segment-control/segment-control.component.mjs +145 -0
- package/esm2022/lib/components/molecules/segment-control/types.mjs +2 -0
- package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +5 -5
- package/esm2022/lib/components/molecules/select-search/select-search.component.mjs +5 -5
- package/esm2022/lib/components/molecules/share-buttons/share-buttons.component.mjs +277 -0
- package/esm2022/lib/components/molecules/share-buttons/types.mjs +88 -0
- package/esm2022/lib/components/molecules/stats-card/stats-card.component.mjs +165 -0
- package/esm2022/lib/components/molecules/stats-card/types.mjs +2 -0
- package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +239 -0
- package/esm2022/lib/components/molecules/stepper/types.mjs +2 -0
- package/esm2022/lib/components/molecules/tabs/tabs.component.mjs +135 -0
- package/esm2022/lib/components/molecules/tabs/types.mjs +2 -0
- package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/textarea-input/textarea-input.component.mjs +204 -0
- package/esm2022/lib/components/molecules/textarea-input/types.mjs +2 -0
- package/esm2022/lib/components/molecules/ticket-grid/ticket-grid.component.mjs +497 -0
- package/esm2022/lib/components/molecules/ticket-grid/types.mjs +11 -0
- package/esm2022/lib/components/molecules/timeline/timeline.component.mjs +140 -0
- package/esm2022/lib/components/molecules/timeline/types.mjs +2 -0
- package/esm2022/lib/components/molecules/title-block/title-block.component.mjs +4 -4
- package/esm2022/lib/components/molecules/title-block/types.mjs +1 -1
- package/esm2022/lib/components/molecules/toggle-input/toggle-input.component.mjs +89 -0
- package/esm2022/lib/components/molecules/toggle-input/types.mjs +2 -0
- package/esm2022/lib/components/molecules/winner-display/types.mjs +9 -0
- package/esm2022/lib/components/molecules/winner-display/winner-display.component.mjs +370 -0
- package/esm2022/lib/components/organisms/article/article.component.mjs +4 -4
- package/esm2022/lib/components/organisms/article/types.mjs +1 -1
- package/esm2022/lib/components/organisms/banner/banner.component.mjs +4 -4
- package/esm2022/lib/components/organisms/banner/types.mjs +1 -1
- package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +578 -0
- package/esm2022/lib/components/organisms/comment-section/types.mjs +2 -0
- package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +853 -0
- package/esm2022/lib/components/organisms/data-table/types.mjs +13 -0
- package/esm2022/lib/components/organisms/footer/footer.component.mjs +4 -4
- package/esm2022/lib/components/organisms/footer/types.mjs +1 -1
- package/esm2022/lib/components/organisms/form/factory.mjs +1 -1
- package/esm2022/lib/components/organisms/form/form-footer/form-footer.component.mjs +4 -4
- package/esm2022/lib/components/organisms/form/form.component.mjs +4 -4
- package/esm2022/lib/components/organisms/header/header.component.mjs +4 -4
- package/esm2022/lib/components/organisms/header/types.mjs +1 -1
- package/esm2022/lib/components/organisms/item-list/item-list.component.mjs +4 -4
- package/esm2022/lib/components/organisms/item-list/types.mjs +1 -1
- package/esm2022/lib/components/organisms/no-content/no-content.component.mjs +4 -4
- package/esm2022/lib/components/organisms/no-content/types.mjs +1 -1
- package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +4 -4
- package/esm2022/lib/components/organisms/toolbar/types.mjs +1 -1
- package/esm2022/lib/components/organisms/wizard/types.mjs +1 -1
- package/esm2022/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.mjs +4 -4
- package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +4 -4
- package/esm2022/lib/components/templates/layout/layout.component.mjs +4 -4
- package/esm2022/lib/components/templates/simple/simple.component.mjs +5 -5
- package/esm2022/lib/components/templates/simple/types.mjs +1 -1
- package/esm2022/lib/components/types.mjs +22 -16
- package/esm2022/lib/services/confirmation-dialog/confirmation-dialog.service.mjs +180 -0
- package/esm2022/lib/services/confirmation-dialog/types.mjs +14 -0
- package/esm2022/lib/services/download.service.mjs +4 -4
- package/esm2022/lib/services/icons.service.mjs +4 -4
- package/esm2022/lib/services/in-app-browser.service.mjs +4 -4
- package/esm2022/lib/services/lang-provider/components/lang-settings.mjs +1 -1
- package/esm2022/lib/services/lang-provider/content.mjs +1 -1
- package/esm2022/lib/services/lang-provider/lang-provider.service.mjs +4 -4
- package/esm2022/lib/services/lang-provider/types.mjs +1 -1
- package/esm2022/lib/services/link-processor.service.mjs +4 -4
- package/esm2022/lib/services/local-storage.service.mjs +1 -1
- package/esm2022/lib/services/modal/modal.service.mjs +213 -0
- package/esm2022/lib/services/modal/simple-modal-content.component.mjs +133 -0
- package/esm2022/lib/services/modal/types.mjs +26 -0
- package/esm2022/lib/services/navigation.service.mjs +4 -4
- package/esm2022/lib/services/qr-generator/qr-generator.service.mjs +341 -0
- package/esm2022/lib/services/qr-generator/types.mjs +46 -0
- package/esm2022/lib/services/theme.service.mjs +4 -4
- package/esm2022/lib/services/toast.service.mjs +4 -4
- package/esm2022/lib/services/types.mjs +1 -1
- package/esm2022/lib/shared/constants/storage.mjs +1 -1
- package/esm2022/lib/shared/pipes/process-links.pipe.mjs +4 -4
- package/esm2022/lib/shared/utils/content.mjs +1 -1
- package/esm2022/lib/shared/utils/dom.mjs +1 -1
- package/esm2022/lib/shared/utils/form-defaults.mjs +1 -1
- package/esm2022/lib/shared/utils/simple-content.mjs +1 -1
- package/esm2022/lib/shared/utils/styles.mjs +1 -1
- package/esm2022/lib/shared/utils/text.mjs +1 -1
- package/esm2022/public-api.mjs +73 -3
- package/esm2022/valtech-components.mjs +1 -1
- package/fesm2022/valtech-components-simple-modal-content.component-DQhEgUmS.mjs +136 -0
- package/fesm2022/valtech-components-simple-modal-content.component-DQhEgUmS.mjs.map +1 -0
- package/fesm2022/valtech-components.mjs +14847 -4292
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/countdown/countdown.component.d.ts +38 -0
- package/lib/components/atoms/countdown/types.d.ts +108 -0
- package/lib/components/atoms/fab/fab.component.d.ts +16 -0
- package/lib/components/atoms/fab/types.d.ts +45 -0
- package/lib/components/atoms/price-tag/price-tag.component.d.ts +16 -0
- package/lib/components/atoms/price-tag/types.d.ts +59 -0
- package/lib/components/atoms/progress-ring/progress-ring.component.d.ts +20 -0
- package/lib/components/atoms/progress-ring/types.d.ts +24 -0
- package/lib/components/atoms/qr-code/qr-code.component.d.ts +36 -0
- package/lib/components/atoms/qr-code/types.d.ts +124 -0
- package/lib/components/atoms/skeleton/skeleton.component.d.ts +12 -0
- package/lib/components/atoms/skeleton/types.d.ts +29 -0
- package/lib/components/molecules/accordion/accordion.component.d.ts +19 -0
- package/lib/components/molecules/accordion/types.d.ts +47 -0
- package/lib/components/molecules/breadcrumb/breadcrumb.component.d.ts +22 -0
- package/lib/components/molecules/breadcrumb/types.d.ts +45 -0
- package/lib/components/molecules/chip-group/chip-group.component.d.ts +22 -0
- package/lib/components/molecules/chip-group/types.d.ts +65 -0
- package/lib/components/molecules/comment/comment.component.d.ts +42 -0
- package/lib/components/molecules/comment/types.d.ts +171 -0
- package/lib/components/molecules/currency-input/currency-input.component.d.ts +43 -0
- package/lib/components/molecules/currency-input/types.d.ts +96 -0
- package/lib/components/molecules/date-range-input/date-range-input.component.d.ts +42 -0
- package/lib/components/molecules/date-range-input/types.d.ts +109 -0
- package/lib/components/molecules/glow-card/glow-card.component.d.ts +51 -0
- package/lib/components/molecules/glow-card/types.d.ts +92 -0
- package/lib/components/molecules/number-stepper/number-stepper.component.d.ts +34 -0
- package/lib/components/molecules/number-stepper/types.d.ts +88 -0
- package/lib/components/molecules/pagination/pagination.component.d.ts +15 -0
- package/lib/components/molecules/pagination/types.d.ts +41 -0
- package/lib/components/molecules/participant-card/participant-card.component.d.ts +26 -0
- package/lib/components/molecules/participant-card/types.d.ts +132 -0
- package/lib/components/molecules/phone-input/phone-input.component.d.ts +38 -0
- package/lib/components/molecules/phone-input/types.d.ts +98 -0
- package/lib/components/molecules/quote-box/quote-box.component.d.ts +26 -0
- package/lib/components/molecules/raffle-status-card/raffle-status-card.component.d.ts +22 -0
- package/lib/components/molecules/raffle-status-card/types.d.ts +108 -0
- package/lib/components/molecules/range-input/range-input.component.d.ts +30 -0
- package/lib/components/molecules/range-input/types.d.ts +59 -0
- package/lib/components/molecules/rating/rating.component.d.ts +17 -0
- package/lib/components/molecules/rating/types.d.ts +41 -0
- package/lib/components/molecules/segment-control/segment-control.component.d.ts +30 -0
- package/lib/components/molecules/segment-control/types.d.ts +46 -0
- package/lib/components/molecules/share-buttons/share-buttons.component.d.ts +22 -0
- package/lib/components/molecules/share-buttons/types.d.ts +108 -0
- package/lib/components/molecules/stats-card/stats-card.component.d.ts +14 -0
- package/lib/components/molecules/stats-card/types.d.ts +41 -0
- package/lib/components/molecules/stepper/stepper.component.d.ts +21 -0
- package/lib/components/molecules/stepper/types.d.ts +66 -0
- package/lib/components/molecules/tabs/tabs.component.d.ts +17 -0
- package/lib/components/molecules/tabs/types.d.ts +45 -0
- package/lib/components/molecules/textarea-input/textarea-input.component.d.ts +27 -0
- package/lib/components/molecules/textarea-input/types.d.ts +74 -0
- package/lib/components/molecules/ticket-grid/ticket-grid.component.d.ts +41 -0
- package/lib/components/molecules/ticket-grid/types.d.ts +122 -0
- package/lib/components/molecules/timeline/timeline.component.d.ts +14 -0
- package/lib/components/molecules/timeline/types.d.ts +39 -0
- package/lib/components/molecules/toggle-input/toggle-input.component.d.ts +24 -0
- package/lib/components/molecules/toggle-input/types.d.ts +30 -0
- package/lib/components/molecules/winner-display/types.d.ts +103 -0
- package/lib/components/molecules/winner-display/winner-display.component.d.ts +37 -0
- package/lib/components/organisms/article/article.component.d.ts +1 -1
- package/lib/components/organisms/comment-section/comment-section.component.d.ts +52 -0
- package/lib/components/organisms/comment-section/types.d.ts +144 -0
- package/lib/components/organisms/data-table/data-table.component.d.ts +46 -0
- package/lib/components/organisms/data-table/types.d.ts +205 -0
- package/lib/components/types.d.ts +21 -15
- package/lib/services/confirmation-dialog/confirmation-dialog.service.d.ts +71 -0
- package/lib/services/confirmation-dialog/types.d.ts +61 -0
- package/lib/services/modal/modal.service.d.ts +98 -0
- package/lib/services/modal/simple-modal-content.component.d.ts +19 -0
- package/lib/services/modal/types.d.ts +155 -0
- package/lib/services/qr-generator/qr-generator.service.d.ts +115 -0
- package/lib/services/qr-generator/types.d.ts +141 -0
- package/package.json +9 -2
- package/public-api.d.ts +72 -2
- package/LICENSE +0 -21
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, inject } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { IonButton, IonIcon, IonSpinner } from '@ionic/angular/standalone';
|
|
4
|
+
import { addIcons } from 'ionicons';
|
|
5
|
+
import { downloadOutline, copyOutline, shareOutline } from 'ionicons/icons';
|
|
6
|
+
import { QrGeneratorService } from '../../../services/qr-generator/qr-generator.service';
|
|
7
|
+
import { LangService } from '../../../services/lang-provider/lang-provider.service';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
addIcons({ downloadOutline, copyOutline, shareOutline });
|
|
10
|
+
/**
|
|
11
|
+
* val-qr-code
|
|
12
|
+
*
|
|
13
|
+
* A component to display QR codes generated by QrGeneratorService.
|
|
14
|
+
* Provides optional action buttons for download, copy, and share.
|
|
15
|
+
*
|
|
16
|
+
* @example Basic usage
|
|
17
|
+
* ```typescript
|
|
18
|
+
* qr = await this.qrService.generate({ data: 'https://example.com' });
|
|
19
|
+
* ```
|
|
20
|
+
* ```html
|
|
21
|
+
* <val-qr-code [props]="{ qr: qr }"></val-qr-code>
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @example With actions
|
|
25
|
+
* ```html
|
|
26
|
+
* <val-qr-code
|
|
27
|
+
* [props]="{
|
|
28
|
+
* qr: qr,
|
|
29
|
+
* showDownload: true,
|
|
30
|
+
* showCopy: true,
|
|
31
|
+
* showShare: true,
|
|
32
|
+
* displaySize: 200,
|
|
33
|
+
* showBorder: true,
|
|
34
|
+
* borderRadius: 12
|
|
35
|
+
* }"
|
|
36
|
+
* (actionComplete)="onAction($event)"
|
|
37
|
+
* ></val-qr-code>
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @input props: QrCodeMetadata - Configuration for the QR display
|
|
41
|
+
* @output actionComplete - Emits when an action (download/copy/share) completes
|
|
42
|
+
* @output imageLoad - Emits when the QR image loads
|
|
43
|
+
* @output imageError - Emits when the QR image fails to load
|
|
44
|
+
*/
|
|
45
|
+
export class QrCodeComponent {
|
|
46
|
+
constructor() {
|
|
47
|
+
this.actionComplete = new EventEmitter();
|
|
48
|
+
this.imageLoad = new EventEmitter();
|
|
49
|
+
this.imageError = new EventEmitter();
|
|
50
|
+
this.canShare = false;
|
|
51
|
+
this.canCopy = false;
|
|
52
|
+
this.langSubscription = null;
|
|
53
|
+
this.langService = inject(LangService);
|
|
54
|
+
this.qrService = inject(QrGeneratorService);
|
|
55
|
+
}
|
|
56
|
+
ngOnInit() {
|
|
57
|
+
this.canShare = this.qrService.canShare();
|
|
58
|
+
this.canCopy = this.qrService.canCopyToClipboard();
|
|
59
|
+
if (this.hasReactiveContent()) {
|
|
60
|
+
this.langSubscription = this.langService.currentLang$.subscribe(() => {
|
|
61
|
+
// Trigger change detection for labels
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
ngOnDestroy() {
|
|
66
|
+
this.langSubscription?.unsubscribe();
|
|
67
|
+
}
|
|
68
|
+
hasReactiveContent() {
|
|
69
|
+
return !!((this.props.downloadLabelContentKey && this.props.contentClass) ||
|
|
70
|
+
(this.props.copyLabelContentKey && this.props.contentClass) ||
|
|
71
|
+
(this.props.shareLabelContentKey && this.props.contentClass));
|
|
72
|
+
}
|
|
73
|
+
getDisplaySize() {
|
|
74
|
+
if (this.props.displaySize) {
|
|
75
|
+
return `${this.props.displaySize}px`;
|
|
76
|
+
}
|
|
77
|
+
return `${this.props.qr.config.width || 300}px`;
|
|
78
|
+
}
|
|
79
|
+
getBorderRadius() {
|
|
80
|
+
return this.props.borderRadius ? `${this.props.borderRadius}px` : '0';
|
|
81
|
+
}
|
|
82
|
+
getPadding() {
|
|
83
|
+
return this.props.padding ? `${this.props.padding}px` : '0';
|
|
84
|
+
}
|
|
85
|
+
getQrBorderRadius() {
|
|
86
|
+
return this.props.qrBorderRadius ? `${this.props.qrBorderRadius}px` : '0';
|
|
87
|
+
}
|
|
88
|
+
getContainerClasses() {
|
|
89
|
+
const classes = [];
|
|
90
|
+
if (this.props.cssClass)
|
|
91
|
+
classes.push(this.props.cssClass);
|
|
92
|
+
if (this.props.showBorder)
|
|
93
|
+
classes.push('with-border');
|
|
94
|
+
if (this.props.loading)
|
|
95
|
+
classes.push('loading');
|
|
96
|
+
if (this.props.theme)
|
|
97
|
+
classes.push(`theme--${this.props.theme}`);
|
|
98
|
+
if (this.props.pulseOnHover)
|
|
99
|
+
classes.push('pulse-on-hover');
|
|
100
|
+
if (this.props.scaleOnHover)
|
|
101
|
+
classes.push('scale-on-hover');
|
|
102
|
+
if (this.props.gradient)
|
|
103
|
+
classes.push('has-gradient');
|
|
104
|
+
return classes.join(' ');
|
|
105
|
+
}
|
|
106
|
+
getContainerBackground() {
|
|
107
|
+
if (this.props.gradient) {
|
|
108
|
+
const { from, to, via, direction = 'to-bottom' } = this.props.gradient;
|
|
109
|
+
const cssDirection = direction.replace(/-/g, ' ');
|
|
110
|
+
if (via) {
|
|
111
|
+
return `linear-gradient(${cssDirection}, ${from}, ${via}, ${to})`;
|
|
112
|
+
}
|
|
113
|
+
return `linear-gradient(${cssDirection}, ${from}, ${to})`;
|
|
114
|
+
}
|
|
115
|
+
return this.props.containerBackground || 'transparent';
|
|
116
|
+
}
|
|
117
|
+
getShadow() {
|
|
118
|
+
const shadowMap = {
|
|
119
|
+
none: 'none',
|
|
120
|
+
sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
|
|
121
|
+
md: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',
|
|
122
|
+
lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
|
|
123
|
+
xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',
|
|
124
|
+
};
|
|
125
|
+
if (!this.props.shadow)
|
|
126
|
+
return 'none';
|
|
127
|
+
return shadowMap[this.props.shadow] || this.props.shadow;
|
|
128
|
+
}
|
|
129
|
+
getLabelFontSize() {
|
|
130
|
+
return this.props.label?.fontSize ? `${this.props.label.fontSize}px` : '14px';
|
|
131
|
+
}
|
|
132
|
+
hasActions() {
|
|
133
|
+
return !!(this.props.showDownload || this.props.showCopy || this.props.showShare);
|
|
134
|
+
}
|
|
135
|
+
getDownloadLabel() {
|
|
136
|
+
if (this.props.downloadLabelContentKey && this.props.contentClass) {
|
|
137
|
+
return this.langService.getText(this.props.contentClass, this.props.downloadLabelContentKey, this.props.downloadLabel || 'Download');
|
|
138
|
+
}
|
|
139
|
+
return this.props.downloadLabel || 'Download';
|
|
140
|
+
}
|
|
141
|
+
getCopyLabel() {
|
|
142
|
+
if (this.props.copyLabelContentKey && this.props.contentClass) {
|
|
143
|
+
return this.langService.getText(this.props.contentClass, this.props.copyLabelContentKey, this.props.copyLabel || 'Copy');
|
|
144
|
+
}
|
|
145
|
+
return this.props.copyLabel || 'Copy';
|
|
146
|
+
}
|
|
147
|
+
getShareLabel() {
|
|
148
|
+
if (this.props.shareLabelContentKey && this.props.contentClass) {
|
|
149
|
+
return this.langService.getText(this.props.contentClass, this.props.shareLabelContentKey, this.props.shareLabel || 'Share');
|
|
150
|
+
}
|
|
151
|
+
return this.props.shareLabel || 'Share';
|
|
152
|
+
}
|
|
153
|
+
async onDownload() {
|
|
154
|
+
try {
|
|
155
|
+
const options = this.props.downloadFilename
|
|
156
|
+
? { filename: this.props.downloadFilename }
|
|
157
|
+
: undefined;
|
|
158
|
+
await this.qrService.download(this.props.qr, options);
|
|
159
|
+
this.actionComplete.emit({
|
|
160
|
+
action: 'download',
|
|
161
|
+
success: true,
|
|
162
|
+
qr: this.props.qr,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
this.actionComplete.emit({
|
|
167
|
+
action: 'download',
|
|
168
|
+
success: false,
|
|
169
|
+
qr: this.props.qr,
|
|
170
|
+
error: error,
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
async onCopy() {
|
|
175
|
+
try {
|
|
176
|
+
const success = await this.qrService.copyToClipboard(this.props.qr);
|
|
177
|
+
this.actionComplete.emit({
|
|
178
|
+
action: 'copy',
|
|
179
|
+
success,
|
|
180
|
+
qr: this.props.qr,
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
this.actionComplete.emit({
|
|
185
|
+
action: 'copy',
|
|
186
|
+
success: false,
|
|
187
|
+
qr: this.props.qr,
|
|
188
|
+
error: error,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
async onShare() {
|
|
193
|
+
try {
|
|
194
|
+
const options = {};
|
|
195
|
+
if (this.props.shareTitle)
|
|
196
|
+
options.title = this.props.shareTitle;
|
|
197
|
+
if (this.props.shareText)
|
|
198
|
+
options.text = this.props.shareText;
|
|
199
|
+
if (this.props.shareFilename)
|
|
200
|
+
options.filename = this.props.shareFilename;
|
|
201
|
+
const success = await this.qrService.share(this.props.qr, Object.keys(options).length > 0 ? options : undefined);
|
|
202
|
+
this.actionComplete.emit({
|
|
203
|
+
action: 'share',
|
|
204
|
+
success,
|
|
205
|
+
qr: this.props.qr,
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
this.actionComplete.emit({
|
|
210
|
+
action: 'share',
|
|
211
|
+
success: false,
|
|
212
|
+
qr: this.props.qr,
|
|
213
|
+
error: error,
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
onImageLoad() {
|
|
218
|
+
this.imageLoad.emit();
|
|
219
|
+
}
|
|
220
|
+
onImageError(_event) {
|
|
221
|
+
const error = new Error('Failed to load QR code image');
|
|
222
|
+
this.imageError.emit(error);
|
|
223
|
+
}
|
|
224
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: QrCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
225
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: QrCodeComponent, isStandalone: true, selector: "val-qr-code", inputs: { props: "props" }, outputs: { actionComplete: "actionComplete", imageLoad: "imageLoad", imageError: "imageError" }, ngImport: i0, template: `
|
|
226
|
+
<div
|
|
227
|
+
class="qr-code-container"
|
|
228
|
+
[class]="getContainerClasses()"
|
|
229
|
+
[style.--border-radius]="getBorderRadius()"
|
|
230
|
+
[style.--padding]="getPadding()"
|
|
231
|
+
[style.--container-bg]="getContainerBackground()"
|
|
232
|
+
[style.--border-color]="props.borderColor || 'var(--ion-color-light-shade)'"
|
|
233
|
+
[style.--shadow]="getShadow()"
|
|
234
|
+
[style.--glow-color]="props.glowColor || '#8b5cf6'"
|
|
235
|
+
[style.--qr-border-radius]="getQrBorderRadius()"
|
|
236
|
+
>
|
|
237
|
+
@if (props.loading) {
|
|
238
|
+
<div class="loading-overlay">
|
|
239
|
+
<ion-spinner name="crescent"></ion-spinner>
|
|
240
|
+
</div>
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
@if (props.label && props.label.position === 'top') {
|
|
244
|
+
<div class="qr-label qr-label--top" [style.--label-color]="props.label.color || 'inherit'" [style.--label-size]="getLabelFontSize()">
|
|
245
|
+
@if (props.label.icon && props.label.iconPosition !== 'end') {
|
|
246
|
+
<ion-icon [name]="props.label.icon"></ion-icon>
|
|
247
|
+
}
|
|
248
|
+
<span [class]="'font-weight--' + (props.label.fontWeight || 'medium')">{{ props.label.text }}</span>
|
|
249
|
+
@if (props.label.icon && props.label.iconPosition === 'end') {
|
|
250
|
+
<ion-icon [name]="props.label.icon"></ion-icon>
|
|
251
|
+
}
|
|
252
|
+
</div>
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
<div class="qr-image-wrapper" [style.--size]="getDisplaySize()">
|
|
256
|
+
<img
|
|
257
|
+
[src]="props.qr.dataUrl"
|
|
258
|
+
[alt]="props.alt || 'QR Code'"
|
|
259
|
+
class="qr-image"
|
|
260
|
+
(load)="onImageLoad()"
|
|
261
|
+
(error)="onImageError($event)"
|
|
262
|
+
/>
|
|
263
|
+
</div>
|
|
264
|
+
|
|
265
|
+
@if (props.label && props.label.position !== 'top') {
|
|
266
|
+
<div class="qr-label qr-label--bottom" [style.--label-color]="props.label.color || 'inherit'" [style.--label-size]="getLabelFontSize()">
|
|
267
|
+
@if (props.label.icon && props.label.iconPosition !== 'end') {
|
|
268
|
+
<ion-icon [name]="props.label.icon"></ion-icon>
|
|
269
|
+
}
|
|
270
|
+
<span [class]="'font-weight--' + (props.label.fontWeight || 'medium')">{{ props.label.text }}</span>
|
|
271
|
+
@if (props.label.icon && props.label.iconPosition === 'end') {
|
|
272
|
+
<ion-icon [name]="props.label.icon"></ion-icon>
|
|
273
|
+
}
|
|
274
|
+
</div>
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
@if (hasActions()) {
|
|
278
|
+
<div class="qr-actions">
|
|
279
|
+
@if (props.showDownload) {
|
|
280
|
+
<ion-button
|
|
281
|
+
fill="clear"
|
|
282
|
+
size="small"
|
|
283
|
+
(click)="onDownload()"
|
|
284
|
+
[title]="getDownloadLabel()"
|
|
285
|
+
>
|
|
286
|
+
<ion-icon name="download-outline" slot="icon-only"></ion-icon>
|
|
287
|
+
</ion-button>
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
@if (props.showCopy && canCopy) {
|
|
291
|
+
<ion-button
|
|
292
|
+
fill="clear"
|
|
293
|
+
size="small"
|
|
294
|
+
(click)="onCopy()"
|
|
295
|
+
[title]="getCopyLabel()"
|
|
296
|
+
>
|
|
297
|
+
<ion-icon name="copy-outline" slot="icon-only"></ion-icon>
|
|
298
|
+
</ion-button>
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
@if (props.showShare && canShare) {
|
|
302
|
+
<ion-button
|
|
303
|
+
fill="clear"
|
|
304
|
+
size="small"
|
|
305
|
+
(click)="onShare()"
|
|
306
|
+
[title]="getShareLabel()"
|
|
307
|
+
>
|
|
308
|
+
<ion-icon name="share-outline" slot="icon-only"></ion-icon>
|
|
309
|
+
</ion-button>
|
|
310
|
+
}
|
|
311
|
+
</div>
|
|
312
|
+
}
|
|
313
|
+
</div>
|
|
314
|
+
`, isInline: true, styles: [":host{display:inline-block}.qr-code-container{display:inline-flex;flex-direction:column;align-items:center;gap:12px;padding:var(--padding);background:var(--container-bg);border-radius:var(--border-radius);box-shadow:var(--shadow);position:relative;transition:transform .2s ease,box-shadow .2s ease}.qr-code-container.with-border{border:1px solid var(--border-color)}.qr-code-container.loading .qr-image-wrapper{opacity:.5}.qr-code-container.scale-on-hover:hover{transform:scale(1.02)}.qr-code-container.pulse-on-hover:hover{animation:pulse 1.5s infinite}.qr-label{display:flex;align-items:center;gap:6px;color:var(--label-color);font-size:var(--label-size)}.qr-label ion-icon{font-size:1.1em}.qr-label .font-weight--normal{font-weight:400}.qr-label .font-weight--medium{font-weight:500}.qr-label .font-weight--semibold{font-weight:600}.qr-label .font-weight--bold{font-weight:700}.qr-label--top{margin-bottom:4px}.qr-label--bottom{margin-top:4px}.loading-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background-color:#ffffffb3;border-radius:var(--border-radius);z-index:1}.loading-overlay ion-spinner{width:32px;height:32px}.qr-image-wrapper{width:var(--size);height:var(--size);display:flex;align-items:center;justify-content:center;transition:opacity .2s}.qr-image{width:100%;height:100%;object-fit:contain;display:block;border-radius:var(--qr-border-radius)}.qr-actions{display:flex;align-items:center;justify-content:center;gap:4px}.qr-actions ion-button{--padding-start: 8px;--padding-end: 8px;--color: var(--ion-color-medium)}.qr-actions ion-button:hover{--color: var(--ion-color-primary)}.qr-actions ion-button ion-icon{font-size:20px}.theme--minimal{background:transparent!important;padding:0!important;box-shadow:none!important;border:none!important}.theme--gradient-purple{background:linear-gradient(135deg,#667eea,#764ba2)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-purple .qr-image{border-radius:8px}.theme--gradient-purple .qr-label{color:#fff}.theme--gradient-purple .qr-actions ion-button{--color: rgba(255, 255, 255, .8)}.theme--gradient-purple .qr-actions ion-button:hover{--color: white}.theme--gradient-blue{background:linear-gradient(135deg,#4facfe,#00f2fe)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-blue .qr-image{border-radius:8px}.theme--gradient-blue .qr-label{color:#fff}.theme--gradient-blue .qr-actions ion-button{--color: rgba(255, 255, 255, .8)}.theme--gradient-blue .qr-actions ion-button:hover{--color: white}.theme--gradient-sunset{background:linear-gradient(135deg,#fa709a,#fee140)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-sunset .qr-image{border-radius:8px}.theme--gradient-sunset .qr-label{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.1)}.theme--gradient-sunset .qr-actions ion-button{--color: rgba(255, 255, 255, .9)}.theme--gradient-sunset .qr-actions ion-button:hover{--color: white}.theme--gradient-mint{background:linear-gradient(135deg,#11998e,#38ef7d)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-mint .qr-image{border-radius:8px}.theme--gradient-mint .qr-label{color:#fff}.theme--gradient-mint .qr-actions ion-button{--color: rgba(255, 255, 255, .8)}.theme--gradient-mint .qr-actions ion-button:hover{--color: white}.theme--dark{background:linear-gradient(145deg,#1a1a2e,#16213e)!important;padding:20px!important;border-radius:16px!important;border:1px solid rgba(255,255,255,.1)!important}.theme--dark .qr-image{border-radius:8px;filter:invert(1)}.theme--dark .qr-label{color:#e0e0e0}.theme--dark .qr-actions ion-button{--color: rgba(255, 255, 255, .6)}.theme--dark .qr-actions ion-button:hover{--color: white}.theme--neon{background:#0a0a0a!important;padding:20px!important;border-radius:16px!important;border:2px solid var(--glow-color)!important;box-shadow:0 0 20px var(--glow-color),inset 0 0 20px #8b5cf61a!important}.theme--neon .qr-image{border-radius:8px;filter:drop-shadow(0 0 8px var(--glow-color))}.theme--neon .qr-label{color:var(--glow-color);text-shadow:0 0 10px var(--glow-color)}.theme--neon .qr-actions ion-button{--color: var(--glow-color)}.theme--neon .qr-actions ion-button:hover{--color: white}:host(.compact) .qr-actions{position:absolute;bottom:8px;left:50%;transform:translate(-50%);opacity:0;transition:opacity .2s;background-color:#ffffffe6;border-radius:8px;padding:4px}:host(.compact) .qr-code-container:hover .qr-actions{opacity:1}:host(.card) .qr-code-container{background-color:var(--ion-background-color, white);box-shadow:0 2px 8px #0000001a;padding:16px;border-radius:12px}@keyframes pulse{0%{box-shadow:var(--shadow),0 0 #6366f166}70%{box-shadow:var(--shadow),0 0 0 10px #6366f100}to{box-shadow:var(--shadow),0 0 #6366f100}}@media (prefers-color-scheme: dark){.loading-overlay{background-color:#000000b3}:host(.compact) .qr-actions{background-color:#000000e6}.theme--default .qr-image{filter:invert(1)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }] }); }
|
|
315
|
+
}
|
|
316
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: QrCodeComponent, decorators: [{
|
|
317
|
+
type: Component,
|
|
318
|
+
args: [{ selector: 'val-qr-code', standalone: true, imports: [CommonModule, IonButton, IonIcon, IonSpinner], template: `
|
|
319
|
+
<div
|
|
320
|
+
class="qr-code-container"
|
|
321
|
+
[class]="getContainerClasses()"
|
|
322
|
+
[style.--border-radius]="getBorderRadius()"
|
|
323
|
+
[style.--padding]="getPadding()"
|
|
324
|
+
[style.--container-bg]="getContainerBackground()"
|
|
325
|
+
[style.--border-color]="props.borderColor || 'var(--ion-color-light-shade)'"
|
|
326
|
+
[style.--shadow]="getShadow()"
|
|
327
|
+
[style.--glow-color]="props.glowColor || '#8b5cf6'"
|
|
328
|
+
[style.--qr-border-radius]="getQrBorderRadius()"
|
|
329
|
+
>
|
|
330
|
+
@if (props.loading) {
|
|
331
|
+
<div class="loading-overlay">
|
|
332
|
+
<ion-spinner name="crescent"></ion-spinner>
|
|
333
|
+
</div>
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
@if (props.label && props.label.position === 'top') {
|
|
337
|
+
<div class="qr-label qr-label--top" [style.--label-color]="props.label.color || 'inherit'" [style.--label-size]="getLabelFontSize()">
|
|
338
|
+
@if (props.label.icon && props.label.iconPosition !== 'end') {
|
|
339
|
+
<ion-icon [name]="props.label.icon"></ion-icon>
|
|
340
|
+
}
|
|
341
|
+
<span [class]="'font-weight--' + (props.label.fontWeight || 'medium')">{{ props.label.text }}</span>
|
|
342
|
+
@if (props.label.icon && props.label.iconPosition === 'end') {
|
|
343
|
+
<ion-icon [name]="props.label.icon"></ion-icon>
|
|
344
|
+
}
|
|
345
|
+
</div>
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
<div class="qr-image-wrapper" [style.--size]="getDisplaySize()">
|
|
349
|
+
<img
|
|
350
|
+
[src]="props.qr.dataUrl"
|
|
351
|
+
[alt]="props.alt || 'QR Code'"
|
|
352
|
+
class="qr-image"
|
|
353
|
+
(load)="onImageLoad()"
|
|
354
|
+
(error)="onImageError($event)"
|
|
355
|
+
/>
|
|
356
|
+
</div>
|
|
357
|
+
|
|
358
|
+
@if (props.label && props.label.position !== 'top') {
|
|
359
|
+
<div class="qr-label qr-label--bottom" [style.--label-color]="props.label.color || 'inherit'" [style.--label-size]="getLabelFontSize()">
|
|
360
|
+
@if (props.label.icon && props.label.iconPosition !== 'end') {
|
|
361
|
+
<ion-icon [name]="props.label.icon"></ion-icon>
|
|
362
|
+
}
|
|
363
|
+
<span [class]="'font-weight--' + (props.label.fontWeight || 'medium')">{{ props.label.text }}</span>
|
|
364
|
+
@if (props.label.icon && props.label.iconPosition === 'end') {
|
|
365
|
+
<ion-icon [name]="props.label.icon"></ion-icon>
|
|
366
|
+
}
|
|
367
|
+
</div>
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
@if (hasActions()) {
|
|
371
|
+
<div class="qr-actions">
|
|
372
|
+
@if (props.showDownload) {
|
|
373
|
+
<ion-button
|
|
374
|
+
fill="clear"
|
|
375
|
+
size="small"
|
|
376
|
+
(click)="onDownload()"
|
|
377
|
+
[title]="getDownloadLabel()"
|
|
378
|
+
>
|
|
379
|
+
<ion-icon name="download-outline" slot="icon-only"></ion-icon>
|
|
380
|
+
</ion-button>
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
@if (props.showCopy && canCopy) {
|
|
384
|
+
<ion-button
|
|
385
|
+
fill="clear"
|
|
386
|
+
size="small"
|
|
387
|
+
(click)="onCopy()"
|
|
388
|
+
[title]="getCopyLabel()"
|
|
389
|
+
>
|
|
390
|
+
<ion-icon name="copy-outline" slot="icon-only"></ion-icon>
|
|
391
|
+
</ion-button>
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
@if (props.showShare && canShare) {
|
|
395
|
+
<ion-button
|
|
396
|
+
fill="clear"
|
|
397
|
+
size="small"
|
|
398
|
+
(click)="onShare()"
|
|
399
|
+
[title]="getShareLabel()"
|
|
400
|
+
>
|
|
401
|
+
<ion-icon name="share-outline" slot="icon-only"></ion-icon>
|
|
402
|
+
</ion-button>
|
|
403
|
+
}
|
|
404
|
+
</div>
|
|
405
|
+
}
|
|
406
|
+
</div>
|
|
407
|
+
`, styles: [":host{display:inline-block}.qr-code-container{display:inline-flex;flex-direction:column;align-items:center;gap:12px;padding:var(--padding);background:var(--container-bg);border-radius:var(--border-radius);box-shadow:var(--shadow);position:relative;transition:transform .2s ease,box-shadow .2s ease}.qr-code-container.with-border{border:1px solid var(--border-color)}.qr-code-container.loading .qr-image-wrapper{opacity:.5}.qr-code-container.scale-on-hover:hover{transform:scale(1.02)}.qr-code-container.pulse-on-hover:hover{animation:pulse 1.5s infinite}.qr-label{display:flex;align-items:center;gap:6px;color:var(--label-color);font-size:var(--label-size)}.qr-label ion-icon{font-size:1.1em}.qr-label .font-weight--normal{font-weight:400}.qr-label .font-weight--medium{font-weight:500}.qr-label .font-weight--semibold{font-weight:600}.qr-label .font-weight--bold{font-weight:700}.qr-label--top{margin-bottom:4px}.qr-label--bottom{margin-top:4px}.loading-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background-color:#ffffffb3;border-radius:var(--border-radius);z-index:1}.loading-overlay ion-spinner{width:32px;height:32px}.qr-image-wrapper{width:var(--size);height:var(--size);display:flex;align-items:center;justify-content:center;transition:opacity .2s}.qr-image{width:100%;height:100%;object-fit:contain;display:block;border-radius:var(--qr-border-radius)}.qr-actions{display:flex;align-items:center;justify-content:center;gap:4px}.qr-actions ion-button{--padding-start: 8px;--padding-end: 8px;--color: var(--ion-color-medium)}.qr-actions ion-button:hover{--color: var(--ion-color-primary)}.qr-actions ion-button ion-icon{font-size:20px}.theme--minimal{background:transparent!important;padding:0!important;box-shadow:none!important;border:none!important}.theme--gradient-purple{background:linear-gradient(135deg,#667eea,#764ba2)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-purple .qr-image{border-radius:8px}.theme--gradient-purple .qr-label{color:#fff}.theme--gradient-purple .qr-actions ion-button{--color: rgba(255, 255, 255, .8)}.theme--gradient-purple .qr-actions ion-button:hover{--color: white}.theme--gradient-blue{background:linear-gradient(135deg,#4facfe,#00f2fe)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-blue .qr-image{border-radius:8px}.theme--gradient-blue .qr-label{color:#fff}.theme--gradient-blue .qr-actions ion-button{--color: rgba(255, 255, 255, .8)}.theme--gradient-blue .qr-actions ion-button:hover{--color: white}.theme--gradient-sunset{background:linear-gradient(135deg,#fa709a,#fee140)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-sunset .qr-image{border-radius:8px}.theme--gradient-sunset .qr-label{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.1)}.theme--gradient-sunset .qr-actions ion-button{--color: rgba(255, 255, 255, .9)}.theme--gradient-sunset .qr-actions ion-button:hover{--color: white}.theme--gradient-mint{background:linear-gradient(135deg,#11998e,#38ef7d)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-mint .qr-image{border-radius:8px}.theme--gradient-mint .qr-label{color:#fff}.theme--gradient-mint .qr-actions ion-button{--color: rgba(255, 255, 255, .8)}.theme--gradient-mint .qr-actions ion-button:hover{--color: white}.theme--dark{background:linear-gradient(145deg,#1a1a2e,#16213e)!important;padding:20px!important;border-radius:16px!important;border:1px solid rgba(255,255,255,.1)!important}.theme--dark .qr-image{border-radius:8px;filter:invert(1)}.theme--dark .qr-label{color:#e0e0e0}.theme--dark .qr-actions ion-button{--color: rgba(255, 255, 255, .6)}.theme--dark .qr-actions ion-button:hover{--color: white}.theme--neon{background:#0a0a0a!important;padding:20px!important;border-radius:16px!important;border:2px solid var(--glow-color)!important;box-shadow:0 0 20px var(--glow-color),inset 0 0 20px #8b5cf61a!important}.theme--neon .qr-image{border-radius:8px;filter:drop-shadow(0 0 8px var(--glow-color))}.theme--neon .qr-label{color:var(--glow-color);text-shadow:0 0 10px var(--glow-color)}.theme--neon .qr-actions ion-button{--color: var(--glow-color)}.theme--neon .qr-actions ion-button:hover{--color: white}:host(.compact) .qr-actions{position:absolute;bottom:8px;left:50%;transform:translate(-50%);opacity:0;transition:opacity .2s;background-color:#ffffffe6;border-radius:8px;padding:4px}:host(.compact) .qr-code-container:hover .qr-actions{opacity:1}:host(.card) .qr-code-container{background-color:var(--ion-background-color, white);box-shadow:0 2px 8px #0000001a;padding:16px;border-radius:12px}@keyframes pulse{0%{box-shadow:var(--shadow),0 0 #6366f166}70%{box-shadow:var(--shadow),0 0 0 10px #6366f100}to{box-shadow:var(--shadow),0 0 #6366f100}}@media (prefers-color-scheme: dark){.loading-overlay{background-color:#000000b3}:host(.compact) .qr-actions{background-color:#000000e6}.theme--default .qr-image{filter:invert(1)}}\n"] }]
|
|
408
|
+
}], propDecorators: { props: [{
|
|
409
|
+
type: Input
|
|
410
|
+
}], actionComplete: [{
|
|
411
|
+
type: Output
|
|
412
|
+
}], imageLoad: [{
|
|
413
|
+
type: Output
|
|
414
|
+
}], imageError: [{
|
|
415
|
+
type: Output
|
|
416
|
+
}] } });
|
|
417
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvcXItY29kZS9xci1jb2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHNUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOztBQUVwRixRQUFRLENBQUMsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7QUFrR3pEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFuSTVCO1FBc0lZLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDdkQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDckMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFFakQsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRVIscUJBQWdCLEdBQXdCLElBQUksQ0FBQztRQUM3QyxnQkFBVyxHQUFHLE1BQU0sQ0FB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M0MsZUFBZTtrQkFuSTNCLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxZQUM3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5RlQ7OEJBdUNRLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE9uRGVzdHJveSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25JY29uLCBJb25TcGlubmVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgZG93bmxvYWRPdXRsaW5lLCBjb3B5T3V0bGluZSwgc2hhcmVPdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5pbXBvcnQgeyBRckNvZGVNZXRhZGF0YSwgUXJDb2RlQWN0aW9uRXZlbnQsIFFyRGlzcGxheVRoZW1lIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBRckdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9xci1nZW5lcmF0b3IvcXItZ2VuZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGFuZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sYW5nLXByb3ZpZGVyL2xhbmctcHJvdmlkZXIuc2VydmljZSc7XG5cbmFkZEljb25zKHsgZG93bmxvYWRPdXRsaW5lLCBjb3B5T3V0bGluZSwgc2hhcmVPdXRsaW5lIH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcXItY29kZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lcl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJxci1jb2RlLWNvbnRhaW5lclwiXG4gICAgICBbY2xhc3NdPVwiZ2V0Q29udGFpbmVyQ2xhc3NlcygpXCJcbiAgICAgIFtzdHlsZS4tLWJvcmRlci1yYWRpdXNdPVwiZ2V0Qm9yZGVyUmFkaXVzKClcIlxuICAgICAgW3N0eWxlLi0tcGFkZGluZ109XCJnZXRQYWRkaW5nKClcIlxuICAgICAgW3N0eWxlLi0tY29udGFpbmVyLWJnXT1cImdldENvbnRhaW5lckJhY2tncm91bmQoKVwiXG4gICAgICBbc3R5bGUuLS1ib3JkZXItY29sb3JdPVwicHJvcHMuYm9yZGVyQ29sb3IgfHwgJ3ZhcigtLWlvbi1jb2xvci1saWdodC1zaGFkZSknXCJcbiAgICAgIFtzdHlsZS4tLXNoYWRvd109XCJnZXRTaGFkb3coKVwiXG4gICAgICBbc3R5bGUuLS1nbG93LWNvbG9yXT1cInByb3BzLmdsb3dDb2xvciB8fCAnIzhiNWNmNidcIlxuICAgICAgW3N0eWxlLi0tcXItYm9yZGVyLXJhZGl1c109XCJnZXRRckJvcmRlclJhZGl1cygpXCJcbiAgICA+XG4gICAgICBAaWYgKHByb3BzLmxvYWRpbmcpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctb3ZlcmxheVwiPlxuICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIj48L2lvbi1zcGlubmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmIChwcm9wcy5sYWJlbCAmJiBwcm9wcy5sYWJlbC5wb3NpdGlvbiA9PT0gJ3RvcCcpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInFyLWxhYmVsIHFyLWxhYmVsLS10b3BcIiBbc3R5bGUuLS1sYWJlbC1jb2xvcl09XCJwcm9wcy5sYWJlbC5jb2xvciB8fCAnaW5oZXJpdCdcIiBbc3R5bGUuLS1sYWJlbC1zaXplXT1cImdldExhYmVsRm9udFNpemUoKVwiPlxuICAgICAgICAgIEBpZiAocHJvcHMubGFiZWwuaWNvbiAmJiBwcm9wcy5sYWJlbC5pY29uUG9zaXRpb24gIT09ICdlbmQnKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwicHJvcHMubGFiZWwuaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxzcGFuIFtjbGFzc109XCInZm9udC13ZWlnaHQtLScgKyAocHJvcHMubGFiZWwuZm9udFdlaWdodCB8fCAnbWVkaXVtJylcIj57eyBwcm9wcy5sYWJlbC50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgIEBpZiAocHJvcHMubGFiZWwuaWNvbiAmJiBwcm9wcy5sYWJlbC5pY29uUG9zaXRpb24gPT09ICdlbmQnKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwicHJvcHMubGFiZWwuaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgPGRpdiBjbGFzcz1cInFyLWltYWdlLXdyYXBwZXJcIiBbc3R5bGUuLS1zaXplXT1cImdldERpc3BsYXlTaXplKClcIj5cbiAgICAgICAgPGltZ1xuICAgICAgICAgIFtzcmNdPVwicHJvcHMucXIuZGF0YVVybFwiXG4gICAgICAgICAgW2FsdF09XCJwcm9wcy5hbHQgfHwgJ1FSIENvZGUnXCJcbiAgICAgICAgICBjbGFzcz1cInFyLWltYWdlXCJcbiAgICAgICAgICAobG9hZCk9XCJvbkltYWdlTG9hZCgpXCJcbiAgICAgICAgICAoZXJyb3IpPVwib25JbWFnZUVycm9yKCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAocHJvcHMubGFiZWwgJiYgcHJvcHMubGFiZWwucG9zaXRpb24gIT09ICd0b3AnKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJxci1sYWJlbCBxci1sYWJlbC0tYm90dG9tXCIgW3N0eWxlLi0tbGFiZWwtY29sb3JdPVwicHJvcHMubGFiZWwuY29sb3IgfHwgJ2luaGVyaXQnXCIgW3N0eWxlLi0tbGFiZWwtc2l6ZV09XCJnZXRMYWJlbEZvbnRTaXplKClcIj5cbiAgICAgICAgICBAaWYgKHByb3BzLmxhYmVsLmljb24gJiYgcHJvcHMubGFiZWwuaWNvblBvc2l0aW9uICE9PSAnZW5kJykge1xuICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInByb3BzLmxhYmVsLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiJ2ZvbnQtd2VpZ2h0LS0nICsgKHByb3BzLmxhYmVsLmZvbnRXZWlnaHQgfHwgJ21lZGl1bScpXCI+e3sgcHJvcHMubGFiZWwudGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICBAaWYgKHByb3BzLmxhYmVsLmljb24gJiYgcHJvcHMubGFiZWwuaWNvblBvc2l0aW9uID09PSAnZW5kJykge1xuICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInByb3BzLmxhYmVsLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoaGFzQWN0aW9ucygpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJxci1hY3Rpb25zXCI+XG4gICAgICAgICAgQGlmIChwcm9wcy5zaG93RG93bmxvYWQpIHtcbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkRvd25sb2FkKClcIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwiZ2V0RG93bmxvYWRMYWJlbCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJkb3dubG9hZC1vdXRsaW5lXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChwcm9wcy5zaG93Q29weSAmJiBjYW5Db3B5KSB7XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25Db3B5KClcIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwiZ2V0Q29weUxhYmVsKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNvcHktb3V0bGluZVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiAocHJvcHMuc2hvd1NoYXJlICYmIGNhblNoYXJlKSB7XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25TaGFyZSgpXCJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cImdldFNoYXJlTGFiZWwoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwic2hhcmUtb3V0bGluZVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3FyLWNvZGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1xci1jb2RlXG4gKlxuICogQSBjb21wb25lbnQgdG8gZGlzcGxheSBRUiBjb2RlcyBnZW5lcmF0ZWQgYnkgUXJHZW5lcmF0b3JTZXJ2aWNlLlxuICogUHJvdmlkZXMgb3B0aW9uYWwgYWN0aW9uIGJ1dHRvbnMgZm9yIGRvd25sb2FkLCBjb3B5LCBhbmQgc2hhcmUuXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2VcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHFyID0gYXdhaXQgdGhpcy5xclNlcnZpY2UuZ2VuZXJhdGUoeyBkYXRhOiAnaHR0cHM6Ly9leGFtcGxlLmNvbScgfSk7XG4gKiBgYGBcbiAqIGBgYGh0bWxcbiAqIDx2YWwtcXItY29kZSBbcHJvcHNdPVwieyBxcjogcXIgfVwiPjwvdmFsLXFyLWNvZGU+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIGFjdGlvbnNcbiAqIGBgYGh0bWxcbiAqIDx2YWwtcXItY29kZVxuICogICBbcHJvcHNdPVwie1xuICogICAgIHFyOiBxcixcbiAqICAgICBzaG93RG93bmxvYWQ6IHRydWUsXG4gKiAgICAgc2hvd0NvcHk6IHRydWUsXG4gKiAgICAgc2hvd1NoYXJlOiB0cnVlLFxuICogICAgIGRpc3BsYXlTaXplOiAyMDAsXG4gKiAgICAgc2hvd0JvcmRlcjogdHJ1ZSxcbiAqICAgICBib3JkZXJSYWRpdXM6IDEyXG4gKiAgIH1cIlxuICogICAoYWN0aW9uQ29tcGxldGUpPVwib25BY3Rpb24oJGV2ZW50KVwiXG4gKiA+PC92YWwtcXItY29kZT5cbiAqIGBgYFxuICpcbiAqIEBpbnB1dCBwcm9wczogUXJDb2RlTWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgUVIgZGlzcGxheVxuICogQG91dHB1dCBhY3Rpb25Db21wbGV0ZSAtIEVtaXRzIHdoZW4gYW4gYWN0aW9uIChkb3dubG9hZC9jb3B5L3NoYXJlKSBjb21wbGV0ZXNcbiAqIEBvdXRwdXQgaW1hZ2VMb2FkIC0gRW1pdHMgd2hlbiB0aGUgUVIgaW1hZ2UgbG9hZHNcbiAqIEBvdXRwdXQgaW1hZ2VFcnJvciAtIEVtaXRzIHdoZW4gdGhlIFFSIGltYWdlIGZhaWxzIHRvIGxvYWRcbiAqL1xuZXhwb3J0IGNsYXNzIFFyQ29kZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcHJvcHM6IFFyQ29kZU1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKSBhY3Rpb25Db21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8UXJDb2RlQWN0aW9uRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBpbWFnZUxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBpbWFnZUVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxFcnJvcj4oKTtcblxuICBjYW5TaGFyZSA9IGZhbHNlO1xuICBjYW5Db3B5ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBsYW5nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBsYW5nU2VydmljZSA9IGluamVjdChMYW5nU2VydmljZSk7XG4gIHByaXZhdGUgcXJTZXJ2aWNlID0gaW5qZWN0KFFyR2VuZXJhdG9yU2VydmljZSk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5TaGFyZSA9IHRoaXMucXJTZXJ2aWNlLmNhblNoYXJlKCk7XG4gICAgdGhpcy5jYW5Db3B5ID0gdGhpcy5xclNlcnZpY2UuY2FuQ29weVRvQ2xpcGJvYXJkKCk7XG5cbiAgICBpZiAodGhpcy5oYXNSZWFjdGl2ZUNvbnRlbnQoKSkge1xuICAgICAgdGhpcy5sYW5nU3Vic2NyaXB0aW9uID0gdGhpcy5sYW5nU2VydmljZS5jdXJyZW50TGFuZyQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLy8gVHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uIGZvciBsYWJlbHNcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubGFuZ1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzUmVhY3RpdmVDb250ZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShcbiAgICAgICh0aGlzLnByb3BzLmRvd25sb2FkTGFiZWxDb250ZW50S2V5ICYmIHRoaXMucHJvcHMuY29udGVudENsYXNzKSB8fFxuICAgICAgKHRoaXMucHJvcHMuY29weUxhYmVsQ29udGVudEtleSAmJiB0aGlzLnByb3BzLmNvbnRlbnRDbGFzcykgfHxcbiAgICAgICh0aGlzLnByb3BzLnNoYXJlTGFiZWxDb250ZW50S2V5ICYmIHRoaXMucHJvcHMuY29udGVudENsYXNzKVxuICAgICk7XG4gIH1cblxuICBnZXREaXNwbGF5U2l6ZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnByb3BzLmRpc3BsYXlTaXplKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5wcm9wcy5kaXNwbGF5U2l6ZX1weGA7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLnByb3BzLnFyLmNvbmZpZy53aWR0aCB8fCAzMDB9cHhgO1xuICB9XG5cbiAgZ2V0Qm9yZGVyUmFkaXVzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuYm9yZGVyUmFkaXVzID8gYCR7dGhpcy5wcm9wcy5ib3JkZXJSYWRpdXN9cHhgIDogJzAnO1xuICB9XG5cbiAgZ2V0UGFkZGluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnBhZGRpbmcgPyBgJHt0aGlzLnByb3BzLnBhZGRpbmd9cHhgIDogJzAnO1xuICB9XG5cbiAgZ2V0UXJCb3JkZXJSYWRpdXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5xckJvcmRlclJhZGl1cyA/IGAke3RoaXMucHJvcHMucXJCb3JkZXJSYWRpdXN9cHhgIDogJzAnO1xuICB9XG5cbiAgZ2V0Q29udGFpbmVyQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNsYXNzZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAodGhpcy5wcm9wcy5jc3NDbGFzcykgY2xhc3Nlcy5wdXNoKHRoaXMucHJvcHMuY3NzQ2xhc3MpO1xuICAgIGlmICh0aGlzLnByb3BzLnNob3dCb3JkZXIpIGNsYXNzZXMucHVzaCgnd2l0aC1ib3JkZXInKTtcbiAgICBpZiAodGhpcy5wcm9wcy5sb2FkaW5nKSBjbGFzc2VzLnB1c2goJ2xvYWRpbmcnKTtcbiAgICBpZiAodGhpcy5wcm9wcy50aGVtZSkgY2xhc3Nlcy5wdXNoKGB0aGVtZS0tJHt0aGlzLnByb3BzLnRoZW1lfWApO1xuICAgIGlmICh0aGlzLnByb3BzLnB1bHNlT25Ib3ZlcikgY2xhc3Nlcy5wdXNoKCdwdWxzZS1vbi1ob3ZlcicpO1xuICAgIGlmICh0aGlzLnByb3BzLnNjYWxlT25Ib3ZlcikgY2xhc3Nlcy5wdXNoKCdzY2FsZS1vbi1ob3ZlcicpO1xuICAgIGlmICh0aGlzLnByb3BzLmdyYWRpZW50KSBjbGFzc2VzLnB1c2goJ2hhcy1ncmFkaWVudCcpO1xuXG4gICAgcmV0dXJuIGNsYXNzZXMuam9pbignICcpO1xuICB9XG5cbiAgZ2V0Q29udGFpbmVyQmFja2dyb3VuZCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnByb3BzLmdyYWRpZW50KSB7XG4gICAgICBjb25zdCB7IGZyb20sIHRvLCB2aWEsIGRpcmVjdGlvbiA9ICd0by1ib3R0b20nIH0gPSB0aGlzLnByb3BzLmdyYWRpZW50O1xuICAgICAgY29uc3QgY3NzRGlyZWN0aW9uID0gZGlyZWN0aW9uLnJlcGxhY2UoLy0vZywgJyAnKTtcbiAgICAgIGlmICh2aWEpIHtcbiAgICAgICAgcmV0dXJuIGBsaW5lYXItZ3JhZGllbnQoJHtjc3NEaXJlY3Rpb259LCAke2Zyb219LCAke3ZpYX0sICR7dG99KWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYGxpbmVhci1ncmFkaWVudCgke2Nzc0RpcmVjdGlvbn0sICR7ZnJvbX0sICR7dG99KWA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByb3BzLmNvbnRhaW5lckJhY2tncm91bmQgfHwgJ3RyYW5zcGFyZW50JztcbiAgfVxuXG4gIGdldFNoYWRvdygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNoYWRvd01hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIG5vbmU6ICdub25lJyxcbiAgICAgIHNtOiAnMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KScsXG4gICAgICBtZDogJzAgNHB4IDZweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjA2KScsXG4gICAgICBsZzogJzAgMTBweCAxNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDRweCA2cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMDUpJyxcbiAgICAgIHhsOiAnMCAyMHB4IDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMTBweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjA0KScsXG4gICAgfTtcblxuICAgIGlmICghdGhpcy5wcm9wcy5zaGFkb3cpIHJldHVybiAnbm9uZSc7XG4gICAgcmV0dXJuIHNoYWRvd01hcFt0aGlzLnByb3BzLnNoYWRvd10gfHwgdGhpcy5wcm9wcy5zaGFkb3c7XG4gIH1cblxuICBnZXRMYWJlbEZvbnRTaXplKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMubGFiZWw/LmZvbnRTaXplID8gYCR7dGhpcy5wcm9wcy5sYWJlbC5mb250U2l6ZX1weGAgOiAnMTRweCc7XG4gIH1cblxuICBoYXNBY3Rpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh0aGlzLnByb3BzLnNob3dEb3dubG9hZCB8fCB0aGlzLnByb3BzLnNob3dDb3B5IHx8IHRoaXMucHJvcHMuc2hvd1NoYXJlKTtcbiAgfVxuXG4gIGdldERvd25sb2FkTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5wcm9wcy5kb3dubG9hZExhYmVsQ29udGVudEtleSAmJiB0aGlzLnByb3BzLmNvbnRlbnRDbGFzcykge1xuICAgICAgcmV0dXJuIHRoaXMubGFuZ1NlcnZpY2UuZ2V0VGV4dChcbiAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MsXG4gICAgICAgIHRoaXMucHJvcHMuZG93bmxvYWRMYWJlbENvbnRlbnRLZXksXG4gICAgICAgIHRoaXMucHJvcHMuZG93bmxvYWRMYWJlbCB8fCAnRG93bmxvYWQnXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wcm9wcy5kb3dubG9hZExhYmVsIHx8ICdEb3dubG9hZCc7XG4gIH1cblxuICBnZXRDb3B5TGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5wcm9wcy5jb3B5TGFiZWxDb250ZW50S2V5ICYmIHRoaXMucHJvcHMuY29udGVudENsYXNzKSB7XG4gICAgICByZXR1cm4gdGhpcy5sYW5nU2VydmljZS5nZXRUZXh0KFxuICAgICAgICB0aGlzLnByb3BzLmNvbnRlbnRDbGFzcyxcbiAgICAgICAgdGhpcy5wcm9wcy5jb3B5TGFiZWxDb250ZW50S2V5LFxuICAgICAgICB0aGlzLnByb3BzLmNvcHlMYWJlbCB8fCAnQ29weSdcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByb3BzLmNvcHlMYWJlbCB8fCAnQ29weSc7XG4gIH1cblxuICBnZXRTaGFyZUxhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMuc2hhcmVMYWJlbENvbnRlbnRLZXkgJiYgdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MpIHtcbiAgICAgIHJldHVybiB0aGlzLmxhbmdTZXJ2aWNlLmdldFRleHQoXG4gICAgICAgIHRoaXMucHJvcHMuY29udGVudENsYXNzLFxuICAgICAgICB0aGlzLnByb3BzLnNoYXJlTGFiZWxDb250ZW50S2V5LFxuICAgICAgICB0aGlzLnByb3BzLnNoYXJlTGFiZWwgfHwgJ1NoYXJlJ1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuc2hhcmVMYWJlbCB8fCAnU2hhcmUnO1xuICB9XG5cbiAgYXN5bmMgb25Eb3dubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMucHJvcHMuZG93bmxvYWRGaWxlbmFtZVxuICAgICAgICA/IHsgZmlsZW5hbWU6IHRoaXMucHJvcHMuZG93bmxvYWRGaWxlbmFtZSB9XG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgYXdhaXQgdGhpcy5xclNlcnZpY2UuZG93bmxvYWQodGhpcy5wcm9wcy5xciwgb3B0aW9ucyk7XG4gICAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xuICAgICAgICBhY3Rpb246ICdkb3dubG9hZCcsXG4gICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIHFyOiB0aGlzLnByb3BzLnFyLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuYWN0aW9uQ29tcGxldGUuZW1pdCh7XG4gICAgICAgIGFjdGlvbjogJ2Rvd25sb2FkJyxcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIHFyOiB0aGlzLnByb3BzLnFyLFxuICAgICAgICBlcnJvcjogZXJyb3IgYXMgRXJyb3IsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBvbkNvcHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCB0aGlzLnFyU2VydmljZS5jb3B5VG9DbGlwYm9hcmQodGhpcy5wcm9wcy5xcik7XG4gICAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xuICAgICAgICBhY3Rpb246ICdjb3B5JyxcbiAgICAgICAgc3VjY2VzcyxcbiAgICAgICAgcXI6IHRoaXMucHJvcHMucXIsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcbiAgICAgICAgYWN0aW9uOiAnY29weScsXG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBxcjogdGhpcy5wcm9wcy5xcixcbiAgICAgICAgZXJyb3I6IGVycm9yIGFzIEVycm9yLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb25TaGFyZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3B0aW9uczogeyB0aXRsZT86IHN0cmluZzsgdGV4dD86IHN0cmluZzsgZmlsZW5hbWU/OiBzdHJpbmcgfSA9IHt9O1xuICAgICAgaWYgKHRoaXMucHJvcHMuc2hhcmVUaXRsZSkgb3B0aW9ucy50aXRsZSA9IHRoaXMucHJvcHMuc2hhcmVUaXRsZTtcbiAgICAgIGlmICh0aGlzLnByb3BzLnNoYXJlVGV4dCkgb3B0aW9ucy50ZXh0ID0gdGhpcy5wcm9wcy5zaGFyZVRleHQ7XG4gICAgICBpZiAodGhpcy5wcm9wcy5zaGFyZUZpbGVuYW1lKSBvcHRpb25zLmZpbGVuYW1lID0gdGhpcy5wcm9wcy5zaGFyZUZpbGVuYW1lO1xuXG4gICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgdGhpcy5xclNlcnZpY2Uuc2hhcmUoXG4gICAgICAgIHRoaXMucHJvcHMucXIsXG4gICAgICAgIE9iamVjdC5rZXlzKG9wdGlvbnMpLmxlbmd0aCA+IDAgPyBvcHRpb25zIDogdW5kZWZpbmVkXG4gICAgICApO1xuICAgICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcbiAgICAgICAgYWN0aW9uOiAnc2hhcmUnLFxuICAgICAgICBzdWNjZXNzLFxuICAgICAgICBxcjogdGhpcy5wcm9wcy5xcixcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xuICAgICAgICBhY3Rpb246ICdzaGFyZScsXG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBxcjogdGhpcy5wcm9wcy5xcixcbiAgICAgICAgZXJyb3I6IGVycm9yIGFzIEVycm9yLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25JbWFnZUxvYWQoKTogdm9pZCB7XG4gICAgdGhpcy5pbWFnZUxvYWQuZW1pdCgpO1xuICB9XG5cbiAgb25JbWFnZUVycm9yKF9ldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignRmFpbGVkIHRvIGxvYWQgUVIgY29kZSBpbWFnZScpO1xuICAgIHRoaXMuaW1hZ2VFcnJvci5lbWl0KGVycm9yKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvcXItY29kZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXJSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9xci1nZW5lcmF0b3IvdHlwZXMnO1xuXG4vKipcbiAqIFRoZW1lIHByZXNldHMgZm9yIHF1aWNrIHN0eWxpbmcuXG4gKi9cbmV4cG9ydCB0eXBlIFFyRGlzcGxheVRoZW1lID1cbiAgfCAnZGVmYXVsdCdcbiAgfCAnbWluaW1hbCdcbiAgfCAnZ3JhZGllbnQtcHVycGxlJ1xuICB8ICdncmFkaWVudC1ibHVlJ1xuICB8ICdncmFkaWVudC1zdW5zZXQnXG4gIHwgJ2dyYWRpZW50LW1pbnQnXG4gIHwgJ2RhcmsnXG4gIHwgJ25lb24nO1xuXG4vKipcbiAqIExhYmVsIHBvc2l0aW9uIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFFyTGFiZWxQb3NpdGlvbiA9ICd0b3AnIHwgJ2JvdHRvbSc7XG5cbi8qKlxuICogR3JhZGllbnQgZGlyZWN0aW9uIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFFyR3JhZGllbnREaXJlY3Rpb24gPVxuICB8ICd0by1yaWdodCdcbiAgfCAndG8tbGVmdCdcbiAgfCAndG8tYm90dG9tJ1xuICB8ICd0by10b3AnXG4gIHwgJ3RvLWJvdHRvbS1yaWdodCdcbiAgfCAndG8tYm90dG9tLWxlZnQnXG4gIHwgJ3RvLXRvcC1yaWdodCdcbiAgfCAndG8tdG9wLWxlZnQnO1xuXG4vKipcbiAqIEdyYWRpZW50IGNvbmZpZ3VyYXRpb24gZm9yIGJhY2tncm91bmRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFFyRGlzcGxheUdyYWRpZW50IHtcbiAgLyoqIFN0YXJ0IGNvbG9yICovXG4gIGZyb206IHN0cmluZztcbiAgLyoqIEVuZCBjb2xvciAqL1xuICB0bzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgbWlkZGxlIGNvbG9yICovXG4gIHZpYT86IHN0cmluZztcbiAgLyoqIEdyYWRpZW50IGRpcmVjdGlvbiAqL1xuICBkaXJlY3Rpb24/OiBRckdyYWRpZW50RGlyZWN0aW9uO1xufVxuXG4vKipcbiAqIExhYmVsIGNvbmZpZ3VyYXRpb24gZm9yIFFSIGRpc3BsYXkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXJMYWJlbENvbmZpZyB7XG4gIC8qKiBMYWJlbCB0ZXh0ICovXG4gIHRleHQ6IHN0cmluZztcbiAgLyoqIFBvc2l0aW9uICh0b3Agb3IgYm90dG9tKSAqL1xuICBwb3NpdGlvbj86IFFyTGFiZWxQb3NpdGlvbjtcbiAgLyoqIFRleHQgY29sb3IgKi9cbiAgY29sb3I/OiBzdHJpbmc7XG4gIC8qKiBGb250IHNpemUgaW4gcGl4ZWxzICovXG4gIGZvbnRTaXplPzogbnVtYmVyO1xuICAvKiogRm9udCB3ZWlnaHQgKi9cbiAgZm9udFdlaWdodD86ICdub3JtYWwnIHwgJ21lZGl1bScgfCAnc2VtaWJvbGQnIHwgJ2JvbGQnO1xuICAvKiogSWNvbiBuYW1lIChpb25pY29uKSB0byBzaG93IHdpdGggbGFiZWwgKi9cbiAgaWNvbj86IHN0cmluZztcbiAgLyoqIEljb24gcG9zaXRpb24gKi9cbiAgaWNvblBvc2l0aW9uPzogJ3N0YXJ0JyB8ICdlbmQnO1xufVxuXG4vKipcbiAqIE1ldGFkYXRhIGZvciB0aGUgUVIgY29kZSBkaXNwbGF5IGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRckNvZGVNZXRhZGF0YSB7XG4gIC8qKiBRUiByZXN1bHQgZnJvbSBRckdlbmVyYXRvclNlcnZpY2UgKi9cbiAgcXI6IFFyUmVzdWx0O1xuXG4gIC8qKiBBbHQgdGV4dCBmb3IgYWNjZXNzaWJpbGl0eSAqL1xuICBhbHQ/OiBzdHJpbmc7XG5cbiAgLyoqIFdoZXRoZXIgdG8gc2hvdyBkb3dubG9hZCBidXR0b24gKi9cbiAgc2hvd0Rvd25sb2FkPzogYm9vbGVhbjtcbiAgLyoqIERvd25sb2FkIGJ1dHRvbiBsYWJlbCAqL1xuICBkb3dubG9hZExhYmVsPzogc3RyaW5nO1xuXG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgY29weSBidXR0b24gKi9cbiAgc2hvd0NvcHk/OiBib29sZWFuO1xuICAvKiogQ29weSBidXR0b24gbGFiZWwgKi9cbiAgY29weUxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgc2hhcmUgYnV0dG9uICovXG4gIHNob3dTaGFyZT86IGJvb2xlYW47XG4gIC8qKiBTaGFyZSBidXR0b24gbGFiZWwgKi9cbiAgc2hhcmVMYWJlbD86IHN0cmluZztcblxuICAvKiogQ3VzdG9tIENTUyBjbGFzcyAqL1xuICBjc3NDbGFzcz86IHN0cmluZztcblxuICAvKiogU2l6ZSBvdmVycmlkZSAod2lsbCBzY2FsZSB0aGUgaW1hZ2UpICovXG4gIGRpc3BsYXlTaXplPzogbnVtYmVyO1xuXG4gIC8qKiBCb3JkZXIgcmFkaXVzIGZvciB0aGUgY29udGFpbmVyICovXG4gIGJvcmRlclJhZGl1cz86IG51bWJlcjtcblxuICAvKiogU2hvdyBib3JkZXIgYXJvdW5kIFFSICovXG4gIHNob3dCb3JkZXI/OiBib29sZWFuO1xuICAvKiogQm9yZGVyIGNvbG9yICovXG4gIGJvcmRlckNvbG9yPzogc3RyaW5nO1xuXG4gIC8qKiBQYWRkaW5nIGFyb3VuZCB0aGUgUVIgY29kZSAqL1xuICBwYWRkaW5nPzogbnVtYmVyO1xuXG4gIC8qKiBCYWNrZ3JvdW5kIGNvbG9yIGZvciBjb250YWluZXIgKi9cbiAgY29udGFpbmVyQmFja2dyb3VuZD86IHN0cmluZztcblxuICAvKiogTG9hZGluZyBzdGF0ZSAqL1xuICBsb2FkaW5nPzogYm9vbGVhbjtcblxuICAvKiogQ3VzdG9tIGZpbGVuYW1lIGZvciBkb3dubG9hZCAod2l0aG91dCBleHRlbnNpb24pICovXG4gIGRvd25sb2FkRmlsZW5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqIFNoYXJlIHRpdGxlICovXG4gIHNoYXJlVGl0bGU/OiBzdHJpbmc7XG5cbiAgLyoqIFNoYXJlIHRleHQvZGVzY3JpcHRpb24gKi9cbiAgc2hhcmVUZXh0Pzogc3RyaW5nO1xuXG4gIC8qKiBDdXN0b20gZmlsZW5hbWUgZm9yIHNoYXJlICovXG4gIHNoYXJlRmlsZW5hbWU/OiBzdHJpbmc7XG5cbiAgLy8gPT09IFZpc3VhbCBDdXN0b21pemF0aW9uID09PVxuXG4gIC8qKiBUaGVtZSBwcmVzZXQgZm9yIHF1aWNrIHN0eWxpbmcgKi9cbiAgdGhlbWU/OiBRckRpc3BsYXlUaGVtZTtcblxuICAvKiogTGFiZWwvY2FwdGlvbiBjb25maWd1cmF0aW9uICovXG4gIGxhYmVsPzogUXJMYWJlbENvbmZpZztcblxuICAvKiogR3JhZGllbnQgYmFja2dyb3VuZCAob3ZlcnJpZGVzIGNvbnRhaW5lckJhY2tncm91bmQpICovXG4gIGdyYWRpZW50PzogUXJEaXNwbGF5R3JhZGllbnQ7XG5cbiAgLyoqIEJveCBzaGFkb3cgKGUuZy4sICdzbScsICdtZCcsICdsZycsICd4bCcsIG9yIGN1c3RvbSBDU1MpICovXG4gIHNoYWRvdz86ICdub25lJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgfCBzdHJpbmc7XG5cbiAgLyoqIEdsb3cgZWZmZWN0IGNvbG9yIChmb3IgbmVvbiB0aGVtZSkgKi9cbiAgZ2xvd0NvbG9yPzogc3RyaW5nO1xuXG4gIC8qKiBFbmFibGUgcHVsc2UgYW5pbWF0aW9uIG9uIGhvdmVyICovXG4gIHB1bHNlT25Ib3Zlcj86IGJvb2xlYW47XG5cbiAgLyoqIEVuYWJsZSBzY2FsZSBhbmltYXRpb24gb24gaG92ZXIgKi9cbiAgc2NhbGVPbkhvdmVyPzogYm9vbGVhbjtcblxuICAvKiogUVIgaW1hZ2UgYm9yZGVyIHJhZGl1cyAodG8gcm91bmQgdGhlIFFSIGl0c2VsZikgKi9cbiAgcXJCb3JkZXJSYWRpdXM/OiBudW1iZXI7XG5cbiAgLyoqIFJlYWN0aXZlIGNvbnRlbnQga2V5cyAqL1xuICBkb3dubG9hZExhYmVsQ29udGVudEtleT86IHN0cmluZztcbiAgY29weUxhYmVsQ29udGVudEtleT86IHN0cmluZztcbiAgc2hhcmVMYWJlbENvbnRlbnRLZXk/OiBzdHJpbmc7XG4gIGNvbnRlbnRDbGFzcz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBFdmVudCBlbWl0dGVkIGFmdGVyIFFSIGNvZGUgYWN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFFyQ29kZUFjdGlvbkV2ZW50IHtcbiAgLyoqIEFjdGlvbiB0eXBlICovXG4gIGFjdGlvbjogJ2Rvd25sb2FkJyB8ICdjb3B5JyB8ICdzaGFyZSc7XG4gIC8qKiBXaGV0aGVyIGFjdGlvbiB3YXMgc3VjY2Vzc2Z1bCAqL1xuICBzdWNjZXNzOiBib29sZWFuO1xuICAvKiogUVIgcmVzdWx0ICovXG4gIHFyOiBRclJlc3VsdDtcbiAgLyoqIEVycm9yIGlmIGFjdGlvbiBmYWlsZWQgKi9cbiAgZXJyb3I/OiBFcnJvcjtcbn1cbiJdfQ==
|