valtech-components 2.0.404 → 2.0.407
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 +6 -6
- 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 +14848 -4293
- 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 +11 -4
- package/public-api.d.ts +72 -2
- package/LICENSE +0 -21
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, Input, Output, EventEmitter, inject } from '@angular/core';
|
|
3
|
+
import { ReactiveFormsModule, FormControl } from '@angular/forms';
|
|
4
|
+
import { IonInput, IonSelect, IonSelectOption, IonNote, IonIcon, } from '@ionic/angular/standalone';
|
|
5
|
+
import { addIcons } from 'ionicons';
|
|
6
|
+
import { callOutline, chevronDownOutline } from 'ionicons/icons';
|
|
7
|
+
import { LangService } from '../../../services/lang-provider/lang-provider.service';
|
|
8
|
+
import { ComponentStates } from '../../types';
|
|
9
|
+
import { COMMON_COUNTRY_CODES } from './types';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/forms";
|
|
12
|
+
addIcons({ callOutline, chevronDownOutline });
|
|
13
|
+
/**
|
|
14
|
+
* val-phone-input
|
|
15
|
+
*
|
|
16
|
+
* A phone number input with country code selector.
|
|
17
|
+
*
|
|
18
|
+
* @example Basic usage
|
|
19
|
+
* ```html
|
|
20
|
+
* <val-phone-input
|
|
21
|
+
* [props]="{
|
|
22
|
+
* control: phoneControl,
|
|
23
|
+
* placeholder: 'Phone number',
|
|
24
|
+
* defaultCountry: 'MX'
|
|
25
|
+
* }"
|
|
26
|
+
* ></val-phone-input>
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @example With custom countries
|
|
30
|
+
* ```html
|
|
31
|
+
* <val-phone-input
|
|
32
|
+
* [props]="{
|
|
33
|
+
* control: phoneControl,
|
|
34
|
+
* label: 'Phone',
|
|
35
|
+
* countryCodes: myCountryCodes,
|
|
36
|
+
* preferredCountries: ['MX', 'US', 'ES'],
|
|
37
|
+
* showErrors: true
|
|
38
|
+
* }"
|
|
39
|
+
* (phoneChange)="onPhoneChange($event)"
|
|
40
|
+
* ></val-phone-input>
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export class PhoneInputComponent {
|
|
44
|
+
constructor() {
|
|
45
|
+
this.phoneChange = new EventEmitter();
|
|
46
|
+
this.states = ComponentStates;
|
|
47
|
+
this.internalCountryControl = new FormControl('');
|
|
48
|
+
this.internalNumberControl = new FormControl('');
|
|
49
|
+
this.langSubscription = null;
|
|
50
|
+
this.valueSubscription = null;
|
|
51
|
+
this.langService = inject(LangService);
|
|
52
|
+
this.isInternalUpdate = false;
|
|
53
|
+
}
|
|
54
|
+
ngOnInit() {
|
|
55
|
+
// Set default country
|
|
56
|
+
const defaultCountry = this.props.defaultCountry || 'US';
|
|
57
|
+
this.internalCountryControl.setValue(defaultCountry);
|
|
58
|
+
// Sync with external controls if provided
|
|
59
|
+
if (this.props.countryControl) {
|
|
60
|
+
this.internalCountryControl = this.props.countryControl;
|
|
61
|
+
}
|
|
62
|
+
if (this.props.numberControl) {
|
|
63
|
+
this.internalNumberControl = this.props.numberControl;
|
|
64
|
+
}
|
|
65
|
+
// Parse initial value from main control
|
|
66
|
+
if (this.props.control?.value) {
|
|
67
|
+
this.parsePhoneNumber(this.props.control.value);
|
|
68
|
+
}
|
|
69
|
+
// Subscribe to main control changes
|
|
70
|
+
this.valueSubscription = this.props.control?.valueChanges.subscribe(value => {
|
|
71
|
+
if (value && !this.isInternalUpdate) {
|
|
72
|
+
this.parsePhoneNumber(value);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
// Subscribe to language changes
|
|
76
|
+
if (this.hasReactiveContent()) {
|
|
77
|
+
this.langSubscription = this.langService.currentLang$.subscribe(() => { });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
ngOnDestroy() {
|
|
81
|
+
this.langSubscription?.unsubscribe();
|
|
82
|
+
this.valueSubscription?.unsubscribe();
|
|
83
|
+
}
|
|
84
|
+
parsePhoneNumber(value) {
|
|
85
|
+
if (!value)
|
|
86
|
+
return;
|
|
87
|
+
// Try to extract country code
|
|
88
|
+
const countries = this.getCountryList();
|
|
89
|
+
for (const country of countries) {
|
|
90
|
+
if (value.startsWith(country.dialCode)) {
|
|
91
|
+
this.internalCountryControl.setValue(country.code);
|
|
92
|
+
this.internalNumberControl.setValue(value.substring(country.dialCode.length).trim());
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// If no country code found, just set the number
|
|
97
|
+
this.internalNumberControl.setValue(value);
|
|
98
|
+
}
|
|
99
|
+
hasReactiveContent() {
|
|
100
|
+
return !!(this.props.contentClass &&
|
|
101
|
+
(this.props.labelContentKey || this.props.placeholderContentKey || this.props.hintContentKey));
|
|
102
|
+
}
|
|
103
|
+
getLabel() {
|
|
104
|
+
if (this.props.labelContentKey && this.props.contentClass) {
|
|
105
|
+
return this.langService.getText(this.props.contentClass, this.props.labelContentKey, this.props.label || '');
|
|
106
|
+
}
|
|
107
|
+
return this.props.label || '';
|
|
108
|
+
}
|
|
109
|
+
getPlaceholder() {
|
|
110
|
+
if (this.props.placeholderContentKey && this.props.contentClass) {
|
|
111
|
+
return this.langService.getText(this.props.contentClass, this.props.placeholderContentKey, this.props.placeholder || '');
|
|
112
|
+
}
|
|
113
|
+
// Use format from selected country if available
|
|
114
|
+
const country = this.getSelectedCountry();
|
|
115
|
+
if (country?.format && !this.props.placeholder) {
|
|
116
|
+
return country.format;
|
|
117
|
+
}
|
|
118
|
+
return this.props.placeholder || '';
|
|
119
|
+
}
|
|
120
|
+
getHint() {
|
|
121
|
+
if (this.props.hintContentKey && this.props.contentClass) {
|
|
122
|
+
return this.langService.getText(this.props.contentClass, this.props.hintContentKey, this.props.hint || '');
|
|
123
|
+
}
|
|
124
|
+
return this.props.hint || '';
|
|
125
|
+
}
|
|
126
|
+
getCountryList() {
|
|
127
|
+
const countries = this.props.countryCodes || COMMON_COUNTRY_CODES;
|
|
128
|
+
// Sort by preferred countries first
|
|
129
|
+
if (this.props.preferredCountries?.length) {
|
|
130
|
+
const preferred = this.props.preferredCountries;
|
|
131
|
+
return [
|
|
132
|
+
...countries.filter(c => preferred.includes(c.code)),
|
|
133
|
+
...countries.filter(c => !preferred.includes(c.code)),
|
|
134
|
+
];
|
|
135
|
+
}
|
|
136
|
+
return countries;
|
|
137
|
+
}
|
|
138
|
+
getSelectedCountry() {
|
|
139
|
+
const code = this.internalCountryControl.value;
|
|
140
|
+
return this.getCountryList().find(c => c.code === code) || null;
|
|
141
|
+
}
|
|
142
|
+
get hasError() {
|
|
143
|
+
return !!(this.props.control?.touched && this.props.control?.invalid);
|
|
144
|
+
}
|
|
145
|
+
getErrorMessage() {
|
|
146
|
+
if (!this.props.control?.errors || !this.props.errors) {
|
|
147
|
+
return '';
|
|
148
|
+
}
|
|
149
|
+
const errorKeys = Object.keys(this.props.control.errors);
|
|
150
|
+
for (const key of errorKeys) {
|
|
151
|
+
if (this.props.errors[key]) {
|
|
152
|
+
return this.props.errors[key];
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return '';
|
|
156
|
+
}
|
|
157
|
+
onCountryChange(event) {
|
|
158
|
+
this.updateMainControl();
|
|
159
|
+
}
|
|
160
|
+
onNumberInput(event) {
|
|
161
|
+
// Filter non-numeric characters except spaces and dashes
|
|
162
|
+
let value = (event.detail.value || '').replace(/[^\d\s\-]/g, '');
|
|
163
|
+
// Apply max digits limit
|
|
164
|
+
if (this.props.maxDigits) {
|
|
165
|
+
const digitsOnly = value.replace(/\D/g, '');
|
|
166
|
+
if (digitsOnly.length > this.props.maxDigits) {
|
|
167
|
+
value = digitsOnly.substring(0, this.props.maxDigits);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
this.internalNumberControl.setValue(value);
|
|
171
|
+
this.updateMainControl();
|
|
172
|
+
}
|
|
173
|
+
onBlur() {
|
|
174
|
+
this.props.control?.markAsTouched();
|
|
175
|
+
}
|
|
176
|
+
updateMainControl() {
|
|
177
|
+
const country = this.getSelectedCountry();
|
|
178
|
+
const number = this.internalNumberControl.value || '';
|
|
179
|
+
const fullNumber = country ? `${country.dialCode}${number}` : number;
|
|
180
|
+
this.isInternalUpdate = true;
|
|
181
|
+
this.props.control?.setValue(fullNumber);
|
|
182
|
+
this.isInternalUpdate = false;
|
|
183
|
+
// Emit change event
|
|
184
|
+
const digitsOnly = number.replace(/\D/g, '');
|
|
185
|
+
const isValid = this.validateNumber(digitsOnly);
|
|
186
|
+
this.phoneChange.emit({
|
|
187
|
+
fullNumber,
|
|
188
|
+
number,
|
|
189
|
+
country,
|
|
190
|
+
isValid,
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
validateNumber(digitsOnly) {
|
|
194
|
+
if (this.props.minDigits && digitsOnly.length < this.props.minDigits) {
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
if (this.props.maxDigits && digitsOnly.length > this.props.maxDigits) {
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
if (this.props.pattern) {
|
|
201
|
+
const regex = new RegExp(this.props.pattern);
|
|
202
|
+
return regex.test(digitsOnly);
|
|
203
|
+
}
|
|
204
|
+
// Default: at least 7 digits
|
|
205
|
+
return digitsOnly.length >= 7;
|
|
206
|
+
}
|
|
207
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhoneInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
208
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PhoneInputComponent, isStandalone: true, selector: "val-phone-input", inputs: { props: "props" }, outputs: { phoneChange: "phoneChange" }, ngImport: i0, template: `
|
|
209
|
+
<div class="phone-input-container" [class]="props.cssClass" [class.has-error]="hasError">
|
|
210
|
+
@if (props.label) {
|
|
211
|
+
<label class="phone-label">{{ getLabel() }}</label>
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
<div class="phone-input-wrapper" [class.disabled]="props.state === states.DISABLED">
|
|
215
|
+
@if (props.showCountrySelector !== false) {
|
|
216
|
+
<div class="country-selector">
|
|
217
|
+
<ion-select
|
|
218
|
+
[formControl]="internalCountryControl"
|
|
219
|
+
interface="popover"
|
|
220
|
+
[interfaceOptions]="{ cssClass: 'country-select-popover' }"
|
|
221
|
+
[disabled]="props.state === states.DISABLED"
|
|
222
|
+
(ionChange)="onCountryChange($event)"
|
|
223
|
+
>
|
|
224
|
+
@for (country of getCountryList(); track country.code) {
|
|
225
|
+
<ion-select-option [value]="country.code">
|
|
226
|
+
@if (props.showFlag !== false) {
|
|
227
|
+
<span class="flag">{{ country.flag }}</span>
|
|
228
|
+
}
|
|
229
|
+
{{ country.dialCode }}
|
|
230
|
+
</ion-select-option>
|
|
231
|
+
}
|
|
232
|
+
</ion-select>
|
|
233
|
+
</div>
|
|
234
|
+
} @else {
|
|
235
|
+
<div class="dial-code-display">
|
|
236
|
+
{{ getSelectedCountry()?.dialCode || '+1' }}
|
|
237
|
+
</div>
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
<div class="number-input">
|
|
241
|
+
<ion-input
|
|
242
|
+
[formControl]="internalNumberControl"
|
|
243
|
+
type="tel"
|
|
244
|
+
inputmode="tel"
|
|
245
|
+
[placeholder]="getPlaceholder()"
|
|
246
|
+
[disabled]="props.state === states.DISABLED"
|
|
247
|
+
[readonly]="props.state === states.WORKING"
|
|
248
|
+
[maxlength]="props.maxDigits || 15"
|
|
249
|
+
(ionInput)="onNumberInput($event)"
|
|
250
|
+
(ionBlur)="onBlur()"
|
|
251
|
+
>
|
|
252
|
+
<ion-icon slot="start" name="call-outline" aria-hidden="true"></ion-icon>
|
|
253
|
+
</ion-input>
|
|
254
|
+
</div>
|
|
255
|
+
</div>
|
|
256
|
+
|
|
257
|
+
@if (props.hint && !hasError) {
|
|
258
|
+
<ion-note class="hint">{{ getHint() }}</ion-note>
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
@if (hasError && props.showErrors) {
|
|
262
|
+
<ion-note class="error-message" color="danger">
|
|
263
|
+
{{ getErrorMessage() }}
|
|
264
|
+
</ion-note>
|
|
265
|
+
}
|
|
266
|
+
</div>
|
|
267
|
+
`, isInline: true, styles: [":host{display:block;width:100%}.phone-input-container.has-error .phone-input-wrapper{border-color:var(--ion-color-danger)}.phone-label{display:block;font-size:14px;font-weight:500;color:var(--ion-color-dark);margin-bottom:8px}.phone-input-wrapper{display:flex;align-items:center;border:1px solid var(--ion-color-medium-shade);border-radius:8px;background:var(--ion-background-color, #fff);overflow:hidden;transition:border-color .2s}.phone-input-wrapper:focus-within{border-color:var(--ion-color-primary)}.phone-input-wrapper.disabled{opacity:.5;pointer-events:none}.country-selector{flex-shrink:0;border-right:1px solid var(--ion-color-light-shade);background:var(--ion-color-light)}.country-selector ion-select{--padding-start: 12px;--padding-end: 8px;--placeholder-opacity: 1;min-width:90px;max-width:110px}.country-selector ion-select::part(icon){opacity:.6}.country-selector .flag{margin-right:4px}.dial-code-display{flex-shrink:0;padding:0 12px;font-weight:500;color:var(--ion-color-medium-shade);border-right:1px solid var(--ion-color-light-shade);background:var(--ion-color-light);height:100%;display:flex;align-items:center}.number-input{flex:1}.number-input ion-input{--padding-start: 8px;--padding-end: 12px;--background: transparent}.number-input ion-input ion-icon{color:var(--ion-color-medium);font-size:18px;margin-right:8px}.hint{display:block;font-size:12px;color:var(--ion-color-medium);margin-top:4px;padding-left:4px}.error-message{display:block;font-size:12px;margin-top:4px;padding-left:4px}::ng-deep .country-select-popover{--width: 200px}::ng-deep .country-select-popover .flag{margin-right:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }, { kind: "component", type: IonNote, selector: "ion-note", inputs: ["color", "mode"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
268
|
+
}
|
|
269
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhoneInputComponent, decorators: [{
|
|
270
|
+
type: Component,
|
|
271
|
+
args: [{ selector: 'val-phone-input', standalone: true, imports: [CommonModule, ReactiveFormsModule, IonInput, IonSelect, IonSelectOption, IonNote, IonIcon], template: `
|
|
272
|
+
<div class="phone-input-container" [class]="props.cssClass" [class.has-error]="hasError">
|
|
273
|
+
@if (props.label) {
|
|
274
|
+
<label class="phone-label">{{ getLabel() }}</label>
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
<div class="phone-input-wrapper" [class.disabled]="props.state === states.DISABLED">
|
|
278
|
+
@if (props.showCountrySelector !== false) {
|
|
279
|
+
<div class="country-selector">
|
|
280
|
+
<ion-select
|
|
281
|
+
[formControl]="internalCountryControl"
|
|
282
|
+
interface="popover"
|
|
283
|
+
[interfaceOptions]="{ cssClass: 'country-select-popover' }"
|
|
284
|
+
[disabled]="props.state === states.DISABLED"
|
|
285
|
+
(ionChange)="onCountryChange($event)"
|
|
286
|
+
>
|
|
287
|
+
@for (country of getCountryList(); track country.code) {
|
|
288
|
+
<ion-select-option [value]="country.code">
|
|
289
|
+
@if (props.showFlag !== false) {
|
|
290
|
+
<span class="flag">{{ country.flag }}</span>
|
|
291
|
+
}
|
|
292
|
+
{{ country.dialCode }}
|
|
293
|
+
</ion-select-option>
|
|
294
|
+
}
|
|
295
|
+
</ion-select>
|
|
296
|
+
</div>
|
|
297
|
+
} @else {
|
|
298
|
+
<div class="dial-code-display">
|
|
299
|
+
{{ getSelectedCountry()?.dialCode || '+1' }}
|
|
300
|
+
</div>
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
<div class="number-input">
|
|
304
|
+
<ion-input
|
|
305
|
+
[formControl]="internalNumberControl"
|
|
306
|
+
type="tel"
|
|
307
|
+
inputmode="tel"
|
|
308
|
+
[placeholder]="getPlaceholder()"
|
|
309
|
+
[disabled]="props.state === states.DISABLED"
|
|
310
|
+
[readonly]="props.state === states.WORKING"
|
|
311
|
+
[maxlength]="props.maxDigits || 15"
|
|
312
|
+
(ionInput)="onNumberInput($event)"
|
|
313
|
+
(ionBlur)="onBlur()"
|
|
314
|
+
>
|
|
315
|
+
<ion-icon slot="start" name="call-outline" aria-hidden="true"></ion-icon>
|
|
316
|
+
</ion-input>
|
|
317
|
+
</div>
|
|
318
|
+
</div>
|
|
319
|
+
|
|
320
|
+
@if (props.hint && !hasError) {
|
|
321
|
+
<ion-note class="hint">{{ getHint() }}</ion-note>
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
@if (hasError && props.showErrors) {
|
|
325
|
+
<ion-note class="error-message" color="danger">
|
|
326
|
+
{{ getErrorMessage() }}
|
|
327
|
+
</ion-note>
|
|
328
|
+
}
|
|
329
|
+
</div>
|
|
330
|
+
`, styles: [":host{display:block;width:100%}.phone-input-container.has-error .phone-input-wrapper{border-color:var(--ion-color-danger)}.phone-label{display:block;font-size:14px;font-weight:500;color:var(--ion-color-dark);margin-bottom:8px}.phone-input-wrapper{display:flex;align-items:center;border:1px solid var(--ion-color-medium-shade);border-radius:8px;background:var(--ion-background-color, #fff);overflow:hidden;transition:border-color .2s}.phone-input-wrapper:focus-within{border-color:var(--ion-color-primary)}.phone-input-wrapper.disabled{opacity:.5;pointer-events:none}.country-selector{flex-shrink:0;border-right:1px solid var(--ion-color-light-shade);background:var(--ion-color-light)}.country-selector ion-select{--padding-start: 12px;--padding-end: 8px;--placeholder-opacity: 1;min-width:90px;max-width:110px}.country-selector ion-select::part(icon){opacity:.6}.country-selector .flag{margin-right:4px}.dial-code-display{flex-shrink:0;padding:0 12px;font-weight:500;color:var(--ion-color-medium-shade);border-right:1px solid var(--ion-color-light-shade);background:var(--ion-color-light);height:100%;display:flex;align-items:center}.number-input{flex:1}.number-input ion-input{--padding-start: 8px;--padding-end: 12px;--background: transparent}.number-input ion-input ion-icon{color:var(--ion-color-medium);font-size:18px;margin-right:8px}.hint{display:block;font-size:12px;color:var(--ion-color-medium);margin-top:4px;padding-left:4px}.error-message{display:block;font-size:12px;margin-top:4px;padding-left:4px}::ng-deep .country-select-popover{--width: 200px}::ng-deep .country-select-popover .flag{margin-right:8px}\n"] }]
|
|
331
|
+
}], propDecorators: { props: [{
|
|
332
|
+
type: Input
|
|
333
|
+
}], phoneChange: [{
|
|
334
|
+
type: Output
|
|
335
|
+
}] } });
|
|
336
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9waG9uZS1pbnB1dC9waG9uZS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUNMLFFBQVEsRUFDUixTQUFTLEVBQ1QsZUFBZSxFQUNmLE9BQU8sRUFDUCxPQUFPLEdBQ1IsTUFBTSwyQkFBMkIsQ0FBQztBQUVuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEVBQTBELG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUFFdkcsUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztBQW9FOUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQWhHaEM7UUFtR1ksZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQUVsRSxXQUFNLEdBQUcsZUFBZSxDQUFDO1FBRXpCLDJCQUFzQixHQUFHLElBQUksV0FBVyxDQUFTLEVBQUUs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RUFBRSxPQUFPLENBQUMsWUFDMUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkRUOzhCQWtDUSxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPbkRlc3Ryb3ksIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBJb25JbnB1dCxcbiAgSW9uU2VsZWN0LFxuICBJb25TZWxlY3RPcHRpb24sXG4gIElvbk5vdGUsXG4gIElvbkljb24sXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGNhbGxPdXRsaW5lLCBjaGV2cm9uRG93bk91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBMYW5nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2xhbmctcHJvdmlkZXIvbGFuZy1wcm92aWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBvbmVudFN0YXRlcyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IFBob25lSW5wdXRNZXRhZGF0YSwgUGhvbmVJbnB1dENoYW5nZUV2ZW50LCBDb3VudHJ5Q29kZSwgQ09NTU9OX0NPVU5UUllfQ09ERVMgfSBmcm9tICcuL3R5cGVzJztcblxuYWRkSWNvbnMoeyBjYWxsT3V0bGluZSwgY2hldnJvbkRvd25PdXRsaW5lIH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcGhvbmUtaW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBJb25JbnB1dCwgSW9uU2VsZWN0LCBJb25TZWxlY3RPcHRpb24sIElvbk5vdGUsIElvbkljb25dLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJwaG9uZS1pbnB1dC1jb250YWluZXJcIiBbY2xhc3NdPVwicHJvcHMuY3NzQ2xhc3NcIiBbY2xhc3MuaGFzLWVycm9yXT1cImhhc0Vycm9yXCI+XG4gICAgICBAaWYgKHByb3BzLmxhYmVsKSB7XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInBob25lLWxhYmVsXCI+e3sgZ2V0TGFiZWwoKSB9fTwvbGFiZWw+XG4gICAgICB9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJwaG9uZS1pbnB1dC13cmFwcGVyXCIgW2NsYXNzLmRpc2FibGVkXT1cInByb3BzLnN0YXRlID09PSBzdGF0ZXMuRElTQUJMRURcIj5cbiAgICAgICAgQGlmIChwcm9wcy5zaG93Q291bnRyeVNlbGVjdG9yICE9PSBmYWxzZSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudHJ5LXNlbGVjdG9yXCI+XG4gICAgICAgICAgICA8aW9uLXNlbGVjdFxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiaW50ZXJuYWxDb3VudHJ5Q29udHJvbFwiXG4gICAgICAgICAgICAgIGludGVyZmFjZT1cInBvcG92ZXJcIlxuICAgICAgICAgICAgICBbaW50ZXJmYWNlT3B0aW9uc109XCJ7IGNzc0NsYXNzOiAnY291bnRyeS1zZWxlY3QtcG9wb3ZlcicgfVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwcm9wcy5zdGF0ZSA9PT0gc3RhdGVzLkRJU0FCTEVEXCJcbiAgICAgICAgICAgICAgKGlvbkNoYW5nZSk9XCJvbkNvdW50cnlDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIEBmb3IgKGNvdW50cnkgb2YgZ2V0Q291bnRyeUxpc3QoKTsgdHJhY2sgY291bnRyeS5jb2RlKSB7XG4gICAgICAgICAgICAgICAgPGlvbi1zZWxlY3Qtb3B0aW9uIFt2YWx1ZV09XCJjb3VudHJ5LmNvZGVcIj5cbiAgICAgICAgICAgICAgICAgIEBpZiAocHJvcHMuc2hvd0ZsYWcgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmxhZ1wiPnt7IGNvdW50cnkuZmxhZyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHt7IGNvdW50cnkuZGlhbENvZGUgfX1cbiAgICAgICAgICAgICAgICA8L2lvbi1zZWxlY3Qtb3B0aW9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2lvbi1zZWxlY3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaWFsLWNvZGUtZGlzcGxheVwiPlxuICAgICAgICAgICAge3sgZ2V0U2VsZWN0ZWRDb3VudHJ5KCk/LmRpYWxDb2RlIHx8ICcrMScgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJudW1iZXItaW5wdXRcIj5cbiAgICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiaW50ZXJuYWxOdW1iZXJDb250cm9sXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZWxcIlxuICAgICAgICAgICAgaW5wdXRtb2RlPVwidGVsXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJnZXRQbGFjZWhvbGRlcigpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwcm9wcy5zdGF0ZSA9PT0gc3RhdGVzLkRJU0FCTEVEXCJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJwcm9wcy5zdGF0ZSA9PT0gc3RhdGVzLldPUktJTkdcIlxuICAgICAgICAgICAgW21heGxlbmd0aF09XCJwcm9wcy5tYXhEaWdpdHMgfHwgMTVcIlxuICAgICAgICAgICAgKGlvbklucHV0KT1cIm9uTnVtYmVySW5wdXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoaW9uQmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJjYWxsLW91dGxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2lvbi1pY29uPlxuICAgICAgICAgIDwvaW9uLWlucHV0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICBAaWYgKHByb3BzLmhpbnQgJiYgIWhhc0Vycm9yKSB7XG4gICAgICAgIDxpb24tbm90ZSBjbGFzcz1cImhpbnRcIj57eyBnZXRIaW50KCkgfX08L2lvbi1ub3RlPlxuICAgICAgfVxuXG4gICAgICBAaWYgKGhhc0Vycm9yICYmIHByb3BzLnNob3dFcnJvcnMpIHtcbiAgICAgICAgPGlvbi1ub3RlIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiIGNvbG9yPVwiZGFuZ2VyXCI+XG4gICAgICAgICAge3sgZ2V0RXJyb3JNZXNzYWdlKCkgfX1cbiAgICAgICAgPC9pb24tbm90ZT5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vcGhvbmUtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1waG9uZS1pbnB1dFxuICpcbiAqIEEgcGhvbmUgbnVtYmVyIGlucHV0IHdpdGggY291bnRyeSBjb2RlIHNlbGVjdG9yLlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHVzYWdlXG4gKiBgYGBodG1sXG4gKiA8dmFsLXBob25lLWlucHV0XG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgY29udHJvbDogcGhvbmVDb250cm9sLFxuICogICAgIHBsYWNlaG9sZGVyOiAnUGhvbmUgbnVtYmVyJyxcbiAqICAgICBkZWZhdWx0Q291bnRyeTogJ01YJ1xuICogICB9XCJcbiAqID48L3ZhbC1waG9uZS1pbnB1dD5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFdpdGggY3VzdG9tIGNvdW50cmllc1xuICogYGBgaHRtbFxuICogPHZhbC1waG9uZS1pbnB1dFxuICogICBbcHJvcHNdPVwie1xuICogICAgIGNvbnRyb2w6IHBob25lQ29udHJvbCxcbiAqICAgICBsYWJlbDogJ1Bob25lJyxcbiAqICAgICBjb3VudHJ5Q29kZXM6IG15Q291bnRyeUNvZGVzLFxuICogICAgIHByZWZlcnJlZENvdW50cmllczogWydNWCcsICdVUycsICdFUyddLFxuICogICAgIHNob3dFcnJvcnM6IHRydWVcbiAqICAgfVwiXG4gKiAgIChwaG9uZUNoYW5nZSk9XCJvblBob25lQ2hhbmdlKCRldmVudClcIlxuICogPjwvdmFsLXBob25lLWlucHV0PlxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBQaG9uZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwcm9wczogUGhvbmVJbnB1dE1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKSBwaG9uZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGhvbmVJbnB1dENoYW5nZUV2ZW50PigpO1xuXG4gIHN0YXRlcyA9IENvbXBvbmVudFN0YXRlcztcblxuICBpbnRlcm5hbENvdW50cnlDb250cm9sID0gbmV3IEZvcm1Db250cm9sPHN0cmluZz4oJycpO1xuICBpbnRlcm5hbE51bWJlckNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nPignJyk7XG5cbiAgcHJpdmF0ZSBsYW5nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB2YWx1ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgbGFuZ1NlcnZpY2UgPSBpbmplY3QoTGFuZ1NlcnZpY2UpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFNldCBkZWZhdWx0IGNvdW50cnlcbiAgICBjb25zdCBkZWZhdWx0Q291bnRyeSA9IHRoaXMucHJvcHMuZGVmYXVsdENvdW50cnkgfHwgJ1VTJztcbiAgICB0aGlzLmludGVybmFsQ291bnRyeUNvbnRyb2wuc2V0VmFsdWUoZGVmYXVsdENvdW50cnkpO1xuXG4gICAgLy8gU3luYyB3aXRoIGV4dGVybmFsIGNvbnRyb2xzIGlmIHByb3ZpZGVkXG4gICAgaWYgKHRoaXMucHJvcHMuY291bnRyeUNvbnRyb2wpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxDb3VudHJ5Q29udHJvbCA9IHRoaXMucHJvcHMuY291bnRyeUNvbnRyb2w7XG4gICAgfVxuICAgIGlmICh0aGlzLnByb3BzLm51bWJlckNvbnRyb2wpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxOdW1iZXJDb250cm9sID0gdGhpcy5wcm9wcy5udW1iZXJDb250cm9sO1xuICAgIH1cblxuICAgIC8vIFBhcnNlIGluaXRpYWwgdmFsdWUgZnJvbSBtYWluIGNvbnRyb2xcbiAgICBpZiAodGhpcy5wcm9wcy5jb250cm9sPy52YWx1ZSkge1xuICAgICAgdGhpcy5wYXJzZVBob25lTnVtYmVyKHRoaXMucHJvcHMuY29udHJvbC52YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gU3Vic2NyaWJlIHRvIG1haW4gY29udHJvbCBjaGFuZ2VzXG4gICAgdGhpcy52YWx1ZVN1YnNjcmlwdGlvbiA9IHRoaXMucHJvcHMuY29udHJvbD8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgIXRoaXMuaXNJbnRlcm5hbFVwZGF0ZSkge1xuICAgICAgICB0aGlzLnBhcnNlUGhvbmVOdW1iZXIodmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIGxhbmd1YWdlIGNoYW5nZXNcbiAgICBpZiAodGhpcy5oYXNSZWFjdGl2ZUNvbnRlbnQoKSkge1xuICAgICAgdGhpcy5sYW5nU3Vic2NyaXB0aW9uID0gdGhpcy5sYW5nU2VydmljZS5jdXJyZW50TGFuZyQuc3Vic2NyaWJlKCgpID0+IHt9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmxhbmdTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy52YWx1ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNJbnRlcm5hbFVwZGF0ZSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcGFyc2VQaG9uZU51bWJlcih2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuXG4gICAgLy8gVHJ5IHRvIGV4dHJhY3QgY291bnRyeSBjb2RlXG4gICAgY29uc3QgY291bnRyaWVzID0gdGhpcy5nZXRDb3VudHJ5TGlzdCgpO1xuICAgIGZvciAoY29uc3QgY291bnRyeSBvZiBjb3VudHJpZXMpIHtcbiAgICAgIGlmICh2YWx1ZS5zdGFydHNXaXRoKGNvdW50cnkuZGlhbENvZGUpKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxDb3VudHJ5Q29udHJvbC5zZXRWYWx1ZShjb3VudHJ5LmNvZGUpO1xuICAgICAgICB0aGlzLmludGVybmFsTnVtYmVyQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZS5zdWJzdHJpbmcoY291bnRyeS5kaWFsQ29kZS5sZW5ndGgpLnRyaW0oKSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBubyBjb3VudHJ5IGNvZGUgZm91bmQsIGp1c3Qgc2V0IHRoZSBudW1iZXJcbiAgICB0aGlzLmludGVybmFsTnVtYmVyQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGhhc1JlYWN0aXZlQ29udGVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoXG4gICAgICB0aGlzLnByb3BzLmNvbnRlbnRDbGFzcyAmJlxuICAgICAgKHRoaXMucHJvcHMubGFiZWxDb250ZW50S2V5IHx8IHRoaXMucHJvcHMucGxhY2Vob2xkZXJDb250ZW50S2V5IHx8IHRoaXMucHJvcHMuaGludENvbnRlbnRLZXkpXG4gICAgKTtcbiAgfVxuXG4gIGdldExhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMubGFiZWxDb250ZW50S2V5ICYmIHRoaXMucHJvcHMuY29udGVudENsYXNzKSB7XG4gICAgICByZXR1cm4gdGhpcy5sYW5nU2VydmljZS5nZXRUZXh0KHRoaXMucHJvcHMuY29udGVudENsYXNzLCB0aGlzLnByb3BzLmxhYmVsQ29udGVudEtleSwgdGhpcy5wcm9wcy5sYWJlbCB8fCAnJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByb3BzLmxhYmVsIHx8ICcnO1xuICB9XG5cbiAgZ2V0UGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5wcm9wcy5wbGFjZWhvbGRlckNvbnRlbnRLZXkgJiYgdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MpIHtcbiAgICAgIHJldHVybiB0aGlzLmxhbmdTZXJ2aWNlLmdldFRleHQoXG4gICAgICAgIHRoaXMucHJvcHMuY29udGVudENsYXNzLFxuICAgICAgICB0aGlzLnByb3BzLnBsYWNlaG9sZGVyQ29udGVudEtleSxcbiAgICAgICAgdGhpcy5wcm9wcy5wbGFjZWhvbGRlciB8fCAnJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBVc2UgZm9ybWF0IGZyb20gc2VsZWN0ZWQgY291bnRyeSBpZiBhdmFpbGFibGVcbiAgICBjb25zdCBjb3VudHJ5ID0gdGhpcy5nZXRTZWxlY3RlZENvdW50cnkoKTtcbiAgICBpZiAoY291bnRyeT8uZm9ybWF0ICYmICF0aGlzLnByb3BzLnBsYWNlaG9sZGVyKSB7XG4gICAgICByZXR1cm4gY291bnRyeS5mb3JtYXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucHJvcHMucGxhY2Vob2xkZXIgfHwgJyc7XG4gIH1cblxuICBnZXRIaW50KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMuaGludENvbnRlbnRLZXkgJiYgdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MpIHtcbiAgICAgIHJldHVybiB0aGlzLmxhbmdTZXJ2aWNlLmdldFRleHQodGhpcy5wcm9wcy5jb250ZW50Q2xhc3MsIHRoaXMucHJvcHMuaGludENvbnRlbnRLZXksIHRoaXMucHJvcHMuaGludCB8fCAnJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByb3BzLmhpbnQgfHwgJyc7XG4gIH1cblxuICBnZXRDb3VudHJ5TGlzdCgpOiBDb3VudHJ5Q29kZVtdIHtcbiAgICBjb25zdCBjb3VudHJpZXMgPSB0aGlzLnByb3BzLmNvdW50cnlDb2RlcyB8fCBDT01NT05fQ09VTlRSWV9DT0RFUztcblxuICAgIC8vIFNvcnQgYnkgcHJlZmVycmVkIGNvdW50cmllcyBmaXJzdFxuICAgIGlmICh0aGlzLnByb3BzLnByZWZlcnJlZENvdW50cmllcz8ubGVuZ3RoKSB7XG4gICAgICBjb25zdCBwcmVmZXJyZWQgPSB0aGlzLnByb3BzLnByZWZlcnJlZENvdW50cmllcztcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLmNvdW50cmllcy5maWx0ZXIoYyA9PiBwcmVmZXJyZWQuaW5jbHVkZXMoYy5jb2RlKSksXG4gICAgICAgIC4uLmNvdW50cmllcy5maWx0ZXIoYyA9PiAhcHJlZmVycmVkLmluY2x1ZGVzKGMuY29kZSkpLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICByZXR1cm4gY291bnRyaWVzO1xuICB9XG5cbiAgZ2V0U2VsZWN0ZWRDb3VudHJ5KCk6IENvdW50cnlDb2RlIHwgbnVsbCB7XG4gICAgY29uc3QgY29kZSA9IHRoaXMuaW50ZXJuYWxDb3VudHJ5Q29udHJvbC52YWx1ZTtcbiAgICByZXR1cm4gdGhpcy5nZXRDb3VudHJ5TGlzdCgpLmZpbmQoYyA9PiBjLmNvZGUgPT09IGNvZGUpIHx8IG51bGw7XG4gIH1cblxuICBnZXQgaGFzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMucHJvcHMuY29udHJvbD8udG91Y2hlZCAmJiB0aGlzLnByb3BzLmNvbnRyb2w/LmludmFsaWQpO1xuICB9XG5cbiAgZ2V0RXJyb3JNZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnByb3BzLmNvbnRyb2w/LmVycm9ycyB8fCAhdGhpcy5wcm9wcy5lcnJvcnMpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvcktleXMgPSBPYmplY3Qua2V5cyh0aGlzLnByb3BzLmNvbnRyb2wuZXJyb3JzKTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBlcnJvcktleXMpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLmVycm9yc1trZXldKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmVycm9yc1trZXldO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIG9uQ291bnRyeUNoYW5nZShldmVudDogQ3VzdG9tRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZU1haW5Db250cm9sKCk7XG4gIH1cblxuICBvbk51bWJlcklucHV0KGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIC8vIEZpbHRlciBub24tbnVtZXJpYyBjaGFyYWN0ZXJzIGV4Y2VwdCBzcGFjZXMgYW5kIGRhc2hlc1xuICAgIGxldCB2YWx1ZSA9IChldmVudC5kZXRhaWwudmFsdWUgfHwgJycpLnJlcGxhY2UoL1teXFxkXFxzXFwtXS9nLCAnJyk7XG5cbiAgICAvLyBBcHBseSBtYXggZGlnaXRzIGxpbWl0XG4gICAgaWYgKHRoaXMucHJvcHMubWF4RGlnaXRzKSB7XG4gICAgICBjb25zdCBkaWdpdHNPbmx5ID0gdmFsdWUucmVwbGFjZSgvXFxEL2csICcnKTtcbiAgICAgIGlmIChkaWdpdHNPbmx5Lmxlbmd0aCA+IHRoaXMucHJvcHMubWF4RGlnaXRzKSB7XG4gICAgICAgIHZhbHVlID0gZGlnaXRzT25seS5zdWJzdHJpbmcoMCwgdGhpcy5wcm9wcy5tYXhEaWdpdHMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuaW50ZXJuYWxOdW1iZXJDb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLnVwZGF0ZU1haW5Db250cm9sKCk7XG4gIH1cblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5wcm9wcy5jb250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU1haW5Db250cm9sKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvdW50cnkgPSB0aGlzLmdldFNlbGVjdGVkQ291bnRyeSgpO1xuICAgIGNvbnN0IG51bWJlciA9IHRoaXMuaW50ZXJuYWxOdW1iZXJDb250cm9sLnZhbHVlIHx8ICcnO1xuICAgIGNvbnN0IGZ1bGxOdW1iZXIgPSBjb3VudHJ5ID8gYCR7Y291bnRyeS5kaWFsQ29kZX0ke251bWJlcn1gIDogbnVtYmVyO1xuXG4gICAgdGhpcy5pc0ludGVybmFsVXBkYXRlID0gdHJ1ZTtcbiAgICB0aGlzLnByb3BzLmNvbnRyb2w/LnNldFZhbHVlKGZ1bGxOdW1iZXIpO1xuICAgIHRoaXMuaXNJbnRlcm5hbFVwZGF0ZSA9IGZhbHNlO1xuXG4gICAgLy8gRW1pdCBjaGFuZ2UgZXZlbnRcbiAgICBjb25zdCBkaWdpdHNPbmx5ID0gbnVtYmVyLnJlcGxhY2UoL1xcRC9nLCAnJyk7XG4gICAgY29uc3QgaXNWYWxpZCA9IHRoaXMudmFsaWRhdGVOdW1iZXIoZGlnaXRzT25seSk7XG5cbiAgICB0aGlzLnBob25lQ2hhbmdlLmVtaXQoe1xuICAgICAgZnVsbE51bWJlcixcbiAgICAgIG51bWJlcixcbiAgICAgIGNvdW50cnksXG4gICAgICBpc1ZhbGlkLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZU51bWJlcihkaWdpdHNPbmx5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5wcm9wcy5taW5EaWdpdHMgJiYgZGlnaXRzT25seS5sZW5ndGggPCB0aGlzLnByb3BzLm1pbkRpZ2l0cykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcm9wcy5tYXhEaWdpdHMgJiYgZGlnaXRzT25seS5sZW5ndGggPiB0aGlzLnByb3BzLm1heERpZ2l0cykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcm9wcy5wYXR0ZXJuKSB7XG4gICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAodGhpcy5wcm9wcy5wYXR0ZXJuKTtcbiAgICAgIHJldHVybiByZWdleC50ZXN0KGRpZ2l0c09ubHkpO1xuICAgIH1cbiAgICAvLyBEZWZhdWx0OiBhdCBsZWFzdCA3IGRpZ2l0c1xuICAgIHJldHVybiBkaWdpdHNPbmx5Lmxlbmd0aCA+PSA3O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common country codes for quick access.
|
|
3
|
+
*/
|
|
4
|
+
export const COMMON_COUNTRY_CODES = [
|
|
5
|
+
{ code: 'US', name: 'United States', dialCode: '+1', flag: '🇺🇸', format: '(XXX) XXX-XXXX' },
|
|
6
|
+
{ code: 'MX', name: 'México', dialCode: '+52', flag: '🇲🇽', format: 'XX XXXX XXXX' },
|
|
7
|
+
{ code: 'ES', name: 'España', dialCode: '+34', flag: '🇪🇸', format: 'XXX XXX XXX' },
|
|
8
|
+
{ code: 'AR', name: 'Argentina', dialCode: '+54', flag: '🇦🇷', format: 'XX XXXX XXXX' },
|
|
9
|
+
{ code: 'CO', name: 'Colombia', dialCode: '+57', flag: '🇨🇴', format: 'XXX XXX XXXX' },
|
|
10
|
+
{ code: 'CL', name: 'Chile', dialCode: '+56', flag: '🇨🇱', format: 'X XXXX XXXX' },
|
|
11
|
+
{ code: 'PE', name: 'Perú', dialCode: '+51', flag: '🇵🇪', format: 'XXX XXX XXX' },
|
|
12
|
+
{ code: 'BR', name: 'Brasil', dialCode: '+55', flag: '🇧🇷', format: 'XX XXXXX XXXX' },
|
|
13
|
+
{ code: 'GB', name: 'United Kingdom', dialCode: '+44', flag: '🇬🇧', format: 'XXXX XXXXXX' },
|
|
14
|
+
{ code: 'DE', name: 'Germany', dialCode: '+49', flag: '🇩🇪', format: 'XXX XXXXXXX' },
|
|
15
|
+
{ code: 'FR', name: 'France', dialCode: '+33', flag: '🇫🇷', format: 'X XX XX XX XX' },
|
|
16
|
+
{ code: 'IT', name: 'Italy', dialCode: '+39', flag: '🇮🇹', format: 'XXX XXX XXXX' },
|
|
17
|
+
{ code: 'CA', name: 'Canada', dialCode: '+1', flag: '🇨🇦', format: '(XXX) XXX-XXXX' },
|
|
18
|
+
];
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Bob25lLWlucHV0L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9CQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFrQjtJQUNqRCxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFO0lBQzdGLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFO0lBQ3JGLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFO0lBQ3BGLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFO0lBQ3hGLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFO0lBQ3ZGLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFO0lBQ25GLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFO0lBQ2xGLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFO0lBQ3RGLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUU7SUFDNUYsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUU7SUFDckYsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUU7SUFDdEYsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUU7SUFDcEYsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRTtDQUN2RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb2xvciB9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudFN0YXRlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG4vKipcbiAqIENvdW50cnkgY29kZSBvcHRpb24gZm9yIHBob25lIGlucHV0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvdW50cnlDb2RlIHtcbiAgLyoqIElTTyBjb3VudHJ5IGNvZGUgKGUuZy4sICdVUycsICdNWCcsICdFUycpICovXG4gIGNvZGU6IHN0cmluZztcbiAgLyoqIENvdW50cnkgbmFtZSAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBEaWFsIGNvZGUgKGUuZy4sICcrMScsICcrNTInLCAnKzM0JykgKi9cbiAgZGlhbENvZGU6IHN0cmluZztcbiAgLyoqIEZsYWcgZW1vamkgKG9wdGlvbmFsKSAqL1xuICBmbGFnPzogc3RyaW5nO1xuICAvKiogUGhvbmUgbnVtYmVyIGZvcm1hdCBwYXR0ZXJuIChvcHRpb25hbCkgKi9cbiAgZm9ybWF0Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbW1vbiBjb3VudHJ5IGNvZGVzIGZvciBxdWljayBhY2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBDT01NT05fQ09VTlRSWV9DT0RFUzogQ291bnRyeUNvZGVbXSA9IFtcbiAgeyBjb2RlOiAnVVMnLCBuYW1lOiAnVW5pdGVkIFN0YXRlcycsIGRpYWxDb2RlOiAnKzEnLCBmbGFnOiAn8J+HuvCfh7gnLCBmb3JtYXQ6ICcoWFhYKSBYWFgtWFhYWCcgfSxcbiAgeyBjb2RlOiAnTVgnLCBuYW1lOiAnTcOpeGljbycsIGRpYWxDb2RlOiAnKzUyJywgZmxhZzogJ/Cfh7Lwn4e9JywgZm9ybWF0OiAnWFggWFhYWCBYWFhYJyB9LFxuICB7IGNvZGU6ICdFUycsIG5hbWU6ICdFc3Bhw7FhJywgZGlhbENvZGU6ICcrMzQnLCBmbGFnOiAn8J+HqvCfh7gnLCBmb3JtYXQ6ICdYWFggWFhYIFhYWCcgfSxcbiAgeyBjb2RlOiAnQVInLCBuYW1lOiAnQXJnZW50aW5hJywgZGlhbENvZGU6ICcrNTQnLCBmbGFnOiAn8J+HpvCfh7cnLCBmb3JtYXQ6ICdYWCBYWFhYIFhYWFgnIH0sXG4gIHsgY29kZTogJ0NPJywgbmFtZTogJ0NvbG9tYmlhJywgZGlhbENvZGU6ICcrNTcnLCBmbGFnOiAn8J+HqPCfh7QnLCBmb3JtYXQ6ICdYWFggWFhYIFhYWFgnIH0sXG4gIHsgY29kZTogJ0NMJywgbmFtZTogJ0NoaWxlJywgZGlhbENvZGU6ICcrNTYnLCBmbGFnOiAn8J+HqPCfh7EnLCBmb3JtYXQ6ICdYIFhYWFggWFhYWCcgfSxcbiAgeyBjb2RlOiAnUEUnLCBuYW1lOiAnUGVyw7onLCBkaWFsQ29kZTogJys1MScsIGZsYWc6ICfwn4e18J+HqicsIGZvcm1hdDogJ1hYWCBYWFggWFhYJyB9LFxuICB7IGNvZGU6ICdCUicsIG5hbWU6ICdCcmFzaWwnLCBkaWFsQ29kZTogJys1NScsIGZsYWc6ICfwn4en8J+HtycsIGZvcm1hdDogJ1hYIFhYWFhYIFhYWFgnIH0sXG4gIHsgY29kZTogJ0dCJywgbmFtZTogJ1VuaXRlZCBLaW5nZG9tJywgZGlhbENvZGU6ICcrNDQnLCBmbGFnOiAn8J+HrPCfh6cnLCBmb3JtYXQ6ICdYWFhYIFhYWFhYWCcgfSxcbiAgeyBjb2RlOiAnREUnLCBuYW1lOiAnR2VybWFueScsIGRpYWxDb2RlOiAnKzQ5JywgZmxhZzogJ/Cfh6nwn4eqJywgZm9ybWF0OiAnWFhYIFhYWFhYWFgnIH0sXG4gIHsgY29kZTogJ0ZSJywgbmFtZTogJ0ZyYW5jZScsIGRpYWxDb2RlOiAnKzMzJywgZmxhZzogJ/Cfh6vwn4e3JywgZm9ybWF0OiAnWCBYWCBYWCBYWCBYWCcgfSxcbiAgeyBjb2RlOiAnSVQnLCBuYW1lOiAnSXRhbHknLCBkaWFsQ29kZTogJyszOScsIGZsYWc6ICfwn4eu8J+HuScsIGZvcm1hdDogJ1hYWCBYWFggWFhYWCcgfSxcbiAgeyBjb2RlOiAnQ0EnLCBuYW1lOiAnQ2FuYWRhJywgZGlhbENvZGU6ICcrMScsIGZsYWc6ICfwn4eo8J+HpicsIGZvcm1hdDogJyhYWFgpIFhYWC1YWFhYJyB9LFxuXTtcblxuLyoqXG4gKiBNZXRhZGF0YSBmb3IgdGhlIHBob25lIGlucHV0IGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaG9uZUlucHV0TWV0YWRhdGEge1xuICAvKiogRm9ybSBjb250cm9sIGZvciB0aGUgY29tcGxldGUgcGhvbmUgbnVtYmVyICh3aXRoIGNvdW50cnkgY29kZSkgKi9cbiAgY29udHJvbDogRm9ybUNvbnRyb2w8c3RyaW5nPjtcbiAgLyoqIFNlcGFyYXRlIGNvbnRyb2wgZm9yIGp1c3QgdGhlIG51bWJlciAod2l0aG91dCBjb3VudHJ5IGNvZGUpICovXG4gIG51bWJlckNvbnRyb2w/OiBGb3JtQ29udHJvbDxzdHJpbmc+O1xuICAvKiogU2VwYXJhdGUgY29udHJvbCBmb3IgY291bnRyeSBjb2RlIHNlbGVjdGlvbiAqL1xuICBjb3VudHJ5Q29udHJvbD86IEZvcm1Db250cm9sPHN0cmluZz47XG4gIC8qKiBVbmlxdWUgdG9rZW4gZm9yIHRoZSBpbnB1dCAqL1xuICB0b2tlbj86IHN0cmluZztcbiAgLyoqIERpc3BsYXkgbGFiZWwgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBGaWVsZCBuYW1lICovXG4gIG5hbWU/OiBzdHJpbmc7XG4gIC8qKiBIZWxwIHRleHQgKi9cbiAgaGludD86IHN0cmluZztcbiAgLyoqIElucHV0IHBsYWNlaG9sZGVyIGZvciBwaG9uZSBudW1iZXIgKi9cbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIC8qKiBGaWVsZCBzdGF0ZSAqL1xuICBzdGF0ZT86IENvbXBvbmVudFN0YXRlO1xuXG4gIC8vID09PSBDb3VudHJ5IGNvZGUgb3B0aW9ucyA9PT1cbiAgLyoqIEF2YWlsYWJsZSBjb3VudHJ5IGNvZGVzICovXG4gIGNvdW50cnlDb2Rlcz86IENvdW50cnlDb2RlW107XG4gIC8qKiBEZWZhdWx0IGNvdW50cnkgY29kZSAoSVNPIGNvZGUsIGUuZy4sICdNWCcpICovXG4gIGRlZmF1bHRDb3VudHJ5Pzogc3RyaW5nO1xuICAvKiogU2hvdyBjb3VudHJ5IHNlbGVjdG9yICovXG4gIHNob3dDb3VudHJ5U2VsZWN0b3I/OiBib29sZWFuO1xuICAvKiogU2hvdyBjb3VudHJ5IGZsYWcgKi9cbiAgc2hvd0ZsYWc/OiBib29sZWFuO1xuICAvKiogQWxsb3cgc2VhcmNoaW5nIGNvdW50cmllcyAqL1xuICBzZWFyY2hhYmxlQ291bnRyaWVzPzogYm9vbGVhbjtcbiAgLyoqIFByZWZlcnJlZCBjb3VudHJpZXMgdG8gc2hvdyBhdCB0b3AgKi9cbiAgcHJlZmVycmVkQ291bnRyaWVzPzogc3RyaW5nW107XG5cbiAgLy8gPT09IFZhbGlkYXRpb24gPT09XG4gIC8qKiBWYWxpZGF0ZSBwaG9uZSBmb3JtYXQgKi9cbiAgdmFsaWRhdGVGb3JtYXQ/OiBib29sZWFuO1xuICAvKiogQ3VzdG9tIHZhbGlkYXRpb24gcGF0dGVybiAqL1xuICBwYXR0ZXJuPzogc3RyaW5nO1xuICAvKiogTWluaW11bSBkaWdpdHMgKi9cbiAgbWluRGlnaXRzPzogbnVtYmVyO1xuICAvKiogTWF4aW11bSBkaWdpdHMgKi9cbiAgbWF4RGlnaXRzPzogbnVtYmVyO1xuXG4gIC8vID09PSBTdHlsaW5nID09PVxuICAvKiogQ29tcG9uZW50IGNvbG9yICovXG4gIGNvbG9yPzogQ29sb3I7XG4gIC8qKiBGaWxsIHN0eWxlICovXG4gIGZpbGw/OiAnb3V0bGluZScgfCAnc29saWQnO1xuICAvKiogTGFiZWwgcGxhY2VtZW50ICovXG4gIGxhYmVsUGxhY2VtZW50PzogJ2ZpeGVkJyB8ICdmbG9hdGluZycgfCAnc3RhY2tlZCcgfCAnc3RhcnQnIHwgJ2VuZCc7XG4gIC8qKiBDdXN0b20gQ1NTIGNsYXNzICovXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xuXG4gIC8vID09PSBSZWFjdGl2ZSBjb250ZW50ID09PVxuICAvKiogQ29udGVudCBrZXkgZm9yIHJlYWN0aXZlIGxhYmVsICovXG4gIGxhYmVsQ29udGVudEtleT86IHN0cmluZztcbiAgLyoqIENvbnRlbnQga2V5IGZvciByZWFjdGl2ZSBwbGFjZWhvbGRlciAqL1xuICBwbGFjZWhvbGRlckNvbnRlbnRLZXk/OiBzdHJpbmc7XG4gIC8qKiBDb250ZW50IGtleSBmb3IgcmVhY3RpdmUgaGludCAqL1xuICBoaW50Q29udGVudEtleT86IHN0cmluZztcbiAgLyoqIENvbXBvbmVudCBjbGFzcyBuYW1lIGZvciBjb250ZW50IGxvb2t1cCAqL1xuICBjb250ZW50Q2xhc3M/OiBzdHJpbmc7XG5cbiAgLy8gPT09IFZhbGlkYXRpb24gZGlzcGxheSA9PT1cbiAgLyoqIEN1c3RvbSBlcnJvciBtZXNzYWdlcyAqL1xuICBlcnJvcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKiogU2hvdyB2YWxpZGF0aW9uIGVycm9ycyAqL1xuICBzaG93RXJyb3JzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBFdmVudCBlbWl0dGVkIHdoZW4gcGhvbmUgaW5wdXQgY2hhbmdlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaG9uZUlucHV0Q2hhbmdlRXZlbnQge1xuICAvKiogQ29tcGxldGUgcGhvbmUgbnVtYmVyIHdpdGggY291bnRyeSBjb2RlICovXG4gIGZ1bGxOdW1iZXI6IHN0cmluZztcbiAgLyoqIFBob25lIG51bWJlciB3aXRob3V0IGNvdW50cnkgY29kZSAqL1xuICBudW1iZXI6IHN0cmluZztcbiAgLyoqIFNlbGVjdGVkIGNvdW50cnkgKi9cbiAgY291bnRyeTogQ291bnRyeUNvZGUgfCBudWxsO1xuICAvKiogV2hldGhlciB0aGUgbnVtYmVyIGlzIHZhbGlkICovXG4gIGlzVmFsaWQ6IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -8,8 +8,8 @@ export class PillComponent {
|
|
|
8
8
|
constructor() {
|
|
9
9
|
this.theme = inject(ThemeService);
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
12
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PillComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PillComponent, isStandalone: true, selector: "val-pill", inputs: { props: "props" }, ngImport: i0, template: `
|
|
13
13
|
<div
|
|
14
14
|
[id]="props.token"
|
|
15
15
|
class="fun-card"
|
|
@@ -23,7 +23,7 @@ export class PillComponent {
|
|
|
23
23
|
</div>
|
|
24
24
|
`, 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)}.fun-card{z-index:0;position:relative;margin-bottom:8px;cursor:pointer;background:var(--ion-card-background, var(--ion-item-background, var(--ion-background-color, #fff)));display:flex;border-radius:48px;align-items:start;padding:8px 8px 8px 24px;flex-direction:column;box-shadow:0 .25rem .75rem #12195412}.fun-card.hoverable{transition:transform .3s ease,box-shadow .3s ease}.fun-card.hoverable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.bordered{border:.0625rem solid var(--ion-color-medium)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ActionHeaderComponent, selector: "val-action-header", inputs: ["props"] }] }); }
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PillComponent, decorators: [{
|
|
27
27
|
type: Component,
|
|
28
28
|
args: [{ selector: 'val-pill', standalone: true, imports: [CommonModule, ActionHeaderComponent], template: `
|
|
29
29
|
<div
|
|
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
41
41
|
}], propDecorators: { props: [{
|
|
42
42
|
type: Input
|
|
43
43
|
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BpbGwvcGlsbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7OztBQXNCakYsTUFBTSxPQUFPLGFBQWE7SUFuQjFCO1FBb0JFLFVBQUssR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0FJOUI7K0dBTFksYUFBYTttR0FBYixhQUFhLGdHQWZkOzs7Ozs7Ozs7Ozs7R0FZVCwybEdBYlMsWUFBWSxvSEFBRSxxQkFBcUI7OzRGQWdCbEMsYUFBYTtrQkFuQnpCLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxxQkFBcUIsQ0FBQyxZQUNwQzs7Ozs7Ozs7Ozs7O0dBWVQ7OEJBT0QsS0FBSztzQkFESixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdGhlbWUuc2VydmljZSc7XG5pbXBvcnQgeyBBY3Rpb25IZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9hY3Rpb24taGVhZGVyL2FjdGlvbi1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBpbGxNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcGlsbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFjdGlvbkhlYWRlckNvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgW2lkXT1cInByb3BzLnRva2VuXCJcbiAgICAgIGNsYXNzPVwiZnVuLWNhcmRcIlxuICAgICAgW2NsYXNzLmJvcmRlcmVkXT1cInByb3BzLmJvcmRlcmVkXCJcbiAgICAgIFtjbGFzcy5ob3ZlcmFibGVdPVwicHJvcHMuaG92ZXJhYmxlXCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgYmFja2dyb3VuZDogdGhlbWUuSXNEYXJrID8gJ3ZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yKScgOiBwcm9wcy5iYWNrZ3JvdW5kLFxuICAgICAgfVwiXG4gICAgPlxuICAgICAgPHZhbC1hY3Rpb24taGVhZGVyIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgW3Byb3BzXT1cInByb3BzLmNvbnRlbnRcIiAvPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9waWxsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBpbGxDb21wb25lbnQge1xuICB0aGVtZSA9IGluamVjdChUaGVtZVNlcnZpY2UpO1xuXG4gIEBJbnB1dCgpXG4gIHByb3BzOiBQaWxsTWV0YWRhdGE7XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BpbGwvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbkhlYWRlck1ldGFkYXRhIH0gZnJvbSAnLi4vYWN0aW9uLWhlYWRlci90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIFBpbGxNZXRhZGF0YSA9IHtcbiAgdG9rZW4/OiBzdHJpbmc7XG4gIGltYWdlPzogc3RyaW5nO1xuICBib3JkZXJlZD86IGJvb2xlYW47XG4gIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gIGhvdmVyYWJsZT86IGJvb2xlYW47XG4gIGNvbnRlbnQ6IEFjdGlvbkhlYWRlck1ldGFkYXRhO1xufTtcbiJdfQ==
|
|
@@ -32,14 +32,14 @@ export class PinInputComponent {
|
|
|
32
32
|
this.pinCode.setValue('');
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
36
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PinInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PinInputComponent, isStandalone: true, selector: "val-pin-input", inputs: { props: "props" }, viewQueries: [{ propertyName: "pinCode", first: true, predicate: NgOtpInputComponent, descendants: true }], ngImport: i0, template: `
|
|
37
37
|
<div class="otp">
|
|
38
38
|
<ng-otp-input [formCtrl]="props.control" [config]="otpInputConfig"></ng-otp-input>
|
|
39
39
|
</div>
|
|
40
40
|
`, 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}}.otp{text-align:center;margin-top:.25rem;font-family:var(--ion-default-font),Arial,sans-serif}.otp-input-box:focus{border-color:#0ff}\n"], dependencies: [{ kind: "ngmodule", type: NgOtpInputModule }, { kind: "component", type: i1.NgOtpInputComponent, selector: "ng-otp-input", inputs: ["config", "formCtrl"], outputs: ["onInputChange"] }] }); }
|
|
41
41
|
}
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PinInputComponent, decorators: [{
|
|
43
43
|
type: Component,
|
|
44
44
|
args: [{ selector: 'val-pin-input', standalone: true, imports: [NgOtpInputModule], template: `
|
|
45
45
|
<div class="otp">
|
|
@@ -52,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
52
52
|
}], props: [{
|
|
53
53
|
type: Input
|
|
54
54
|
}] } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcGluLWlucHV0L3Bpbi1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxtQkFBbUIsRUFBb0IsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQWN2Rjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBc0I1QjtRQVpBLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixtQkFBYyxHQUFxQjtZQUNqQyxXQUFXLEVBQUU7Z0JBQ1gsV0FBVyxFQUFFLE1BQU07Z0JBQ25CLEtBQUssRUFBRSxNQUFNO2dCQUNiLE1BQU0sRUFBRSxNQUFNO2FBQ2Y7WUFDRCxVQUFVLEVBQUUsZUFBZTtZQUMzQixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDdkIsZ0JBQWdCLEVBQUUsSUFBSTtTQUN2QixDQUFDO0lBRWEsQ0FBQztJQUVoQixRQUFRLEtBQUksQ0FBQztJQUViLEtBQUs7UUFDSCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQzsrR0E5QlUsaUJBQWlCO21HQUFqQixpQkFBaUIsOElBQ2pCLG1CQUFtQixnREFsQnBCOzs7O0dBSVQscXpGQUxTLGdCQUFnQjs7NEZBa0JmLGlCQUFpQjtrQkFyQjdCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLGdCQUFnQixDQUFDLFlBQ2pCOzs7O0dBSVQ7d0RBY2tELE9BQU87c0JBQXpELFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQU94QyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdPdHBJbnB1dENvbXBvbmVudCwgTmdPdHBJbnB1dENvbmZpZywgTmdPdHBJbnB1dE1vZHVsZSB9IGZyb20gJ25nLW90cC1pbnB1dCc7XG5pbXBvcnQgeyBJbnB1dE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcGluLWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nT3RwSW5wdXRNb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJvdHBcIj5cbiAgICAgIDxuZy1vdHAtaW5wdXQgW2Zvcm1DdHJsXT1cInByb3BzLmNvbnRyb2xcIiBbY29uZmlnXT1cIm90cElucHV0Q29uZmlnXCI+PC9uZy1vdHAtaW5wdXQ+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3Bpbi1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLXBpbi1pbnB1dFxuICpcbiAqIEEgUElOIGNvZGUgaW5wdXQgdXNpbmcgbmctb3RwLWlucHV0LCBpbnRlZ3JhdGVkIHdpdGggQW5ndWxhciBmb3Jtcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC1waW4taW5wdXQgW3Byb3BzXT1cInsgY29udHJvbDogbXlDb250cm9sIH1cIj48L3ZhbC1waW4taW5wdXQ+XG4gKlxuICogQGlucHV0IHByb3BzOiBJbnB1dE1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIFBJTiBpbnB1dCAoZm9ybSBjb250cm9sLCBldGMuKVxuICovXG5leHBvcnQgY2xhc3MgUGluSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKE5nT3RwSW5wdXRDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KSBwaW5Db2RlOiBOZ090cElucHV0Q29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBJbnB1dCBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICogQHR5cGUge0lucHV0TWV0YWRhdGF9XG4gICAqIEBwcm9wZXJ0eSBjb250cm9sIC0gVGhlIEFuZ3VsYXIgRm9ybUNvbnRyb2wgZm9yIHRoZSBQSU4gaW5wdXQuXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogSW5wdXRNZXRhZGF0YTtcblxuICBjb2RlTGVuZ3RoID0gNTtcbiAgb3RwSW5wdXRDb25maWc6IE5nT3RwSW5wdXRDb25maWcgPSB7XG4gICAgaW5wdXRTdHlsZXM6IHtcbiAgICAgICdmb250LXNpemUnOiAnMzJweCcsXG4gICAgICB3aWR0aDogJzU4cHgnLFxuICAgICAgaGVpZ2h0OiAnNjBweCcsXG4gICAgfSxcbiAgICBpbnB1dENsYXNzOiAnb3RwLWlucHV0LWJveCcsXG4gICAgbGVuZ3RoOiB0aGlzLmNvZGVMZW5ndGgsXG4gICAgYWxsb3dOdW1iZXJzT25seTogdHJ1ZSxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIHJlc2V0KCkge1xuICAgIGlmICh0aGlzLnBpbkNvZGUpIHtcbiAgICAgIHRoaXMucGluQ29kZS5zZXRWYWx1ZSgnJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -52,8 +52,8 @@ export class PlainCodeBoxComponent {
|
|
|
52
52
|
});
|
|
53
53
|
toast.present();
|
|
54
54
|
}
|
|
55
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
56
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
55
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PlainCodeBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
56
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PlainCodeBoxComponent, isStandalone: true, selector: "val-plain-code-box", inputs: { props: "props" }, viewQueries: [{ propertyName: "codeBlock", first: true, predicate: ["codeBlock"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
57
57
|
<div class="code-box-container">
|
|
58
58
|
<ion-button *ngIf="props.showCopyButton !== false" fill="clear" class="copy-button" (click)="copyCode()">
|
|
59
59
|
<ion-icon name="copy-outline"></ion-icon>
|
|
@@ -63,7 +63,7 @@ export class PlainCodeBoxComponent {
|
|
|
63
63
|
</div>
|
|
64
64
|
`, isInline: true, styles: [".code-box-container{position:relative;background-color:#282c34;border-radius:16px;overflow:hidden;box-shadow:0 4px 15px #0009;margin:0}@media (prefers-color-scheme: light){.code-box-container{background-color:#fff;box-shadow:0 2px 4px #0000001a}}.copy-button{position:absolute;top:8px;right:8px;z-index:10;--padding-start: 2px;--padding-end: 2px;--padding-top: 2px;--padding-bottom: 2px;min-width:28px;min-height:28px;height:28px;width:28px;color:#61afef;background:#0006;border-radius:6px;box-shadow:0 1px 4px #0000000d;display:flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease}.copy-button:hover{background:#00000080;color:#8cc4ff}.copy-button ion-icon{font-size:1.2em;margin:0}@media (prefers-color-scheme: light){.copy-button{color:var(--ion-color-primary, #007bff);background:#ffffffb3}.copy-button:hover{background:#ffffffe6;color:var(--ion-color-primary-tint, #3880ff)}}pre{margin:0;padding:0;background-color:transparent;min-width:100%;min-height:100%;white-space:pre-wrap;word-break:normal;font-family:Roboto Mono,monospace}code{font-family:Roboto Mono,monospace;font-size:.9em;line-height:1.6;display:block;white-space:inherit;word-break:inherit;color:#abb2bf;margin:0}@media (prefers-color-scheme: light){code{color:#333}}code .line-normal{color:#abb2bf}@media (prefers-color-scheme: light){code .line-normal{color:#333}}code .line-command{color:#c678dd}@media (prefers-color-scheme: light){code .line-command{color:var(--ion-color-primary, #3880ff)}}code .line-error{color:#e06c75}@media (prefers-color-scheme: light){code .line-error{color:var(--ion-color-danger, #eb445a)}}code .line-success{color:#98c379}@media (prefers-color-scheme: light){code .line-success{color:var(--ion-color-success, #2dd36f)}}code .token.comment{color:#5c6370}code .token.selector,code .token.string{color:#98c379}code .token.punctuation{color:#abb2bf}code .token.operator{color:#c678dd}code .token.boolean,code .token.number{color:#d19a66}code .token.function{color:#61afef}code .token.keyword{color:#c678dd}code .token.class-name{color:#e6c07b}code .token.tag{color:#e06c75}code .token.attr-name{color:#d19a66}code .token.attr-value{color:#98c379}code .token.property{color:#56b6c2}code .token.variable{color:#e06c75}@media (max-width: 600px){.code-box-container{border-radius:16px}.copy-button{top:6px;right:6px;min-width:24px;min-height:24px;height:24px;width:24px}.copy-button ion-icon{font-size:1em}pre{padding:0;margin:0}code{font-size:.8em;line-height:1.5;margin:0}}@media (min-width: 601px) and (max-width: 1024px){code{font-size:.9em}}@media (min-width: 1025px){code{font-size:1em}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { 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"] }] }); }
|
|
65
65
|
}
|
|
66
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PlainCodeBoxComponent, decorators: [{
|
|
67
67
|
type: Component,
|
|
68
68
|
args: [{ selector: 'val-plain-code-box', standalone: true, imports: [CommonModule, IonIcon, IonButton], template: `
|
|
69
69
|
<div class="code-box-container">
|
|
@@ -80,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
80
80
|
type: ViewChild,
|
|
81
81
|
args: ['codeBlock']
|
|
82
82
|
}] } });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhaW4tY29kZS1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wbGFpbi1jb2RlLWJveC9wbGFpbi1jb2RlLWJveC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUVULE1BQU0sRUFDTixLQUFLLEVBR0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUvRCxPQUFPLEtBQUssS0FBSyxNQUFNLFNBQVMsQ0FBQztBQUNqQyxPQUFPLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOzs7QUFrQnBGLE1BQU0sT0FBTyxxQkFBcUI7SUFTaEM7UUFSQSxVQUFLLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hDLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoQyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV6QixVQUFLLEdBQXlCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBSXRDLENBQUM7SUFFaEIsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDekIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RFLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVE7UUFDWixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BFLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3BCLE1BQU0sRUFBRSxRQUFRO2FBQ2pCLENBQUMsQ0FBQztZQUNILE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztZQUNqRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFlO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDcEMsT0FBTyxFQUFFLE9BQU87WUFDaEIsUUFBUSxFQUFFLElBQUk7WUFDZCxRQUFRLEVBQUUsUUFBUTtZQUNsQixLQUFLLEVBQUUsTUFBTTtTQUNkLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNsQixDQUFDOytHQS9DVSxxQkFBcUI7bUdBQXJCLHFCQUFxQix1T0FYdEI7Ozs7Ozs7O0dBUVQsNm9GQVRTLFlBQVksZ1FBQUUsT0FBTywySkFBRSxTQUFTOzs0RkFZL0IscUJBQXFCO2tCQWZqQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxZQUNqQzs7Ozs7Ozs7R0FRVDt3REFRUSxLQUFLO3NCQUFiLEtBQUs7Z0JBRWtCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGlwYm9hcmQgfSBmcm9tICdAY2FwYWNpdG9yL2NsaXBib2FyZCc7XG5pbXBvcnQgeyBUb2FzdENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcblxuaW1wb3J0ICogYXMgUHJpc20gZnJvbSAncHJpc21qcyc7XG5pbXBvcnQgJ3ByaXNtanMvY29tcG9uZW50cy9wcmlzbS1iYXNoJztcbmltcG9ydCAncHJpc21qcy9jb21wb25lbnRzL3ByaXNtLWNzcyc7XG5pbXBvcnQgJ3ByaXNtanMvY29tcG9uZW50cy9wcmlzbS1qYXZhc2NyaXB0JztcbmltcG9ydCAncHJpc21qcy9jb21wb25lbnRzL3ByaXNtLW1hcmt1cCc7XG5pbXBvcnQgJ3ByaXNtanMvY29tcG9uZW50cy9wcmlzbS10eXBlc2NyaXB0JztcbmltcG9ydCB7IExhbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbGFuZy1wcm92aWRlci9sYW5nLXByb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGxhaW5Db2RlQm94TWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXBsYWluLWNvZGUtYm94JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uSWNvbiwgSW9uQnV0dG9uXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiY29kZS1ib3gtY29udGFpbmVyXCI+XG4gICAgICA8aW9uLWJ1dHRvbiAqbmdJZj1cInByb3BzLnNob3dDb3B5QnV0dG9uICE9PSBmYWxzZVwiIGZpbGw9XCJjbGVhclwiIGNsYXNzPVwiY29weS1idXR0b25cIiAoY2xpY2spPVwiY29weUNvZGUoKVwiPlxuICAgICAgICA8aW9uLWljb24gbmFtZT1cImNvcHktb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgICA8cHJlPjxjb2RlIFtjbGFzc109XCInbGFuZ3VhZ2UtJyArIChwcm9wcy5sYW5ndWFnZSB8fCAnYmFzaCcpXCIgI2NvZGVCbG9jaz48bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsaW5lIG9mIHByb3BzLmxpbmVzOyBsZXQgaSA9IGluZGV4XCI+PHNwYW4gW2NsYXNzXT1cImxpbmUudHlwZSA/ICdsaW5lLScgKyBsaW5lLnR5cGUgOiAnbGluZS1ub3JtYWwnXCI+e3sgbGluZS50ZXh0IH19PC9zcGFuPjxiciAqbmdJZj1cImkgPCBwcm9wcy5saW5lcy5sZW5ndGggLSAxXCI+XG48L25nLWNvbnRhaW5lcj48L2NvZGU+PC9wcmU+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3BsYWluLWNvZGUtYm94LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBsYWluQ29kZUJveENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIHRvYXN0ID0gaW5qZWN0KFRvYXN0Q29udHJvbGxlcik7XG4gIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIGxhbmdTZXJ2aWNlID0gaW5qZWN0KExhbmdTZXJ2aWNlKTtcblxuICBASW5wdXQoKSBwcm9wczogUGxhaW5Db2RlQm94TWV0YWRhdGEgPSB7IGxpbmVzOiBbXSB9O1xuXG4gIEBWaWV3Q2hpbGQoJ2NvZGVCbG9jaycpIGNvZGVCbG9jayE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3Byb3BzJ10gJiYgIWNoYW5nZXNbJ3Byb3BzJ10uZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5oaWdobGlnaHRDb2RlKCkpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuaGlnaGxpZ2h0Q29kZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGlnaGxpZ2h0Q29kZSgpIHtcbiAgICBpZiAodGhpcy5jb2RlQmxvY2sgJiYgdGhpcy5wcm9wcy5saW5lcyAmJiB0aGlzLnByb3BzLmxpbmVzLmxlbmd0aCA+IDApIHtcbiAgICAgIFByaXNtLmhpZ2hsaWdodEVsZW1lbnQodGhpcy5jb2RlQmxvY2submF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY29weUNvZGUoKSB7XG4gICAgY29uc3QgZnVsbENvZGUgPSB0aGlzLnByb3BzLmxpbmVzLm1hcChsaW5lID0+IGxpbmUudGV4dCkuam9pbignXFxuJyk7XG4gICAgaWYgKGZ1bGxDb2RlKSB7XG4gICAgICBhd2FpdCBDbGlwYm9hcmQud3JpdGUoe1xuICAgICAgICBzdHJpbmc6IGZ1bGxDb2RlLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBjb3BpZWRNZXNzYWdlID0gdGhpcy5sYW5nU2VydmljZS5nZXRUZXh0KCdfZ2xvYmFsJywgJ2NvcGllZCcsICfCoUNvcGlhZG8gYWwgcG9ydGFwYXBlbGVzIScpO1xuICAgICAgdGhpcy5wcmVzZW50VG9hc3QoY29waWVkTWVzc2FnZSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcHJlc2VudFRvYXN0KG1lc3NhZ2U6IHN0cmluZykge1xuICAgIGNvbnN0IHRvYXN0ID0gYXdhaXQgdGhpcy50b2FzdC5jcmVhdGUoe1xuICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgIGR1cmF0aW9uOiAyMDAwLFxuICAgICAgcG9zaXRpb246ICdib3R0b20nLFxuICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICB9KTtcbiAgICB0b2FzdC5wcmVzZW50KCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BsYWluLWNvZGUtYm94L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBDb2RlTGluZVR5cGUgPSAnbm9ybWFsJyB8ICdjb21tYW5kJyB8ICdzdWNjZXNzJyB8ICdlcnJvcic7XG5cbmV4cG9ydCB0eXBlIENvZGVMaW5lID0ge1xuICB0ZXh0OiBzdHJpbmc7XG4gIHR5cGU/OiBDb2RlTGluZVR5cGU7XG59O1xuXG5leHBvcnQgdHlwZSBQbGFpbkNvZGVCb3hNZXRhZGF0YSA9IHtcbiAgbGluZXM6IENvZGVMaW5lW107XG4gIHNob3dDb3B5QnV0dG9uPzogYm9vbGVhbjtcbiAgbGFuZ3VhZ2U/OiBzdHJpbmc7XG59O1xuIl19
|