@seniorsistemas/angular-components 19.0.5 → 19.0.7
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/accordion/lib/accordion/accordion.component.d.ts +25 -0
- package/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.d.ts +60 -0
- package/alert/lib/alert/alert.component.d.ts +40 -0
- package/autocomplete/lib/autocomplete/autocomplete.component.d.ts +51 -0
- package/badge/lib/badge/badge.component.d.ts +20 -0
- package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +46 -1
- package/breadcrumb/lib/breadcrumb/breadcrumb.component.d.ts +12 -0
- package/button/lib/button/button.component.d.ts +101 -0
- package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +24 -0
- package/card/lib/card/card.component.d.ts +18 -0
- package/chat/lib/chat/chat.component.d.ts +20 -2
- package/chat/lib/chat/components/chat-message/chat-message.component.d.ts +18 -2
- package/checkbox/lib/checkbox/checkbox.component.d.ts +23 -3
- package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +20 -0
- package/chips/lib/chips/chip-item/chip-item.component.d.ts +15 -0
- package/chips/lib/chips/chips/chips.component.d.ts +41 -0
- package/code-editor/lib/code-editor/code-editor.component.d.ts +40 -0
- package/collapse-link/lib/collapse-link/collapse-link.component.d.ts +18 -0
- package/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.d.ts +5 -0
- package/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.d.ts +19 -0
- package/content-generator/lib/content-generator/content-generator.component.d.ts +30 -0
- package/control-errors/lib/control-errors/control-errors.component.d.ts +36 -0
- package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +36 -0
- package/currency/lib/currency.service.d.ts +15 -2
- package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +31 -0
- package/dialog/lib/src/dialog/dialog.component.d.ts +51 -0
- package/dialog/lib/src/dialog/services/dialog.service.d.ts +2 -2
- package/dialog/lib/src/dialog/services/internal-dialog.service.d.ts +1 -1
- package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +6 -5
- package/dynamic-form/dynamic-form/components/lookup/models/lookup-api.model.d.ts +5 -0
- package/dynamic-form/dynamic-form/configurations/structure/fieldset.d.ts +14 -0
- package/dynamic-form/dynamic-form/configurations/structure/row.d.ts +67 -0
- package/dynamic-form/dynamic-form/configurations/structure/section.d.ts +8 -0
- package/dynamic-form/dynamic-form/configurations/structure/structure.d.ts +19 -0
- package/dynamic-form/dynamic-form/dynamic-form.component.d.ts +21 -1
- package/dynamic-form/dynamic-form/form-field/configurations/fields/autocomplete-field.d.ts +45 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/bignumber-field.d.ts +59 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/blob-field.d.ts +55 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-field.d.ts +35 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-switch-field.d.ts +17 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/button-field.d.ts +23 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/calendar-field.d.ts +66 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/checkbox-field.d.ts +15 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/chips-field.d.ts +30 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/content-generator-field.d.ts +47 -2
- package/dynamic-form/dynamic-form/form-field/configurations/fields/country-phone-picker-field.d.ts +26 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.d.ts +18 -1
- package/dynamic-form/dynamic-form/form-field/configurations/fields/field.d.ts +44 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.d.ts +112 -4
- package/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.d.ts +42 -3
- package/dynamic-form/dynamic-form/form-field/configurations/fields/password-field.d.ts +48 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/profile-picture.d.ts +62 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/radio-button-field.d.ts +34 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/select-field.d.ts +63 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/slider-field.d.ts +47 -1
- package/dynamic-form/dynamic-form/form-field/configurations/fields/star-rating-field.d.ts +23 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.d.ts +37 -1
- package/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.d.ts +65 -2
- package/dynamic-form/public-api.d.ts +1 -0
- package/editable-overlay/lib/editable-overlay/editable-overlay.directive.d.ts +16 -0
- package/empty-state/lib/empty-state/empty-state.component.d.ts +59 -0
- package/esm2022/accordion/lib/accordion/accordion.component.mjs +26 -1
- package/esm2022/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.mjs +61 -1
- package/esm2022/alert/lib/alert/alert.component.mjs +41 -1
- package/esm2022/autocomplete/lib/autocomplete/autocomplete.component.mjs +52 -1
- package/esm2022/badge/lib/badge/badge.component.mjs +21 -1
- package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +47 -2
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.component.mjs +13 -1
- package/esm2022/button/lib/button/button.component.mjs +102 -1
- package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.directive.mjs +72 -47
- package/esm2022/card/lib/card/card.component.mjs +21 -6
- package/esm2022/chat/lib/chat/chat.component.mjs +23 -5
- package/esm2022/chat/lib/chat/components/chat-message/chat-message.component.mjs +20 -4
- package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +24 -4
- package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +22 -2
- package/esm2022/chips/lib/chips/chip-item/chip-item.component.mjs +17 -2
- package/esm2022/chips/lib/chips/chips/chips.component.mjs +42 -1
- package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +41 -1
- package/esm2022/collapse-link/lib/collapse-link/collapse-link.component.mjs +19 -1
- package/esm2022/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.mjs +6 -1
- package/esm2022/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.mjs +20 -1
- package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +31 -1
- package/esm2022/control-errors/lib/control-errors/control-errors.component.mjs +37 -1
- package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +37 -1
- package/esm2022/currency/lib/currency.service.mjs +21 -8
- package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +32 -1
- package/esm2022/dialog/lib/src/dialog/dialog.component.mjs +66 -11
- package/esm2022/dialog/lib/src/dialog/services/dialog.service.mjs +13 -10
- package/esm2022/dialog/lib/src/dialog/services/internal-dialog.service.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/components/lookup/models/lookup-api.model.mjs +2 -0
- package/esm2022/dynamic-form/dynamic-form/configurations/structure/fieldset.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/configurations/structure/row.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/configurations/structure/section.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/configurations/structure/structure.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/dynamic-form.component.mjs +22 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/autocomplete-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/bignumber-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/blob-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-switch-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/button-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/calendar-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/checkbox-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/chips-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/content-generator-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/country-phone-picker-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/field.mjs +1 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/password-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/profile-picture.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/radio-button-field.mjs +6 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/select-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/slider-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/star-rating-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.mjs +3 -3
- package/esm2022/dynamic-form/public-api.mjs +2 -2
- package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.directive.mjs +17 -1
- package/esm2022/empty-state/lib/empty-state/empty-state.component.mjs +60 -1
- package/esm2022/fieldset/lib/fieldset/fieldset.component.mjs +25 -5
- package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +48 -1
- package/esm2022/gantt/lib/gantt/gantt.component.mjs +32 -1
- package/esm2022/global-search/lib/global-search/global-search.component.mjs +30 -1
- package/esm2022/grid-menu/lib/grid-menu/grid-menu.component.mjs +40 -1
- package/esm2022/help-popover/lib/help-popover/help-popover.directive.mjs +83 -27
- package/esm2022/image-cropper/lib/image-cropper/image-cropper.component.mjs +40 -3
- package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.mjs +18 -2
- package/esm2022/info-sign/lib/info-sign/info-sign.directive.mjs +33 -4
- package/esm2022/inline-edit/lib/inline-edit/inline-edit.component.mjs +16 -1
- package/esm2022/insights/lib/insights/insights.component.mjs +23 -1
- package/esm2022/interactive-content/lib/interactive-content/interactive-content.directive.mjs +21 -1
- package/esm2022/kanban/lib/kanban/kanban.component.mjs +35 -17
- package/esm2022/label-value/lib/label-value/label-value.component.mjs +14 -1
- package/esm2022/loading-state/lib/loading-state/loading-state.component.mjs +37 -1
- package/esm2022/loading-state/lib/loading-state/loading-state.directive.mjs +24 -1
- package/esm2022/locale/lib/locale/locale.service.mjs +8 -1
- package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +17 -1
- package/esm2022/mask/lib/mask/mask-formatter.pipe.mjs +13 -1
- package/esm2022/mouse-events/lib/mouse-events/double-click.directive.mjs +16 -3
- package/esm2022/mouse-events/lib/mouse-events/long-press.directive.mjs +24 -10
- package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +20 -1
- package/esm2022/number-input/lib/number-input/number-input.directive.mjs +32 -12
- package/esm2022/numeric/lib/numeric.pipe.mjs +16 -1
- package/esm2022/numeric/lib/numeric.service.mjs +21 -1
- package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.directive.mjs +9 -6
- package/esm2022/object-card/lib/object-card/object-card.component.mjs +24 -1
- package/esm2022/optional-fields/editor/editor-field.mjs +1 -1
- package/esm2022/paginator/lib/paginator/paginator.component.mjs +20 -1
- package/esm2022/panel/lib/panel/panel.component.mjs +44 -23
- package/esm2022/password-strength/lib/password-strength/password-strength.component.mjs +25 -1
- package/esm2022/password-strength/lib/password-strength/password-strength.directive.mjs +54 -1
- package/esm2022/picklist/lib/picklist/picklist.component.mjs +33 -2
- package/esm2022/pin-code-field/lib/pin-code-field/pin-code-field.component.mjs +29 -34
- package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +86 -2
- package/esm2022/progressbar/lib/progressbar/progressbar.component.mjs +53 -3
- package/esm2022/radio-button/lib/radio-button/radio-button.component.mjs +28 -1
- package/esm2022/radio-button/lib/radio-button-group/radio-button-group.component.mjs +27 -1
- package/esm2022/rating-scale/lib/rating-scale/rating-scale.component.mjs +39 -7
- package/esm2022/select/lib/select/select.component.mjs +35 -1
- package/esm2022/select-button/lib/select-button/select-button.component.mjs +35 -1
- package/esm2022/shared/lib/shared/border-button/border-button.component.mjs +11 -3
- package/esm2022/sidebar/lib/sidebar/sidebar.component.mjs +54 -1
- package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.mjs +76 -36
- package/esm2022/slider/lib/slider/slider.component.mjs +90 -9
- package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +25 -4
- package/esm2022/split-button/lib/split-button/split-button.component.mjs +24 -2
- package/esm2022/star-rating/star-rating/star-rating.component.mjs +17 -1
- package/esm2022/stats-card/lib/stats-card/stats-card.component.mjs +32 -10
- package/esm2022/stepper/lib/stepper/stepper.component.mjs +20 -1
- package/esm2022/structure/lib/structure/footer.component.mjs +11 -1
- package/esm2022/switch/lib/switch/switch.component.mjs +22 -2
- package/esm2022/table/lib/table/table-column/table-columns.component.mjs +16 -1
- package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +29 -3
- package/esm2022/tabs/lib/tab-item/tab-item.component.mjs +33 -2
- package/esm2022/tabs/lib/tabs/tabs.component.mjs +35 -3
- package/esm2022/template/lib/template/template.directive.mjs +14 -2
- package/esm2022/text-area/lib/text-area/text-area.component.mjs +28 -1
- package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +25 -1
- package/esm2022/thumbnails/lib/thumbnails/thumbnails.component.mjs +28 -3
- package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +30 -1
- package/esm2022/tile/lib/tile/tile.component.mjs +26 -1
- package/esm2022/timeline/lib/timeline/timeline.component.mjs +26 -3
- package/esm2022/toast/lib/toast/toast.component.mjs +24 -4
- package/esm2022/token-list/lib/token-list/token-list.component.mjs +22 -1
- package/esm2022/tooltip/lib/tooltip/tooltip.directive.mjs +66 -1
- package/esm2022/topbar/lib/topbar/topbar.component.mjs +18 -1
- package/esm2022/tree/lib/tree/tree.component.mjs +28 -1
- package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +47 -1
- package/fesm2022/seniorsistemas-angular-components-accordion.mjs +85 -0
- package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-alert.mjs +40 -0
- package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs +51 -0
- package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-badge.mjs +20 -0
- package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +46 -1
- package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +12 -0
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-button.mjs +101 -0
- package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +71 -46
- package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-card.mjs +19 -4
- package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-chat.mjs +39 -5
- package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +21 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +23 -3
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-chips.mjs +57 -1
- package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +40 -0
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +18 -0
- package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-common.mjs +5 -0
- package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs +19 -0
- package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +30 -0
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +36 -0
- package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +36 -0
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-currency.mjs +19 -6
- package/fesm2022/seniorsistemas-angular-components-currency.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +31 -0
- package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dialog.mjs +74 -16
- package/fesm2022/seniorsistemas-angular-components-dialog.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +29 -4
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +16 -0
- package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +59 -0
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +21 -1
- package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +47 -0
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-gantt.mjs +31 -0
- package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs +29 -0
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +39 -0
- package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +80 -24
- package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +38 -1
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +17 -1
- package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +30 -1
- package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +15 -0
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-insights.mjs +22 -0
- package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs +20 -0
- package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs +29 -11
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-label-value.mjs +13 -0
- package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +59 -0
- package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-locale.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +16 -0
- package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-mask.mjs +12 -0
- package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +35 -8
- package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +19 -0
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-number-input.mjs +31 -11
- package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs +8 -5
- package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-numeric.mjs +35 -0
- package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs +23 -0
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-optional-fields-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs +19 -0
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-panel.mjs +39 -18
- package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +77 -0
- package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-picklist.mjs +32 -1
- package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +28 -33
- package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +85 -1
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +52 -2
- package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-radio-button.mjs +53 -0
- package/fesm2022/seniorsistemas-angular-components-radio-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +36 -4
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select-button.mjs +34 -0
- package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select.mjs +34 -0
- package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-shared.mjs +9 -1
- package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-sidebar.mjs +53 -0
- package/fesm2022/seniorsistemas-angular-components-sidebar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +71 -31
- package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-slider.mjs +89 -8
- package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +24 -3
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs +22 -0
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +16 -0
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +30 -8
- package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-stepper.mjs +19 -0
- package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-structure.mjs +10 -0
- package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-switch.mjs +20 -0
- package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs +28 -2
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs +15 -0
- package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tabs.mjs +65 -2
- package/fesm2022/seniorsistemas-angular-components-tabs.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-template.mjs +13 -1
- package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs +27 -0
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +24 -0
- package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +26 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +29 -0
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tile.mjs +25 -0
- package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-timeline.mjs +25 -2
- package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-toast.mjs +22 -2
- package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-token-list.mjs +21 -0
- package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +65 -0
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-topbar.mjs +17 -0
- package/fesm2022/seniorsistemas-angular-components-topbar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tree.mjs +27 -0
- package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +46 -0
- package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
- package/fieldset/lib/fieldset/fieldset.component.d.ts +23 -3
- package/file-picker/lib/file-picker/file-picker.component.d.ts +47 -0
- package/gantt/lib/gantt/gantt.component.d.ts +31 -0
- package/global-search/lib/global-search/global-search.component.d.ts +29 -0
- package/grid-menu/lib/grid-menu/grid-menu.component.d.ts +39 -0
- package/help-popover/lib/help-popover/help-popover.directive.d.ts +67 -17
- package/image-cropper/lib/image-cropper/image-cropper.component.d.ts +38 -0
- package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +15 -0
- package/info-sign/lib/info-sign/info-sign.directive.d.ts +30 -1
- package/inline-edit/lib/inline-edit/inline-edit.component.d.ts +15 -0
- package/insights/lib/insights/insights.component.d.ts +22 -0
- package/interactive-content/lib/interactive-content/interactive-content.directive.d.ts +20 -0
- package/kanban/lib/kanban/kanban.component.d.ts +25 -5
- package/label-value/lib/label-value/label-value.component.d.ts +13 -0
- package/loading-state/lib/loading-state/loading-state.component.d.ts +36 -0
- package/loading-state/lib/loading-state/loading-state.directive.d.ts +23 -0
- package/locale/lib/locale/locale.service.d.ts +7 -0
- package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +16 -0
- package/mask/lib/mask/mask-formatter.pipe.d.ts +12 -0
- package/mouse-events/lib/mouse-events/double-click.directive.d.ts +13 -0
- package/mouse-events/lib/mouse-events/long-press.directive.d.ts +16 -2
- package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +19 -0
- package/number-input/lib/number-input/number-input.directive.d.ts +19 -1
- package/numeric/lib/numeric.pipe.d.ts +15 -0
- package/numeric/lib/numeric.service.d.ts +20 -0
- package/numeric-mask/lib/numeric-mask/numeric-mask.directive.d.ts +5 -4
- package/object-card/lib/object-card/object-card.component.d.ts +23 -0
- package/optional-fields/editor/editor-field.d.ts +19 -0
- package/package.json +18 -18
- package/paginator/lib/paginator/paginator.component.d.ts +19 -0
- package/panel/lib/panel/panel.component.d.ts +24 -3
- package/password-strength/lib/password-strength/password-strength.component.d.ts +24 -0
- package/password-strength/lib/password-strength/password-strength.directive.d.ts +53 -0
- package/picklist/lib/picklist/picklist.component.d.ts +29 -0
- package/pin-code-field/lib/pin-code-field/pin-code-field.component.d.ts +28 -33
- package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +85 -1
- package/progressbar/lib/progressbar/progressbar.component.d.ts +50 -0
- package/radio-button/lib/radio-button/radio-button.component.d.ts +27 -0
- package/radio-button/lib/radio-button-group/radio-button-group.component.d.ts +26 -0
- package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +30 -2
- package/select/lib/select/select.component.d.ts +34 -0
- package/select-button/lib/select-button/select-button.component.d.ts +34 -0
- package/shared/lib/shared/border-button/border-button.component.d.ts +10 -2
- package/sidebar/lib/sidebar/sidebar.component.d.ts +53 -0
- package/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.d.ts +53 -2
- package/slider/lib/slider/slider.component.d.ts +72 -0
- package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +18 -0
- package/split-button/lib/split-button/split-button.component.d.ts +22 -0
- package/star-rating/star-rating/star-rating.component.d.ts +16 -0
- package/stats-card/lib/stats-card/stats-card.component.d.ts +28 -0
- package/stepper/lib/stepper/stepper.component.d.ts +19 -0
- package/structure/lib/structure/footer.component.d.ts +10 -0
- package/switch/lib/switch/switch.component.d.ts +20 -0
- package/table/lib/table/table-column/table-columns.component.d.ts +15 -0
- package/table-header/lib/table-header/table-header-checkbox.component.d.ts +18 -0
- package/tabs/lib/tab-item/tab-item.component.d.ts +31 -0
- package/tabs/lib/tabs/tabs.component.d.ts +28 -0
- package/template/lib/template/template.directive.d.ts +12 -0
- package/text-area/lib/text-area/text-area.component.d.ts +27 -0
- package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +24 -0
- package/thumbnails/lib/thumbnails/thumbnails.component.d.ts +27 -2
- package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +29 -0
- package/tile/lib/tile/tile.component.d.ts +25 -0
- package/timeline/lib/timeline/timeline.component.d.ts +24 -0
- package/toast/lib/toast/toast.component.d.ts +22 -2
- package/token-list/lib/token-list/token-list.component.d.ts +21 -0
- package/tooltip/lib/tooltip/tooltip.directive.d.ts +65 -0
- package/topbar/lib/topbar/topbar.component.d.ts +17 -0
- package/tree/lib/tree/tree.component.d.ts +27 -0
- package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +46 -0
|
@@ -4,12 +4,31 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
5
5
|
import * as i2 from "@seniorsistemas/angular-components/tiered-menu";
|
|
6
6
|
import * as i3 from "@seniorsistemas/angular-components/tooltip";
|
|
7
|
+
/**
|
|
8
|
+
* @description Componente de navegação por etapas que exibe o estado atual (step)
|
|
9
|
+
* com suporte a avanço, retrocesso e seleção direta via dropdown (`TieredMenu`).
|
|
10
|
+
* Implementa `ControlValueAccessor` para integração com formulários Angular.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```html
|
|
14
|
+
* <s-navigation-button
|
|
15
|
+
* [steps]="etapas"
|
|
16
|
+
* (stepChanged)="onEtapaMudou($event)" />
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @category Inputs
|
|
20
|
+
*/
|
|
7
21
|
export class NavigationButtonComponent {
|
|
8
22
|
changeDetectorRef;
|
|
23
|
+
/** @description Lista de etapas de navegação. Campo obrigatório. */
|
|
9
24
|
steps;
|
|
25
|
+
/** @description Valor padrão a ser selecionado ao inicializar o componente. */
|
|
10
26
|
defaultValue;
|
|
27
|
+
/** @description Texto exibido no tooltip do botão principal. */
|
|
11
28
|
tooltip;
|
|
29
|
+
/** @description Quando `true`, emite `stepChanged` durante a inicialização com a etapa atual. @default false */
|
|
12
30
|
changeOnInit = false;
|
|
31
|
+
/** @description Emitido quando o usuário navega para uma nova etapa, com informações da etapa anterior e atual. */
|
|
13
32
|
stepChanged = new EventEmitter();
|
|
14
33
|
currentIndex = 0;
|
|
15
34
|
isDisabled = false;
|
|
@@ -131,4 +150,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
131
150
|
}], stepChanged: [{
|
|
132
151
|
type: Output
|
|
133
152
|
}] } });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL25hdmlnYXRpb24tYnV0dG9uL3NyYy9saWIvbmF2aWdhdGlvbi1idXR0b24vbmF2aWdhdGlvbi1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL25hdmlnYXRpb24tYnV0dG9uL3NyYy9saWIvbmF2aWdhdGlvbi1idXR0b24vbmF2aWdhdGlvbi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixVQUFVLEdBSWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQWtCekUsTUFBTSxPQUFPLHlCQUF5QjtJQTJCTDtJQXZCdEIsS0FBSyxDQUEwQjtJQUcvQixZQUFZLENBQVU7SUFHdEIsT0FBTyxDQUFVO0lBR2pCLFlBQVksR0FBRyxLQUFLLENBQUM7SUFHckIsV0FBVyxHQUNkLElBQUksWUFBWSxFQUFFLENBQUM7SUFFaEIsWUFBWSxHQUFHLENBQUMsQ0FBQztJQUNqQixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ25CLGVBQWUsR0FBeUIsRUFBRSxDQUFDO0lBRTFDLFNBQVMsQ0FBNEI7SUFDckMsVUFBVSxDQUFjO0lBQ3hCLE1BQU0sQ0FBVTtJQUV4QixZQUE2QixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUFHLENBQUM7SUFFOUQsUUFBUTtRQUNYLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBRTlCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FB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QkFDOUIsQ0FBQztvQkFFRCxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDekMsQ0FBQzthQUNKLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzt3R0F2SVEseUJBQXlCOzRGQUF6Qix5QkFBeUIsbU1BUnZCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztnQkFDeEQsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUNKLDBCQzFCTCxzaUNBbUNBOzs0RkRQYSx5QkFBeUI7a0JBWnJDLFNBQVM7K0JBQ0kscUJBQXFCLGFBR3BCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDOzRCQUN4RCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjtzRkFNTSxLQUFLO3NCQURYLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixZQUFZO3NCQURsQixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxZQUFZO3NCQURsQixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgT25Jbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBOYXZpZ2F0aW9uQnV0dG9uSXRlbSB9IGZyb20gJy4vbW9kZWxzL25hdmlnYXRpb24tYnV0dG9uLWl0ZW0nO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkJ1dHRvblN0ZXBDaGFuZ2VkSW5mbyB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IFRpZXJlZE1lbnVJdGVtRGF0YSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdGllcmVkLW1lbnUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3MtbmF2aWdhdGlvbi1idXR0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uYXZpZ2F0aW9uLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbmF2aWdhdGlvbi1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOYXZpZ2F0aW9uQnV0dG9uQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25CdXR0b25Db21wb25lbnRcbiAgICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIEFmdGVyVmlld0luaXRcbntcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIHB1YmxpYyBzdGVwcyE6IE5hdmlnYXRpb25CdXR0b25JdGVtW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkZWZhdWx0VmFsdWU6IHVua25vd247XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0b29sdGlwPzogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2hhbmdlT25Jbml0ID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgc3RlcENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxOYXZpZ2F0aW9uQnV0dG9uU3RlcENoYW5nZWRJbmZvPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBjdXJyZW50SW5kZXggPSAwO1xuICAgIHB1YmxpYyBpc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgcHVibGljIHRpZXJlZE1lbnVJdGVtczogVGllcmVkTWVudUl0ZW1EYXRhW10gPSBbXTtcblxuICAgIHByaXZhdGUgX29uQ2hhbmdlPzogKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkO1xuICAgIHByaXZhdGUgX29uVG91Y2hlZD86ICgpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSBfdmFsdWU6IHVua25vd247XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY3JlYXRlVGllcmVkTWVudUl0ZW1zKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuY2hhbmdlT25Jbml0KSB7XG4gICAgICAgICAgICB0aGlzLnN0ZXBDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgICAgICAgIHByZXZpb3VzOiBudWxsLFxuICAgICAgICAgICAgICAgIGN1cnJlbnQ6IHRoaXMuc3RlcHNbdGhpcy5jdXJyZW50SW5kZXhdLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXREZWZhdWx0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXREZWZhdWx0VmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLmRlZmF1bHRWYWx1ZTtcblxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnN0ZXBzLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgICAoc3RlcCkgPT4gc3RlcC52YWx1ZSA9PT0gdGhpcy5fdmFsdWUsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSBpbmRleCAhPT0gLTEgPyBpbmRleCA6IDA7XG4gICAgICAgICAgICB0aGlzLnN0ZXBDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgICAgICAgIHByZXZpb3VzOiBudWxsLFxuICAgICAgICAgICAgICAgIGN1cnJlbnQ6IHRoaXMuc3RlcHNbdGhpcy5jdXJyZW50SW5kZXhdLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcblxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc3RlcHMuZmluZEluZGV4KFxuICAgICAgICAgICAgKHN0ZXApID0+IHN0ZXAudmFsdWUgPT09IHRoaXMuX3ZhbHVlLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGluZGV4ICE9PSAtMSA/IGluZGV4IDogMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlID0gb25DaGFuZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25OZXh0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgcHJldmlvdXMgPSB0aGlzLnN0ZXBzW3RoaXMuY3VycmVudEluZGV4XTtcblxuICAgICAgICBpZiAodGhpcy5jdXJyZW50SW5kZXggPCB0aGlzLnN0ZXBzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEluZGV4Kys7XG5cbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnN0ZXBzW3RoaXMuY3VycmVudEluZGV4XTtcblxuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UgJiYgdGhpcy5fb25DaGFuZ2UoY3VycmVudC52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnN0ZXBDaGFuZ2VkLmVtaXQoeyBwcmV2aW91cywgY3VycmVudCB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX29uVG91Y2hlZCAmJiB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25QcmV2aW91cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHByZXZpb3VzID0gdGhpcy5zdGVwc1t0aGlzLmN1cnJlbnRJbmRleF07XG5cbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEluZGV4ID4gMCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXgtLTtcblxuICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMuc3RlcHNbdGhpcy5jdXJyZW50SW5kZXhdO1xuXG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZSAmJiB0aGlzLl9vbkNoYW5nZShjdXJyZW50LnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc3RlcENoYW5nZWQuZW1pdCh7IHByZXZpb3VzLCBjdXJyZW50IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkICYmIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZVRpZXJlZE1lbnVJdGVtcygpIHtcbiAgICAgICAgdGhpcy5zdGVwcy5mb3JFYWNoKChzdGVwOiBOYXZpZ2F0aW9uQnV0dG9uSXRlbSkgPT4ge1xuICAgICAgICAgICAgdGhpcy50aWVyZWRNZW51SXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgbGFiZWw6IHN0ZXAubGFiZWwsXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc3RlcHMuZmluZEluZGV4KChzKSA9PiBzID09PSBzdGVwKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudEluZGV4ICE9PSBpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UgJiYgdGhpcy5fb25DaGFuZ2Uoc3RlcC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0ZXBDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzOiB0aGlzLnN0ZXBzW3RoaXMuY3VycmVudEluZGV4XSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50OiBzdGVwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb25Ub3VjaGVkICYmIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwibmF2aWdhdGlvbi1idXR0b25cIlxuICAgIFtuZ0NsYXNzXT1cInsgJ25hdmlnYXRpb24tYnV0dG9uLS1kaXNhYmxlZCc6IGlzRGlzYWJsZWQgfVwiXG4+XG4gICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cIm9wdGlvbiBvcHRpb24tLXByZXZpb3VzXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnb3B0aW9uLS1kaXNhYmxlZCc6IGN1cnJlbnRJbmRleCA9PT0gMCB9XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uUHJldmlvdXMoKVwiXG4gICAgPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWxlZnRcIj48L2k+XG4gICAgPC9idXR0b24+XG5cbiAgICBAaWYgKHN0ZXBzW2N1cnJlbnRJbmRleF0udG9vbHRpcCB8fCB0b29sdGlwKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIFtzVG9vbHRpcF09XCJzdGVwc1tjdXJyZW50SW5kZXhdLnRvb2x0aXAgfHwgdG9vbHRpcFwiXG4gICAgICAgICAgICBjbGFzcz1cInN0ZXBcIlxuICAgICAgICAgICAgc1RpZXJlZE1lbnVcbiAgICAgICAgICAgIFtpdGVtc109XCJ0aWVyZWRNZW51SXRlbXNcIlxuICAgICAgICAgICAgW2ZvY3VzZWRJdGVtXT1cInRpZXJlZE1lbnVJdGVtc1tjdXJyZW50SW5kZXhdXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgc3RlcHNbY3VycmVudEluZGV4XS5sYWJlbCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInN0ZXBcIj5cbiAgICAgICAgICAgIHt7IHN0ZXBzW2N1cnJlbnRJbmRleF0ubGFiZWwgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgfVxuICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJvcHRpb24gb3B0aW9uLS1uZXh0XCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnb3B0aW9uLS1kaXNhYmxlZCc6IGN1cnJlbnRJbmRleCA9PT0gc3RlcHMubGVuZ3RoIC0gMSB9XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uTmV4dCgpXCJcbiAgICA+XG4gICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tcmlnaHRcIj48L2k+XG4gICAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL25hdmlnYXRpb24tYnV0dG9uL3NyYy9saWIvbmF2aWdhdGlvbi1idXR0b24vbmF2aWdhdGlvbi1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL25hdmlnYXRpb24tYnV0dG9uL3NyYy9saWIvbmF2aWdhdGlvbi1idXR0b24vbmF2aWdhdGlvbi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixVQUFVLEdBSWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQU16RTs7Ozs7Ozs7Ozs7OztHQWFHO0FBYUgsTUFBTSxPQUFPLHlCQUF5QjtJQTZCTDtJQTVCN0Isb0VBQW9FO0lBRTdELEtBQUssQ0FBMEI7SUFFdEMsK0VBQStFO0lBRXhFLFlBQVksQ0FBVTtJQUU3QixnRUFBZ0U7SUFFekQsT0FBTyxDQUFVO0lBRXhCLGdIQUFnSDtJQUV6RyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBRTVCLG1IQUFtSDtJQUU1RyxXQUFXLEdBQWtELElBQUksWUFBWSxFQUFFLENBQUM7SUFFaEYsWUFBWSxHQUFHLENBQUMsQ0FBQztJQUNqQixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ25CLGVBQWUsR0FBeUIsRUFBRSxDQUFDO0lBRTFDLFNBQVMsQ0FBNEI7SUFDckMsVUFBVSxDQUFjO0lBQ3hCLE1BQU0sQ0FBVTtJQUV4QixZQUE2QixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUFHLENBQUM7SUFFOUQs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QUFZLENBQUM7NEJBQ3ZDLE9BQU8sRUFBRSxJQUFJO3lCQUNoQixDQUFDLENBQUM7d0JBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7b0JBQzlCLENBQUM7b0JBRUQsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3pDLENBQUM7YUFDSixDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7d0dBcklRLHlCQUF5Qjs0RkFBekIseUJBQXlCLG1NQVJ2QjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUM7Z0JBQ3hELEtBQUssRUFBRSxJQUFJO2FBQ2Q7U0FDSiwwQkN4Q0wsc2lDQW1DQTs7NEZET2EseUJBQXlCO2tCQVpyQyxTQUFTOytCQUNJLHFCQUFxQixhQUdwQjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQzs0QkFDeEQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7c0ZBS00sS0FBSztzQkFEWCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFLbEIsWUFBWTtzQkFEbEIsS0FBSztnQkFLQyxPQUFPO3NCQURiLEtBQUs7Z0JBS0MsWUFBWTtzQkFEbEIsS0FBSztnQkFLQyxXQUFXO3NCQURqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIE9uSW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTmF2aWdhdGlvbkJ1dHRvbkl0ZW0gfSBmcm9tICcuL21vZGVscy9uYXZpZ2F0aW9uLWJ1dHRvbi1pdGVtJztcbmltcG9ydCB7IE5hdmlnYXRpb25CdXR0b25TdGVwQ2hhbmdlZEluZm8gfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBUaWVyZWRNZW51SXRlbURhdGEgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3RpZXJlZC1tZW51JztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29tcG9uZW50ZSBkZSBuYXZlZ2HDp8OjbyBwb3IgZXRhcGFzIHF1ZSBleGliZSBvIGVzdGFkbyBhdHVhbCAoc3RlcClcbiAqIGNvbSBzdXBvcnRlIGEgYXZhbsOnbywgcmV0cm9jZXNzbyBlIHNlbGXDp8OjbyBkaXJldGEgdmlhIGRyb3Bkb3duIChgVGllcmVkTWVudWApLlxuICogSW1wbGVtZW50YSBgQ29udHJvbFZhbHVlQWNjZXNzb3JgIHBhcmEgaW50ZWdyYcOnw6NvIGNvbSBmb3JtdWzDoXJpb3MgQW5ndWxhci5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHMtbmF2aWdhdGlvbi1idXR0b25cbiAqICAgW3N0ZXBzXT1cImV0YXBhc1wiXG4gKiAgIChzdGVwQ2hhbmdlZCk9XCJvbkV0YXBhTXVkb3UoJGV2ZW50KVwiIC8+XG4gKiBgYGBcbiAqXG4gKiBAY2F0ZWdvcnkgSW5wdXRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncy1uYXZpZ2F0aW9uLWJ1dHRvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRpb24tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9uYXZpZ2F0aW9uLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE5hdmlnYXRpb25CdXR0b25Db21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvbkJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBAZGVzY3JpcHRpb24gTGlzdGEgZGUgZXRhcGFzIGRlIG5hdmVnYcOnw6NvLiBDYW1wbyBvYnJpZ2F0w7NyaW8uICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBwdWJsaWMgc3RlcHMhOiBOYXZpZ2F0aW9uQnV0dG9uSXRlbVtdO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBWYWxvciBwYWRyw6NvIGEgc2VyIHNlbGVjaW9uYWRvIGFvIGluaWNpYWxpemFyIG8gY29tcG9uZW50ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkZWZhdWx0VmFsdWU6IHVua25vd247XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIFRleHRvIGV4aWJpZG8gbm8gdG9vbHRpcCBkbyBib3TDo28gcHJpbmNpcGFsLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRvb2x0aXA/OiBzdHJpbmc7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIGVtaXRlIGBzdGVwQ2hhbmdlZGAgZHVyYW50ZSBhIGluaWNpYWxpemHDp8OjbyBjb20gYSBldGFwYSBhdHVhbC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjaGFuZ2VPbkluaXQgPSBmYWxzZTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBxdWFuZG8gbyB1c3XDoXJpbyBuYXZlZ2EgcGFyYSB1bWEgbm92YSBldGFwYSwgY29tIGluZm9ybWHDp8O1ZXMgZGEgZXRhcGEgYW50ZXJpb3IgZSBhdHVhbC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgc3RlcENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxOYXZpZ2F0aW9uQnV0dG9uU3RlcENoYW5nZWRJbmZvPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBjdXJyZW50SW5kZXggPSAwO1xuICAgIHB1YmxpYyBpc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgcHVibGljIHRpZXJlZE1lbnVJdGVtczogVGllcmVkTWVudUl0ZW1EYXRhW10gPSBbXTtcblxuICAgIHByaXZhdGUgX29uQ2hhbmdlPzogKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkO1xuICAgIHByaXZhdGUgX29uVG91Y2hlZD86ICgpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSBfdmFsdWU6IHVua25vd247XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY3JlYXRlVGllcmVkTWVudUl0ZW1zKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuY2hhbmdlT25Jbml0KSB7XG4gICAgICAgICAgICB0aGlzLnN0ZXBDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgICAgICAgIHByZXZpb3VzOiBudWxsLFxuICAgICAgICAgICAgICAgIGN1cnJlbnQ6IHRoaXMuc3RlcHNbdGhpcy5jdXJyZW50SW5kZXhdLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXREZWZhdWx0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXREZWZhdWx0VmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLmRlZmF1bHRWYWx1ZTtcblxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnN0ZXBzLmZpbmRJbmRleCgoc3RlcCkgPT4gc3RlcC52YWx1ZSA9PT0gdGhpcy5fdmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSBpbmRleCAhPT0gLTEgPyBpbmRleCA6IDA7XG4gICAgICAgICAgICB0aGlzLnN0ZXBDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgICAgICAgIHByZXZpb3VzOiBudWxsLFxuICAgICAgICAgICAgICAgIGN1cnJlbnQ6IHRoaXMuc3RlcHNbdGhpcy5jdXJyZW50SW5kZXhdLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcblxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc3RlcHMuZmluZEluZGV4KChzdGVwKSA9PiBzdGVwLnZhbHVlID09PSB0aGlzLl92YWx1ZSk7XG4gICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gaW5kZXggIT09IC0xID8gaW5kZXggOiAwO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiAodmFsdWU6IHVua25vd24pID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UgPSBvbkNoYW5nZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uVG91Y2hlZCA9IG9uVG91Y2hlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk5leHQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWQpIHJldHVybjtcblxuICAgICAgICBjb25zdCBwcmV2aW91cyA9IHRoaXMuc3RlcHNbdGhpcy5jdXJyZW50SW5kZXhdO1xuXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRJbmRleCA8IHRoaXMuc3RlcHMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXgrKztcblxuICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMuc3RlcHNbdGhpcy5jdXJyZW50SW5kZXhdO1xuXG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZSAmJiB0aGlzLl9vbkNoYW5nZShjdXJyZW50LnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc3RlcENoYW5nZWQuZW1pdCh7IHByZXZpb3VzLCBjdXJyZW50IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkICYmIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblByZXZpb3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgcHJldmlvdXMgPSB0aGlzLnN0ZXBzW3RoaXMuY3VycmVudEluZGV4XTtcblxuICAgICAgICBpZiAodGhpcy5jdXJyZW50SW5kZXggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleC0tO1xuXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5zdGVwc1t0aGlzLmN1cnJlbnRJbmRleF07XG5cbiAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlICYmIHRoaXMuX29uQ2hhbmdlKGN1cnJlbnQudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5zdGVwQ2hhbmdlZC5lbWl0KHsgcHJldmlvdXMsIGN1cnJlbnQgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9vblRvdWNoZWQgJiYgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3JlYXRlVGllcmVkTWVudUl0ZW1zKCkge1xuICAgICAgICB0aGlzLnN0ZXBzLmZvckVhY2goKHN0ZXA6IE5hdmlnYXRpb25CdXR0b25JdGVtKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRpZXJlZE1lbnVJdGVtcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogc3RlcC5sYWJlbCxcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zdGVwcy5maW5kSW5kZXgoKHMpID0+IHMgPT09IHN0ZXApO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50SW5kZXggIT09IGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9vbkNoYW5nZSAmJiB0aGlzLl9vbkNoYW5nZShzdGVwLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RlcENoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXM6IHRoaXMuc3RlcHNbdGhpcy5jdXJyZW50SW5kZXhdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQ6IHN0ZXAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vblRvdWNoZWQgJiYgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbiIsIjxkaXZcbiAgICBjbGFzcz1cIm5hdmlnYXRpb24tYnV0dG9uXCJcbiAgICBbbmdDbGFzc109XCJ7ICduYXZpZ2F0aW9uLWJ1dHRvbi0tZGlzYWJsZWQnOiBpc0Rpc2FibGVkIH1cIlxuPlxuICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJvcHRpb24gb3B0aW9uLS1wcmV2aW91c1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ29wdGlvbi0tZGlzYWJsZWQnOiBjdXJyZW50SW5kZXggPT09IDAgfVwiXG4gICAgICAgIChjbGljayk9XCJvblByZXZpb3VzKClcIlxuICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi1sZWZ0XCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgQGlmIChzdGVwc1tjdXJyZW50SW5kZXhdLnRvb2x0aXAgfHwgdG9vbHRpcCkge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBbc1Rvb2x0aXBdPVwic3RlcHNbY3VycmVudEluZGV4XS50b29sdGlwIHx8IHRvb2x0aXBcIlxuICAgICAgICAgICAgY2xhc3M9XCJzdGVwXCJcbiAgICAgICAgICAgIHNUaWVyZWRNZW51XG4gICAgICAgICAgICBbaXRlbXNdPVwidGllcmVkTWVudUl0ZW1zXCJcbiAgICAgICAgICAgIFtmb2N1c2VkSXRlbV09XCJ0aWVyZWRNZW51SXRlbXNbY3VycmVudEluZGV4XVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHN0ZXBzW2N1cnJlbnRJbmRleF0ubGFiZWwgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJzdGVwXCI+XG4gICAgICAgICAgICB7eyBzdGVwc1tjdXJyZW50SW5kZXhdLmxhYmVsIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwib3B0aW9uIG9wdGlvbi0tbmV4dFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ29wdGlvbi0tZGlzYWJsZWQnOiBjdXJyZW50SW5kZXggPT09IHN0ZXBzLmxlbmd0aCAtIDEgfVwiXG4gICAgICAgIChjbGljayk9XCJvbk5leHQoKVwiXG4gICAgPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLXJpZ2h0XCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -13,19 +13,37 @@ export var NumberAlignmentOption;
|
|
|
13
13
|
NumberAlignmentOption["LEFT"] = "left";
|
|
14
14
|
})(NumberAlignmentOption || (NumberAlignmentOption = {}));
|
|
15
15
|
/**
|
|
16
|
-
* @deprecated
|
|
16
|
+
* @deprecated Use a diretiva `BigNumberInput` em vez desta.
|
|
17
|
+
* @description Diretiva de entrada numérica com formatação localizada (separador decimal
|
|
18
|
+
* e de milhar), suporte a precisão, escala e alinhamento. Extende `CurrencyMaskDirective`.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```html
|
|
22
|
+
* <input sNumberInput [precision]="10" [scale]="2" />
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @category Inputs
|
|
17
26
|
*/
|
|
18
27
|
export class NumberInputDirective extends CurrencyMaskDirective {
|
|
19
28
|
_elementRef;
|
|
20
29
|
localeService;
|
|
30
|
+
/** @description Número total de dígitos (inteiros + decimais). @default 15 */
|
|
21
31
|
precision = 15;
|
|
32
|
+
/** @description Número de casas decimais. @default 0 */
|
|
22
33
|
scale = 0;
|
|
34
|
+
/** @description Separador decimal personalizado. Usa o do locale ativo se não informado. */
|
|
23
35
|
decimalSeparator;
|
|
36
|
+
/** @description Separador de milhar personalizado. Usa o do locale ativo se não informado. */
|
|
24
37
|
thousandsSeparator;
|
|
38
|
+
/** @description Alinhamento do texto no campo. @default NumberAlignmentOption.LEFT */
|
|
25
39
|
alignTo = NumberAlignmentOption.LEFT;
|
|
40
|
+
/** @description Habilita a entrada de valores negativos. @default true */
|
|
26
41
|
allowNegative = true;
|
|
42
|
+
/** @description Placeholder exibido quando o campo está vazio. */
|
|
27
43
|
placeholder;
|
|
44
|
+
/** @description Comprimento máximo do valor permitido. */
|
|
28
45
|
maxLength;
|
|
46
|
+
/** @description Emitido quando o conteúdo colado pelo usuário é rejeitado por ser inválido. */
|
|
29
47
|
pasteRejected = new EventEmitter();
|
|
30
48
|
pasteListener;
|
|
31
49
|
_maxLength = 0;
|
|
@@ -40,9 +58,9 @@ export class NumberInputDirective extends CurrencyMaskDirective {
|
|
|
40
58
|
this.updateVariables();
|
|
41
59
|
super.ngOnInit();
|
|
42
60
|
this.pasteListener = this._onPaste.bind(this);
|
|
43
|
-
this._elementRef.nativeElement.addEventListener(
|
|
61
|
+
this._elementRef.nativeElement.addEventListener('paste', this.pasteListener);
|
|
44
62
|
this.keypressListener = this._onKeypress.bind(this);
|
|
45
|
-
this._elementRef.nativeElement.addEventListener(
|
|
63
|
+
this._elementRef.nativeElement.addEventListener('keypress', this.keypressListener);
|
|
46
64
|
}
|
|
47
65
|
ngOnChanges(changes) {
|
|
48
66
|
const placeholderChange = changes['placeholder'] && changes['placeholder'].currentValue;
|
|
@@ -58,14 +76,16 @@ export class NumberInputDirective extends CurrencyMaskDirective {
|
|
|
58
76
|
}
|
|
59
77
|
}
|
|
60
78
|
ngOnDestroy() {
|
|
61
|
-
this._elementRef.nativeElement.removeEventListener(
|
|
62
|
-
this._elementRef.nativeElement.removeEventListener(
|
|
79
|
+
this._elementRef.nativeElement.removeEventListener('paste', this.pasteListener);
|
|
80
|
+
this._elementRef.nativeElement.removeEventListener('keypress', this.keypressListener);
|
|
63
81
|
}
|
|
64
82
|
_onPaste(event) {
|
|
65
|
-
const pastedText = event.clipboardData?.getData(
|
|
66
|
-
const numericText = pastedText
|
|
67
|
-
|
|
68
|
-
|
|
83
|
+
const pastedText = event.clipboardData?.getData('text') ?? '';
|
|
84
|
+
const numericText = pastedText
|
|
85
|
+
.replace(new RegExp(`\\${this.thousandsSeparator}`, 'g'), '')
|
|
86
|
+
.replace(this.decimalSeparator, '.');
|
|
87
|
+
const [intPart, decimalPart = ''] = numericText.split('.');
|
|
88
|
+
const totalDigits = intPart.replace(/\D/g, '').length + decimalPart.slice(0, this.scale).length;
|
|
69
89
|
if (totalDigits > this.precision) {
|
|
70
90
|
event.preventDefault();
|
|
71
91
|
event.stopPropagation();
|
|
@@ -74,12 +94,12 @@ export class NumberInputDirective extends CurrencyMaskDirective {
|
|
|
74
94
|
}
|
|
75
95
|
_onKeypress(event) {
|
|
76
96
|
const code = event.code;
|
|
77
|
-
if (code ===
|
|
97
|
+
if (code === 'Minus' || code === 'NumpadSubtract') {
|
|
78
98
|
if (this.allowNegative) {
|
|
79
99
|
this.maxLength = this._maxLength + 1;
|
|
80
100
|
}
|
|
81
101
|
}
|
|
82
|
-
else if (code ===
|
|
102
|
+
else if (code === 'Equal' || code === 'NumpadAdd') {
|
|
83
103
|
this.maxLength = this._maxLength;
|
|
84
104
|
}
|
|
85
105
|
}
|
|
@@ -161,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
161
181
|
}], pasteRejected: [{
|
|
162
182
|
type: Output
|
|
163
183
|
}] } });
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9udW1iZXItaW5wdXQvc3JjL2xpYi9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUVYLEtBQUssRUFLTCxNQUFNLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFzQixNQUFNLG1CQUFtQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRXZDOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVkscUJBR1g7QUFIRCxXQUFZLHFCQUFxQjtJQUM3Qix3Q0FBZSxDQUFBO0lBQ2Ysc0NBQWEsQ0FBQTtBQUNqQixDQUFDLEVBSFcscUJBQXFCLEtBQXJCLHFCQUFxQixRQUdoQztBQUVEOztHQUVHO0FBV0gsTUFBTSxPQUFPLG9CQUFxQixTQUFRLHFCQUFxQjtJQW9DdEM7SUFFQTtJQXBDZCxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBR2YsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUdWLGdCQUFnQixDQUFVO0lBRzFCLGtCQUFrQixDQUFVO0lBRzVCLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7SUFHckMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUlyQixXQUFXLENBQVU7SUFHckIsU0FBUyxDQUFVO0lBR25CLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRTFDLGFBQWEsQ0FBTTtJQUNuQixVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBRWYsZ0JBQWdCLENBQU07SUFHOUIs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RUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7aUJBQ0o7eUlBR1UsU0FBUztzQkFEZixLQUFLO2dCQUlDLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxhQUFhO3NCQURuQixLQUFLO2dCQUtDLFdBQVc7c0JBRmpCLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUl4QixTQUFTO3NCQURmLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUl0QixhQUFhO3NCQURuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgS2V5VmFsdWVEaWZmZXJzLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTG9jYWxlU2VydmljZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvbG9jYWxlJztcblxuaW1wb3J0IHsgQ3VycmVuY3lNYXNrRGlyZWN0aXZlLCBDdXJyZW5jeU1hc2tDb25maWcgfSBmcm9tICduZzItY3VycmVuY3ktbWFzayc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBTaG91bGQgdXNlICdBbGlnbm1lbnRPcHRpb25zJyBmcm9tIEBzZW5pb3JzaXN0ZW1hcy9uZzItY3VycmVuY3ktbWFzayBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBlbnVtIE51bWJlckFsaWdubWVudE9wdGlvbiB7XG4gICAgUklHSFQgPSAncmlnaHQnLFxuICAgIExFRlQgPSAnbGVmdCcsXG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgU2hvdWxkIHVzZSBCaWdOdW1iZXJJbnB1dCBkaXJlY3RpdmUgaW5zdGVhZFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2lucHV0W3NOdW1iZXJJbnB1dF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE51bWJlcklucHV0RGlyZWN0aXZlKSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlcklucHV0RGlyZWN0aXZlIGV4dGVuZHMgQ3VycmVuY3lNYXNrRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcHJlY2lzaW9uID0gMTU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzY2FsZSA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkZWNpbWFsU2VwYXJhdG9yPzogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGhvdXNhbmRzU2VwYXJhdG9yPzogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWxpZ25UbyA9IE51bWJlckFsaWdubWVudE9wdGlvbi5MRUZUO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWxsb3dOZWdhdGl2ZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5wbGFjZWhvbGRlcicpXG4gICAgcHVibGljIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLm1heExlbmd0aCcpXG4gICAgcHVibGljIG1heExlbmd0aD86IG51bWJlcjtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBwYXN0ZVJlamVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBwcml2YXRlIHBhc3RlTGlzdGVuZXI6IGFueTtcbiAgICBwcml2YXRlIF9tYXhMZW5ndGggPSAwO1xuXG4gICAgcHJpdmF0ZSBrZXlwcmVzc0xpc3RlbmVyOiBhbnk7XG5cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBfa2V5VmFsdWVEaWZmZXJzOiBLZXlWYWx1ZURpZmZlcnMsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxlU2VydmljZTogTG9jYWxlU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoe30gYXMgQ3VycmVuY3lNYXNrQ29uZmlnLCBfZWxlbWVudFJlZiwgX2tleVZhbHVlRGlmZmVycyk7XG5cbiAgICAgICAgdGhpcy5vbkxvY2FsZVNlcnZpY2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFyaWFibGVzKCk7XG5cbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5wYXN0ZUxpc3RlbmVyID0gdGhpcy5fb25QYXN0ZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInBhc3RlXCIsIHRoaXMucGFzdGVMaXN0ZW5lcik7XG5cbiAgICAgICAgdGhpcy5rZXlwcmVzc0xpc3RlbmVyID0gdGhpcy5fb25LZXlwcmVzcy5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleXByZXNzXCIsIHRoaXMua2V5cHJlc3NMaXN0ZW5lcik7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJDaGFuZ2UgPSBjaGFuZ2VzWydwbGFjZWhvbGRlciddICYmIGNoYW5nZXNbJ3BsYWNlaG9sZGVyJ10uY3VycmVudFZhbHVlO1xuICAgICAgICBpZiAoIXBsYWNlaG9sZGVyQ2hhbmdlICYmIHRoaXMuc2NhbGUpXG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gYDAke3RoaXMuZGVjaW1hbFNlcGFyYXRvcn0keycnLnBhZEVuZCh0aGlzLnNjYWxlLCAnMCcpfWA7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgY2hhbmdlc1snc2NhbGUnXSB8fFxuICAgICAgICAgICAgY2hhbmdlc1snZGVjaW1hbFNlcGFyYXRvciddIHx8XG4gICAgICAgICAgICBjaGFuZ2VzWyd0aG91c2FuZHNTZXBhcmF0b3InXSB8fFxuICAgICAgICAgICAgY2hhbmdlc1snYWxpZ25UbyddIHx8XG4gICAgICAgICAgICBjaGFuZ2VzWydwcmVjaXNpb24nXSB8fFxuICAgICAgICAgICAgY2hhbmdlc1snYWxsb3dOZWdhdGl2ZSddXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYXJpYWJsZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBhc3RlXCIsIHRoaXMucGFzdGVMaXN0ZW5lcik7XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5cHJlc3NcIiwgdGhpcy5rZXlwcmVzc0xpc3RlbmVyKTtcblxuICAgIH1cblxuICAgIHByaXZhdGUgX29uUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBhc3RlZFRleHQgPSBldmVudC5jbGlwYm9hcmREYXRhPy5nZXREYXRhKFwidGV4dFwiKSA/PyBcIlwiO1xuICAgICAgICBjb25zdCBudW1lcmljVGV4dCA9IHBhc3RlZFRleHQucmVwbGFjZShuZXcgUmVnRXhwKGBcXFxcJHt0aGlzLnRob3VzYW5kc1NlcGFyYXRvcn1gLCBcImdcIiksIFwiXCIpLnJlcGxhY2UodGhpcy5kZWNpbWFsU2VwYXJhdG9yIGFzIHN0cmluZywgXCIuXCIpO1xuICAgICAgICBjb25zdCBbaW50UGFydCwgZGVjaW1hbFBhcnQgPSBcIlwiXSA9IG51bWVyaWNUZXh0LnNwbGl0KFwiLlwiKTtcbiAgICAgICAgY29uc3QgdG90YWxEaWdpdHMgPSBpbnRQYXJ0LnJlcGxhY2UoL1xcRC9nLCBcIlwiKS5sZW5ndGggKyBkZWNpbWFsUGFydC5zbGljZSgwLCB0aGlzLnNjYWxlKS5sZW5ndGg7XG5cbiAgICAgICAgaWYgKHRvdGFsRGlnaXRzID4gdGhpcy5wcmVjaXNpb24pIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMucGFzdGVSZWplY3RlZC5lbWl0KHBhc3RlZFRleHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfb25LZXlwcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb2RlID0gZXZlbnQuY29kZTtcblxuICAgICAgICBpZiAoY29kZSA9PT0gXCJNaW51c1wiIHx8IGNvZGUgPT09IFwiTnVtcGFkU3VidHJhY3RcIikge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWxsb3dOZWdhdGl2ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMubWF4TGVuZ3RoID0gdGhpcy5fbWF4TGVuZ3RoICsgMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChjb2RlID09PSBcIkVxdWFsXCIgfHwgY29kZSA9PT0gXCJOdW1wYWRBZGRcIikge1xuICAgICAgICAgICAgdGhpcy5tYXhMZW5ndGggPSB0aGlzLl9tYXhMZW5ndGg7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSB0aGUgb3B0aW9ucyB2YWx1ZXMgYWNjb3JkaW5nIHRvIHRoZSBkaXJlY3RpdmUgaW5wdXQgdmFsdWVzLlxuICAgICAqL1xuICAgIHByaXZhdGUgdXBkYXRlVmFyaWFibGVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAgICAgICBhbGlnbjogdGhpcy5hbGlnblRvLFxuICAgICAgICAgICAgZGVjaW1hbDogdGhpcy5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgdGhvdXNhbmRzOiB0aGlzLnRob3VzYW5kc1NlcGFyYXRvcixcbiAgICAgICAgICAgIHByZWNpc2lvbjogdGhpcy5zY2FsZSB8fCAwLFxuICAgICAgICAgICAgcHJlZml4OiAnJyxcbiAgICAgICAgICAgIHN1ZmZpeDogJycsXG4gICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiB0aGlzLmFsbG93TmVnYXRpdmUsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlTWF4TGVuZ3RoKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVzcG9uc2libGUgdG8gY2FsY3VsYXRlIHRoZSBmaWVsZCBtYXhpbXVtIGxlbmd0aCBjb25zaWRlcmluZyB0aGUgc2VwYXJhdG9ycy5cbiAgICAgKi9cbiAgICBwcml2YXRlIGNhbGN1bGF0ZU1heExlbmd0aCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGVjU2VwTGVuZ3RoID0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yPy5sZW5ndGggPz8gMDtcbiAgICAgICAgY29uc3QgdGhvU2VwTGVuZ3RoID0gdGhpcy50aG91c2FuZHNTZXBhcmF0b3I/Lmxlbmd0aCA/PyAwO1xuXG4gICAgICAgIGxldCBtYXhMZW5ndGggPSB0aGlzLnByZWNpc2lvbiArICh0aGlzLnNjYWxlID8gZGVjU2VwTGVuZ3RoIDogMCk7XG4gICAgICAgIG1heExlbmd0aCArPSBNYXRoLmNlaWwoKHRoaXMucHJlY2lzaW9uIC0gKHRoaXMuc2NhbGUgPyB0aGlzLnNjYWxlIDogMCkpIC8gMyAtIDEpICogdGhvU2VwTGVuZ3RoO1xuXG4gICAgICAgIHRoaXMubWF4TGVuZ3RoID0gbWF4TGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Mb2NhbGVTZXJ2aWNlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvY2FsZVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRMb2NhbGUoKVxuICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVjaW1hbFNlcGFyYXRvciA9IHRoaXMuZGVjaW1hbFNlcGFyYXRvciA/PyB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0RGVjaW1hbFNlcGFyYXRvcigpO1xuICAgICAgICAgICAgICAgIHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yID0gdGhpcy50aG91c2FuZHNTZXBhcmF0b3IgPz8gdGhpcy5sb2NhbGVTZXJ2aWNlLmdldEdyb3VwaW5nU2VwYXJhdG9yKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9udW1iZXItaW5wdXQvc3JjL2xpYi9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUVYLEtBQUssRUFLTCxNQUFNLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFzQixNQUFNLG1CQUFtQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRXZDOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVkscUJBR1g7QUFIRCxXQUFZLHFCQUFxQjtJQUM3Qix3Q0FBZSxDQUFBO0lBQ2Ysc0NBQWEsQ0FBQTtBQUNqQixDQUFDLEVBSFcscUJBQXFCLEtBQXJCLHFCQUFxQixRQUdoQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBV0gsTUFBTSxPQUFPLG9CQUFxQixTQUFRLHFCQUFxQjtJQTRDdEM7SUFFQTtJQTdDckIsOEVBQThFO0lBRXZFLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFFdEIsd0RBQXdEO0lBRWpELEtBQUssR0FBRyxDQUFDLENBQUM7SUFFakIsNEZBQTRGO0lBRXJGLGdCQUFnQixDQUFVO0lBRWpDLDhGQUE4RjtJQUV2RixrQkFBa0IsQ0FBVTtJQUVuQyxzRkFBc0Y7SUFFL0UsT0FBTyxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQztJQUU1QywwRUFBMEU7SUFFbkUsYUFBYSxHQUFHLElBQUksQ0FBQztJQUU1QixrRUFBa0U7SUFHM0QsV0FBVyxDQUFVO0lBRTVCLDBEQUEwRDtJ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Q0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDbkQsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUNKOzs0RkFFUSxvQkFBb0I7a0JBVmhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjtpQkFDSjt5SUFJVSxTQUFTO3NCQURmLEtBQUs7Z0JBS0MsS0FBSztzQkFEWCxLQUFLO2dCQUtDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFLQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBS0MsT0FBTztzQkFEYixLQUFLO2dCQUtDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBTUMsV0FBVztzQkFGakIsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBS3hCLFNBQVM7c0JBRGYsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBS3RCLGFBQWE7c0JBRG5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBLZXlWYWx1ZURpZmZlcnMsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMb2NhbGVTZXJ2aWNlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9sb2NhbGUnO1xuXG5pbXBvcnQgeyBDdXJyZW5jeU1hc2tEaXJlY3RpdmUsIEN1cnJlbmN5TWFza0NvbmZpZyB9IGZyb20gJ25nMi1jdXJyZW5jeS1tYXNrJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFNob3VsZCB1c2UgJ0FsaWdubWVudE9wdGlvbnMnIGZyb20gQHNlbmlvcnNpc3RlbWFzL25nMi1jdXJyZW5jeS1tYXNrIGluc3RlYWRcbiAqL1xuZXhwb3J0IGVudW0gTnVtYmVyQWxpZ25tZW50T3B0aW9uIHtcbiAgICBSSUdIVCA9ICdyaWdodCcsXG4gICAgTEVGVCA9ICdsZWZ0Jyxcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYSBkaXJldGl2YSBgQmlnTnVtYmVySW5wdXRgIGVtIHZleiBkZXN0YS5cbiAqIEBkZXNjcmlwdGlvbiBEaXJldGl2YSBkZSBlbnRyYWRhIG51bcOpcmljYSBjb20gZm9ybWF0YcOnw6NvIGxvY2FsaXphZGEgKHNlcGFyYWRvciBkZWNpbWFsXG4gKiBlIGRlIG1pbGhhciksIHN1cG9ydGUgYSBwcmVjaXPDo28sIGVzY2FsYSBlIGFsaW5oYW1lbnRvLiBFeHRlbmRlIGBDdXJyZW5jeU1hc2tEaXJlY3RpdmVgLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8aW5wdXQgc051bWJlcklucHV0IFtwcmVjaXNpb25dPVwiMTBcIiBbc2NhbGVdPVwiMlwiIC8+XG4gKiBgYGBcbiAqXG4gKiBAY2F0ZWdvcnkgSW5wdXRzXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnaW5wdXRbc051bWJlcklucHV0XScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTnVtYmVySW5wdXREaXJlY3RpdmUpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnVtYmVySW5wdXREaXJlY3RpdmUgZXh0ZW5kcyBDdXJyZW5jeU1hc2tEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE7Dum1lcm8gdG90YWwgZGUgZMOtZ2l0b3MgKGludGVpcm9zICsgZGVjaW1haXMpLiBAZGVmYXVsdCAxNSAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHByZWNpc2lvbiA9IDE1O1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBOw7ptZXJvIGRlIGNhc2FzIGRlY2ltYWlzLiBAZGVmYXVsdCAwICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2NhbGUgPSAwO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBTZXBhcmFkb3IgZGVjaW1hbCBwZXJzb25hbGl6YWRvLiBVc2EgbyBkbyBsb2NhbGUgYXRpdm8gc2UgbsOjbyBpbmZvcm1hZG8uICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGVjaW1hbFNlcGFyYXRvcj86IHN0cmluZztcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gU2VwYXJhZG9yIGRlIG1pbGhhciBwZXJzb25hbGl6YWRvLiBVc2EgbyBkbyBsb2NhbGUgYXRpdm8gc2UgbsOjbyBpbmZvcm1hZG8uICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGhvdXNhbmRzU2VwYXJhdG9yPzogc3RyaW5nO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBbGluaGFtZW50byBkbyB0ZXh0byBubyBjYW1wby4gQGRlZmF1bHQgTnVtYmVyQWxpZ25tZW50T3B0aW9uLkxFRlQgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhbGlnblRvID0gTnVtYmVyQWxpZ25tZW50T3B0aW9uLkxFRlQ7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEhhYmlsaXRhIGEgZW50cmFkYSBkZSB2YWxvcmVzIG5lZ2F0aXZvcy4gQGRlZmF1bHQgdHJ1ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFsbG93TmVnYXRpdmUgPSB0cnVlO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQbGFjZWhvbGRlciBleGliaWRvIHF1YW5kbyBvIGNhbXBvIGVzdMOhIHZhemlvLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnBsYWNlaG9sZGVyJylcbiAgICBwdWJsaWMgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIENvbXByaW1lbnRvIG3DoXhpbW8gZG8gdmFsb3IgcGVybWl0aWRvLiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5tYXhMZW5ndGgnKVxuICAgIHB1YmxpYyBtYXhMZW5ndGg/OiBudW1iZXI7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIG8gY29udGXDumRvIGNvbGFkbyBwZWxvIHVzdcOhcmlvIMOpIHJlamVpdGFkbyBwb3Igc2VyIGludsOhbGlkby4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcGFzdGVSZWplY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgcHJpdmF0ZSBwYXN0ZUxpc3RlbmVyOiBhbnk7XG4gICAgcHJpdmF0ZSBfbWF4TGVuZ3RoID0gMDtcblxuICAgIHByaXZhdGUga2V5cHJlc3NMaXN0ZW5lcjogYW55O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIF9rZXlWYWx1ZURpZmZlcnM6IEtleVZhbHVlRGlmZmVycyxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBsb2NhbGVTZXJ2aWNlOiBMb2NhbGVTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICBzdXBlcih7fSBhcyBDdXJyZW5jeU1hc2tDb25maWcsIF9lbGVtZW50UmVmLCBfa2V5VmFsdWVEaWZmZXJzKTtcblxuICAgICAgICB0aGlzLm9uTG9jYWxlU2VydmljZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYXJpYWJsZXMoKTtcblxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnBhc3RlTGlzdGVuZXIgPSB0aGlzLl9vblBhc3RlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdwYXN0ZScsIHRoaXMucGFzdGVMaXN0ZW5lcik7XG5cbiAgICAgICAgdGhpcy5rZXlwcmVzc0xpc3RlbmVyID0gdGhpcy5fb25LZXlwcmVzcy5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5cHJlc3MnLCB0aGlzLmtleXByZXNzTGlzdGVuZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyQ2hhbmdlID0gY2hhbmdlc1sncGxhY2Vob2xkZXInXSAmJiBjaGFuZ2VzWydwbGFjZWhvbGRlciddLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgaWYgKCFwbGFjZWhvbGRlckNoYW5nZSAmJiB0aGlzLnNjYWxlKVxuICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGAwJHt0aGlzLmRlY2ltYWxTZXBhcmF0b3J9JHsnJy5wYWRFbmQodGhpcy5zY2FsZSwgJzAnKX1gO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNoYW5nZXNbJ3NjYWxlJ10gfHxcbiAgICAgICAgICAgIGNoYW5nZXNbJ2RlY2ltYWxTZXBhcmF0b3InXSB8fFxuICAgICAgICAgICAgY2hhbmdlc1sndGhvdXNhbmRzU2VwYXJhdG9yJ10gfHxcbiAgICAgICAgICAgIGNoYW5nZXNbJ2FsaWduVG8nXSB8fFxuICAgICAgICAgICAgY2hhbmdlc1sncHJlY2lzaW9uJ10gfHxcbiAgICAgICAgICAgIGNoYW5nZXNbJ2FsbG93TmVnYXRpdmUnXVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFyaWFibGVzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwYXN0ZScsIHRoaXMucGFzdGVMaXN0ZW5lcik7XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlwcmVzcycsIHRoaXMua2V5cHJlc3NMaXN0ZW5lcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfb25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFzdGVkVGV4dCA9IGV2ZW50LmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQnKSA/PyAnJztcbiAgICAgICAgY29uc3QgbnVtZXJpY1RleHQgPSBwYXN0ZWRUZXh0XG4gICAgICAgICAgICAucmVwbGFjZShuZXcgUmVnRXhwKGBcXFxcJHt0aGlzLnRob3VzYW5kc1NlcGFyYXRvcn1gLCAnZycpLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKHRoaXMuZGVjaW1hbFNlcGFyYXRvciBhcyBzdHJpbmcsICcuJyk7XG4gICAgICAgIGNvbnN0IFtpbnRQYXJ0LCBkZWNpbWFsUGFydCA9ICcnXSA9IG51bWVyaWNUZXh0LnNwbGl0KCcuJyk7XG4gICAgICAgIGNvbnN0IHRvdGFsRGlnaXRzID0gaW50UGFydC5yZXBsYWNlKC9cXEQvZywgJycpLmxlbmd0aCArIGRlY2ltYWxQYXJ0LnNsaWNlKDAsIHRoaXMuc2NhbGUpLmxlbmd0aDtcblxuICAgICAgICBpZiAodG90YWxEaWdpdHMgPiB0aGlzLnByZWNpc2lvbikge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5wYXN0ZVJlamVjdGVkLmVtaXQocGFzdGVkVGV4dCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9vbktleXByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvZGUgPSBldmVudC5jb2RlO1xuXG4gICAgICAgIGlmIChjb2RlID09PSAnTWludXMnIHx8IGNvZGUgPT09ICdOdW1wYWRTdWJ0cmFjdCcpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFsbG93TmVnYXRpdmUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1heExlbmd0aCA9IHRoaXMuX21heExlbmd0aCArIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gJ0VxdWFsJyB8fCBjb2RlID09PSAnTnVtcGFkQWRkJykge1xuICAgICAgICAgICAgdGhpcy5tYXhMZW5ndGggPSB0aGlzLl9tYXhMZW5ndGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgdGhlIG9wdGlvbnMgdmFsdWVzIGFjY29yZGluZyB0byB0aGUgZGlyZWN0aXZlIGlucHV0IHZhbHVlcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHVwZGF0ZVZhcmlhYmxlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgICAgICAgYWxpZ246IHRoaXMuYWxpZ25UbyxcbiAgICAgICAgICAgIGRlY2ltYWw6IHRoaXMuZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgIHRob3VzYW5kczogdGhpcy50aG91c2FuZHNTZXBhcmF0b3IsXG4gICAgICAgICAgICBwcmVjaXNpb246IHRoaXMuc2NhbGUgfHwgMCxcbiAgICAgICAgICAgIHByZWZpeDogJycsXG4gICAgICAgICAgICBzdWZmaXg6ICcnLFxuICAgICAgICAgICAgYWxsb3dOZWdhdGl2ZTogdGhpcy5hbGxvd05lZ2F0aXZlLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZU1heExlbmd0aCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc3BvbnNpYmxlIHRvIGNhbGN1bGF0ZSB0aGUgZmllbGQgbWF4aW11bSBsZW5ndGggY29uc2lkZXJpbmcgdGhlIHNlcGFyYXRvcnMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVNYXhMZW5ndGgoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRlY1NlcExlbmd0aCA9IHRoaXMuZGVjaW1hbFNlcGFyYXRvcj8ubGVuZ3RoID8/IDA7XG4gICAgICAgIGNvbnN0IHRob1NlcExlbmd0aCA9IHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yPy5sZW5ndGggPz8gMDtcblxuICAgICAgICBsZXQgbWF4TGVuZ3RoID0gdGhpcy5wcmVjaXNpb24gKyAodGhpcy5zY2FsZSA/IGRlY1NlcExlbmd0aCA6IDApO1xuICAgICAgICBtYXhMZW5ndGggKz0gTWF0aC5jZWlsKCh0aGlzLnByZWNpc2lvbiAtICh0aGlzLnNjYWxlID8gdGhpcy5zY2FsZSA6IDApKSAvIDMgLSAxKSAqIHRob1NlcExlbmd0aDtcblxuICAgICAgICB0aGlzLm1heExlbmd0aCA9IG1heExlbmd0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTG9jYWxlU2VydmljZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2NhbGVTZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0TG9jYWxlKClcbiAgICAgICAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgPSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgPz8gdGhpcy5sb2NhbGVTZXJ2aWNlLmdldERlY2ltYWxTZXBhcmF0b3IoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnRob3VzYW5kc1NlcGFyYXRvciA9IHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yID8/IHRoaXMubG9jYWxlU2VydmljZS5nZXRHcm91cGluZ1NlcGFyYXRvcigpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuXG4iXX0=
|
|
@@ -4,6 +4,21 @@ import { map } from 'rxjs/operators';
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "./numeric.service";
|
|
6
6
|
import * as i2 from "@seniorsistemas/angular-components/locale";
|
|
7
|
+
/**
|
|
8
|
+
* @description Angular pipe for formatting numeric values according to the active locale.
|
|
9
|
+
* Wraps `NumericService.instant()` and reactively responds to locale changes via `LocaleService`.
|
|
10
|
+
* Accepts an optional `locale` override and `Intl.NumberFormatOptions` for fine-grained control.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```html
|
|
14
|
+
* <!-- Basic usage -->
|
|
15
|
+
* {{ 1234.56 | numeric | async }}
|
|
16
|
+
*
|
|
17
|
+
* <!-- With locale override and fraction digits -->
|
|
18
|
+
* {{ 1234.56 | numeric:{ locale: 'en-US', numberFormatOptions: { minimumFractionDigits: 2 } } | async }}
|
|
19
|
+
* ```
|
|
20
|
+
* @category Numeric
|
|
21
|
+
*/
|
|
7
22
|
export class NumericPipe {
|
|
8
23
|
numericService;
|
|
9
24
|
localeService;
|
|
@@ -26,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
26
41
|
type: Pipe,
|
|
27
42
|
args: [{ name: 'numeric' }]
|
|
28
43
|
}], ctorParameters: () => [{ type: i1.NumericService }, { type: i2.LocaleService }] });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL251bWVyaWMvc3JjL2xpYi9udW1lcmljLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFHcEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFHckM7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxNQUFNLE9BQU8sV0FBVztJQUVDO0lBQ0E7SUFGckIsWUFDcUIsY0FBOEIsRUFDOUIsYUFBNEI7UUFENUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQzlDLENBQUM7SUFFSixTQUFTLENBQ0wsS0FBa0MsRUFDbEMsT0FHQztRQUVELE9BQU8sT0FBTyxFQUFFLE1BQU07WUFDbEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDakQsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUMvQixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNYLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtnQkFDL0IsTUFBTTtnQkFDTixtQkFBbUIsRUFBRSxPQUFPLEVBQUUsbUJBQW1CO2FBQ3BELENBQUMsQ0FDTCxDQUNKLENBQUM7SUFDWixDQUFDO3dHQXZCUSxXQUFXO3NHQUFYLFdBQVc7OzRGQUFYLFdBQVc7a0JBRHZCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9jYWxlU2VydmljZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvbG9jYWxlJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBOdW1lcmljU2VydmljZSB9IGZyb20gJy4vbnVtZXJpYy5zZXJ2aWNlJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQW5ndWxhciBwaXBlIGZvciBmb3JtYXR0aW5nIG51bWVyaWMgdmFsdWVzIGFjY29yZGluZyB0byB0aGUgYWN0aXZlIGxvY2FsZS5cbiAqIFdyYXBzIGBOdW1lcmljU2VydmljZS5pbnN0YW50KClgIGFuZCByZWFjdGl2ZWx5IHJlc3BvbmRzIHRvIGxvY2FsZSBjaGFuZ2VzIHZpYSBgTG9jYWxlU2VydmljZWAuXG4gKiBBY2NlcHRzIGFuIG9wdGlvbmFsIGBsb2NhbGVgIG92ZXJyaWRlIGFuZCBgSW50bC5OdW1iZXJGb3JtYXRPcHRpb25zYCBmb3IgZmluZS1ncmFpbmVkIGNvbnRyb2wuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDwhLS0gQmFzaWMgdXNhZ2UgLS0+XG4gKiB7eyAxMjM0LjU2IHwgbnVtZXJpYyB8IGFzeW5jIH19XG4gKlxuICogPCEtLSBXaXRoIGxvY2FsZSBvdmVycmlkZSBhbmQgZnJhY3Rpb24gZGlnaXRzIC0tPlxuICoge3sgMTIzNC41NiB8IG51bWVyaWM6eyBsb2NhbGU6ICdlbi1VUycsIG51bWJlckZvcm1hdE9wdGlvbnM6IHsgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAyIH0gfSB8IGFzeW5jIH19XG4gKiBgYGBcbiAqIEBjYXRlZ29yeSBOdW1lcmljXG4gKi9cbkBQaXBlKHsgbmFtZTogJ251bWVyaWMnIH0pXG5leHBvcnQgY2xhc3MgTnVtZXJpY1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBudW1lcmljU2VydmljZTogTnVtZXJpY1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxlU2VydmljZTogTG9jYWxlU2VydmljZSxcbiAgICApIHt9XG5cbiAgICB0cmFuc2Zvcm0oXG4gICAgICAgIHZhbHVlOiBudW1iZXIgfCBzdHJpbmcgfCBCaWdOdW1iZXIsXG4gICAgICAgIG9wdGlvbnM/OiB7XG4gICAgICAgICAgICBsb2NhbGU/OiBzdHJpbmc7XG4gICAgICAgICAgICBudW1iZXJGb3JtYXRPcHRpb25zPzogSW50bC5OdW1iZXJGb3JtYXRPcHRpb25zO1xuICAgICAgICB9LFxuICAgICkge1xuICAgICAgICByZXR1cm4gb3B0aW9ucz8ubG9jYWxlXG4gICAgICAgICAgICA/IG9mKHRoaXMubnVtZXJpY1NlcnZpY2UuaW5zdGFudCh2YWx1ZSwgb3B0aW9ucykpXG4gICAgICAgICAgICA6IHRoaXMubG9jYWxlU2VydmljZS5nZXRMb2NhbGUoKS5waXBlKFxuICAgICAgICAgICAgICAgICAgbWFwKChsb2NhbGUpID0+XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5udW1lcmljU2VydmljZS5pbnN0YW50KHZhbHVlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyRm9ybWF0T3B0aW9uczogb3B0aW9ucz8ubnVtYmVyRm9ybWF0T3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICk7XG4gICAgfVxufVxuXG4iXX0=
|
|
@@ -3,6 +3,26 @@ import { currencies } from '@seniorsistemas/angular-components/currency';
|
|
|
3
3
|
import { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@seniorsistemas/angular-components/locale";
|
|
6
|
+
/**
|
|
7
|
+
* @description Service for formatting numeric values using the browser's `Intl.NumberFormat` API.
|
|
8
|
+
* Automatically uses the locale configured in `LocaleService` unless explicitly overridden.
|
|
9
|
+
* Supports `BigNumber`, plain numbers, and numeric strings, as well as currency display styles.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* // Inject the service
|
|
14
|
+
* const numericService = inject(NumericService);
|
|
15
|
+
*
|
|
16
|
+
* // Format a number with the active locale
|
|
17
|
+
* const formatted = numericService.instant(1234567.89);
|
|
18
|
+
*
|
|
19
|
+
* // Format as currency
|
|
20
|
+
* const currency = numericService.instant(1234.5, {
|
|
21
|
+
* numberFormatOptions: { style: 'currency', currency: 'BRL' }
|
|
22
|
+
* });
|
|
23
|
+
* ```
|
|
24
|
+
* @category Numeric
|
|
25
|
+
*/
|
|
6
26
|
export class NumericService {
|
|
7
27
|
localeService;
|
|
8
28
|
constructor(localeService) {
|
|
@@ -89,4 +109,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
89
109
|
providedIn: 'root',
|
|
90
110
|
}]
|
|
91
111
|
}], ctorParameters: () => [{ type: i1.LocaleService }] });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL251bWVyaWMvc3JjL2xpYi9udW1lcmljLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sNkNBQTZDLENBQUM7QUFFbkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7OztBQU03RSxNQUFNLE9BQU8sY0FBYztJQUNNO0lBQTdCLFlBQTZCLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQUcsQ0FBQztJQUU3RDs7Ozs7Ozs7T0FRRztJQUNILE9BQU8sQ0FDSCxLQUFrQyxFQUNsQyxPQUdDO1FBRUQsSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUUxQyxPQUFPLEdBQUc7WUFDTixHQUFHLE9BQU87WUFDVixNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxJQUFJLE9BQU87WUFDbkYsbUJBQW1CLEVBQUU7Z0JBQ2pCLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixHQUFHLE9BQU8sRUFBRSxtQkFBbUI7Z0JBQy9CLFFBQVEsRUFDSixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxLQUFLLFVBQVU7b0JBQzlDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLElBQUksS0FBSyxDQUFDO29CQUNuRCxDQUFDLENBQUMsU0FBUztnQkFDbkIsZUFBZSxFQUNYLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEtBQUssVUFBVTtvQkFDOUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsSUFBSSxjQUFjLENBQUM7b0JBQ25FLENBQUMsQ0FBQyxTQUFTO2dCQUNuQixxQkFBcUIsRUFDakIsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLElBQUksT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsQ0FBQztvQkFDM0YsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFxQixDQUFDO3dCQUMzRixTQUFTLENBQUM7b0JBQ1osQ0FBQyxDQUFDLFNBQVM7Z0JBQ25CLFlBQVksRUFBRSxPQUFPO2FBQ3hCO1NBQ0osQ0FBQztRQUVGLDBHQUEwRztRQUMxRyxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLE1BQU0sQ0FDNUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxRQUFRO1lBQ2hFLENBQUMsQ0FBQyxLQUFLO1lBQ1AsQ0FBQyxDQUFHLEtBQW1CLENBQUMsUUFBUSxFQUFVLENBQ2pELENBQUM7SUFDTixDQUFDO0lBRU8sZ0NBQWdDLENBQUMsUUFBa0I7UUFDdkQsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLElBQUksQ0FBQztRQUUzQixPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUM7SUFDdkMsQ0FBQztJQUVPLE9BQU8sQ0FBQyxLQUFVO1FBQ3RCLDBGQUEwRjtRQUUxRixJQUFJLEtBQUssS0FBSyxJQUFJO1lBQUUsT0FBTyxNQUFNLENBQUM7UUFDbEMsSUFBSSxLQUFLLEtBQUssU0FBUztZQUFFLE9BQU8sV0FBVyxDQUFDO1FBRTVDLE1BQU0sUUFBUSxHQUFHLE9BQU8sS0FBSyxDQUFDO1FBRTlCLGtCQUFrQjtRQUNsQixJQUFJLFFBQVEsS0FBSyxRQUFRLElBQUksUUFBUSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ25ELE9BQU8sUUFBUSxDQUFDO1FBQ3BCLENBQUM7UUFFRCwrREFBK0Q7UUFDL0QsNERBQTREO1FBQzVELE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFdEMsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMxQixPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUM7UUFFRCx1RUFBdUU7UUFDdkUsSUFBSSxRQUFRLEtBQUssVUFBVSxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN6RixPQUFPLE9BQU8sQ0FBQztRQUNuQixDQUFDO1FBRUQseUVBQXlFO1FBQ3pFLG1EQUFtRDtRQUNuRCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUV6QyxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsSUFBSSxTQUFTLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDcEQsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztRQUVELGdFQUFnRTtRQUNoRSxxQ0FBcUM7UUFDckMsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQzt3R0EvRlEsY0FBYzs0R0FBZCxjQUFjLGNBRlgsTUFBTTs7NEZBRVQsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjdXJyZW5jaWVzLCBDdXJyZW5jeSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvY3VycmVuY3knO1xuaW1wb3J0IHsgTG9jYWxlU2VydmljZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvbG9jYWxlJztcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy91dGlscyc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE51bWVyaWNTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2U6IExvY2FsZVNlcnZpY2UpIHt9XG5cbiAgICAvKipcbiAgICAgKiBXcmFwcGVyIGFyb3VuZCBJbnRsLk51bWJlckZvcm1hdCB0aGF0IHJldHVybnMgdGhlIGxvY2FsaXplZCB2YWx1ZSB1c2luZyB0aGUgdXNlcidzIGxvY2FsZSBieSBkZWZhdWx0KHBsYXRmb3JtJ3MgcHJlZmVyZW50aWFsIGxhbmd1YWdlKS5cbiAgICAgKiBUaGlzIG1ldGhvZCBzaG91bGQgb25seSBiZSB1c2VkIGFmdGVyIHRoZSBsb2NhbGVTZXJ2aWNlIGhhcyBiZWVuIGluaXRpYWxpemVkIGJ5IHRoZSBob3N0IGFwcGxpY2F0aW9uLCBlaXRoZXIgYnkgYSByZXNvbHZlciBvciBhIG1hbnVhbCBjYWxsLlxuICAgICAqIENhbiBiZSBvdmVyd3JpdHRlbiBieSB0aGUgcHJvdmlkZWQgSW50bC5OdW1iZXJGb3JtYXRPcHRpb25zLlxuICAgICAqIERvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIGF0IHtAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9wdC1CUi9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9JbnRsL051bWJlckZvcm1hdCBJbnRsLk51bWJlckZvcm1hdE9wdGlvbnN9LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyIHwgc3RyaW5nIHwgQmlnTnVtYmVyfSB2YWx1ZSBUaGUgdmFsdWUgdG8gYmUgZm9ybWF0dGVkLlxuICAgICAqIEBwYXJhbSBvcHRpb25zIExvY2FsZSBhbmQgbnVtYmVyRm9ybWF0T3B0aW9ucyB0aGF0IG92ZXJ3cml0ZXMgdGhlIGRlZmF1bHQgSW50bC5OdW1iZXJGb3JtYXRPcHRpb25zLlxuICAgICAqIEByZXR1cm4gYHN0cmluZ2AgVGhlIGZvcm1hdHRlZCB2YWx1ZS5cbiAgICAgKi9cbiAgICBpbnN0YW50KFxuICAgICAgICB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgQmlnTnVtYmVyLFxuICAgICAgICBvcHRpb25zPzoge1xuICAgICAgICAgICAgbG9jYWxlPzogc3RyaW5nO1xuICAgICAgICAgICAgbnVtYmVyRm9ybWF0T3B0aW9ucz86IEludGwuTnVtYmVyRm9ybWF0T3B0aW9ucztcbiAgICAgICAgfSxcbiAgICApOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlKSkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICBsb2NhbGU6IG9wdGlvbnM/LmxvY2FsZSA/PyB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0TG9jYWxlT3B0aW9ucygpPy5sb2NhbGUgPz8gJ3B0LUJSJyxcbiAgICAgICAgICAgIG51bWJlckZvcm1hdE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICB1c2VHcm91cGluZzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAuLi5vcHRpb25zPy5udW1iZXJGb3JtYXRPcHRpb25zLFxuICAgICAgICAgICAgICAgIGN1cnJlbmN5OlxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zPy5udW1iZXJGb3JtYXRPcHRpb25zPy5zdHlsZSA9PT0gJ2N1cnJlbmN5J1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAob3B0aW9ucz8ubnVtYmVyRm9ybWF0T3B0aW9ucz8uY3VycmVuY3kgPz8gJ0JSTCcpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBjdXJyZW5jeURpc3BsYXk6XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnM/Lm51bWJlckZvcm1hdE9wdGlvbnM/LnN0eWxlID09PSAnY3VycmVuY3knXG4gICAgICAgICAgICAgICAgICAgICAgICA/IChvcHRpb25zPy5udW1iZXJGb3JtYXRPcHRpb25zPy5jdXJyZW5jeURpc3BsYXkgPz8gJ25hcnJvd1N5bWJvbCcpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6XG4gICAgICAgICAgICAgICAgICAgIChvcHRpb25zPy5udW1iZXJGb3JtYXRPcHRpb25zPy5taW5pbXVtRnJhY3Rpb25EaWdpdHMgPz8gb3B0aW9ucz8ubnVtYmVyRm9ybWF0T3B0aW9ucz8uY3VycmVuY3kpXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLmdldEN1cnJlbmN5TWluaW11bUZyYWN0aW9uRGlnaXRzKG9wdGlvbnM/Lm51bWJlckZvcm1hdE9wdGlvbnM/LmN1cnJlbmN5ISBhcyBDdXJyZW5jeSkgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcm91bmRpbmdNb2RlOiAndHJ1bmMnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBGcm9tIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL3B0LUJSL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0ludGwvTnVtYmVyRm9ybWF0XG4gICAgICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQob3B0aW9ucy5sb2NhbGUsIG9wdGlvbnMubnVtYmVyRm9ybWF0T3B0aW9ucykuZm9ybWF0KFxuICAgICAgICAgICAgdGhpcy5nZXRUeXBlKHZhbHVlKSA9PT0gJ251bWJlcicgfHwgdGhpcy5nZXRUeXBlKHZhbHVlKSA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgICAgICAgOiAoKHZhbHVlIGFzIEJpZ051bWJlcikudG9TdHJpbmcoKSBhcyBhbnkpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q3VycmVuY3lNaW5pbXVtRnJhY3Rpb25EaWdpdHMoY3VycmVuY3k6IEN1cnJlbmN5KTogbnVtYmVyIHwgbnVsbCB7XG4gICAgICAgIGlmICghY3VycmVuY3kpIHJldHVybiBudWxsO1xuXG4gICAgICAgIHJldHVybiBjdXJyZW5jaWVzW2N1cnJlbmN5XT8uc2NhbGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUeXBlKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICAvLyBGcm9tIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL09wZXJhdG9ycy90eXBlb2ZcblxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHJldHVybiAnbnVsbCc7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gJ3VuZGVmaW5lZCc7XG5cbiAgICAgICAgY29uc3QgYmFzZVR5cGUgPSB0eXBlb2YgdmFsdWU7XG5cbiAgICAgICAgLy8gUHJpbWl0aXZlIHR5cGVzXG4gICAgICAgIGlmIChiYXNlVHlwZSAhPT0gJ29iamVjdCcgJiYgYmFzZVR5cGUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBiYXNlVHlwZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFN5bWJvbC50b1N0cmluZ1RhZyBvZnRlbiBzcGVjaWZpZXMgdGhlIFwiZGlzcGxheSBuYW1lXCIgb2YgdGhlXG4gICAgICAgIC8vIG9iamVjdCdzIGNsYXNzLiBJdCdzIHVzZWQgaW4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZygpLlxuICAgICAgICBjb25zdCB0YWcgPSB2YWx1ZVtTeW1ib2wudG9TdHJpbmdUYWddO1xuXG4gICAgICAgIGlmICh0eXBlb2YgdGFnID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHRhZztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIGl0J3MgYSBmdW5jdGlvbiB3aG9zZSBzb3VyY2UgY29kZSBzdGFydHMgd2l0aCB0aGUgXCJjbGFzc1wiIGtleXdvcmRcbiAgICAgICAgaWYgKGJhc2VUeXBlID09PSAnZnVuY3Rpb24nICYmIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKS5zdGFydHNXaXRoKCdjbGFzcycpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2NsYXNzJztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZSBuYW1lIG9mIHRoZSBjb25zdHJ1Y3RvcjsgZm9yIGV4YW1wbGUgYEFycmF5YCwgYEdlbmVyYXRvckZ1bmN0aW9uYCxcbiAgICAgICAgLy8gYE51bWJlcmAsIGBTdHJpbmdgLCBgQm9vbGVhbmAgb3IgYE15Q3VzdG9tQ2xhc3NgXG4gICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IHZhbHVlLmNvbnN0cnVjdG9yLm5hbWU7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBjbGFzc05hbWUgPT09ICdzdHJpbmcnICYmIGNsYXNzTmFtZSAhPT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiBjbGFzc05hbWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHRoZXJlJ3Mgbm8gcm9idXN0IHdheSB0byBnZXQgdGhlIHR5cGUgb2YgdmFsdWUsXG4gICAgICAgIC8vIHNvIHdlIHVzZSB0aGUgYmFzZSBpbXBsZW1lbnRhdGlvbi5cbiAgICAgICAgcmV0dXJuIGJhc2VUeXBlO1xuICAgIH1cbn1cblxuIl19
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL251bWVyaWMvc3JjL2xpYi9udW1lcmljLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sNkNBQTZDLENBQUM7QUFFbkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7OztBQUc3RTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUlILE1BQU0sT0FBTyxjQUFjO0lBQ007SUFBN0IsWUFBNkIsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFBRyxDQUFDO0lBRTdEOzs7Ozs7OztPQVFHO0lBQ0gsT0FBTyxDQUNILEtBQWtDLEVBQ2xDLE9BR0M7UUFFRCxJQUFJLGlCQUFpQixDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRTFDLE9BQU8sR0FBRztZQUNOLEdBQUcsT0FBTztZQUNWLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLElBQUksT0FBTztZQUNuRixtQkFBbUIsRUFBRTtnQkFDakIsV0FBVyxFQUFFLElBQUk7Z0JBQ2pCLEdBQUcsT0FBTyxFQUFFLG1CQUFtQjtnQkFDL0IsUUFBUSxFQUNKLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEtBQUssVUFBVTtvQkFDOUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsSUFBSSxLQUFLLENBQUM7b0JBQ25ELENBQUMsQ0FBQyxTQUFTO2dCQUNuQixlQUFlLEVBQ1gsT0FBTyxFQUFFLG1CQUFtQixFQUFFLEtBQUssS0FBSyxVQUFVO29CQUM5QyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxJQUFJLGNBQWMsQ0FBQztvQkFDbkUsQ0FBQyxDQUFDLFNBQVM7Z0JBQ25CLHFCQUFxQixFQUNqQixDQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsSUFBSSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxDQUFDO29CQUMzRixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQXFCLENBQUM7d0JBQzNGLFNBQVMsQ0FBQztvQkFDWixDQUFDLENBQUMsU0FBUztnQkFDbkIsWUFBWSxFQUFFLE9BQU87YUFDeEI7U0FDSixDQUFDO1FBRUYsMEdBQTBHO1FBQzFHLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUMsTUFBTSxDQUM1RSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLFFBQVE7WUFDaEUsQ0FBQyxDQUFDLEtBQUs7WUFDUCxDQUFDLENBQUcsS0FBbUIsQ0FBQyxRQUFRLEVBQVUsQ0FDakQsQ0FBQztJQUNOLENBQUM7SUFFTyxnQ0FBZ0MsQ0FBQyxRQUFrQjtRQUN2RCxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRTNCLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUN2QyxDQUFDO0lBRU8sT0FBTyxDQUFDLEtBQVU7UUFDdEIsMEZBQTBGO1FBRTFGLElBQUksS0FBSyxLQUFLLElBQUk7WUFBRSxPQUFPLE1BQU0sQ0FBQztRQUNsQyxJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsT0FBTyxXQUFXLENBQUM7UUFFNUMsTUFBTSxRQUFRLEdBQUcsT0FBTyxLQUFLLENBQUM7UUFFOUIsa0JBQWtCO1FBQ2xCLElBQUksUUFBUSxLQUFLLFFBQVEsSUFBSSxRQUFRLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDbkQsT0FBTyxRQUFRLENBQUM7UUFDcEIsQ0FBQztRQUVELCtEQUErRDtRQUMvRCw0REFBNEQ7UUFDNUQsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV0QyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzFCLE9BQU8sR0FBRyxDQUFDO1FBQ2YsQ0FBQztRQUVELHVFQUF1RTtRQUN2RSxJQUFJLFFBQVEsS0FBSyxVQUFVLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3pGLE9BQU8sT0FBTyxDQUFDO1FBQ25CLENBQUM7UUFFRCx5RUFBeUU7UUFDekUsbURBQW1EO1FBQ25ELE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBRXpDLElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxJQUFJLFNBQVMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNwRCxPQUFPLFNBQVMsQ0FBQztRQUNyQixDQUFDO1FBRUQsZ0VBQWdFO1FBQ2hFLHFDQUFxQztRQUNyQyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO3dHQS9GUSxjQUFjOzRHQUFkLGNBQWMsY0FGWCxNQUFNOzs0RkFFVCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGN1cnJlbmNpZXMsIEN1cnJlbmN5IH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9jdXJyZW5jeSc7XG5pbXBvcnQgeyBMb2NhbGVTZXJ2aWNlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9sb2NhbGUnO1xuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3V0aWxzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gU2VydmljZSBmb3IgZm9ybWF0dGluZyBudW1lcmljIHZhbHVlcyB1c2luZyB0aGUgYnJvd3NlcidzIGBJbnRsLk51bWJlckZvcm1hdGAgQVBJLlxuICogQXV0b21hdGljYWxseSB1c2VzIHRoZSBsb2NhbGUgY29uZmlndXJlZCBpbiBgTG9jYWxlU2VydmljZWAgdW5sZXNzIGV4cGxpY2l0bHkgb3ZlcnJpZGRlbi5cbiAqIFN1cHBvcnRzIGBCaWdOdW1iZXJgLCBwbGFpbiBudW1iZXJzLCBhbmQgbnVtZXJpYyBzdHJpbmdzLCBhcyB3ZWxsIGFzIGN1cnJlbmN5IGRpc3BsYXkgc3R5bGVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbmplY3QgdGhlIHNlcnZpY2VcbiAqIGNvbnN0IG51bWVyaWNTZXJ2aWNlID0gaW5qZWN0KE51bWVyaWNTZXJ2aWNlKTtcbiAqXG4gKiAvLyBGb3JtYXQgYSBudW1iZXIgd2l0aCB0aGUgYWN0aXZlIGxvY2FsZVxuICogY29uc3QgZm9ybWF0dGVkID0gbnVtZXJpY1NlcnZpY2UuaW5zdGFudCgxMjM0NTY3Ljg5KTtcbiAqXG4gKiAvLyBGb3JtYXQgYXMgY3VycmVuY3lcbiAqIGNvbnN0IGN1cnJlbmN5ID0gbnVtZXJpY1NlcnZpY2UuaW5zdGFudCgxMjM0LjUsIHtcbiAqICAgbnVtYmVyRm9ybWF0T3B0aW9uczogeyBzdHlsZTogJ2N1cnJlbmN5JywgY3VycmVuY3k6ICdCUkwnIH1cbiAqIH0pO1xuICogYGBgXG4gKiBAY2F0ZWdvcnkgTnVtZXJpY1xuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBOdW1lcmljU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBsb2NhbGVTZXJ2aWNlOiBMb2NhbGVTZXJ2aWNlKSB7fVxuXG4gICAgLyoqXG4gICAgICogV3JhcHBlciBhcm91bmQgSW50bC5OdW1iZXJGb3JtYXQgdGhhdCByZXR1cm5zIHRoZSBsb2NhbGl6ZWQgdmFsdWUgdXNpbmcgdGhlIHVzZXIncyBsb2NhbGUgYnkgZGVmYXVsdChwbGF0Zm9ybSdzIHByZWZlcmVudGlhbCBsYW5ndWFnZSkuXG4gICAgICogVGhpcyBtZXRob2Qgc2hvdWxkIG9ubHkgYmUgdXNlZCBhZnRlciB0aGUgbG9jYWxlU2VydmljZSBoYXMgYmVlbiBpbml0aWFsaXplZCBieSB0aGUgaG9zdCBhcHBsaWNhdGlvbiwgZWl0aGVyIGJ5IGEgcmVzb2x2ZXIgb3IgYSBtYW51YWwgY2FsbC5cbiAgICAgKiBDYW4gYmUgb3ZlcndyaXR0ZW4gYnkgdGhlIHByb3ZpZGVkIEludGwuTnVtYmVyRm9ybWF0T3B0aW9ucy5cbiAgICAgKiBEb2N1bWVudGF0aW9uIGlzIGF2YWlsYWJsZSBhdCB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvcHQtQlIvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvSW50bC9OdW1iZXJGb3JtYXQgSW50bC5OdW1iZXJGb3JtYXRPcHRpb25zfS5cbiAgICAgKiBAcGFyYW0ge251bWJlciB8IHN0cmluZyB8IEJpZ051bWJlcn0gdmFsdWUgVGhlIHZhbHVlIHRvIGJlIGZvcm1hdHRlZC5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBMb2NhbGUgYW5kIG51bWJlckZvcm1hdE9wdGlvbnMgdGhhdCBvdmVyd3JpdGVzIHRoZSBkZWZhdWx0IEludGwuTnVtYmVyRm9ybWF0T3B0aW9ucy5cbiAgICAgKiBAcmV0dXJuIGBzdHJpbmdgIFRoZSBmb3JtYXR0ZWQgdmFsdWUuXG4gICAgICovXG4gICAgaW5zdGFudChcbiAgICAgICAgdmFsdWU6IG51bWJlciB8IHN0cmluZyB8IEJpZ051bWJlcixcbiAgICAgICAgb3B0aW9ucz86IHtcbiAgICAgICAgICAgIGxvY2FsZT86IHN0cmluZztcbiAgICAgICAgICAgIG51bWJlckZvcm1hdE9wdGlvbnM/OiBJbnRsLk51bWJlckZvcm1hdE9wdGlvbnM7XG4gICAgICAgIH0sXG4gICAgKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh2YWx1ZSkpIHJldHVybiBudWxsO1xuXG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgbG9jYWxlOiBvcHRpb25zPy5sb2NhbGUgPz8gdGhpcy5sb2NhbGVTZXJ2aWNlLmdldExvY2FsZU9wdGlvbnMoKT8ubG9jYWxlID8/ICdwdC1CUicsXG4gICAgICAgICAgICBudW1iZXJGb3JtYXRPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgdXNlR3JvdXBpbmc6IHRydWUsXG4gICAgICAgICAgICAgICAgLi4ub3B0aW9ucz8ubnVtYmVyRm9ybWF0T3B0aW9ucyxcbiAgICAgICAgICAgICAgICBjdXJyZW5jeTpcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz8ubnVtYmVyRm9ybWF0T3B0aW9ucz8uc3R5bGUgPT09ICdjdXJyZW5jeSdcbiAgICAgICAgICAgICAgICAgICAgICAgID8gKG9wdGlvbnM/Lm51bWJlckZvcm1hdE9wdGlvbnM/LmN1cnJlbmN5ID8/ICdCUkwnKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgY3VycmVuY3lEaXNwbGF5OlxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zPy5udW1iZXJGb3JtYXRPcHRpb25zPy5zdHlsZSA9PT0gJ2N1cnJlbmN5J1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAob3B0aW9ucz8ubnVtYmVyRm9ybWF0T3B0aW9ucz8uY3VycmVuY3lEaXNwbGF5ID8/ICduYXJyb3dTeW1ib2wnKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzOlxuICAgICAgICAgICAgICAgICAgICAob3B0aW9ucz8ubnVtYmVyRm9ybWF0T3B0aW9ucz8ubWluaW11bUZyYWN0aW9uRGlnaXRzID8/IG9wdGlvbnM/Lm51bWJlckZvcm1hdE9wdGlvbnM/LmN1cnJlbmN5KVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAodGhpcy5nZXRDdXJyZW5jeU1pbmltdW1GcmFjdGlvbkRpZ2l0cyhvcHRpb25zPy5udW1iZXJGb3JtYXRPcHRpb25zPy5jdXJyZW5jeSEgYXMgQ3VycmVuY3kpID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHJvdW5kaW5nTW9kZTogJ3RydW5jJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gRnJvbSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9wdC1CUi9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9JbnRsL051bWJlckZvcm1hdFxuICAgICAgICByZXR1cm4gbmV3IEludGwuTnVtYmVyRm9ybWF0KG9wdGlvbnMubG9jYWxlLCBvcHRpb25zLm51bWJlckZvcm1hdE9wdGlvbnMpLmZvcm1hdChcbiAgICAgICAgICAgIHRoaXMuZ2V0VHlwZSh2YWx1ZSkgPT09ICdudW1iZXInIHx8IHRoaXMuZ2V0VHlwZSh2YWx1ZSkgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICAgPyB2YWx1ZVxuICAgICAgICAgICAgICAgIDogKCh2YWx1ZSBhcyBCaWdOdW1iZXIpLnRvU3RyaW5nKCkgYXMgYW55KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEN1cnJlbmN5TWluaW11bUZyYWN0aW9uRGlnaXRzKGN1cnJlbmN5OiBDdXJyZW5jeSk6IG51bWJlciB8IG51bGwge1xuICAgICAgICBpZiAoIWN1cnJlbmN5KSByZXR1cm4gbnVsbDtcblxuICAgICAgICByZXR1cm4gY3VycmVuY2llc1tjdXJyZW5jeV0/LnNjYWxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VHlwZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgLy8gRnJvbSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9PcGVyYXRvcnMvdHlwZW9mXG5cbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSByZXR1cm4gJ251bGwnO1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuICd1bmRlZmluZWQnO1xuXG4gICAgICAgIGNvbnN0IGJhc2VUeXBlID0gdHlwZW9mIHZhbHVlO1xuXG4gICAgICAgIC8vIFByaW1pdGl2ZSB0eXBlc1xuICAgICAgICBpZiAoYmFzZVR5cGUgIT09ICdvYmplY3QnICYmIGJhc2VUeXBlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gYmFzZVR5cGU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTeW1ib2wudG9TdHJpbmdUYWcgb2Z0ZW4gc3BlY2lmaWVzIHRoZSBcImRpc3BsYXkgbmFtZVwiIG9mIHRoZVxuICAgICAgICAvLyBvYmplY3QncyBjbGFzcy4gSXQncyB1c2VkIGluIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcoKS5cbiAgICAgICAgY29uc3QgdGFnID0gdmFsdWVbU3ltYm9sLnRvU3RyaW5nVGFnXTtcblxuICAgICAgICBpZiAodHlwZW9mIHRhZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB0YWc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiBpdCdzIGEgZnVuY3Rpb24gd2hvc2Ugc291cmNlIGNvZGUgc3RhcnRzIHdpdGggdGhlIFwiY2xhc3NcIiBrZXl3b3JkXG4gICAgICAgIGlmIChiYXNlVHlwZSA9PT0gJ2Z1bmN0aW9uJyAmJiBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkuc3RhcnRzV2l0aCgnY2xhc3MnKSkge1xuICAgICAgICAgICAgcmV0dXJuICdjbGFzcyc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGUgbmFtZSBvZiB0aGUgY29uc3RydWN0b3I7IGZvciBleGFtcGxlIGBBcnJheWAsIGBHZW5lcmF0b3JGdW5jdGlvbmAsXG4gICAgICAgIC8vIGBOdW1iZXJgLCBgU3RyaW5nYCwgYEJvb2xlYW5gIG9yIGBNeUN1c3RvbUNsYXNzYFxuICAgICAgICBjb25zdCBjbGFzc05hbWUgPSB2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lO1xuXG4gICAgICAgIGlmICh0eXBlb2YgY2xhc3NOYW1lID09PSAnc3RyaW5nJyAmJiBjbGFzc05hbWUgIT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gY2xhc3NOYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB0aGVyZSdzIG5vIHJvYnVzdCB3YXkgdG8gZ2V0IHRoZSB0eXBlIG9mIHZhbHVlLFxuICAgICAgICAvLyBzbyB3ZSB1c2UgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24uXG4gICAgICAgIHJldHVybiBiYXNlVHlwZTtcbiAgICB9XG59XG5cbiJdfQ==
|