valtech-components 2.0.687 → 2.0.689
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/.editorconfig +16 -0
- package/.prettierignore +6 -0
- package/.prettierrc +30 -0
- package/.storybook/main.ts +21 -0
- package/.storybook/preview-body.html +60 -0
- package/.storybook/preview-head.html +48 -0
- package/.storybook/preview.ts +52 -0
- package/.storybook/tsconfig.json +12 -0
- package/I18N-COMPONENTS-MIGRATION.md +496 -0
- package/angular.json +60 -0
- package/ng-package.json +16 -0
- package/package.json +64 -16
- package/scripts/publish.sh +30 -0
- package/scripts/update-apps.sh +94 -0
- package/src/lib/components/atoms/avatar/avatar.component.scss +31 -0
- package/src/lib/components/atoms/avatar/avatar.component.ts +95 -0
- package/src/lib/components/atoms/avatar/avatar.stories.ts +243 -0
- package/src/lib/components/atoms/avatar/types.ts +15 -0
- package/src/lib/components/atoms/box/box.component.scss +57 -0
- package/src/lib/components/atoms/box/box.component.ts +77 -0
- package/src/lib/components/atoms/box/box.stories.ts +280 -0
- package/src/lib/components/atoms/box/types.ts +20 -0
- package/src/lib/components/atoms/button/button.component.scss +20 -0
- package/src/lib/components/atoms/button/button.component.ts +174 -0
- package/src/lib/components/atoms/button/button.stories.ts +293 -0
- package/src/lib/components/atoms/button/factory.ts +444 -0
- package/src/lib/components/atoms/countdown/countdown.component.scss +256 -0
- package/src/lib/components/atoms/countdown/countdown.component.ts +293 -0
- package/src/lib/components/atoms/countdown/countdown.stories.ts +316 -0
- package/src/lib/components/atoms/countdown/types.ts +144 -0
- package/src/lib/components/atoms/display/display.component.scss +17 -0
- package/src/lib/components/atoms/display/display.component.ts +54 -0
- package/src/lib/components/atoms/display/display.stories.ts +185 -0
- package/src/lib/components/atoms/display/types.ts +35 -0
- package/src/lib/components/atoms/divider/divider.component.scss +62 -0
- package/src/lib/components/atoms/divider/divider.component.ts +35 -0
- package/src/lib/components/atoms/divider/divider.stories.ts +202 -0
- package/src/lib/components/atoms/divider/types.ts +12 -0
- package/src/lib/components/atoms/fab/fab.component.scss +26 -0
- package/src/lib/components/atoms/fab/fab.component.ts +166 -0
- package/src/lib/components/atoms/fab/fab.stories.ts +360 -0
- package/src/lib/components/atoms/fab/types.ts +47 -0
- package/src/lib/components/atoms/horizontal-scroll/horizontal-scroll.component.scss +39 -0
- package/src/lib/components/atoms/horizontal-scroll/horizontal-scroll.component.ts +67 -0
- package/src/lib/components/atoms/horizontal-scroll/horizontal-scroll.stories.ts +351 -0
- package/src/lib/components/atoms/horizontal-scroll/types.ts +13 -0
- package/src/lib/components/atoms/href/href.component.scss +25 -0
- package/src/lib/components/atoms/href/href.component.ts +64 -0
- package/src/lib/components/atoms/href/href.stories.ts +214 -0
- package/src/lib/components/atoms/href/types.ts +20 -0
- package/src/lib/components/atoms/icon/icon.component.scss +33 -0
- package/src/lib/components/atoms/icon/icon.component.ts +38 -0
- package/src/lib/components/atoms/icon/icon.stories.ts +160 -0
- package/src/lib/components/atoms/icon/types.ts +14 -0
- package/src/lib/components/atoms/image/README.md +0 -0
- package/src/lib/components/atoms/image/image.component.scss +281 -0
- package/src/lib/components/atoms/image/image.component.ts +399 -0
- package/src/lib/components/atoms/image/image.stories.ts +317 -0
- package/src/lib/components/atoms/image/types.ts +37 -0
- package/src/lib/components/atoms/price-tag/price-tag.component.scss +228 -0
- package/src/lib/components/atoms/price-tag/price-tag.component.ts +188 -0
- package/src/lib/components/atoms/price-tag/price-tag.stories.ts +315 -0
- package/src/lib/components/atoms/price-tag/types.ts +78 -0
- package/src/lib/components/atoms/progress-bar/progress-bar.component.scss +22 -0
- package/src/lib/components/atoms/progress-bar/progress-bar.component.ts +88 -0
- package/src/lib/components/atoms/progress-bar/progress-bar.stories.ts +375 -0
- package/src/lib/components/atoms/progress-bar/types.ts +20 -0
- package/src/lib/components/atoms/progress-ring/progress-ring.component.scss +35 -0
- package/src/lib/components/atoms/progress-ring/progress-ring.component.ts +114 -0
- package/src/lib/components/atoms/progress-ring/progress-ring.stories.ts +323 -0
- package/src/lib/components/atoms/progress-ring/types.ts +25 -0
- package/src/lib/components/atoms/qr-code/qr-code.component.scss +353 -0
- package/src/lib/components/atoms/qr-code/qr-code.component.ts +313 -0
- package/src/lib/components/atoms/qr-code/qr-code.stories.ts +767 -0
- package/src/lib/components/atoms/qr-code/types.ts +173 -0
- package/src/lib/components/atoms/rights-footer/rights-footer.component.scss +20 -0
- package/src/lib/components/atoms/rights-footer/rights-footer.component.ts +98 -0
- package/src/lib/components/atoms/rights-footer/rights-footer.stories.ts +229 -0
- package/src/lib/components/atoms/rights-footer/types.ts +21 -0
- package/src/lib/components/atoms/skeleton/skeleton.component.scss +58 -0
- package/src/lib/components/atoms/skeleton/skeleton.component.ts +129 -0
- package/src/lib/components/atoms/skeleton/skeleton.stories.ts +242 -0
- package/src/lib/components/atoms/skeleton/types.ts +39 -0
- package/src/lib/components/atoms/text/text.component.scss +38 -0
- package/src/lib/components/atoms/text/text.component.ts +123 -0
- package/src/lib/components/atoms/text/text.stories.ts +174 -0
- package/src/lib/components/atoms/text/types.ts +50 -0
- package/src/lib/components/atoms/title/title.component.scss +33 -0
- package/src/lib/components/atoms/title/title.component.ts +65 -0
- package/src/lib/components/atoms/title/title.stories.ts +167 -0
- package/src/lib/components/atoms/title/types.ts +46 -0
- package/src/lib/components/molecules/accordion/accordion.component.scss +34 -0
- package/src/lib/components/molecules/accordion/accordion.component.ts +103 -0
- package/src/lib/components/molecules/accordion/accordion.stories.ts +236 -0
- package/src/lib/components/molecules/accordion/types.ts +49 -0
- package/src/lib/components/molecules/action-card/action-card.component.scss +226 -0
- package/src/lib/components/molecules/action-card/action-card.component.ts +246 -0
- package/src/lib/components/molecules/action-card/action-card.stories.ts +396 -0
- package/src/lib/components/molecules/action-card/types.ts +102 -0
- package/src/lib/components/molecules/action-header/action-header.component.ts +28 -0
- package/src/lib/components/molecules/action-header/action-header.stories.ts +481 -0
- package/src/lib/components/molecules/action-header/types.ts +7 -0
- package/src/lib/components/molecules/ad-slot/ad-slot.component.ts +352 -0
- package/src/lib/components/molecules/alert-box/alert-box.component.scss +10 -0
- package/src/lib/components/molecules/alert-box/alert-box.component.ts +125 -0
- package/src/lib/components/molecules/alert-box/alert-box.stories.ts +248 -0
- package/src/lib/components/molecules/alert-box/types.ts +39 -0
- package/src/lib/components/molecules/breadcrumb/breadcrumb.component.scss +34 -0
- package/src/lib/components/molecules/breadcrumb/breadcrumb.component.ts +109 -0
- package/src/lib/components/molecules/breadcrumb/breadcrumb.stories.ts +271 -0
- package/src/lib/components/molecules/breadcrumb/types.ts +47 -0
- package/src/lib/components/molecules/button-group/button-group.component.scss +41 -0
- package/src/lib/components/molecules/button-group/button-group.component.ts +65 -0
- package/src/lib/components/molecules/button-group/button-group.stories.ts +296 -0
- package/src/lib/components/molecules/button-group/types.ts +14 -0
- package/src/lib/components/molecules/card/card.component.scss +62 -0
- package/src/lib/components/molecules/card/card.component.ts +300 -0
- package/src/lib/components/molecules/card/card.stories.ts +360 -0
- package/src/lib/components/molecules/card/types.ts +36 -0
- package/src/lib/components/molecules/check-input/check-input.component.scss +0 -0
- package/src/lib/components/molecules/check-input/check-input.component.ts +88 -0
- package/src/lib/components/molecules/check-input/check-input.stories.ts +54 -0
- package/src/lib/components/molecules/chip-group/chip-group.component.scss +70 -0
- package/src/lib/components/molecules/chip-group/chip-group.component.ts +150 -0
- package/src/lib/components/molecules/chip-group/chip-group.stories.ts +307 -0
- package/src/lib/components/molecules/chip-group/types.ts +69 -0
- package/src/lib/components/molecules/code-display/code-display.component.scss +239 -0
- package/src/lib/components/molecules/code-display/code-display.component.ts +109 -0
- package/src/lib/components/molecules/code-display/code-display.stories.ts +402 -0
- package/src/lib/components/molecules/code-display/types.ts +11 -0
- package/src/lib/components/molecules/command-display/command-display.component.scss +38 -0
- package/src/lib/components/molecules/command-display/command-display.component.ts +45 -0
- package/src/lib/components/molecules/command-display/command-display.stories.ts +110 -0
- package/src/lib/components/molecules/command-display/types.ts +3 -0
- package/src/lib/components/molecules/comment/comment.component.scss +339 -0
- package/src/lib/components/molecules/comment/comment.component.ts +496 -0
- package/src/lib/components/molecules/comment/comment.stories.ts +384 -0
- package/src/lib/components/molecules/comment/types.ts +181 -0
- package/src/lib/components/molecules/comment-input/comment-input.component.scss +0 -0
- package/src/lib/components/molecules/comment-input/comment-input.component.ts +42 -0
- package/src/lib/components/molecules/comment-input/comment-input.stories.ts +124 -0
- package/src/lib/components/molecules/comment-input/types.ts +69 -0
- package/src/lib/components/molecules/content-loader/content-loader.component.scss +42 -0
- package/src/lib/components/molecules/content-loader/content-loader.component.ts +45 -0
- package/src/lib/components/molecules/content-loader/content-loader.stories.ts +370 -0
- package/src/lib/components/molecules/content-loader/types.ts +16 -0
- package/src/lib/components/molecules/content-reaction/content-reaction.component.html +81 -0
- package/src/lib/components/molecules/content-reaction/content-reaction.component.scss +157 -0
- package/src/lib/components/molecules/content-reaction/content-reaction.component.ts +273 -0
- package/src/lib/components/molecules/content-reaction/content-reaction.stories.ts +453 -0
- package/src/lib/components/molecules/content-reaction/types.ts +99 -0
- package/src/lib/components/molecules/currency-input/currency-input.component.scss +101 -0
- package/src/lib/components/molecules/currency-input/currency-input.component.ts +327 -0
- package/src/lib/components/molecules/currency-input/currency-input.stories.ts +279 -0
- package/src/lib/components/molecules/currency-input/types.ts +125 -0
- package/src/lib/components/molecules/date-input/date-input.component.scss +11 -0
- package/src/lib/components/molecules/date-input/date-input.component.ts +136 -0
- package/src/lib/components/molecules/date-input/date-input.stories.ts +205 -0
- package/src/lib/components/molecules/date-input/types.ts +84 -0
- package/src/lib/components/molecules/date-range-input/date-range-input.component.scss +119 -0
- package/src/lib/components/molecules/date-range-input/date-range-input.component.ts +364 -0
- package/src/lib/components/molecules/date-range-input/date-range-input.stories.ts +288 -0
- package/src/lib/components/molecules/date-range-input/types.ts +122 -0
- package/src/lib/components/molecules/docs-api-table/docs-api-table.component.scss +278 -0
- package/src/lib/components/molecules/docs-api-table/docs-api-table.component.ts +138 -0
- package/src/lib/components/molecules/docs-api-table/types.ts +81 -0
- package/src/lib/components/molecules/docs-breadcrumb/docs-breadcrumb.component.ts +161 -0
- package/src/lib/components/molecules/docs-breadcrumb/types.ts +21 -0
- package/src/lib/components/molecules/docs-callout/docs-callout.component.scss +136 -0
- package/src/lib/components/molecules/docs-callout/docs-callout.component.ts +55 -0
- package/src/lib/components/molecules/docs-code-example/docs-code-example.component.ts +535 -0
- package/src/lib/components/molecules/docs-code-example/types.ts +75 -0
- package/src/lib/components/molecules/docs-nav-links/docs-nav-links.component.ts +216 -0
- package/src/lib/components/molecules/docs-nav-links/types.ts +36 -0
- package/src/lib/components/molecules/docs-search/docs-search.component.scss +195 -0
- package/src/lib/components/molecules/docs-search/docs-search.component.ts +228 -0
- package/src/lib/components/molecules/docs-search/types.ts +30 -0
- package/src/lib/components/molecules/docs-section/docs-section.component.ts +99 -0
- package/src/lib/components/molecules/docs-section/types.ts +31 -0
- package/src/lib/components/molecules/email-input/email-input.component.scss +0 -0
- package/src/lib/components/molecules/email-input/email-input.component.ts +77 -0
- package/src/lib/components/molecules/email-input/email-input.stories.ts +176 -0
- package/src/lib/components/molecules/expandable-text/expandable-text.component.ts +111 -0
- package/src/lib/components/molecules/expandable-text/expandable-text.stories.ts +287 -0
- package/src/lib/components/molecules/expandable-text/types.ts +14 -0
- package/src/lib/components/molecules/features-list/features-list.component.ts +251 -0
- package/src/lib/components/molecules/features-list/types.ts +44 -0
- package/src/lib/components/molecules/feedback-form/feedback-form.component.ts +355 -0
- package/src/lib/components/molecules/feedback-form/types.ts +77 -0
- package/src/lib/components/molecules/file-input/file-input.component.scss +11 -0
- package/src/lib/components/molecules/file-input/file-input.component.ts +87 -0
- package/src/lib/components/molecules/file-input/file-input.stories.ts +107 -0
- package/src/lib/components/molecules/file-input/types.ts +85 -0
- package/src/lib/components/molecules/footer-links/footer-links.component.scss +130 -0
- package/src/lib/components/molecules/footer-links/footer-links.component.ts +244 -0
- package/src/lib/components/molecules/footer-links/footer-links.stories.ts +188 -0
- package/src/lib/components/molecules/footer-links/types.ts +52 -0
- package/src/lib/components/molecules/glow-card/glow-card.component.scss +295 -0
- package/src/lib/components/molecules/glow-card/glow-card.component.ts +284 -0
- package/src/lib/components/molecules/glow-card/glow-card.stories.ts +680 -0
- package/src/lib/components/molecules/glow-card/types.ts +117 -0
- package/src/lib/components/molecules/hint/hint.component.scss +5 -0
- package/src/lib/components/molecules/hint/hint.component.ts +89 -0
- package/src/lib/components/molecules/hint/hint.stories.ts +233 -0
- package/src/lib/components/molecules/hour-input/hour-input.component.scss +0 -0
- package/src/lib/components/molecules/hour-input/hour-input.component.ts +34 -0
- package/src/lib/components/molecules/hour-input/hour-input.stories.ts +145 -0
- package/src/lib/components/molecules/image-crop/image-crop.component.ts +195 -0
- package/src/lib/components/molecules/info/info.component.ts +35 -0
- package/src/lib/components/molecules/info/info.stories.ts +276 -0
- package/src/lib/components/molecules/info/types.ts +11 -0
- package/src/lib/components/molecules/language-selector/language-selector.component.scss +128 -0
- package/src/lib/components/molecules/language-selector/language-selector.component.ts +204 -0
- package/src/lib/components/molecules/language-selector/language-selector.stories.ts +261 -0
- package/src/lib/components/molecules/language-selector/types.ts +84 -0
- package/src/lib/components/molecules/layered-card/layered-card.component.scss +84 -0
- package/src/lib/components/molecules/layered-card/layered-card.component.ts +66 -0
- package/src/lib/components/molecules/layered-card/layered-card.stories.ts +313 -0
- package/src/lib/components/molecules/layered-card/types.ts +16 -0
- package/src/lib/components/molecules/link/link.component.scss +11 -0
- package/src/lib/components/molecules/link/link.component.ts +73 -0
- package/src/lib/components/molecules/link/link.stories.ts +307 -0
- package/src/lib/components/molecules/link/types.ts +20 -0
- package/src/lib/components/molecules/linked-providers/index.ts +2 -0
- package/src/lib/components/molecules/linked-providers/linked-providers.component.ts +289 -0
- package/src/lib/components/molecules/linked-providers/types.ts +63 -0
- package/src/lib/components/molecules/links-accordion/links-accordion.component.scss +17 -0
- package/src/lib/components/molecules/links-accordion/links-accordion.component.ts +152 -0
- package/src/lib/components/molecules/links-accordion/links-accordion.stories.ts +209 -0
- package/src/lib/components/molecules/links-accordion/types.ts +41 -0
- package/src/lib/components/molecules/links-cake/links-cake.component.scss +9 -0
- package/src/lib/components/molecules/links-cake/links-cake.component.ts +49 -0
- package/src/lib/components/molecules/links-cake/links-cake.stories.ts +160 -0
- package/src/lib/components/molecules/links-cake/types.ts +14 -0
- package/src/lib/components/molecules/multi-select-search/multi-select-search.component.scss +168 -0
- package/src/lib/components/molecules/multi-select-search/multi-select-search.component.ts +471 -0
- package/src/lib/components/molecules/multi-select-search/multi-select-search.stories.ts +188 -0
- package/src/lib/components/molecules/notes-box/notes-box.component.scss +5 -0
- package/src/lib/components/molecules/notes-box/notes-box.component.ts +62 -0
- package/src/lib/components/molecules/notes-box/notes-box.stories.ts +308 -0
- package/src/lib/components/molecules/notes-box/types.ts +22 -0
- package/src/lib/components/molecules/number-from-to/number-from-to.component.scss +10 -0
- package/src/lib/components/molecules/number-from-to/number-from-to.component.ts +134 -0
- package/src/lib/components/molecules/number-from-to/number-from-to.stories.ts +203 -0
- package/src/lib/components/molecules/number-from-to/types.ts +91 -0
- package/src/lib/components/molecules/number-input/number-input.component.scss +0 -0
- package/src/lib/components/molecules/number-input/number-input.component.ts +41 -0
- package/src/lib/components/molecules/number-input/number-input.stories.ts +151 -0
- package/src/lib/components/molecules/number-stepper/number-stepper.component.scss +252 -0
- package/src/lib/components/molecules/number-stepper/number-stepper.component.ts +302 -0
- package/src/lib/components/molecules/number-stepper/number-stepper.stories.ts +417 -0
- package/src/lib/components/molecules/number-stepper/types.ts +101 -0
- package/src/lib/components/molecules/pagination/pagination.component.scss +50 -0
- package/src/lib/components/molecules/pagination/pagination.component.ts +194 -0
- package/src/lib/components/molecules/pagination/pagination.stories.ts +260 -0
- package/src/lib/components/molecules/pagination/types.ts +43 -0
- package/src/lib/components/molecules/participant-card/participant-card.component.scss +371 -0
- package/src/lib/components/molecules/participant-card/participant-card.component.ts +402 -0
- package/src/lib/components/molecules/participant-card/participant-card.stories.ts +479 -0
- package/src/lib/components/molecules/participant-card/types.ts +170 -0
- package/src/lib/components/molecules/password-input/password-input.component.scss +7 -0
- package/src/lib/components/molecules/password-input/password-input.component.ts +93 -0
- package/src/lib/components/molecules/password-input/password-input.stories.ts +187 -0
- package/src/lib/components/molecules/phone-input/phone-input.component.scss +157 -0
- package/src/lib/components/molecules/phone-input/phone-input.component.ts +354 -0
- package/src/lib/components/molecules/phone-input/phone-input.stories.ts +229 -0
- package/src/lib/components/molecules/phone-input/types.ts +126 -0
- package/src/lib/components/molecules/pill/pill.component.scss +35 -0
- package/src/lib/components/molecules/pill/pill.component.ts +89 -0
- package/src/lib/components/molecules/pill/pill.stories.ts +219 -0
- package/src/lib/components/molecules/pill/types.ts +10 -0
- package/src/lib/components/molecules/pin-input/pin-input.component.scss +22 -0
- package/src/lib/components/molecules/pin-input/pin-input.component.ts +83 -0
- package/src/lib/components/molecules/pin-input/pin-input.stories.ts +196 -0
- package/src/lib/components/molecules/pin-input/types.ts +80 -0
- package/src/lib/components/molecules/plain-code-box/plain-code-box.component.scss +191 -0
- package/src/lib/components/molecules/plain-code-box/plain-code-box.component.ts +86 -0
- package/src/lib/components/molecules/plain-code-box/plain-code-box.stories.ts +174 -0
- package/src/lib/components/molecules/plain-code-box/types.ts +12 -0
- package/src/lib/components/molecules/popover-selector/popover-selector.component.scss +220 -0
- package/src/lib/components/molecules/popover-selector/popover-selector.component.ts +163 -0
- package/src/lib/components/molecules/popover-selector/popover-selector.stories.ts +324 -0
- package/src/lib/components/molecules/popover-selector/types.ts +71 -0
- package/src/lib/components/molecules/progress-status/progress-status.component.scss +41 -0
- package/src/lib/components/molecules/progress-status/progress-status.component.ts +90 -0
- package/src/lib/components/molecules/progress-status/progress-status.stories.ts +415 -0
- package/src/lib/components/molecules/progress-status/types.ts +21 -0
- package/src/lib/components/molecules/prompter/prompter.component.scss +45 -0
- package/src/lib/components/molecules/prompter/prompter.component.ts +55 -0
- package/src/lib/components/molecules/prompter/prompter.stories.ts +193 -0
- package/src/lib/components/molecules/prompter/types.ts +26 -0
- package/src/lib/components/molecules/quote-box/quote-box.component.scss +253 -0
- package/src/lib/components/molecules/quote-box/quote-box.component.ts +104 -0
- package/src/lib/components/molecules/quote-box/quote-box.stories.ts +264 -0
- package/src/lib/components/molecules/radio-input/radio-input.component.scss +0 -0
- package/src/lib/components/molecules/radio-input/radio-input.component.ts +51 -0
- package/src/lib/components/molecules/radio-input/radio-input.stories.ts +197 -0
- package/src/lib/components/molecules/raffle-status-card/raffle-status-card.component.scss +418 -0
- package/src/lib/components/molecules/raffle-status-card/raffle-status-card.component.ts +320 -0
- package/src/lib/components/molecules/raffle-status-card/raffle-status-card.stories.ts +509 -0
- package/src/lib/components/molecules/raffle-status-card/types.ts +150 -0
- package/src/lib/components/molecules/range-input/range-input.component.scss +15 -0
- package/src/lib/components/molecules/range-input/range-input.component.ts +106 -0
- package/src/lib/components/molecules/range-input/range-input.stories.ts +331 -0
- package/src/lib/components/molecules/range-input/types.ts +61 -0
- package/src/lib/components/molecules/rating/rating.component.scss +60 -0
- package/src/lib/components/molecules/rating/rating.component.ts +154 -0
- package/src/lib/components/molecules/rating/rating.stories.ts +332 -0
- package/src/lib/components/molecules/rating/types.ts +43 -0
- package/src/lib/components/molecules/recap-card/recap-card.component.scss +35 -0
- package/src/lib/components/molecules/recap-card/recap-card.component.ts +64 -0
- package/src/lib/components/molecules/recap-card/recap-card.stories.ts +174 -0
- package/src/lib/components/molecules/recap-card/types.ts +30 -0
- package/src/lib/components/molecules/refresher/refresher.component.ts +257 -0
- package/src/lib/components/molecules/refresher/types.ts +103 -0
- package/src/lib/components/molecules/searchbar/searchbar.component.scss +9 -0
- package/src/lib/components/molecules/searchbar/searchbar.component.ts +122 -0
- package/src/lib/components/molecules/searchbar/searchbar.stories.ts +192 -0
- package/src/lib/components/molecules/searchbar/types.ts +38 -0
- package/src/lib/components/molecules/segment-control/segment-control.component.scss +27 -0
- package/src/lib/components/molecules/segment-control/segment-control.component.ts +121 -0
- package/src/lib/components/molecules/segment-control/segment-control.stories.ts +296 -0
- package/src/lib/components/molecules/segment-control/types.ts +48 -0
- package/src/lib/components/molecules/select-input/select-input.component.scss +0 -0
- package/src/lib/components/molecules/select-input/select-input.component.ts +133 -0
- package/src/lib/components/molecules/select-input/select-input.stories.ts +330 -0
- package/src/lib/components/molecules/select-search/select-search.component.ts +420 -0
- package/src/lib/components/molecules/select-search/select-search.stories.ts +218 -0
- package/src/lib/components/molecules/share-buttons/share-buttons.component.scss +195 -0
- package/src/lib/components/molecules/share-buttons/share-buttons.component.ts +269 -0
- package/src/lib/components/molecules/share-buttons/share-buttons.stories.ts +343 -0
- package/src/lib/components/molecules/share-buttons/types.ts +211 -0
- package/src/lib/components/molecules/stats-card/stats-card.component.scss +198 -0
- package/src/lib/components/molecules/stats-card/stats-card.component.ts +157 -0
- package/src/lib/components/molecules/stats-card/stats-card.stories.ts +481 -0
- package/src/lib/components/molecules/stats-card/types.ts +63 -0
- package/src/lib/components/molecules/stepper/stepper.component.scss +156 -0
- package/src/lib/components/molecules/stepper/stepper.component.ts +201 -0
- package/src/lib/components/molecules/stepper/stepper.stories.ts +308 -0
- package/src/lib/components/molecules/stepper/types.ts +70 -0
- package/src/lib/components/molecules/swipe-carousel/swipe-carousel.component.scss +164 -0
- package/src/lib/components/molecules/swipe-carousel/swipe-carousel.component.ts +215 -0
- package/src/lib/components/molecules/swipe-carousel/swipe-carousel.stories.ts +406 -0
- package/src/lib/components/molecules/swipe-carousel/types.ts +32 -0
- package/src/lib/components/molecules/tabs/tabs.component.scss +35 -0
- package/src/lib/components/molecules/tabs/tabs.component.ts +125 -0
- package/src/lib/components/molecules/tabs/tabs.stories.ts +283 -0
- package/src/lib/components/molecules/tabs/types.ts +47 -0
- package/src/lib/components/molecules/testimonial-card/testimonial-card.component.scss +25 -0
- package/src/lib/components/molecules/testimonial-card/testimonial-card.component.ts +121 -0
- package/src/lib/components/molecules/testimonial-card/testimonial-card.stories.ts +130 -0
- package/src/lib/components/molecules/testimonial-card/types.ts +26 -0
- package/src/lib/components/molecules/text-input/text-input.component.scss +1 -0
- package/src/lib/components/molecules/text-input/text-input.component.ts +86 -0
- package/src/lib/components/molecules/text-input/text-input.stories.ts +301 -0
- package/src/lib/components/molecules/textarea-input/textarea-input.component.scss +62 -0
- package/src/lib/components/molecules/textarea-input/textarea-input.component.ts +195 -0
- package/src/lib/components/molecules/textarea-input/textarea-input.stories.ts +329 -0
- package/src/lib/components/molecules/textarea-input/types.ts +83 -0
- package/src/lib/components/molecules/ticket-grid/ticket-grid.component.scss +270 -0
- package/src/lib/components/molecules/ticket-grid/ticket-grid.component.ts +429 -0
- package/src/lib/components/molecules/ticket-grid/ticket-grid.stories.ts +436 -0
- package/src/lib/components/molecules/ticket-grid/types.ts +145 -0
- package/src/lib/components/molecules/timeline/timeline.component.scss +168 -0
- package/src/lib/components/molecules/timeline/timeline.component.ts +98 -0
- package/src/lib/components/molecules/timeline/timeline.stories.ts +259 -0
- package/src/lib/components/molecules/timeline/types.ts +41 -0
- package/src/lib/components/molecules/title-block/title-block.component.scss +48 -0
- package/src/lib/components/molecules/title-block/title-block.component.ts +72 -0
- package/src/lib/components/molecules/title-block/title-block.stories.ts +351 -0
- package/src/lib/components/molecules/title-block/types.ts +16 -0
- package/src/lib/components/molecules/toggle-input/toggle-input.component.scss +7 -0
- package/src/lib/components/molecules/toggle-input/toggle-input.component.ts +94 -0
- package/src/lib/components/molecules/toggle-input/toggle-input.stories.ts +240 -0
- package/src/lib/components/molecules/toggle-input/types.ts +31 -0
- package/src/lib/components/molecules/update-banner/index.ts +1 -0
- package/src/lib/components/molecules/update-banner/update-banner.component.ts +118 -0
- package/src/lib/components/molecules/username-input/index.ts +2 -0
- package/src/lib/components/molecules/username-input/types.ts +36 -0
- package/src/lib/components/molecules/username-input/username-input.component.ts +336 -0
- package/src/lib/components/molecules/winner-display/types.ts +129 -0
- package/src/lib/components/molecules/winner-display/winner-display.component.scss +501 -0
- package/src/lib/components/molecules/winner-display/winner-display.component.ts +284 -0
- package/src/lib/components/molecules/winner-display/winner-display.stories.ts +468 -0
- package/src/lib/components/organisms/article/README.md +569 -0
- package/src/lib/components/organisms/article/article.component.scss +433 -0
- package/src/lib/components/organisms/article/article.component.ts +469 -0
- package/src/lib/components/organisms/article/article.stories.ts +625 -0
- package/src/lib/components/organisms/article/types.ts +550 -0
- package/src/lib/components/organisms/avatar-upload/avatar-upload.component.scss +119 -0
- package/src/lib/components/organisms/avatar-upload/avatar-upload.component.ts +349 -0
- package/src/lib/components/organisms/avatar-upload/index.ts +2 -0
- package/src/lib/components/organisms/avatar-upload/types.ts +71 -0
- package/src/lib/components/organisms/banner/banner.component.scss +51 -0
- package/src/lib/components/organisms/banner/banner.component.ts +95 -0
- package/src/lib/components/organisms/banner/banner.stories.ts +462 -0
- package/src/lib/components/organisms/banner/types.ts +30 -0
- package/src/lib/components/organisms/bottom-nav/bottom-nav.component.scss +350 -0
- package/src/lib/components/organisms/bottom-nav/bottom-nav.component.ts +362 -0
- package/src/lib/components/organisms/bottom-nav/types.ts +139 -0
- package/src/lib/components/organisms/cards-carousel/cards-carousel.component.ts +53 -0
- package/src/lib/components/organisms/cards-carousel/cards-carousel.stories.ts +241 -0
- package/src/lib/components/organisms/cards-carousel/types.ts +12 -0
- package/src/lib/components/organisms/comment-section/comment-section.component.scss +269 -0
- package/src/lib/components/organisms/comment-section/comment-section.component.ts +429 -0
- package/src/lib/components/organisms/comment-section/comment-section.stories.ts +305 -0
- package/src/lib/components/organisms/comment-section/types.ts +169 -0
- package/src/lib/components/organisms/company-footer/company-footer.component.ts +73 -0
- package/src/lib/components/organisms/company-footer/company-footer.stories.ts +216 -0
- package/src/lib/components/organisms/company-footer/types.ts +16 -0
- package/src/lib/components/organisms/data-table/data-table.component.scss +907 -0
- package/src/lib/components/organisms/data-table/data-table.component.ts +821 -0
- package/src/lib/components/organisms/data-table/data-table.stories.ts +787 -0
- package/src/lib/components/organisms/data-table/types.ts +258 -0
- package/src/lib/components/organisms/docs-sidebar/docs-sidebar.component.scss +228 -0
- package/src/lib/components/organisms/docs-sidebar/docs-sidebar.component.ts +213 -0
- package/src/lib/components/organisms/docs-sidebar/types.ts +112 -0
- package/src/lib/components/organisms/docs-toc/docs-toc.component.scss +119 -0
- package/src/lib/components/organisms/docs-toc/docs-toc.component.ts +320 -0
- package/src/lib/components/organisms/docs-toc/types.ts +73 -0
- package/src/lib/components/organisms/footer/footer.component.scss +3 -0
- package/src/lib/components/organisms/footer/footer.component.ts +65 -0
- package/src/lib/components/organisms/footer/footer.stories.ts +278 -0
- package/src/lib/components/organisms/footer/types.ts +17 -0
- package/src/lib/components/organisms/form/factory.ts +46 -0
- package/src/lib/components/organisms/form/form-footer/form-footer.component.scss +0 -0
- package/src/lib/components/organisms/form/form-footer/form-footer.component.ts +72 -0
- package/src/lib/components/organisms/form/form.component.scss +24 -0
- package/src/lib/components/organisms/form/form.component.ts +367 -0
- package/src/lib/components/organisms/form/form.stories.ts +505 -0
- package/src/lib/components/organisms/fun-header/fun-header.component.scss +36 -0
- package/src/lib/components/organisms/fun-header/fun-header.component.ts +209 -0
- package/src/lib/components/organisms/fun-header/fun-header.stories.ts +272 -0
- package/src/lib/components/organisms/fun-header/types.ts +29 -0
- package/src/lib/components/organisms/header/header.component.scss +5 -0
- package/src/lib/components/organisms/header/header.component.ts +53 -0
- package/src/lib/components/organisms/header/header.stories.ts +293 -0
- package/src/lib/components/organisms/header/types.ts +17 -0
- package/src/lib/components/organisms/infinite-list/infinite-list.component.ts +602 -0
- package/src/lib/components/organisms/infinite-list/types.ts +235 -0
- package/src/lib/components/organisms/item-list/item-list.component.scss +53 -0
- package/src/lib/components/organisms/item-list/item-list.component.ts +269 -0
- package/src/lib/components/organisms/item-list/item-list.stories.ts +363 -0
- package/src/lib/components/organisms/item-list/types.ts +130 -0
- package/src/lib/components/organisms/login/login.component.html +244 -0
- package/src/lib/components/organisms/login/login.component.scss +118 -0
- package/src/lib/components/organisms/login/login.component.ts +866 -0
- package/src/lib/components/organisms/login/types.ts +89 -0
- package/src/lib/components/organisms/menu/menu.component.scss +23 -0
- package/src/lib/components/organisms/menu/menu.component.ts +152 -0
- package/src/lib/components/organisms/menu/menu.stories.ts +223 -0
- package/src/lib/components/organisms/menu/types.ts +24 -0
- package/src/lib/components/organisms/no-content/no-content.component.scss +11 -0
- package/src/lib/components/organisms/no-content/no-content.component.ts +68 -0
- package/src/lib/components/organisms/no-content/no-content.stories.ts +259 -0
- package/src/lib/components/organisms/no-content/types.ts +18 -0
- package/src/lib/components/organisms/rotating-text/rotating-text.component.ts +239 -0
- package/src/lib/components/organisms/rotating-text/types.ts +29 -0
- package/src/lib/components/organisms/tabbed-content/tabbed-content.component.scss +89 -0
- package/src/lib/components/organisms/tabbed-content/tabbed-content.component.ts +165 -0
- package/src/lib/components/organisms/tabbed-content/tabbed-content.stories.ts +326 -0
- package/src/lib/components/organisms/tabbed-content/types.ts +56 -0
- package/src/lib/components/organisms/terminal-404/terminal-404.component.ts +339 -0
- package/src/lib/components/organisms/terminal-404/types.ts +22 -0
- package/src/lib/components/organisms/testimonial-carousel/testimonial-carousel.component.ts +70 -0
- package/src/lib/components/organisms/testimonial-carousel/testimonial-carousel.stories.ts +173 -0
- package/src/lib/components/organisms/testimonial-carousel/types.ts +9 -0
- package/src/lib/components/organisms/toolbar/toolbar.component.scss +13 -0
- package/src/lib/components/organisms/toolbar/toolbar.component.ts +195 -0
- package/src/lib/components/organisms/toolbar/toolbar.stories.ts +263 -0
- package/src/lib/components/organisms/toolbar/types.ts +32 -0
- package/src/lib/components/organisms/wizard/types.ts +46 -0
- package/src/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.scss +0 -0
- package/src/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.ts +104 -0
- package/src/lib/components/organisms/wizard/wizard.component.scss +16 -0
- package/src/lib/components/organisms/wizard/wizard.component.ts +165 -0
- package/src/lib/components/organisms/wizard/wizard.stories.ts +653 -0
- package/src/lib/components/templates/auth-background/auth-background.component.ts +258 -0
- package/src/lib/components/templates/auth-background/types.ts +34 -0
- package/src/lib/components/templates/docs-layout/docs-layout.component.scss +218 -0
- package/src/lib/components/templates/docs-layout/docs-layout.component.ts +161 -0
- package/src/lib/components/templates/docs-layout/types.ts +45 -0
- package/src/lib/components/templates/docs-page/docs-page.component.ts +534 -0
- package/src/lib/components/templates/docs-page/types.ts +141 -0
- package/src/lib/components/templates/docs-shell/docs-shell.component.ts +494 -0
- package/src/lib/components/templates/docs-shell/types.ts +176 -0
- package/src/lib/components/templates/layout/layout.component.scss +25 -0
- package/src/lib/components/templates/layout/layout.component.ts +14 -0
- package/src/lib/components/templates/maintenance-page/index.ts +2 -0
- package/src/lib/components/templates/maintenance-page/maintenance-page.component.scss +44 -0
- package/src/lib/components/templates/maintenance-page/maintenance-page.component.ts +120 -0
- package/src/lib/components/templates/maintenance-page/types.ts +12 -0
- package/src/lib/components/templates/page-content/page-content.component.ts +188 -0
- package/src/lib/components/templates/page-content/page-content.stories.ts +169 -0
- package/src/lib/components/templates/page-content/types.ts +28 -0
- package/src/lib/components/templates/page-template/page-template.component.ts +164 -0
- package/src/lib/components/templates/page-template/page-template.stories.ts +174 -0
- package/src/lib/components/templates/page-template/types.ts +17 -0
- package/src/lib/components/templates/page-wrapper/page-wrapper.component.ts +183 -0
- package/src/lib/components/templates/page-wrapper/page-wrapper.stories.ts +149 -0
- package/src/lib/components/templates/page-wrapper/types.ts +20 -0
- package/src/lib/components/templates/simple/simple.component.ts +92 -0
- package/src/lib/components/templates/simple/types.ts +11 -0
- package/src/lib/components/types.ts +311 -0
- package/src/lib/config/company-footer.config.ts +137 -0
- package/src/lib/services/ads/ads-consent.service.ts +166 -0
- package/src/lib/services/ads/ads-loader.service.ts +133 -0
- package/src/lib/services/ads/ads.service.ts +268 -0
- package/src/lib/services/ads/config.ts +92 -0
- package/src/lib/services/ads/index.ts +29 -0
- package/src/lib/services/ads/types.ts +187 -0
- package/src/lib/services/app-config/app-config.service.ts +228 -0
- package/src/lib/services/app-config/config.ts +62 -0
- package/src/lib/services/app-config/index.ts +48 -0
- package/src/lib/services/app-config/types.ts +62 -0
- package/src/lib/services/app-config/version.ts +104 -0
- package/src/lib/services/auth/auth-state.service.ts +225 -0
- package/src/lib/services/auth/auth.service.ts +1306 -0
- package/src/lib/services/auth/config.ts +93 -0
- package/src/lib/services/auth/device.service.ts +163 -0
- package/src/lib/services/auth/guards.ts +234 -0
- package/src/lib/services/auth/index.ts +111 -0
- package/src/lib/services/auth/interceptor.ts +177 -0
- package/src/lib/services/auth/oauth-callback.component.ts +202 -0
- package/src/lib/services/auth/oauth.service.ts +352 -0
- package/src/lib/services/auth/session.service.ts +83 -0
- package/src/lib/services/auth/storage.service.ts +181 -0
- package/src/lib/services/auth/sync.service.ts +158 -0
- package/src/lib/services/auth/token.service.ts +132 -0
- package/src/lib/services/auth/types.ts +1023 -0
- package/src/lib/services/confirmation-dialog/confirmation-dialog.service.ts +199 -0
- package/src/lib/services/confirmation-dialog/types.ts +74 -0
- package/src/lib/services/content/content-types/blog.ts +324 -0
- package/src/lib/services/content/content-types/documentation.ts +369 -0
- package/src/lib/services/content/content-types/news.ts +328 -0
- package/src/lib/services/content/index.ts +71 -0
- package/src/lib/services/content/transformer.ts +312 -0
- package/src/lib/services/content/types.ts +276 -0
- package/src/lib/services/docs/docs-navigation.service.ts +91 -0
- package/src/lib/services/download.service.ts +75 -0
- package/src/lib/services/feedback/config.ts +61 -0
- package/src/lib/services/feedback/feedback.service.ts +348 -0
- package/src/lib/services/feedback/index.ts +59 -0
- package/src/lib/services/feedback/types.ts +239 -0
- package/src/lib/services/firebase/README.md +328 -0
- package/src/lib/services/firebase/analytics-error-handler.ts +155 -0
- package/src/lib/services/firebase/analytics-router-tracker.ts +109 -0
- package/src/lib/services/firebase/analytics-types.ts +277 -0
- package/src/lib/services/firebase/analytics.service.ts +707 -0
- package/src/lib/services/firebase/config.ts +172 -0
- package/src/lib/services/firebase/firebase.service.ts +502 -0
- package/src/lib/services/firebase/firestore-collection.ts +336 -0
- package/src/lib/services/firebase/firestore.service.ts +649 -0
- package/src/lib/services/firebase/index.ts +88 -0
- package/src/lib/services/firebase/messaging.service.ts +672 -0
- package/src/lib/services/firebase/notifications.service.ts +253 -0
- package/src/lib/services/firebase/shared-config.ts +167 -0
- package/src/lib/services/firebase/storage.service.ts +519 -0
- package/src/lib/services/firebase/types.ts +461 -0
- package/src/lib/services/firebase/utils/path-builder.ts +210 -0
- package/src/lib/services/firebase/utils/query-builder.ts +339 -0
- package/src/lib/services/i18n/config.ts +129 -0
- package/src/lib/services/i18n/default-content.ts +640 -0
- package/src/lib/services/i18n/i18n.service.ts +223 -0
- package/src/lib/services/i18n/index.ts +29 -0
- package/src/lib/services/i18n/input-i18n.helper.ts +141 -0
- package/src/lib/services/i18n/translate.pipe.ts +43 -0
- package/src/lib/services/i18n/types.ts +108 -0
- package/src/lib/services/icons.service.ts +122 -0
- package/src/lib/services/image/image.service.ts +328 -0
- package/src/lib/services/image/types.ts +79 -0
- package/src/lib/services/in-app-browser.service.ts +30 -0
- package/src/lib/services/link-processor.service.ts +311 -0
- package/src/lib/services/local-storage.service.ts +39 -0
- package/src/lib/services/locale.service.ts +86 -0
- package/src/lib/services/meta/meta.service.ts +64 -0
- package/src/lib/services/meta/types.ts +13 -0
- package/src/lib/services/modal/modal.service.ts +244 -0
- package/src/lib/services/modal/simple-modal-content.component.ts +138 -0
- package/src/lib/services/modal/types.ts +180 -0
- package/src/lib/services/navigation/navigation.service.ts +255 -0
- package/src/lib/services/navigation/types.ts +86 -0
- package/src/lib/services/pagination/index.ts +13 -0
- package/src/lib/services/pagination/pagination.service.ts +243 -0
- package/src/lib/services/pagination/types.ts +133 -0
- package/src/lib/services/presets/config.ts +51 -0
- package/src/lib/services/presets/index.ts +8 -0
- package/src/lib/services/presets/preset.service.ts +105 -0
- package/src/lib/services/presets/types.ts +41 -0
- package/src/lib/services/qr-generator/qr-generator.service.ts +378 -0
- package/src/lib/services/qr-generator/types.ts +207 -0
- package/src/lib/services/skeleton/config.ts +82 -0
- package/src/lib/services/skeleton/directives/index.ts +1 -0
- package/src/lib/services/skeleton/directives/loading.directive.ts +230 -0
- package/src/lib/services/skeleton/index.ts +30 -0
- package/src/lib/services/skeleton/skeleton.service.ts +220 -0
- package/src/lib/services/skeleton/templates/detail-skeleton.component.ts +166 -0
- package/src/lib/services/skeleton/templates/form-skeleton.component.ts +115 -0
- package/src/lib/services/skeleton/templates/grid-skeleton.component.ts +127 -0
- package/src/lib/services/skeleton/templates/index.ts +6 -0
- package/src/lib/services/skeleton/templates/list-skeleton.component.ts +90 -0
- package/src/lib/services/skeleton/templates/profile-skeleton.component.ts +174 -0
- package/src/lib/services/skeleton/templates/table-skeleton.component.ts +113 -0
- package/src/lib/services/skeleton/types.ts +142 -0
- package/src/lib/services/theme.service.ts +154 -0
- package/src/lib/services/toast.service.ts +42 -0
- package/src/lib/services/types.ts +6 -0
- package/src/lib/shared/constants/storage.ts +2 -0
- package/src/lib/shared/pipes/process-links.pipe.ts +64 -0
- package/src/lib/shared/utils/dom.ts +29 -0
- package/src/lib/shared/utils/form-defaults.ts +119 -0
- package/src/lib/shared/utils/styles.ts +39 -0
- package/src/lib/shared/utils/text.ts +12 -0
- package/src/lib/version.ts +5 -0
- package/src/public-api.ts +352 -0
- package/src/stories/Introduction.mdx +649 -0
- package/src/stories/helpers/mock-services.ts +27 -0
- package/src/stories/helpers/storybook-helpers.ts +89 -0
- package/tsconfig.json +32 -0
- package/tsconfig.lib.json +15 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +14 -0
- package/esm2022/lib/components/atoms/avatar/avatar.component.mjs +0 -94
- package/esm2022/lib/components/atoms/avatar/types.mjs +0 -2
- package/esm2022/lib/components/atoms/box/box.component.mjs +0 -88
- package/esm2022/lib/components/atoms/box/types.mjs +0 -2
- package/esm2022/lib/components/atoms/button/button.component.mjs +0 -174
- package/esm2022/lib/components/atoms/button/factory.mjs +0 -217
- package/esm2022/lib/components/atoms/countdown/countdown.component.mjs +0 -340
- package/esm2022/lib/components/atoms/countdown/types.mjs +0 -27
- package/esm2022/lib/components/atoms/display/display.component.mjs +0 -51
- package/esm2022/lib/components/atoms/display/types.mjs +0 -2
- package/esm2022/lib/components/atoms/divider/divider.component.mjs +0 -27
- package/esm2022/lib/components/atoms/divider/types.mjs +0 -2
- package/esm2022/lib/components/atoms/fab/fab.component.mjs +0 -190
- package/esm2022/lib/components/atoms/fab/types.mjs +0 -2
- package/esm2022/lib/components/atoms/horizontal-scroll/horizontal-scroll.component.mjs +0 -82
- package/esm2022/lib/components/atoms/horizontal-scroll/types.mjs +0 -2
- package/esm2022/lib/components/atoms/href/href.component.mjs +0 -62
- package/esm2022/lib/components/atoms/href/types.mjs +0 -2
- package/esm2022/lib/components/atoms/icon/icon.component.mjs +0 -29
- package/esm2022/lib/components/atoms/icon/types.mjs +0 -2
- package/esm2022/lib/components/atoms/image/image.component.mjs +0 -507
- package/esm2022/lib/components/atoms/image/types.mjs +0 -2
- package/esm2022/lib/components/atoms/price-tag/price-tag.component.mjs +0 -235
- package/esm2022/lib/components/atoms/price-tag/types.mjs +0 -15
- package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +0 -91
- package/esm2022/lib/components/atoms/progress-bar/types.mjs +0 -2
- package/esm2022/lib/components/atoms/progress-ring/progress-ring.component.mjs +0 -149
- package/esm2022/lib/components/atoms/progress-ring/types.mjs +0 -2
- package/esm2022/lib/components/atoms/qr-code/qr-code.component.mjs +0 -394
- package/esm2022/lib/components/atoms/qr-code/types.mjs +0 -2
- package/esm2022/lib/components/atoms/rights-footer/rights-footer.component.mjs +0 -108
- package/esm2022/lib/components/atoms/rights-footer/types.mjs +0 -2
- package/esm2022/lib/components/atoms/skeleton/skeleton.component.mjs +0 -193
- package/esm2022/lib/components/atoms/skeleton/types.mjs +0 -13
- package/esm2022/lib/components/atoms/text/text.component.mjs +0 -132
- package/esm2022/lib/components/atoms/text/types.mjs +0 -2
- package/esm2022/lib/components/atoms/title/title.component.mjs +0 -68
- package/esm2022/lib/components/atoms/title/types.mjs +0 -22
- package/esm2022/lib/components/molecules/accordion/accordion.component.mjs +0 -120
- package/esm2022/lib/components/molecules/accordion/types.mjs +0 -2
- package/esm2022/lib/components/molecules/action-card/action-card.component.mjs +0 -298
- package/esm2022/lib/components/molecules/action-card/types.mjs +0 -11
- package/esm2022/lib/components/molecules/action-header/action-header.component.mjs +0 -26
- package/esm2022/lib/components/molecules/action-header/types.mjs +0 -2
- package/esm2022/lib/components/molecules/ad-slot/ad-slot.component.mjs +0 -274
- package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +0 -119
- package/esm2022/lib/components/molecules/alert-box/types.mjs +0 -2
- package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +0 -130
- package/esm2022/lib/components/molecules/breadcrumb/types.mjs +0 -2
- package/esm2022/lib/components/molecules/button-group/button-group.component.mjs +0 -63
- package/esm2022/lib/components/molecules/button-group/types.mjs +0 -2
- package/esm2022/lib/components/molecules/card/card.component.mjs +0 -450
- package/esm2022/lib/components/molecules/card/types.mjs +0 -16
- package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +0 -82
- package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +0 -166
- package/esm2022/lib/components/molecules/chip-group/types.mjs +0 -2
- package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +0 -115
- package/esm2022/lib/components/molecules/code-display/types.mjs +0 -2
- package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +0 -49
- package/esm2022/lib/components/molecules/command-display/types.mjs +0 -2
- package/esm2022/lib/components/molecules/comment/comment.component.mjs +0 -618
- package/esm2022/lib/components/molecules/comment/types.mjs +0 -2
- package/esm2022/lib/components/molecules/comment-input/comment-input.component.mjs +0 -41
- package/esm2022/lib/components/molecules/comment-input/types.mjs +0 -2
- package/esm2022/lib/components/molecules/content-loader/content-loader.component.mjs +0 -42
- package/esm2022/lib/components/molecules/content-loader/types.mjs +0 -2
- package/esm2022/lib/components/molecules/content-reaction/content-reaction.component.mjs +0 -218
- package/esm2022/lib/components/molecules/content-reaction/types.mjs +0 -2
- package/esm2022/lib/components/molecules/currency-input/currency-input.component.mjs +0 -347
- package/esm2022/lib/components/molecules/currency-input/types.mjs +0 -18
- package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +0 -148
- package/esm2022/lib/components/molecules/date-input/types.mjs +0 -2
- package/esm2022/lib/components/molecules/date-range-input/date-range-input.component.mjs +0 -416
- package/esm2022/lib/components/molecules/date-range-input/types.mjs +0 -2
- package/esm2022/lib/components/molecules/docs-api-table/docs-api-table.component.mjs +0 -222
- package/esm2022/lib/components/molecules/docs-api-table/types.mjs +0 -11
- package/esm2022/lib/components/molecules/docs-breadcrumb/docs-breadcrumb.component.mjs +0 -144
- package/esm2022/lib/components/molecules/docs-breadcrumb/types.mjs +0 -2
- package/esm2022/lib/components/molecules/docs-callout/docs-callout.component.mjs +0 -60
- package/esm2022/lib/components/molecules/docs-code-example/docs-code-example.component.mjs +0 -255
- package/esm2022/lib/components/molecules/docs-code-example/types.mjs +0 -2
- package/esm2022/lib/components/molecules/docs-nav-links/docs-nav-links.component.mjs +0 -140
- package/esm2022/lib/components/molecules/docs-nav-links/types.mjs +0 -2
- package/esm2022/lib/components/molecules/docs-search/docs-search.component.mjs +0 -268
- package/esm2022/lib/components/molecules/docs-search/types.mjs +0 -2
- package/esm2022/lib/components/molecules/docs-section/docs-section.component.mjs +0 -85
- package/esm2022/lib/components/molecules/docs-section/types.mjs +0 -2
- package/esm2022/lib/components/molecules/email-input/email-input.component.mjs +0 -68
- package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +0 -77
- package/esm2022/lib/components/molecules/expandable-text/types.mjs +0 -2
- package/esm2022/lib/components/molecules/features-list/features-list.component.mjs +0 -185
- package/esm2022/lib/components/molecules/features-list/types.mjs +0 -11
- package/esm2022/lib/components/molecules/feedback-form/feedback-form.component.mjs +0 -354
- package/esm2022/lib/components/molecules/feedback-form/types.mjs +0 -2
- package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +0 -90
- package/esm2022/lib/components/molecules/file-input/types.mjs +0 -2
- package/esm2022/lib/components/molecules/footer-links/footer-links.component.mjs +0 -391
- package/esm2022/lib/components/molecules/footer-links/types.mjs +0 -2
- package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +0 -314
- package/esm2022/lib/components/molecules/glow-card/types.mjs +0 -11
- package/esm2022/lib/components/molecules/hint/hint.component.mjs +0 -90
- package/esm2022/lib/components/molecules/hour-input/hour-input.component.mjs +0 -28
- package/esm2022/lib/components/molecules/image-crop/image-crop.component.mjs +0 -174
- package/esm2022/lib/components/molecules/image-crop/index.mjs +0 -2
- package/esm2022/lib/components/molecules/info/info.component.mjs +0 -49
- package/esm2022/lib/components/molecules/info/types.mjs +0 -2
- package/esm2022/lib/components/molecules/language-selector/language-selector.component.mjs +0 -221
- package/esm2022/lib/components/molecules/language-selector/types.mjs +0 -2
- package/esm2022/lib/components/molecules/layered-card/layered-card.component.mjs +0 -104
- package/esm2022/lib/components/molecules/layered-card/types.mjs +0 -2
- package/esm2022/lib/components/molecules/link/link.component.mjs +0 -64
- package/esm2022/lib/components/molecules/link/types.mjs +0 -2
- package/esm2022/lib/components/molecules/linked-providers/linked-providers.component.mjs +0 -236
- package/esm2022/lib/components/molecules/linked-providers/types.mjs +0 -27
- package/esm2022/lib/components/molecules/links-accordion/links-accordion.component.mjs +0 -185
- package/esm2022/lib/components/molecules/links-accordion/types.mjs +0 -2
- package/esm2022/lib/components/molecules/links-cake/links-cake.component.mjs +0 -51
- package/esm2022/lib/components/molecules/links-cake/types.mjs +0 -2
- package/esm2022/lib/components/molecules/multi-select-search/multi-select-search.component.mjs +0 -488
- package/esm2022/lib/components/molecules/notes-box/notes-box.component.mjs +0 -69
- package/esm2022/lib/components/molecules/notes-box/types.mjs +0 -2
- package/esm2022/lib/components/molecules/number-from-to/number-from-to.component.mjs +0 -143
- package/esm2022/lib/components/molecules/number-from-to/types.mjs +0 -2
- package/esm2022/lib/components/molecules/number-input/number-input.component.mjs +0 -34
- package/esm2022/lib/components/molecules/number-stepper/number-stepper.component.mjs +0 -379
- package/esm2022/lib/components/molecules/number-stepper/types.mjs +0 -2
- package/esm2022/lib/components/molecules/pagination/pagination.component.mjs +0 -253
- package/esm2022/lib/components/molecules/pagination/types.mjs +0 -2
- package/esm2022/lib/components/molecules/participant-card/participant-card.component.mjs +0 -514
- package/esm2022/lib/components/molecules/participant-card/types.mjs +0 -21
- package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +0 -93
- package/esm2022/lib/components/molecules/phone-input/phone-input.component.mjs +0 -365
- package/esm2022/lib/components/molecules/phone-input/types.mjs +0 -19
- package/esm2022/lib/components/molecules/pill/pill.component.mjs +0 -92
- package/esm2022/lib/components/molecules/pill/types.mjs +0 -2
- package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +0 -78
- package/esm2022/lib/components/molecules/pin-input/types.mjs +0 -2
- package/esm2022/lib/components/molecules/plain-code-box/plain-code-box.component.mjs +0 -82
- package/esm2022/lib/components/molecules/plain-code-box/types.mjs +0 -2
- package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +0 -188
- package/esm2022/lib/components/molecules/popover-selector/types.mjs +0 -2
- package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +0 -105
- package/esm2022/lib/components/molecules/progress-status/types.mjs +0 -2
- package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +0 -85
- package/esm2022/lib/components/molecules/prompter/types.mjs +0 -2
- package/esm2022/lib/components/molecules/quote-box/quote-box.component.mjs +0 -155
- package/esm2022/lib/components/molecules/radio-input/radio-input.component.mjs +0 -52
- package/esm2022/lib/components/molecules/raffle-status-card/raffle-status-card.component.mjs +0 -476
- package/esm2022/lib/components/molecules/raffle-status-card/types.mjs +0 -23
- package/esm2022/lib/components/molecules/range-input/range-input.component.mjs +0 -127
- package/esm2022/lib/components/molecules/range-input/types.mjs +0 -2
- package/esm2022/lib/components/molecules/rating/rating.component.mjs +0 -166
- package/esm2022/lib/components/molecules/rating/types.mjs +0 -2
- package/esm2022/lib/components/molecules/recap-card/recap-card.component.mjs +0 -78
- package/esm2022/lib/components/molecules/recap-card/types.mjs +0 -2
- package/esm2022/lib/components/molecules/refresher/refresher.component.mjs +0 -269
- package/esm2022/lib/components/molecules/refresher/types.mjs +0 -15
- package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +0 -127
- package/esm2022/lib/components/molecules/searchbar/types.mjs +0 -2
- package/esm2022/lib/components/molecules/segment-control/segment-control.component.mjs +0 -137
- package/esm2022/lib/components/molecules/segment-control/types.mjs +0 -2
- package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +0 -130
- package/esm2022/lib/components/molecules/select-search/select-search.component.mjs +0 -420
- package/esm2022/lib/components/molecules/share-buttons/share-buttons.component.mjs +0 -274
- package/esm2022/lib/components/molecules/share-buttons/types.mjs +0 -88
- package/esm2022/lib/components/molecules/stats-card/stats-card.component.mjs +0 -213
- package/esm2022/lib/components/molecules/stats-card/types.mjs +0 -2
- package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +0 -242
- package/esm2022/lib/components/molecules/stepper/types.mjs +0 -2
- package/esm2022/lib/components/molecules/swipe-carousel/swipe-carousel.component.mjs +0 -206
- package/esm2022/lib/components/molecules/swipe-carousel/types.mjs +0 -2
- package/esm2022/lib/components/molecules/tabs/tabs.component.mjs +0 -139
- package/esm2022/lib/components/molecules/tabs/types.mjs +0 -2
- package/esm2022/lib/components/molecules/testimonial-card/testimonial-card.component.mjs +0 -138
- package/esm2022/lib/components/molecules/testimonial-card/types.mjs +0 -2
- package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +0 -77
- package/esm2022/lib/components/molecules/textarea-input/textarea-input.component.mjs +0 -213
- package/esm2022/lib/components/molecules/textarea-input/types.mjs +0 -2
- package/esm2022/lib/components/molecules/ticket-grid/ticket-grid.component.mjs +0 -489
- package/esm2022/lib/components/molecules/ticket-grid/types.mjs +0 -11
- package/esm2022/lib/components/molecules/timeline/timeline.component.mjs +0 -140
- package/esm2022/lib/components/molecules/timeline/types.mjs +0 -2
- package/esm2022/lib/components/molecules/title-block/title-block.component.mjs +0 -102
- package/esm2022/lib/components/molecules/title-block/types.mjs +0 -2
- package/esm2022/lib/components/molecules/toggle-input/toggle-input.component.mjs +0 -93
- package/esm2022/lib/components/molecules/toggle-input/types.mjs +0 -2
- package/esm2022/lib/components/molecules/update-banner/update-banner.component.mjs +0 -112
- package/esm2022/lib/components/molecules/username-input/types.mjs +0 -2
- package/esm2022/lib/components/molecules/username-input/username-input.component.mjs +0 -260
- package/esm2022/lib/components/molecules/winner-display/types.mjs +0 -9
- package/esm2022/lib/components/molecules/winner-display/winner-display.component.mjs +0 -359
- package/esm2022/lib/components/organisms/article/article.component.mjs +0 -573
- package/esm2022/lib/components/organisms/article/types.mjs +0 -183
- package/esm2022/lib/components/organisms/avatar-upload/avatar-upload.component.mjs +0 -372
- package/esm2022/lib/components/organisms/avatar-upload/types.mjs +0 -15
- package/esm2022/lib/components/organisms/banner/banner.component.mjs +0 -111
- package/esm2022/lib/components/organisms/banner/types.mjs +0 -2
- package/esm2022/lib/components/organisms/bottom-nav/bottom-nav.component.mjs +0 -368
- package/esm2022/lib/components/organisms/bottom-nav/types.mjs +0 -18
- package/esm2022/lib/components/organisms/cards-carousel/cards-carousel.component.mjs +0 -61
- package/esm2022/lib/components/organisms/cards-carousel/types.mjs +0 -2
- package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +0 -537
- package/esm2022/lib/components/organisms/comment-section/types.mjs +0 -2
- package/esm2022/lib/components/organisms/company-footer/company-footer.component.mjs +0 -76
- package/esm2022/lib/components/organisms/company-footer/types.mjs +0 -2
- package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +0 -1081
- package/esm2022/lib/components/organisms/data-table/types.mjs +0 -13
- package/esm2022/lib/components/organisms/docs-sidebar/docs-sidebar.component.mjs +0 -290
- package/esm2022/lib/components/organisms/docs-sidebar/types.mjs +0 -2
- package/esm2022/lib/components/organisms/docs-toc/docs-toc.component.mjs +0 -307
- package/esm2022/lib/components/organisms/docs-toc/types.mjs +0 -2
- package/esm2022/lib/components/organisms/footer/footer.component.mjs +0 -73
- package/esm2022/lib/components/organisms/footer/types.mjs +0 -2
- package/esm2022/lib/components/organisms/form/factory.mjs +0 -29
- package/esm2022/lib/components/organisms/form/form-footer/form-footer.component.mjs +0 -83
- package/esm2022/lib/components/organisms/form/form.component.mjs +0 -417
- package/esm2022/lib/components/organisms/fun-header/fun-header.component.mjs +0 -225
- package/esm2022/lib/components/organisms/fun-header/types.mjs +0 -2
- package/esm2022/lib/components/organisms/header/header.component.mjs +0 -51
- package/esm2022/lib/components/organisms/header/types.mjs +0 -2
- package/esm2022/lib/components/organisms/infinite-list/infinite-list.component.mjs +0 -620
- package/esm2022/lib/components/organisms/infinite-list/types.mjs +0 -15
- package/esm2022/lib/components/organisms/item-list/item-list.component.mjs +0 -418
- package/esm2022/lib/components/organisms/item-list/types.mjs +0 -2
- package/esm2022/lib/components/organisms/login/login.component.mjs +0 -741
- package/esm2022/lib/components/organisms/login/types.mjs +0 -11
- package/esm2022/lib/components/organisms/menu/menu.component.mjs +0 -206
- package/esm2022/lib/components/organisms/menu/types.mjs +0 -2
- package/esm2022/lib/components/organisms/no-content/no-content.component.mjs +0 -66
- package/esm2022/lib/components/organisms/no-content/types.mjs +0 -2
- package/esm2022/lib/components/organisms/rotating-text/rotating-text.component.mjs +0 -180
- package/esm2022/lib/components/organisms/rotating-text/types.mjs +0 -2
- package/esm2022/lib/components/organisms/tabbed-content/tabbed-content.component.mjs +0 -170
- package/esm2022/lib/components/organisms/tabbed-content/types.mjs +0 -2
- package/esm2022/lib/components/organisms/terminal-404/terminal-404.component.mjs +0 -214
- package/esm2022/lib/components/organisms/terminal-404/types.mjs +0 -2
- package/esm2022/lib/components/organisms/testimonial-carousel/testimonial-carousel.component.mjs +0 -72
- package/esm2022/lib/components/organisms/testimonial-carousel/types.mjs +0 -2
- package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +0 -237
- package/esm2022/lib/components/organisms/toolbar/types.mjs +0 -2
- package/esm2022/lib/components/organisms/wizard/types.mjs +0 -10
- package/esm2022/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.mjs +0 -111
- package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +0 -161
- package/esm2022/lib/components/templates/auth-background/auth-background.component.mjs +0 -149
- package/esm2022/lib/components/templates/auth-background/types.mjs +0 -2
- package/esm2022/lib/components/templates/docs-layout/docs-layout.component.mjs +0 -221
- package/esm2022/lib/components/templates/docs-layout/types.mjs +0 -2
- package/esm2022/lib/components/templates/docs-page/docs-page.component.mjs +0 -251
- package/esm2022/lib/components/templates/docs-page/types.mjs +0 -2
- package/esm2022/lib/components/templates/docs-shell/docs-shell.component.mjs +0 -376
- package/esm2022/lib/components/templates/docs-shell/types.mjs +0 -2
- package/esm2022/lib/components/templates/layout/layout.component.mjs +0 -19
- package/esm2022/lib/components/templates/maintenance-page/maintenance-page.component.mjs +0 -153
- package/esm2022/lib/components/templates/maintenance-page/types.mjs +0 -2
- package/esm2022/lib/components/templates/page-content/page-content.component.mjs +0 -193
- package/esm2022/lib/components/templates/page-content/types.mjs +0 -2
- package/esm2022/lib/components/templates/page-template/page-template.component.mjs +0 -188
- package/esm2022/lib/components/templates/page-template/types.mjs +0 -2
- package/esm2022/lib/components/templates/page-wrapper/page-wrapper.component.mjs +0 -192
- package/esm2022/lib/components/templates/page-wrapper/types.mjs +0 -2
- package/esm2022/lib/components/templates/simple/simple.component.mjs +0 -125
- package/esm2022/lib/components/templates/simple/types.mjs +0 -2
- package/esm2022/lib/components/types.mjs +0 -58
- package/esm2022/lib/config/company-footer.config.mjs +0 -109
- package/esm2022/lib/config/index.mjs +0 -5
- package/esm2022/lib/services/ads/ads-loader.service.mjs +0 -120
- package/esm2022/lib/services/ads/ads.service.mjs +0 -236
- package/esm2022/lib/services/ads/config.mjs +0 -81
- package/esm2022/lib/services/ads/index.mjs +0 -13
- package/esm2022/lib/services/ads/types.mjs +0 -23
- package/esm2022/lib/services/app-config/app-config.service.mjs +0 -209
- package/esm2022/lib/services/app-config/config.mjs +0 -47
- package/esm2022/lib/services/app-config/index.mjs +0 -48
- package/esm2022/lib/services/app-config/types.mjs +0 -13
- package/esm2022/lib/services/app-config/version.mjs +0 -85
- package/esm2022/lib/services/auth/auth-state.service.mjs +0 -186
- package/esm2022/lib/services/auth/auth.service.mjs +0 -1087
- package/esm2022/lib/services/auth/config.mjs +0 -77
- package/esm2022/lib/services/auth/device.service.mjs +0 -135
- package/esm2022/lib/services/auth/guards.mjs +0 -194
- package/esm2022/lib/services/auth/index.mjs +0 -92
- package/esm2022/lib/services/auth/interceptor.mjs +0 -122
- package/esm2022/lib/services/auth/oauth-callback.component.mjs +0 -169
- package/esm2022/lib/services/auth/oauth.service.mjs +0 -318
- package/esm2022/lib/services/auth/session.service.mjs +0 -78
- package/esm2022/lib/services/auth/storage.service.mjs +0 -152
- package/esm2022/lib/services/auth/sync.service.mjs +0 -149
- package/esm2022/lib/services/auth/token.service.mjs +0 -122
- package/esm2022/lib/services/auth/types.mjs +0 -30
- package/esm2022/lib/services/confirmation-dialog/confirmation-dialog.service.mjs +0 -180
- package/esm2022/lib/services/confirmation-dialog/types.mjs +0 -14
- package/esm2022/lib/services/docs/docs-navigation.service.mjs +0 -91
- package/esm2022/lib/services/download.service.mjs +0 -80
- package/esm2022/lib/services/feedback/config.mjs +0 -49
- package/esm2022/lib/services/feedback/feedback.service.mjs +0 -296
- package/esm2022/lib/services/feedback/index.mjs +0 -44
- package/esm2022/lib/services/feedback/types.mjs +0 -30
- package/esm2022/lib/services/firebase/analytics-error-handler.mjs +0 -141
- package/esm2022/lib/services/firebase/analytics-router-tracker.mjs +0 -99
- package/esm2022/lib/services/firebase/analytics-types.mjs +0 -7
- package/esm2022/lib/services/firebase/analytics.service.mjs +0 -620
- package/esm2022/lib/services/firebase/config.mjs +0 -131
- package/esm2022/lib/services/firebase/firebase.service.mjs +0 -456
- package/esm2022/lib/services/firebase/firestore-collection.mjs +0 -254
- package/esm2022/lib/services/firebase/firestore.service.mjs +0 -536
- package/esm2022/lib/services/firebase/index.mjs +0 -56
- package/esm2022/lib/services/firebase/messaging.service.mjs +0 -597
- package/esm2022/lib/services/firebase/notifications.service.mjs +0 -199
- package/esm2022/lib/services/firebase/shared-config.mjs +0 -114
- package/esm2022/lib/services/firebase/storage.service.mjs +0 -472
- package/esm2022/lib/services/firebase/types.mjs +0 -18
- package/esm2022/lib/services/firebase/utils/path-builder.mjs +0 -195
- package/esm2022/lib/services/firebase/utils/query-builder.mjs +0 -302
- package/esm2022/lib/services/i18n/config.mjs +0 -110
- package/esm2022/lib/services/i18n/default-content.mjs +0 -563
- package/esm2022/lib/services/i18n/i18n.service.mjs +0 -196
- package/esm2022/lib/services/i18n/index.mjs +0 -13
- package/esm2022/lib/services/i18n/input-i18n.helper.mjs +0 -97
- package/esm2022/lib/services/i18n/translate.pipe.mjs +0 -50
- package/esm2022/lib/services/i18n/types.mjs +0 -15
- package/esm2022/lib/services/icons.service.mjs +0 -76
- package/esm2022/lib/services/image/image.service.mjs +0 -244
- package/esm2022/lib/services/image/index.mjs +0 -3
- package/esm2022/lib/services/image/types.mjs +0 -13
- package/esm2022/lib/services/in-app-browser.service.mjs +0 -35
- package/esm2022/lib/services/link-processor.service.mjs +0 -259
- package/esm2022/lib/services/local-storage.service.mjs +0 -37
- package/esm2022/lib/services/locale.service.mjs +0 -75
- package/esm2022/lib/services/meta/index.mjs +0 -3
- package/esm2022/lib/services/meta/meta.service.mjs +0 -63
- package/esm2022/lib/services/meta/types.mjs +0 -2
- package/esm2022/lib/services/modal/modal.service.mjs +0 -212
- package/esm2022/lib/services/modal/simple-modal-content.component.mjs +0 -133
- package/esm2022/lib/services/modal/types.mjs +0 -26
- package/esm2022/lib/services/navigation/index.mjs +0 -3
- package/esm2022/lib/services/navigation/navigation.service.mjs +0 -216
- package/esm2022/lib/services/navigation/types.mjs +0 -16
- package/esm2022/lib/services/pagination/index.mjs +0 -5
- package/esm2022/lib/services/pagination/pagination.service.mjs +0 -218
- package/esm2022/lib/services/pagination/types.mjs +0 -14
- package/esm2022/lib/services/presets/config.mjs +0 -46
- package/esm2022/lib/services/presets/index.mjs +0 -5
- package/esm2022/lib/services/presets/preset.service.mjs +0 -104
- package/esm2022/lib/services/presets/types.mjs +0 -2
- package/esm2022/lib/services/qr-generator/qr-generator.service.mjs +0 -341
- package/esm2022/lib/services/qr-generator/types.mjs +0 -46
- package/esm2022/lib/services/skeleton/config.mjs +0 -79
- package/esm2022/lib/services/skeleton/directives/loading.directive.mjs +0 -215
- package/esm2022/lib/services/skeleton/index.mjs +0 -16
- package/esm2022/lib/services/skeleton/skeleton.service.mjs +0 -198
- package/esm2022/lib/services/skeleton/templates/detail-skeleton.component.mjs +0 -223
- package/esm2022/lib/services/skeleton/templates/form-skeleton.component.mjs +0 -127
- package/esm2022/lib/services/skeleton/templates/grid-skeleton.component.mjs +0 -154
- package/esm2022/lib/services/skeleton/templates/list-skeleton.component.mjs +0 -110
- package/esm2022/lib/services/skeleton/templates/profile-skeleton.component.mjs +0 -207
- package/esm2022/lib/services/skeleton/templates/table-skeleton.component.mjs +0 -116
- package/esm2022/lib/services/skeleton/types.mjs +0 -11
- package/esm2022/lib/services/theme.service.mjs +0 -144
- package/esm2022/lib/services/toast.service.mjs +0 -47
- package/esm2022/lib/services/types.mjs +0 -5
- package/esm2022/lib/shared/constants/storage.mjs +0 -3
- package/esm2022/lib/shared/pipes/process-links.pipe.mjs +0 -69
- package/esm2022/lib/shared/utils/dom.mjs +0 -27
- package/esm2022/lib/shared/utils/form-defaults.mjs +0 -112
- package/esm2022/lib/shared/utils/styles.mjs +0 -37
- package/esm2022/lib/shared/utils/text.mjs +0 -12
- package/esm2022/lib/version.mjs +0 -6
- package/esm2022/public-api.mjs +0 -333
- package/esm2022/valtech-components.mjs +0 -5
- package/fesm2022/valtech-components.mjs +0 -42048
- package/fesm2022/valtech-components.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/components/atoms/avatar/avatar.component.d.ts +0 -36
- package/lib/components/atoms/avatar/types.d.ts +0 -15
- package/lib/components/atoms/box/box.component.d.ts +0 -26
- package/lib/components/atoms/box/types.d.ts +0 -19
- package/lib/components/atoms/button/button.component.d.ts +0 -63
- package/lib/components/atoms/button/factory.d.ts +0 -71
- package/lib/components/atoms/countdown/countdown.component.d.ts +0 -38
- package/lib/components/atoms/countdown/types.d.ts +0 -108
- package/lib/components/atoms/display/display.component.d.ts +0 -19
- package/lib/components/atoms/display/types.d.ts +0 -33
- package/lib/components/atoms/divider/divider.component.d.ts +0 -27
- package/lib/components/atoms/divider/types.d.ts +0 -12
- package/lib/components/atoms/fab/fab.component.d.ts +0 -36
- package/lib/components/atoms/fab/types.d.ts +0 -45
- package/lib/components/atoms/horizontal-scroll/horizontal-scroll.component.d.ts +0 -41
- package/lib/components/atoms/horizontal-scroll/types.d.ts +0 -13
- package/lib/components/atoms/href/href.component.d.ts +0 -25
- package/lib/components/atoms/href/types.d.ts +0 -19
- package/lib/components/atoms/icon/icon.component.d.ts +0 -18
- package/lib/components/atoms/icon/types.d.ts +0 -13
- package/lib/components/atoms/image/image.component.d.ts +0 -41
- package/lib/components/atoms/image/types.d.ts +0 -37
- package/lib/components/atoms/price-tag/price-tag.component.d.ts +0 -15
- package/lib/components/atoms/price-tag/types.d.ts +0 -59
- package/lib/components/atoms/progress-bar/progress-bar.component.d.ts +0 -35
- package/lib/components/atoms/progress-bar/types.d.ts +0 -19
- package/lib/components/atoms/progress-ring/progress-ring.component.d.ts +0 -20
- package/lib/components/atoms/progress-ring/types.d.ts +0 -24
- package/lib/components/atoms/qr-code/qr-code.component.d.ts +0 -33
- package/lib/components/atoms/qr-code/types.d.ts +0 -124
- package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +0 -53
- package/lib/components/atoms/rights-footer/types.d.ts +0 -21
- package/lib/components/atoms/skeleton/skeleton.component.d.ts +0 -12
- package/lib/components/atoms/skeleton/types.d.ts +0 -29
- package/lib/components/atoms/text/text.component.d.ts +0 -33
- package/lib/components/atoms/text/types.d.ts +0 -42
- package/lib/components/atoms/title/title.component.d.ts +0 -21
- package/lib/components/atoms/title/types.d.ts +0 -36
- package/lib/components/molecules/accordion/accordion.component.d.ts +0 -18
- package/lib/components/molecules/accordion/types.d.ts +0 -47
- package/lib/components/molecules/action-card/action-card.component.d.ts +0 -90
- package/lib/components/molecules/action-card/types.d.ts +0 -83
- package/lib/components/molecules/action-header/action-header.component.d.ts +0 -7
- package/lib/components/molecules/action-header/types.d.ts +0 -6
- package/lib/components/molecules/ad-slot/ad-slot.component.d.ts +0 -69
- package/lib/components/molecules/alert-box/alert-box.component.d.ts +0 -39
- package/lib/components/molecules/alert-box/types.d.ts +0 -37
- package/lib/components/molecules/breadcrumb/breadcrumb.component.d.ts +0 -22
- package/lib/components/molecules/breadcrumb/types.d.ts +0 -45
- package/lib/components/molecules/button-group/button-group.component.d.ts +0 -23
- package/lib/components/molecules/button-group/types.d.ts +0 -13
- package/lib/components/molecules/card/card.component.d.ts +0 -49
- package/lib/components/molecules/card/types.d.ts +0 -32
- package/lib/components/molecules/check-input/check-input.component.d.ts +0 -36
- package/lib/components/molecules/chip-group/chip-group.component.d.ts +0 -22
- package/lib/components/molecules/chip-group/types.d.ts +0 -65
- package/lib/components/molecules/code-display/code-display.component.d.ts +0 -24
- package/lib/components/molecules/code-display/types.d.ts +0 -10
- package/lib/components/molecules/command-display/command-display.component.d.ts +0 -11
- package/lib/components/molecules/command-display/types.d.ts +0 -3
- package/lib/components/molecules/comment/comment.component.d.ts +0 -42
- package/lib/components/molecules/comment/types.d.ts +0 -171
- package/lib/components/molecules/comment-input/comment-input.component.d.ts +0 -16
- package/lib/components/molecules/comment-input/types.d.ts +0 -59
- package/lib/components/molecules/content-loader/content-loader.component.d.ts +0 -18
- package/lib/components/molecules/content-loader/types.d.ts +0 -15
- package/lib/components/molecules/content-reaction/content-reaction.component.d.ts +0 -58
- package/lib/components/molecules/content-reaction/types.d.ts +0 -77
- package/lib/components/molecules/currency-input/currency-input.component.d.ts +0 -40
- package/lib/components/molecules/currency-input/types.d.ts +0 -96
- package/lib/components/molecules/date-input/date-input.component.d.ts +0 -40
- package/lib/components/molecules/date-input/types.d.ts +0 -74
- package/lib/components/molecules/date-range-input/date-range-input.component.d.ts +0 -50
- package/lib/components/molecules/date-range-input/types.d.ts +0 -109
- package/lib/components/molecules/docs-api-table/docs-api-table.component.d.ts +0 -41
- package/lib/components/molecules/docs-api-table/types.d.ts +0 -62
- package/lib/components/molecules/docs-breadcrumb/docs-breadcrumb.component.d.ts +0 -31
- package/lib/components/molecules/docs-breadcrumb/types.d.ts +0 -20
- package/lib/components/molecules/docs-callout/docs-callout.component.d.ts +0 -17
- package/lib/components/molecules/docs-code-example/docs-code-example.component.d.ts +0 -45
- package/lib/components/molecules/docs-code-example/types.d.ts +0 -63
- package/lib/components/molecules/docs-nav-links/docs-nav-links.component.d.ts +0 -30
- package/lib/components/molecules/docs-nav-links/types.d.ts +0 -31
- package/lib/components/molecules/docs-search/docs-search.component.d.ts +0 -47
- package/lib/components/molecules/docs-search/types.d.ts +0 -27
- package/lib/components/molecules/docs-section/docs-section.component.d.ts +0 -29
- package/lib/components/molecules/docs-section/types.d.ts +0 -27
- package/lib/components/molecules/email-input/email-input.component.d.ts +0 -34
- package/lib/components/molecules/expandable-text/expandable-text.component.d.ts +0 -23
- package/lib/components/molecules/expandable-text/types.d.ts +0 -14
- package/lib/components/molecules/features-list/features-list.component.d.ts +0 -66
- package/lib/components/molecules/features-list/types.d.ts +0 -36
- package/lib/components/molecules/feedback-form/feedback-form.component.d.ts +0 -58
- package/lib/components/molecules/feedback-form/types.d.ts +0 -54
- package/lib/components/molecules/file-input/file-input.component.d.ts +0 -25
- package/lib/components/molecules/file-input/types.d.ts +0 -72
- package/lib/components/molecules/footer-links/footer-links.component.d.ts +0 -47
- package/lib/components/molecules/footer-links/types.d.ts +0 -50
- package/lib/components/molecules/glow-card/glow-card.component.d.ts +0 -60
- package/lib/components/molecules/glow-card/types.d.ts +0 -94
- package/lib/components/molecules/hint/hint.component.d.ts +0 -19
- package/lib/components/molecules/hour-input/hour-input.component.d.ts +0 -15
- package/lib/components/molecules/image-crop/image-crop.component.d.ts +0 -59
- package/lib/components/molecules/info/info.component.d.ts +0 -9
- package/lib/components/molecules/info/types.d.ts +0 -10
- package/lib/components/molecules/language-selector/language-selector.component.d.ts +0 -40
- package/lib/components/molecules/language-selector/types.d.ts +0 -82
- package/lib/components/molecules/layered-card/layered-card.component.d.ts +0 -10
- package/lib/components/molecules/layered-card/types.d.ts +0 -15
- package/lib/components/molecules/link/link.component.d.ts +0 -24
- package/lib/components/molecules/link/types.d.ts +0 -19
- package/lib/components/molecules/linked-providers/linked-providers.component.d.ts +0 -30
- package/lib/components/molecules/linked-providers/types.d.ts +0 -38
- package/lib/components/molecules/links-accordion/links-accordion.component.d.ts +0 -61
- package/lib/components/molecules/links-accordion/types.d.ts +0 -39
- package/lib/components/molecules/links-cake/links-cake.component.d.ts +0 -17
- package/lib/components/molecules/links-cake/types.d.ts +0 -13
- package/lib/components/molecules/multi-select-search/multi-select-search.component.d.ts +0 -76
- package/lib/components/molecules/notes-box/notes-box.component.d.ts +0 -21
- package/lib/components/molecules/notes-box/types.d.ts +0 -21
- package/lib/components/molecules/number-from-to/number-from-to.component.d.ts +0 -27
- package/lib/components/molecules/number-from-to/types.d.ts +0 -76
- package/lib/components/molecules/number-input/number-input.component.d.ts +0 -16
- package/lib/components/molecules/number-stepper/number-stepper.component.d.ts +0 -38
- package/lib/components/molecules/number-stepper/types.d.ts +0 -88
- package/lib/components/molecules/pagination/pagination.component.d.ts +0 -15
- package/lib/components/molecules/pagination/types.d.ts +0 -41
- package/lib/components/molecules/participant-card/participant-card.component.d.ts +0 -34
- package/lib/components/molecules/participant-card/types.d.ts +0 -132
- package/lib/components/molecules/password-input/password-input.component.d.ts +0 -37
- package/lib/components/molecules/phone-input/phone-input.component.d.ts +0 -59
- package/lib/components/molecules/phone-input/types.d.ts +0 -98
- package/lib/components/molecules/pill/pill.component.d.ts +0 -33
- package/lib/components/molecules/pill/types.d.ts +0 -9
- package/lib/components/molecules/pin-input/pin-input.component.d.ts +0 -21
- package/lib/components/molecules/pin-input/types.d.ts +0 -69
- package/lib/components/molecules/plain-code-box/plain-code-box.component.d.ts +0 -22
- package/lib/components/molecules/plain-code-box/types.d.ts +0 -10
- package/lib/components/molecules/popover-selector/popover-selector.component.d.ts +0 -42
- package/lib/components/molecules/popover-selector/types.d.ts +0 -69
- package/lib/components/molecules/progress-status/progress-status.component.d.ts +0 -23
- package/lib/components/molecules/progress-status/types.d.ts +0 -20
- package/lib/components/molecules/prompter/prompter.component.d.ts +0 -10
- package/lib/components/molecules/prompter/types.d.ts +0 -25
- package/lib/components/molecules/quote-box/quote-box.component.d.ts +0 -26
- package/lib/components/molecules/radio-input/radio-input.component.d.ts +0 -15
- package/lib/components/molecules/raffle-status-card/raffle-status-card.component.d.ts +0 -21
- package/lib/components/molecules/raffle-status-card/types.d.ts +0 -108
- package/lib/components/molecules/range-input/range-input.component.d.ts +0 -25
- package/lib/components/molecules/range-input/types.d.ts +0 -59
- package/lib/components/molecules/rating/rating.component.d.ts +0 -23
- package/lib/components/molecules/rating/types.d.ts +0 -41
- package/lib/components/molecules/recap-card/recap-card.component.d.ts +0 -36
- package/lib/components/molecules/recap-card/types.d.ts +0 -30
- package/lib/components/molecules/refresher/refresher.component.d.ts +0 -84
- package/lib/components/molecules/refresher/types.d.ts +0 -86
- package/lib/components/molecules/searchbar/searchbar.component.d.ts +0 -43
- package/lib/components/molecules/searchbar/types.d.ts +0 -33
- package/lib/components/molecules/segment-control/segment-control.component.d.ts +0 -35
- package/lib/components/molecules/segment-control/types.d.ts +0 -46
- package/lib/components/molecules/select-input/select-input.component.d.ts +0 -48
- package/lib/components/molecules/select-search/select-search.component.d.ts +0 -76
- package/lib/components/molecules/share-buttons/share-buttons.component.d.ts +0 -22
- package/lib/components/molecules/share-buttons/types.d.ts +0 -108
- package/lib/components/molecules/stats-card/stats-card.component.d.ts +0 -20
- package/lib/components/molecules/stats-card/types.d.ts +0 -60
- package/lib/components/molecules/stepper/stepper.component.d.ts +0 -31
- package/lib/components/molecules/stepper/types.d.ts +0 -66
- package/lib/components/molecules/swipe-carousel/swipe-carousel.component.d.ts +0 -66
- package/lib/components/molecules/swipe-carousel/types.d.ts +0 -35
- package/lib/components/molecules/tabs/tabs.component.d.ts +0 -34
- package/lib/components/molecules/tabs/types.d.ts +0 -45
- package/lib/components/molecules/testimonial-card/testimonial-card.component.d.ts +0 -41
- package/lib/components/molecules/testimonial-card/types.d.ts +0 -25
- package/lib/components/molecules/text-input/text-input.component.d.ts +0 -42
- package/lib/components/molecules/textarea-input/textarea-input.component.d.ts +0 -46
- package/lib/components/molecules/textarea-input/types.d.ts +0 -74
- package/lib/components/molecules/ticket-grid/ticket-grid.component.d.ts +0 -40
- package/lib/components/molecules/ticket-grid/types.d.ts +0 -122
- package/lib/components/molecules/timeline/timeline.component.d.ts +0 -14
- package/lib/components/molecules/timeline/types.d.ts +0 -39
- package/lib/components/molecules/title-block/title-block.component.d.ts +0 -12
- package/lib/components/molecules/title-block/types.d.ts +0 -15
- package/lib/components/molecules/toggle-input/toggle-input.component.d.ts +0 -39
- package/lib/components/molecules/toggle-input/types.d.ts +0 -30
- package/lib/components/molecules/update-banner/update-banner.component.d.ts +0 -42
- package/lib/components/molecules/username-input/types.d.ts +0 -34
- package/lib/components/molecules/username-input/username-input.component.d.ts +0 -45
- package/lib/components/molecules/winner-display/types.d.ts +0 -103
- package/lib/components/molecules/winner-display/winner-display.component.d.ts +0 -36
- package/lib/components/organisms/article/article.component.d.ts +0 -108
- package/lib/components/organisms/article/types.d.ts +0 -359
- package/lib/components/organisms/avatar-upload/avatar-upload.component.d.ts +0 -84
- package/lib/components/organisms/avatar-upload/types.d.ts +0 -62
- package/lib/components/organisms/banner/banner.component.d.ts +0 -16
- package/lib/components/organisms/banner/types.d.ts +0 -29
- package/lib/components/organisms/bottom-nav/bottom-nav.component.d.ts +0 -88
- package/lib/components/organisms/bottom-nav/types.d.ts +0 -118
- package/lib/components/organisms/cards-carousel/cards-carousel.component.d.ts +0 -30
- package/lib/components/organisms/cards-carousel/types.d.ts +0 -11
- package/lib/components/organisms/comment-section/comment-section.component.d.ts +0 -50
- package/lib/components/organisms/comment-section/types.d.ts +0 -144
- package/lib/components/organisms/company-footer/company-footer.component.d.ts +0 -37
- package/lib/components/organisms/company-footer/types.d.ts +0 -15
- package/lib/components/organisms/data-table/data-table.component.d.ts +0 -63
- package/lib/components/organisms/data-table/types.d.ts +0 -219
- package/lib/components/organisms/docs-sidebar/docs-sidebar.component.d.ts +0 -51
- package/lib/components/organisms/docs-sidebar/types.d.ts +0 -93
- package/lib/components/organisms/docs-toc/docs-toc.component.d.ts +0 -62
- package/lib/components/organisms/docs-toc/types.d.ts +0 -62
- package/lib/components/organisms/footer/footer.component.d.ts +0 -36
- package/lib/components/organisms/footer/types.d.ts +0 -16
- package/lib/components/organisms/form/factory.d.ts +0 -17
- package/lib/components/organisms/form/form-footer/form-footer.component.d.ts +0 -17
- package/lib/components/organisms/form/form.component.d.ts +0 -48
- package/lib/components/organisms/fun-header/fun-header.component.d.ts +0 -72
- package/lib/components/organisms/fun-header/types.d.ts +0 -28
- package/lib/components/organisms/header/header.component.d.ts +0 -22
- package/lib/components/organisms/header/types.d.ts +0 -16
- package/lib/components/organisms/infinite-list/infinite-list.component.d.ts +0 -113
- package/lib/components/organisms/infinite-list/types.d.ts +0 -197
- package/lib/components/organisms/item-list/item-list.component.d.ts +0 -43
- package/lib/components/organisms/item-list/types.d.ts +0 -126
- package/lib/components/organisms/login/login.component.d.ts +0 -79
- package/lib/components/organisms/login/types.d.ts +0 -70
- package/lib/components/organisms/menu/menu.component.d.ts +0 -44
- package/lib/components/organisms/menu/types.d.ts +0 -23
- package/lib/components/organisms/no-content/no-content.component.d.ts +0 -14
- package/lib/components/organisms/no-content/types.d.ts +0 -17
- package/lib/components/organisms/rotating-text/rotating-text.component.d.ts +0 -47
- package/lib/components/organisms/rotating-text/types.d.ts +0 -28
- package/lib/components/organisms/tabbed-content/tabbed-content.component.d.ts +0 -65
- package/lib/components/organisms/tabbed-content/types.d.ts +0 -53
- package/lib/components/organisms/terminal-404/terminal-404.component.d.ts +0 -42
- package/lib/components/organisms/terminal-404/types.d.ts +0 -22
- package/lib/components/organisms/testimonial-carousel/testimonial-carousel.component.d.ts +0 -33
- package/lib/components/organisms/testimonial-carousel/types.d.ts +0 -8
- package/lib/components/organisms/toolbar/toolbar.component.d.ts +0 -85
- package/lib/components/organisms/toolbar/types.d.ts +0 -31
- package/lib/components/organisms/wizard/types.d.ts +0 -42
- package/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.d.ts +0 -23
- package/lib/components/organisms/wizard/wizard.component.d.ts +0 -27
- package/lib/components/templates/auth-background/auth-background.component.d.ts +0 -59
- package/lib/components/templates/auth-background/types.d.ts +0 -30
- package/lib/components/templates/docs-layout/docs-layout.component.d.ts +0 -42
- package/lib/components/templates/docs-layout/types.d.ts +0 -39
- package/lib/components/templates/docs-page/docs-page.component.d.ts +0 -61
- package/lib/components/templates/docs-page/types.d.ts +0 -121
- package/lib/components/templates/docs-shell/docs-shell.component.d.ts +0 -33
- package/lib/components/templates/docs-shell/types.d.ts +0 -152
- package/lib/components/templates/layout/layout.component.d.ts +0 -5
- package/lib/components/templates/maintenance-page/maintenance-page.component.d.ts +0 -57
- package/lib/components/templates/maintenance-page/types.d.ts +0 -12
- package/lib/components/templates/page-content/page-content.component.d.ts +0 -107
- package/lib/components/templates/page-content/types.d.ts +0 -27
- package/lib/components/templates/page-template/page-template.component.d.ts +0 -54
- package/lib/components/templates/page-template/types.d.ts +0 -17
- package/lib/components/templates/page-wrapper/page-wrapper.component.d.ts +0 -89
- package/lib/components/templates/page-wrapper/types.d.ts +0 -19
- package/lib/components/templates/simple/simple.component.d.ts +0 -14
- package/lib/components/templates/simple/types.d.ts +0 -10
- package/lib/components/types.d.ts +0 -289
- package/lib/config/company-footer.config.d.ts +0 -98
- package/lib/services/ads/ads-loader.service.d.ts +0 -41
- package/lib/services/ads/ads.service.d.ts +0 -99
- package/lib/services/ads/config.d.ts +0 -53
- package/lib/services/ads/index.d.ts +0 -9
- package/lib/services/ads/types.d.ts +0 -106
- package/lib/services/app-config/app-config.service.d.ts +0 -115
- package/lib/services/app-config/config.d.ts +0 -31
- package/lib/services/app-config/index.d.ts +0 -47
- package/lib/services/app-config/types.d.ts +0 -54
- package/lib/services/app-config/version.d.ts +0 -64
- package/lib/services/auth/auth-state.service.d.ts +0 -92
- package/lib/services/auth/auth.service.d.ts +0 -401
- package/lib/services/auth/config.d.ts +0 -38
- package/lib/services/auth/device.service.d.ts +0 -101
- package/lib/services/auth/guards.d.ts +0 -123
- package/lib/services/auth/index.d.ts +0 -83
- package/lib/services/auth/interceptor.d.ts +0 -22
- package/lib/services/auth/oauth-callback.component.d.ts +0 -34
- package/lib/services/auth/oauth.service.d.ts +0 -99
- package/lib/services/auth/session.service.d.ts +0 -60
- package/lib/services/auth/storage.service.d.ts +0 -52
- package/lib/services/auth/sync.service.d.ts +0 -49
- package/lib/services/auth/token.service.d.ts +0 -57
- package/lib/services/auth/types.d.ts +0 -842
- package/lib/services/confirmation-dialog/confirmation-dialog.service.d.ts +0 -71
- package/lib/services/confirmation-dialog/types.d.ts +0 -61
- package/lib/services/docs/docs-navigation.service.d.ts +0 -51
- package/lib/services/download.service.d.ts +0 -21
- package/lib/services/feedback/config.d.ts +0 -35
- package/lib/services/feedback/feedback.service.d.ts +0 -134
- package/lib/services/feedback/index.d.ts +0 -40
- package/lib/services/feedback/types.d.ts +0 -173
- package/lib/services/firebase/analytics-error-handler.d.ts +0 -54
- package/lib/services/firebase/analytics-router-tracker.d.ts +0 -51
- package/lib/services/firebase/analytics-types.d.ts +0 -221
- package/lib/services/firebase/analytics.service.d.ts +0 -256
- package/lib/services/firebase/config.d.ts +0 -49
- package/lib/services/firebase/firebase.service.d.ts +0 -251
- package/lib/services/firebase/firestore-collection.d.ts +0 -175
- package/lib/services/firebase/firestore.service.d.ts +0 -312
- package/lib/services/firebase/index.d.ts +0 -44
- package/lib/services/firebase/messaging.service.d.ts +0 -293
- package/lib/services/firebase/notifications.service.d.ts +0 -121
- package/lib/services/firebase/shared-config.d.ts +0 -118
- package/lib/services/firebase/storage.service.d.ts +0 -238
- package/lib/services/firebase/types.d.ts +0 -374
- package/lib/services/firebase/utils/path-builder.d.ts +0 -132
- package/lib/services/firebase/utils/query-builder.d.ts +0 -210
- package/lib/services/i18n/config.d.ts +0 -29
- package/lib/services/i18n/default-content.d.ts +0 -30
- package/lib/services/i18n/i18n.service.d.ts +0 -112
- package/lib/services/i18n/index.d.ts +0 -6
- package/lib/services/i18n/input-i18n.helper.d.ts +0 -70
- package/lib/services/i18n/translate.pipe.d.ts +0 -36
- package/lib/services/i18n/types.d.ts +0 -93
- package/lib/services/icons.service.d.ts +0 -9
- package/lib/services/image/image.service.d.ts +0 -76
- package/lib/services/image/types.d.ts +0 -74
- package/lib/services/in-app-browser.service.d.ts +0 -16
- package/lib/services/link-processor.service.d.ts +0 -104
- package/lib/services/local-storage.service.d.ts +0 -27
- package/lib/services/locale.service.d.ts +0 -52
- package/lib/services/meta/meta.service.d.ts +0 -23
- package/lib/services/meta/types.d.ts +0 -12
- package/lib/services/modal/modal.service.d.ts +0 -100
- package/lib/services/modal/simple-modal-content.component.d.ts +0 -19
- package/lib/services/modal/types.d.ts +0 -155
- package/lib/services/navigation/navigation.service.d.ts +0 -134
- package/lib/services/navigation/types.d.ts +0 -67
- package/lib/services/pagination/index.d.ts +0 -2
- package/lib/services/pagination/pagination.service.d.ts +0 -43
- package/lib/services/pagination/types.d.ts +0 -113
- package/lib/services/presets/config.d.ts +0 -32
- package/lib/services/presets/index.d.ts +0 -3
- package/lib/services/presets/preset.service.d.ts +0 -69
- package/lib/services/presets/types.d.ts +0 -39
- package/lib/services/qr-generator/qr-generator.service.d.ts +0 -115
- package/lib/services/qr-generator/types.d.ts +0 -141
- package/lib/services/skeleton/config.d.ts +0 -30
- package/lib/services/skeleton/directives/loading.directive.d.ts +0 -71
- package/lib/services/skeleton/index.d.ts +0 -10
- package/lib/services/skeleton/skeleton.service.d.ts +0 -127
- package/lib/services/skeleton/templates/detail-skeleton.component.d.ts +0 -18
- package/lib/services/skeleton/templates/form-skeleton.component.d.ts +0 -22
- package/lib/services/skeleton/templates/grid-skeleton.component.d.ts +0 -18
- package/lib/services/skeleton/templates/list-skeleton.component.d.ts +0 -17
- package/lib/services/skeleton/templates/profile-skeleton.component.d.ts +0 -20
- package/lib/services/skeleton/templates/table-skeleton.component.d.ts +0 -17
- package/lib/services/skeleton/types.d.ts +0 -111
- package/lib/services/theme.service.d.ts +0 -70
- package/lib/services/toast.service.d.ts +0 -22
- package/lib/services/types.d.ts +0 -1
- package/lib/shared/constants/storage.d.ts +0 -2
- package/lib/shared/pipes/process-links.pipe.d.ts +0 -55
- package/lib/shared/utils/dom.d.ts +0 -13
- package/lib/shared/utils/form-defaults.d.ts +0 -30
- package/lib/shared/utils/styles.d.ts +0 -13
- package/lib/shared/utils/text.d.ts +0 -11
- package/lib/version.d.ts +0 -5
- package/public-api.d.ts +0 -295
- /package/{lib/components/molecules/image-crop/index.d.ts → src/lib/components/molecules/image-crop/index.ts} +0 -0
- /package/{lib/config/index.d.ts → src/lib/config/index.ts} +0 -0
- /package/{lib/services/image/index.d.ts → src/lib/services/image/index.ts} +0 -0
- /package/{lib/services/meta/index.d.ts → src/lib/services/meta/index.ts} +0 -0
- /package/{lib/services/navigation/index.d.ts → src/lib/services/navigation/index.ts} +0 -0
|
@@ -1,318 +0,0 @@
|
|
|
1
|
-
import { Injectable, Inject } from '@angular/core';
|
|
2
|
-
import { Observable, throwError } from 'rxjs';
|
|
3
|
-
import { VALTECH_AUTH_CONFIG } from './config';
|
|
4
|
-
import { catchError } from 'rxjs/operators';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common/http";
|
|
7
|
-
/**
|
|
8
|
-
* Servicio de OAuth para login social.
|
|
9
|
-
*
|
|
10
|
-
* Implementa flujo OAuth server-side con popup:
|
|
11
|
-
* 1. Frontend abre popup hacia backend
|
|
12
|
-
* 2. Backend redirige a provider (Google, Apple, Microsoft)
|
|
13
|
-
* 3. Usuario autoriza
|
|
14
|
-
* 4. Backend intercambia code, genera JWT, redirige con tokens
|
|
15
|
-
* 5. Popup envía tokens a ventana padre via postMessage
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* import { OAuthService, AuthService } from 'valtech-components';
|
|
20
|
-
*
|
|
21
|
-
* @Component({...})
|
|
22
|
-
* export class LoginComponent {
|
|
23
|
-
* private oauth = inject(OAuthService);
|
|
24
|
-
* private auth = inject(AuthService);
|
|
25
|
-
*
|
|
26
|
-
* async loginWithGoogle() {
|
|
27
|
-
* this.oauth.startFlow('google').subscribe({
|
|
28
|
-
* next: (result) => {
|
|
29
|
-
* // Tokens recibidos, guardar en auth state
|
|
30
|
-
* this.auth.handleOAuthSuccess(result);
|
|
31
|
-
* this.router.navigate(['/']);
|
|
32
|
-
* },
|
|
33
|
-
* error: (error) => {
|
|
34
|
-
* console.error('OAuth failed:', error);
|
|
35
|
-
* }
|
|
36
|
-
* });
|
|
37
|
-
* }
|
|
38
|
-
* }
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
41
|
-
export class OAuthService {
|
|
42
|
-
constructor(config, http, ngZone) {
|
|
43
|
-
this.config = config;
|
|
44
|
-
this.http = http;
|
|
45
|
-
this.ngZone = ngZone;
|
|
46
|
-
this.popup = null;
|
|
47
|
-
this.messageHandler = null;
|
|
48
|
-
this.checkClosedInterval = null;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Inicia flujo OAuth en popup.
|
|
52
|
-
* Retorna Observable que emite cuando el usuario completa el flujo.
|
|
53
|
-
*
|
|
54
|
-
* @param provider - Proveedor OAuth ('google', 'apple', 'microsoft')
|
|
55
|
-
* @returns Observable que emite OAuthResult o error
|
|
56
|
-
*/
|
|
57
|
-
startFlow(provider) {
|
|
58
|
-
return new Observable(observer => {
|
|
59
|
-
// Construir URL de inicio
|
|
60
|
-
const redirectUri = `${window.location.origin}/auth/oauth/callback`;
|
|
61
|
-
const startUrl = `${this.config.apiUrl}/v2/auth/oauth/${provider}/start?redirect_uri=${encodeURIComponent(redirectUri)}`;
|
|
62
|
-
// Abrir popup centrado
|
|
63
|
-
const width = 500;
|
|
64
|
-
const height = 600;
|
|
65
|
-
const left = window.screenX + (window.outerWidth - width) / 2;
|
|
66
|
-
const top = window.screenY + (window.outerHeight - height) / 2;
|
|
67
|
-
const features = `width=${width},height=${height},left=${left},top=${top},popup=yes`;
|
|
68
|
-
this.popup = window.open(startUrl, 'oauth', features);
|
|
69
|
-
if (!this.popup) {
|
|
70
|
-
observer.error({
|
|
71
|
-
code: 'POPUP_BLOCKED',
|
|
72
|
-
message: 'El navegador bloqueó la ventana emergente. Por favor, permite popups para este sitio.',
|
|
73
|
-
});
|
|
74
|
-
return () => { };
|
|
75
|
-
}
|
|
76
|
-
// Escuchar mensajes del popup
|
|
77
|
-
this.messageHandler = (event) => {
|
|
78
|
-
// Validar origen
|
|
79
|
-
if (event.origin !== window.location.origin) {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
// Validar tipo de mensaje
|
|
83
|
-
const data = event.data;
|
|
84
|
-
if (data?.type !== 'oauth-callback') {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
// Limpiar
|
|
88
|
-
this.cleanup();
|
|
89
|
-
// Emitir resultado dentro de NgZone para trigger change detection
|
|
90
|
-
this.ngZone.run(() => {
|
|
91
|
-
if (data.error) {
|
|
92
|
-
observer.error(data.error);
|
|
93
|
-
}
|
|
94
|
-
else if (data.tokens) {
|
|
95
|
-
observer.next(data.tokens);
|
|
96
|
-
observer.complete();
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
observer.error({
|
|
100
|
-
code: 'INVALID_RESPONSE',
|
|
101
|
-
message: 'Respuesta inválida del servidor de autenticación',
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
};
|
|
106
|
-
window.addEventListener('message', this.messageHandler);
|
|
107
|
-
// Polling de localStorage (COOP workaround - no podemos detectar popup.closed)
|
|
108
|
-
// También verifica si el popup se cerró manualmente
|
|
109
|
-
this.checkClosedInterval = setInterval(() => {
|
|
110
|
-
// Primero verificar localStorage (funciona aunque COOP bloquee todo)
|
|
111
|
-
const storedData = this.checkLocalStorageFallback();
|
|
112
|
-
if (storedData) {
|
|
113
|
-
this.cleanup();
|
|
114
|
-
this.ngZone.run(() => {
|
|
115
|
-
if (storedData.error) {
|
|
116
|
-
observer.error(storedData.error);
|
|
117
|
-
}
|
|
118
|
-
else if (storedData.tokens) {
|
|
119
|
-
console.log('[OAuthService] Retrieved tokens from localStorage fallback');
|
|
120
|
-
observer.next(storedData.tokens);
|
|
121
|
-
observer.complete();
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
observer.error({
|
|
125
|
-
code: 'INVALID_RESPONSE',
|
|
126
|
-
message: 'Respuesta inválida del servidor de autenticación',
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
// Intentar verificar si popup se cerró (puede fallar por COOP)
|
|
133
|
-
try {
|
|
134
|
-
if (this.popup?.closed) {
|
|
135
|
-
this.cleanup();
|
|
136
|
-
this.ngZone.run(() => {
|
|
137
|
-
observer.error({
|
|
138
|
-
code: 'POPUP_CLOSED',
|
|
139
|
-
message: 'Se cerró la ventana de autenticación',
|
|
140
|
-
});
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
catch {
|
|
145
|
-
// COOP bloquea acceso a popup.closed - ignorar y seguir con polling
|
|
146
|
-
}
|
|
147
|
-
}, 300);
|
|
148
|
-
// Cleanup cuando el observable se destruye
|
|
149
|
-
return () => this.cleanup();
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Inicia flujo de linking para vincular un proveedor adicional.
|
|
154
|
-
* Requiere que el usuario esté autenticado.
|
|
155
|
-
*
|
|
156
|
-
* @param provider - Proveedor OAuth a vincular
|
|
157
|
-
* @returns Observable que emite cuando se completa el linking
|
|
158
|
-
*/
|
|
159
|
-
startLinkFlow(provider) {
|
|
160
|
-
return new Observable(observer => {
|
|
161
|
-
const redirectUri = `${window.location.origin}/auth/oauth/callback`;
|
|
162
|
-
const startUrl = `${this.config.apiUrl}/v2/auth/oauth/link/${provider}/start?redirect_uri=${encodeURIComponent(redirectUri)}`;
|
|
163
|
-
const width = 500;
|
|
164
|
-
const height = 600;
|
|
165
|
-
const left = window.screenX + (window.outerWidth - width) / 2;
|
|
166
|
-
const top = window.screenY + (window.outerHeight - height) / 2;
|
|
167
|
-
const features = `width=${width},height=${height},left=${left},top=${top},popup=yes`;
|
|
168
|
-
this.popup = window.open(startUrl, 'oauth-link', features);
|
|
169
|
-
if (!this.popup) {
|
|
170
|
-
observer.error({
|
|
171
|
-
code: 'POPUP_BLOCKED',
|
|
172
|
-
message: 'El navegador bloqueó la ventana emergente',
|
|
173
|
-
});
|
|
174
|
-
return () => { }; // cleanup function
|
|
175
|
-
}
|
|
176
|
-
this.messageHandler = (event) => {
|
|
177
|
-
if (event.origin !== window.location.origin)
|
|
178
|
-
return;
|
|
179
|
-
const data = event.data;
|
|
180
|
-
if (data?.type !== 'oauth-callback')
|
|
181
|
-
return;
|
|
182
|
-
this.cleanup();
|
|
183
|
-
this.ngZone.run(() => {
|
|
184
|
-
if (data.error) {
|
|
185
|
-
observer.error(data.error);
|
|
186
|
-
}
|
|
187
|
-
else {
|
|
188
|
-
observer.next(data.tokens || {});
|
|
189
|
-
observer.complete();
|
|
190
|
-
}
|
|
191
|
-
});
|
|
192
|
-
};
|
|
193
|
-
window.addEventListener('message', this.messageHandler);
|
|
194
|
-
this.checkClosedInterval = setInterval(() => {
|
|
195
|
-
if (this.popup?.closed) {
|
|
196
|
-
this.cleanup();
|
|
197
|
-
this.ngZone.run(() => {
|
|
198
|
-
observer.error({
|
|
199
|
-
code: 'POPUP_CLOSED',
|
|
200
|
-
message: 'Se cerró la ventana de autenticación',
|
|
201
|
-
});
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
}, 500);
|
|
205
|
-
return () => this.cleanup();
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* Obtiene los proveedores OAuth vinculados al usuario.
|
|
210
|
-
*/
|
|
211
|
-
getLinkedProviders() {
|
|
212
|
-
return this.http
|
|
213
|
-
.get(`${this.config.apiUrl}/v2/auth/oauth/providers`)
|
|
214
|
-
.pipe(catchError(error => throwError(() => ({
|
|
215
|
-
code: error.error?.code || 'FETCH_ERROR',
|
|
216
|
-
message: error.error?.message || 'Error al obtener proveedores vinculados',
|
|
217
|
-
}))));
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Desvincula un proveedor OAuth.
|
|
221
|
-
*/
|
|
222
|
-
unlinkProvider(provider) {
|
|
223
|
-
return this.http
|
|
224
|
-
.post(`${this.config.apiUrl}/v2/auth/oauth/unlink`, { provider })
|
|
225
|
-
.pipe(catchError(error => throwError(() => ({
|
|
226
|
-
code: error.error?.code || 'UNLINK_ERROR',
|
|
227
|
-
message: error.error?.message || 'Error al desvincular proveedor',
|
|
228
|
-
}))));
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Establece contraseña para usuarios que solo tienen OAuth.
|
|
232
|
-
*/
|
|
233
|
-
setPassword(password) {
|
|
234
|
-
return this.http
|
|
235
|
-
.post(`${this.config.apiUrl}/v2/auth/oauth/set-password`, { password })
|
|
236
|
-
.pipe(catchError(error => throwError(() => ({
|
|
237
|
-
code: error.error?.code || 'SET_PASSWORD_ERROR',
|
|
238
|
-
message: error.error?.message || 'Error al establecer contraseña',
|
|
239
|
-
}))));
|
|
240
|
-
}
|
|
241
|
-
/**
|
|
242
|
-
* Verifica si el usuario tiene contraseña establecida.
|
|
243
|
-
*/
|
|
244
|
-
hasPassword() {
|
|
245
|
-
return this.http
|
|
246
|
-
.get(`${this.config.apiUrl}/v2/auth/oauth/has-password`)
|
|
247
|
-
.pipe(catchError(error => throwError(() => ({
|
|
248
|
-
code: error.error?.code || 'CHECK_PASSWORD_ERROR',
|
|
249
|
-
message: error.error?.message || 'Error al verificar contraseña',
|
|
250
|
-
}))));
|
|
251
|
-
}
|
|
252
|
-
/**
|
|
253
|
-
* Revisa localStorage por datos de callback OAuth (fallback para COOP).
|
|
254
|
-
* Solo acepta datos recientes (últimos 30 segundos).
|
|
255
|
-
*/
|
|
256
|
-
checkLocalStorageFallback() {
|
|
257
|
-
try {
|
|
258
|
-
const timestamp = localStorage.getItem('oauth_callback_timestamp');
|
|
259
|
-
const dataStr = localStorage.getItem('oauth_callback_data');
|
|
260
|
-
if (!timestamp || !dataStr) {
|
|
261
|
-
return null;
|
|
262
|
-
}
|
|
263
|
-
// Solo aceptar datos de los últimos 30 segundos
|
|
264
|
-
const age = Date.now() - parseInt(timestamp, 10);
|
|
265
|
-
if (age > 30000) {
|
|
266
|
-
console.log('[OAuthService] localStorage data too old, ignoring');
|
|
267
|
-
this.clearLocalStorageFallback();
|
|
268
|
-
return null;
|
|
269
|
-
}
|
|
270
|
-
const data = JSON.parse(dataStr);
|
|
271
|
-
this.clearLocalStorageFallback();
|
|
272
|
-
return data;
|
|
273
|
-
}
|
|
274
|
-
catch (e) {
|
|
275
|
-
console.warn('[OAuthService] Error reading localStorage fallback:', e);
|
|
276
|
-
return null;
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Limpia datos de fallback de localStorage.
|
|
281
|
-
*/
|
|
282
|
-
clearLocalStorageFallback() {
|
|
283
|
-
try {
|
|
284
|
-
localStorage.removeItem('oauth_callback_data');
|
|
285
|
-
localStorage.removeItem('oauth_callback_timestamp');
|
|
286
|
-
}
|
|
287
|
-
catch {
|
|
288
|
-
// Ignorar errores de limpieza
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
/**
|
|
292
|
-
* Limpia recursos del popup.
|
|
293
|
-
*/
|
|
294
|
-
cleanup() {
|
|
295
|
-
if (this.messageHandler) {
|
|
296
|
-
window.removeEventListener('message', this.messageHandler);
|
|
297
|
-
this.messageHandler = null;
|
|
298
|
-
}
|
|
299
|
-
if (this.checkClosedInterval) {
|
|
300
|
-
clearInterval(this.checkClosedInterval);
|
|
301
|
-
this.checkClosedInterval = null;
|
|
302
|
-
}
|
|
303
|
-
if (this.popup && !this.popup.closed) {
|
|
304
|
-
this.popup.close();
|
|
305
|
-
}
|
|
306
|
-
this.popup = null;
|
|
307
|
-
}
|
|
308
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OAuthService, deps: [{ token: VALTECH_AUTH_CONFIG }, { token: i1.HttpClient }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
309
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OAuthService, providedIn: 'root' }); }
|
|
310
|
-
}
|
|
311
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OAuthService, decorators: [{
|
|
312
|
-
type: Injectable,
|
|
313
|
-
args: [{ providedIn: 'root' }]
|
|
314
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
315
|
-
type: Inject,
|
|
316
|
-
args: [VALTECH_AUTH_CONFIG]
|
|
317
|
-
}] }, { type: i1.HttpClient }, { type: i0.NgZone }] });
|
|
318
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvYXV0aC9vYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQVcsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQVcvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUU1Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNHO0FBRUgsTUFBTSxPQUFPLFlBQVk7SUFLdkIsWUFDdUMsTUFBeUIsRUFDdEQsSUFBZ0IsRUFDaEIsTUFBYztRQUZlLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQ3RELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVBoQixVQUFLLEdBQWtCLElBQUksQ0FBQztRQUM1QixtQkFBYyxHQUEyQyxJQUFJLENBQUM7UUFDOUQsd0JBQW1CLEdBQTBDLElBQUksQ0FBQztJQU12RSxDQUFDO0lBRUo7Ozs7OztPQU1HO0lBQ0gsU0FBUyxDQUFDLFFBQXVCO1FBQy9CLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDL0IsMEJBQTBCO1lBQzFCLE1BQU0sV0FBVyxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLHNCQUFzQixDQUFDO1lBQ3BFLE1BQU0sUUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixRQUFRLHVCQUF1QixrQkFBa0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBRXpILHVCQUF1QjtZQUN2QixNQUFNLEtBQUss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TTsyQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVkFMVEVDSF9BVVRIX0NPTkZJRyB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7XG4gIFZhbHRlY2hBdXRoQ29uZmlnLFxuICBPQXV0aFByb3ZpZGVyLFxuICBPQXV0aFJlc3VsdCxcbiAgT0F1dGhFcnJvcixcbiAgT0F1dGhDYWxsYmFja0RhdGEsXG4gIExpbmtlZFByb3ZpZGVyLFxuICBIYXNQYXNzd29yZFJlc3BvbnNlLFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIFNlcnZpY2lvIGRlIE9BdXRoIHBhcmEgbG9naW4gc29jaWFsLlxuICpcbiAqIEltcGxlbWVudGEgZmx1am8gT0F1dGggc2VydmVyLXNpZGUgY29uIHBvcHVwOlxuICogMS4gRnJvbnRlbmQgYWJyZSBwb3B1cCBoYWNpYSBiYWNrZW5kXG4gKiAyLiBCYWNrZW5kIHJlZGlyaWdlIGEgcHJvdmlkZXIgKEdvb2dsZSwgQXBwbGUsIE1pY3Jvc29mdClcbiAqIDMuIFVzdWFyaW8gYXV0b3JpemFcbiAqIDQuIEJhY2tlbmQgaW50ZXJjYW1iaWEgY29kZSwgZ2VuZXJhIEpXVCwgcmVkaXJpZ2UgY29uIHRva2Vuc1xuICogNS4gUG9wdXAgZW52w61hIHRva2VucyBhIHZlbnRhbmEgcGFkcmUgdmlhIHBvc3RNZXNzYWdlXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IE9BdXRoU2VydmljZSwgQXV0aFNlcnZpY2UgfSBmcm9tICd2YWx0ZWNoLWNvbXBvbmVudHMnO1xuICpcbiAqIEBDb21wb25lbnQoey4uLn0pXG4gKiBleHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQge1xuICogICBwcml2YXRlIG9hdXRoID0gaW5qZWN0KE9BdXRoU2VydmljZSk7XG4gKiAgIHByaXZhdGUgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG4gKlxuICogICBhc3luYyBsb2dpbldpdGhHb29nbGUoKSB7XG4gKiAgICAgdGhpcy5vYXV0aC5zdGFydEZsb3coJ2dvb2dsZScpLnN1YnNjcmliZSh7XG4gKiAgICAgICBuZXh0OiAocmVzdWx0KSA9PiB7XG4gKiAgICAgICAgIC8vIFRva2VucyByZWNpYmlkb3MsIGd1YXJkYXIgZW4gYXV0aCBzdGF0ZVxuICogICAgICAgICB0aGlzLmF1dGguaGFuZGxlT0F1dGhTdWNjZXNzKHJlc3VsdCk7XG4gKiAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKTtcbiAqICAgICAgIH0sXG4gKiAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gKiAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ09BdXRoIGZhaWxlZDonLCBlcnJvcik7XG4gKiAgICAgICB9XG4gKiAgICAgfSk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE9BdXRoU2VydmljZSB7XG4gIHByaXZhdGUgcG9wdXA6IFdpbmRvdyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG1lc3NhZ2VIYW5kbGVyOiAoKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY2hlY2tDbG9zZWRJbnRlcnZhbDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+IHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChWQUxURUNIX0FVVEhfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogVmFsdGVjaEF1dGhDb25maWcsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBJbmljaWEgZmx1am8gT0F1dGggZW4gcG9wdXAuXG4gICAqIFJldG9ybmEgT2JzZXJ2YWJsZSBxdWUgZW1pdGUgY3VhbmRvIGVsIHVzdWFyaW8gY29tcGxldGEgZWwgZmx1am8uXG4gICAqXG4gICAqIEBwYXJhbSBwcm92aWRlciAtIFByb3ZlZWRvciBPQXV0aCAoJ2dvb2dsZScsICdhcHBsZScsICdtaWNyb3NvZnQnKVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHF1ZSBlbWl0ZSBPQXV0aFJlc3VsdCBvIGVycm9yXG4gICAqL1xuICBzdGFydEZsb3cocHJvdmlkZXI6IE9BdXRoUHJvdmlkZXIpOiBPYnNlcnZhYmxlPE9BdXRoUmVzdWx0PiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIC8vIENvbnN0cnVpciBVUkwgZGUgaW5pY2lvXG4gICAgICBjb25zdCByZWRpcmVjdFVyaSA9IGAke3dpbmRvdy5sb2NhdGlvbi5vcmlnaW59L2F1dGgvb2F1dGgvY2FsbGJhY2tgO1xuICAgICAgY29uc3Qgc3RhcnRVcmwgPSBgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L3YyL2F1dGgvb2F1dGgvJHtwcm92aWRlcn0vc3RhcnQ/cmVkaXJlY3RfdXJpPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHJlZGlyZWN0VXJpKX1gO1xuXG4gICAgICAvLyBBYnJpciBwb3B1cCBjZW50cmFkb1xuICAgICAgY29uc3Qgd2lkdGggPSA1MDA7XG4gICAgICBjb25zdCBoZWlnaHQgPSA2MDA7XG4gICAgICBjb25zdCBsZWZ0ID0gd2luZG93LnNjcmVlblggKyAod2luZG93Lm91dGVyV2lkdGggLSB3aWR0aCkgLyAyO1xuICAgICAgY29uc3QgdG9wID0gd2luZG93LnNjcmVlblkgKyAod2luZG93Lm91dGVySGVpZ2h0IC0gaGVpZ2h0KSAvIDI7XG4gICAgICBjb25zdCBmZWF0dXJlcyA9IGB3aWR0aD0ke3dpZHRofSxoZWlnaHQ9JHtoZWlnaHR9LGxlZnQ9JHtsZWZ0fSx0b3A9JHt0b3B9LHBvcHVwPXllc2A7XG5cbiAgICAgIHRoaXMucG9wdXAgPSB3aW5kb3cub3BlbihzdGFydFVybCwgJ29hdXRoJywgZmVhdHVyZXMpO1xuXG4gICAgICBpZiAoIXRoaXMucG9wdXApIHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3Ioe1xuICAgICAgICAgIGNvZGU6ICdQT1BVUF9CTE9DS0VEJyxcbiAgICAgICAgICBtZXNzYWdlOiAnRWwgbmF2ZWdhZG9yIGJsb3F1ZcOzIGxhIHZlbnRhbmEgZW1lcmdlbnRlLiBQb3IgZmF2b3IsIHBlcm1pdGUgcG9wdXBzIHBhcmEgZXN0ZSBzaXRpby4nLFxuICAgICAgICB9IGFzIE9BdXRoRXJyb3IpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge307XG4gICAgICB9XG5cbiAgICAgIC8vIEVzY3VjaGFyIG1lbnNhamVzIGRlbCBwb3B1cFxuICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlciA9IChldmVudDogTWVzc2FnZUV2ZW50KSA9PiB7XG4gICAgICAgIC8vIFZhbGlkYXIgb3JpZ2VuXG4gICAgICAgIGlmIChldmVudC5vcmlnaW4gIT09IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBWYWxpZGFyIHRpcG8gZGUgbWVuc2FqZVxuICAgICAgICBjb25zdCBkYXRhID0gZXZlbnQuZGF0YSBhcyBPQXV0aENhbGxiYWNrRGF0YTtcbiAgICAgICAgaWYgKGRhdGE/LnR5cGUgIT09ICdvYXV0aC1jYWxsYmFjaycpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMaW1waWFyXG4gICAgICAgIHRoaXMuY2xlYW51cCgpO1xuXG4gICAgICAgIC8vIEVtaXRpciByZXN1bHRhZG8gZGVudHJvIGRlIE5nWm9uZSBwYXJhIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIGlmIChkYXRhLmVycm9yKSB7XG4gICAgICAgICAgICBvYnNlcnZlci5lcnJvcihkYXRhLmVycm9yKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEudG9rZW5zKSB7XG4gICAgICAgICAgICBvYnNlcnZlci5uZXh0KGRhdGEudG9rZW5zKTtcbiAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKHtcbiAgICAgICAgICAgICAgY29kZTogJ0lOVkFMSURfUkVTUE9OU0UnLFxuICAgICAgICAgICAgICBtZXNzYWdlOiAnUmVzcHVlc3RhIGludsOhbGlkYSBkZWwgc2Vydmlkb3IgZGUgYXV0ZW50aWNhY2nDs24nLFxuICAgICAgICAgICAgfSBhcyBPQXV0aEVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0aGlzLm1lc3NhZ2VIYW5kbGVyKTtcblxuICAgICAgLy8gUG9sbGluZyBkZSBsb2NhbFN0b3JhZ2UgKENPT1Agd29ya2Fyb3VuZCAtIG5vIHBvZGVtb3MgZGV0ZWN0YXIgcG9wdXAuY2xvc2VkKVxuICAgICAgLy8gVGFtYmnDqW4gdmVyaWZpY2Egc2kgZWwgcG9wdXAgc2UgY2VycsOzIG1hbnVhbG1lbnRlXG4gICAgICB0aGlzLmNoZWNrQ2xvc2VkSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgIC8vIFByaW1lcm8gdmVyaWZpY2FyIGxvY2FsU3RvcmFnZSAoZnVuY2lvbmEgYXVucXVlIENPT1AgYmxvcXVlZSB0b2RvKVxuICAgICAgICBjb25zdCBzdG9yZWREYXRhID0gdGhpcy5jaGVja0xvY2FsU3RvcmFnZUZhbGxiYWNrKCk7XG4gICAgICAgIGlmIChzdG9yZWREYXRhKSB7XG4gICAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChzdG9yZWREYXRhLmVycm9yKSB7XG4gICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKHN0b3JlZERhdGEuZXJyb3IpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzdG9yZWREYXRhLnRva2Vucykge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnW09BdXRoU2VydmljZV0gUmV0cmlldmVkIHRva2VucyBmcm9tIGxvY2FsU3RvcmFnZSBmYWxsYmFjaycpO1xuICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHN0b3JlZERhdGEudG9rZW5zKTtcbiAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKHtcbiAgICAgICAgICAgICAgICBjb2RlOiAnSU5WQUxJRF9SRVNQT05TRScsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ1Jlc3B1ZXN0YSBpbnbDoWxpZGEgZGVsIHNlcnZpZG9yIGRlIGF1dGVudGljYWNpw7NuJyxcbiAgICAgICAgICAgICAgfSBhcyBPQXV0aEVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbnRlbnRhciB2ZXJpZmljYXIgc2kgcG9wdXAgc2UgY2VycsOzIChwdWVkZSBmYWxsYXIgcG9yIENPT1ApXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaWYgKHRoaXMucG9wdXA/LmNsb3NlZCkge1xuICAgICAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcih7XG4gICAgICAgICAgICAgICAgY29kZTogJ1BPUFVQX0NMT1NFRCcsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ1NlIGNlcnLDsyBsYSB2ZW50YW5hIGRlIGF1dGVudGljYWNpw7NuJyxcbiAgICAgICAgICAgICAgfSBhcyBPQXV0aEVycm9yKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gQ09PUCBibG9xdWVhIGFjY2VzbyBhIHBvcHVwLmNsb3NlZCAtIGlnbm9yYXIgeSBzZWd1aXIgY29uIHBvbGxpbmdcbiAgICAgICAgfVxuICAgICAgfSwgMzAwKTtcblxuICAgICAgLy8gQ2xlYW51cCBjdWFuZG8gZWwgb2JzZXJ2YWJsZSBzZSBkZXN0cnV5ZVxuICAgICAgcmV0dXJuICgpID0+IHRoaXMuY2xlYW51cCgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaWNpYSBmbHVqbyBkZSBsaW5raW5nIHBhcmEgdmluY3VsYXIgdW4gcHJvdmVlZG9yIGFkaWNpb25hbC5cbiAgICogUmVxdWllcmUgcXVlIGVsIHVzdWFyaW8gZXN0w6kgYXV0ZW50aWNhZG8uXG4gICAqXG4gICAqIEBwYXJhbSBwcm92aWRlciAtIFByb3ZlZWRvciBPQXV0aCBhIHZpbmN1bGFyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgcXVlIGVtaXRlIGN1YW5kbyBzZSBjb21wbGV0YSBlbCBsaW5raW5nXG4gICAqL1xuICBzdGFydExpbmtGbG93KHByb3ZpZGVyOiBPQXV0aFByb3ZpZGVyKTogT2JzZXJ2YWJsZTxPQXV0aFJlc3VsdD4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICBjb25zdCByZWRpcmVjdFVyaSA9IGAke3dpbmRvdy5sb2NhdGlvbi5vcmlnaW59L2F1dGgvb2F1dGgvY2FsbGJhY2tgO1xuICAgICAgY29uc3Qgc3RhcnRVcmwgPSBgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L3YyL2F1dGgvb2F1dGgvbGluay8ke3Byb3ZpZGVyfS9zdGFydD9yZWRpcmVjdF91cmk9JHtlbmNvZGVVUklDb21wb25lbnQocmVkaXJlY3RVcmkpfWA7XG5cbiAgICAgIGNvbnN0IHdpZHRoID0gNTAwO1xuICAgICAgY29uc3QgaGVpZ2h0ID0gNjAwO1xuICAgICAgY29uc3QgbGVmdCA9IHdpbmRvdy5zY3JlZW5YICsgKHdpbmRvdy5vdXRlcldpZHRoIC0gd2lkdGgpIC8gMjtcbiAgICAgIGNvbnN0IHRvcCA9IHdpbmRvdy5zY3JlZW5ZICsgKHdpbmRvdy5vdXRlckhlaWdodCAtIGhlaWdodCkgLyAyO1xuICAgICAgY29uc3QgZmVhdHVyZXMgPSBgd2lkdGg9JHt3aWR0aH0saGVpZ2h0PSR7aGVpZ2h0fSxsZWZ0PSR7bGVmdH0sdG9wPSR7dG9wfSxwb3B1cD15ZXNgO1xuXG4gICAgICB0aGlzLnBvcHVwID0gd2luZG93Lm9wZW4oc3RhcnRVcmwsICdvYXV0aC1saW5rJywgZmVhdHVyZXMpO1xuXG4gICAgICBpZiAoIXRoaXMucG9wdXApIHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3Ioe1xuICAgICAgICAgIGNvZGU6ICdQT1BVUF9CTE9DS0VEJyxcbiAgICAgICAgICBtZXNzYWdlOiAnRWwgbmF2ZWdhZG9yIGJsb3F1ZcOzIGxhIHZlbnRhbmEgZW1lcmdlbnRlJyxcbiAgICAgICAgfSBhcyBPQXV0aEVycm9yKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHt9OyAvLyBjbGVhbnVwIGZ1bmN0aW9uXG4gICAgICB9XG5cbiAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQub3JpZ2luICE9PSB3aW5kb3cubG9jYXRpb24ub3JpZ2luKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IGV2ZW50LmRhdGEgYXMgT0F1dGhDYWxsYmFja0RhdGE7XG4gICAgICAgIGlmIChkYXRhPy50eXBlICE9PSAnb2F1dGgtY2FsbGJhY2snKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG5cbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICBpZiAoZGF0YS5lcnJvcikge1xuICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZGF0YS5lcnJvcik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9ic2VydmVyLm5leHQoZGF0YS50b2tlbnMgfHwge30gYXMgT0F1dGhSZXN1bHQpO1xuICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0aGlzLm1lc3NhZ2VIYW5kbGVyKTtcblxuICAgICAgdGhpcy5jaGVja0Nsb3NlZEludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5wb3B1cD8uY2xvc2VkKSB7XG4gICAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKHtcbiAgICAgICAgICAgICAgY29kZTogJ1BPUFVQX0NMT1NFRCcsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdTZSBjZXJyw7MgbGEgdmVudGFuYSBkZSBhdXRlbnRpY2FjacOzbicsXG4gICAgICAgICAgICB9IGFzIE9BdXRoRXJyb3IpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LCA1MDApO1xuXG4gICAgICByZXR1cm4gKCkgPT4gdGhpcy5jbGVhbnVwKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBsb3MgcHJvdmVlZG9yZXMgT0F1dGggdmluY3VsYWRvcyBhbCB1c3VhcmlvLlxuICAgKi9cbiAgZ2V0TGlua2VkUHJvdmlkZXJzKCk6IE9ic2VydmFibGU8TGlua2VkUHJvdmlkZXJbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8eyBwcm92aWRlcnM6IExpbmtlZFByb3ZpZGVyW10gfT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS92Mi9hdXRoL29hdXRoL3Byb3ZpZGVyc2ApXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB0aHJvd0Vycm9yKCgpID0+ICh7XG4gICAgICAgICAgY29kZTogZXJyb3IuZXJyb3I/LmNvZGUgfHwgJ0ZFVENIX0VSUk9SJyxcbiAgICAgICAgICBtZXNzYWdlOiBlcnJvci5lcnJvcj8ubWVzc2FnZSB8fCAnRXJyb3IgYWwgb2J0ZW5lciBwcm92ZWVkb3JlcyB2aW5jdWxhZG9zJyxcbiAgICAgICAgfSBhcyBPQXV0aEVycm9yKSkpXG4gICAgICApIGFzIHVua25vd24gYXMgT2JzZXJ2YWJsZTxMaW5rZWRQcm92aWRlcltdPjtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN2aW5jdWxhIHVuIHByb3ZlZWRvciBPQXV0aC5cbiAgICovXG4gIHVubGlua1Byb3ZpZGVyKHByb3ZpZGVyOiBPQXV0aFByb3ZpZGVyKTogT2JzZXJ2YWJsZTx7IHN1Y2Nlc3M6IGJvb2xlYW4gfT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PHsgc3VjY2VzczogYm9vbGVhbiB9PihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L3YyL2F1dGgvb2F1dGgvdW5saW5rYCwgeyBwcm92aWRlciB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4gdGhyb3dFcnJvcigoKSA9PiAoe1xuICAgICAgICAgIGNvZGU6IGVycm9yLmVycm9yPy5jb2RlIHx8ICdVTkxJTktfRVJST1InLFxuICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLmVycm9yPy5tZXNzYWdlIHx8ICdFcnJvciBhbCBkZXN2aW5jdWxhciBwcm92ZWVkb3InLFxuICAgICAgICB9IGFzIE9BdXRoRXJyb3IpKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRXN0YWJsZWNlIGNvbnRyYXNlw7FhIHBhcmEgdXN1YXJpb3MgcXVlIHNvbG8gdGllbmVuIE9BdXRoLlxuICAgKi9cbiAgc2V0UGFzc3dvcmQocGFzc3dvcmQ6IHN0cmluZyk6IE9ic2VydmFibGU8eyBzdWNjZXNzOiBib29sZWFuIH0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdDx7IHN1Y2Nlc3M6IGJvb2xlYW4gfT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS92Mi9hdXRoL29hdXRoL3NldC1wYXNzd29yZGAsIHsgcGFzc3dvcmQgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHRocm93RXJyb3IoKCkgPT4gKHtcbiAgICAgICAgICBjb2RlOiBlcnJvci5lcnJvcj8uY29kZSB8fCAnU0VUX1BBU1NXT1JEX0VSUk9SJyxcbiAgICAgICAgICBtZXNzYWdlOiBlcnJvci5lcnJvcj8ubWVzc2FnZSB8fCAnRXJyb3IgYWwgZXN0YWJsZWNlciBjb250cmFzZcOxYScsXG4gICAgICAgIH0gYXMgT0F1dGhFcnJvcikpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzaSBlbCB1c3VhcmlvIHRpZW5lIGNvbnRyYXNlw7FhIGVzdGFibGVjaWRhLlxuICAgKi9cbiAgaGFzUGFzc3dvcmQoKTogT2JzZXJ2YWJsZTxIYXNQYXNzd29yZFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxIYXNQYXNzd29yZFJlc3BvbnNlPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L3YyL2F1dGgvb2F1dGgvaGFzLXBhc3N3b3JkYClcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHRocm93RXJyb3IoKCkgPT4gKHtcbiAgICAgICAgICBjb2RlOiBlcnJvci5lcnJvcj8uY29kZSB8fCAnQ0hFQ0tfUEFTU1dPUkRfRVJST1InLFxuICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLmVycm9yPy5tZXNzYWdlIHx8ICdFcnJvciBhbCB2ZXJpZmljYXIgY29udHJhc2XDsWEnLFxuICAgICAgICB9IGFzIE9BdXRoRXJyb3IpKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV2aXNhIGxvY2FsU3RvcmFnZSBwb3IgZGF0b3MgZGUgY2FsbGJhY2sgT0F1dGggKGZhbGxiYWNrIHBhcmEgQ09PUCkuXG4gICAqIFNvbG8gYWNlcHRhIGRhdG9zIHJlY2llbnRlcyAow7psdGltb3MgMzAgc2VndW5kb3MpLlxuICAgKi9cbiAgcHJpdmF0ZSBjaGVja0xvY2FsU3RvcmFnZUZhbGxiYWNrKCk6IE9BdXRoQ2FsbGJhY2tEYXRhIHwgbnVsbCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdvYXV0aF9jYWxsYmFja190aW1lc3RhbXAnKTtcbiAgICAgIGNvbnN0IGRhdGFTdHIgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnb2F1dGhfY2FsbGJhY2tfZGF0YScpO1xuXG4gICAgICBpZiAoIXRpbWVzdGFtcCB8fCAhZGF0YVN0cikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgLy8gU29sbyBhY2VwdGFyIGRhdG9zIGRlIGxvcyDDumx0aW1vcyAzMCBzZWd1bmRvc1xuICAgICAgY29uc3QgYWdlID0gRGF0ZS5ub3coKSAtIHBhcnNlSW50KHRpbWVzdGFtcCwgMTApO1xuICAgICAgaWYgKGFnZSA+IDMwMDAwKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdbT0F1dGhTZXJ2aWNlXSBsb2NhbFN0b3JhZ2UgZGF0YSB0b28gb2xkLCBpZ25vcmluZycpO1xuICAgICAgICB0aGlzLmNsZWFyTG9jYWxTdG9yYWdlRmFsbGJhY2soKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGRhdGFTdHIpIGFzIE9BdXRoQ2FsbGJhY2tEYXRhO1xuICAgICAgdGhpcy5jbGVhckxvY2FsU3RvcmFnZUZhbGxiYWNrKCk7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tPQXV0aFNlcnZpY2VdIEVycm9yIHJlYWRpbmcgbG9jYWxTdG9yYWdlIGZhbGxiYWNrOicsIGUpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExpbXBpYSBkYXRvcyBkZSBmYWxsYmFjayBkZSBsb2NhbFN0b3JhZ2UuXG4gICAqL1xuICBwcml2YXRlIGNsZWFyTG9jYWxTdG9yYWdlRmFsbGJhY2soKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdvYXV0aF9jYWxsYmFja19kYXRhJyk7XG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnb2F1dGhfY2FsbGJhY2tfdGltZXN0YW1wJyk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBJZ25vcmFyIGVycm9yZXMgZGUgbGltcGllemFcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGltcGlhIHJlY3Vyc29zIGRlbCBwb3B1cC5cbiAgICovXG4gIHByaXZhdGUgY2xlYW51cCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tZXNzYWdlSGFuZGxlcikge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0aGlzLm1lc3NhZ2VIYW5kbGVyKTtcbiAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIgPSBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNoZWNrQ2xvc2VkSW50ZXJ2YWwpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5jaGVja0Nsb3NlZEludGVydmFsKTtcbiAgICAgIHRoaXMuY2hlY2tDbG9zZWRJbnRlcnZhbCA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucG9wdXAgJiYgIXRoaXMucG9wdXAuY2xvc2VkKSB7XG4gICAgICB0aGlzLnBvcHVwLmNsb3NlKCk7XG4gICAgfVxuICAgIHRoaXMucG9wdXAgPSBudWxsO1xuICB9XG59XG4iXX0=
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { Injectable, Inject } from '@angular/core';
|
|
2
|
-
import { map } from 'rxjs/operators';
|
|
3
|
-
import { VALTECH_AUTH_CONFIG } from './config';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common/http";
|
|
6
|
-
/**
|
|
7
|
-
* Servicio para gestión de sesiones activas del usuario.
|
|
8
|
-
* Permite listar y revocar sesiones.
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```typescript
|
|
12
|
-
* import { SessionService } from 'valtech-components';
|
|
13
|
-
*
|
|
14
|
-
* @Component({...})
|
|
15
|
-
* export class SessionsPage {
|
|
16
|
-
* private sessionService = inject(SessionService);
|
|
17
|
-
*
|
|
18
|
-
* sessions = signal<SessionInfo[]>([]);
|
|
19
|
-
*
|
|
20
|
-
* async ngOnInit() {
|
|
21
|
-
* const sessions = await firstValueFrom(this.sessionService.listSessions());
|
|
22
|
-
* this.sessions.set(sessions);
|
|
23
|
-
* }
|
|
24
|
-
*
|
|
25
|
-
* async revokeSession(sessionId: string) {
|
|
26
|
-
* await firstValueFrom(this.sessionService.revokeSession(sessionId));
|
|
27
|
-
* // Recargar lista
|
|
28
|
-
* }
|
|
29
|
-
*
|
|
30
|
-
* async revokeAllOthers() {
|
|
31
|
-
* const result = await firstValueFrom(this.sessionService.revokeAllSessions());
|
|
32
|
-
* console.log(`${result.sessionsRevoked} sesiones cerradas`);
|
|
33
|
-
* }
|
|
34
|
-
* }
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
export class SessionService {
|
|
38
|
-
constructor(config, http) {
|
|
39
|
-
this.config = config;
|
|
40
|
-
this.http = http;
|
|
41
|
-
}
|
|
42
|
-
get baseUrl() {
|
|
43
|
-
return `${this.config.apiUrl}/v2/users/me/sessions`;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Lista todas las sesiones activas del usuario.
|
|
47
|
-
* La sesión actual está marcada con isCurrent=true.
|
|
48
|
-
*/
|
|
49
|
-
listSessions() {
|
|
50
|
-
return this.http.get(this.baseUrl).pipe(map(response => response.sessions));
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Revoca una sesión específica.
|
|
54
|
-
* Fuerza el cierre de sesión en ese dispositivo/navegador.
|
|
55
|
-
*/
|
|
56
|
-
revokeSession(sessionId) {
|
|
57
|
-
return this.http.delete(`${this.baseUrl}/${sessionId}`);
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Revoca todas las sesiones excepto la actual.
|
|
61
|
-
* Útil para "cerrar sesión en todos los dispositivos".
|
|
62
|
-
*
|
|
63
|
-
* @returns Número de sesiones revocadas
|
|
64
|
-
*/
|
|
65
|
-
revokeAllSessions() {
|
|
66
|
-
return this.http.delete(this.baseUrl);
|
|
67
|
-
}
|
|
68
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SessionService, deps: [{ token: VALTECH_AUTH_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
69
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SessionService, providedIn: 'root' }); }
|
|
70
|
-
}
|
|
71
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SessionService, decorators: [{
|
|
72
|
-
type: Injectable,
|
|
73
|
-
args: [{ providedIn: 'root' }]
|
|
74
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
75
|
-
type: Inject,
|
|
76
|
-
args: [VALTECH_AUTH_CONFIG]
|
|
77
|
-
}] }, { type: i1.HttpClient }] });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL3Nlc3Npb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7QUFRL0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCRztBQUVILE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQ3VDLE1BQXlCLEVBQ3RELElBQWdCO1FBRGEsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDdEQsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN2QixDQUFDO0lBRUosSUFBWSxPQUFPO1FBQ2pCLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF1QixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUMzRCxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQ25DLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYSxDQUFDLFNBQWlCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQXlCLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQXlCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRSxDQUFDOytHQXBDVSxjQUFjLGtCQUVmLG1CQUFtQjttSEFGbEIsY0FBYyxjQURELE1BQU07OzRGQUNuQixjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBRzdCLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBWQUxURUNIX0FVVEhfQ09ORklHIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHtcbiAgVmFsdGVjaEF1dGhDb25maWcsXG4gIFNlc3Npb25JbmZvLFxuICBMaXN0U2Vzc2lvbnNSZXNwb25zZSxcbiAgUmV2b2tlU2Vzc2lvbnNSZXNwb25zZSxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogU2VydmljaW8gcGFyYSBnZXN0acOzbiBkZSBzZXNpb25lcyBhY3RpdmFzIGRlbCB1c3VhcmlvLlxuICogUGVybWl0ZSBsaXN0YXIgeSByZXZvY2FyIHNlc2lvbmVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJ3ZhbHRlY2gtY29tcG9uZW50cyc7XG4gKlxuICogQENvbXBvbmVudCh7Li4ufSlcbiAqIGV4cG9ydCBjbGFzcyBTZXNzaW9uc1BhZ2Uge1xuICogICBwcml2YXRlIHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KFNlc3Npb25TZXJ2aWNlKTtcbiAqXG4gKiAgIHNlc3Npb25zID0gc2lnbmFsPFNlc3Npb25JbmZvW10+KFtdKTtcbiAqXG4gKiAgIGFzeW5jIG5nT25Jbml0KCkge1xuICogICAgIGNvbnN0IHNlc3Npb25zID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zZXNzaW9uU2VydmljZS5saXN0U2Vzc2lvbnMoKSk7XG4gKiAgICAgdGhpcy5zZXNzaW9ucy5zZXQoc2Vzc2lvbnMpO1xuICogICB9XG4gKlxuICogICBhc3luYyByZXZva2VTZXNzaW9uKHNlc3Npb25JZDogc3RyaW5nKSB7XG4gKiAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zZXNzaW9uU2VydmljZS5yZXZva2VTZXNzaW9uKHNlc3Npb25JZCkpO1xuICogICAgIC8vIFJlY2FyZ2FyIGxpc3RhXG4gKiAgIH1cbiAqXG4gKiAgIGFzeW5jIHJldm9rZUFsbE90aGVycygpIHtcbiAqICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNlc3Npb25TZXJ2aWNlLnJldm9rZUFsbFNlc3Npb25zKCkpO1xuICogICAgIGNvbnNvbGUubG9nKGAke3Jlc3VsdC5zZXNzaW9uc1Jldm9rZWR9IHNlc2lvbmVzIGNlcnJhZGFzYCk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFNlc3Npb25TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChWQUxURUNIX0FVVEhfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogVmFsdGVjaEF1dGhDb25maWcsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XG4gICkge31cblxuICBwcml2YXRlIGdldCBiYXNlVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuY29uZmlnLmFwaVVybH0vdjIvdXNlcnMvbWUvc2Vzc2lvbnNgO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RhIHRvZGFzIGxhcyBzZXNpb25lcyBhY3RpdmFzIGRlbCB1c3VhcmlvLlxuICAgKiBMYSBzZXNpw7NuIGFjdHVhbCBlc3TDoSBtYXJjYWRhIGNvbiBpc0N1cnJlbnQ9dHJ1ZS5cbiAgICovXG4gIGxpc3RTZXNzaW9ucygpOiBPYnNlcnZhYmxlPFNlc3Npb25JbmZvW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxMaXN0U2Vzc2lvbnNSZXNwb25zZT4odGhpcy5iYXNlVXJsKS5waXBlKFxuICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlLnNlc3Npb25zKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV2b2NhIHVuYSBzZXNpw7NuIGVzcGVjw61maWNhLlxuICAgKiBGdWVyemEgZWwgY2llcnJlIGRlIHNlc2nDs24gZW4gZXNlIGRpc3Bvc2l0aXZvL25hdmVnYWRvci5cbiAgICovXG4gIHJldm9rZVNlc3Npb24oc2Vzc2lvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFJldm9rZVNlc3Npb25zUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxSZXZva2VTZXNzaW9uc1Jlc3BvbnNlPihgJHt0aGlzLmJhc2VVcmx9LyR7c2Vzc2lvbklkfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldm9jYSB0b2RhcyBsYXMgc2VzaW9uZXMgZXhjZXB0byBsYSBhY3R1YWwuXG4gICAqIMOadGlsIHBhcmEgXCJjZXJyYXIgc2VzacOzbiBlbiB0b2RvcyBsb3MgZGlzcG9zaXRpdm9zXCIuXG4gICAqXG4gICAqIEByZXR1cm5zIE7Dum1lcm8gZGUgc2VzaW9uZXMgcmV2b2NhZGFzXG4gICAqL1xuICByZXZva2VBbGxTZXNzaW9ucygpOiBPYnNlcnZhYmxlPFJldm9rZVNlc3Npb25zUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxSZXZva2VTZXNzaW9uc1Jlc3BvbnNlPih0aGlzLmJhc2VVcmwpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { VALTECH_AUTH_CONFIG } from './config';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* Servicio para persistencia de estado de autenticación en localStorage.
|
|
6
|
-
*/
|
|
7
|
-
export class AuthStorageService {
|
|
8
|
-
constructor(config) {
|
|
9
|
-
this.config = config;
|
|
10
|
-
const prefix = this.config.storagePrefix || 'valtech_auth_';
|
|
11
|
-
this.keys = {
|
|
12
|
-
ACCESS_TOKEN: `${prefix}access_token`,
|
|
13
|
-
REFRESH_TOKEN: `${prefix}refresh_token`,
|
|
14
|
-
ROLES: `${prefix}roles`,
|
|
15
|
-
PERMISSIONS: `${prefix}permissions`,
|
|
16
|
-
IS_SUPER_ADMIN: `${prefix}is_super_admin`,
|
|
17
|
-
EXPIRES_AT: `${prefix}expires_at`,
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Guarda el estado completo de autenticación.
|
|
22
|
-
*/
|
|
23
|
-
saveState(state) {
|
|
24
|
-
try {
|
|
25
|
-
localStorage.setItem(this.keys.ACCESS_TOKEN, state.accessToken);
|
|
26
|
-
localStorage.setItem(this.keys.REFRESH_TOKEN, state.refreshToken);
|
|
27
|
-
localStorage.setItem(this.keys.ROLES, JSON.stringify(state.roles));
|
|
28
|
-
localStorage.setItem(this.keys.PERMISSIONS, JSON.stringify(state.permissions));
|
|
29
|
-
localStorage.setItem(this.keys.IS_SUPER_ADMIN, String(state.isSuperAdmin));
|
|
30
|
-
if (state.expiresAt) {
|
|
31
|
-
localStorage.setItem(this.keys.EXPIRES_AT, String(state.expiresAt));
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
catch (e) {
|
|
35
|
-
console.warn('[ValtechAuth] Error guardando estado en storage:', e);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Carga el estado de autenticación desde storage.
|
|
40
|
-
*/
|
|
41
|
-
loadState() {
|
|
42
|
-
try {
|
|
43
|
-
const accessToken = localStorage.getItem(this.keys.ACCESS_TOKEN);
|
|
44
|
-
const refreshToken = localStorage.getItem(this.keys.REFRESH_TOKEN);
|
|
45
|
-
const rolesJson = localStorage.getItem(this.keys.ROLES);
|
|
46
|
-
const permissionsJson = localStorage.getItem(this.keys.PERMISSIONS);
|
|
47
|
-
const isSuperAdmin = localStorage.getItem(this.keys.IS_SUPER_ADMIN) === 'true';
|
|
48
|
-
const expiresAtStr = localStorage.getItem(this.keys.EXPIRES_AT);
|
|
49
|
-
return {
|
|
50
|
-
accessToken: accessToken || undefined,
|
|
51
|
-
refreshToken: refreshToken || undefined,
|
|
52
|
-
roles: rolesJson ? JSON.parse(rolesJson) : [],
|
|
53
|
-
permissions: permissionsJson ? JSON.parse(permissionsJson) : [],
|
|
54
|
-
isSuperAdmin,
|
|
55
|
-
expiresAt: expiresAtStr ? Number(expiresAtStr) : undefined,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
catch (e) {
|
|
59
|
-
console.warn('[ValtechAuth] Error cargando estado desde storage:', e);
|
|
60
|
-
return {};
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Guarda solo el access token.
|
|
65
|
-
*/
|
|
66
|
-
saveAccessToken(token, expiresAt) {
|
|
67
|
-
try {
|
|
68
|
-
localStorage.setItem(this.keys.ACCESS_TOKEN, token);
|
|
69
|
-
if (expiresAt) {
|
|
70
|
-
localStorage.setItem(this.keys.EXPIRES_AT, String(expiresAt));
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
catch (e) {
|
|
74
|
-
console.warn('[ValtechAuth] Error guardando access token:', e);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Guarda el refresh token (token rotation).
|
|
79
|
-
*/
|
|
80
|
-
saveRefreshToken(token) {
|
|
81
|
-
try {
|
|
82
|
-
localStorage.setItem(this.keys.REFRESH_TOKEN, token);
|
|
83
|
-
}
|
|
84
|
-
catch (e) {
|
|
85
|
-
console.warn('[ValtechAuth] Error guardando refresh token:', e);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Guarda los permisos actualizados.
|
|
90
|
-
*/
|
|
91
|
-
savePermissions(response) {
|
|
92
|
-
try {
|
|
93
|
-
localStorage.setItem(this.keys.ROLES, JSON.stringify(response.roles));
|
|
94
|
-
localStorage.setItem(this.keys.PERMISSIONS, JSON.stringify(response.permissions));
|
|
95
|
-
localStorage.setItem(this.keys.IS_SUPER_ADMIN, String(response.isSuperAdmin));
|
|
96
|
-
}
|
|
97
|
-
catch (e) {
|
|
98
|
-
console.warn('[ValtechAuth] Error guardando permisos:', e);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Carga los permisos desde storage.
|
|
103
|
-
*/
|
|
104
|
-
loadPermissions() {
|
|
105
|
-
try {
|
|
106
|
-
const rolesJson = localStorage.getItem(this.keys.ROLES);
|
|
107
|
-
const permissionsJson = localStorage.getItem(this.keys.PERMISSIONS);
|
|
108
|
-
const isSuperAdmin = localStorage.getItem(this.keys.IS_SUPER_ADMIN) === 'true';
|
|
109
|
-
return {
|
|
110
|
-
roles: rolesJson ? JSON.parse(rolesJson) : [],
|
|
111
|
-
permissions: permissionsJson ? JSON.parse(permissionsJson) : [],
|
|
112
|
-
isSuperAdmin,
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
catch {
|
|
116
|
-
return { roles: [], permissions: [], isSuperAdmin: false };
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Obtiene el refresh token.
|
|
121
|
-
*/
|
|
122
|
-
getRefreshToken() {
|
|
123
|
-
return localStorage.getItem(this.keys.REFRESH_TOKEN);
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Limpia todo el estado de autenticación.
|
|
127
|
-
*/
|
|
128
|
-
clear() {
|
|
129
|
-
try {
|
|
130
|
-
Object.values(this.keys).forEach((key) => localStorage.removeItem(key));
|
|
131
|
-
}
|
|
132
|
-
catch (e) {
|
|
133
|
-
console.warn('[ValtechAuth] Error limpiando storage:', e);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Verifica si hay estado guardado.
|
|
138
|
-
*/
|
|
139
|
-
hasStoredState() {
|
|
140
|
-
return !!localStorage.getItem(this.keys.ACCESS_TOKEN);
|
|
141
|
-
}
|
|
142
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuthStorageService, deps: [{ token: VALTECH_AUTH_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
143
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuthStorageService, providedIn: 'root' }); }
|
|
144
|
-
}
|
|
145
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuthStorageService, decorators: [{
|
|
146
|
-
type: Injectable,
|
|
147
|
-
args: [{ providedIn: 'root' }]
|
|
148
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
149
|
-
type: Inject,
|
|
150
|
-
args: [VALTECH_AUTH_CONFIG]
|
|
151
|
-
}] }] });
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL3N0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBZS9DOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQUc3QixZQUN1QyxNQUF5QjtRQUF6QixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUU5RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsSUFBSSxlQUFlLENBQUM7UUFDNUQsSUFBSSxDQUFDLElBQUksR0FBRztZQUNWLFlBQVksRUFBRSxHQUFHLE1BQU0sY0FBYztZQUNyQyxhQUFhLEVBQUUsR0FBRyxNQUFNLGVBQWU7WUFDdkMsS0FBSyxFQUFFLEdBQUcsTUFBTSxPQUFPO1lBQ3ZCLFdBQVcsRUFBRSxHQUFHLE1BQU0sYUFBYTtZQUNuQyxjQUFjLEVBQUUsR0FBRyxNQUFNLGdCQUFnQjtZQUN6QyxVQUFVLEVBQUUsR0FBRyxNQUFNLFlBQVk7U0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsQ0FBQyxLQUFzQjtRQUM5QixJQUFJLENBQUM7WUFDSCxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNoRSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNsRSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFT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LENBQUM7K0dBL0pVLGtCQUFrQixrQkFJbkIsbUJBQW1CO21IQUpsQixrQkFBa0IsY0FETCxNQUFNOzs0RkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBSzdCLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWQUxURUNIX0FVVEhfQ09ORklHIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgU3RvcmVkQXV0aFN0YXRlLCBHZXRQZXJtaXNzaW9uc1Jlc3BvbnNlLCBWYWx0ZWNoQXV0aENvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIENsYXZlcyBkZSBzdG9yYWdlIHBhcmEgYXV0ZW50aWNhY2nDs24uXG4gKi9cbmludGVyZmFjZSBTdG9yYWdlS2V5cyB7XG4gIEFDQ0VTU19UT0tFTjogc3RyaW5nO1xuICBSRUZSRVNIX1RPS0VOOiBzdHJpbmc7XG4gIFJPTEVTOiBzdHJpbmc7XG4gIFBFUk1JU1NJT05TOiBzdHJpbmc7XG4gIElTX1NVUEVSX0FETUlOOiBzdHJpbmc7XG4gIEVYUElSRVNfQVQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBTZXJ2aWNpbyBwYXJhIHBlcnNpc3RlbmNpYSBkZSBlc3RhZG8gZGUgYXV0ZW50aWNhY2nDs24gZW4gbG9jYWxTdG9yYWdlLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEF1dGhTdG9yYWdlU2VydmljZSB7XG4gIHByaXZhdGUga2V5czogU3RvcmFnZUtleXM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChWQUxURUNIX0FVVEhfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogVmFsdGVjaEF1dGhDb25maWdcbiAgKSB7XG4gICAgY29uc3QgcHJlZml4ID0gdGhpcy5jb25maWcuc3RvcmFnZVByZWZpeCB8fCAndmFsdGVjaF9hdXRoXyc7XG4gICAgdGhpcy5rZXlzID0ge1xuICAgICAgQUNDRVNTX1RPS0VOOiBgJHtwcmVmaXh9YWNjZXNzX3Rva2VuYCxcbiAgICAgIFJFRlJFU0hfVE9LRU46IGAke3ByZWZpeH1yZWZyZXNoX3Rva2VuYCxcbiAgICAgIFJPTEVTOiBgJHtwcmVmaXh9cm9sZXNgLFxuICAgICAgUEVSTUlTU0lPTlM6IGAke3ByZWZpeH1wZXJtaXNzaW9uc2AsXG4gICAgICBJU19TVVBFUl9BRE1JTjogYCR7cHJlZml4fWlzX3N1cGVyX2FkbWluYCxcbiAgICAgIEVYUElSRVNfQVQ6IGAke3ByZWZpeH1leHBpcmVzX2F0YCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEd1YXJkYSBlbCBlc3RhZG8gY29tcGxldG8gZGUgYXV0ZW50aWNhY2nDs24uXG4gICAqL1xuICBzYXZlU3RhdGUoc3RhdGU6IFN0b3JlZEF1dGhTdGF0ZSk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuQUNDRVNTX1RPS0VOLCBzdGF0ZS5hY2Nlc3NUb2tlbik7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuUkVGUkVTSF9UT0tFTiwgc3RhdGUucmVmcmVzaFRva2VuKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMua2V5cy5ST0xFUywgSlNPTi5zdHJpbmdpZnkoc3RhdGUucm9sZXMpKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICB0aGlzLmtleXMuUEVSTUlTU0lPTlMsXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHN0YXRlLnBlcm1pc3Npb25zKVxuICAgICAgKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICB0aGlzLmtleXMuSVNfU1VQRVJfQURNSU4sXG4gICAgICAgIFN0cmluZyhzdGF0ZS5pc1N1cGVyQWRtaW4pXG4gICAgICApO1xuICAgICAgaWYgKHN0YXRlLmV4cGlyZXNBdCkge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuRVhQSVJFU19BVCwgU3RyaW5nKHN0YXRlLmV4cGlyZXNBdCkpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW1ZhbHRlY2hBdXRoXSBFcnJvciBndWFyZGFuZG8gZXN0YWRvIGVuIHN0b3JhZ2U6JywgZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhcmdhIGVsIGVzdGFkbyBkZSBhdXRlbnRpY2FjacOzbiBkZXNkZSBzdG9yYWdlLlxuICAgKi9cbiAgbG9hZFN0YXRlKCk6IFBhcnRpYWw8U3RvcmVkQXV0aFN0YXRlPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLkFDQ0VTU19UT0tFTik7XG4gICAgICBjb25zdCByZWZyZXNoVG9rZW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuUkVGUkVTSF9UT0tFTik7XG4gICAgICBjb25zdCByb2xlc0pzb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuUk9MRVMpO1xuICAgICAgY29uc3QgcGVybWlzc2lvbnNKc29uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLlBFUk1JU1NJT05TKTtcbiAgICAgIGNvbnN0IGlzU3VwZXJBZG1pbiA9XG4gICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5JU19TVVBFUl9BRE1JTikgPT09ICd0cnVlJztcbiAgICAgIGNvbnN0IGV4cGlyZXNBdFN0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5FWFBJUkVTX0FUKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWNjZXNzVG9rZW46IGFjY2Vzc1Rva2VuIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgcmVmcmVzaFRva2VuOiByZWZyZXNoVG9rZW4gfHwgdW5kZWZpbmVkLFxuICAgICAgICByb2xlczogcm9sZXNKc29uID8gSlNPTi5wYXJzZShyb2xlc0pzb24pIDogW10sXG4gICAgICAgIHBlcm1pc3Npb25zOiBwZXJtaXNzaW9uc0pzb24gPyBKU09OLnBhcnNlKHBlcm1pc3Npb25zSnNvbikgOiBbXSxcbiAgICAgICAgaXNTdXBlckFkbWluLFxuICAgICAgICBleHBpcmVzQXQ6IGV4cGlyZXNBdFN0ciA/IE51bWJlcihleHBpcmVzQXRTdHIpIDogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tWYWx0ZWNoQXV0aF0gRXJyb3IgY2FyZ2FuZG8gZXN0YWRvIGRlc2RlIHN0b3JhZ2U6JywgZSk7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEd1YXJkYSBzb2xvIGVsIGFjY2VzcyB0b2tlbi5cbiAgICovXG4gIHNhdmVBY2Nlc3NUb2tlbih0b2tlbjogc3RyaW5nLCBleHBpcmVzQXQ/OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlzLkFDQ0VTU19UT0tFTiwgdG9rZW4pO1xuICAgICAgaWYgKGV4cGlyZXNBdCkge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuRVhQSVJFU19BVCwgU3RyaW5nKGV4cGlyZXNBdCkpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW1ZhbHRlY2hBdXRoXSBFcnJvciBndWFyZGFuZG8gYWNjZXNzIHRva2VuOicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHdWFyZGEgZWwgcmVmcmVzaCB0b2tlbiAodG9rZW4gcm90YXRpb24pLlxuICAgKi9cbiAgc2F2ZVJlZnJlc2hUb2tlbih0b2tlbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMua2V5cy5SRUZSRVNIX1RPS0VOLCB0b2tlbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS53YXJuKCdbVmFsdGVjaEF1dGhdIEVycm9yIGd1YXJkYW5kbyByZWZyZXNoIHRva2VuOicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHdWFyZGEgbG9zIHBlcm1pc29zIGFjdHVhbGl6YWRvcy5cbiAgICovXG4gIHNhdmVQZXJtaXNzaW9ucyhyZXNwb25zZTogR2V0UGVybWlzc2lvbnNSZXNwb25zZSk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuUk9MRVMsIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlLnJvbGVzKSk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgICAgdGhpcy5rZXlzLlBFUk1JU1NJT05TLFxuICAgICAgICBKU09OLnN0cmluZ2lmeShyZXNwb25zZS5wZXJtaXNzaW9ucylcbiAgICAgICk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgICAgdGhpcy5rZXlzLklTX1NVUEVSX0FETUlOLFxuICAgICAgICBTdHJpbmcocmVzcG9uc2UuaXNTdXBlckFkbWluKVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tWYWx0ZWNoQXV0aF0gRXJyb3IgZ3VhcmRhbmRvIHBlcm1pc29zOicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYXJnYSBsb3MgcGVybWlzb3MgZGVzZGUgc3RvcmFnZS5cbiAgICovXG4gIGxvYWRQZXJtaXNzaW9ucygpOiB7XG4gICAgcm9sZXM6IHN0cmluZ1tdO1xuICAgIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgICBpc1N1cGVyQWRtaW46IGJvb2xlYW47XG4gIH0ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByb2xlc0pzb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuUk9MRVMpO1xuICAgICAgY29uc3QgcGVybWlzc2lvbnNKc29uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLlBFUk1JU1NJT05TKTtcbiAgICAgIGNvbnN0IGlzU3VwZXJBZG1pbiA9XG4gICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5JU19TVVBFUl9BRE1JTikgPT09ICd0cnVlJztcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcm9sZXM6IHJvbGVzSnNvbiA/IEpTT04ucGFyc2Uocm9sZXNKc29uKSA6IFtdLFxuICAgICAgICBwZXJtaXNzaW9uczogcGVybWlzc2lvbnNKc29uID8gSlNPTi5wYXJzZShwZXJtaXNzaW9uc0pzb24pIDogW10sXG4gICAgICAgIGlzU3VwZXJBZG1pbixcbiAgICAgIH07XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4geyByb2xlczogW10sIHBlcm1pc3Npb25zOiBbXSwgaXNTdXBlckFkbWluOiBmYWxzZSB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGVsIHJlZnJlc2ggdG9rZW4uXG4gICAqL1xuICBnZXRSZWZyZXNoVG9rZW4oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5SRUZSRVNIX1RPS0VOKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaW1waWEgdG9kbyBlbCBlc3RhZG8gZGUgYXV0ZW50aWNhY2nDs24uXG4gICAqL1xuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgT2JqZWN0LnZhbHVlcyh0aGlzLmtleXMpLmZvckVhY2goKGtleSkgPT4gbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS53YXJuKCdbVmFsdGVjaEF1dGhdIEVycm9yIGxpbXBpYW5kbyBzdG9yYWdlOicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzaSBoYXkgZXN0YWRvIGd1YXJkYWRvLlxuICAgKi9cbiAgaGFzU3RvcmVkU3RhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLkFDQ0VTU19UT0tFTik7XG4gIH1cbn1cbiJdfQ==
|