@agorapulse/ui-components 0.0.3 → 1.0.0-SNAPSHOT-YOUTUBE.2
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/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 +48 -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 +7 -0
- package/dot-stepper/dot-stepper.component.d.ts +20 -0
- package/dot-stepper/index.d.ts +5 -0
- package/dot-stepper/public_api.d.ts +1 -0
- package/esm2022/add-comment/add-comment.component.mjs +72 -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 +127 -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 +228 -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 +111 -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 +177 -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 +270 -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 +8 -0
- package/esm2022/dot-stepper/agorapulse-ui-components-dot-stepper.mjs +5 -0
- package/esm2022/dot-stepper/dot-stepper.component.mjs +46 -0
- package/esm2022/dot-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 +124 -0
- package/esm2022/icon-button/public_api.mjs +2 -0
- package/esm2022/index.mjs +48 -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/input-prefix/input-prefix.component.mjs +11 -0
- package/esm2022/input-group/public_api.mjs +3 -0
- package/esm2022/input-search/agorapulse-ui-components-input-search.mjs +5 -0
- package/esm2022/input-search/input-search.component.mjs +77 -0
- package/esm2022/input-search/public_api.mjs +2 -0
- package/esm2022/labels/agorapulse-ui-components-labels.mjs +5 -0
- package/esm2022/labels/label-list.component.mjs +108 -0
- package/esm2022/labels/label.component.mjs +56 -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 +189 -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 +451 -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 +154 -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 +122 -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 +241 -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 +116 -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 +78 -0
- package/esm2022/password-input/public_api.mjs +2 -0
- package/esm2022/phone-number-input/agorapulse-ui-components-phone-number-input.mjs +5 -0
- package/esm2022/phone-number-input/phone-number-input.component.mjs +181 -0
- package/esm2022/phone-number-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 +383 -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 +2 -0
- package/esm2022/radio/radio.component.mjs +320 -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 +51 -0
- package/esm2022/select/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.mjs +75 -0
- package/esm2022/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.mjs +79 -0
- package/esm2022/select/dropdown-item-single-one-line/dropdown-item-single-one-line.component.mjs +59 -0
- package/esm2022/select/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.mjs +60 -0
- package/esm2022/select/dropdown-search-form/dropdown-search-form.component.mjs +104 -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 +95 -0
- package/esm2022/select/select-label-single/select-label-single.component.mjs +33 -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 +92 -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 +47 -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 +152 -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 +128 -0
- package/esm2022/src/lib/agorapulse-ui-components.module.mjs +200 -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 +21 -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 +24 -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 +35 -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 +208 -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 +401 -0
- package/esm2022/tooltip/tooltip.service.mjs +29 -0
- package/fesm2022/agorapulse-ui-components-add-comment.mjs +79 -0
- package/fesm2022/agorapulse-ui-components-add-comment.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-autocomplete.mjs +134 -0
- package/fesm2022/agorapulse-ui-components-autocomplete.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-avatar.mjs +235 -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 +118 -0
- package/fesm2022/agorapulse-ui-components-button.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-checkbox.mjs +184 -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 +277 -0
- package/fesm2022/agorapulse-ui-components-datepicker.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-directives.mjs +473 -0
- package/fesm2022/agorapulse-ui-components-directives.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-dot-stepper.mjs +53 -0
- package/fesm2022/agorapulse-ui-components-dot-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 +131 -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 +30 -0
- package/fesm2022/agorapulse-ui-components-input-group.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-input-search.mjs +84 -0
- package/fesm2022/agorapulse-ui-components-input-search.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 +196 -0
- package/fesm2022/agorapulse-ui-components-legacy-input.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-legacy-select.mjs +458 -0
- package/fesm2022/agorapulse-ui-components-legacy-select.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs +161 -0
- package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs +129 -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 +266 -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 +171 -0
- package/fesm2022/agorapulse-ui-components-paginator.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-password-input.mjs +85 -0
- package/fesm2022/agorapulse-ui-components-password-input.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-phone-number-input.mjs +188 -0
- package/fesm2022/agorapulse-ui-components-phone-number-input.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-popmenu.mjs +724 -0
- package/fesm2022/agorapulse-ui-components-popmenu.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-radio.mjs +327 -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 +717 -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 +199 -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 +135 -0
- package/fesm2022/agorapulse-ui-components-split-button.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-status-card.mjs +31 -0
- package/fesm2022/agorapulse-ui-components-status-card.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-status.mjs +28 -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 +42 -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 +215 -0
- package/fesm2022/agorapulse-ui-components-toggle.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-tooltip.mjs +434 -0
- package/fesm2022/agorapulse-ui-components-tooltip.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components.mjs +247 -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 +41 -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/input-prefix/input-prefix.component.d.ts +5 -0
- package/input-group/public_api.d.ts +2 -0
- package/input-search/index.d.ts +5 -0
- package/input-search/input-search.component.d.ts +32 -0
- package/input-search/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 +23 -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 +303 -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/phone-number-input/index.d.ts +5 -0
- package/phone-number-input/phone-number-input.component.d.ts +48 -0
- package/phone-number-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 +1 -0
- package/radio/radio.component.d.ts +77 -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 +25 -0
- package/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.d.ts +26 -0
- package/select/dropdown-item-single-one-line/dropdown-item-single-one-line.component.d.ts +20 -0
- package/select/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.d.ts +20 -0
- package/select/dropdown-search-form/dropdown-search-form.component.d.ts +32 -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 +27 -0
- package/select/select-label-single/select-label-single.component.d.ts +12 -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 +24 -0
- package/snackbars-thread/index.d.ts +5 -0
- package/{src/lib/snackbars-thread → snackbars-thread}/model/snackbars-thread.model.d.ts +10 -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 +59 -0
- package/tooltip/tooltip.service.d.ts +11 -0
- package/agorapulse-ui-components-0.0.3.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/{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,473 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Directive, HostListener, inject, ElementRef, ChangeDetectorRef, Input, EventEmitter, Output, forwardRef, Attribute } from '@angular/core';
|
|
3
|
+
import { NG_VALIDATORS } from '@angular/forms';
|
|
4
|
+
import DOMPurify from 'dompurify';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* expand textarea to fit content. Doesn't shrink.
|
|
8
|
+
*/
|
|
9
|
+
class AutosizeTextareaDirective {
|
|
10
|
+
element;
|
|
11
|
+
static maxHeight = 200;
|
|
12
|
+
constructor(element) {
|
|
13
|
+
this.element = element;
|
|
14
|
+
}
|
|
15
|
+
onInput() {
|
|
16
|
+
this.resize();
|
|
17
|
+
}
|
|
18
|
+
ngAfterContentChecked() {
|
|
19
|
+
this.resize();
|
|
20
|
+
}
|
|
21
|
+
resize() {
|
|
22
|
+
const style = this.element.nativeElement.style;
|
|
23
|
+
const scrollHeight = this.element.nativeElement.scrollHeight;
|
|
24
|
+
const actualHeight = this.element.nativeElement.offsetHeight;
|
|
25
|
+
if (AutosizeTextareaDirective.maxHeight < scrollHeight) {
|
|
26
|
+
// we arrived at the max
|
|
27
|
+
style.overflow = 'auto';
|
|
28
|
+
style.height = `${AutosizeTextareaDirective.maxHeight}px`;
|
|
29
|
+
}
|
|
30
|
+
else if (actualHeight < scrollHeight) {
|
|
31
|
+
style.overflow = 'hidden';
|
|
32
|
+
style.height = `${scrollHeight}px`;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: AutosizeTextareaDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
36
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: AutosizeTextareaDirective, isStandalone: true, selector: "textarea[apAutosize]", host: { listeners: { "input": "onInput()" } }, ngImport: i0 });
|
|
37
|
+
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: AutosizeTextareaDirective, decorators: [{
|
|
39
|
+
type: Directive,
|
|
40
|
+
args: [{
|
|
41
|
+
selector: 'textarea[apAutosize]',
|
|
42
|
+
standalone: true,
|
|
43
|
+
}]
|
|
44
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { onInput: [{
|
|
45
|
+
type: HostListener,
|
|
46
|
+
args: ['input']
|
|
47
|
+
}] } });
|
|
48
|
+
|
|
49
|
+
class BaseButtonDirective {
|
|
50
|
+
hostId = undefined;
|
|
51
|
+
hostDataTest = undefined;
|
|
52
|
+
hostType = 'button';
|
|
53
|
+
elementRef = inject(ElementRef);
|
|
54
|
+
changeDetectorRef = inject(ChangeDetectorRef);
|
|
55
|
+
ngOnInit() {
|
|
56
|
+
this.hostDataTest = this.elementRef.nativeElement.getAttribute('data-test');
|
|
57
|
+
this.hostId = this.elementRef.nativeElement.getAttribute('id');
|
|
58
|
+
this.elementRef.nativeElement.removeAttribute('data-test');
|
|
59
|
+
this.elementRef.nativeElement.removeAttribute('id');
|
|
60
|
+
}
|
|
61
|
+
// Sometimes attributes like the id, or the data-test are dynamic and can change between the constructor and the initialization.
|
|
62
|
+
// 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.
|
|
63
|
+
ngAfterViewInit() {
|
|
64
|
+
const hostDataTest = this.elementRef.nativeElement.getAttribute('data-test');
|
|
65
|
+
const hostId = this.elementRef.nativeElement.getAttribute('id');
|
|
66
|
+
const hostType = this.elementRef.nativeElement.getAttribute('type');
|
|
67
|
+
if (hostDataTest && this.hostDataTest !== hostDataTest) {
|
|
68
|
+
this.hostDataTest = hostDataTest;
|
|
69
|
+
this.elementRef.nativeElement.removeAttribute('data-test');
|
|
70
|
+
this.changeDetectorRef.markForCheck();
|
|
71
|
+
}
|
|
72
|
+
if (hostId && this.hostId !== hostId) {
|
|
73
|
+
this.hostId = hostId;
|
|
74
|
+
this.elementRef.nativeElement.removeAttribute('id');
|
|
75
|
+
this.changeDetectorRef.markForCheck();
|
|
76
|
+
}
|
|
77
|
+
if (hostType && this.hostType !== hostType) {
|
|
78
|
+
this.hostType = hostType;
|
|
79
|
+
this.elementRef.nativeElement.removeAttribute('type');
|
|
80
|
+
this.changeDetectorRef.markForCheck();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: BaseButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
84
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: BaseButtonDirective, isStandalone: true, selector: "[apBaseButton]", ngImport: i0 });
|
|
85
|
+
}
|
|
86
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: BaseButtonDirective, decorators: [{
|
|
87
|
+
type: Directive,
|
|
88
|
+
args: [{
|
|
89
|
+
selector: '[apBaseButton]',
|
|
90
|
+
standalone: true,
|
|
91
|
+
}]
|
|
92
|
+
}] });
|
|
93
|
+
|
|
94
|
+
class DefaultImageDirective {
|
|
95
|
+
src = '';
|
|
96
|
+
default = '';
|
|
97
|
+
updateUrl() {
|
|
98
|
+
if (this.default) {
|
|
99
|
+
this.src = this.default;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
this.src = 'assets/lib-ui-components/img/default-avatar.png';
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DefaultImageDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
106
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: DefaultImageDirective, isStandalone: true, selector: "img[default]", inputs: { src: "src", default: "default" }, host: { listeners: { "error": "updateUrl()" }, properties: { "src": "src" } }, ngImport: i0 });
|
|
107
|
+
}
|
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DefaultImageDirective, decorators: [{
|
|
109
|
+
type: Directive,
|
|
110
|
+
args: [{
|
|
111
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
112
|
+
selector: 'img[default]',
|
|
113
|
+
standalone: true,
|
|
114
|
+
// eslint-disable-next-line @angular-eslint/no-host-metadata-property
|
|
115
|
+
host: {
|
|
116
|
+
'(error)': 'updateUrl()',
|
|
117
|
+
'[src]': 'src',
|
|
118
|
+
},
|
|
119
|
+
}]
|
|
120
|
+
}], propDecorators: { src: [{
|
|
121
|
+
type: Input,
|
|
122
|
+
args: [{
|
|
123
|
+
required: true,
|
|
124
|
+
}]
|
|
125
|
+
}], default: [{
|
|
126
|
+
type: Input
|
|
127
|
+
}] } });
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Removes excess text from element until it fits in elements
|
|
131
|
+
* and appends a ellipsis symbol to end of text. This requires that
|
|
132
|
+
* the elements height be fixed
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```html
|
|
136
|
+
* <p apEllipsis>Ullamco esse laborum</p>
|
|
137
|
+
* ```
|
|
138
|
+
*
|
|
139
|
+
*/
|
|
140
|
+
class EllipsisDirective {
|
|
141
|
+
el;
|
|
142
|
+
apEllipsisSeparator = '';
|
|
143
|
+
apEllipsisClip = false;
|
|
144
|
+
apEllipsisIndex = -2;
|
|
145
|
+
apEllipsisChar = '...';
|
|
146
|
+
apEllipsisClickable = false;
|
|
147
|
+
apEllipsisRemovedElementsCount = new EventEmitter();
|
|
148
|
+
apEllipsisRemovedText = new EventEmitter();
|
|
149
|
+
get hasOverflow() {
|
|
150
|
+
const el = this.el.nativeElement;
|
|
151
|
+
return el.scrollHeight > el.offsetHeight || el.scrollWidth > el.offsetWidth;
|
|
152
|
+
}
|
|
153
|
+
constructor(el) {
|
|
154
|
+
this.el = el;
|
|
155
|
+
}
|
|
156
|
+
ngAfterContentChecked() {
|
|
157
|
+
this.clipText();
|
|
158
|
+
}
|
|
159
|
+
clipText() {
|
|
160
|
+
const el = this.el.nativeElement;
|
|
161
|
+
let text = el.innerText;
|
|
162
|
+
let removedText = '';
|
|
163
|
+
if (this.apEllipsisIndex > -1) {
|
|
164
|
+
removedText = text.substring(this.apEllipsisIndex, text.length - 1) + removedText;
|
|
165
|
+
text = text.substring(0, this.apEllipsisIndex);
|
|
166
|
+
el.innerText = `${text}${this.apEllipsisChar}`;
|
|
167
|
+
if (this.apEllipsisClickable) {
|
|
168
|
+
el.addEventListener('click', () => {
|
|
169
|
+
el.innerText = `${text}${removedText}`;
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
while (this.hasOverflow && text.length > 0) {
|
|
175
|
+
removedText = text[text.length - 1] + removedText;
|
|
176
|
+
text = text.substring(0, text.length - 1);
|
|
177
|
+
el.innerText = `${text}${this.apEllipsisChar}`;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
if (this.apEllipsisSeparator) {
|
|
181
|
+
const removedElementsCount = removedText
|
|
182
|
+
.split(this.apEllipsisSeparator)
|
|
183
|
+
.filter(element => !!element && element.length > 0).length;
|
|
184
|
+
if (removedElementsCount > 0) {
|
|
185
|
+
this.apEllipsisRemovedElementsCount.emit(removedElementsCount);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
if (removedText && removedText.length > 0) {
|
|
189
|
+
this.apEllipsisRemovedText.emit(removedText);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: EllipsisDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
193
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: EllipsisDirective, isStandalone: true, selector: "[apEllipsis]", inputs: { apEllipsisSeparator: "apEllipsisSeparator", apEllipsisClip: "apEllipsisClip", apEllipsisIndex: "apEllipsisIndex", apEllipsisChar: "apEllipsisChar", apEllipsisClickable: "apEllipsisClickable" }, outputs: { apEllipsisRemovedElementsCount: "apEllipsisRemovedElementsCount", apEllipsisRemovedText: "apEllipsisRemovedText" }, ngImport: i0 });
|
|
194
|
+
}
|
|
195
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: EllipsisDirective, decorators: [{
|
|
196
|
+
type: Directive,
|
|
197
|
+
args: [{
|
|
198
|
+
selector: '[apEllipsis]',
|
|
199
|
+
standalone: true,
|
|
200
|
+
}]
|
|
201
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { apEllipsisSeparator: [{
|
|
202
|
+
type: Input
|
|
203
|
+
}], apEllipsisClip: [{
|
|
204
|
+
type: Input
|
|
205
|
+
}], apEllipsisIndex: [{
|
|
206
|
+
type: Input
|
|
207
|
+
}], apEllipsisChar: [{
|
|
208
|
+
type: Input
|
|
209
|
+
}], apEllipsisClickable: [{
|
|
210
|
+
type: Input
|
|
211
|
+
}], apEllipsisRemovedElementsCount: [{
|
|
212
|
+
type: Output
|
|
213
|
+
}], apEllipsisRemovedText: [{
|
|
214
|
+
type: Output
|
|
215
|
+
}] } });
|
|
216
|
+
|
|
217
|
+
// Based on https://scotch.io/tutorials/how-to-implement-a-custom-validator-directive-confirm-password-in-angular-2
|
|
218
|
+
class EqualValidatorDirective {
|
|
219
|
+
validateEqual;
|
|
220
|
+
validateEqualReference;
|
|
221
|
+
constructor(validateEqual, validateEqualReference) {
|
|
222
|
+
this.validateEqual = validateEqual;
|
|
223
|
+
this.validateEqualReference = validateEqualReference;
|
|
224
|
+
}
|
|
225
|
+
validate(self) {
|
|
226
|
+
const other = self.root.get(this.validateEqual);
|
|
227
|
+
if (other) {
|
|
228
|
+
if (this.isReference()) {
|
|
229
|
+
if (self.value === other.value) {
|
|
230
|
+
if (other.errors) {
|
|
231
|
+
delete other.errors['validateEqual'];
|
|
232
|
+
if (!Object.keys(other.errors).length) {
|
|
233
|
+
other.setErrors(null);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
other.setErrors(null);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
other.setErrors({ validateEqual: false });
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
else if (self.value !== other.value) {
|
|
245
|
+
return { validateEqual: false };
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
return null;
|
|
249
|
+
}
|
|
250
|
+
isReference() {
|
|
251
|
+
if (!this.validateEqualReference) {
|
|
252
|
+
return false;
|
|
253
|
+
}
|
|
254
|
+
return this.validateEqualReference === 'true';
|
|
255
|
+
}
|
|
256
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: EqualValidatorDirective, deps: [{ token: 'validateEqual', attribute: true }, { token: 'validateEqualReference', attribute: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
257
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: EqualValidatorDirective, isStandalone: true, selector: "[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]", providers: [
|
|
258
|
+
{
|
|
259
|
+
provide: NG_VALIDATORS,
|
|
260
|
+
useExisting: forwardRef(() => EqualValidatorDirective),
|
|
261
|
+
multi: true,
|
|
262
|
+
},
|
|
263
|
+
], ngImport: i0 });
|
|
264
|
+
}
|
|
265
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: EqualValidatorDirective, decorators: [{
|
|
266
|
+
type: Directive,
|
|
267
|
+
args: [{
|
|
268
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
269
|
+
selector: '[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]',
|
|
270
|
+
providers: [
|
|
271
|
+
{
|
|
272
|
+
provide: NG_VALIDATORS,
|
|
273
|
+
useExisting: forwardRef(() => EqualValidatorDirective),
|
|
274
|
+
multi: true,
|
|
275
|
+
},
|
|
276
|
+
],
|
|
277
|
+
standalone: true,
|
|
278
|
+
}]
|
|
279
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
280
|
+
type: Attribute,
|
|
281
|
+
args: ['validateEqual']
|
|
282
|
+
}] }, { type: undefined, decorators: [{
|
|
283
|
+
type: Attribute,
|
|
284
|
+
args: ['validateEqualReference']
|
|
285
|
+
}] }] });
|
|
286
|
+
|
|
287
|
+
class GifService {
|
|
288
|
+
static isGif(src) {
|
|
289
|
+
return src && src.split('?')[0].endsWith('.gif');
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* If the image is a GIF then replace the img element by a canvas containing a frozen gif.
|
|
294
|
+
* Note 1: if the image is displayed under a condition, the condition must be applied on the parent of the image, so the
|
|
295
|
+
* new canvas element will have the same condition.
|
|
296
|
+
* Note 2: the image must not have the properties "display" and "visibility" in its style. Since they are used to frozen
|
|
297
|
+
* the GIF. You need to apply this properties on the parent element.
|
|
298
|
+
* Note 3: If the GIF is frozen, all the event are propagated to the image. However, all events are dispatched
|
|
299
|
+
* with an Event instance. Ex: click event is not dispatched with a MouseEvent instance.
|
|
300
|
+
*/
|
|
301
|
+
class FrozenGifDirective {
|
|
302
|
+
elementRef;
|
|
303
|
+
src = '';
|
|
304
|
+
apFrozen = true;
|
|
305
|
+
// Add all the events that need to be propagated.
|
|
306
|
+
apGifEvents = ['click'];
|
|
307
|
+
element;
|
|
308
|
+
canvas = null;
|
|
309
|
+
constructor(elementRef) {
|
|
310
|
+
this.elementRef = elementRef;
|
|
311
|
+
const element = this.elementRef.nativeElement;
|
|
312
|
+
if (!(element instanceof HTMLImageElement)) {
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
this.element = element;
|
|
316
|
+
}
|
|
317
|
+
ngOnChanges(changes) {
|
|
318
|
+
let freeze = false;
|
|
319
|
+
if (changes.src) {
|
|
320
|
+
freeze = true;
|
|
321
|
+
}
|
|
322
|
+
if (changes.frozen) {
|
|
323
|
+
if (changes.frozen.currentValue) {
|
|
324
|
+
freeze = true;
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
this.unfreeze();
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
if (freeze) {
|
|
331
|
+
this.freeze();
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
freeze() {
|
|
335
|
+
if (!GifService.isGif(this.src) || !this.apFrozen) {
|
|
336
|
+
this.unfreeze();
|
|
337
|
+
return;
|
|
338
|
+
}
|
|
339
|
+
// hack to avoid displaying the GIF before replacing it by the canvas
|
|
340
|
+
this.element.style.visibility = 'hidden';
|
|
341
|
+
this.element.addEventListener('load', () => this.addCanvas());
|
|
342
|
+
}
|
|
343
|
+
addCanvas() {
|
|
344
|
+
if (this.canvas) {
|
|
345
|
+
this.canvas.remove();
|
|
346
|
+
}
|
|
347
|
+
this.canvas = document.createElement('canvas');
|
|
348
|
+
this.canvas.width = this.element.width;
|
|
349
|
+
this.canvas.height = this.element.height;
|
|
350
|
+
this.canvas.getContext('2d')?.drawImage(this.element, 0, 0, this.canvas.width, this.canvas.height);
|
|
351
|
+
for (let i = 0; i < this.element.attributes.length; i++) {
|
|
352
|
+
const attr = this.element.attributes[i];
|
|
353
|
+
if (attr.name === 'id') {
|
|
354
|
+
// avoid two elements with the same id
|
|
355
|
+
this.canvas.setAttribute('id', attr.value + '_frozenGif');
|
|
356
|
+
}
|
|
357
|
+
else if ((attr.name === 'style' && attr.value.includes('visibility: hidden;')) || attr.value.includes('display: none;')) {
|
|
358
|
+
// remove the added 'visibility: hidden' and 'display: none'
|
|
359
|
+
const styleValue = attr.value;
|
|
360
|
+
this.canvas.setAttribute('style', styleValue.replace('visibility: hidden;', '').replace('display: none;', ''));
|
|
361
|
+
}
|
|
362
|
+
else if (attr.name !== '"') {
|
|
363
|
+
// test for invalid attributes
|
|
364
|
+
this.canvas.setAttribute(attr.name, attr.value);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
this.addEvents();
|
|
368
|
+
this.element.parentNode?.insertBefore(this.canvas, this.element);
|
|
369
|
+
this.element.style.display = 'none';
|
|
370
|
+
}
|
|
371
|
+
addEvents() {
|
|
372
|
+
this.apGifEvents.forEach((eventName) => {
|
|
373
|
+
this.canvas?.addEventListener(eventName, (ev) => this.element.dispatchEvent(
|
|
374
|
+
// wm: find a way to dispatch the right event type
|
|
375
|
+
new Event(ev.type, ev)));
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
unfreeze() {
|
|
379
|
+
if (this.canvas) {
|
|
380
|
+
this.canvas.remove();
|
|
381
|
+
this.canvas = null;
|
|
382
|
+
}
|
|
383
|
+
this.element.style.visibility = 'inherit';
|
|
384
|
+
this.element.style.display = 'inherit';
|
|
385
|
+
}
|
|
386
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FrozenGifDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
387
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: FrozenGifDirective, isStandalone: true, selector: "img[apFrozenGif]", inputs: { src: "src", apFrozen: "apFrozen", apGifEvents: "apGifEvents" }, host: { properties: { "src": "src" } }, usesOnChanges: true, ngImport: i0 });
|
|
388
|
+
}
|
|
389
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FrozenGifDirective, decorators: [{
|
|
390
|
+
type: Directive,
|
|
391
|
+
args: [{
|
|
392
|
+
selector: 'img[apFrozenGif]',
|
|
393
|
+
// eslint-disable-next-line @angular-eslint/no-host-metadata-property
|
|
394
|
+
host: {
|
|
395
|
+
'[src]': 'src',
|
|
396
|
+
},
|
|
397
|
+
standalone: true,
|
|
398
|
+
}]
|
|
399
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { src: [{
|
|
400
|
+
type: Input,
|
|
401
|
+
args: [{
|
|
402
|
+
required: true,
|
|
403
|
+
}]
|
|
404
|
+
}], apFrozen: [{
|
|
405
|
+
type: Input
|
|
406
|
+
}], apGifEvents: [{
|
|
407
|
+
type: Input
|
|
408
|
+
}] } });
|
|
409
|
+
|
|
410
|
+
const DATA_MST = 'data-mst';
|
|
411
|
+
/**
|
|
412
|
+
* This directive aims to parse simple string to extract some specific tags and to turn them into SPAN with styling classes attributes and optional event listening.
|
|
413
|
+
* The specific tags must this schema: <ng-container data-mst="STYLING-CLASSES">TEXT</ng-container>.
|
|
414
|
+
* Example: 'Lorem <ng-container data-mst="my-style">ipsum</ng-container> dolor sit amet'.
|
|
415
|
+
*/
|
|
416
|
+
class MultiStyleTextDirective {
|
|
417
|
+
elRef;
|
|
418
|
+
renderer;
|
|
419
|
+
set multiStyleText(fullText) {
|
|
420
|
+
// First remove previously added children (on update).
|
|
421
|
+
this.renderer.setProperty(this.elRef.nativeElement, 'innerHTML', '');
|
|
422
|
+
if (!fullText || fullText.length <= 0) {
|
|
423
|
+
return;
|
|
424
|
+
}
|
|
425
|
+
this.renderer.setProperty(this.elRef.nativeElement, 'innerHTML', DOMPurify.sanitize(fullText.replace(/ng-container/g, 'span')));
|
|
426
|
+
Array.from(this.elRef.nativeElement.children).forEach((childNode) => {
|
|
427
|
+
if (childNode.nodeType == 1 && childNode.tagName.toLowerCase() === 'span') {
|
|
428
|
+
// Node.ELEMENT_NODE
|
|
429
|
+
const span = this.renderer.createElement('span');
|
|
430
|
+
span.innerHTML = childNode.innerHTML;
|
|
431
|
+
this.elRef.nativeElement.replaceChild(span, childNode);
|
|
432
|
+
const mstValue = childNode.getAttribute(DATA_MST);
|
|
433
|
+
if (mstValue) {
|
|
434
|
+
const mstContents = mstValue.split(';');
|
|
435
|
+
// Bind click events
|
|
436
|
+
if (mstContents[1]) {
|
|
437
|
+
this.renderer.listen(span, 'click', () => this.partEvent.emit(mstContents[1]));
|
|
438
|
+
}
|
|
439
|
+
// Add classes
|
|
440
|
+
if (mstContents[0] && mstContents[0].length > 0) {
|
|
441
|
+
this.renderer.setAttribute(span, 'class', mstContents[0].replace(',', ' '));
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
partEvent = new EventEmitter();
|
|
448
|
+
constructor(elRef, renderer) {
|
|
449
|
+
this.elRef = elRef;
|
|
450
|
+
this.renderer = renderer;
|
|
451
|
+
}
|
|
452
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: MultiStyleTextDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
453
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: MultiStyleTextDirective, isStandalone: true, selector: "[multiStyleText]", inputs: { multiStyleText: "multiStyleText" }, outputs: { partEvent: "partEvent" }, ngImport: i0 });
|
|
454
|
+
}
|
|
455
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: MultiStyleTextDirective, decorators: [{
|
|
456
|
+
type: Directive,
|
|
457
|
+
args: [{
|
|
458
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
459
|
+
selector: '[multiStyleText]',
|
|
460
|
+
standalone: true,
|
|
461
|
+
}]
|
|
462
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { multiStyleText: [{
|
|
463
|
+
type: Input
|
|
464
|
+
}], partEvent: [{
|
|
465
|
+
type: Output
|
|
466
|
+
}] } });
|
|
467
|
+
|
|
468
|
+
/**
|
|
469
|
+
* Generated bundle index. Do not edit.
|
|
470
|
+
*/
|
|
471
|
+
|
|
472
|
+
export { AutosizeTextareaDirective, BaseButtonDirective, DefaultImageDirective, EllipsisDirective, EqualValidatorDirective, FrozenGifDirective, GifService, MultiStyleTextDirective };
|
|
473
|
+
//# sourceMappingURL=agorapulse-ui-components-directives.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-directives.mjs","sources":["../../../libs/ui-components/directives/src/autosize-textarea.directive.ts","../../../libs/ui-components/directives/src/base-button.directive.ts","../../../libs/ui-components/directives/src/default-image.directive.ts","../../../libs/ui-components/directives/src/ellipsis.directive.ts","../../../libs/ui-components/directives/src/equal-validator.directive.ts","../../../libs/ui-components/directives/src/frozen-gif.directive.ts","../../../libs/ui-components/directives/src/multi-style-text.directive.ts","../../../libs/ui-components/directives/src/agorapulse-ui-components-directives.ts"],"sourcesContent":["import { AfterContentChecked, Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: 'textarea[apAutosize]',\n standalone: true,\n})\n/**\n * expand textarea to fit content. Doesn't shrink.\n */\nexport class AutosizeTextareaDirective implements AfterContentChecked {\n static maxHeight: number = 200;\n\n constructor(public element: ElementRef) {}\n\n @HostListener('input')\n public onInput() {\n this.resize();\n }\n\n public ngAfterContentChecked() {\n this.resize();\n }\n\n public resize() {\n const style = this.element.nativeElement.style;\n const scrollHeight = this.element.nativeElement.scrollHeight;\n const actualHeight = this.element.nativeElement.offsetHeight;\n if (AutosizeTextareaDirective.maxHeight < scrollHeight) {\n // we arrived at the max\n style.overflow = 'auto';\n style.height = `${AutosizeTextareaDirective.maxHeight}px`;\n } else if (actualHeight < scrollHeight) {\n style.overflow = 'hidden';\n style.height = `${scrollHeight}px`;\n }\n }\n}\n","import { AfterViewInit, ChangeDetectorRef, Directive, ElementRef, inject, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[apBaseButton]',\n standalone: true,\n})\nexport class BaseButtonDirective implements AfterViewInit, OnInit {\n hostId: string | undefined = undefined;\n hostDataTest: string | undefined = undefined;\n hostType: string = 'button';\n\n private elementRef: ElementRef = inject(ElementRef);\n private changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n\n ngOnInit() {\n this.hostDataTest = this.elementRef.nativeElement.getAttribute('data-test');\n this.hostId = this.elementRef.nativeElement.getAttribute('id');\n this.elementRef.nativeElement.removeAttribute('data-test');\n this.elementRef.nativeElement.removeAttribute('id');\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 const hostId = this.elementRef.nativeElement.getAttribute('id');\n const hostType = this.elementRef.nativeElement.getAttribute('type');\n if (hostDataTest && this.hostDataTest !== hostDataTest) {\n this.hostDataTest = hostDataTest;\n this.elementRef.nativeElement.removeAttribute('data-test');\n this.changeDetectorRef.markForCheck();\n }\n if (hostId && this.hostId !== hostId) {\n this.hostId = hostId;\n this.elementRef.nativeElement.removeAttribute('id');\n this.changeDetectorRef.markForCheck();\n }\n if (hostType && this.hostType !== hostType) {\n this.hostType = hostType;\n this.elementRef.nativeElement.removeAttribute('type');\n this.changeDetectorRef.markForCheck();\n }\n }\n}\n","import { Directive, Input } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'img[default]',\n standalone: true,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '(error)': 'updateUrl()',\n '[src]': 'src',\n },\n})\nexport class DefaultImageDirective {\n @Input({\n required: true,\n })\n src = '';\n @Input() default = '';\n\n updateUrl() {\n if (this.default) {\n this.src = this.default;\n } else {\n this.src = 'assets/lib-ui-components/img/default-avatar.png';\n }\n }\n}\n","import { AfterContentChecked, Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core';\n\n/**\n * Removes excess text from element until it fits in elements\n * and appends a ellipsis symbol to end of text. This requires that\n * the elements height be fixed\n *\n * @example\n * ```html\n * <p apEllipsis>Ullamco esse laborum</p>\n * ```\n *\n */\n@Directive({\n selector: '[apEllipsis]',\n standalone: true,\n})\nexport class EllipsisDirective implements AfterContentChecked {\n @Input() apEllipsisSeparator = '';\n @Input() apEllipsisClip = false;\n @Input() apEllipsisIndex = -2;\n @Input() apEllipsisChar = '...';\n @Input() apEllipsisClickable = false;\n\n @Output() apEllipsisRemovedElementsCount = new EventEmitter<number>();\n @Output() apEllipsisRemovedText = new EventEmitter<string>();\n\n private get hasOverflow(): boolean {\n const el: HTMLElement = this.el.nativeElement;\n return el.scrollHeight > el.offsetHeight || el.scrollWidth > el.offsetWidth;\n }\n\n constructor(private el: ElementRef) {}\n\n ngAfterContentChecked() {\n this.clipText();\n }\n\n private clipText(): void {\n const el: HTMLElement = this.el.nativeElement;\n let text = el.innerText;\n let removedText = '';\n if (this.apEllipsisIndex > -1) {\n removedText = text.substring(this.apEllipsisIndex, text.length - 1) + removedText;\n text = text.substring(0, this.apEllipsisIndex);\n el.innerText = `${text}${this.apEllipsisChar}`;\n\n if (this.apEllipsisClickable) {\n el.addEventListener('click', () => {\n el.innerText = `${text}${removedText}`;\n });\n }\n } else {\n while (this.hasOverflow && text.length > 0) {\n removedText = text[text.length - 1] + removedText;\n text = text.substring(0, text.length - 1);\n el.innerText = `${text}${this.apEllipsisChar}`;\n }\n }\n\n if (this.apEllipsisSeparator) {\n const removedElementsCount = removedText\n .split(this.apEllipsisSeparator)\n .filter(element => !!element && element.length > 0).length;\n if (removedElementsCount > 0) {\n this.apEllipsisRemovedElementsCount.emit(removedElementsCount);\n }\n }\n if (removedText && removedText.length > 0) {\n this.apEllipsisRemovedText.emit(removedText);\n }\n }\n}\n","// Based on https://scotch.io/tutorials/how-to-implement-a-custom-validator-directive-confirm-password-in-angular-2\nimport { Attribute, Directive, forwardRef } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, Validator } from '@angular/forms';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => EqualValidatorDirective),\n multi: true,\n },\n ],\n standalone: true,\n})\nexport class EqualValidatorDirective implements Validator {\n constructor(\n @Attribute('validateEqual') public validateEqual: string,\n @Attribute('validateEqualReference') public validateEqualReference: string\n ) {}\n\n validate(self: AbstractControl): { [key: string]: any } | null {\n const other = self.root.get(this.validateEqual);\n if (other) {\n if (this.isReference()) {\n if (self.value === other.value) {\n if (other.errors) {\n delete other.errors['validateEqual'];\n if (!Object.keys(other.errors).length) {\n other.setErrors(null);\n }\n } else {\n other.setErrors(null);\n }\n } else {\n other.setErrors({ validateEqual: false });\n }\n } else if (self.value !== other.value) {\n return { validateEqual: false };\n }\n }\n return null;\n }\n\n private isReference(): boolean {\n if (!this.validateEqualReference) {\n return false;\n }\n return this.validateEqualReference === 'true';\n }\n}\n","import { Directive, ElementRef, Input, OnChanges } from '@angular/core';\n\nexport class GifService {\n static isGif(src: string) {\n return src && src.split('?')[0].endsWith('.gif');\n }\n}\n\n/**\n * If the image is a GIF then replace the img element by a canvas containing a frozen gif.\n * Note 1: if the image is displayed under a condition, the condition must be applied on the parent of the image, so the\n * new canvas element will have the same condition.\n * Note 2: the image must not have the properties \"display\" and \"visibility\" in its style. Since they are used to frozen\n * the GIF. You need to apply this properties on the parent element.\n * Note 3: If the GIF is frozen, all the event are propagated to the image. However, all events are dispatched\n * with an Event instance. Ex: click event is not dispatched with a MouseEvent instance.\n */\n\n@Directive({\n selector: 'img[apFrozenGif]',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[src]': 'src',\n },\n standalone: true,\n})\nexport class FrozenGifDirective implements OnChanges {\n @Input({\n required: true,\n })\n src = '';\n @Input() apFrozen = true;\n // Add all the events that need to be propagated.\n @Input() apGifEvents: string[] = ['click'];\n\n private readonly element!: HTMLImageElement;\n private canvas: HTMLCanvasElement | null = null;\n\n constructor(private elementRef: ElementRef) {\n const element = this.elementRef.nativeElement;\n if (!(element instanceof HTMLImageElement)) {\n return;\n }\n\n this.element = element;\n }\n\n ngOnChanges(changes: any): void {\n let freeze = false;\n if (changes.src) {\n freeze = true;\n }\n if (changes.frozen) {\n if (changes.frozen.currentValue) {\n freeze = true;\n } else {\n this.unfreeze();\n }\n }\n\n if (freeze) {\n this.freeze();\n }\n }\n\n private freeze() {\n if (!GifService.isGif(this.src) || !this.apFrozen) {\n this.unfreeze();\n return;\n }\n\n // hack to avoid displaying the GIF before replacing it by the canvas\n this.element.style.visibility = 'hidden';\n this.element.addEventListener('load', () => this.addCanvas());\n }\n\n private addCanvas() {\n if (this.canvas) {\n this.canvas.remove();\n }\n\n this.canvas = document.createElement('canvas');\n this.canvas.width = this.element.width;\n this.canvas.height = this.element.height;\n this.canvas.getContext('2d')?.drawImage(this.element, 0, 0, this.canvas.width, this.canvas.height);\n for (let i = 0; i < this.element.attributes.length; i++) {\n const attr = this.element.attributes[i];\n if (attr.name === 'id') {\n // avoid two elements with the same id\n this.canvas.setAttribute('id', attr.value + '_frozenGif');\n } else if ((attr.name === 'style' && attr.value.includes('visibility: hidden;')) || attr.value.includes('display: none;')) {\n // remove the added 'visibility: hidden' and 'display: none'\n const styleValue = attr.value;\n this.canvas.setAttribute('style', styleValue.replace('visibility: hidden;', '').replace('display: none;', ''));\n } else if (attr.name !== '\"') {\n // test for invalid attributes\n this.canvas.setAttribute(attr.name, attr.value);\n }\n }\n\n this.addEvents();\n\n this.element.parentNode?.insertBefore(this.canvas, this.element);\n this.element.style.display = 'none';\n }\n\n private addEvents() {\n this.apGifEvents.forEach((eventName: string) => {\n this.canvas?.addEventListener(eventName, (ev: Event) =>\n this.element.dispatchEvent(\n // wm: find a way to dispatch the right event type\n new Event(ev.type, ev)\n )\n );\n });\n }\n\n private unfreeze() {\n if (this.canvas) {\n this.canvas.remove();\n this.canvas = null;\n }\n this.element.style.visibility = 'inherit';\n this.element.style.display = 'inherit';\n }\n}\n","import { Directive, ElementRef, EventEmitter, Input, Output, Renderer2 } from '@angular/core';\nimport DOMPurify from 'dompurify';\n\nconst DATA_MST = 'data-mst';\n\n/**\n * This directive aims to parse simple string to extract some specific tags and to turn them into SPAN with styling classes attributes and optional event listening.\n * The specific tags must this schema: <ng-container data-mst=\"STYLING-CLASSES\">TEXT</ng-container>.\n * Example: 'Lorem <ng-container data-mst=\"my-style\">ipsum</ng-container> dolor sit amet'.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[multiStyleText]',\n standalone: true,\n})\nexport class MultiStyleTextDirective {\n @Input() set multiStyleText(fullText: string) {\n // First remove previously added children (on update).\n this.renderer.setProperty(this.elRef.nativeElement, 'innerHTML', '');\n if (!fullText || fullText.length <= 0) {\n return;\n }\n\n this.renderer.setProperty(this.elRef.nativeElement, 'innerHTML', DOMPurify.sanitize(fullText.replace(/ng-container/g, 'span')));\n\n Array.from(this.elRef.nativeElement.children).forEach((childNode: Element) => {\n if (childNode.nodeType == 1 && childNode.tagName.toLowerCase() === 'span') {\n // Node.ELEMENT_NODE\n\n const span: HTMLElement = this.renderer.createElement('span');\n span.innerHTML = childNode.innerHTML;\n this.elRef.nativeElement.replaceChild(span, childNode);\n\n const mstValue = childNode.getAttribute(DATA_MST);\n if (mstValue) {\n const mstContents = mstValue.split(';');\n // Bind click events\n if (mstContents[1]) {\n this.renderer.listen(span, 'click', () => this.partEvent.emit(mstContents[1]));\n }\n // Add classes\n if (mstContents[0] && mstContents[0].length > 0) {\n this.renderer.setAttribute(span, 'class', mstContents[0].replace(',', ' '));\n }\n }\n }\n });\n }\n\n @Output() partEvent = new EventEmitter<string>();\n\n public constructor(\n private elRef: ElementRef<HTMLElement>,\n private renderer: Renderer2\n ) {}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { NgClass } from '@angular/common';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { EventEmitter, booleanAttribute, Component, ChangeDetectionStrategy, Input, Output } from '@angular/core';
|
|
4
|
+
|
|
5
|
+
class DotStepperComponent {
|
|
6
|
+
interactive = true;
|
|
7
|
+
index = 0;
|
|
8
|
+
items = [];
|
|
9
|
+
dotClick = new EventEmitter();
|
|
10
|
+
currentItem = undefined;
|
|
11
|
+
ngOnChanges() {
|
|
12
|
+
this.currentItem = this.items[this.index];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* On dot click
|
|
16
|
+
* @param event Dom click event
|
|
17
|
+
* @param item Item clicked
|
|
18
|
+
* @param index Index of the item clicked
|
|
19
|
+
*/
|
|
20
|
+
onDotClick(event, item, index) {
|
|
21
|
+
event.stopPropagation();
|
|
22
|
+
if (!this.interactive) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
this.currentItem = item;
|
|
26
|
+
this.index = index;
|
|
27
|
+
this.dotClick.emit(this.index);
|
|
28
|
+
}
|
|
29
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DotStepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: DotStepperComponent, isStandalone: true, selector: "ap-dot-stepper", inputs: { interactive: ["interactive", "interactive", booleanAttribute], index: "index", items: "items" }, outputs: { dotClick: "dotClick" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"dots\">\n @for (item of items; track item; let i = $index) {\n <div\n class=\"dot\"\n tabindex=\"-1\"\n [ngClass]=\"{\n active: item === currentItem,\n disabled: !interactive\n }\"\n (click)=\"onDotClick($event, item, i)\"\n (keydown)=\"onDotClick($event, item, i)\"></div>\n }\n</div>\n", styles: [".dots{align-items:stretch;box-sizing:border-box;display:flex;flex-direction:row;gap:var(--comp-dot-stepper-spacing);place-content:stretch center;width:100%}.dots .dot{position:relative;transition:all .2s ease-in-out;border:var(--comp-dot-stepper-dot-inactive-border-width) solid var(--comp-dot-stepper-dot-inactive-border-color);border-radius:50%;height:var(--comp-dot-stepper-dot-size);width:var(--comp-dot-stepper-dot-size);cursor:pointer}.dots .dot:hover{border:var(--comp-dot-stepper-dot-inactive-border-width) solid var(--ref-color-electric-blue-60);background:var(--comp-dot-stepper-dot-inactive-focused-background-color)}.dots .dot:focus{background:var(--comp-dot-stepper-dot-inactive-hovered-background-color)}.dots .dot:focus:after{content:\"\";width:calc(var(--comp-dot-stepper-dot-size) + var(--comp-dot-stepper-dot-inactive-border-width));height:calc(var(--comp-dot-stepper-dot-size) + var(--comp-dot-stepper-dot-inactive-border-width));top:calc(-1 * (var(--comp-dot-stepper-dot-inactive-border-width) * 2 + 1px));left:calc(-1 * (var(--comp-dot-stepper-dot-inactive-border-width) * 2 + 1px));position:absolute;border-radius:50%;border:var(--comp-dot-stepper-dot-inactive-border-width) solid var(--ref-color-electric-blue-100)}.dots .dot.active{background:var(--comp-dot-stepper-dot-active-background-color);border:var(--comp-dot-stepper-dot-inactive-border-width) solid var(--ref-color-electric-blue-150);cursor:initial}.dots .dot.disabled{cursor:initial;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
31
|
+
}
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DotStepperComponent, decorators: [{
|
|
33
|
+
type: Component,
|
|
34
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-dot-stepper', standalone: true, imports: [NgClass], template: "<div\n class=\"dots\">\n @for (item of items; track item; let i = $index) {\n <div\n class=\"dot\"\n tabindex=\"-1\"\n [ngClass]=\"{\n active: item === currentItem,\n disabled: !interactive\n }\"\n (click)=\"onDotClick($event, item, i)\"\n (keydown)=\"onDotClick($event, item, i)\"></div>\n }\n</div>\n", styles: [".dots{align-items:stretch;box-sizing:border-box;display:flex;flex-direction:row;gap:var(--comp-dot-stepper-spacing);place-content:stretch center;width:100%}.dots .dot{position:relative;transition:all .2s ease-in-out;border:var(--comp-dot-stepper-dot-inactive-border-width) solid var(--comp-dot-stepper-dot-inactive-border-color);border-radius:50%;height:var(--comp-dot-stepper-dot-size);width:var(--comp-dot-stepper-dot-size);cursor:pointer}.dots .dot:hover{border:var(--comp-dot-stepper-dot-inactive-border-width) solid var(--ref-color-electric-blue-60);background:var(--comp-dot-stepper-dot-inactive-focused-background-color)}.dots .dot:focus{background:var(--comp-dot-stepper-dot-inactive-hovered-background-color)}.dots .dot:focus:after{content:\"\";width:calc(var(--comp-dot-stepper-dot-size) + var(--comp-dot-stepper-dot-inactive-border-width));height:calc(var(--comp-dot-stepper-dot-size) + var(--comp-dot-stepper-dot-inactive-border-width));top:calc(-1 * (var(--comp-dot-stepper-dot-inactive-border-width) * 2 + 1px));left:calc(-1 * (var(--comp-dot-stepper-dot-inactive-border-width) * 2 + 1px));position:absolute;border-radius:50%;border:var(--comp-dot-stepper-dot-inactive-border-width) solid var(--ref-color-electric-blue-100)}.dots .dot.active{background:var(--comp-dot-stepper-dot-active-background-color);border:var(--comp-dot-stepper-dot-inactive-border-width) solid var(--ref-color-electric-blue-150);cursor:initial}.dots .dot.disabled{cursor:initial;pointer-events:none}\n"] }]
|
|
35
|
+
}], propDecorators: { interactive: [{
|
|
36
|
+
type: Input,
|
|
37
|
+
args: [{
|
|
38
|
+
transform: booleanAttribute,
|
|
39
|
+
}]
|
|
40
|
+
}], index: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], items: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], dotClick: [{
|
|
45
|
+
type: Output
|
|
46
|
+
}] } });
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Generated bundle index. Do not edit.
|
|
50
|
+
*/
|
|
51
|
+
|
|
52
|
+
export { DotStepperComponent };
|
|
53
|
+
//# sourceMappingURL=agorapulse-ui-components-dot-stepper.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-dot-stepper.mjs","sources":["../../../libs/ui-components/dot-stepper/src/dot-stepper.component.ts","../../../libs/ui-components/dot-stepper/src/dot-stepper.component.html","../../../libs/ui-components/dot-stepper/src/agorapulse-ui-components-dot-stepper.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, booleanAttribute } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-dot-stepper',\n standalone: true,\n templateUrl: './dot-stepper.component.html',\n imports: [NgClass],\n styleUrls: ['./dot-stepper.component.scss'],\n})\nexport class DotStepperComponent<T> implements OnChanges {\n\n @Input({\n transform: booleanAttribute,\n }) interactive = true;\n @Input() index = 0;\n @Input() items: T[] = [];\n @Output() dotClick: EventEmitter<number> = new EventEmitter<number>();\n\n currentItem: T | undefined = undefined;\n\n ngOnChanges(): void {\n this.currentItem = this.items[this.index];\n }\n\n /**\n * On dot click\n * @param event Dom click event\n * @param item Item clicked\n * @param index Index of the item clicked\n */\n onDotClick(event: Event, item: T, index: number): void {\n event.stopPropagation();\n if (!this.interactive) {\n return;\n }\n this.currentItem = item;\n this.index = index;\n this.dotClick.emit(this.index);\n }\n}\n","<div\n class=\"dots\">\n @for (item of items; track item; let i = $index) {\n <div\n class=\"dot\"\n tabindex=\"-1\"\n [ngClass]=\"{\n active: item === currentItem,\n disabled: !interactive\n }\"\n (click)=\"onDotClick($event, item, i)\"\n (keydown)=\"onDotClick($event, item, i)\"></div>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;MAWa,mBAAmB,CAAA;IAIzB,WAAW,GAAG,IAAI,CAAC;IACb,KAAK,GAAG,CAAC,CAAC;IACV,KAAK,GAAQ,EAAE,CAAC;AACf,IAAA,QAAQ,GAAyB,IAAI,YAAY,EAAU,CAAC;IAEtE,WAAW,GAAkB,SAAS,CAAC;IAEvC,WAAW,GAAA;QACP,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7C;AAED;;;;;AAKG;AACH,IAAA,UAAU,CAAC,KAAY,EAAE,IAAO,EAAE,KAAa,EAAA;QAC3C,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,OAAO;SACV;AACD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;uGA7BQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAGb,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,gBAAgB,CCdnC,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,gaAcA,2gDDNc,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGR,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;sCACW,uBAAuB,CAAC,MAAM,EACrC,QAAA,EAAA,gBAAgB,cACd,IAAI,EAAA,OAAA,EAEP,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,gaAAA,EAAA,MAAA,EAAA,CAAA,m9CAAA,CAAA,EAAA,CAAA;8BAOf,WAAW,EAAA,CAAA;sBAFb,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA;AACH,wBAAA,SAAS,EAAE,gBAAgB;AAC9B,qBAAA,CAAA;gBACQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;AElBX;;AAEG;;;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
class FormFieldComponent {
|
|
5
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FormFieldComponent, isStandalone: true, selector: "ap-form-field", ngImport: i0, template: "<div class=\"ap-form-field\">\n <ng-content select=\"label\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"ap-form-message\"></ng-content>\n</div>\n", styles: ["ap-form-field{display:block}.ap-form-field{display:inline-flex;flex-direction:column;gap:var(--comp-input-spacing-horizontal);width:100%}.ap-form-field 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-form-field 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)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7
|
+
}
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
9
|
+
type: Component,
|
|
10
|
+
args: [{ selector: 'ap-form-field', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"ap-form-field\">\n <ng-content select=\"label\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"ap-form-message\"></ng-content>\n</div>\n", styles: ["ap-form-field{display:block}.ap-form-field{display:inline-flex;flex-direction:column;gap:var(--comp-input-spacing-horizontal);width:100%}.ap-form-field 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-form-field 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)}\n"] }]
|
|
11
|
+
}] });
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Generated bundle index. Do not edit.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
export { FormFieldComponent };
|
|
18
|
+
//# sourceMappingURL=agorapulse-ui-components-form-field.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-form-field.mjs","sources":["../../../libs/ui-components/form-field/src/form-field.component.ts","../../../libs/ui-components/form-field/src/form-field.component.html","../../../libs/ui-components/form-field/src/agorapulse-ui-components-form-field.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ap-form-field',\n templateUrl: './form-field.component.html',\n styleUrls: ['./form-field.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class FormFieldComponent {}\n","<div class=\"ap-form-field\">\n <ng-content select=\"label\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"ap-form-message\"></ng-content>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;MAUa,kBAAkB,CAAA;uGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,yECV/B,kLAKA,EAAA,MAAA,EAAA,CAAA,oyBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDKa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;+BACI,eAAe,EAAA,UAAA,EAGb,IAAI,EACC,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,kLAAA,EAAA,MAAA,EAAA,CAAA,oyBAAA,CAAA,EAAA,CAAA;;;AERzC;;AAEG;;;;"}
|