@agorapulse/ui-components 0.0.2 → 1.0.0-SNAPSHOT
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/add-comment/add-comment.component.d.ts +21 -0
- package/add-comment/index.d.ts +5 -0
- package/add-comment/public_api.d.ts +1 -0
- package/agorapulse-ui-components-1.0.0-SNAPSHOT.tgz +0 -0
- package/autocomplete/autocomplete.component.d.ts +40 -0
- package/autocomplete/index.d.ts +5 -0
- package/autocomplete/public_api.d.ts +1 -0
- package/avatar/avatar.component.d.ts +47 -0
- package/avatar/index.d.ts +5 -0
- package/avatar/public_api.d.ts +1 -0
- package/badge/badge.component.d.ts +7 -0
- package/badge/index.d.ts +5 -0
- package/badge/public_api.d.ts +1 -0
- package/button/button.component.d.ts +49 -0
- package/button/index.d.ts +5 -0
- package/button/public_api.d.ts +1 -0
- package/checkbox/checkbox.component.d.ts +51 -0
- package/checkbox/index.d.ts +5 -0
- package/checkbox/public_api.d.ts +1 -0
- package/confirm-modal/confirm-modal.component.d.ts +20 -0
- package/confirm-modal/index.d.ts +5 -0
- package/confirm-modal/public_api.d.ts +2 -0
- package/counter/counter.component.d.ts +17 -0
- package/counter/index.d.ts +5 -0
- package/counter/public_api.d.ts +1 -0
- package/datepicker/datepicker.component.d.ts +84 -0
- package/datepicker/index.d.ts +5 -0
- package/datepicker/public_api.d.ts +1 -0
- package/{src/lib/directives → directives}/autosize-textarea.directive.d.ts +3 -0
- package/directives/base-button.directive.d.ts +13 -0
- package/directives/default-image.directive.d.ts +8 -0
- package/{src/lib/directives → directives}/ellipsis.directive.d.ts +3 -1
- package/directives/equal-validator.directive.d.ts +13 -0
- package/{src/lib/directives → directives}/frozen-gif.directive.d.ts +6 -3
- package/directives/index.d.ts +5 -0
- package/directives/multi-style-text.directive.d.ts +16 -0
- package/directives/public_api.d.ts +8 -0
- package/directives/truncate-tooltip.directive.d.ts +16 -0
- package/dots-stepper/dots-stepper.component.d.ts +16 -0
- package/dots-stepper/index.d.ts +5 -0
- package/dots-stepper/public_api.d.ts +1 -0
- package/esm2022/add-comment/add-comment.component.mjs +71 -0
- package/esm2022/add-comment/agorapulse-ui-components-add-comment.mjs +5 -0
- package/esm2022/add-comment/public_api.mjs +2 -0
- package/esm2022/agorapulse-ui-components.mjs +5 -0
- package/esm2022/autocomplete/agorapulse-ui-components-autocomplete.mjs +5 -0
- package/esm2022/autocomplete/autocomplete.component.mjs +128 -0
- package/esm2022/autocomplete/public_api.mjs +2 -0
- package/esm2022/avatar/agorapulse-ui-components-avatar.mjs +5 -0
- package/esm2022/avatar/avatar.component.mjs +222 -0
- package/esm2022/avatar/public_api.mjs +2 -0
- package/esm2022/badge/agorapulse-ui-components-badge.mjs +5 -0
- package/esm2022/badge/badge.component.mjs +17 -0
- package/esm2022/badge/public_api.mjs +2 -0
- package/esm2022/button/agorapulse-ui-components-button.mjs +5 -0
- package/esm2022/button/button.component.mjs +112 -0
- package/esm2022/button/public_api.mjs +2 -0
- package/esm2022/checkbox/agorapulse-ui-components-checkbox.mjs +5 -0
- package/esm2022/checkbox/checkbox.component.mjs +178 -0
- package/esm2022/checkbox/public_api.mjs +2 -0
- package/esm2022/confirm-modal/agorapulse-ui-components-confirm-modal.mjs +5 -0
- package/esm2022/confirm-modal/confirm-modal-texts.model.mjs +2 -0
- package/esm2022/confirm-modal/confirm-modal.component.mjs +61 -0
- package/esm2022/confirm-modal/public_api.mjs +3 -0
- package/esm2022/counter/agorapulse-ui-components-counter.mjs +5 -0
- package/esm2022/counter/counter.component.mjs +59 -0
- package/esm2022/counter/public_api.mjs +2 -0
- package/esm2022/datepicker/agorapulse-ui-components-datepicker.mjs +5 -0
- package/esm2022/datepicker/datepicker.component.mjs +271 -0
- package/esm2022/datepicker/public_api.mjs +2 -0
- package/esm2022/directives/agorapulse-ui-components-directives.mjs +5 -0
- package/esm2022/directives/autosize-textarea.directive.mjs +45 -0
- package/esm2022/directives/base-button.directive.mjs +47 -0
- package/esm2022/directives/default-image.directive.mjs +37 -0
- package/esm2022/directives/ellipsis.directive.mjs +90 -0
- package/esm2022/directives/equal-validator.directive.mjs +73 -0
- package/esm2022/directives/frozen-gif.directive.mjs +125 -0
- package/esm2022/directives/multi-style-text.directive.mjs +61 -0
- package/esm2022/directives/public_api.mjs +9 -0
- package/esm2022/directives/truncate-tooltip.directive.mjs +43 -0
- package/esm2022/dots-stepper/agorapulse-ui-components-dots-stepper.mjs +5 -0
- package/esm2022/dots-stepper/dots-stepper.component.mjs +46 -0
- package/esm2022/dots-stepper/public_api.mjs +2 -0
- package/esm2022/form-field/agorapulse-ui-components-form-field.mjs +5 -0
- package/esm2022/form-field/form-field.component.mjs +11 -0
- package/esm2022/form-field/public_api.mjs +2 -0
- package/esm2022/form-message/agorapulse-ui-components-form-message.mjs +5 -0
- package/esm2022/form-message/form-message.component.mjs +34 -0
- package/esm2022/form-message/public_api.mjs +2 -0
- package/esm2022/icon-button/agorapulse-ui-components-icon-button.mjs +5 -0
- package/esm2022/icon-button/icon-button.component.mjs +121 -0
- package/esm2022/icon-button/public_api.mjs +2 -0
- package/esm2022/index.mjs +50 -0
- package/esm2022/infobox/agorapulse-ui-components-infobox.mjs +5 -0
- package/esm2022/infobox/infobox.component.mjs +78 -0
- package/esm2022/infobox/public_api.mjs +2 -0
- package/esm2022/input/agorapulse-ui-components-input.mjs +5 -0
- package/esm2022/input/input.directive.mjs +19 -0
- package/esm2022/input/public_api.mjs +2 -0
- package/esm2022/input-group/agorapulse-ui-components-input-group.mjs +5 -0
- package/esm2022/input-group/input-group.component.mjs +14 -0
- package/esm2022/input-group/public_api.mjs +2 -0
- package/esm2022/labels/agorapulse-ui-components-labels.mjs +5 -0
- package/esm2022/labels/label-list.component.mjs +109 -0
- package/esm2022/labels/label.component.mjs +57 -0
- package/esm2022/labels/public_api.mjs +3 -0
- package/esm2022/labels-selector/agorapulse-ui-components-labels-selector.mjs +5 -0
- package/esm2022/labels-selector/labels-selector.component.mjs +122 -0
- package/esm2022/labels-selector/public_api.mjs +2 -0
- package/esm2022/legacy/input/agorapulse-ui-components-legacy-input.mjs +5 -0
- package/esm2022/legacy/input/input.component.mjs +190 -0
- package/esm2022/legacy/input/public_api.mjs +2 -0
- package/esm2022/legacy/select/agorapulse-ui-components-legacy-select.mjs +5 -0
- package/esm2022/legacy/select/public_api.mjs +2 -0
- package/esm2022/legacy/select/select.component.mjs +453 -0
- package/esm2022/legacy/textarea/agorapulse-ui-components-legacy-textarea.mjs +5 -0
- package/esm2022/legacy/textarea/public_api.mjs +2 -0
- package/esm2022/legacy/textarea/textarea.component.mjs +155 -0
- package/esm2022/media-display-overlay/agorapulse-ui-components-media-display-overlay.mjs +5 -0
- package/esm2022/media-display-overlay/media-display-overlay-dialog.component.mjs +123 -0
- package/esm2022/media-display-overlay/public_api.mjs +2 -0
- package/esm2022/modal/agorapulse-ui-components-modal.mjs +5 -0
- package/esm2022/modal/modal.component.mjs +116 -0
- package/esm2022/modal/public_api.mjs +2 -0
- package/esm2022/neo-datepicker/agorapulse-ui-components-neo-datepicker.mjs +5 -0
- package/esm2022/neo-datepicker/day-detail.model.mjs +2 -0
- package/esm2022/neo-datepicker/day-disabled.pipe.mjs +21 -0
- package/esm2022/neo-datepicker/neo-datepicker.component.mjs +243 -0
- package/esm2022/neo-datepicker/public_api.mjs +4 -0
- package/esm2022/notification/agorapulse-ui-components-notification.mjs +5 -0
- package/esm2022/notification/notification.component.mjs +15 -0
- package/esm2022/notification/public_api.mjs +2 -0
- package/esm2022/paginator/agorapulse-ui-components-paginator.mjs +5 -0
- package/esm2022/paginator/paginator-button/paginator-button.component.mjs +51 -0
- package/esm2022/paginator/paginator.component.mjs +126 -0
- package/esm2022/paginator/public_api.mjs +3 -0
- package/esm2022/password-input/agorapulse-ui-components-password-input.mjs +5 -0
- package/esm2022/password-input/password-input.component.mjs +77 -0
- package/esm2022/password-input/public_api.mjs +2 -0
- package/esm2022/popmenu/agorapulse-ui-components-popmenu.mjs +5 -0
- package/esm2022/popmenu/options.mjs +17 -0
- package/esm2022/popmenu/popmenu-options.interface.mjs +2 -0
- package/esm2022/popmenu/popmenu-options.service.mjs +7 -0
- package/esm2022/popmenu/popmenu.component.mjs +384 -0
- package/esm2022/popmenu/popmenu.directive.mjs +292 -0
- package/esm2022/popmenu/popmenu.module.mjs +29 -0
- package/esm2022/popmenu/public_api.mjs +5 -0
- package/esm2022/radio/agorapulse-ui-components-radio.mjs +5 -0
- package/esm2022/radio/public_api.mjs +3 -0
- package/esm2022/radio/radio-control.registry.mjs +102 -0
- package/esm2022/radio/radio.component.mjs +224 -0
- package/esm2022/range-slider/agorapulse-ui-components-range-slider.mjs +5 -0
- package/esm2022/range-slider/public_api.mjs +2 -0
- package/esm2022/range-slider/range-slider.component.mjs +155 -0
- package/esm2022/select/agorapulse-ui-components-select.mjs +5 -0
- package/esm2022/select/ap-select.module.mjs +78 -0
- package/esm2022/select/dropdown-group-item/dropdown-group-item.component.mjs +52 -0
- package/esm2022/select/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.mjs +64 -0
- package/esm2022/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.mjs +68 -0
- package/esm2022/select/dropdown-item-single-one-line/dropdown-item-single-one-line.component.mjs +45 -0
- package/esm2022/select/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.mjs +49 -0
- package/esm2022/select/dropdown-search-form/dropdown-search-form.component.mjs +77 -0
- package/esm2022/select/public_api.mjs +13 -0
- package/esm2022/select/select-base.directive.mjs +69 -0
- package/esm2022/select/select-label-multiple/select-label-multiple.component.mjs +111 -0
- package/esm2022/select/select-label-single/select-label-single.component.mjs +30 -0
- package/esm2022/select/select-multiple.directive.mjs +35 -0
- package/esm2022/select/select-single.directive.mjs +34 -0
- package/esm2022/slide-toggle/agorapulse-ui-components-slide-toggle.mjs +5 -0
- package/esm2022/slide-toggle/public_api.mjs +2 -0
- package/esm2022/slide-toggle/slide-toggle.component.mjs +66 -0
- package/esm2022/snackbars-thread/agorapulse-ui-components-snackbars-thread.mjs +5 -0
- package/esm2022/snackbars-thread/component/snackbars-thread.component.mjs +84 -0
- package/esm2022/snackbars-thread/model/snackbars-thread.model.mjs +44 -0
- package/esm2022/snackbars-thread/public_api.mjs +4 -0
- package/esm2022/snackbars-thread/service/snackbars-thread.service.mjs +46 -0
- package/esm2022/snackbars-thread/utils/const/snackbars-thread.const.mjs +13 -0
- package/esm2022/social-button/agorapulse-ui-components-social-button.mjs +5 -0
- package/esm2022/social-button/public_api.mjs +2 -0
- package/esm2022/social-button/social-button.component.mjs +151 -0
- package/esm2022/split-button/agorapulse-ui-components-split-button.mjs +5 -0
- package/esm2022/split-button/public_api.mjs +2 -0
- package/esm2022/split-button/split-button.component.mjs +129 -0
- package/esm2022/src/lib/agorapulse-ui-components.module.mjs +204 -0
- package/esm2022/status/agorapulse-ui-components-status.mjs +5 -0
- package/esm2022/status/public_api.mjs +2 -0
- package/esm2022/status/status.component.mjs +22 -0
- package/esm2022/status-card/agorapulse-ui-components-status-card.mjs +5 -0
- package/esm2022/status-card/public_api.mjs +2 -0
- package/esm2022/status-card/status-card.component.mjs +25 -0
- package/esm2022/stepper/agorapulse-ui-components-stepper.mjs +5 -0
- package/esm2022/stepper/public_api.mjs +3 -0
- package/esm2022/stepper/step.model.mjs +2 -0
- package/esm2022/stepper/stepper.component.mjs +38 -0
- package/esm2022/tag/agorapulse-ui-components-tag.mjs +5 -0
- package/esm2022/tag/public_api.mjs +2 -0
- package/esm2022/tag/tag.component.mjs +36 -0
- package/esm2022/text-measurement/agorapulse-ui-components-text-measurement.mjs +5 -0
- package/esm2022/text-measurement/public_api.mjs +2 -0
- package/esm2022/text-measurement/text-measurement.service.mjs +29 -0
- package/esm2022/textarea/agorapulse-ui-components-textarea.mjs +5 -0
- package/esm2022/textarea/public_api.mjs +2 -0
- package/esm2022/textarea/textarea.directive.mjs +37 -0
- package/esm2022/toggle/agorapulse-ui-components-toggle.mjs +5 -0
- package/esm2022/toggle/public_api.mjs +2 -0
- package/esm2022/toggle/toggle.component.mjs +209 -0
- package/esm2022/tooltip/agorapulse-ui-components-tooltip.mjs +5 -0
- package/esm2022/tooltip/public_api.mjs +2 -0
- package/esm2022/tooltip/tooltip.directive.mjs +412 -0
- package/esm2022/tooltip/tooltip.service.mjs +29 -0
- package/fesm2022/agorapulse-ui-components-add-comment.mjs +78 -0
- package/fesm2022/agorapulse-ui-components-add-comment.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-autocomplete.mjs +135 -0
- package/fesm2022/agorapulse-ui-components-autocomplete.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-avatar.mjs +229 -0
- package/fesm2022/agorapulse-ui-components-avatar.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-badge.mjs +24 -0
- package/fesm2022/agorapulse-ui-components-badge.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-button.mjs +119 -0
- package/fesm2022/agorapulse-ui-components-button.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-checkbox.mjs +185 -0
- package/fesm2022/agorapulse-ui-components-checkbox.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-confirm-modal.mjs +68 -0
- package/fesm2022/agorapulse-ui-components-confirm-modal.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-counter.mjs +66 -0
- package/fesm2022/agorapulse-ui-components-counter.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-datepicker.mjs +278 -0
- package/fesm2022/agorapulse-ui-components-datepicker.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-directives.mjs +513 -0
- package/fesm2022/agorapulse-ui-components-directives.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-dots-stepper.mjs +53 -0
- package/fesm2022/agorapulse-ui-components-dots-stepper.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-form-field.mjs +18 -0
- package/fesm2022/agorapulse-ui-components-form-field.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-form-message.mjs +41 -0
- package/fesm2022/agorapulse-ui-components-form-message.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-icon-button.mjs +128 -0
- package/fesm2022/agorapulse-ui-components-icon-button.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-infobox.mjs +85 -0
- package/fesm2022/agorapulse-ui-components-infobox.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-input-group.mjs +21 -0
- package/fesm2022/agorapulse-ui-components-input-group.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-input.mjs +26 -0
- package/fesm2022/agorapulse-ui-components-input.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-labels-selector.mjs +129 -0
- package/fesm2022/agorapulse-ui-components-labels-selector.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-labels.mjs +168 -0
- package/fesm2022/agorapulse-ui-components-labels.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-legacy-input.mjs +197 -0
- package/fesm2022/agorapulse-ui-components-legacy-input.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-legacy-select.mjs +460 -0
- package/fesm2022/agorapulse-ui-components-legacy-select.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs +162 -0
- package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs +130 -0
- package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-modal.mjs +123 -0
- package/fesm2022/agorapulse-ui-components-modal.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs +268 -0
- package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-notification.mjs +22 -0
- package/fesm2022/agorapulse-ui-components-notification.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-paginator.mjs +181 -0
- package/fesm2022/agorapulse-ui-components-paginator.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-password-input.mjs +84 -0
- package/fesm2022/agorapulse-ui-components-password-input.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-popmenu.mjs +725 -0
- package/fesm2022/agorapulse-ui-components-popmenu.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-radio.mjs +328 -0
- package/fesm2022/agorapulse-ui-components-radio.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-range-slider.mjs +162 -0
- package/fesm2022/agorapulse-ui-components-range-slider.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-select.mjs +651 -0
- package/fesm2022/agorapulse-ui-components-select.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-slide-toggle.mjs +73 -0
- package/fesm2022/agorapulse-ui-components-slide-toggle.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs +190 -0
- package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-social-button.mjs +158 -0
- package/fesm2022/agorapulse-ui-components-social-button.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-split-button.mjs +136 -0
- package/fesm2022/agorapulse-ui-components-split-button.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-status-card.mjs +32 -0
- package/fesm2022/agorapulse-ui-components-status-card.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-status.mjs +29 -0
- package/fesm2022/agorapulse-ui-components-status.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-stepper.mjs +45 -0
- package/fesm2022/agorapulse-ui-components-stepper.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-tag.mjs +43 -0
- package/fesm2022/agorapulse-ui-components-tag.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-text-measurement.mjs +36 -0
- package/fesm2022/agorapulse-ui-components-text-measurement.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-textarea.mjs +44 -0
- package/fesm2022/agorapulse-ui-components-textarea.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-toggle.mjs +216 -0
- package/fesm2022/agorapulse-ui-components-toggle.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-tooltip.mjs +445 -0
- package/fesm2022/agorapulse-ui-components-tooltip.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components.mjs +251 -0
- package/fesm2022/agorapulse-ui-components.mjs.map +1 -0
- package/form-field/form-field.component.d.ts +5 -0
- package/form-field/index.d.ts +5 -0
- package/form-field/public_api.d.ts +1 -0
- package/form-message/form-message.component.d.ts +12 -0
- package/form-message/index.d.ts +5 -0
- package/form-message/public_api.d.ts +1 -0
- package/icon-button/icon-button.component.d.ts +39 -0
- package/icon-button/index.d.ts +5 -0
- package/icon-button/public_api.d.ts +1 -0
- package/index.d.ts +43 -53
- package/infobox/index.d.ts +5 -0
- package/infobox/infobox.component.d.ts +32 -0
- package/infobox/public_api.d.ts +1 -0
- package/input/index.d.ts +5 -0
- package/input/input.directive.d.ts +7 -0
- package/input/public_api.d.ts +1 -0
- package/input-group/index.d.ts +5 -0
- package/input-group/input-group.component.d.ts +6 -0
- package/input-group/public_api.d.ts +1 -0
- package/labels/index.d.ts +5 -0
- package/labels/label-list.component.d.ts +34 -0
- package/labels/label.component.d.ts +24 -0
- package/labels/public_api.d.ts +2 -0
- package/labels-selector/index.d.ts +5 -0
- package/labels-selector/labels-selector.component.d.ts +42 -0
- package/labels-selector/public_api.d.ts +1 -0
- package/legacy/input/index.d.ts +5 -0
- package/legacy/input/input.component.d.ts +64 -0
- package/legacy/input/public_api.d.ts +1 -0
- package/legacy/select/index.d.ts +5 -0
- package/legacy/select/public_api.d.ts +1 -0
- package/legacy/select/select.component.d.ts +122 -0
- package/legacy/textarea/index.d.ts +5 -0
- package/legacy/textarea/public_api.d.ts +1 -0
- package/legacy/textarea/textarea.component.d.ts +53 -0
- package/media-display-overlay/index.d.ts +5 -0
- package/media-display-overlay/media-display-overlay-dialog.component.d.ts +42 -0
- package/media-display-overlay/public_api.d.ts +1 -0
- package/modal/index.d.ts +5 -0
- package/modal/modal.component.d.ts +54 -0
- package/modal/public_api.d.ts +1 -0
- package/neo-datepicker/day-detail.model.d.ts +9 -0
- package/neo-datepicker/day-disabled.pipe.d.ts +8 -0
- package/neo-datepicker/index.d.ts +5 -0
- package/neo-datepicker/neo-datepicker.component.d.ts +61 -0
- package/neo-datepicker/public_api.d.ts +3 -0
- package/notification/index.d.ts +5 -0
- package/notification/notification.component.d.ts +6 -0
- package/notification/public_api.d.ts +1 -0
- package/package.json +291 -20
- package/paginator/index.d.ts +5 -0
- package/paginator/paginator-button/paginator-button.component.d.ts +17 -0
- package/paginator/paginator.component.d.ts +38 -0
- package/paginator/public_api.d.ts +2 -0
- package/password-input/index.d.ts +5 -0
- package/password-input/password-input.component.d.ts +33 -0
- package/password-input/public_api.d.ts +1 -0
- package/popmenu/index.d.ts +5 -0
- package/{src/lib/popmenu → popmenu}/options.d.ts +1 -0
- package/popmenu/popmenu-options.interface.d.ts +48 -0
- package/{src/lib/popmenu → popmenu}/popmenu.component.d.ts +17 -9
- package/popmenu/popmenu.directive.d.ts +84 -0
- package/popmenu/popmenu.module.d.ts +11 -0
- package/popmenu/public_api.d.ts +4 -0
- package/radio/index.d.ts +5 -0
- package/radio/public_api.d.ts +2 -0
- package/radio/radio-control.registry.d.ts +22 -0
- package/radio/radio.component.d.ts +59 -0
- package/range-slider/index.d.ts +5 -0
- package/range-slider/public_api.d.ts +1 -0
- package/range-slider/range-slider.component.d.ts +35 -0
- package/select/ap-select.module.d.ts +17 -0
- package/select/dropdown-group-item/dropdown-group-item.component.d.ts +16 -0
- package/select/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.d.ts +21 -0
- package/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.d.ts +22 -0
- package/select/dropdown-item-single-one-line/dropdown-item-single-one-line.component.d.ts +15 -0
- package/select/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.d.ts +16 -0
- package/select/dropdown-search-form/dropdown-search-form.component.d.ts +22 -0
- package/select/index.d.ts +5 -0
- package/select/public_api.d.ts +12 -0
- package/select/select-base.directive.d.ts +18 -0
- package/select/select-label-multiple/select-label-multiple.component.d.ts +29 -0
- package/select/select-label-single/select-label-single.component.d.ts +10 -0
- package/select/select-multiple.directive.d.ts +10 -0
- package/select/select-single.directive.d.ts +10 -0
- package/slide-toggle/index.d.ts +5 -0
- package/slide-toggle/public_api.d.ts +1 -0
- package/{src/lib/slide-toggle → slide-toggle}/slide-toggle.component.d.ts +4 -0
- package/snackbars-thread/component/snackbars-thread.component.d.ts +23 -0
- package/snackbars-thread/index.d.ts +5 -0
- package/{src/lib/snackbars-thread → snackbars-thread}/model/snackbars-thread.model.d.ts +9 -6
- package/snackbars-thread/public_api.d.ts +3 -0
- package/snackbars-thread/service/snackbars-thread.service.d.ts +15 -0
- package/{src/lib/snackbars-thread → snackbars-thread}/utils/const/snackbars-thread.const.d.ts +2 -4
- package/social-button/index.d.ts +5 -0
- package/social-button/public_api.d.ts +1 -0
- package/social-button/social-button.component.d.ts +32 -0
- package/split-button/index.d.ts +5 -0
- package/split-button/public_api.d.ts +1 -0
- package/split-button/split-button.component.d.ts +43 -0
- package/src/lib/agorapulse-ui-components.module.d.ts +27 -0
- package/status/index.d.ts +5 -0
- package/status/public_api.d.ts +1 -0
- package/status/status.component.d.ts +9 -0
- package/status-card/index.d.ts +5 -0
- package/status-card/public_api.d.ts +1 -0
- package/status-card/status-card.component.d.ts +13 -0
- package/stepper/index.d.ts +5 -0
- package/stepper/public_api.d.ts +2 -0
- package/{src/lib/stepper → stepper}/step.model.d.ts +1 -0
- package/stepper/stepper.component.d.ts +16 -0
- package/tag/index.d.ts +5 -0
- package/tag/public_api.d.ts +1 -0
- package/tag/tag.component.d.ts +18 -0
- package/text-measurement/index.d.ts +5 -0
- package/text-measurement/public_api.d.ts +1 -0
- package/text-measurement/text-measurement.service.d.ts +8 -0
- package/textarea/index.d.ts +5 -0
- package/textarea/public_api.d.ts +1 -0
- package/textarea/textarea.directive.d.ts +11 -0
- package/toggle/index.d.ts +5 -0
- package/toggle/public_api.d.ts +1 -0
- package/toggle/toggle.component.d.ts +52 -0
- package/tooltip/index.d.ts +5 -0
- package/tooltip/public_api.d.ts +1 -0
- package/tooltip/tooltip.directive.d.ts +58 -0
- package/tooltip/tooltip.service.d.ts +11 -0
- package/agorapulse-ui-components-0.0.2.tgz +0 -0
- package/agorapulse-ui-components.d.ts +0 -9
- package/agorapulse-ui-components.metadata.json +0 -1
- package/bundles/agorapulse-ui-components.umd.js +0 -4448
- package/bundles/agorapulse-ui-components.umd.js.map +0 -1
- package/esm2015/agorapulse-ui-components.js +0 -10
- package/esm2015/index.js +0 -57
- package/esm2015/src/lib/add-comment/add-comment.component.js +0 -54
- package/esm2015/src/lib/agorapulse-ui-components.module.js +0 -279
- package/esm2015/src/lib/avatar/avatar.component.js +0 -82
- package/esm2015/src/lib/confirm-modal/confirm-modal-texts.model.js +0 -2
- package/esm2015/src/lib/confirm-modal/confirm-modal.component.js +0 -59
- package/esm2015/src/lib/datepicker/datepicker.component.js +0 -213
- package/esm2015/src/lib/directives/autosize-textarea.directive.js +0 -43
- package/esm2015/src/lib/directives/default-image.directive.js +0 -25
- package/esm2015/src/lib/directives/ellipsis.directive.js +0 -82
- package/esm2015/src/lib/directives/equal-validator.directive.js +0 -53
- package/esm2015/src/lib/directives/frozen-gif.directive.js +0 -113
- package/esm2015/src/lib/directives/multi-style-text.directive.js +0 -103
- package/esm2015/src/lib/directives/truncate-tooltip.directive.js +0 -36
- package/esm2015/src/lib/dots-stepper/dots-stepper.component.js +0 -41
- package/esm2015/src/lib/edit-tag-modal/edit-tags-modal.component.js +0 -129
- package/esm2015/src/lib/edit-tag-modal/model/edit-tags-modal.model.js +0 -2
- package/esm2015/src/lib/feature-onboarding/feature-onboarding.component.js +0 -35
- package/esm2015/src/lib/image-carousel/image-carousel.component.js +0 -143
- package/esm2015/src/lib/lead-modal/lead-info.model.js +0 -2
- package/esm2015/src/lib/lead-modal/lead-modal.component.js +0 -47
- package/esm2015/src/lib/media-display-overlay/media-display-overlay-dialog.component.js +0 -87
- package/esm2015/src/lib/modal/modal.component.js +0 -88
- package/esm2015/src/lib/notification/notification.component.js +0 -18
- package/esm2015/src/lib/overlay/overlay-dialog-service.component.js +0 -62
- package/esm2015/src/lib/overlay/overlay-dialog.component.js +0 -33
- package/esm2015/src/lib/overlay-in-div/overlay-in-div.component.js +0 -23
- package/esm2015/src/lib/paginator/paginator-button/paginator-button.component.js +0 -22
- package/esm2015/src/lib/paginator/paginator.component.js +0 -47
- package/esm2015/src/lib/password-input/password-input.component.js +0 -65
- package/esm2015/src/lib/password-strength-bar/password-strength-bar.component.js +0 -82
- package/esm2015/src/lib/password-strength-display-bar/password-strength-display-bar.component.js +0 -41
- package/esm2015/src/lib/phone-number-input/phone-number-input.component.js +0 -123
- package/esm2015/src/lib/places/place-list.component.js +0 -12
- package/esm2015/src/lib/places/place.component.js +0 -15
- package/esm2015/src/lib/popmenu/options.js +0 -16
- package/esm2015/src/lib/popmenu/popmenu-options.interface.js +0 -2
- package/esm2015/src/lib/popmenu/popmenu-options.service.js +0 -7
- package/esm2015/src/lib/popmenu/popmenu.component.js +0 -322
- package/esm2015/src/lib/popmenu/popmenu.directive.js +0 -215
- package/esm2015/src/lib/popmenu/popmenu.module.js +0 -38
- package/esm2015/src/lib/slide-toggle/slide-toggle.component.js +0 -59
- package/esm2015/src/lib/snackbar/snackbar.component.js +0 -22
- package/esm2015/src/lib/snackbars-thread/component/snackbars-thread.component.js +0 -50
- package/esm2015/src/lib/snackbars-thread/model/snackbars-thread.model.js +0 -41
- package/esm2015/src/lib/snackbars-thread/service/snackbars-thread.service.js +0 -44
- package/esm2015/src/lib/snackbars-thread/utils/const/snackbars-thread.const.js +0 -13
- package/esm2015/src/lib/splashscreen/splashscreen.component.js +0 -37
- package/esm2015/src/lib/star-rating/star-rating.component.js +0 -38
- package/esm2015/src/lib/stepper/step.model.js +0 -2
- package/esm2015/src/lib/stepper/stepper.component.js +0 -37
- package/esm2015/src/lib/tags/tag-list.component.js +0 -12
- package/esm2015/src/lib/tags/tag.component.js +0 -20
- package/esm2015/src/lib/tags-selector/tags-selector.component.js +0 -73
- package/esm2015/src/lib/timepicker/timepicker.component.js +0 -375
- package/esm2015/src/lib/tooltip-neo/tooltip-neo.component.js +0 -46
- package/esm2015/src/lib/tooltip-neo/tooltip-neo.const.js +0 -67
- package/esm2015/src/lib/tooltip-neo/tooltip-neo.directive.js +0 -107
- package/esm2015/src/lib/tooltip-neo/tooltip-neo.model.js +0 -2
- package/esm2015/src/lib/tooltip-neo/tooltip-neo.service.js +0 -15
- package/esm2015/src/lib/try-popup/try-popup-texts.model.js +0 -2
- package/esm2015/src/lib/try-popup/try-popup.component.js +0 -33
- package/fesm2015/agorapulse-ui-components.js +0 -3805
- package/fesm2015/agorapulse-ui-components.js.map +0 -1
- package/src/lib/add-comment/add-comment.component.d.ts +0 -17
- package/src/lib/avatar/avatar.component.d.ts +0 -23
- package/src/lib/confirm-modal/confirm-modal.component.d.ts +0 -17
- package/src/lib/datepicker/datepicker.component.d.ts +0 -69
- package/src/lib/directives/default-image.directive.d.ts +0 -5
- package/src/lib/directives/equal-validator.directive.d.ts +0 -10
- package/src/lib/directives/multi-style-text.directive.d.ts +0 -15
- package/src/lib/directives/truncate-tooltip.directive.d.ts +0 -13
- package/src/lib/dots-stepper/dots-stepper.component.d.ts +0 -13
- package/src/lib/edit-tag-modal/edit-tags-modal.component.d.ts +0 -29
- package/src/lib/edit-tag-modal/model/edit-tags-modal.model.d.ts +0 -21
- package/src/lib/feature-onboarding/feature-onboarding.component.d.ts +0 -15
- package/src/lib/image-carousel/image-carousel.component.d.ts +0 -45
- package/src/lib/lead-modal/lead-info.model.d.ts +0 -7
- package/src/lib/lead-modal/lead-modal.component.d.ts +0 -28
- package/src/lib/media-display-overlay/media-display-overlay-dialog.component.d.ts +0 -28
- package/src/lib/modal/modal.component.d.ts +0 -47
- package/src/lib/notification/notification.component.d.ts +0 -3
- package/src/lib/overlay/overlay-dialog-service.component.d.ts +0 -20
- package/src/lib/overlay/overlay-dialog.component.d.ts +0 -17
- package/src/lib/overlay-in-div/overlay-in-div.component.d.ts +0 -8
- package/src/lib/paginator/paginator-button/paginator-button.component.d.ts +0 -6
- package/src/lib/paginator/paginator.component.d.ts +0 -14
- package/src/lib/password-input/password-input.component.d.ts +0 -28
- package/src/lib/password-strength-bar/password-strength-bar.component.d.ts +0 -21
- package/src/lib/password-strength-display-bar/password-strength-display-bar.component.d.ts +0 -14
- package/src/lib/phone-number-input/phone-number-input.component.d.ts +0 -42
- package/src/lib/places/place-list.component.d.ts +0 -2
- package/src/lib/places/place.component.d.ts +0 -3
- package/src/lib/popmenu/popmenu-options.interface.d.ts +0 -24
- package/src/lib/popmenu/popmenu.directive.d.ts +0 -69
- package/src/lib/popmenu/popmenu.module.d.ts +0 -5
- package/src/lib/snackbar/snackbar.component.d.ts +0 -6
- package/src/lib/snackbars-thread/component/snackbars-thread.component.d.ts +0 -18
- package/src/lib/snackbars-thread/service/snackbars-thread.service.d.ts +0 -12
- package/src/lib/splashscreen/splashscreen.component.d.ts +0 -15
- package/src/lib/star-rating/star-rating.component.d.ts +0 -10
- package/src/lib/stepper/stepper.component.d.ts +0 -14
- package/src/lib/tags/tag-list.component.d.ts +0 -2
- package/src/lib/tags/tag.component.d.ts +0 -4
- package/src/lib/tags-selector/tags-selector.component.d.ts +0 -29
- package/src/lib/timepicker/timepicker.component.d.ts +0 -68
- package/src/lib/tooltip-neo/tooltip-neo.component.d.ts +0 -12
- package/src/lib/tooltip-neo/tooltip-neo.const.d.ts +0 -4
- package/src/lib/tooltip-neo/tooltip-neo.directive.d.ts +0 -29
- package/src/lib/tooltip-neo/tooltip-neo.model.d.ts +0 -12
- package/src/lib/tooltip-neo/tooltip-neo.service.d.ts +0 -4
- package/src/lib/try-popup/try-popup-texts.model.d.ts +0 -4
- package/src/lib/try-popup/try-popup.component.d.ts +0 -12
- /package/assets/{lib-ui-components/icons → icons}/facebook-icon.png +0 -0
- /package/assets/{lib-ui-components/icons → icons}/google-icon.png +0 -0
- /package/assets/{lib-ui-components/icons → icons}/instagram-icon.png +0 -0
- /package/assets/{lib-ui-components/icons → icons}/linkedin-icon.png +0 -0
- /package/assets/{lib-ui-components/icons → icons}/pinterest-icon.png +0 -0
- /package/assets/{lib-ui-components/icons → icons}/twitter-icon.png +0 -0
- /package/assets/{lib-ui-components/icons → icons}/youtube-icon.png +0 -0
- /package/assets/{lib-ui-components/img → img}/default-avatar-organization.png +0 -0
- /package/assets/{lib-ui-components/img → img}/default-avatar-user.png +0 -0
- /package/assets/{lib-ui-components/img → img}/default-avatar.png +0 -0
- /package/assets/{lib-ui-components/img → img}/spinner_animation.gif +0 -0
- /package/{src/lib/confirm-modal → confirm-modal}/confirm-modal-texts.model.d.ts +0 -0
- /package/{src/lib/popmenu → popmenu}/popmenu-options.service.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-legacy-select.mjs","sources":["../../../libs/ui-components/legacy/select/src/select.component.ts","../../../libs/ui-components/legacy/select/src/select.component.html","../../../libs/ui-components/legacy/select/src/agorapulse-ui-components-legacy-select.ts"],"sourcesContent":["import { LoaderComponent } from '@agorapulse/ui-animations';\nimport { AvatarComponent } from '@agorapulse/ui-components/avatar';\nimport { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { CheckboxComponent } from '@agorapulse/ui-components/checkbox';\nimport { InputComponent } from '@agorapulse/ui-components/legacy/input';\nimport { LabelComponent } from '@agorapulse/ui-components/labels';\nimport { TagComponent } from '@agorapulse/ui-components/tag';\nimport {\n SymbolComponent,\n SymbolRegistry,\n apAdd2022,\n apAlertCircle,\n apCheck2,\n apCheckCircle,\n apDeleteNoCircle,\n apSearchAlternate,\n} from '@agorapulse/ui-symbol';\nimport { AsyncPipe, NgFor, NgIf, NgTemplateOutlet, SlicePipe } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n EnvironmentInjector,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n Provider,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n computed,\n effect,\n forwardRef,\n inject,\n runInInjectionContext,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { NgOption, NgSelectComponent, NgSelectModule } from '@ng-select/ng-select';\nimport { Observable, debounceTime, fromEvent, of, skip, switchMap, tap } from 'rxjs';\n\nexport type DisplayType = 'text' | 'label' | 'tag' | 'withAvatar';\n\nexport const SELECT_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true,\n};\n\n/**\n * @deprecated use NgSelectComponent with directive apSelectSingle or apSelectMultiple\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-select',\n styleUrls: ['./select.component.scss'],\n standalone: true,\n imports: [\n NgIf,\n NgFor,\n ReactiveFormsModule,\n FormsModule,\n NgSelectModule,\n InputComponent,\n SymbolComponent,\n AsyncPipe,\n SlicePipe,\n CheckboxComponent,\n AvatarComponent,\n NgTemplateOutlet,\n LabelComponent,\n TagComponent,\n BadgeComponent,\n LoaderComponent,\n ],\n providers: [SELECT_VALUE_ACCESSOR],\n templateUrl: './select.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class SelectComponent<T extends Record<string, unknown> | string> implements OnInit, AfterViewInit, ControlValueAccessor {\n private symbolRegistry: SymbolRegistry = inject(SymbolRegistry);\n private destroyRef: DestroyRef = inject(DestroyRef);\n private elementRef: ElementRef = inject(ElementRef);\n\n @ViewChild('searchInput') searchInput!: InputComponent;\n @ViewChild('inlineLabel') inlineLabelElement!: ElementRef<HTMLDivElement>;\n @ViewChild('select') select!: NgSelectComponent;\n\n @HostBinding('class.hovered') hovered: boolean = false;\n\n optionsSignal = signal<T[]>([]);\n @Input({ required: true }) set options(options: T[]) {\n this.optionsSignal.set(options);\n this.filteredOptionsSignal.set(options);\n }\n\n @Input() ariaLabel!: string;\n @Input() ariaLabelledBy!: string;\n @Input() ariaDescribedBy!: string;\n @Input() appendTo: string = 'body';\n @Input() clearable: boolean = false;\n @Input() description?: string;\n @Input() disabled: boolean = false;\n @Input() selectId?: string;\n\n private _inline: boolean = false;\n @HostBinding('class.inline')\n @Input()\n set inlineLabel(inlineLabel: boolean) {\n this._inline = inlineLabel;\n if (!this.inlineLabelElement) {\n return;\n }\n this.elementRef.nativeElement.style.setProperty(\n '--placeholder-padding-left',\n `${this.inlineLabelElement.nativeElement.clientWidth}px`\n );\n }\n\n get inlineLabel(): boolean {\n return this._inline;\n }\n\n @Input() create: boolean = false;\n @Input() createText: string = 'Create';\n @Input() group: boolean = false;\n @Input() selectableGroup: boolean = true;\n @Input() label: string = '';\n @Input() multiple: boolean = false;\n @Input() only: boolean = false;\n @Input() onlyText: string = 'Only';\n @Input() placeholder: string = 'Select...';\n @Input() selectAll: boolean = false;\n @Input() selectAllText: string = 'Select all';\n @Input() unselectAllText: string = 'Unselect all';\n @Input() searchable: boolean = false;\n @Input() searchPlaceholder: string = 'Search...';\n @Input() searchFn: (term: string) => Observable<T[]> = this.defaultSearchFn;\n @Input() notFoundText: string = 'No results found';\n @Input() loadingText: string = 'Loading items';\n @Input() set displayType(displayType: DisplayType) {\n this.displayTypeSignal.set(displayType);\n }\n\n @Input() optionLabel?: string;\n @Input() optionCaption?: string;\n @Input() optionDivider?: string = 'divider';\n @Input() optionProfileImageUrl?: string;\n @Input() optionBadgeLabel?: string;\n @Input() optionValue?: string;\n @Input() optionDisabled: string = 'disabled';\n @Input() optionGroupLabel: string = 'group';\n @Input() optionGroupTag?: Record<string, string>;\n @Input() set maximumDisplayOptions(maximumDisplayOptions: number) {\n this.maximumDisplayValuesSignal.set(maximumDisplayOptions);\n }\n @Input() customOptionTemplate?: TemplateRef<{ option: T }>;\n @Input() customLabelTemplate?: TemplateRef<{ option: T }>;\n @Input() customMultiLabelTemplate?: TemplateRef<{ options: T[] }>;\n @Input() errorMessage?: string;\n @Input() successMessage?: string;\n\n @Input() compareWith!: (a: any, b: any) => boolean;\n\n @Output() createNew: EventEmitter<string> = new EventEmitter();\n @Output() valueChanges = new EventEmitter<unknown[]>();\n\n private _controlValueAccessorChangeFn!: (value: unknown[]) => void;\n onTouched!: () => void;\n displayTypeSignal = signal<DisplayType>('text');\n\n enabledOptions = computed<T[]>(() => {\n return this.optionsSignal().filter((value: T) => {\n if (typeof value === 'string') {\n return value;\n } else {\n return this.optionDisabled && !value[this.optionDisabled];\n }\n });\n });\n\n itemHoveredSignal = signal<string | null>(null);\n filteredOptionsSignal = signal<T[]>([]);\n loadingSignal = signal<boolean>(false);\n selectedValuesSignal = signal<unknown[]>([]);\n searchTermSignal = signal<string>('');\n searchTerm$ = toObservable(this.searchTermSignal);\n maximumDisplayValuesSignal = signal<number>(-1);\n hiddenCountSignal = signal<number>(0);\n\n allSelectedSignal = computed<boolean>(() => {\n return this.selectedValuesSignal().length === this.enabledOptions().length;\n });\n partialySelectedSignal = computed<boolean>(() => {\n return this.selectedValuesSignal().length > 0 && this.selectedValuesSignal().length < this.enabledOptions().length;\n });\n\n private injector = inject(EnvironmentInjector);\n private selectValueContainer!: HTMLElement;\n private selectValueContainerWidthSignal = signal(0);\n\n constructor() {\n this.symbolRegistry.registerSymbols([apCheck2, apAlertCircle, apCheckCircle, apSearchAlternate, apAdd2022, apDeleteNoCircle]);\n }\n\n writeValue(selectedValues: unknown[] = []): void {\n this.selectedValuesSignal.set(selectedValues);\n }\n\n registerOnChange(fn: (value: unknown[]) => void): void {\n this._controlValueAccessorChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n ngOnInit(): void {\n if (this.multiple && (!this.displayTypeSignal() || this.displayTypeSignal() === 'text')) {\n console.warn('Display type \"text\" is not supported for multiple select. Switching to \"label\".');\n this.displayTypeSignal.set('label');\n }\n this.searchTerm$\n .pipe(\n debounceTime(250),\n skip(1),\n tap(() => {\n this.loadingSignal.set(true);\n this.optionsSignal.set([]);\n }),\n switchMap((term: string) => this.searchFn(term)),\n tap(() => {\n this.loadingSignal.set(false);\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((options: T[]) => {\n this.optionsSignal.set(options);\n });\n }\n\n ngAfterViewInit(): void {\n if (this.inlineLabelElement) {\n this.elementRef.nativeElement.style.setProperty(\n '--placeholder-padding-left',\n `${this.inlineLabelElement.nativeElement.clientWidth}px`\n );\n }\n this.selectValueContainer = this.select.element.getElementsByClassName('ng-value-container')[0] as HTMLElement;\n if (this.multiple) {\n fromEvent(window, 'resize')\n .pipe(debounceTime(200), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.updateSelectValueContainerWidthSignal();\n });\n }\n this.updateSelectValueContainerWidthSignal();\n runInInjectionContext(this.injector, () => {\n effect(\n () => {\n if (this.multiple) {\n const selectedValues = this.selectedValuesSignal();\n const selectValueContainerWidthSignal = this.selectValueContainerWidthSignal();\n const timeout = setTimeout(() => {\n this.calculateResponsiveLabels(selectValueContainerWidthSignal, selectedValues);\n }, 100);\n return () => {\n clearTimeout(timeout);\n };\n }\n return;\n },\n {\n allowSignalWrites: true,\n }\n );\n });\n }\n\n onSearchTermChange(searchTerm: string): void {\n this.searchTermSignal.set(searchTerm);\n }\n\n private defaultSearchFn(term: string): Observable<T[]> {\n return of(\n this.filteredOptionsSignal().filter((option: T) => {\n if (typeof option === 'string') {\n return option.toLowerCase().includes(term.toLowerCase());\n }\n if (this.optionLabel) {\n return String(option[this.optionLabel]).toLowerCase().includes(term.toLowerCase());\n }\n return option;\n })\n );\n }\n\n isGroupIndeterminate(children: NgOption[]) {\n return children.some((child: NgOption) => child.selected) && !this.isGroupChecked(children);\n }\n\n isGroupDisabled(children: NgOption[]): boolean {\n return children.every((child: NgOption) => child.disabled);\n }\n\n isGroupChecked(children: NgOption[]): boolean {\n return children.every((child: NgOption) => child.disabled || child.selected) && !this.isGroupDisabled(children);\n }\n\n onSelectOnly(item: T): void {\n if (typeof item === 'string') {\n this.selectedValuesSignal.set([item]);\n } else {\n this.optionValue ? this.selectedValuesSignal.set([item[this.optionValue]]) : this.selectedValuesSignal.set([item]);\n }\n this.callControlValueAccessorChangeFn();\n }\n\n onSelectOpened(): void {\n setTimeout(() => {\n if (this.onTouched) {\n this.onTouched();\n }\n if (this.searchable && !!this.searchFn) {\n this.searchInput.focusInput();\n }\n });\n }\n\n onHoverItem(htmlid: string): void {\n if (!this.multiple || this.disabled) {\n return;\n }\n this.itemHoveredSignal.set(htmlid);\n }\n\n onLeaveItem(): void {\n if (!this.multiple || this.disabled) {\n return;\n }\n this.itemHoveredSignal.set(null);\n }\n\n onToggleAll(): void {\n if (this.partialySelectedSignal() || this.allSelectedSignal()) {\n this.selectedValuesSignal.set([]);\n } else {\n this.selectedValuesSignal.set(\n this.enabledOptions().map((value: T) => {\n if (typeof value === 'string') {\n return value;\n }\n return this.optionValue ? value[this.optionValue] : value;\n })\n );\n }\n this.callControlValueAccessorChangeFn();\n }\n\n onSelectedValuesChange(selectedValues: unknown[]): void {\n this.selectedValuesSignal.set(selectedValues);\n this.callControlValueAccessorChangeFn();\n }\n\n onOpenSelect(): void {\n this.select.open();\n }\n\n onInlineInputEnter(): void {\n this.hovered = true;\n }\n\n onInlineInputLeave(): void {\n this.hovered = false;\n }\n\n onCreateNew(): void {\n this.createNew.emit(this.searchTermSignal());\n this.select.close();\n }\n\n removeSelectedItem({ $event }: { $event: PointerEvent | MouseEvent }, item: T): void {\n if ($event) {\n $event.stopImmediatePropagation();\n }\n const selectedItemId = typeof item === 'string' ? item : this.optionValue ? item[this.optionValue] : item;\n this.selectedValuesSignal.update((selectedValues: unknown[]) =>\n selectedValues.filter((selectedValue: unknown) => selectedValue !== selectedItemId)\n );\n this.callControlValueAccessorChangeFn();\n }\n\n private callControlValueAccessorChangeFn() {\n this.valueChanges.emit(this.selectedValuesSignal());\n if (this._controlValueAccessorChangeFn) {\n this._controlValueAccessorChangeFn(this.selectedValuesSignal());\n }\n }\n\n private updateSelectValueContainerWidthSignal() {\n if (this.selectValueContainer) {\n const remainingPlaceHolderWidth = 100;\n const selectValueContainerWidth = this.selectValueContainer.clientWidth - remainingPlaceHolderWidth;\n this.selectValueContainerWidthSignal.set(selectValueContainerWidth);\n }\n }\n\n private calculateResponsiveLabels(containerWidth: number, selectedValues: unknown[]): void {\n if (!selectedValues || selectedValues.length === 0) {\n this.hiddenCountSignal.set(0);\n return;\n }\n const itemsContainer = this.selectValueContainer.getElementsByClassName('multiple-item')[0] as HTMLElement;\n const items = this.selectValueContainer.getElementsByClassName('item');\n let totalWidth = 0;\n let hiddenCount = 0;\n const itemGap = 4;\n for (let index = 0; index < items.length; index++) {\n const item = items[index];\n const itemWidth = item.clientWidth + itemGap;\n if (totalWidth + itemWidth < containerWidth && !hiddenCount) {\n totalWidth += itemWidth;\n (item as HTMLElement).style.visibility = 'visible';\n } else {\n (item as HTMLElement).style.visibility = 'hidden';\n hiddenCount++;\n }\n }\n itemsContainer.style.maxWidth = `${totalWidth}px`;\n this.hiddenCountSignal.set(hiddenCount);\n }\n}\n","<label\n *ngIf=\"label && !inlineLabel\"\n [for]=\"selectId\">\n <span>\n {{ label }}\n </span>\n <span\n *ngIf=\"description\"\n class=\"description\">\n {{ description }}\n </span>\n</label>\n\n<div\n *ngIf=\"inlineLabel\"\n #inlineLabel\n tabindex=\"0\"\n class=\"inline-label\"\n (click)=\"onOpenSelect()\"\n (keydown.enter)=\"onOpenSelect()\"\n (mouseenter)=\"onInlineInputEnter()\"\n (mouseleave)=\"onInlineInputLeave()\">\n <label\n *ngIf=\"label && inlineLabel\"\n class=\"label\"\n [for]=\"selectId\">\n <span>\n {{ label }}\n </span>\n </label>\n <div class=\"divider\"></div>\n</div>\n\n<ng-select\n #select\n class=\"ap-select-legacy\"\n [tabIndex]=\"0\"\n [clearable]=\"clearable\"\n [placeholder]=\"placeholder\"\n [labelForId]=\"selectId\"\n [searchable]=\"false\"\n [closeOnSelect]=\"!multiple\"\n [bindValue]=\"optionValue ? optionValue : ''\"\n [groupBy]=\"group ? optionGroupLabel : ''\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n [markFirst]=\"false\"\n [selectableGroup]=\"selectableGroup\"\n [selectableGroupAsModel]=\"false\"\n [appendTo]=\"appendTo\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledBy || null\"\n [attr.aria-describedby]=\"ariaDescribedBy || null\"\n [attr.aria-disabled]=\"disabled?.toString()\"\n [items]=\"optionsSignal()\"\n [compareWith]=\"compareWith\"\n [loading]=\"loadingSignal()\"\n [ngModel]=\"selectedValuesSignal()\"\n [class.with-error]=\"errorMessage\"\n [class.with-success]=\"successMessage\"\n (ngModelChange)=\"onSelectedValuesChange($event)\"\n (open)=\"onSelectOpened()\">\n <ng-container *ngIf=\"searchable || selectAll\">\n <ng-template\n let-item=\"item\"\n ng-header-tmp>\n <ng-container *ngIf=\"searchable\">\n <ap-input\n #searchInput\n tabindex=\"0\"\n name=\"search-input\"\n class=\"full-width\"\n symbolId=\"search-alternate\"\n symbolPosition=\"right\"\n [placeholder]=\"searchPlaceholder\"\n [ngModel]=\"searchTermSignal()\"\n (ngModelChange)=\"onSearchTermChange($event)\" />\n </ng-container>\n <ng-container *ngIf=\"selectAll\">\n <ap-checkbox\n class=\"select-all-checkbox\"\n name=\"option-group-select-all\"\n [indeterminate]=\"partialySelectedSignal()\"\n [checked]=\"allSelectedSignal()\"\n (click)=\"onToggleAll()\">\n <span>\n {{ partialySelectedSignal() || allSelectedSignal() ? unselectAllText : selectAllText }}\n </span>\n </ap-checkbox>\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-template\n let-item=\"item\"\n let-item$=\"item$\"\n ng-optgroup-tmp>\n <div\n class=\"group\"\n [class.with-search]=\"searchable\"\n [class.with-select-all]=\"selectAll\">\n <ng-container *ngIf=\"!multiple\">\n <span class=\"group-label\">\n {{ item[optionGroupLabel] }}\n </span>\n <ap-badge\n *ngIf=\"optionGroupTag && optionGroupTag[item[optionGroupLabel]]\"\n color=\"blue\">\n {{ optionGroupTag[item[optionGroupLabel]] }}\n </ap-badge>\n </ng-container>\n <ng-container *ngIf=\"multiple\">\n <ap-checkbox\n *ngIf=\"selectableGroup\"\n [name]=\"'option-group-selection-' + item['group']\"\n [indeterminate]=\"isGroupIndeterminate(item$.children)\"\n [checked]=\"isGroupChecked(item$.children)\">\n <span class=\"group-label\">\n {{ item[optionGroupLabel] }}\n </span>\n <ap-badge\n *ngIf=\"optionGroupTag && optionGroupTag[item[optionGroupLabel]]\"\n color=\"blue\">\n {{ optionGroupTag[item[optionGroupLabel]] }}\n </ap-badge>\n </ap-checkbox>\n <span\n *ngIf=\"!selectableGroup\"\n class=\"group-label\">\n {{ item[optionGroupLabel] }}\n </span>\n </ng-container>\n </div>\n </ng-template>\n <ng-template\n let-items=\"items\"\n let-item$=\"item$\"\n ng-multi-label-tmp>\n <ng-container>\n <div class=\"multiple-item\">\n <ng-container *ngIf=\"!customMultiLabelTemplate\">\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngIf=\"optionLabel && item[optionLabel]\">\n <ng-container *ngIf=\"displayTypeSignal() === 'text' || !displayTypeSignal()\">\n <span\n class=\"item text-item\"\n [title]=\"item[optionLabel]\">\n {{ item[optionLabel] }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"displayTypeSignal() === 'label'\">\n <ap-label\n color=\"blue\"\n class=\"item\"\n removable=\"true\"\n [content]=\"item[optionLabel]\"\n (remove)=\"removeSelectedItem($event, item)\" />\n </ng-container>\n <ng-container *ngIf=\"displayTypeSignal() === 'tag'\">\n <ap-tag\n class=\"item text-item\"\n clearable=\"true\"\n (clear)=\"removeSelectedItem($event, item)\">\n <ap-avatar\n *ngIf=\"optionProfileImageUrl\"\n size=\"24\"\n [profilePicture]=\"item[optionProfileImageUrl] ?? ''\"\n [username]=\"optionLabel && item[optionLabel] ? item[optionLabel] : ''\"\n [showInitials]=\"true\" />\n {{ item[optionLabel] }}\n </ap-tag>\n </ng-container>\n <ng-container *ngIf=\"displayTypeSignal() === 'withAvatar'\">\n <div class=\"item with-avatar\">\n <ap-avatar\n *ngIf=\"optionProfileImageUrl\"\n size=\"24\"\n [profilePicture]=\"item[optionProfileImageUrl] ?? ''\"\n [username]=\"optionLabel && item[optionLabel] ? item[optionLabel] : ''\"\n [showInitials]=\"true\" />\n <span\n class=\"text-item\"\n [title]=\"item[optionLabel]\">\n {{ item[optionLabel] }}\n </span>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!optionLabel || !item[optionLabel]\">\n <ng-container *ngIf=\"displayTypeSignal() === 'text' || !displayTypeSignal()\">\n <span\n class=\"item text-item\"\n [title]=\"item\">\n {{ item }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"displayTypeSignal() === 'label'\">\n <ap-label\n class=\"item\"\n color=\"blue\"\n [removable]=\"multiple\"\n [content]=\"item\"\n (remove)=\"removeSelectedItem($event, item)\" />\n </ng-container>\n <ng-container *ngIf=\"displayTypeSignal() === 'tag'\">\n <ap-tag\n class=\"item text-item\"\n [clearable]=\"multiple\"\n (clear)=\"removeSelectedItem($event, item)\">\n {{ item }}\n </ap-tag>\n </ng-container>\n <ng-container *ngIf=\"displayTypeSignal() === 'withAvatar'\">\n <div class=\"item with-avatar\">\n <ap-avatar\n *ngIf=\"optionProfileImageUrl\"\n size=\"24\"\n [profilePicture]=\"item[optionProfileImageUrl] ?? ''\"\n [username]=\"optionLabel && item[optionLabel] ? item[optionLabel] : ''\"\n [showInitials]=\"true\" />\n <span class=\"text-item\">\n {{ item }}\n </span>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"customMultiLabelTemplate\">\n <ng-container *ngTemplateOutlet=\"customMultiLabelTemplate; context: { options: items }\" />\n </ng-container>\n </div>\n <div\n *ngIf=\"hiddenCountSignal() > 0\"\n class=\"remaining\">\n <ng-container *ngIf=\"displayTypeSignal() === 'text' || displayTypeSignal() === 'withAvatar' || !displayTypeSignal()\">\n <span class=\"text-item\">+{{ hiddenCountSignal() }}</span>\n </ng-container>\n <ng-container *ngIf=\"displayTypeSignal() === 'tag'\">\n <ap-tag\n class=\"text-item\"\n clearable=\"false\">\n +{{ hiddenCountSignal() }}\n </ap-tag>\n </ng-container>\n <ng-container *ngIf=\"displayTypeSignal() === 'label'\">\n <ap-label\n color=\"blue\"\n [removable]=\"false\"\n [content]=\"'+' + hiddenCountSignal()\" />\n </ng-container>\n </div>\n </ng-container>\n </ng-template>\n <ng-template ng-loadingtext-tmp>\n <div class=\"loading-state\">\n <ap-loader diameter=\"30\" />\n <span>\n {{ loadingText }}\n </span>\n </div>\n </ng-template>\n <ng-template ng-loadingspinner-tmp></ng-template>\n <ng-container *ngIf=\"create\">\n <ng-template ng-footer-tmp>\n <button\n class=\"create-new\"\n type=\"button\"\n (click)=\"onCreateNew()\">\n <ap-symbol\n symbolId=\"add-2022\"\n size=\"micro\" />\n <span>\n {{ createText }}\n </span>\n <ng-container *ngIf=\"searchTermSignal()\">\"{{ searchTermSignal() }}\"</ng-container>\n </button>\n </ng-template>\n </ng-container>\n <ng-template\n let-item=\"item\"\n let-item$=\"item$\"\n ng-option-tmp>\n <ng-container\n *ngIf=\"(!optionLabel || !item[optionLabel]) && item && (!optionDivider || !item[optionDivider]) && !customOptionTemplate\">\n <div class=\"option\">\n <span\n class=\"option-item\"\n [title]=\"item\">\n {{ item }}\n </span>\n <ng-container *ngIf=\"item$.selected && !multiple\">\n <ap-symbol\n symbolId=\"check-2\"\n color=\"electric-blue\"\n size=\"micro\" />\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"(optionLabel && item[optionLabel]) || customOptionTemplate\">\n <div\n class=\"option\"\n [class.with-caption]=\"optionCaption && item[optionCaption]\"\n [class.multiple]=\"multiple\"\n (mouseenter)=\"onHoverItem(item$.htmlId)\"\n (mouseleave)=\"onLeaveItem()\">\n <ng-container *ngTemplateOutlet=\"contentItem; context: { item: item, item$: item$ }\" />\n </div>\n </ng-container>\n <ng-container *ngIf=\"optionDivider && item[optionDivider]\">\n <div class=\"divider\"></div>\n </ng-container>\n </ng-template>\n <ng-template\n let-item=\"item\"\n ng-label-tmp>\n <ng-container *ngIf=\"customLabelTemplate\">\n <ng-container *ngTemplateOutlet=\"customLabelTemplate; context: { option: item }\" />\n </ng-container>\n <ng-container *ngIf=\"!optionLabel && !customLabelTemplate\">\n <ng-container *ngIf=\"displayTypeSignal() === 'text' || !displayTypeSignal()\">\n <span\n class=\"text-item\"\n [title]=\"item\">\n {{ item }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"displayTypeSignal() === 'label'\">\n <ap-label\n color=\"blue\"\n [removable]=\"multiple\"\n [content]=\"item\"\n (remove)=\"removeSelectedItem($event, item)\" />\n </ng-container>\n <ng-container *ngIf=\"displayTypeSignal() === 'tag'\">\n <ap-tag\n class=\"text-item\"\n [clearable]=\"multiple\"\n (clear)=\"removeSelectedItem($event, item)\">\n {{ item }}\n </ap-tag>\n </ng-container>\n <ng-container *ngIf=\"displayTypeSignal() === 'withAvatar'\">\n <span class=\"text-item\">\n {{ item }}\n </span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"optionLabel && !customLabelTemplate\">\n <ng-container *ngIf=\"displayTypeSignal() === 'text' || !displayTypeSignal()\">\n <span class=\"text-item\">\n {{ item[optionLabel] }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"displayTypeSignal() === 'label'\">\n <ap-label\n color=\"blue\"\n [removable]=\"multiple\"\n [content]=\"item[optionLabel]\"\n (remove)=\"removeSelectedItem($event, item)\" />\n </ng-container>\n <ng-container *ngIf=\"displayTypeSignal() === 'tag'\">\n <ap-tag\n class=\"text-item\"\n [clearable]=\"multiple\"\n [title]=\"item[optionLabel]\"\n (clear)=\"removeSelectedItem($event, item)\">\n <ap-avatar\n *ngIf=\"optionProfileImageUrl\"\n size=\"24\"\n [profilePicture]=\"item[optionProfileImageUrl] ?? ''\"\n [username]=\"optionLabel && item[optionLabel] ? item[optionLabel] : ''\"\n [showInitials]=\"true\" />\n {{ item[optionLabel] }}\n </ap-tag>\n </ng-container>\n <ng-container *ngIf=\"displayTypeSignal() === 'withAvatar'\">\n <div class=\"with-avatar\">\n <ap-avatar\n *ngIf=\"optionProfileImageUrl\"\n size=\"24\"\n [profilePicture]=\"item[optionProfileImageUrl] ?? ''\"\n [username]=\"optionLabel && item[optionLabel] ? item[optionLabel] : ''\"\n [showInitials]=\"true\" />\n <span\n class=\"text-item\"\n [title]=\"item[optionLabel]\">\n {{ item[optionLabel] }}\n </span>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n <ng-template ng-notfound-tmp>\n <div class=\"option not-found\">\n {{ notFoundText }}\n </div>\n </ng-template>\n</ng-select>\n\n<ng-template\n #contentItem\n let-item=\"item\"\n let-item$=\"item$\">\n <ng-container *ngIf=\"multiple\">\n <div class=\"disabled-opaque\"></div>\n <ap-checkbox\n *ngIf=\"multiple\"\n [checked]=\"item$.selected\"\n [disabled]=\"item$.disabled\"\n [name]=\"'option-selection-' + item$.htmlId\">\n <ng-container *ngTemplateOutlet=\"textItem; context: { item: item, item$: item$ }\" />\n </ap-checkbox>\n </ng-container>\n <ng-container *ngIf=\"!multiple\">\n <div class=\"disabled-opaque\"></div>\n <ng-container *ngTemplateOutlet=\"textItem; context: { item: item, item$: item$ }\" />\n </ng-container>\n</ng-template>\n\n<ng-template\n #textItem\n let-item=\"item\"\n let-item$=\"item$\">\n <div class=\"content\">\n <ng-container *ngIf=\"!customOptionTemplate\">\n <ng-container *ngIf=\"!optionLabel\">\n <span class=\"item\">\n {{ item }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"optionProfileImageUrl\">\n <ap-avatar\n size=\"24\"\n [profilePicture]=\"item[optionProfileImageUrl] ?? ''\"\n [username]=\"optionLabel && item[optionLabel] ? item[optionLabel] : ''\"\n [showInitials]=\"true\" />\n </ng-container>\n <ng-container *ngIf=\"optionLabel && item[optionLabel]\">\n <div class=\"texts\">\n <div class=\"first-line\">\n <span\n class=\"label\"\n [title]=\"item[optionLabel]\">\n {{ item[optionLabel] }}\n </span>\n <ng-container *ngIf=\"optionBadgeLabel && item[optionBadgeLabel]\">\n <ap-badge color=\"blue\">{{ item[optionBadgeLabel] }}</ap-badge>\n </ng-container>\n </div>\n <ng-container *ngIf=\"optionCaption && item[optionCaption]\">\n <span\n class=\"caption\"\n [title]=\"item[optionCaption]\">\n {{ item[optionCaption] }}\n </span>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"customOptionTemplate\">\n <ng-container *ngTemplateOutlet=\"customOptionTemplate; context: { option: item }\" />\n </ng-container>\n <ng-container *ngIf=\"only && !item$.disabled && itemHoveredSignal() === item$.htmlId && multiple\">\n <button\n class=\"standalone-link\"\n type=\"button\"\n (click)=\"onSelectOnly(item)\">\n {{ onlyText }}\n </button>\n </ng-container>\n <ng-container *ngIf=\"item$.selected && !multiple\">\n <ap-symbol\n symbolId=\"check-2\"\n color=\"electric-blue\"\n size=\"micro\" />\n </ng-container>\n </div>\n</ng-template>\n\n<div\n *ngIf=\"errorMessage\"\n class=\"form-message error\">\n <ap-symbol\n symbolId=\"alert-circle\"\n size=\"micro\" />\n <span>\n {{ errorMessage }}\n </span>\n</div>\n\n<div\n *ngIf=\"successMessage\"\n class=\"form-message success\">\n <ap-symbol\n symbolId=\"check-circle\"\n size=\"micro\" />\n <span>\n {{ successMessage }}\n </span>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { SymbolRegistry, apAlertCircle, apCheckCircle, SymbolComponent } from '@agorapulse/ui-symbol';
|
|
2
|
+
import { NgIf } from '@angular/common';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { forwardRef, inject, ElementRef, signal, booleanAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChildren, Input } from '@angular/core';
|
|
5
|
+
import * as i1 from '@angular/forms';
|
|
6
|
+
import { NG_VALUE_ACCESSOR, NG_VALIDATORS, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
7
|
+
|
|
8
|
+
const AP_TEXTAREA_CONTROL_VALUE_ACCESSOR = {
|
|
9
|
+
provide: NG_VALUE_ACCESSOR,
|
|
10
|
+
useExisting: forwardRef(() => TextareaComponent),
|
|
11
|
+
multi: true,
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated use native textarea with directive apTextarea and ap-form-field instead
|
|
15
|
+
*/
|
|
16
|
+
class TextareaComponent {
|
|
17
|
+
elementRef = inject(ElementRef);
|
|
18
|
+
symbolRegistry = inject(SymbolRegistry);
|
|
19
|
+
symbols;
|
|
20
|
+
ariaLabel;
|
|
21
|
+
ariaLabelledBy;
|
|
22
|
+
ariaDescribedBy;
|
|
23
|
+
disabled = false;
|
|
24
|
+
textareaId;
|
|
25
|
+
name;
|
|
26
|
+
label;
|
|
27
|
+
description;
|
|
28
|
+
rows = 3;
|
|
29
|
+
cols = 20;
|
|
30
|
+
autoresize = false;
|
|
31
|
+
required = false;
|
|
32
|
+
placeholder;
|
|
33
|
+
errorMessage;
|
|
34
|
+
successMessage;
|
|
35
|
+
resize = false;
|
|
36
|
+
symbolPosition = 'right';
|
|
37
|
+
_controlValueAccessorChangeFn;
|
|
38
|
+
hostDataTest = signal(undefined);
|
|
39
|
+
value;
|
|
40
|
+
onTouched;
|
|
41
|
+
constructor() {
|
|
42
|
+
if (this.label && !this.textareaId) {
|
|
43
|
+
throw Error('You have to provide an textarea id id if you want to use a label.');
|
|
44
|
+
}
|
|
45
|
+
this.hostDataTest.set(this.elementRef.nativeElement.getAttribute('data-test'));
|
|
46
|
+
this.elementRef.nativeElement.removeAttribute('data-test');
|
|
47
|
+
this.symbolRegistry.registerSymbols([apAlertCircle, apCheckCircle]);
|
|
48
|
+
}
|
|
49
|
+
ngOnInit() {
|
|
50
|
+
if (this.label && !this.textareaId) {
|
|
51
|
+
throw Error('You have to provide an textarea id if you want to use a label.');
|
|
52
|
+
}
|
|
53
|
+
this.hostDataTest.set(this.elementRef.nativeElement.getAttribute('data-test'));
|
|
54
|
+
this.elementRef.nativeElement.removeAttribute('data-test');
|
|
55
|
+
}
|
|
56
|
+
// Sometimes attributes like the id, or the data-test are dynamic and can change between the constructor and the initialization.
|
|
57
|
+
// In order to have the last attributes value we check if it changes, and if it does, we run a mark for check to update the view.
|
|
58
|
+
ngAfterViewInit() {
|
|
59
|
+
const hostDataTest = this.elementRef.nativeElement.getAttribute('data-test');
|
|
60
|
+
if (hostDataTest && this.hostDataTest() !== hostDataTest) {
|
|
61
|
+
this.hostDataTest.set(hostDataTest);
|
|
62
|
+
this.elementRef.nativeElement.removeAttribute('data-test');
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
validate({ value }) {
|
|
66
|
+
const isNotValid = !this.value && this.required;
|
|
67
|
+
return (isNotValid && {
|
|
68
|
+
invalid: true,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
onValueChange() {
|
|
72
|
+
if (this.onTouched) {
|
|
73
|
+
this.onTouched();
|
|
74
|
+
}
|
|
75
|
+
if (!this.disabled) {
|
|
76
|
+
if (this._controlValueAccessorChangeFn) {
|
|
77
|
+
this._controlValueAccessorChangeFn(this.value);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
writeValue(value) {
|
|
82
|
+
this.value = value;
|
|
83
|
+
}
|
|
84
|
+
registerOnChange(fn) {
|
|
85
|
+
this._controlValueAccessorChangeFn = fn;
|
|
86
|
+
}
|
|
87
|
+
registerOnTouched(fn) {
|
|
88
|
+
this.onTouched = fn;
|
|
89
|
+
}
|
|
90
|
+
setDisabledState(isDisabled) {
|
|
91
|
+
this.disabled = isDisabled;
|
|
92
|
+
}
|
|
93
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: TextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
94
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "16.2.10", type: TextareaComponent, isStandalone: true, selector: "ap-textarea", inputs: { ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy", disabled: "disabled", textareaId: "textareaId", name: "name", label: "label", description: "description", rows: "rows", cols: "cols", autoresize: ["autoresize", "autoresize", booleanAttribute], required: ["required", "required", booleanAttribute], placeholder: "placeholder", errorMessage: "errorMessage", successMessage: "successMessage", resize: "resize", symbolPosition: "symbolPosition" }, providers: [
|
|
95
|
+
AP_TEXTAREA_CONTROL_VALUE_ACCESSOR,
|
|
96
|
+
{
|
|
97
|
+
provide: NG_VALIDATORS,
|
|
98
|
+
useExisting: TextareaComponent,
|
|
99
|
+
multi: true,
|
|
100
|
+
},
|
|
101
|
+
], queries: [{ propertyName: "symbols", predicate: SymbolComponent }], ngImport: i0, template: "<label\n *ngIf=\"label\"\n [for]=\"textareaId\">\n <span>\n {{ label }}\n </span>\n <span\n *ngIf=\"description\"\n class=\"description\">\n {{ description }}\n </span>\n</label>\n\n<textarea\n [class.with-error]=\"errorMessage\"\n [class.with-success]=\"successMessage\"\n [class.with-resize]=\"resize\"\n [placeholder]=\"placeholder\"\n [attr.data-test]=\"hostDataTest() ? hostDataTest() : name\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [id]=\"textareaId\"\n [cols]=\"cols\"\n [rows]=\"rows\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledBy || null\"\n [attr.aria-describedby]=\"ariaDescribedBy || null\"\n [attr.aria-disabled]=\"disabled?.toString()\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange()\"></textarea>\n<div\n *ngIf=\"errorMessage\"\n class=\"form-message error\">\n <ap-symbol\n symbolId=\"alert-circle\"\n size=\"micro\" />\n <span>\n {{ errorMessage }}\n </span>\n</div>\n\n<div\n *ngIf=\"successMessage\"\n class=\"form-message success\">\n <ap-symbol\n symbolId=\"check-circle\"\n size=\"micro\" />\n <span>\n {{ successMessage }}\n </span>\n</div>\n", styles: ["ap-textarea{display:flex;flex-direction:column;gap:var(--ref-spacing-xxs);--border-width: 1px}ap-textarea label{display:flex;flex-direction:column;gap:var(--comp-forms-label-spacing-vertical);font-size:var(--comp-forms-label-size);font-weight:var(--comp-forms-label-font-weight);line-height:var(--comp-forms-label-line-height);font-family:var(--comp-forms-label-font-family);color:var(--comp-forms-label-text-color)}ap-textarea label .description{font-size:var(--comp-forms-label-description-text-size);font-weight:var(--comp-forms-label-description-text-font-weight);line-height:var(--comp-forms-label-description-text-line-height);font-family:var(--comp-forms-label-description-text-font-family);color:var(--comp-forms-label-description-text-color)}ap-textarea textarea{resize:none;width:256px;border:var(--border-width) solid var(--comp-input-border-default-color);background-color:var(--ref-color-white);padding:var(--ref-spacing-xxs) var(--ref-spacing-xs) var(--ref-spacing-xxs) var(--ref-spacing-xs);border-radius:var(--ref-border-radius-sm)}ap-textarea textarea::placeholder{color:var(--comp-input-text-placeholder-color)}ap-textarea textarea:not(.transparent):not(.valid):not(.invalid):not(:focus):not([disabled]):hover{border-color:var(--comp-input-border-hover-color)}ap-textarea textarea:active{border-color:var(--comp-input-border-focused-color)}ap-textarea textarea:disabled{background-color:var(--comp-input-fill-disabled-color);color:var(--comp-input-text-disabled-color);cursor:default}ap-textarea textarea.with-error{border-color:var(--comp-input-border-error-color)}ap-textarea textarea.with-success{border-color:var(--comp-input-border-success-color)}ap-textarea textarea.with-resize{resize:vertical}.form-message{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);font-family:var(--sys-text-style-body-font-family);margin:0;display:flex;gap:var(--ref-spacing-xxxs)}.form-message.error{color:var(--comp-forms-status-text-error-color)}.form-message.error ap-symbol{color:var(--comp-forms-status-icon-error-color)}.form-message.success{color:var(--comp-forms-status-text-success-color)}.form-message.success ap-symbol{color:var(--comp-forms-status-icon-success-color)}form.ng-submitted ap-textarea.ng-valid textarea{border-color:var(--comp-input-border-success-color)}form.ng-submitted ap-textarea.ng-invalid textarea{border-color:var(--comp-input-border-error-color)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["color", "symbolId", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
102
|
+
}
|
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: TextareaComponent, decorators: [{
|
|
104
|
+
type: Component,
|
|
105
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-textarea', standalone: true, imports: [NgIf, ReactiveFormsModule, FormsModule, SymbolComponent], providers: [
|
|
106
|
+
AP_TEXTAREA_CONTROL_VALUE_ACCESSOR,
|
|
107
|
+
{
|
|
108
|
+
provide: NG_VALIDATORS,
|
|
109
|
+
useExisting: TextareaComponent,
|
|
110
|
+
multi: true,
|
|
111
|
+
},
|
|
112
|
+
], encapsulation: ViewEncapsulation.None, template: "<label\n *ngIf=\"label\"\n [for]=\"textareaId\">\n <span>\n {{ label }}\n </span>\n <span\n *ngIf=\"description\"\n class=\"description\">\n {{ description }}\n </span>\n</label>\n\n<textarea\n [class.with-error]=\"errorMessage\"\n [class.with-success]=\"successMessage\"\n [class.with-resize]=\"resize\"\n [placeholder]=\"placeholder\"\n [attr.data-test]=\"hostDataTest() ? hostDataTest() : name\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [id]=\"textareaId\"\n [cols]=\"cols\"\n [rows]=\"rows\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledBy || null\"\n [attr.aria-describedby]=\"ariaDescribedBy || null\"\n [attr.aria-disabled]=\"disabled?.toString()\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange()\"></textarea>\n<div\n *ngIf=\"errorMessage\"\n class=\"form-message error\">\n <ap-symbol\n symbolId=\"alert-circle\"\n size=\"micro\" />\n <span>\n {{ errorMessage }}\n </span>\n</div>\n\n<div\n *ngIf=\"successMessage\"\n class=\"form-message success\">\n <ap-symbol\n symbolId=\"check-circle\"\n size=\"micro\" />\n <span>\n {{ successMessage }}\n </span>\n</div>\n", styles: ["ap-textarea{display:flex;flex-direction:column;gap:var(--ref-spacing-xxs);--border-width: 1px}ap-textarea label{display:flex;flex-direction:column;gap:var(--comp-forms-label-spacing-vertical);font-size:var(--comp-forms-label-size);font-weight:var(--comp-forms-label-font-weight);line-height:var(--comp-forms-label-line-height);font-family:var(--comp-forms-label-font-family);color:var(--comp-forms-label-text-color)}ap-textarea label .description{font-size:var(--comp-forms-label-description-text-size);font-weight:var(--comp-forms-label-description-text-font-weight);line-height:var(--comp-forms-label-description-text-line-height);font-family:var(--comp-forms-label-description-text-font-family);color:var(--comp-forms-label-description-text-color)}ap-textarea textarea{resize:none;width:256px;border:var(--border-width) solid var(--comp-input-border-default-color);background-color:var(--ref-color-white);padding:var(--ref-spacing-xxs) var(--ref-spacing-xs) var(--ref-spacing-xxs) var(--ref-spacing-xs);border-radius:var(--ref-border-radius-sm)}ap-textarea textarea::placeholder{color:var(--comp-input-text-placeholder-color)}ap-textarea textarea:not(.transparent):not(.valid):not(.invalid):not(:focus):not([disabled]):hover{border-color:var(--comp-input-border-hover-color)}ap-textarea textarea:active{border-color:var(--comp-input-border-focused-color)}ap-textarea textarea:disabled{background-color:var(--comp-input-fill-disabled-color);color:var(--comp-input-text-disabled-color);cursor:default}ap-textarea textarea.with-error{border-color:var(--comp-input-border-error-color)}ap-textarea textarea.with-success{border-color:var(--comp-input-border-success-color)}ap-textarea textarea.with-resize{resize:vertical}.form-message{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);font-family:var(--sys-text-style-body-font-family);margin:0;display:flex;gap:var(--ref-spacing-xxxs)}.form-message.error{color:var(--comp-forms-status-text-error-color)}.form-message.error ap-symbol{color:var(--comp-forms-status-icon-error-color)}.form-message.success{color:var(--comp-forms-status-text-success-color)}.form-message.success ap-symbol{color:var(--comp-forms-status-icon-success-color)}form.ng-submitted ap-textarea.ng-valid textarea{border-color:var(--comp-input-border-success-color)}form.ng-submitted ap-textarea.ng-invalid textarea{border-color:var(--comp-input-border-error-color)}\n"] }]
|
|
113
|
+
}], ctorParameters: function () { return []; }, propDecorators: { symbols: [{
|
|
114
|
+
type: ContentChildren,
|
|
115
|
+
args: [SymbolComponent]
|
|
116
|
+
}], ariaLabel: [{
|
|
117
|
+
type: Input
|
|
118
|
+
}], ariaLabelledBy: [{
|
|
119
|
+
type: Input
|
|
120
|
+
}], ariaDescribedBy: [{
|
|
121
|
+
type: Input
|
|
122
|
+
}], disabled: [{
|
|
123
|
+
type: Input
|
|
124
|
+
}], textareaId: [{
|
|
125
|
+
type: Input
|
|
126
|
+
}], name: [{
|
|
127
|
+
type: Input,
|
|
128
|
+
args: [{
|
|
129
|
+
required: true,
|
|
130
|
+
}]
|
|
131
|
+
}], label: [{
|
|
132
|
+
type: Input
|
|
133
|
+
}], description: [{
|
|
134
|
+
type: Input
|
|
135
|
+
}], rows: [{
|
|
136
|
+
type: Input
|
|
137
|
+
}], cols: [{
|
|
138
|
+
type: Input
|
|
139
|
+
}], autoresize: [{
|
|
140
|
+
type: Input,
|
|
141
|
+
args: [{ transform: booleanAttribute }]
|
|
142
|
+
}], required: [{
|
|
143
|
+
type: Input,
|
|
144
|
+
args: [{ transform: booleanAttribute }]
|
|
145
|
+
}], placeholder: [{
|
|
146
|
+
type: Input
|
|
147
|
+
}], errorMessage: [{
|
|
148
|
+
type: Input
|
|
149
|
+
}], successMessage: [{
|
|
150
|
+
type: Input
|
|
151
|
+
}], resize: [{
|
|
152
|
+
type: Input
|
|
153
|
+
}], symbolPosition: [{
|
|
154
|
+
type: Input
|
|
155
|
+
}] } });
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Generated bundle index. Do not edit.
|
|
159
|
+
*/
|
|
160
|
+
|
|
161
|
+
export { AP_TEXTAREA_CONTROL_VALUE_ACCESSOR, TextareaComponent };
|
|
162
|
+
//# sourceMappingURL=agorapulse-ui-components-legacy-textarea.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-legacy-textarea.mjs","sources":["../../../libs/ui-components/legacy/textarea/src/textarea.component.ts","../../../libs/ui-components/legacy/textarea/src/textarea.component.html","../../../libs/ui-components/legacy/textarea/src/agorapulse-ui-components-legacy-textarea.ts"],"sourcesContent":["import { SymbolComponent, SymbolRegistry, apAlertCircle, apCheckCircle } from '@agorapulse/ui-symbol';\nimport { NgIf } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n Input,\n OnInit,\n QueryList,\n ViewEncapsulation,\n WritableSignal,\n booleanAttribute,\n forwardRef,\n inject,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\n\nexport const AP_TEXTAREA_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextareaComponent),\n multi: true,\n};\n\n/**\n * @deprecated use native textarea with directive apTextarea and ap-form-field instead\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-textarea',\n styleUrls: ['./textarea.component.scss'],\n standalone: true,\n imports: [NgIf, ReactiveFormsModule, FormsModule, SymbolComponent],\n providers: [\n AP_TEXTAREA_CONTROL_VALUE_ACCESSOR,\n {\n provide: NG_VALIDATORS,\n useExisting: TextareaComponent,\n multi: true,\n },\n ],\n templateUrl: './textarea.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class TextareaComponent implements OnInit, AfterViewInit, ControlValueAccessor {\n readonly elementRef: ElementRef = inject(ElementRef);\n readonly symbolRegistry: SymbolRegistry = inject(SymbolRegistry);\n\n @ContentChildren(SymbolComponent) symbols!: QueryList<SymbolComponent>;\n\n @Input() ariaLabel!: string;\n\n @Input() ariaLabelledBy!: string;\n\n @Input() ariaDescribedBy!: string;\n\n @Input() disabled: boolean = false;\n\n @Input() textareaId?: string;\n\n @Input({\n required: true,\n })\n name!: string;\n\n @Input() label?: string;\n\n @Input() description?: string;\n\n @Input() rows: number = 3;\n\n @Input() cols: number = 20;\n\n @Input({ transform: booleanAttribute }) autoresize: boolean = false;\n\n @Input({ transform: booleanAttribute }) required: boolean = false;\n\n @Input()\n placeholder!: string;\n\n @Input() errorMessage?: string;\n\n @Input() successMessage?: string;\n\n @Input() resize: boolean = false;\n\n @Input() symbolPosition: 'left' | 'right' = 'right';\n\n private _controlValueAccessorChangeFn!: (value: string | null) => void;\n\n hostDataTest: WritableSignal<string | undefined> = signal<string | undefined>(undefined);\n\n value!: string | null;\n\n onTouched!: () => void;\n\n constructor() {\n if (this.label && !this.textareaId) {\n throw Error('You have to provide an textarea id id if you want to use a label.');\n }\n this.hostDataTest.set(this.elementRef.nativeElement.getAttribute('data-test'));\n this.elementRef.nativeElement.removeAttribute('data-test');\n this.symbolRegistry.registerSymbols([apAlertCircle, apCheckCircle]);\n }\n\n ngOnInit(): void {\n if (this.label && !this.textareaId) {\n throw Error('You have to provide an textarea id if you want to use a label.');\n }\n this.hostDataTest.set(this.elementRef.nativeElement.getAttribute('data-test'));\n this.elementRef.nativeElement.removeAttribute('data-test');\n }\n\n // Sometimes attributes like the id, or the data-test are dynamic and can change between the constructor and the initialization.\n // In order to have the last attributes value we check if it changes, and if it does, we run a mark for check to update the view.\n ngAfterViewInit(): void {\n const hostDataTest = this.elementRef.nativeElement.getAttribute('data-test');\n if (hostDataTest && this.hostDataTest() !== hostDataTest) {\n this.hostDataTest.set(hostDataTest);\n this.elementRef.nativeElement.removeAttribute('data-test');\n }\n }\n\n validate({ value }: FormControl) {\n const isNotValid = !this.value && this.required;\n return (\n isNotValid && {\n invalid: true,\n }\n );\n }\n\n onValueChange() {\n if (this.onTouched) {\n this.onTouched();\n }\n\n if (!this.disabled) {\n if (this._controlValueAccessorChangeFn) {\n this._controlValueAccessorChangeFn(this.value);\n }\n }\n }\n\n writeValue(value: string): void {\n this.value = value;\n }\n\n registerOnChange(fn: (value: string | null) => void): void {\n this._controlValueAccessorChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<label\n *ngIf=\"label\"\n [for]=\"textareaId\">\n <span>\n {{ label }}\n </span>\n <span\n *ngIf=\"description\"\n class=\"description\">\n {{ description }}\n </span>\n</label>\n\n<textarea\n [class.with-error]=\"errorMessage\"\n [class.with-success]=\"successMessage\"\n [class.with-resize]=\"resize\"\n [placeholder]=\"placeholder\"\n [attr.data-test]=\"hostDataTest() ? hostDataTest() : name\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [id]=\"textareaId\"\n [cols]=\"cols\"\n [rows]=\"rows\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledBy || null\"\n [attr.aria-describedby]=\"ariaDescribedBy || null\"\n [attr.aria-disabled]=\"disabled?.toString()\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange()\"></textarea>\n<div\n *ngIf=\"errorMessage\"\n class=\"form-message error\">\n <ap-symbol\n symbolId=\"alert-circle\"\n size=\"micro\" />\n <span>\n {{ errorMessage }}\n </span>\n</div>\n\n<div\n *ngIf=\"successMessage\"\n class=\"form-message success\">\n <ap-symbol\n symbolId=\"check-circle\"\n size=\"micro\" />\n <span>\n {{ successMessage }}\n </span>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { FrozenGifDirective } from '@agorapulse/ui-components/directives';
|
|
2
|
+
import * as i2 from '@agorapulse/ui-symbol';
|
|
3
|
+
import { apClose, apArrowLeft1, apArrowRight1, SymbolComponent } from '@agorapulse/ui-symbol';
|
|
4
|
+
import { NgIf } from '@angular/common';
|
|
5
|
+
import * as i0 from '@angular/core';
|
|
6
|
+
import { Component, ChangeDetectionStrategy, Inject, ViewChild, HostListener } from '@angular/core';
|
|
7
|
+
import * as i1 from '@angular/material/dialog';
|
|
8
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
9
|
+
|
|
10
|
+
var KEY_CODE;
|
|
11
|
+
(function (KEY_CODE) {
|
|
12
|
+
KEY_CODE[KEY_CODE["RIGHT_ARROW"] = 39] = "RIGHT_ARROW";
|
|
13
|
+
KEY_CODE[KEY_CODE["LEFT_ARROW"] = 37] = "LEFT_ARROW";
|
|
14
|
+
})(KEY_CODE || (KEY_CODE = {}));
|
|
15
|
+
class MediaDisplayOverlayDialogComponent {
|
|
16
|
+
dialogRef;
|
|
17
|
+
data;
|
|
18
|
+
symbolRegistry;
|
|
19
|
+
videoPlayer;
|
|
20
|
+
static config = {
|
|
21
|
+
position: {
|
|
22
|
+
top: '10px',
|
|
23
|
+
right: '10px',
|
|
24
|
+
left: '10px',
|
|
25
|
+
},
|
|
26
|
+
height: '100%',
|
|
27
|
+
width: '100%',
|
|
28
|
+
maxWidth: 'none',
|
|
29
|
+
panelClass: 'full-screen-modal',
|
|
30
|
+
backdropClass: 'dark-backdrop',
|
|
31
|
+
};
|
|
32
|
+
currentUrlIndex = 1;
|
|
33
|
+
mediaInfo = []; // all urls and types
|
|
34
|
+
mediaType = undefined;
|
|
35
|
+
supportGif = true;
|
|
36
|
+
thumbnailCover = undefined;
|
|
37
|
+
isPlayingVideo = false;
|
|
38
|
+
urls = []; // all urls
|
|
39
|
+
url = undefined; // current displayed url
|
|
40
|
+
constructor(dialogRef, data, symbolRegistry) {
|
|
41
|
+
this.dialogRef = dialogRef;
|
|
42
|
+
this.data = data;
|
|
43
|
+
this.symbolRegistry = symbolRegistry;
|
|
44
|
+
this.symbolRegistry.registerSymbols([apClose, apArrowLeft1, apArrowRight1]);
|
|
45
|
+
}
|
|
46
|
+
ngOnInit() {
|
|
47
|
+
// const data = ModalService.getModal('media-display-overlay') || {};
|
|
48
|
+
if (this.data) {
|
|
49
|
+
if (this.data.mediaInfo && this.data.mediaInfo.length > 0) {
|
|
50
|
+
this.mediaInfo = this.data.mediaInfo;
|
|
51
|
+
}
|
|
52
|
+
if (this.data.clickedMedia?.url && this.data.clickedMedia.url.length > 0) {
|
|
53
|
+
const currentMedia = this.data.clickedMedia;
|
|
54
|
+
if (this.mediaInfo.length === 0) {
|
|
55
|
+
this.mediaInfo = [currentMedia];
|
|
56
|
+
}
|
|
57
|
+
this.url = this.data.clickedMedia.url;
|
|
58
|
+
this.mediaType = this.data.clickedMedia.type;
|
|
59
|
+
this.thumbnailCover = this.data.clickedMedia.thumbnail;
|
|
60
|
+
this.isPlayingVideo = false;
|
|
61
|
+
this.currentUrlIndex = this.mediaInfo.findIndex(media => media.url === currentMedia.url) + 1;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
onClose() {
|
|
66
|
+
this.dialogRef.close();
|
|
67
|
+
}
|
|
68
|
+
onNext($event) {
|
|
69
|
+
if (this.currentUrlIndex < this.mediaInfo.length) {
|
|
70
|
+
this.currentUrlIndex += 1;
|
|
71
|
+
this.url = this.mediaInfo[this.currentUrlIndex - 1].url;
|
|
72
|
+
this.mediaType = this.mediaInfo[this.currentUrlIndex - 1].type;
|
|
73
|
+
this.thumbnailCover = this.mediaInfo[this.currentUrlIndex - 1].thumbnail;
|
|
74
|
+
this.isPlayingVideo = false;
|
|
75
|
+
}
|
|
76
|
+
$event.stopPropagation();
|
|
77
|
+
}
|
|
78
|
+
onPrevious($event) {
|
|
79
|
+
if (this.currentUrlIndex > 1) {
|
|
80
|
+
this.currentUrlIndex -= 1;
|
|
81
|
+
this.url = this.mediaInfo[this.currentUrlIndex - 1].url;
|
|
82
|
+
this.mediaType = this.mediaInfo[this.currentUrlIndex - 1].type;
|
|
83
|
+
this.thumbnailCover = this.mediaInfo[this.currentUrlIndex - 1].thumbnail;
|
|
84
|
+
this.isPlayingVideo = false;
|
|
85
|
+
}
|
|
86
|
+
$event.stopPropagation();
|
|
87
|
+
}
|
|
88
|
+
play($event) {
|
|
89
|
+
if (this.videoPlayer) {
|
|
90
|
+
if (this.isPlayingVideo) {
|
|
91
|
+
this.videoPlayer.nativeElement.pause();
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
this.videoPlayer.nativeElement.play();
|
|
95
|
+
}
|
|
96
|
+
this.isPlayingVideo = !this.isPlayingVideo;
|
|
97
|
+
$event.stopPropagation();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
keyEvent(event) {
|
|
101
|
+
if (event.keyCode === KEY_CODE.RIGHT_ARROW) {
|
|
102
|
+
this.onNext(event);
|
|
103
|
+
}
|
|
104
|
+
if (event.keyCode === KEY_CODE.LEFT_ARROW) {
|
|
105
|
+
this.onPrevious(event);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: MediaDisplayOverlayDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.SymbolRegistry }], target: i0.ɵɵFactoryTarget.Component });
|
|
109
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.10", type: MediaDisplayOverlayDialogComponent, isStandalone: true, selector: "ap-media-display-overlay", host: { listeners: { "window:keyup": "keyEvent($event)" } }, viewQueries: [{ propertyName: "videoPlayer", first: true, predicate: ["videoPlayer"], descendants: true }], ngImport: i0, template: "<div\n class=\"full\"\n (click)=\"onClose()\">\n <div class=\"media-display ap-new\">\n <header class=\"ap-modal-header\">\n <ap-symbol\n symbolId=\"close\"\n color=\"white\"\n size=\"micro\"\n (click)=\"onClose()\" />\n </header>\n <slot class=\"ap-modal-content\">\n <div\n *ngIf=\"mediaInfo.length > 1\"\n class=\"next-prev-container left\"\n [class.disabled]=\"currentUrlIndex <= 1\"\n (click)=\"onPrevious($event)\">\n <div class=\"icon-container\">\n <ap-symbol\n symbolId=\"arrow-left-1\"\n size=\"small\"\n [color]=\"currentUrlIndex <= 1 ? 'grey-blue' : 'white'\" />\n </div>\n </div>\n <div class=\"media-container\">\n <img\n *ngIf=\"url && mediaType === 'PHOTO'\"\n apFrozenGif\n [apFrozen]=\"!supportGif\"\n [src]=\"url\"\n (click)=\"$event.stopPropagation()\" />\n <div\n *ngIf=\"url && mediaType === 'VIDEO'\"\n class=\"media-container-video\">\n <video\n #videoPlayer\n controls\n disablepictureinpicture\n muted\n controlsList=\"nofullscreen\"\n [id]=\"'video-' + currentUrlIndex\"\n [poster]=\"thumbnailCover\"\n [src]=\"url\"\n (click)=\"play($event)\"\n (playing)=\"isPlayingVideo = true\"\n (pause)=\"isPlayingVideo = false\"\n (ended)=\"isPlayingVideo = false\"></video>\n <svg\n class=\"play-button\"\n xmlns=\"http://www.w3.org/2000/svg\"\n (click)=\"play($event)\">\n <path\n *ngIf=\"!isPlayingVideo\"\n d=\"M11,10 L18,13.74 18,22.28 11,26 M18,13.74 L26,18 26,18 18,22.28\" />\n </svg>\n </div>\n </div>\n <div\n *ngIf=\"mediaInfo.length > 1\"\n class=\"next-prev-container right\"\n [class.disabled]=\"currentUrlIndex >= mediaInfo.length\"\n (click)=\"onNext($event)\">\n <div class=\"icon-container\">\n <ap-symbol\n symbolId=\"arrow-right-1\"\n size=\"small\"\n [color]=\"currentUrlIndex >= mediaInfo.length ? 'grey-blue' : 'white'\" />\n </div>\n </div>\n </slot>\n <footer\n *ngIf=\"mediaInfo && mediaInfo.length > 1\"\n class=\"ap-modal-footer\">\n <div class=\"index-container\">{{ currentUrlIndex }} / {{ mediaInfo.length }}</div>\n </footer>\n </div>\n</div>\n", styles: ["[color=facebook]{color:#0866ff}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#0866ff}[border=facebook]{border:1px solid #0866ff}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #a566a5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #c7ab82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #f2713c}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #ffd006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94c5aa}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2a9d8f}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78acd8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525a9e}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6a2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729e}:host{width:100%;height:100%}.full{height:100%;width:100%}::ng-deep .full-screen-modal .mat-mdc-dialog-container .mdc-dialog__surface{background:none;padding:var(--ref-spacing-md)}.media-display{background:transparent;display:flex;flex-direction:column;width:100%;height:100%}.media-display .media-container{margin:auto;align-items:center;flex-direction:column;display:flex}.media-display .media-container img,.media-display .media-container video{max-width:80%}.media-display .media-container .media-container-video{display:inherit;justify-content:center;position:relative}.media-display .media-container .media-container-video .play-button{z-index:1000;position:absolute;inset:0;width:var(--ref-font-line-height-xl);height:var(--ref-font-line-height-xl);transform:scale(2);margin:auto;filter:drop-shadow(0 0 1px rgba(0,0,0,.25))}.media-display .media-container .media-container-video .play-button path{fill:#fffc}.media-display .ap-modal-content{display:block;padding-bottom:10px;margin:auto}.media-display .ap-modal-header{background:transparent;border-bottom:none;display:flex;justify-content:flex-end}.media-display .ap-modal-header .ap-modal-close{color:#fff}.media-display .ap-modal-header .ap-modal-close.ap-icon{font-size:45px}.media-display .ap-modal-footer{justify-content:flex-end;background:transparent;border:none;margin-bottom:24px;align-items:center;display:flex;flex-direction:column}.media-display .ap-modal-footer .index-container{color:#fff;font-size:24px;display:inline;background-color:#0000001a;border-radius:20px;padding:16px}.media-display .next-prev-container{display:flex;justify-content:center;align-items:center;width:60px;height:60px;position:absolute;top:45%;cursor:pointer;background-color:#0000001a;border-radius:60px;color:#fff}.media-display .next-prev-container .ap-icon{font-size:45px}.media-display .next-prev-container.right{margin-right:24px;right:0}.media-display .next-prev-container.right .icon-container{margin-left:7px}.media-display .next-prev-container[disabled] .ap-icon{color:#dfe3e9}.media-display .next-prev-container.left{margin-left:24px;left:0}.media-display .next-prev-container.left .icon-container{margin-right:5px}.media-display .next-prev-container.disabled{cursor:not-allowed}\n"], dependencies: [{ kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["color", "symbolId", "size"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: FrozenGifDirective, selector: "img[apFrozenGif]", inputs: ["src", "apFrozen", "apGifEvents"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
110
|
+
}
|
|
111
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: MediaDisplayOverlayDialogComponent, decorators: [{
|
|
112
|
+
type: Component,
|
|
113
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-media-display-overlay', standalone: true, imports: [SymbolComponent, NgIf, FrozenGifDirective], template: "<div\n class=\"full\"\n (click)=\"onClose()\">\n <div class=\"media-display ap-new\">\n <header class=\"ap-modal-header\">\n <ap-symbol\n symbolId=\"close\"\n color=\"white\"\n size=\"micro\"\n (click)=\"onClose()\" />\n </header>\n <slot class=\"ap-modal-content\">\n <div\n *ngIf=\"mediaInfo.length > 1\"\n class=\"next-prev-container left\"\n [class.disabled]=\"currentUrlIndex <= 1\"\n (click)=\"onPrevious($event)\">\n <div class=\"icon-container\">\n <ap-symbol\n symbolId=\"arrow-left-1\"\n size=\"small\"\n [color]=\"currentUrlIndex <= 1 ? 'grey-blue' : 'white'\" />\n </div>\n </div>\n <div class=\"media-container\">\n <img\n *ngIf=\"url && mediaType === 'PHOTO'\"\n apFrozenGif\n [apFrozen]=\"!supportGif\"\n [src]=\"url\"\n (click)=\"$event.stopPropagation()\" />\n <div\n *ngIf=\"url && mediaType === 'VIDEO'\"\n class=\"media-container-video\">\n <video\n #videoPlayer\n controls\n disablepictureinpicture\n muted\n controlsList=\"nofullscreen\"\n [id]=\"'video-' + currentUrlIndex\"\n [poster]=\"thumbnailCover\"\n [src]=\"url\"\n (click)=\"play($event)\"\n (playing)=\"isPlayingVideo = true\"\n (pause)=\"isPlayingVideo = false\"\n (ended)=\"isPlayingVideo = false\"></video>\n <svg\n class=\"play-button\"\n xmlns=\"http://www.w3.org/2000/svg\"\n (click)=\"play($event)\">\n <path\n *ngIf=\"!isPlayingVideo\"\n d=\"M11,10 L18,13.74 18,22.28 11,26 M18,13.74 L26,18 26,18 18,22.28\" />\n </svg>\n </div>\n </div>\n <div\n *ngIf=\"mediaInfo.length > 1\"\n class=\"next-prev-container right\"\n [class.disabled]=\"currentUrlIndex >= mediaInfo.length\"\n (click)=\"onNext($event)\">\n <div class=\"icon-container\">\n <ap-symbol\n symbolId=\"arrow-right-1\"\n size=\"small\"\n [color]=\"currentUrlIndex >= mediaInfo.length ? 'grey-blue' : 'white'\" />\n </div>\n </div>\n </slot>\n <footer\n *ngIf=\"mediaInfo && mediaInfo.length > 1\"\n class=\"ap-modal-footer\">\n <div class=\"index-container\">{{ currentUrlIndex }} / {{ mediaInfo.length }}</div>\n </footer>\n </div>\n</div>\n", styles: ["[color=facebook]{color:#0866ff}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#0866ff}[border=facebook]{border:1px solid #0866ff}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #a566a5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #c7ab82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #f2713c}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #ffd006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94c5aa}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2a9d8f}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78acd8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525a9e}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6a2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729e}:host{width:100%;height:100%}.full{height:100%;width:100%}::ng-deep .full-screen-modal .mat-mdc-dialog-container .mdc-dialog__surface{background:none;padding:var(--ref-spacing-md)}.media-display{background:transparent;display:flex;flex-direction:column;width:100%;height:100%}.media-display .media-container{margin:auto;align-items:center;flex-direction:column;display:flex}.media-display .media-container img,.media-display .media-container video{max-width:80%}.media-display .media-container .media-container-video{display:inherit;justify-content:center;position:relative}.media-display .media-container .media-container-video .play-button{z-index:1000;position:absolute;inset:0;width:var(--ref-font-line-height-xl);height:var(--ref-font-line-height-xl);transform:scale(2);margin:auto;filter:drop-shadow(0 0 1px rgba(0,0,0,.25))}.media-display .media-container .media-container-video .play-button path{fill:#fffc}.media-display .ap-modal-content{display:block;padding-bottom:10px;margin:auto}.media-display .ap-modal-header{background:transparent;border-bottom:none;display:flex;justify-content:flex-end}.media-display .ap-modal-header .ap-modal-close{color:#fff}.media-display .ap-modal-header .ap-modal-close.ap-icon{font-size:45px}.media-display .ap-modal-footer{justify-content:flex-end;background:transparent;border:none;margin-bottom:24px;align-items:center;display:flex;flex-direction:column}.media-display .ap-modal-footer .index-container{color:#fff;font-size:24px;display:inline;background-color:#0000001a;border-radius:20px;padding:16px}.media-display .next-prev-container{display:flex;justify-content:center;align-items:center;width:60px;height:60px;position:absolute;top:45%;cursor:pointer;background-color:#0000001a;border-radius:60px;color:#fff}.media-display .next-prev-container .ap-icon{font-size:45px}.media-display .next-prev-container.right{margin-right:24px;right:0}.media-display .next-prev-container.right .icon-container{margin-left:7px}.media-display .next-prev-container[disabled] .ap-icon{color:#dfe3e9}.media-display .next-prev-container.left{margin-left:24px;left:0}.media-display .next-prev-container.left .icon-container{margin-right:5px}.media-display .next-prev-container.disabled{cursor:not-allowed}\n"] }]
|
|
114
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
115
|
+
type: Inject,
|
|
116
|
+
args: [MAT_DIALOG_DATA]
|
|
117
|
+
}] }, { type: i2.SymbolRegistry }]; }, propDecorators: { videoPlayer: [{
|
|
118
|
+
type: ViewChild,
|
|
119
|
+
args: ['videoPlayer']
|
|
120
|
+
}], keyEvent: [{
|
|
121
|
+
type: HostListener,
|
|
122
|
+
args: ['window:keyup', ['$event']]
|
|
123
|
+
}] } });
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Generated bundle index. Do not edit.
|
|
127
|
+
*/
|
|
128
|
+
|
|
129
|
+
export { KEY_CODE, MediaDisplayOverlayDialogComponent };
|
|
130
|
+
//# sourceMappingURL=agorapulse-ui-components-media-display-overlay.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-media-display-overlay.mjs","sources":["../../../libs/ui-components/media-display-overlay/src/media-display-overlay-dialog.component.ts","../../../libs/ui-components/media-display-overlay/src/media-display-overlay-dialog.component.html","../../../libs/ui-components/media-display-overlay/src/agorapulse-ui-components-media-display-overlay.ts"],"sourcesContent":["import { FrozenGifDirective } from '@agorapulse/ui-components/directives';\nimport { SymbolComponent, apArrowLeft1, apArrowRight1, apClose, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport { NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, HostListener, Inject, OnInit, ViewChild } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\n\nexport interface MediaDisplayData {\n mediaInfo: MediaInfo[];\n clickedMedia?: MediaInfo;\n supportGif: boolean;\n}\n\nexport enum KEY_CODE {\n RIGHT_ARROW = 39,\n LEFT_ARROW = 37,\n}\n\nexport interface MediaInfo {\n url: string;\n type: 'PHOTO' | 'VIDEO';\n thumbnail?: string;\n}\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-media-display-overlay',\n styleUrls: ['./media-display-overlay-dialog.component.scss'],\n templateUrl: './media-display-overlay-dialog.component.html',\n standalone: true,\n imports: [SymbolComponent, NgIf, FrozenGifDirective],\n})\nexport class MediaDisplayOverlayDialogComponent implements OnInit {\n @ViewChild('videoPlayer') videoPlayer: ElementRef<HTMLVideoElement> | undefined;\n\n static config: MatDialogConfig<MediaDisplayData> = {\n position: {\n top: '10px',\n right: '10px',\n left: '10px',\n },\n height: '100%',\n width: '100%',\n maxWidth: 'none',\n panelClass: 'full-screen-modal',\n backdropClass: 'dark-backdrop',\n };\n\n currentUrlIndex = 1;\n mediaInfo: MediaInfo[] = []; // all urls and types\n mediaType: 'PHOTO' | 'VIDEO' | undefined = undefined;\n supportGif = true;\n thumbnailCover: string | undefined = undefined;\n isPlayingVideo = false;\n urls: string[] = []; // all urls\n url: string | undefined = undefined; // current displayed url\n\n constructor(\n public dialogRef: MatDialogRef<MediaDisplayOverlayDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: MediaDisplayData,\n public symbolRegistry: SymbolRegistry\n ) {\n this.symbolRegistry.registerSymbols([apClose, apArrowLeft1, apArrowRight1]);\n }\n\n ngOnInit(): void {\n // const data = ModalService.getModal('media-display-overlay') || {};\n if (this.data) {\n if (this.data.mediaInfo && this.data.mediaInfo.length > 0) {\n this.mediaInfo = this.data.mediaInfo;\n }\n if (this.data.clickedMedia?.url && this.data.clickedMedia.url.length > 0) {\n const currentMedia: MediaInfo = this.data.clickedMedia;\n if (this.mediaInfo.length === 0) {\n this.mediaInfo = [currentMedia];\n }\n this.url = this.data.clickedMedia.url;\n this.mediaType = this.data.clickedMedia.type;\n this.thumbnailCover = this.data.clickedMedia.thumbnail;\n this.isPlayingVideo = false;\n this.currentUrlIndex = this.mediaInfo.findIndex(media => media.url === currentMedia.url) + 1;\n }\n }\n }\n\n onClose() {\n this.dialogRef.close();\n }\n\n onNext($event: UIEvent): void {\n if (this.currentUrlIndex < this.mediaInfo.length) {\n this.currentUrlIndex += 1;\n this.url = this.mediaInfo[this.currentUrlIndex - 1].url;\n this.mediaType = this.mediaInfo[this.currentUrlIndex - 1].type;\n this.thumbnailCover = this.mediaInfo[this.currentUrlIndex - 1].thumbnail;\n this.isPlayingVideo = false;\n }\n $event.stopPropagation();\n }\n\n onPrevious($event: UIEvent): void {\n if (this.currentUrlIndex > 1) {\n this.currentUrlIndex -= 1;\n this.url = this.mediaInfo[this.currentUrlIndex - 1].url;\n this.mediaType = this.mediaInfo[this.currentUrlIndex - 1].type;\n this.thumbnailCover = this.mediaInfo[this.currentUrlIndex - 1].thumbnail;\n this.isPlayingVideo = false;\n }\n $event.stopPropagation();\n }\n\n play($event: UIEvent): void {\n if (this.videoPlayer) {\n if (this.isPlayingVideo) {\n this.videoPlayer.nativeElement.pause();\n } else {\n this.videoPlayer.nativeElement.play();\n }\n this.isPlayingVideo = !this.isPlayingVideo;\n $event.stopPropagation();\n }\n }\n\n @HostListener('window:keyup', ['$event'])\n keyEvent(event: KeyboardEvent) {\n if (event.keyCode === KEY_CODE.RIGHT_ARROW) {\n this.onNext(event);\n }\n\n if (event.keyCode === KEY_CODE.LEFT_ARROW) {\n this.onPrevious(event);\n }\n }\n}\n","<div\n class=\"full\"\n (click)=\"onClose()\">\n <div class=\"media-display ap-new\">\n <header class=\"ap-modal-header\">\n <ap-symbol\n symbolId=\"close\"\n color=\"white\"\n size=\"micro\"\n (click)=\"onClose()\" />\n </header>\n <slot class=\"ap-modal-content\">\n <div\n *ngIf=\"mediaInfo.length > 1\"\n class=\"next-prev-container left\"\n [class.disabled]=\"currentUrlIndex <= 1\"\n (click)=\"onPrevious($event)\">\n <div class=\"icon-container\">\n <ap-symbol\n symbolId=\"arrow-left-1\"\n size=\"small\"\n [color]=\"currentUrlIndex <= 1 ? 'grey-blue' : 'white'\" />\n </div>\n </div>\n <div class=\"media-container\">\n <img\n *ngIf=\"url && mediaType === 'PHOTO'\"\n apFrozenGif\n [apFrozen]=\"!supportGif\"\n [src]=\"url\"\n (click)=\"$event.stopPropagation()\" />\n <div\n *ngIf=\"url && mediaType === 'VIDEO'\"\n class=\"media-container-video\">\n <video\n #videoPlayer\n controls\n disablepictureinpicture\n muted\n controlsList=\"nofullscreen\"\n [id]=\"'video-' + currentUrlIndex\"\n [poster]=\"thumbnailCover\"\n [src]=\"url\"\n (click)=\"play($event)\"\n (playing)=\"isPlayingVideo = true\"\n (pause)=\"isPlayingVideo = false\"\n (ended)=\"isPlayingVideo = false\"></video>\n <svg\n class=\"play-button\"\n xmlns=\"http://www.w3.org/2000/svg\"\n (click)=\"play($event)\">\n <path\n *ngIf=\"!isPlayingVideo\"\n d=\"M11,10 L18,13.74 18,22.28 11,26 M18,13.74 L26,18 26,18 18,22.28\" />\n </svg>\n </div>\n </div>\n <div\n *ngIf=\"mediaInfo.length > 1\"\n class=\"next-prev-container right\"\n [class.disabled]=\"currentUrlIndex >= mediaInfo.length\"\n (click)=\"onNext($event)\">\n <div class=\"icon-container\">\n <ap-symbol\n symbolId=\"arrow-right-1\"\n size=\"small\"\n [color]=\"currentUrlIndex >= mediaInfo.length ? 'grey-blue' : 'white'\" />\n </div>\n </div>\n </slot>\n <footer\n *ngIf=\"mediaInfo && mediaInfo.length > 1\"\n class=\"ap-modal-footer\">\n <div class=\"index-container\">{{ currentUrlIndex }} / {{ mediaInfo.length }}</div>\n </footer>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;IAYY,SAGX;AAHD,CAAA,UAAY,QAAQ,EAAA;AAChB,IAAA,QAAA,CAAA,QAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAgB,CAAA;AAChB,IAAA,QAAA,CAAA,QAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAe,CAAA;AACnB,CAAC,EAHW,QAAQ,KAAR,QAAQ,GAGnB,EAAA,CAAA,CAAA,CAAA;MAgBY,kCAAkC,CAAA;AA0BhC,IAAA,SAAA,CAAA;AACyB,IAAA,IAAA,CAAA;AACzB,IAAA,cAAA,CAAA;AA3Be,IAAA,WAAW,CAA2C;IAEhF,OAAO,MAAM,GAAsC;AAC/C,QAAA,QAAQ,EAAE;AACN,YAAA,GAAG,EAAE,MAAM;AACX,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,IAAI,EAAE,MAAM;AACf,SAAA;AACD,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,UAAU,EAAE,mBAAmB;AAC/B,QAAA,aAAa,EAAE,eAAe;KACjC,CAAC;IAEF,eAAe,GAAG,CAAC,CAAC;AACpB,IAAA,SAAS,GAAgB,EAAE,CAAC;IAC5B,SAAS,GAAkC,SAAS,CAAC;IACrD,UAAU,GAAG,IAAI,CAAC;IAClB,cAAc,GAAuB,SAAS,CAAC;IAC/C,cAAc,GAAG,KAAK,CAAC;AACvB,IAAA,IAAI,GAAa,EAAE,CAAC;AACpB,IAAA,GAAG,GAAuB,SAAS,CAAC;AAEpC,IAAA,WAAA,CACW,SAA2D,EAClC,IAAsB,EAC/C,cAA8B,EAAA;QAF9B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkD;QAClC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAkB;QAC/C,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAErC,QAAA,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;KAC/E;IAED,QAAQ,GAAA;;QAEJ,IAAI,IAAI,CAAC,IAAI,EAAE;AACX,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AACxC,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AACtE,gBAAA,MAAM,YAAY,GAAc,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AACvD,gBAAA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,oBAAA,IAAI,CAAC,SAAS,GAAG,CAAC,YAAY,CAAC,CAAC;AACnC,iBAAA;gBACD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;gBACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBAC7C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;AACvD,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChG,aAAA;AACJ,SAAA;KACJ;IAED,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KAC1B;AAED,IAAA,MAAM,CAAC,MAAe,EAAA;QAClB,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AAC9C,YAAA,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACxD,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/D,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC/B,SAAA;QACD,MAAM,CAAC,eAAe,EAAE,CAAC;KAC5B;AAED,IAAA,UAAU,CAAC,MAAe,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACxD,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/D,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC/B,SAAA;QACD,MAAM,CAAC,eAAe,EAAE,CAAC;KAC5B;AAED,IAAA,IAAI,CAAC,MAAe,EAAA;QAChB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,gBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC1C,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AACzC,aAAA;AACD,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;YAC3C,MAAM,CAAC,eAAe,EAAE,CAAC;AAC5B,SAAA;KACJ;AAGD,IAAA,QAAQ,CAAC,KAAoB,EAAA;AACzB,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,WAAW,EAAE;AACxC,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,SAAA;AAED,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,UAAU,EAAE;AACvC,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC1B,SAAA;KACJ;AApGQ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kCAAkC,8CA2B/B,eAAe,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AA3BlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kCAAkC,6PC/B/C,gqGA6EA,EAAA,MAAA,EAAA,CAAA,wmPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDhDc,eAAe,EAAE,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,6FAAE,kBAAkB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAE1C,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAR9C,SAAS;AACW,YAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACrC,QAAA,EAAA,0BAA0B,EAGxB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,eAAe,EAAE,IAAI,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAAA,gqGAAA,EAAA,MAAA,EAAA,CAAA,wmPAAA,CAAA,EAAA,CAAA;;0BA6B/C,MAAM;2BAAC,eAAe,CAAA;yEA1BD,WAAW,EAAA,CAAA;sBAApC,SAAS;uBAAC,aAAa,CAAA;gBA2FxB,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AE1H5C;;AAEG;;;;"}
|