@agorapulse/ui-components 18.1.13 → 18.2.0
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/action-dropdown/index.d.ts +105 -3
- package/add-comment/index.d.ts +24 -5
- package/agorapulse-ui-components-18.2.0.tgz +0 -0
- package/autocomplete/index.d.ts +43 -5
- package/avatar/index.d.ts +64 -5
- package/badge/index.d.ts +11 -5
- package/button/index.d.ts +54 -5
- package/checkbox/index.d.ts +54 -5
- package/close-button/index.d.ts +14 -5
- package/confirm-modal/index.d.ts +32 -5
- package/counter/index.d.ts +17 -5
- package/datepicker/index.d.ts +99 -5
- package/directives/index.d.ts +149 -3
- package/dot-stepper/index.d.ts +23 -5
- package/fesm2022/agorapulse-ui-components-action-dropdown.mjs +22 -32
- package/fesm2022/agorapulse-ui-components-action-dropdown.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-add-comment.mjs +5 -5
- package/fesm2022/agorapulse-ui-components-add-comment.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-autocomplete.mjs +8 -8
- package/fesm2022/agorapulse-ui-components-autocomplete.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-avatar.mjs +24 -24
- package/fesm2022/agorapulse-ui-components-avatar.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-badge.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-badge.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-button.mjs +6 -6
- package/fesm2022/agorapulse-ui-components-button.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-checkbox.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-checkbox.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-close-button.mjs +7 -7
- package/fesm2022/agorapulse-ui-components-close-button.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-confirm-modal.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-confirm-modal.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-counter.mjs +9 -9
- package/fesm2022/agorapulse-ui-components-counter.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-datepicker.mjs +6 -6
- package/fesm2022/agorapulse-ui-components-datepicker.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-directives.mjs +26 -28
- package/fesm2022/agorapulse-ui-components-directives.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-dot-stepper.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-dot-stepper.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-form-field.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-form-field.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-form-message.mjs +6 -6
- package/fesm2022/agorapulse-ui-components-form-message.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-icon-button.mjs +5 -5
- package/fesm2022/agorapulse-ui-components-icon-button.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-infobox.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-infobox.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-input-group.mjs +6 -6
- package/fesm2022/agorapulse-ui-components-input-group.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-input-search.mjs +13 -10
- package/fesm2022/agorapulse-ui-components-input-search.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-input.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-labels-selector.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-labels-selector.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-labels.mjs +8 -8
- package/fesm2022/agorapulse-ui-components-labels.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-legacy-input.mjs +5 -5
- package/fesm2022/agorapulse-ui-components-legacy-input.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-legacy-select.mjs +17 -17
- package/fesm2022/agorapulse-ui-components-legacy-select.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs +5 -5
- package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-modal.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-modal.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-nav-selector-testing.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-nav-selector.mjs +164 -159
- package/fesm2022/agorapulse-ui-components-nav-selector.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs +8 -8
- package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-notification.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-notification.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-paginator.mjs +7 -7
- package/fesm2022/agorapulse-ui-components-paginator.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-password-input.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-password-input.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-phone-number-input.mjs +16 -16
- package/fesm2022/agorapulse-ui-components-phone-number-input.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-popmenu.mjs +11 -11
- package/fesm2022/agorapulse-ui-components-popmenu.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-providers.mjs +19 -0
- package/fesm2022/agorapulse-ui-components-providers.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-radio.mjs +6 -6
- package/fesm2022/agorapulse-ui-components-radio.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-range-slider.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-range-slider.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-select.mjs +65 -65
- package/fesm2022/agorapulse-ui-components-select.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-slide-toggle.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-slide-toggle.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs +8 -8
- package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-social-button.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-social-button.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-split-button.mjs +5 -5
- package/fesm2022/agorapulse-ui-components-split-button.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-status-card.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-status-card.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-status.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-status.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-stepper.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-stepper.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-tag.mjs +9 -9
- package/fesm2022/agorapulse-ui-components-tag.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-text-measurement.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-textarea.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-toggle.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-toggle.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-tooltip.mjs +15 -15
- package/fesm2022/agorapulse-ui-components-tooltip.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components.mjs +4 -4
- package/fesm2022/agorapulse-ui-components.mjs.map +1 -1
- package/form-field/index.d.ts +8 -5
- package/form-message/index.d.ts +16 -5
- package/icon-button/index.d.ts +44 -5
- package/index.d.ts +50 -25
- package/infobox/index.d.ts +29 -5
- package/input/index.d.ts +10 -5
- package/input-group/index.d.ts +14 -5
- package/input-search/index.d.ts +35 -5
- package/labels/index.d.ts +59 -5
- package/labels-selector/index.d.ts +46 -5
- package/legacy/input/index.d.ts +64 -3
- package/legacy/select/index.d.ts +124 -3
- package/legacy/textarea/index.d.ts +54 -3
- package/media-display-overlay/index.d.ts +46 -5
- package/modal/index.d.ts +58 -5
- package/nav-selector/index.d.ts +372 -3
- package/nav-selector/testing/index.d.ts +67 -3
- package/neo-datepicker/index.d.ts +74 -5
- package/notification/index.d.ts +9 -5
- package/package.json +14 -112
- package/paginator/index.d.ts +57 -5
- package/password-input/index.d.ts +36 -5
- package/phone-number-input/index.d.ts +54 -5
- package/popmenu/index.d.ts +212 -3
- package/providers/index.d.ts +11 -0
- package/radio/index.d.ts +80 -5
- package/range-slider/index.d.ts +39 -5
- package/select/index.d.ts +214 -5
- package/slide-toggle/index.d.ts +23 -5
- package/snackbars-thread/index.d.ts +73 -3
- package/social-button/index.d.ts +34 -5
- package/split-button/index.d.ts +47 -5
- package/status/index.d.ts +13 -5
- package/status-card/index.d.ts +17 -5
- package/stepper/index.d.ts +26 -5
- package/tag/index.d.ts +28 -5
- package/text-measurement/index.d.ts +11 -5
- package/textarea/index.d.ts +14 -5
- package/toggle/index.d.ts +55 -5
- package/tooltip/index.d.ts +62 -5
- package/action-dropdown/action-dropdown-trigger.directive.d.ts +0 -17
- package/action-dropdown/action-dropdown.component.d.ts +0 -87
- package/action-dropdown/providers.d.ts +0 -8
- package/action-dropdown/public_api.d.ts +0 -3
- package/add-comment/add-comment.component.d.ts +0 -21
- package/add-comment/public_api.d.ts +0 -1
- package/agorapulse-ui-components-18.1.13.tgz +0 -0
- package/autocomplete/autocomplete.component.d.ts +0 -40
- package/autocomplete/public_api.d.ts +0 -1
- package/avatar/avatar.component.d.ts +0 -61
- package/avatar/public_api.d.ts +0 -1
- package/badge/badge.component.d.ts +0 -7
- package/badge/public_api.d.ts +0 -1
- package/button/button.component.d.ts +0 -52
- package/button/public_api.d.ts +0 -1
- package/checkbox/checkbox.component.d.ts +0 -51
- package/checkbox/public_api.d.ts +0 -1
- package/close-button/close-button.component.d.ts +0 -11
- package/close-button/public_api.d.ts +0 -1
- package/confirm-modal/confirm-modal-texts.model.d.ts +0 -8
- package/confirm-modal/confirm-modal.component.d.ts +0 -20
- package/confirm-modal/public_api.d.ts +0 -2
- package/counter/counter.component.d.ts +0 -13
- package/counter/public_api.d.ts +0 -1
- package/datepicker/datepicker.component.d.ts +0 -100
- package/datepicker/public_api.d.ts +0 -1
- package/directives/autosize-textarea.directive.d.ts +0 -12
- package/directives/base-button.directive.d.ts +0 -13
- package/directives/checkbox.directive.d.ts +0 -32
- package/directives/default-image.directive.d.ts +0 -8
- package/directives/ellipsis.directive.d.ts +0 -29
- package/directives/equal-validator.directive.d.ts +0 -13
- package/directives/frozen-gif.directive.d.ts +0 -30
- package/directives/multi-style-text.directive.d.ts +0 -16
- package/directives/public_api.d.ts +0 -8
- package/dot-stepper/dot-stepper.component.d.ts +0 -20
- package/dot-stepper/public_api.d.ts +0 -1
- package/esm2022/action-dropdown/action-dropdown-trigger.directive.mjs +0 -54
- package/esm2022/action-dropdown/action-dropdown.component.mjs +0 -272
- package/esm2022/action-dropdown/agorapulse-ui-components-action-dropdown.mjs +0 -5
- package/esm2022/action-dropdown/providers.mjs +0 -12
- package/esm2022/action-dropdown/public_api.mjs +0 -4
- package/esm2022/add-comment/add-comment.component.mjs +0 -72
- package/esm2022/add-comment/agorapulse-ui-components-add-comment.mjs +0 -5
- package/esm2022/add-comment/public_api.mjs +0 -2
- package/esm2022/agorapulse-ui-components.mjs +0 -5
- package/esm2022/autocomplete/agorapulse-ui-components-autocomplete.mjs +0 -5
- package/esm2022/autocomplete/autocomplete.component.mjs +0 -125
- package/esm2022/autocomplete/public_api.mjs +0 -2
- package/esm2022/avatar/agorapulse-ui-components-avatar.mjs +0 -5
- package/esm2022/avatar/avatar.component.mjs +0 -161
- package/esm2022/avatar/public_api.mjs +0 -2
- package/esm2022/badge/agorapulse-ui-components-badge.mjs +0 -5
- package/esm2022/badge/badge.component.mjs +0 -17
- package/esm2022/badge/public_api.mjs +0 -2
- package/esm2022/button/agorapulse-ui-components-button.mjs +0 -5
- package/esm2022/button/button.component.mjs +0 -105
- package/esm2022/button/public_api.mjs +0 -2
- package/esm2022/checkbox/agorapulse-ui-components-checkbox.mjs +0 -5
- package/esm2022/checkbox/checkbox.component.mjs +0 -177
- package/esm2022/checkbox/public_api.mjs +0 -2
- package/esm2022/close-button/agorapulse-ui-components-close-button.mjs +0 -5
- package/esm2022/close-button/close-button.component.mjs +0 -20
- package/esm2022/close-button/public_api.mjs +0 -2
- package/esm2022/confirm-modal/agorapulse-ui-components-confirm-modal.mjs +0 -5
- package/esm2022/confirm-modal/confirm-modal-texts.model.mjs +0 -2
- package/esm2022/confirm-modal/confirm-modal.component.mjs +0 -61
- package/esm2022/confirm-modal/public_api.mjs +0 -3
- package/esm2022/counter/agorapulse-ui-components-counter.mjs +0 -5
- package/esm2022/counter/counter.component.mjs +0 -32
- package/esm2022/counter/public_api.mjs +0 -2
- package/esm2022/datepicker/agorapulse-ui-components-datepicker.mjs +0 -5
- package/esm2022/datepicker/datepicker.component.mjs +0 -288
- package/esm2022/datepicker/public_api.mjs +0 -2
- package/esm2022/directives/agorapulse-ui-components-directives.mjs +0 -5
- package/esm2022/directives/autosize-textarea.directive.mjs +0 -45
- package/esm2022/directives/base-button.directive.mjs +0 -47
- package/esm2022/directives/checkbox.directive.mjs +0 -283
- package/esm2022/directives/default-image.directive.mjs +0 -37
- package/esm2022/directives/ellipsis.directive.mjs +0 -90
- package/esm2022/directives/equal-validator.directive.mjs +0 -73
- package/esm2022/directives/frozen-gif.directive.mjs +0 -125
- package/esm2022/directives/multi-style-text.directive.mjs +0 -61
- package/esm2022/directives/public_api.mjs +0 -9
- package/esm2022/dot-stepper/agorapulse-ui-components-dot-stepper.mjs +0 -5
- package/esm2022/dot-stepper/dot-stepper.component.mjs +0 -46
- package/esm2022/dot-stepper/public_api.mjs +0 -2
- package/esm2022/form-field/agorapulse-ui-components-form-field.mjs +0 -5
- package/esm2022/form-field/form-field.component.mjs +0 -11
- package/esm2022/form-field/public_api.mjs +0 -2
- package/esm2022/form-message/agorapulse-ui-components-form-message.mjs +0 -5
- package/esm2022/form-message/form-message.component.mjs +0 -34
- package/esm2022/form-message/public_api.mjs +0 -2
- package/esm2022/icon-button/agorapulse-ui-components-icon-button.mjs +0 -5
- package/esm2022/icon-button/icon-button.component.mjs +0 -123
- package/esm2022/icon-button/public_api.mjs +0 -2
- package/esm2022/index.mjs +0 -49
- package/esm2022/infobox/agorapulse-ui-components-infobox.mjs +0 -5
- package/esm2022/infobox/infobox.component.mjs +0 -72
- package/esm2022/infobox/public_api.mjs +0 -2
- package/esm2022/input/agorapulse-ui-components-input.mjs +0 -5
- package/esm2022/input/input.directive.mjs +0 -19
- package/esm2022/input/public_api.mjs +0 -2
- package/esm2022/input-group/agorapulse-ui-components-input-group.mjs +0 -5
- package/esm2022/input-group/input-group.component.mjs +0 -14
- package/esm2022/input-group/input-prefix/input-prefix.component.mjs +0 -11
- package/esm2022/input-group/public_api.mjs +0 -3
- package/esm2022/input-search/agorapulse-ui-components-input-search.mjs +0 -5
- package/esm2022/input-search/input-search.component.mjs +0 -78
- package/esm2022/input-search/public_api.mjs +0 -2
- package/esm2022/labels/agorapulse-ui-components-labels.mjs +0 -5
- package/esm2022/labels/label-list.component.mjs +0 -108
- package/esm2022/labels/label.component.mjs +0 -56
- package/esm2022/labels/public_api.mjs +0 -3
- package/esm2022/labels-selector/agorapulse-ui-components-labels-selector.mjs +0 -5
- package/esm2022/labels-selector/labels-selector.component.mjs +0 -122
- package/esm2022/labels-selector/public_api.mjs +0 -2
- package/esm2022/legacy/input/agorapulse-ui-components-legacy-input.mjs +0 -5
- package/esm2022/legacy/input/input.component.mjs +0 -189
- package/esm2022/legacy/input/public_api.mjs +0 -2
- package/esm2022/legacy/select/agorapulse-ui-components-legacy-select.mjs +0 -5
- package/esm2022/legacy/select/public_api.mjs +0 -2
- package/esm2022/legacy/select/select.component.mjs +0 -451
- package/esm2022/legacy/textarea/agorapulse-ui-components-legacy-textarea.mjs +0 -5
- package/esm2022/legacy/textarea/public_api.mjs +0 -2
- package/esm2022/legacy/textarea/textarea.component.mjs +0 -154
- package/esm2022/media-display-overlay/agorapulse-ui-components-media-display-overlay.mjs +0 -5
- package/esm2022/media-display-overlay/media-display-overlay-dialog.component.mjs +0 -122
- package/esm2022/media-display-overlay/public_api.mjs +0 -2
- package/esm2022/modal/agorapulse-ui-components-modal.mjs +0 -5
- package/esm2022/modal/modal.component.mjs +0 -116
- package/esm2022/modal/public_api.mjs +0 -2
- package/esm2022/nav-selector/agorapulse-ui-components-nav-selector.mjs +0 -5
- package/esm2022/nav-selector/directives/nav-selector-popover-trigger.directive.mjs +0 -71
- package/esm2022/nav-selector/directives/tree-node-accessibility.directive.mjs +0 -30
- package/esm2022/nav-selector/nav-selector-category/nav-selector-category.component.mjs +0 -129
- package/esm2022/nav-selector/nav-selector-category/nav-selector-category.presenter.mjs +0 -28
- package/esm2022/nav-selector/nav-selector-group/nav-selector-group.component.mjs +0 -174
- package/esm2022/nav-selector/nav-selector-group/nav-selector-group.presenter.mjs +0 -30
- package/esm2022/nav-selector/nav-selector-leaf/nav-selector-leaf.component.mjs +0 -242
- package/esm2022/nav-selector/nav-selector-leaf/nav-selector-leaf.presenter.mjs +0 -36
- package/esm2022/nav-selector/nav-selector-leaf-detail/nav-selector-leaf-detail.component.mjs +0 -43
- package/esm2022/nav-selector/nav-selector-leaf-detail/nav-selector-leaf-detail.presenter.mjs +0 -20
- package/esm2022/nav-selector/nav-selector-leaf-details/nav-selector-leaf-details.component.mjs +0 -95
- package/esm2022/nav-selector/nav-selector-leaf-details/nav-selector-leaf-details.presenter.mjs +0 -31
- package/esm2022/nav-selector/nav-selector-popover/nav-selector-popover-item.component.mjs +0 -65
- package/esm2022/nav-selector/nav-selector-popover/nav-selector-popover.component.mjs +0 -132
- package/esm2022/nav-selector/nav-selector.component.mjs +0 -201
- package/esm2022/nav-selector/nav-selector.mjs +0 -9
- package/esm2022/nav-selector/nav-selector.state.mjs +0 -207
- package/esm2022/nav-selector/public_api.mjs +0 -3
- package/esm2022/nav-selector/testing/agorapulse-ui-components-nav-selector-testing.mjs +0 -5
- package/esm2022/nav-selector/testing/nav-selector-entry.mock.mjs +0 -91
- package/esm2022/nav-selector/testing/public_api.mjs +0 -2
- package/esm2022/nav-selector/utils/leaf.utils.mjs +0 -44
- package/esm2022/nav-selector/utils/nav-selector.accessibility.mjs +0 -179
- package/esm2022/nav-selector/utils/nav-selector.builder.mjs +0 -271
- package/esm2022/nav-selector/utils/nav-selector.filter.mjs +0 -141
- package/esm2022/nav-selector/utils/nav-selector.folding.mjs +0 -284
- package/esm2022/nav-selector/utils/nav-selector.merger.mjs +0 -76
- package/esm2022/nav-selector/utils/nav-selector.minifying.mjs +0 -59
- package/esm2022/nav-selector/utils/nav-selector.multi-select.mjs +0 -208
- package/esm2022/nav-selector/utils/nav-selector.single-select.mjs +0 -113
- package/esm2022/nav-selector/utils/nav-selector.view-more.mjs +0 -98
- package/esm2022/neo-datepicker/agorapulse-ui-components-neo-datepicker.mjs +0 -5
- package/esm2022/neo-datepicker/day-detail.model.mjs +0 -2
- package/esm2022/neo-datepicker/day-disabled.pipe.mjs +0 -21
- package/esm2022/neo-datepicker/neo-datepicker.component.mjs +0 -241
- package/esm2022/neo-datepicker/public_api.mjs +0 -4
- package/esm2022/notification/agorapulse-ui-components-notification.mjs +0 -5
- package/esm2022/notification/notification.component.mjs +0 -15
- package/esm2022/notification/public_api.mjs +0 -2
- package/esm2022/paginator/agorapulse-ui-components-paginator.mjs +0 -5
- package/esm2022/paginator/paginator-button/paginator-button.component.mjs +0 -51
- package/esm2022/paginator/paginator.component.mjs +0 -114
- package/esm2022/paginator/public_api.mjs +0 -3
- package/esm2022/password-input/agorapulse-ui-components-password-input.mjs +0 -5
- package/esm2022/password-input/password-input.component.mjs +0 -78
- package/esm2022/password-input/public_api.mjs +0 -2
- package/esm2022/phone-number-input/agorapulse-ui-components-phone-number-input.mjs +0 -5
- package/esm2022/phone-number-input/phone-number-input.component.mjs +0 -195
- package/esm2022/phone-number-input/public_api.mjs +0 -2
- package/esm2022/popmenu/agorapulse-ui-components-popmenu.mjs +0 -5
- package/esm2022/popmenu/options.mjs +0 -17
- package/esm2022/popmenu/popmenu-options.interface.mjs +0 -2
- package/esm2022/popmenu/popmenu-options.service.mjs +0 -7
- package/esm2022/popmenu/popmenu.component.mjs +0 -383
- package/esm2022/popmenu/popmenu.directive.mjs +0 -296
- package/esm2022/popmenu/popmenu.module.mjs +0 -29
- package/esm2022/popmenu/public_api.mjs +0 -5
- package/esm2022/radio/agorapulse-ui-components-radio.mjs +0 -5
- package/esm2022/radio/public_api.mjs +0 -2
- package/esm2022/radio/radio.component.mjs +0 -319
- package/esm2022/range-slider/agorapulse-ui-components-range-slider.mjs +0 -5
- package/esm2022/range-slider/public_api.mjs +0 -2
- package/esm2022/range-slider/range-slider.component.mjs +0 -154
- package/esm2022/select/agorapulse-ui-components-select.mjs +0 -5
- package/esm2022/select/ap-select.module.mjs +0 -78
- package/esm2022/select/dropdown-group-item/dropdown-group-item.component.mjs +0 -51
- package/esm2022/select/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.mjs +0 -75
- package/esm2022/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.mjs +0 -79
- package/esm2022/select/dropdown-item-single-one-line/dropdown-item-single-one-line.component.mjs +0 -59
- package/esm2022/select/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.mjs +0 -60
- package/esm2022/select/dropdown-search-form/dropdown-search-form.component.mjs +0 -98
- package/esm2022/select/public_api.mjs +0 -13
- package/esm2022/select/select-base.directive.mjs +0 -69
- package/esm2022/select/select-label-multiple/select-label-multiple.component.mjs +0 -95
- package/esm2022/select/select-label-single/select-label-single.component.mjs +0 -33
- package/esm2022/select/select-multiple.directive.mjs +0 -35
- package/esm2022/select/select-single.directive.mjs +0 -34
- package/esm2022/slide-toggle/agorapulse-ui-components-slide-toggle.mjs +0 -5
- package/esm2022/slide-toggle/public_api.mjs +0 -2
- package/esm2022/slide-toggle/slide-toggle.component.mjs +0 -66
- package/esm2022/snackbars-thread/agorapulse-ui-components-snackbars-thread.mjs +0 -5
- package/esm2022/snackbars-thread/component/snackbars-thread.component.mjs +0 -93
- package/esm2022/snackbars-thread/model/snackbars-thread.model.mjs +0 -44
- package/esm2022/snackbars-thread/public_api.mjs +0 -4
- package/esm2022/snackbars-thread/service/snackbars-thread.service.mjs +0 -47
- package/esm2022/snackbars-thread/utils/const/snackbars-thread.const.mjs +0 -13
- package/esm2022/social-button/agorapulse-ui-components-social-button.mjs +0 -5
- package/esm2022/social-button/public_api.mjs +0 -2
- package/esm2022/social-button/social-button.component.mjs +0 -164
- package/esm2022/split-button/agorapulse-ui-components-split-button.mjs +0 -5
- package/esm2022/split-button/public_api.mjs +0 -2
- package/esm2022/split-button/split-button.component.mjs +0 -122
- package/esm2022/src/lib/agorapulse-ui-components.module.mjs +0 -200
- package/esm2022/status/agorapulse-ui-components-status.mjs +0 -5
- package/esm2022/status/public_api.mjs +0 -2
- package/esm2022/status/status.component.mjs +0 -21
- package/esm2022/status-card/agorapulse-ui-components-status-card.mjs +0 -5
- package/esm2022/status-card/public_api.mjs +0 -2
- package/esm2022/status-card/status-card.component.mjs +0 -23
- package/esm2022/stepper/agorapulse-ui-components-stepper.mjs +0 -5
- package/esm2022/stepper/public_api.mjs +0 -3
- package/esm2022/stepper/step.model.mjs +0 -2
- package/esm2022/stepper/stepper.component.mjs +0 -38
- package/esm2022/tag/agorapulse-ui-components-tag.mjs +0 -5
- package/esm2022/tag/public_api.mjs +0 -2
- package/esm2022/tag/tag.component.mjs +0 -35
- package/esm2022/text-measurement/agorapulse-ui-components-text-measurement.mjs +0 -5
- package/esm2022/text-measurement/public_api.mjs +0 -2
- package/esm2022/text-measurement/text-measurement.service.mjs +0 -29
- package/esm2022/textarea/agorapulse-ui-components-textarea.mjs +0 -5
- package/esm2022/textarea/public_api.mjs +0 -2
- package/esm2022/textarea/textarea.directive.mjs +0 -37
- package/esm2022/toggle/agorapulse-ui-components-toggle.mjs +0 -5
- package/esm2022/toggle/public_api.mjs +0 -2
- package/esm2022/toggle/toggle.component.mjs +0 -208
- package/esm2022/tooltip/agorapulse-ui-components-tooltip.mjs +0 -5
- package/esm2022/tooltip/public_api.mjs +0 -2
- package/esm2022/tooltip/tooltip.directive.mjs +0 -401
- package/esm2022/tooltip/tooltip.service.mjs +0 -29
- package/form-field/form-field.component.d.ts +0 -5
- package/form-field/public_api.d.ts +0 -1
- package/form-message/form-message.component.d.ts +0 -12
- package/form-message/public_api.d.ts +0 -1
- package/icon-button/icon-button.component.d.ts +0 -40
- package/icon-button/public_api.d.ts +0 -1
- package/infobox/infobox.component.d.ts +0 -26
- package/infobox/public_api.d.ts +0 -1
- package/input/input.directive.d.ts +0 -7
- package/input/public_api.d.ts +0 -1
- package/input-group/input-group.component.d.ts +0 -6
- package/input-group/input-prefix/input-prefix.component.d.ts +0 -5
- package/input-group/public_api.d.ts +0 -2
- package/input-search/input-search.component.d.ts +0 -32
- package/input-search/public_api.d.ts +0 -1
- package/labels/label-list.component.d.ts +0 -34
- package/labels/label.component.d.ts +0 -23
- package/labels/public_api.d.ts +0 -2
- package/labels-selector/labels-selector.component.d.ts +0 -42
- package/labels-selector/public_api.d.ts +0 -1
- package/legacy/input/input.component.d.ts +0 -64
- package/legacy/input/public_api.d.ts +0 -1
- package/legacy/select/public_api.d.ts +0 -1
- package/legacy/select/select.component.d.ts +0 -122
- package/legacy/textarea/public_api.d.ts +0 -1
- package/legacy/textarea/textarea.component.d.ts +0 -53
- package/media-display-overlay/media-display-overlay-dialog.component.d.ts +0 -42
- package/media-display-overlay/public_api.d.ts +0 -1
- package/modal/modal.component.d.ts +0 -54
- package/modal/public_api.d.ts +0 -1
- package/nav-selector/directives/nav-selector-popover-trigger.directive.d.ts +0 -25
- package/nav-selector/directives/tree-node-accessibility.directive.d.ts +0 -9
- package/nav-selector/nav-selector-category/nav-selector-category.component.d.ts +0 -28
- package/nav-selector/nav-selector-category/nav-selector-category.presenter.d.ts +0 -13
- package/nav-selector/nav-selector-group/nav-selector-group.component.d.ts +0 -37
- package/nav-selector/nav-selector-group/nav-selector-group.presenter.d.ts +0 -16
- package/nav-selector/nav-selector-leaf/nav-selector-leaf.component.d.ts +0 -48
- package/nav-selector/nav-selector-leaf/nav-selector-leaf.presenter.d.ts +0 -18
- package/nav-selector/nav-selector-leaf-detail/nav-selector-leaf-detail.component.d.ts +0 -13
- package/nav-selector/nav-selector-leaf-detail/nav-selector-leaf-detail.presenter.d.ts +0 -10
- package/nav-selector/nav-selector-leaf-details/nav-selector-leaf-details.component.d.ts +0 -24
- package/nav-selector/nav-selector-leaf-details/nav-selector-leaf-details.presenter.d.ts +0 -14
- package/nav-selector/nav-selector-popover/nav-selector-popover-item.component.d.ts +0 -14
- package/nav-selector/nav-selector-popover/nav-selector-popover.component.d.ts +0 -40
- package/nav-selector/nav-selector.component.d.ts +0 -40
- package/nav-selector/nav-selector.d.ts +0 -270
- package/nav-selector/nav-selector.state.d.ts +0 -47
- package/nav-selector/public_api.d.ts +0 -3
- package/nav-selector/testing/nav-selector-entry.mock.d.ts +0 -67
- package/nav-selector/testing/public_api.d.ts +0 -1
- package/nav-selector/utils/leaf.utils.d.ts +0 -20
- package/nav-selector/utils/nav-selector.accessibility.d.ts +0 -52
- package/nav-selector/utils/nav-selector.builder.d.ts +0 -32
- package/nav-selector/utils/nav-selector.filter.d.ts +0 -32
- package/nav-selector/utils/nav-selector.folding.d.ts +0 -73
- package/nav-selector/utils/nav-selector.merger.d.ts +0 -23
- package/nav-selector/utils/nav-selector.minifying.d.ts +0 -29
- package/nav-selector/utils/nav-selector.multi-select.d.ts +0 -54
- package/nav-selector/utils/nav-selector.single-select.d.ts +0 -17
- package/nav-selector/utils/nav-selector.view-more.d.ts +0 -30
- package/neo-datepicker/day-detail.model.d.ts +0 -9
- package/neo-datepicker/day-disabled.pipe.d.ts +0 -8
- package/neo-datepicker/neo-datepicker.component.d.ts +0 -61
- package/neo-datepicker/public_api.d.ts +0 -3
- package/notification/notification.component.d.ts +0 -6
- package/notification/public_api.d.ts +0 -1
- package/paginator/paginator-button/paginator-button.component.d.ts +0 -17
- package/paginator/paginator.component.d.ts +0 -38
- package/paginator/public_api.d.ts +0 -2
- package/password-input/password-input.component.d.ts +0 -33
- package/password-input/public_api.d.ts +0 -1
- package/phone-number-input/phone-number-input.component.d.ts +0 -50
- package/phone-number-input/public_api.d.ts +0 -1
- package/popmenu/options.d.ts +0 -16
- package/popmenu/popmenu-options.interface.d.ts +0 -48
- package/popmenu/popmenu-options.service.d.ts +0 -7
- package/popmenu/popmenu.component.d.ts +0 -66
- package/popmenu/popmenu.directive.d.ts +0 -90
- package/popmenu/popmenu.module.d.ts +0 -11
- package/popmenu/public_api.d.ts +0 -4
- package/radio/public_api.d.ts +0 -1
- package/radio/radio.component.d.ts +0 -77
- package/range-slider/public_api.d.ts +0 -1
- package/range-slider/range-slider.component.d.ts +0 -35
- package/select/ap-select.module.d.ts +0 -17
- package/select/dropdown-group-item/dropdown-group-item.component.d.ts +0 -16
- package/select/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.d.ts +0 -25
- package/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.d.ts +0 -26
- package/select/dropdown-item-single-one-line/dropdown-item-single-one-line.component.d.ts +0 -20
- package/select/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.d.ts +0 -20
- package/select/dropdown-search-form/dropdown-search-form.component.d.ts +0 -32
- package/select/public_api.d.ts +0 -12
- package/select/select-base.directive.d.ts +0 -18
- package/select/select-label-multiple/select-label-multiple.component.d.ts +0 -27
- package/select/select-label-single/select-label-single.component.d.ts +0 -12
- package/select/select-multiple.directive.d.ts +0 -10
- package/select/select-single.directive.d.ts +0 -10
- package/slide-toggle/public_api.d.ts +0 -1
- package/slide-toggle/slide-toggle.component.d.ts +0 -20
- package/snackbars-thread/component/snackbars-thread.component.d.ts +0 -24
- package/snackbars-thread/model/snackbars-thread.model.d.ts +0 -36
- package/snackbars-thread/public_api.d.ts +0 -3
- package/snackbars-thread/service/snackbars-thread.service.d.ts +0 -15
- package/snackbars-thread/utils/const/snackbars-thread.const.d.ts +0 -10
- package/social-button/public_api.d.ts +0 -1
- package/social-button/social-button.component.d.ts +0 -32
- package/split-button/public_api.d.ts +0 -1
- package/split-button/split-button.component.d.ts +0 -45
- package/src/lib/agorapulse-ui-components.module.d.ts +0 -29
- package/status/public_api.d.ts +0 -1
- package/status/status.component.d.ts +0 -9
- package/status-card/public_api.d.ts +0 -1
- package/status-card/status-card.component.d.ts +0 -13
- package/stepper/public_api.d.ts +0 -2
- package/stepper/step.model.d.ts +0 -6
- package/stepper/stepper.component.d.ts +0 -16
- package/tag/public_api.d.ts +0 -1
- package/tag/tag.component.d.ts +0 -24
- package/text-measurement/public_api.d.ts +0 -1
- package/text-measurement/text-measurement.service.d.ts +0 -8
- package/textarea/public_api.d.ts +0 -1
- package/textarea/textarea.directive.d.ts +0 -11
- package/toggle/public_api.d.ts +0 -1
- package/toggle/toggle.component.d.ts +0 -52
- package/tooltip/public_api.d.ts +0 -1
- package/tooltip/tooltip.directive.d.ts +0 -59
- package/tooltip/tooltip.service.d.ts +0 -11
|
@@ -1,319 +0,0 @@
|
|
|
1
|
-
import { booleanAttribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, forwardRef, inject, Injectable, Injector, Input, NgZone, Output, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
|
|
3
|
-
import { filter, fromEvent, Subject, takeUntil } from 'rxjs';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export const RADIO_VALUE_ACCESSOR = {
|
|
6
|
-
provide: NG_VALUE_ACCESSOR,
|
|
7
|
-
useExisting: forwardRef(() => RadioComponent),
|
|
8
|
-
multi: true,
|
|
9
|
-
};
|
|
10
|
-
export class RadioControlRegistry {
|
|
11
|
-
accessors = [];
|
|
12
|
-
add(control, accessor) {
|
|
13
|
-
this.accessors.push([control, accessor]);
|
|
14
|
-
}
|
|
15
|
-
remove(accessor) {
|
|
16
|
-
this.accessors = this.accessors.filter(([, radioComponent]) => {
|
|
17
|
-
return radioComponent !== accessor;
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
select(accessor) {
|
|
21
|
-
this.accessors.forEach(([ngControl, radioComponent]) => {
|
|
22
|
-
if (this.isSameGroup(ngControl, radioComponent, accessor) && radioComponent !== accessor) {
|
|
23
|
-
radioComponent.writeValue(accessor.value);
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
getIndex(accessor) {
|
|
28
|
-
return this.accessors.findIndex(([, radioComponent]) => {
|
|
29
|
-
return radioComponent === accessor;
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
getNextRadio(accessor) {
|
|
33
|
-
const index = this.getIndex(accessor);
|
|
34
|
-
const nextIndex = index + 1;
|
|
35
|
-
if (nextIndex >= this.accessors.length) {
|
|
36
|
-
return this.accessors[0][1];
|
|
37
|
-
}
|
|
38
|
-
const nextRadio = this.accessors[nextIndex];
|
|
39
|
-
return nextRadio ? nextRadio[1] : null;
|
|
40
|
-
}
|
|
41
|
-
getPreviousRadio(accessor) {
|
|
42
|
-
const index = this.getIndex(accessor);
|
|
43
|
-
if (index === 0) {
|
|
44
|
-
return this.accessors[this.accessors.length - 1][1];
|
|
45
|
-
}
|
|
46
|
-
const previousIndex = index - 1;
|
|
47
|
-
const previousRadio = this.accessors[previousIndex];
|
|
48
|
-
return previousRadio ? previousRadio[1] : null;
|
|
49
|
-
}
|
|
50
|
-
blurAllGroup(accessor) {
|
|
51
|
-
this.accessors.forEach(([, radioComponent]) => {
|
|
52
|
-
if (this.isSameGroup(accessor.control, radioComponent, accessor)) {
|
|
53
|
-
radioComponent.inputElement.nativeElement.blur();
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
setNegativeTabIndexToAllExcept(accessor) {
|
|
58
|
-
this.accessors.forEach(([, radioComponent]) => {
|
|
59
|
-
if (this.isSameGroup(accessor.control, radioComponent, accessor)) {
|
|
60
|
-
if (accessor.radioId !== radioComponent.radioId) {
|
|
61
|
-
radioComponent.inputElement.nativeElement.tabIndex = -1;
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
radioComponent.inputElement.nativeElement.tabIndex = 0;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
focusPrevious(accessor) {
|
|
70
|
-
const previousRadio = this.getPreviousRadio(accessor);
|
|
71
|
-
if (previousRadio) {
|
|
72
|
-
previousRadio.inputElement.nativeElement.focus();
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
focusNext(accessor) {
|
|
76
|
-
const nextRadio = this.getNextRadio(accessor);
|
|
77
|
-
if (nextRadio) {
|
|
78
|
-
nextRadio.inputElement.nativeElement.focus();
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
getFirstCheckedRadio() {
|
|
82
|
-
const checkedRadio = this.accessors.find(([, radioComponent]) => {
|
|
83
|
-
return radioComponent.checked;
|
|
84
|
-
});
|
|
85
|
-
return checkedRadio ? checkedRadio[1] : null;
|
|
86
|
-
}
|
|
87
|
-
isSameGroup(ngControl, radioComponent, accessor) {
|
|
88
|
-
if (!ngControl.control) {
|
|
89
|
-
return false;
|
|
90
|
-
}
|
|
91
|
-
return radioComponent.name === accessor.name;
|
|
92
|
-
}
|
|
93
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RadioControlRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
94
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RadioControlRegistry, providedIn: 'root' });
|
|
95
|
-
}
|
|
96
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RadioControlRegistry, decorators: [{
|
|
97
|
-
type: Injectable,
|
|
98
|
-
args: [{
|
|
99
|
-
providedIn: 'root',
|
|
100
|
-
}]
|
|
101
|
-
}] });
|
|
102
|
-
export class RadioComponent {
|
|
103
|
-
elementRef;
|
|
104
|
-
injector = inject(Injector);
|
|
105
|
-
changeDetectorRef = inject(ChangeDetectorRef);
|
|
106
|
-
radioControlRegistry = inject(RadioControlRegistry);
|
|
107
|
-
ngZone = inject(NgZone);
|
|
108
|
-
inputElement;
|
|
109
|
-
labelElement;
|
|
110
|
-
ariaLabel = '';
|
|
111
|
-
ariaLabelledby = null;
|
|
112
|
-
ariaDescribedby = '';
|
|
113
|
-
set disabled(disabled) {
|
|
114
|
-
this._disabled = disabled;
|
|
115
|
-
}
|
|
116
|
-
get disabled() {
|
|
117
|
-
return this._disabled;
|
|
118
|
-
}
|
|
119
|
-
labelPosition = 'right';
|
|
120
|
-
radioId = '';
|
|
121
|
-
formControlName;
|
|
122
|
-
value;
|
|
123
|
-
required = false;
|
|
124
|
-
name = '';
|
|
125
|
-
// eslint-disable-next-line @angular-eslint/no-output-on-prefix
|
|
126
|
-
onClick = new EventEmitter();
|
|
127
|
-
// eslint-disable-next-line @angular-eslint/no-output-on-prefix
|
|
128
|
-
onFocus = new EventEmitter();
|
|
129
|
-
// eslint-disable-next-line @angular-eslint/no-output-on-prefix
|
|
130
|
-
onBlur = new EventEmitter();
|
|
131
|
-
inputId = '';
|
|
132
|
-
_disabled = false;
|
|
133
|
-
hasLabel = false;
|
|
134
|
-
hostDataTest;
|
|
135
|
-
control;
|
|
136
|
-
checked = false;
|
|
137
|
-
focused = false;
|
|
138
|
-
radioIndex = 0;
|
|
139
|
-
destroy$ = new Subject();
|
|
140
|
-
onModelChange = () => {
|
|
141
|
-
// ignore
|
|
142
|
-
};
|
|
143
|
-
onModelTouched = () => {
|
|
144
|
-
// ignore
|
|
145
|
-
};
|
|
146
|
-
constructor(elementRef) {
|
|
147
|
-
this.elementRef = elementRef;
|
|
148
|
-
this.hostDataTest = elementRef.nativeElement.getAttribute('data-test');
|
|
149
|
-
this.ngZone.runOutsideAngular(() => {
|
|
150
|
-
fromEvent(window, 'keydown')
|
|
151
|
-
.pipe(filter((event) => 'key' in event), takeUntil(this.destroy$))
|
|
152
|
-
.subscribe((event) => {
|
|
153
|
-
// Handle keydown event
|
|
154
|
-
switch (event.key) {
|
|
155
|
-
case 'ArrowDown':
|
|
156
|
-
case 'ArrowRight':
|
|
157
|
-
this.ngZone.run(() => {
|
|
158
|
-
if (this.focused) {
|
|
159
|
-
event.stopImmediatePropagation();
|
|
160
|
-
this.radioControlRegistry.blurAllGroup(this);
|
|
161
|
-
this.radioControlRegistry.focusNext(this);
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
break;
|
|
165
|
-
case 'ArrowUp':
|
|
166
|
-
case 'ArrowLeft':
|
|
167
|
-
this.ngZone.run(() => {
|
|
168
|
-
if (this.focused) {
|
|
169
|
-
event.stopImmediatePropagation();
|
|
170
|
-
this.radioControlRegistry.blurAllGroup(this);
|
|
171
|
-
this.radioControlRegistry.focusPrevious(this);
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
break;
|
|
175
|
-
default:
|
|
176
|
-
return;
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
ngOnChanges() {
|
|
182
|
-
if (this.labelElement) {
|
|
183
|
-
this.hasLabel = !!this.labelElement.nativeElement.textContent?.trim();
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
ngOnInit() {
|
|
187
|
-
this.control = this.injector.get(NgControl);
|
|
188
|
-
this.checkName();
|
|
189
|
-
this.radioControlRegistry.add(this.control, this);
|
|
190
|
-
this.radioIndex = this.radioControlRegistry.getIndex(this);
|
|
191
|
-
this.inputId = `${this.radioId}-${this.radioIndex}`;
|
|
192
|
-
}
|
|
193
|
-
ngAfterContentInit() {
|
|
194
|
-
if (this.labelElement) {
|
|
195
|
-
this.hasLabel = !!this.labelElement.nativeElement.textContent?.trim();
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
ngOnDestroy() {
|
|
199
|
-
this.radioControlRegistry.remove(this);
|
|
200
|
-
this.destroy$.next();
|
|
201
|
-
this.destroy$.complete();
|
|
202
|
-
}
|
|
203
|
-
handleClick(event, radioButton) {
|
|
204
|
-
event.preventDefault();
|
|
205
|
-
if (this.disabled) {
|
|
206
|
-
return;
|
|
207
|
-
}
|
|
208
|
-
this.select(event);
|
|
209
|
-
radioButton.focus();
|
|
210
|
-
}
|
|
211
|
-
select(event) {
|
|
212
|
-
if (!this.disabled && !this.checked) {
|
|
213
|
-
this.inputElement.nativeElement.checked = true;
|
|
214
|
-
this.checked = true;
|
|
215
|
-
this.onModelChange(this.value);
|
|
216
|
-
this.radioControlRegistry.select(this);
|
|
217
|
-
this.onClick.emit({ originalEvent: event, value: this.value });
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
writeValue(value) {
|
|
221
|
-
this.checked = value == this.value;
|
|
222
|
-
if (this.inputElement?.nativeElement) {
|
|
223
|
-
this.inputElement.nativeElement.checked = this.checked;
|
|
224
|
-
}
|
|
225
|
-
this.changeDetectorRef.markForCheck();
|
|
226
|
-
}
|
|
227
|
-
registerOnChange(fn) {
|
|
228
|
-
this.onModelChange = fn;
|
|
229
|
-
}
|
|
230
|
-
registerOnTouched(fn) {
|
|
231
|
-
this.onModelTouched = fn;
|
|
232
|
-
}
|
|
233
|
-
onInputFocus(event) {
|
|
234
|
-
this.focused = true;
|
|
235
|
-
if (!this.disabled && !this.checked) {
|
|
236
|
-
this.radioControlRegistry.setNegativeTabIndexToAllExcept(this);
|
|
237
|
-
this.inputElement.nativeElement.checked = true;
|
|
238
|
-
this.checked = true;
|
|
239
|
-
this.onModelChange(this.value);
|
|
240
|
-
this.onFocus.emit(event);
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
onInputBlur(event) {
|
|
244
|
-
this.focused = false;
|
|
245
|
-
this.onModelTouched();
|
|
246
|
-
this.onBlur.emit(event);
|
|
247
|
-
}
|
|
248
|
-
onChange(event) {
|
|
249
|
-
this.select(event);
|
|
250
|
-
}
|
|
251
|
-
checkName() {
|
|
252
|
-
if (this.name && this.formControlName && this.name !== this.formControlName) {
|
|
253
|
-
this.throwNameError();
|
|
254
|
-
}
|
|
255
|
-
if (!this.name && this.formControlName) {
|
|
256
|
-
this.name = this.formControlName;
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
throwNameError() {
|
|
260
|
-
throw new Error(`
|
|
261
|
-
If you define both a name and a formControlName attribute on your radio button, their values
|
|
262
|
-
must match. Ex: <p-radioButton formControlName="food" name="food"></p-radioButton>
|
|
263
|
-
`);
|
|
264
|
-
}
|
|
265
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RadioComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
266
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.9", type: RadioComponent, isStandalone: true, selector: "ap-radio", inputs: { ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], ariaDescribedby: ["aria-describedby", "ariaDescribedby"], disabled: ["disabled", "disabled", booleanAttribute], labelPosition: "labelPosition", radioId: "radioId", formControlName: "formControlName", value: "value", required: ["required", "required", booleanAttribute], name: "name" }, outputs: { onClick: "onClick", onFocus: "onFocus", onBlur: "onBlur" }, providers: [RADIO_VALUE_ACCESSOR], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "labelElement", first: true, predicate: ["label"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"radio-button-container\"\n [class.required]=\"required\"\n [class.label-left]=\"labelPosition === 'left'\">\n <input\n #input\n type=\"radio\"\n tabindex=\"0\"\n [attr.id]=\"inputId\"\n [attr.name]=\"name + '-radio-' + radioIndex\"\n [attr.value]=\"value\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.data-test]=\"hostDataTest ?? name\"\n [checked]=\"checked\"\n [required]=\"required\"\n [class.disabled]=\"disabled\"\n (change)=\"onChange($event)\"\n (blur)=\"onInputBlur($event)\"\n (focus)=\"onInputFocus($event)\" />\n <div\n class=\"radio-button\"\n [class.disabled]=\"disabled\"\n (click)=\"select($event)\"></div>\n <label\n [for]=\"inputId\"\n (click)=\"select($event)\">\n <ng-content />\n </label>\n</div>\n", styles: ["ap-radio .radio-button-container{display:flex;align-items:center;gap:var(--ref-spacing-xxs)}ap-radio .radio-button-container.label-left{flex-direction:row-reverse}ap-radio .radio-button-container input[type=radio]{transform:scale(0);position:absolute}ap-radio .radio-button-container input[type=radio]:checked~.radio-button{border-color:var(--ref-color-electric-blue-100);box-shadow:inset 0 0 0 3px var(--ref-color-white)}ap-radio .radio-button-container input[type=radio]:checked~.radio-button.disabled{background:var(--ref-color-grey-40);box-shadow:inset 0 0 0 3px var(--ref-color-grey-10)}ap-radio .radio-button-container input[type=radio]:checked:focus~.radio-button{border-color:var(--ref-color-electric-blue-100)}ap-radio .radio-button-container input[type=radio].disabled~.radio-button{pointer-events:none;cursor:default;box-shadow:inset 0 0 0 16px var(--ref-color-grey-10);border-color:var(--ref-color-grey-20)}ap-radio .radio-button-container input[type=radio].disabled~label{pointer-events:none;cursor:default;color:var(--ref-color-grey-60)}ap-radio .radio-button-container input[type=radio]:focus~.radio-button{outline:3px solid var(--ref-color-electric-blue-100);border-color:var(--ref-color-grey-80);outline-offset:1px}ap-radio .radio-button-container .radio-button{width:16px;height:16px;border-radius:100%;border:1px solid var(--ref-color-grey-60);background:var(--ref-color-electric-blue-100);box-shadow:inset 0 0 0 16px var(--ref-color-white);transition:box-shadow var(--comp-radio-transition-duration);flex-shrink:0}ap-radio .radio-button-container .radio-button:hover:not(.disabled){cursor:pointer;border-color:var(--ref-color-grey-80)}ap-radio .radio-button-container label{display:flex;align-items:center;font-family:var(--sys-text-style-body-font-family);font-size:var(--sys-text-style-body-size);font-weight:var(--sys-text-style-body-weight);line-height:var(--sys-text-style-body-line-height);color:var(--ref-color-grey-100)}ap-radio .radio-button-container label:empty{display:none}ap-radio .radio-button-container label.disabled{color:var(--ref-color-grey-60)}ap-radio .radio-button-container label:hover:not(.disabled){cursor:pointer}ap-radio.ng-invalid.ng-dirty .radio-button{border-color:var(--ref-color-red-100)}ap-radio.ng-invalid.ng-dirty .radio-button:hover{border-color:var(--ref-color-red-60)}ap-radio.ng-invalid.ng-dirty input[type=radio]:focus~.radio-button{border-color:var(--ref-color-red-60)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
267
|
-
}
|
|
268
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RadioComponent, decorators: [{
|
|
269
|
-
type: Component,
|
|
270
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-radio', standalone: true, providers: [RADIO_VALUE_ACCESSOR], encapsulation: ViewEncapsulation.None, template: "<div\n class=\"radio-button-container\"\n [class.required]=\"required\"\n [class.label-left]=\"labelPosition === 'left'\">\n <input\n #input\n type=\"radio\"\n tabindex=\"0\"\n [attr.id]=\"inputId\"\n [attr.name]=\"name + '-radio-' + radioIndex\"\n [attr.value]=\"value\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.data-test]=\"hostDataTest ?? name\"\n [checked]=\"checked\"\n [required]=\"required\"\n [class.disabled]=\"disabled\"\n (change)=\"onChange($event)\"\n (blur)=\"onInputBlur($event)\"\n (focus)=\"onInputFocus($event)\" />\n <div\n class=\"radio-button\"\n [class.disabled]=\"disabled\"\n (click)=\"select($event)\"></div>\n <label\n [for]=\"inputId\"\n (click)=\"select($event)\">\n <ng-content />\n </label>\n</div>\n", styles: ["ap-radio .radio-button-container{display:flex;align-items:center;gap:var(--ref-spacing-xxs)}ap-radio .radio-button-container.label-left{flex-direction:row-reverse}ap-radio .radio-button-container input[type=radio]{transform:scale(0);position:absolute}ap-radio .radio-button-container input[type=radio]:checked~.radio-button{border-color:var(--ref-color-electric-blue-100);box-shadow:inset 0 0 0 3px var(--ref-color-white)}ap-radio .radio-button-container input[type=radio]:checked~.radio-button.disabled{background:var(--ref-color-grey-40);box-shadow:inset 0 0 0 3px var(--ref-color-grey-10)}ap-radio .radio-button-container input[type=radio]:checked:focus~.radio-button{border-color:var(--ref-color-electric-blue-100)}ap-radio .radio-button-container input[type=radio].disabled~.radio-button{pointer-events:none;cursor:default;box-shadow:inset 0 0 0 16px var(--ref-color-grey-10);border-color:var(--ref-color-grey-20)}ap-radio .radio-button-container input[type=radio].disabled~label{pointer-events:none;cursor:default;color:var(--ref-color-grey-60)}ap-radio .radio-button-container input[type=radio]:focus~.radio-button{outline:3px solid var(--ref-color-electric-blue-100);border-color:var(--ref-color-grey-80);outline-offset:1px}ap-radio .radio-button-container .radio-button{width:16px;height:16px;border-radius:100%;border:1px solid var(--ref-color-grey-60);background:var(--ref-color-electric-blue-100);box-shadow:inset 0 0 0 16px var(--ref-color-white);transition:box-shadow var(--comp-radio-transition-duration);flex-shrink:0}ap-radio .radio-button-container .radio-button:hover:not(.disabled){cursor:pointer;border-color:var(--ref-color-grey-80)}ap-radio .radio-button-container label{display:flex;align-items:center;font-family:var(--sys-text-style-body-font-family);font-size:var(--sys-text-style-body-size);font-weight:var(--sys-text-style-body-weight);line-height:var(--sys-text-style-body-line-height);color:var(--ref-color-grey-100)}ap-radio .radio-button-container label:empty{display:none}ap-radio .radio-button-container label.disabled{color:var(--ref-color-grey-60)}ap-radio .radio-button-container label:hover:not(.disabled){cursor:pointer}ap-radio.ng-invalid.ng-dirty .radio-button{border-color:var(--ref-color-red-100)}ap-radio.ng-invalid.ng-dirty .radio-button:hover{border-color:var(--ref-color-red-60)}ap-radio.ng-invalid.ng-dirty input[type=radio]:focus~.radio-button{border-color:var(--ref-color-red-60)}\n"] }]
|
|
271
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { inputElement: [{
|
|
272
|
-
type: ViewChild,
|
|
273
|
-
args: ['input', { static: true }]
|
|
274
|
-
}], labelElement: [{
|
|
275
|
-
type: ViewChild,
|
|
276
|
-
args: ['label', { static: true }]
|
|
277
|
-
}], ariaLabel: [{
|
|
278
|
-
type: Input,
|
|
279
|
-
args: ['aria-label']
|
|
280
|
-
}], ariaLabelledby: [{
|
|
281
|
-
type: Input,
|
|
282
|
-
args: ['aria-labelledby']
|
|
283
|
-
}], ariaDescribedby: [{
|
|
284
|
-
type: Input,
|
|
285
|
-
args: ['aria-describedby']
|
|
286
|
-
}], disabled: [{
|
|
287
|
-
type: Input,
|
|
288
|
-
args: [{
|
|
289
|
-
transform: booleanAttribute,
|
|
290
|
-
}]
|
|
291
|
-
}], labelPosition: [{
|
|
292
|
-
type: Input
|
|
293
|
-
}], radioId: [{
|
|
294
|
-
type: Input,
|
|
295
|
-
args: [{
|
|
296
|
-
required: true,
|
|
297
|
-
}]
|
|
298
|
-
}], formControlName: [{
|
|
299
|
-
type: Input
|
|
300
|
-
}], value: [{
|
|
301
|
-
type: Input,
|
|
302
|
-
args: [{
|
|
303
|
-
required: true,
|
|
304
|
-
}]
|
|
305
|
-
}], required: [{
|
|
306
|
-
type: Input,
|
|
307
|
-
args: [{
|
|
308
|
-
transform: booleanAttribute,
|
|
309
|
-
}]
|
|
310
|
-
}], name: [{
|
|
311
|
-
type: Input
|
|
312
|
-
}], onClick: [{
|
|
313
|
-
type: Output
|
|
314
|
-
}], onFocus: [{
|
|
315
|
-
type: Output
|
|
316
|
-
}], onBlur: [{
|
|
317
|
-
type: Output
|
|
318
|
-
}] } });
|
|
319
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3JhZGlvL3NyYy9yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvcmFkaW8vc3JjL3JhZGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sVUFBVSxFQUNWLFFBQVEsRUFDUixLQUFLLEVBQ0wsTUFBTSxFQUlOLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFFN0QsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQWE7SUFDMUMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQztJQUM3QyxLQUFLLEVBQUUsSUFBSTtDQUNkLENBQUM7QUFLRixNQUFNLE9BQU8sb0JBQW9CO0lBQ3JCLFNBQVMsR0FBa0MsRUFBRSxDQUFDO0lBRXRELEdBQUcsQ0FBQyxPQUFrQixFQUFFLFFBQXdCO1FBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUF3QjtRQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFB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LEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDZixTQUFTO3NCQUE3QixLQUFLO3VCQUFDLFlBQVk7Z0JBQ08sY0FBYztzQkFBdkMsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBQ0csZUFBZTtzQkFBekMsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBSXJCLFFBQVE7c0JBSFgsS0FBSzt1QkFBQzt3QkFDSCxTQUFTLEVBQUUsZ0JBQWdCO3FCQUM5QjtnQkFRUSxhQUFhO3NCQUFyQixLQUFLO2dCQUlOLE9BQU87c0JBSE4sS0FBSzt1QkFBQzt3QkFDSCxRQUFRLEVBQUUsSUFBSTtxQkFDakI7Z0JBRVEsZUFBZTtzQkFBdkIsS0FBSztnQkFJTixLQUFLO3NCQUhKLEtBQUs7dUJBQUM7d0JBQ0gsUUFBUSxFQUFFLElBQUk7cUJBQ2pCO2dCQUtELFFBQVE7c0JBSFAsS0FBSzt1QkFBQzt3QkFDSCxTQUFTLEVBQUUsZ0JBQWdCO3FCQUM5QjtnQkFFUSxJQUFJO3NCQUFaLEtBQUs7Z0JBR0ksT0FBTztzQkFBaEIsTUFBTTtnQkFNRyxPQUFPO3NCQUFoQixNQUFNO2dCQUdHLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIGluamVjdCxcbiAgICBJbmplY3RhYmxlLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUHJvdmlkZXIsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmlsdGVyLCBmcm9tRXZlbnQsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY29uc3QgUkFESU9fVkFMVUVfQUNDRVNTT1I6IFByb3ZpZGVyID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhZGlvQ29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZSxcbn07XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvQ29udHJvbFJlZ2lzdHJ5IHtcbiAgICBwcml2YXRlIGFjY2Vzc29yczogW05nQ29udHJvbCwgUmFkaW9Db21wb25lbnRdW10gPSBbXTtcblxuICAgIGFkZChjb250cm9sOiBOZ0NvbnRyb2wsIGFjY2Vzc29yOiBSYWRpb0NvbXBvbmVudCkge1xuICAgICAgICB0aGlzLmFjY2Vzc29ycy5wdXNoKFtjb250cm9sLCBhY2Nlc3Nvcl0pO1xuICAgIH1cblxuICAgIHJlbW92ZShhY2Nlc3NvcjogUmFkaW9Db21wb25lbnQpIHtcbiAgICAgICAgdGhpcy5hY2Nlc3NvcnMgPSB0aGlzLmFjY2Vzc29ycy5maWx0ZXIoKFssIHJhZGlvQ29tcG9uZW50XSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHJhZGlvQ29tcG9uZW50ICE9PSBhY2Nlc3NvcjtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2VsZWN0KGFjY2Vzc29yOiBSYWRpb0NvbXBvbmVudCkge1xuICAgICAgICB0aGlzLmFjY2Vzc29ycy5mb3JFYWNoKChbbmdDb250cm9sLCByYWRpb0NvbXBvbmVudF0pID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzU2FtZUdyb3VwKG5nQ29udHJvbCwgcmFkaW9Db21wb25lbnQsIGFjY2Vzc29yKSAmJiByYWRpb0NvbXBvbmVudCAhPT0gYWNjZXNzb3IpIHtcbiAgICAgICAgICAgICAgICByYWRpb0NvbXBvbmVudC53cml0ZVZhbHVlKGFjY2Vzc29yLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0SW5kZXgoYWNjZXNzb3I6IFJhZGlvQ29tcG9uZW50KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXNzb3JzLmZpbmRJbmRleCgoWywgcmFkaW9Db21wb25lbnRdKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmFkaW9Db21wb25lbnQgPT09IGFjY2Vzc29yO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXROZXh0UmFkaW8oYWNjZXNzb3I6IFJhZGlvQ29tcG9uZW50KTogUmFkaW9Db21wb25lbnQgfCBudWxsIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmdldEluZGV4KGFjY2Vzc29yKTtcbiAgICAgICAgY29uc3QgbmV4dEluZGV4ID0gaW5kZXggKyAxO1xuICAgICAgICBpZiAobmV4dEluZGV4ID49IHRoaXMuYWNjZXNzb3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXNzb3JzWzBdWzFdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5leHRSYWRpbyA9IHRoaXMuYWNjZXNzb3JzW25leHRJbmRleF07XG4gICAgICAgIHJldHVybiBuZXh0UmFkaW8gPyBuZXh0UmFkaW9bMV0gOiBudWxsO1xuICAgIH1cblxuICAgIGdldFByZXZpb3VzUmFkaW8oYWNjZXNzb3I6IFJhZGlvQ29tcG9uZW50KTogUmFkaW9Db21wb25lbnQgfCBudWxsIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmdldEluZGV4KGFjY2Vzc29yKTtcbiAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hY2Nlc3NvcnNbdGhpcy5hY2Nlc3NvcnMubGVuZ3RoIC0gMV1bMV07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHJldmlvdXNJbmRleCA9IGluZGV4IC0gMTtcbiAgICAgICAgY29uc3QgcHJldmlvdXNSYWRpbyA9IHRoaXMuYWNjZXNzb3JzW3ByZXZpb3VzSW5kZXhdO1xuICAgICAgICByZXR1cm4gcHJldmlvdXNSYWRpbyA/IHByZXZpb3VzUmFkaW9bMV0gOiBudWxsO1xuICAgIH1cblxuICAgIGJsdXJBbGxHcm91cChhY2Nlc3NvcjogUmFkaW9Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY2Nlc3NvcnMuZm9yRWFjaCgoWywgcmFkaW9Db21wb25lbnRdKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1NhbWVHcm91cChhY2Nlc3Nvci5jb250cm9sLCByYWRpb0NvbXBvbmVudCwgYWNjZXNzb3IpKSB7XG4gICAgICAgICAgICAgICAgcmFkaW9Db21wb25lbnQuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXROZWdhdGl2ZVRhYkluZGV4VG9BbGxFeGNlcHQoYWNjZXNzb3I6IFJhZGlvQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWNjZXNzb3JzLmZvckVhY2goKFssIHJhZGlvQ29tcG9uZW50XSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNTYW1lR3JvdXAoYWNjZXNzb3IuY29udHJvbCwgcmFkaW9Db21wb25lbnQsIGFjY2Vzc29yKSkge1xuICAgICAgICAgICAgICAgIGlmIChhY2Nlc3Nvci5yYWRpb0lkICE9PSByYWRpb0NvbXBvbmVudC5yYWRpb0lkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJhZGlvQ29tcG9uZW50LmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnRhYkluZGV4ID0gLTE7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmFkaW9Db21wb25lbnQuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGFiSW5kZXggPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZm9jdXNQcmV2aW91cyhhY2Nlc3NvcjogUmFkaW9Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcHJldmlvdXNSYWRpbyA9IHRoaXMuZ2V0UHJldmlvdXNSYWRpbyhhY2Nlc3Nvcik7XG4gICAgICAgIGlmIChwcmV2aW91c1JhZGlvKSB7XG4gICAgICAgICAgICBwcmV2aW91c1JhZGlvLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1c05leHQoYWNjZXNzb3I6IFJhZGlvQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5leHRSYWRpbyA9IHRoaXMuZ2V0TmV4dFJhZGlvKGFjY2Vzc29yKTtcbiAgICAgICAgaWYgKG5leHRSYWRpbykge1xuICAgICAgICAgICAgbmV4dFJhZGlvLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRGaXJzdENoZWNrZWRSYWRpbygpOiBSYWRpb0NvbXBvbmVudCB8IG51bGwge1xuICAgICAgICBjb25zdCBjaGVja2VkUmFkaW8gPSB0aGlzLmFjY2Vzc29ycy5maW5kKChbLCByYWRpb0NvbXBvbmVudF0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiByYWRpb0NvbXBvbmVudC5jaGVja2VkO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNoZWNrZWRSYWRpbyA/IGNoZWNrZWRSYWRpb1sxXSA6IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1NhbWVHcm91cChuZ0NvbnRyb2w6IE5nQ29udHJvbCwgcmFkaW9Db21wb25lbnQ6IFJhZGlvQ29tcG9uZW50LCBhY2Nlc3NvcjogUmFkaW9Db21wb25lbnQpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFuZ0NvbnRyb2wuY29udHJvbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByYWRpb0NvbXBvbmVudC5uYW1lID09PSBhY2Nlc3Nvci5uYW1lO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc2VsZWN0b3I6ICdhcC1yYWRpbycsXG4gICAgc3R5bGVVcmxzOiBbJy4vcmFkaW8uY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1JBRElPX1ZBTFVFX0FDQ0VTU09SXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJhZGlvQ29udHJvbFJlZ2lzdHJ5OiBSYWRpb0NvbnRyb2xSZWdpc3RyeSA9IGluamVjdChSYWRpb0NvbnRyb2xSZWdpc3RyeSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ2xhYmVsJywgeyBzdGF0aWM6IHRydWUgfSkgbGFiZWxFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgICBASW5wdXQoJ2FyaWEtbGFiZWwnKSBhcmlhTGFiZWwgPSAnJztcbiAgICBASW5wdXQoJ2FyaWEtbGFiZWxsZWRieScpIGFyaWFMYWJlbGxlZGJ5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoJ2FyaWEtZGVzY3JpYmVkYnknKSBhcmlhRGVzY3JpYmVkYnkgPSAnJztcbiAgICBASW5wdXQoe1xuICAgICAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgfSlcbiAgICBzZXQgZGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICB9XG5cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG4gICAgQElucHV0KCkgbGFiZWxQb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdyaWdodCc7XG4gICAgQElucHV0KHtcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSlcbiAgICByYWRpb0lkID0gJyc7XG4gICAgQElucHV0KCkgZm9ybUNvbnRyb2xOYW1lITogc3RyaW5nO1xuICAgIEBJbnB1dCh7XG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pXG4gICAgdmFsdWU6IHVua25vd247XG4gICAgQElucHV0KHtcbiAgICAgICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuICAgIH0pXG4gICAgcmVxdWlyZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBuYW1lID0gJyc7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICBAT3V0cHV0KCkgb25DbGljazogRXZlbnRFbWl0dGVyPHtcbiAgICAgICAgb3JpZ2luYWxFdmVudDogRXZlbnQ7XG4gICAgICAgIHZhbHVlOiB1bmtub3duO1xuICAgIH0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gICAgQE91dHB1dCgpIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIEBPdXRwdXQoKSBvbkJsdXI6IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGlucHV0SWQgPSAnJztcbiAgICBfZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBoYXNMYWJlbCA9IGZhbHNlO1xuICAgIGhvc3REYXRhVGVzdDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGNvbnRyb2whOiBOZ0NvbnRyb2w7XG4gICAgY2hlY2tlZCA9IGZhbHNlO1xuICAgIGZvY3VzZWQgPSBmYWxzZTtcbiAgICByYWRpb0luZGV4ID0gMDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHB1YmxpYyBvbk1vZGVsQ2hhbmdlOiAodmFsdWU6IHVua25vd24pID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgICAgIC8vIGlnbm9yZVxuICAgIH07XG5cbiAgICBwdWJsaWMgb25Nb2RlbFRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgICAgIC8vIGlnbm9yZVxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5ob3N0RGF0YVRlc3QgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXRlc3QnKTtcblxuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQod2luZG93LCAna2V5ZG93bicpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcigoZXZlbnQpOiBldmVudCBpcyBLZXlib2FyZEV2ZW50ID0+ICdrZXknIGluIGV2ZW50KSxcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBrZXlkb3duIGV2ZW50XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9jdXNlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJhZGlvQ29udHJvbFJlZ2lzdHJ5LmJsdXJBbGxHcm91cCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmFkaW9Db250cm9sUmVnaXN0cnkuZm9jdXNOZXh0KHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9jdXNlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJhZGlvQ29udHJvbFJlZ2lzdHJ5LmJsdXJBbGxHcm91cCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmFkaW9Db250cm9sUmVnaXN0cnkuZm9jdXNQcmV2aW91cyh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmxhYmVsRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5oYXNMYWJlbCA9ICEhdGhpcy5sYWJlbEVsZW1lbnQubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudD8udHJpbSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuY29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCk7XG4gICAgICAgIHRoaXMuY2hlY2tOYW1lKCk7XG4gICAgICAgIHRoaXMucmFkaW9Db250cm9sUmVnaXN0cnkuYWRkKHRoaXMuY29udHJvbCwgdGhpcyk7XG4gICAgICAgIHRoaXMucmFkaW9JbmRleCA9IHRoaXMucmFkaW9Db250cm9sUmVnaXN0cnkuZ2V0SW5kZXgodGhpcyk7XG4gICAgICAgIHRoaXMuaW5wdXRJZCA9IGAke3RoaXMucmFkaW9JZH0tJHt0aGlzLnJhZGlvSW5kZXh9YDtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmxhYmVsRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5oYXNMYWJlbCA9ICEhdGhpcy5sYWJlbEVsZW1lbnQubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudD8udHJpbSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMucmFkaW9Db250cm9sUmVnaXN0cnkucmVtb3ZlKHRoaXMpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIGhhbmRsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCByYWRpb0J1dHRvbjogSFRNTElucHV0RWxlbWVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3QoZXZlbnQpO1xuICAgICAgICByYWRpb0J1dHRvbi5mb2N1cygpO1xuICAgIH1cblxuICAgIHNlbGVjdChldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5yYWRpb0NvbnRyb2xSZWdpc3RyeS5zZWxlY3QodGhpcyk7XG4gICAgICAgICAgICB0aGlzLm9uQ2xpY2suZW1pdCh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCB2YWx1ZTogdGhpcy52YWx1ZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGVja2VkID0gdmFsdWUgPT0gdGhpcy52YWx1ZTtcblxuICAgICAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHRoaXMuY2hlY2tlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uTW9kZWxUb3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgb25JbnB1dEZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5jaGVja2VkKSB7XG4gICAgICAgICAgICB0aGlzLnJhZGlvQ29udHJvbFJlZ2lzdHJ5LnNldE5lZ2F0aXZlVGFiSW5kZXhUb0FsbEV4Y2VwdCh0aGlzKTtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5vbkZvY3VzLmVtaXQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JbnB1dEJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMub25Nb2RlbFRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5vbkJsdXIuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgb25DaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrTmFtZSgpIHtcbiAgICAgICAgaWYgKHRoaXMubmFtZSAmJiB0aGlzLmZvcm1Db250cm9sTmFtZSAmJiB0aGlzLm5hbWUgIT09IHRoaXMuZm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICAgICAgICB0aGlzLnRocm93TmFtZUVycm9yKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLm5hbWUgJiYgdGhpcy5mb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMubmFtZSA9IHRoaXMuZm9ybUNvbnRyb2xOYW1lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0aHJvd05hbWVFcnJvcigpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcbiAgICAgICAgICBJZiB5b3UgZGVmaW5lIGJvdGggYSBuYW1lIGFuZCBhIGZvcm1Db250cm9sTmFtZSBhdHRyaWJ1dGUgb24geW91ciByYWRpbyBidXR0b24sIHRoZWlyIHZhbHVlc1xuICAgICAgICAgIG11c3QgbWF0Y2guIEV4OiA8cC1yYWRpb0J1dHRvbiBmb3JtQ29udHJvbE5hbWU9XCJmb29kXCIgbmFtZT1cImZvb2RcIj48L3AtcmFkaW9CdXR0b24+XG4gICAgICAgIGApO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cInJhZGlvLWJ1dHRvbi1jb250YWluZXJcIlxuICAgIFtjbGFzcy5yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW2NsYXNzLmxhYmVsLWxlZnRdPVwibGFiZWxQb3NpdGlvbiA9PT0gJ2xlZnQnXCI+XG4gICAgPGlucHV0XG4gICAgICAgICNpbnB1dFxuICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICBbYXR0ci5pZF09XCJpbnB1dElkXCJcbiAgICAgICAgW2F0dHIubmFtZV09XCJuYW1lICsgJy1yYWRpby0nICsgcmFkaW9JbmRleFwiXG4gICAgICAgIFthdHRyLnZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cImNoZWNrZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCB8fCBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZGJ5XCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkYnlcIlxuICAgICAgICBbYXR0ci5kYXRhLXRlc3RdPVwiaG9zdERhdGFUZXN0ID8/IG5hbWVcIlxuICAgICAgICBbY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXG4gICAgICAgIChmb2N1cyk9XCJvbklucHV0Rm9jdXMoJGV2ZW50KVwiIC8+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInJhZGlvLWJ1dHRvblwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3QoJGV2ZW50KVwiPjwvZGl2PlxuICAgIDxsYWJlbFxuICAgICAgICBbZm9yXT1cImlucHV0SWRcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0KCRldmVudClcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICA8L2xhYmVsPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public_api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdvcmFwdWxzZS11aS1jb21wb25lbnRzLXJhbmdlLXNsaWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9yYW5nZS1zbGlkZXIvc3JjL2Fnb3JhcHVsc2UtdWktY29tcG9uZW50cy1yYW5nZS1zbGlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './range-slider.component';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9yYW5nZS1zbGlkZXIvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcmFuZ2Utc2xpZGVyLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
import { Component, forwardRef, Input } from '@angular/core';
|
|
2
|
-
import { NG_VALIDATORS, NG_VALUE_ACCESSOR, ReactiveFormsModule, Validators, } from '@angular/forms';
|
|
3
|
-
import { MatSliderModule } from '@angular/material/slider';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/forms";
|
|
6
|
-
import * as i2 from "@angular/material/slider";
|
|
7
|
-
export class RangeSliderComponent {
|
|
8
|
-
fb;
|
|
9
|
-
set min(min) {
|
|
10
|
-
this.minimumFormControl.setValue(min);
|
|
11
|
-
this.change();
|
|
12
|
-
}
|
|
13
|
-
get min() {
|
|
14
|
-
return this.minFormControl.getRawValue();
|
|
15
|
-
}
|
|
16
|
-
set max(max) {
|
|
17
|
-
this.maximumFormControl.setValue(max);
|
|
18
|
-
this.change();
|
|
19
|
-
}
|
|
20
|
-
get max() {
|
|
21
|
-
return this.maxFormControl.getRawValue();
|
|
22
|
-
}
|
|
23
|
-
rangeSliderFormGroup;
|
|
24
|
-
constructor(fb) {
|
|
25
|
-
this.fb = fb;
|
|
26
|
-
const minimumValidator = (control) => {
|
|
27
|
-
let errors = null;
|
|
28
|
-
const rangeFormValue = control.getRawValue();
|
|
29
|
-
if (rangeFormValue.min && rangeFormValue.minimum && rangeFormValue.min < rangeFormValue.minimum) {
|
|
30
|
-
errors = {
|
|
31
|
-
minimumError: {
|
|
32
|
-
expectedMin: rangeFormValue.minimum,
|
|
33
|
-
currentMin: rangeFormValue.min,
|
|
34
|
-
},
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
return errors;
|
|
38
|
-
};
|
|
39
|
-
const minimumRequiredValidator = (control) => {
|
|
40
|
-
let errors = null;
|
|
41
|
-
const rangeFormValue = control.getRawValue();
|
|
42
|
-
if (rangeFormValue.min == undefined) {
|
|
43
|
-
errors = {
|
|
44
|
-
minimumRequired: true,
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
return errors;
|
|
48
|
-
};
|
|
49
|
-
const maximumValidator = (control) => {
|
|
50
|
-
let errors = null;
|
|
51
|
-
const rangeFormValue = control.getRawValue();
|
|
52
|
-
if (rangeFormValue.max && rangeFormValue.maximum && rangeFormValue.max > rangeFormValue.maximum) {
|
|
53
|
-
errors = {
|
|
54
|
-
maximumError: {
|
|
55
|
-
expectedMax: rangeFormValue.maximum,
|
|
56
|
-
currentMax: rangeFormValue.max,
|
|
57
|
-
},
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
return errors;
|
|
61
|
-
};
|
|
62
|
-
const maximumRequiredValidator = (control) => {
|
|
63
|
-
let errors = null;
|
|
64
|
-
const rangeFormValue = control.getRawValue();
|
|
65
|
-
if (rangeFormValue.max == undefined) {
|
|
66
|
-
errors = {
|
|
67
|
-
maximumRequired: true,
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
return errors;
|
|
71
|
-
};
|
|
72
|
-
this.rangeSliderFormGroup = fb.group({
|
|
73
|
-
maximum: fb.control(0, { nonNullable: true }),
|
|
74
|
-
minimum: fb.control(100, { nonNullable: true }),
|
|
75
|
-
min: fb.control(undefined, { nonNullable: true }),
|
|
76
|
-
max: fb.control(undefined, { nonNullable: true }),
|
|
77
|
-
}, { validators: Validators.compose([minimumRequiredValidator, maximumRequiredValidator, minimumValidator, maximumValidator]) });
|
|
78
|
-
}
|
|
79
|
-
propagateChange = null;
|
|
80
|
-
propagateOnTouch = null;
|
|
81
|
-
registerOnChange(fn) {
|
|
82
|
-
this.propagateChange = fn;
|
|
83
|
-
}
|
|
84
|
-
registerOnTouched(fn) {
|
|
85
|
-
this.propagateOnTouch = fn;
|
|
86
|
-
}
|
|
87
|
-
get minimum() {
|
|
88
|
-
return this.minimumFormControl.getRawValue();
|
|
89
|
-
}
|
|
90
|
-
get maximum() {
|
|
91
|
-
return this.maximumFormControl.getRawValue();
|
|
92
|
-
}
|
|
93
|
-
get minFormControl() {
|
|
94
|
-
return this.rangeSliderFormGroup.controls.min;
|
|
95
|
-
}
|
|
96
|
-
get minimumFormControl() {
|
|
97
|
-
return this.rangeSliderFormGroup.controls.minimum;
|
|
98
|
-
}
|
|
99
|
-
get maximumFormControl() {
|
|
100
|
-
return this.rangeSliderFormGroup.controls.maximum;
|
|
101
|
-
}
|
|
102
|
-
get maxFormControl() {
|
|
103
|
-
return this.rangeSliderFormGroup.controls.max;
|
|
104
|
-
}
|
|
105
|
-
writeValue(inputRange) {
|
|
106
|
-
this.minFormControl.setValue(inputRange.min);
|
|
107
|
-
this.maxFormControl.setValue(inputRange.max);
|
|
108
|
-
}
|
|
109
|
-
change() {
|
|
110
|
-
if (this.propagateChange) {
|
|
111
|
-
const formValue = this.rangeSliderFormGroup.getRawValue();
|
|
112
|
-
this.propagateChange({
|
|
113
|
-
min: formValue.min,
|
|
114
|
-
max: formValue.max,
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
validate() {
|
|
119
|
-
return this.rangeSliderFormGroup.errors;
|
|
120
|
-
}
|
|
121
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RangeSliderComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
122
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: RangeSliderComponent, isStandalone: true, selector: "ap-range-slider", inputs: { min: "min", max: "max" }, providers: [
|
|
123
|
-
{
|
|
124
|
-
provide: NG_VALUE_ACCESSOR,
|
|
125
|
-
useExisting: forwardRef(() => RangeSliderComponent),
|
|
126
|
-
multi: true,
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
provide: NG_VALIDATORS,
|
|
130
|
-
useExisting: forwardRef(() => RangeSliderComponent),
|
|
131
|
-
multi: true,
|
|
132
|
-
},
|
|
133
|
-
], ngImport: i0, template: "<div\n class=\"slider-wrapper\"\n [formGroup]=\"rangeSliderFormGroup\">\n <div class=\"number\">\n <span>{{ min }}</span>\n </div>\n <mat-slider\n class=\"slider\"\n [min]=\"minimum\"\n [max]=\"maximum\">\n <input\n matSliderStartThumb\n formControlName=\"min\"\n (change)=\"change()\" />\n <input\n matSliderEndThumb\n formControlName=\"max\"\n (change)=\"change()\" />\n </mat-slider>\n <div class=\"number\">\n <span>{{ max > maximum ? max + '+' : max }}</span>\n </div>\n</div>\n", styles: [":host{width:100%;height:52px}:host .slider-wrapper{display:flex;justify-content:space-between;align-items:center;gap:var(--ref-spacing-xxs)}:host .slider-wrapper .slider{flex-grow:2}:host .slider-wrapper .slider .mat-slider-thumb{background-color:var(--ref-color-electric-blue-100)}:host .slider-wrapper .number{flex-shrink:0;display:flex;justify-content:center;align-items:center;width:46px;height:36px;border:1px solid var(--ref-color-grey-20);border-radius:3px}::ng-deep .slider-wrapper .mat-mdc-slider .mdc-slider__thumb--focused .mdc-slider__thumb-knob{background-color:var(--ref-color-white);border:3px solid var(--ref-color-electric-blue-100)}::ng-deep .slider-wrapper .mat-mdc-slider .mdc-slider__thumb-knob{background-color:var(--ref-color-white);border:3px solid var(--ref-color-electric-blue-100);width:var(--ref-spacing-md);height:var(--ref-spacing-md)}::ng-deep .slider-wrapper .mat-mdc-slider .mdc-slider__track--active_fill{border-color:var(--ref-color-electric-blue-150)}::ng-deep .slider-wrapper .mat-mdc-slider .mdc-slider__track--active{height:var(--ref-spacing-xxxs)}::ng-deep .slider-wrapper .mat-mdc-slider .mdc-slider__track--inactive{background-color:var(--ref-color-grey-20)}\n"], dependencies: [{ kind: "ngmodule", type: MatSliderModule }, { kind: "component", type: i2.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: i2.MatSliderRangeThumb, selector: "input[matSliderStartThumb], input[matSliderEndThumb]", exportAs: ["matSliderRangeThumb"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
134
|
-
}
|
|
135
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RangeSliderComponent, decorators: [{
|
|
136
|
-
type: Component,
|
|
137
|
-
args: [{ selector: 'ap-range-slider', standalone: true, imports: [MatSliderModule, ReactiveFormsModule], providers: [
|
|
138
|
-
{
|
|
139
|
-
provide: NG_VALUE_ACCESSOR,
|
|
140
|
-
useExisting: forwardRef(() => RangeSliderComponent),
|
|
141
|
-
multi: true,
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
provide: NG_VALIDATORS,
|
|
145
|
-
useExisting: forwardRef(() => RangeSliderComponent),
|
|
146
|
-
multi: true,
|
|
147
|
-
},
|
|
148
|
-
], template: "<div\n class=\"slider-wrapper\"\n [formGroup]=\"rangeSliderFormGroup\">\n <div class=\"number\">\n <span>{{ min }}</span>\n </div>\n <mat-slider\n class=\"slider\"\n [min]=\"minimum\"\n [max]=\"maximum\">\n <input\n matSliderStartThumb\n formControlName=\"min\"\n (change)=\"change()\" />\n <input\n matSliderEndThumb\n formControlName=\"max\"\n (change)=\"change()\" />\n </mat-slider>\n <div class=\"number\">\n <span>{{ max > maximum ? max + '+' : max }}</span>\n </div>\n</div>\n", styles: [":host{width:100%;height:52px}:host .slider-wrapper{display:flex;justify-content:space-between;align-items:center;gap:var(--ref-spacing-xxs)}:host .slider-wrapper .slider{flex-grow:2}:host .slider-wrapper .slider .mat-slider-thumb{background-color:var(--ref-color-electric-blue-100)}:host .slider-wrapper .number{flex-shrink:0;display:flex;justify-content:center;align-items:center;width:46px;height:36px;border:1px solid var(--ref-color-grey-20);border-radius:3px}::ng-deep .slider-wrapper .mat-mdc-slider .mdc-slider__thumb--focused .mdc-slider__thumb-knob{background-color:var(--ref-color-white);border:3px solid var(--ref-color-electric-blue-100)}::ng-deep .slider-wrapper .mat-mdc-slider .mdc-slider__thumb-knob{background-color:var(--ref-color-white);border:3px solid var(--ref-color-electric-blue-100);width:var(--ref-spacing-md);height:var(--ref-spacing-md)}::ng-deep .slider-wrapper .mat-mdc-slider .mdc-slider__track--active_fill{border-color:var(--ref-color-electric-blue-150)}::ng-deep .slider-wrapper .mat-mdc-slider .mdc-slider__track--active{height:var(--ref-spacing-xxxs)}::ng-deep .slider-wrapper .mat-mdc-slider .mdc-slider__track--inactive{background-color:var(--ref-color-grey-20)}\n"] }]
|
|
149
|
-
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { min: [{
|
|
150
|
-
type: Input
|
|
151
|
-
}], max: [{
|
|
152
|
-
type: Input
|
|
153
|
-
}] } });
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2Utc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9yYW5nZS1zbGlkZXIvc3JjL3JhbmdlLXNsaWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvcmFuZ2Utc2xpZGVyL3NyYy9yYW5nZS1zbGlkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFNSCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUluQixVQUFVLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUE2QjNELE1BQU0sT0FBTyxvQkFBb0I7SUE0QlQ7SUEzQnBCLElBQ0ksR0FBRyxDQUFDLEdBQVc7UUFDZixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0gsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUNJLEdBQUcsQ0FBQyxHQUFXO1FBQ2YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELElBQUksR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsb0JBQW9CLENBS2pCO0lBRUgsWUFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixF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bSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBGb3JtQnVpbGRlcixcbiAgICBGb3JtQ29udHJvbCxcbiAgICBGb3JtR3JvdXAsXG4gICAgTkdfVkFMSURBVE9SUyxcbiAgICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgVmFsaWRhdG9yLFxuICAgIFZhbGlkYXRvckZuLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdFNsaWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlcic7XG5cbmV4cG9ydCB0eXBlIFJhbmdlU2xpZGVyID0geyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfTtcbnR5cGUgUmFuZ2VGb3JtVmFsdWUgPSB7XG4gICAgbWluaW11bTogbnVtYmVyO1xuICAgIG1heGltdW06IG51bWJlcjtcbiAgICBtaW46IG51bWJlcjtcbiAgICBtYXg6IG51bWJlcjtcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXAtcmFuZ2Utc2xpZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmFuZ2Utc2xpZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9yYW5nZS1zbGlkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtNYXRTbGlkZXJNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhbmdlU2xpZGVyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmFuZ2VTbGlkZXJDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmFuZ2VTbGlkZXJDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgICBASW5wdXQoKVxuICAgIHNldCBtaW4obWluOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5taW5pbXVtRm9ybUNvbnRyb2wuc2V0VmFsdWUobWluKTtcbiAgICAgICAgdGhpcy5jaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBnZXQgbWluKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbkZvcm1Db250cm9sLmdldFJhd1ZhbHVlKCk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbWF4KG1heDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMubWF4aW11bUZvcm1Db250cm9sLnNldFZhbHVlKG1heCk7XG4gICAgICAgIHRoaXMuY2hhbmdlKCk7XG4gICAgfVxuXG4gICAgZ2V0IG1heCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXhGb3JtQ29udHJvbC5nZXRSYXdWYWx1ZSgpO1xuICAgIH1cblxuICAgIHJhbmdlU2xpZGVyRm9ybUdyb3VwOiBGb3JtR3JvdXA8e1xuICAgICAgICBtYXhpbXVtOiBGb3JtQ29udHJvbDxudW1iZXI+O1xuICAgICAgICBtaW5pbXVtOiBGb3JtQ29udHJvbDxudW1iZXI+O1xuICAgICAgICBtaW46IEZvcm1Db250cm9sPG51bWJlciB8IHVuZGVmaW5lZD47XG4gICAgICAgIG1heDogRm9ybUNvbnRyb2w8bnVtYmVyIHwgdW5kZWZpbmVkPjtcbiAgICB9PjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gICAgICAgIGNvbnN0IG1pbmltdW1WYWxpZGF0b3I6IFZhbGlkYXRvckZuID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgICAgICAgIGxldCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IHJhbmdlRm9ybVZhbHVlID0gY29udHJvbC5nZXRSYXdWYWx1ZSgpIGFzIFJhbmdlRm9ybVZhbHVlO1xuICAgICAgICAgICAgaWYgKHJhbmdlRm9ybVZhbHVlLm1pbiAmJiByYW5nZUZvcm1WYWx1ZS5taW5pbXVtICYmIHJhbmdlRm9ybVZhbHVlLm1pbiA8IHJhbmdlRm9ybVZhbHVlLm1pbmltdW0pIHtcbiAgICAgICAgICAgICAgICBlcnJvcnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIG1pbmltdW1FcnJvcjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRNaW46IHJhbmdlRm9ybVZhbHVlLm1pbmltdW0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TWluOiByYW5nZUZvcm1WYWx1ZS5taW4sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBlcnJvcnM7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgbWluaW11bVJlcXVpcmVkVmFsaWRhdG9yOiBWYWxpZGF0b3JGbiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAgICAgICBsZXQgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XG4gICAgICAgICAgICBjb25zdCByYW5nZUZvcm1WYWx1ZSA9IGNvbnRyb2wuZ2V0UmF3VmFsdWUoKSBhcyBSYW5nZUZvcm1WYWx1ZTtcbiAgICAgICAgICAgIGlmIChyYW5nZUZvcm1WYWx1ZS5taW4gPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgZXJyb3JzID0ge1xuICAgICAgICAgICAgICAgICAgICBtaW5pbXVtUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBlcnJvcnM7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgbWF4aW11bVZhbGlkYXRvcjogVmFsaWRhdG9yRm4gPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgICAgICAgbGV0IGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuICAgICAgICAgICAgY29uc3QgcmFuZ2VGb3JtVmFsdWUgPSBjb250cm9sLmdldFJhd1ZhbHVlKCkgYXMgUmFuZ2VGb3JtVmFsdWU7XG4gICAgICAgICAgICBpZiAocmFuZ2VGb3JtVmFsdWUubWF4ICYmIHJhbmdlRm9ybVZhbHVlLm1heGltdW0gJiYgcmFuZ2VGb3JtVmFsdWUubWF4ID4gcmFuZ2VGb3JtVmFsdWUubWF4aW11bSkge1xuICAgICAgICAgICAgICAgIGVycm9ycyA9IHtcbiAgICAgICAgICAgICAgICAgICAgbWF4aW11bUVycm9yOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZE1heDogcmFuZ2VGb3JtVmFsdWUubWF4aW11bSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRNYXg6IHJhbmdlRm9ybVZhbHVlLm1heCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGVycm9ycztcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBtYXhpbXVtUmVxdWlyZWRWYWxpZGF0b3I6IFZhbGlkYXRvckZuID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgICAgICAgIGxldCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IHJhbmdlRm9ybVZhbHVlID0gY29udHJvbC5nZXRSYXdWYWx1ZSgpIGFzIFJhbmdlRm9ybVZhbHVlO1xuICAgICAgICAgICAgaWYgKHJhbmdlRm9ybVZhbHVlLm1heCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBlcnJvcnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIG1heGltdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGVycm9ycztcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLnJhbmdlU2xpZGVyRm9ybUdyb3VwID0gZmIuZ3JvdXAoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbWF4aW11bTogZmIuY29udHJvbCgwLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pLFxuICAgICAgICAgICAgICAgIG1pbmltdW06IGZiLmNvbnRyb2woMTAwLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pLFxuICAgICAgICAgICAgICAgIG1pbjogZmIuY29udHJvbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCwgeyBub25OdWxsYWJsZTogdHJ1ZSB9KSxcbiAgICAgICAgICAgICAgICBtYXg6IGZiLmNvbnRyb2w8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQsIHsgbm9uTnVsbGFibGU6IHRydWUgfSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyB2YWxpZGF0b3JzOiBWYWxpZGF0b3JzLmNvbXBvc2UoW21pbmltdW1SZXF1aXJlZFZhbGlkYXRvciwgbWF4aW11bVJlcXVpcmVkVmFsaWRhdG9yLCBtaW5pbXVtVmFsaWRhdG9yLCBtYXhpbXVtVmFsaWRhdG9yXSkgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3BhZ2F0ZUNoYW5nZTogKCh2OiBSYW5nZVNsaWRlcikgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcblxuICAgIHByb3BhZ2F0ZU9uVG91Y2g6ICgoKSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHY6IFJhbmdlU2xpZGVyKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVPblRvdWNoID0gZm47XG4gICAgfVxuXG4gICAgZ2V0IG1pbmltdW0oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWluaW11bUZvcm1Db250cm9sLmdldFJhd1ZhbHVlKCk7XG4gICAgfVxuXG4gICAgZ2V0IG1heGltdW0oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWF4aW11bUZvcm1Db250cm9sLmdldFJhd1ZhbHVlKCk7XG4gICAgfVxuXG4gICAgZ2V0IG1pbkZvcm1Db250cm9sKCk6IEZvcm1Db250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmFuZ2VTbGlkZXJGb3JtR3JvdXAuY29udHJvbHMubWluO1xuICAgIH1cblxuICAgIGdldCBtaW5pbXVtRm9ybUNvbnRyb2woKTogRm9ybUNvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5yYW5nZVNsaWRlckZvcm1Hcm91cC5jb250cm9scy5taW5pbXVtO1xuICAgIH1cblxuICAgIGdldCBtYXhpbXVtRm9ybUNvbnRyb2woKTogRm9ybUNvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5yYW5nZVNsaWRlckZvcm1Hcm91cC5jb250cm9scy5tYXhpbXVtO1xuICAgIH1cblxuICAgIGdldCBtYXhGb3JtQ29udHJvbCgpOiBGb3JtQ29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnJhbmdlU2xpZGVyRm9ybUdyb3VwLmNvbnRyb2xzLm1heDtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKGlucHV0UmFuZ2U6IFJhbmdlU2xpZGVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWluRm9ybUNvbnRyb2wuc2V0VmFsdWUoaW5wdXRSYW5nZS5taW4pO1xuICAgICAgICB0aGlzLm1heEZvcm1Db250cm9sLnNldFZhbHVlKGlucHV0UmFuZ2UubWF4KTtcbiAgICB9XG5cbiAgICBjaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnByb3BhZ2F0ZUNoYW5nZSkge1xuICAgICAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yYW5nZVNsaWRlckZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xuICAgICAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2Uoe1xuICAgICAgICAgICAgICAgIG1pbjogZm9ybVZhbHVlLm1pbixcbiAgICAgICAgICAgICAgICBtYXg6IGZvcm1WYWx1ZS5tYXgsXG4gICAgICAgICAgICB9IGFzIFJhbmdlU2xpZGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhbGlkYXRlKCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmFuZ2VTbGlkZXJGb3JtR3JvdXAuZXJyb3JzO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cInNsaWRlci13cmFwcGVyXCJcbiAgICBbZm9ybUdyb3VwXT1cInJhbmdlU2xpZGVyRm9ybUdyb3VwXCI+XG4gICAgPGRpdiBjbGFzcz1cIm51bWJlclwiPlxuICAgICAgICA8c3Bhbj57eyBtaW4gfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPG1hdC1zbGlkZXJcbiAgICAgICAgY2xhc3M9XCJzbGlkZXJcIlxuICAgICAgICBbbWluXT1cIm1pbmltdW1cIlxuICAgICAgICBbbWF4XT1cIm1heGltdW1cIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBtYXRTbGlkZXJTdGFydFRodW1iXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtaW5cIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2UoKVwiIC8+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgbWF0U2xpZGVyRW5kVGh1bWJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1heFwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZSgpXCIgLz5cbiAgICA8L21hdC1zbGlkZXI+XG4gICAgPGRpdiBjbGFzcz1cIm51bWJlclwiPlxuICAgICAgICA8c3Bhbj57eyBtYXggPiBtYXhpbXVtID8gbWF4ICsgJysnIDogbWF4IH19PC9zcGFuPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public_api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdvcmFwdWxzZS11aS1jb21wb25lbnRzLXNlbGVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9zZWxlY3Qvc3JjL2Fnb3JhcHVsc2UtdWktY29tcG9uZW50cy1zZWxlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
|