@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,90 @@
|
|
|
1
|
+
import { Directive, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Removes excess text from element until it fits in elements
|
|
5
|
+
* and appends a ellipsis symbol to end of text. This requires that
|
|
6
|
+
* the elements height be fixed
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```html
|
|
10
|
+
* <p apEllipsis>Ullamco esse laborum</p>
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
*/
|
|
14
|
+
export class EllipsisDirective {
|
|
15
|
+
el;
|
|
16
|
+
apEllipsisSeparator = '';
|
|
17
|
+
apEllipsisClip = false;
|
|
18
|
+
apEllipsisIndex = -2;
|
|
19
|
+
apEllipsisChar = '...';
|
|
20
|
+
apEllipsisClickable = false;
|
|
21
|
+
apEllipsisRemovedElementsCount = new EventEmitter();
|
|
22
|
+
apEllipsisRemovedText = new EventEmitter();
|
|
23
|
+
get hasOverflow() {
|
|
24
|
+
const el = this.el.nativeElement;
|
|
25
|
+
return el.scrollHeight > el.offsetHeight || el.scrollWidth > el.offsetWidth;
|
|
26
|
+
}
|
|
27
|
+
constructor(el) {
|
|
28
|
+
this.el = el;
|
|
29
|
+
}
|
|
30
|
+
ngAfterContentChecked() {
|
|
31
|
+
this.clipText();
|
|
32
|
+
}
|
|
33
|
+
clipText() {
|
|
34
|
+
const el = this.el.nativeElement;
|
|
35
|
+
let text = el.innerText;
|
|
36
|
+
let removedText = '';
|
|
37
|
+
if (this.apEllipsisIndex > -1) {
|
|
38
|
+
removedText = text.substring(this.apEllipsisIndex, text.length - 1) + removedText;
|
|
39
|
+
text = text.substring(0, this.apEllipsisIndex);
|
|
40
|
+
el.innerText = `${text}${this.apEllipsisChar}`;
|
|
41
|
+
if (this.apEllipsisClickable) {
|
|
42
|
+
el.addEventListener('click', () => {
|
|
43
|
+
el.innerText = `${text}${removedText}`;
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
while (this.hasOverflow && text.length > 0) {
|
|
49
|
+
removedText = text[text.length - 1] + removedText;
|
|
50
|
+
text = text.substring(0, text.length - 1);
|
|
51
|
+
el.innerText = `${text}${this.apEllipsisChar}`;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (this.apEllipsisSeparator) {
|
|
55
|
+
const removedElementsCount = removedText
|
|
56
|
+
.split(this.apEllipsisSeparator)
|
|
57
|
+
.filter(element => !!element && element.length > 0).length;
|
|
58
|
+
if (removedElementsCount > 0) {
|
|
59
|
+
this.apEllipsisRemovedElementsCount.emit(removedElementsCount);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (removedText && removedText.length > 0) {
|
|
63
|
+
this.apEllipsisRemovedText.emit(removedText);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: EllipsisDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
67
|
+
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 });
|
|
68
|
+
}
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: EllipsisDirective, decorators: [{
|
|
70
|
+
type: Directive,
|
|
71
|
+
args: [{
|
|
72
|
+
selector: '[apEllipsis]',
|
|
73
|
+
standalone: true,
|
|
74
|
+
}]
|
|
75
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { apEllipsisSeparator: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], apEllipsisClip: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], apEllipsisIndex: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], apEllipsisChar: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], apEllipsisClickable: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], apEllipsisRemovedElementsCount: [{
|
|
86
|
+
type: Output
|
|
87
|
+
}], apEllipsisRemovedText: [{
|
|
88
|
+
type: Output
|
|
89
|
+
}] } });
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxsaXBzaXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL2RpcmVjdGl2ZXMvc3JjL2VsbGlwc2lzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFeEc7Ozs7Ozs7Ozs7R0FVRztBQUtILE1BQU0sT0FBTyxpQkFBaUI7SUFlTjtJQWRYLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztJQUN6QixjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyQixjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUUzQiw4QkFBOEIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQzVELHFCQUFxQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFFN0QsSUFBWSxXQUFXO1FBQ25CLE1BQU0sRUFBRSxHQUFnQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUM5QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7SUFDaEYsQ0FBQztJQUVELFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBQUcsQ0FBQztJQUV0QyxxQkFBcUI7UUFDakIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFTyxRQUFRO1FBQ1osTUFBTSxFQUFFLEdBQWdCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO1FBQzlDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDeEIsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzVCLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUM7WUFDbEYsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUMvQyxFQUFFLENBQUMsU0FBUyxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUUvQyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUMzQixFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtvQkFDOUIsRUFBRSxDQUFDLFNBQVMsR0FBRyxHQUFHLElBQUksR0FBRyxXQUFXLEVBQUUsQ0FBQztnQkFDM0MsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQztnQkFDbEQsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLEVBQUUsQ0FBQyxTQUFTLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25ELENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMzQixNQUFNLG9CQUFvQixHQUFHLFdBQVc7aUJBQ25DLEtBQUssQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7aUJBQy9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDL0QsSUFBSSxvQkFBb0IsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ25FLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELENBQUM7SUFDTCxDQUFDO3VHQXREUSxpQkFBaUI7MkZBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7aUJBQ25COytFQUVZLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUksOEJBQThCO3NCQUF2QyxNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudENoZWNrZWQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogUmVtb3ZlcyBleGNlc3MgdGV4dCBmcm9tIGVsZW1lbnQgdW50aWwgaXQgZml0cyBpbiBlbGVtZW50c1xuICogYW5kIGFwcGVuZHMgYSBlbGxpcHNpcyBzeW1ib2wgdG8gZW5kIG9mIHRleHQuIFRoaXMgcmVxdWlyZXMgdGhhdFxuICogdGhlIGVsZW1lbnRzIGhlaWdodCBiZSBmaXhlZFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8cCBhcEVsbGlwc2lzPlVsbGFtY28gZXNzZSBsYWJvcnVtPC9wPlxuICogYGBgXG4gKlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1thcEVsbGlwc2lzXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRWxsaXBzaXNEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRDaGVja2VkIHtcbiAgICBASW5wdXQoKSBhcEVsbGlwc2lzU2VwYXJhdG9yID0gJyc7XG4gICAgQElucHV0KCkgYXBFbGxpcHNpc0NsaXAgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBhcEVsbGlwc2lzSW5kZXggPSAtMjtcbiAgICBASW5wdXQoKSBhcEVsbGlwc2lzQ2hhciA9ICcuLi4nO1xuICAgIEBJbnB1dCgpIGFwRWxsaXBzaXNDbGlja2FibGUgPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSBhcEVsbGlwc2lzUmVtb3ZlZEVsZW1lbnRzQ291bnQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgICBAT3V0cHV0KCkgYXBFbGxpcHNpc1JlbW92ZWRUZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBwcml2YXRlIGdldCBoYXNPdmVyZmxvdygpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZWw6IEhUTUxFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICByZXR1cm4gZWwuc2Nyb2xsSGVpZ2h0ID4gZWwub2Zmc2V0SGVpZ2h0IHx8IGVsLnNjcm9sbFdpZHRoID4gZWwub2Zmc2V0V2lkdGg7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblxuICAgIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICAgICAgdGhpcy5jbGlwVGV4dCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xpcFRleHQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsOiBIVE1MRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICAgICAgbGV0IHRleHQgPSBlbC5pbm5lclRleHQ7XG4gICAgICAgIGxldCByZW1vdmVkVGV4dCA9ICcnO1xuICAgICAgICBpZiAodGhpcy5hcEVsbGlwc2lzSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgcmVtb3ZlZFRleHQgPSB0ZXh0LnN1YnN0cmluZyh0aGlzLmFwRWxsaXBzaXNJbmRleCwgdGV4dC5sZW5ndGggLSAxKSArIHJlbW92ZWRUZXh0O1xuICAgICAgICAgICAgdGV4dCA9IHRleHQuc3Vic3RyaW5nKDAsIHRoaXMuYXBFbGxpcHNpc0luZGV4KTtcbiAgICAgICAgICAgIGVsLmlubmVyVGV4dCA9IGAke3RleHR9JHt0aGlzLmFwRWxsaXBzaXNDaGFyfWA7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmFwRWxsaXBzaXNDbGlja2FibGUpIHtcbiAgICAgICAgICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZWwuaW5uZXJUZXh0ID0gYCR7dGV4dH0ke3JlbW92ZWRUZXh0fWA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3aGlsZSAodGhpcy5oYXNPdmVyZmxvdyAmJiB0ZXh0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICByZW1vdmVkVGV4dCA9IHRleHRbdGV4dC5sZW5ndGggLSAxXSArIHJlbW92ZWRUZXh0O1xuICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0LnN1YnN0cmluZygwLCB0ZXh0Lmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgICAgIGVsLmlubmVyVGV4dCA9IGAke3RleHR9JHt0aGlzLmFwRWxsaXBzaXNDaGFyfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hcEVsbGlwc2lzU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICBjb25zdCByZW1vdmVkRWxlbWVudHNDb3VudCA9IHJlbW92ZWRUZXh0XG4gICAgICAgICAgICAgICAgLnNwbGl0KHRoaXMuYXBFbGxpcHNpc1NlcGFyYXRvcilcbiAgICAgICAgICAgICAgICAuZmlsdGVyKGVsZW1lbnQgPT4gISFlbGVtZW50ICYmIGVsZW1lbnQubGVuZ3RoID4gMCkubGVuZ3RoO1xuICAgICAgICAgICAgaWYgKHJlbW92ZWRFbGVtZW50c0NvdW50ID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYXBFbGxpcHNpc1JlbW92ZWRFbGVtZW50c0NvdW50LmVtaXQocmVtb3ZlZEVsZW1lbnRzQ291bnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChyZW1vdmVkVGV4dCAmJiByZW1vdmVkVGV4dC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmFwRWxsaXBzaXNSZW1vdmVkVGV4dC5lbWl0KHJlbW92ZWRUZXh0KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// Based on https://scotch.io/tutorials/how-to-implement-a-custom-validator-directive-confirm-password-in-angular-2
|
|
2
|
+
import { Attribute, Directive, forwardRef } from '@angular/core';
|
|
3
|
+
import { NG_VALIDATORS } from '@angular/forms';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class EqualValidatorDirective {
|
|
6
|
+
validateEqual;
|
|
7
|
+
validateEqualReference;
|
|
8
|
+
constructor(validateEqual, validateEqualReference) {
|
|
9
|
+
this.validateEqual = validateEqual;
|
|
10
|
+
this.validateEqualReference = validateEqualReference;
|
|
11
|
+
}
|
|
12
|
+
validate(self) {
|
|
13
|
+
const other = self.root.get(this.validateEqual);
|
|
14
|
+
if (other) {
|
|
15
|
+
if (this.isReference()) {
|
|
16
|
+
if (self.value === other.value) {
|
|
17
|
+
if (other.errors) {
|
|
18
|
+
delete other.errors['validateEqual'];
|
|
19
|
+
if (!Object.keys(other.errors).length) {
|
|
20
|
+
other.setErrors(null);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
other.setErrors(null);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
other.setErrors({ validateEqual: false });
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
else if (self.value !== other.value) {
|
|
32
|
+
return { validateEqual: false };
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
isReference() {
|
|
38
|
+
if (!this.validateEqualReference) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
return this.validateEqualReference === 'true';
|
|
42
|
+
}
|
|
43
|
+
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 });
|
|
44
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: EqualValidatorDirective, isStandalone: true, selector: "[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]", providers: [
|
|
45
|
+
{
|
|
46
|
+
provide: NG_VALIDATORS,
|
|
47
|
+
useExisting: forwardRef(() => EqualValidatorDirective),
|
|
48
|
+
multi: true,
|
|
49
|
+
},
|
|
50
|
+
], ngImport: i0 });
|
|
51
|
+
}
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: EqualValidatorDirective, decorators: [{
|
|
53
|
+
type: Directive,
|
|
54
|
+
args: [{
|
|
55
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
56
|
+
selector: '[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]',
|
|
57
|
+
providers: [
|
|
58
|
+
{
|
|
59
|
+
provide: NG_VALIDATORS,
|
|
60
|
+
useExisting: forwardRef(() => EqualValidatorDirective),
|
|
61
|
+
multi: true,
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
standalone: true,
|
|
65
|
+
}]
|
|
66
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
67
|
+
type: Attribute,
|
|
68
|
+
args: ['validateEqual']
|
|
69
|
+
}] }, { type: undefined, decorators: [{
|
|
70
|
+
type: Attribute,
|
|
71
|
+
args: ['validateEqualReference']
|
|
72
|
+
}] }] });
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1YWwtdmFsaWRhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9kaXJlY3RpdmVzL3NyYy9lcXVhbC12YWxpZGF0b3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1IQUFtSDtBQUNuSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFtQixhQUFhLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFjM0UsTUFBTSxPQUFPLHVCQUF1QjtJQUVPO0lBQ1M7SUFGaEQsWUFDdUMsYUFBcUIsRUFDWixzQkFBOEI7UUFEdkMsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDWiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVE7SUFDM0UsQ0FBQztJQUVKLFFBQVEsQ0FBQyxJQUFxQjtRQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEQsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQzdCLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUNmLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQzt3QkFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDOzRCQUNwQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUMxQixDQUFDO29CQUNMLENBQUM7eUJBQU0sQ0FBQzt3QkFDSixLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMxQixDQUFDO2dCQUNMLENBQUM7cUJBQU0sQ0FBQztvQkFDSixLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQzlDLENBQUM7WUFDTCxDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDcEMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU8sV0FBVztRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUMvQixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsc0JBQXNCLEtBQUssTUFBTSxDQUFDO0lBQ2xELENBQUM7dUdBbENRLHVCQUF1QixrQkFFakIsZUFBZSw4QkFDZix3QkFBd0I7MkZBSDlCLHVCQUF1QixxSUFUckI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDdEQsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUNKOzsyRkFHUSx1QkFBdUI7a0JBWm5DLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsd0ZBQXdGO29CQUNsRyxTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDOzRCQUN0RCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQUdRLFNBQVM7MkJBQUMsZUFBZTs7MEJBQ3pCLFNBQVM7MkJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQmFzZWQgb24gaHR0cHM6Ly9zY290Y2guaW8vdHV0b3JpYWxzL2hvdy10by1pbXBsZW1lbnQtYS1jdXN0b20tdmFsaWRhdG9yLWRpcmVjdGl2ZS1jb25maXJtLXBhc3N3b3JkLWluLWFuZ3VsYXItMlxuaW1wb3J0IHsgQXR0cmlidXRlLCBEaXJlY3RpdmUsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgTkdfVkFMSURBVE9SUywgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW3ZhbGlkYXRlRXF1YWxdW2Zvcm1Db250cm9sTmFtZV0sW3ZhbGlkYXRlRXF1YWxdW2Zvcm1Db250cm9sXSxbdmFsaWRhdGVFcXVhbF1bbmdNb2RlbF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRXF1YWxWYWxpZGF0b3JEaXJlY3RpdmUpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBFcXVhbFZhbGlkYXRvckRpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvciB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBBdHRyaWJ1dGUoJ3ZhbGlkYXRlRXF1YWwnKSBwdWJsaWMgdmFsaWRhdGVFcXVhbDogc3RyaW5nLFxuICAgICAgICBAQXR0cmlidXRlKCd2YWxpZGF0ZUVxdWFsUmVmZXJlbmNlJykgcHVibGljIHZhbGlkYXRlRXF1YWxSZWZlcmVuY2U6IHN0cmluZ1xuICAgICkge31cblxuICAgIHZhbGlkYXRlKHNlbGY6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsIHtcbiAgICAgICAgY29uc3Qgb3RoZXIgPSBzZWxmLnJvb3QuZ2V0KHRoaXMudmFsaWRhdGVFcXVhbCk7XG4gICAgICAgIGlmIChvdGhlcikge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNSZWZlcmVuY2UoKSkge1xuICAgICAgICAgICAgICAgIGlmIChzZWxmLnZhbHVlID09PSBvdGhlci52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAob3RoZXIuZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgb3RoZXIuZXJyb3JzWyd2YWxpZGF0ZUVxdWFsJ107XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIU9iamVjdC5rZXlzKG90aGVyLmVycm9ycykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXIuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXIuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgb3RoZXIuc2V0RXJyb3JzKHsgdmFsaWRhdGVFcXVhbDogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChzZWxmLnZhbHVlICE9PSBvdGhlci52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHZhbGlkYXRlRXF1YWw6IGZhbHNlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1JlZmVyZW5jZSgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlRXF1YWxSZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUVxdWFsUmVmZXJlbmNlID09PSAndHJ1ZSc7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class GifService {
|
|
4
|
+
static isGif(src) {
|
|
5
|
+
return src && src.split('?')[0].endsWith('.gif');
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* If the image is a GIF then replace the img element by a canvas containing a frozen gif.
|
|
10
|
+
* Note 1: if the image is displayed under a condition, the condition must be applied on the parent of the image, so the
|
|
11
|
+
* new canvas element will have the same condition.
|
|
12
|
+
* Note 2: the image must not have the properties "display" and "visibility" in its style. Since they are used to frozen
|
|
13
|
+
* the GIF. You need to apply this properties on the parent element.
|
|
14
|
+
* Note 3: If the GIF is frozen, all the event are propagated to the image. However, all events are dispatched
|
|
15
|
+
* with an Event instance. Ex: click event is not dispatched with a MouseEvent instance.
|
|
16
|
+
*/
|
|
17
|
+
export class FrozenGifDirective {
|
|
18
|
+
elementRef;
|
|
19
|
+
src = '';
|
|
20
|
+
apFrozen = true;
|
|
21
|
+
// Add all the events that need to be propagated.
|
|
22
|
+
apGifEvents = ['click'];
|
|
23
|
+
element;
|
|
24
|
+
canvas = null;
|
|
25
|
+
constructor(elementRef) {
|
|
26
|
+
this.elementRef = elementRef;
|
|
27
|
+
const element = this.elementRef.nativeElement;
|
|
28
|
+
if (!(element instanceof HTMLImageElement)) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
this.element = element;
|
|
32
|
+
}
|
|
33
|
+
ngOnChanges(changes) {
|
|
34
|
+
let freeze = false;
|
|
35
|
+
if (changes.src) {
|
|
36
|
+
freeze = true;
|
|
37
|
+
}
|
|
38
|
+
if (changes.frozen) {
|
|
39
|
+
if (changes.frozen.currentValue) {
|
|
40
|
+
freeze = true;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
this.unfreeze();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (freeze) {
|
|
47
|
+
this.freeze();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
freeze() {
|
|
51
|
+
if (!GifService.isGif(this.src) || !this.apFrozen) {
|
|
52
|
+
this.unfreeze();
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
// hack to avoid displaying the GIF before replacing it by the canvas
|
|
56
|
+
this.element.style.visibility = 'hidden';
|
|
57
|
+
this.element.addEventListener('load', () => this.addCanvas());
|
|
58
|
+
}
|
|
59
|
+
addCanvas() {
|
|
60
|
+
if (this.canvas) {
|
|
61
|
+
this.canvas.remove();
|
|
62
|
+
}
|
|
63
|
+
this.canvas = document.createElement('canvas');
|
|
64
|
+
this.canvas.width = this.element.width;
|
|
65
|
+
this.canvas.height = this.element.height;
|
|
66
|
+
this.canvas.getContext('2d')?.drawImage(this.element, 0, 0, this.canvas.width, this.canvas.height);
|
|
67
|
+
for (let i = 0; i < this.element.attributes.length; i++) {
|
|
68
|
+
const attr = this.element.attributes[i];
|
|
69
|
+
if (attr.name === 'id') {
|
|
70
|
+
// avoid two elements with the same id
|
|
71
|
+
this.canvas.setAttribute('id', attr.value + '_frozenGif');
|
|
72
|
+
}
|
|
73
|
+
else if ((attr.name === 'style' && attr.value.includes('visibility: hidden;')) || attr.value.includes('display: none;')) {
|
|
74
|
+
// remove the added 'visibility: hidden' and 'display: none'
|
|
75
|
+
const styleValue = attr.value;
|
|
76
|
+
this.canvas.setAttribute('style', styleValue.replace('visibility: hidden;', '').replace('display: none;', ''));
|
|
77
|
+
}
|
|
78
|
+
else if (attr.name !== '"') {
|
|
79
|
+
// test for invalid attributes
|
|
80
|
+
this.canvas.setAttribute(attr.name, attr.value);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
this.addEvents();
|
|
84
|
+
this.element.parentNode?.insertBefore(this.canvas, this.element);
|
|
85
|
+
this.element.style.display = 'none';
|
|
86
|
+
}
|
|
87
|
+
addEvents() {
|
|
88
|
+
this.apGifEvents.forEach((eventName) => {
|
|
89
|
+
this.canvas?.addEventListener(eventName, (ev) => this.element.dispatchEvent(
|
|
90
|
+
// wm: find a way to dispatch the right event type
|
|
91
|
+
new Event(ev.type, ev)));
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
unfreeze() {
|
|
95
|
+
if (this.canvas) {
|
|
96
|
+
this.canvas.remove();
|
|
97
|
+
this.canvas = null;
|
|
98
|
+
}
|
|
99
|
+
this.element.style.visibility = 'inherit';
|
|
100
|
+
this.element.style.display = 'inherit';
|
|
101
|
+
}
|
|
102
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FrozenGifDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
103
|
+
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 });
|
|
104
|
+
}
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FrozenGifDirective, decorators: [{
|
|
106
|
+
type: Directive,
|
|
107
|
+
args: [{
|
|
108
|
+
selector: 'img[apFrozenGif]',
|
|
109
|
+
// eslint-disable-next-line @angular-eslint/no-host-metadata-property
|
|
110
|
+
host: {
|
|
111
|
+
'[src]': 'src',
|
|
112
|
+
},
|
|
113
|
+
standalone: true,
|
|
114
|
+
}]
|
|
115
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { src: [{
|
|
116
|
+
type: Input,
|
|
117
|
+
args: [{
|
|
118
|
+
required: true,
|
|
119
|
+
}]
|
|
120
|
+
}], apFrozen: [{
|
|
121
|
+
type: Input
|
|
122
|
+
}], apGifEvents: [{
|
|
123
|
+
type: Input
|
|
124
|
+
}] } });
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvemVuLWdpZi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZGlyZWN0aXZlcy9zcmMvZnJvemVuLWdpZi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7O0FBRXhFLE1BQU0sT0FBTyxVQUFVO0lBQ25CLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBVztRQUNwQixPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0o7QUFFRDs7Ozs7Ozs7R0FRRztBQVVILE1BQU0sT0FBTyxrQkFBa0I7SUFZUDtJQVJwQixHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ0EsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN6QixpREFBaUQ7SUFDeEMsV0FBVyxHQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFMUIsT0FBTyxDQUFvQjtJQUNwQyxNQUFNLEdBQTZCLElBQUksQ0FBQztJQUVoRCxZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQzlDLElBQUksQ0FBQyxDQUFDLE9BQU8sWUFBWSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDekMsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQVk7UUFDcEIsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNsQixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUM5QixNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEIsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDTCxDQUFDO0lBRU8sTUFBTTtRQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsT0FBTztRQUNYLENBQUM7UUFFRCxxRUFBcUU7UUFDckUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztRQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU8sU0FBUztRQUNiLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN6QixDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDdEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNyQixzQ0FBc0M7Z0JBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxDQUFDO1lBQzlELENBQUM7aUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hILDREQUE0RDtnQkFDNUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbkgsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQzNCLDhCQUE4QjtnQkFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDeEMsQ0FBQztJQUVPLFNBQVM7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQWlCLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQVMsRUFBRSxFQUFFLENBQ25ELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYTtZQUN0QixrREFBa0Q7WUFDbEQsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FDekIsQ0FDSixDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sUUFBUTtRQUNaLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUN2QixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO0lBQzNDLENBQUM7dUdBbEdRLGtCQUFrQjsyRkFBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQVI5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLHFFQUFxRTtvQkFDckUsSUFBSSxFQUFFO3dCQUNGLE9BQU8sRUFBRSxLQUFLO3FCQUNqQjtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7K0VBS0csR0FBRztzQkFIRixLQUFLO3VCQUFDO3dCQUNILFFBQVEsRUFBRSxJQUFJO3FCQUNqQjtnQkFFUSxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEdpZlNlcnZpY2Uge1xuICAgIHN0YXRpYyBpc0dpZihzcmM6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gc3JjICYmIHNyYy5zcGxpdCgnPycpWzBdLmVuZHNXaXRoKCcuZ2lmJyk7XG4gICAgfVxufVxuXG4vKipcbiAqIElmIHRoZSBpbWFnZSBpcyBhIEdJRiB0aGVuIHJlcGxhY2UgdGhlIGltZyBlbGVtZW50IGJ5IGEgY2FudmFzIGNvbnRhaW5pbmcgYSBmcm96ZW4gZ2lmLlxuICogTm90ZSAxOiBpZiB0aGUgaW1hZ2UgaXMgZGlzcGxheWVkIHVuZGVyIGEgY29uZGl0aW9uLCB0aGUgY29uZGl0aW9uIG11c3QgYmUgYXBwbGllZCBvbiB0aGUgcGFyZW50IG9mIHRoZSBpbWFnZSwgc28gdGhlXG4gKiBuZXcgY2FudmFzIGVsZW1lbnQgd2lsbCBoYXZlIHRoZSBzYW1lIGNvbmRpdGlvbi5cbiAqIE5vdGUgMjogdGhlIGltYWdlIG11c3Qgbm90IGhhdmUgdGhlIHByb3BlcnRpZXMgXCJkaXNwbGF5XCIgYW5kIFwidmlzaWJpbGl0eVwiIGluIGl0cyBzdHlsZS4gU2luY2UgdGhleSBhcmUgdXNlZCB0byBmcm96ZW5cbiAqIHRoZSBHSUYuIFlvdSBuZWVkIHRvIGFwcGx5IHRoaXMgcHJvcGVydGllcyBvbiB0aGUgcGFyZW50IGVsZW1lbnQuXG4gKiBOb3RlIDM6IElmIHRoZSBHSUYgaXMgZnJvemVuLCBhbGwgdGhlIGV2ZW50IGFyZSBwcm9wYWdhdGVkIHRvIHRoZSBpbWFnZS4gSG93ZXZlciwgYWxsIGV2ZW50cyBhcmUgZGlzcGF0Y2hlZFxuICogd2l0aCBhbiBFdmVudCBpbnN0YW5jZS4gRXg6IGNsaWNrIGV2ZW50IGlzIG5vdCBkaXNwYXRjaGVkIHdpdGggYSBNb3VzZUV2ZW50IGluc3RhbmNlLlxuICovXG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnaW1nW2FwRnJvemVuR2lmXScsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1ob3N0LW1ldGFkYXRhLXByb3BlcnR5XG4gICAgaG9zdDoge1xuICAgICAgICAnW3NyY10nOiAnc3JjJyxcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEZyb3plbkdpZkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KHtcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSlcbiAgICBzcmMgPSAnJztcbiAgICBASW5wdXQoKSBhcEZyb3plbiA9IHRydWU7XG4gICAgLy8gQWRkIGFsbCB0aGUgZXZlbnRzIHRoYXQgbmVlZCB0byBiZSBwcm9wYWdhdGVkLlxuICAgIEBJbnB1dCgpIGFwR2lmRXZlbnRzOiBzdHJpbmdbXSA9IFsnY2xpY2snXTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudCE6IEhUTUxJbWFnZUVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAoIShlbGVtZW50IGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogYW55KTogdm9pZCB7XG4gICAgICAgIGxldCBmcmVlemUgPSBmYWxzZTtcbiAgICAgICAgaWYgKGNoYW5nZXMuc3JjKSB7XG4gICAgICAgICAgICBmcmVlemUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2VzLmZyb3plbikge1xuICAgICAgICAgICAgaWYgKGNoYW5nZXMuZnJvemVuLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIGZyZWV6ZSA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudW5mcmVlemUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmcmVlemUpIHtcbiAgICAgICAgICAgIHRoaXMuZnJlZXplKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZyZWV6ZSgpIHtcbiAgICAgICAgaWYgKCFHaWZTZXJ2aWNlLmlzR2lmKHRoaXMuc3JjKSB8fCAhdGhpcy5hcEZyb3plbikge1xuICAgICAgICAgICAgdGhpcy51bmZyZWV6ZSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaGFjayB0byBhdm9pZCBkaXNwbGF5aW5nIHRoZSBHSUYgYmVmb3JlIHJlcGxhY2luZyBpdCBieSB0aGUgY2FudmFzXG4gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4gdGhpcy5hZGRDYW52YXMoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRDYW52YXMoKSB7XG4gICAgICAgIGlmICh0aGlzLmNhbnZhcykge1xuICAgICAgICAgICAgdGhpcy5jYW52YXMucmVtb3ZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgICAgICB0aGlzLmNhbnZhcy53aWR0aCA9IHRoaXMuZWxlbWVudC53aWR0aDtcbiAgICAgICAgdGhpcy5jYW52YXMuaGVpZ2h0ID0gdGhpcy5lbGVtZW50LmhlaWdodDtcbiAgICAgICAgdGhpcy5jYW52YXMuZ2V0Q29udGV4dCgnMmQnKT8uZHJhd0ltYWdlKHRoaXMuZWxlbWVudCwgMCwgMCwgdGhpcy5jYW52YXMud2lkdGgsIHRoaXMuY2FudmFzLmhlaWdodCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5lbGVtZW50LmF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGF0dHIgPSB0aGlzLmVsZW1lbnQuYXR0cmlidXRlc1tpXTtcbiAgICAgICAgICAgIGlmIChhdHRyLm5hbWUgPT09ICdpZCcpIHtcbiAgICAgICAgICAgICAgICAvLyBhdm9pZCB0d28gZWxlbWVudHMgd2l0aCB0aGUgc2FtZSBpZFxuICAgICAgICAgICAgICAgIHRoaXMuY2FudmFzLnNldEF0dHJpYnV0ZSgnaWQnLCBhdHRyLnZhbHVlICsgJ19mcm96ZW5HaWYnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoKGF0dHIubmFtZSA9PT0gJ3N0eWxlJyAmJiBhdHRyLnZhbHVlLmluY2x1ZGVzKCd2aXNpYmlsaXR5OiBoaWRkZW47JykpIHx8IGF0dHIudmFsdWUuaW5jbHVkZXMoJ2Rpc3BsYXk6IG5vbmU7JykpIHtcbiAgICAgICAgICAgICAgICAvLyByZW1vdmUgdGhlIGFkZGVkICd2aXNpYmlsaXR5OiBoaWRkZW4nIGFuZCAnZGlzcGxheTogbm9uZSdcbiAgICAgICAgICAgICAgICBjb25zdCBzdHlsZVZhbHVlID0gYXR0ci52YWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbnZhcy5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgc3R5bGVWYWx1ZS5yZXBsYWNlKCd2aXNpYmlsaXR5OiBoaWRkZW47JywgJycpLnJlcGxhY2UoJ2Rpc3BsYXk6IG5vbmU7JywgJycpKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYXR0ci5uYW1lICE9PSAnXCInKSB7XG4gICAgICAgICAgICAgICAgLy8gdGVzdCBmb3IgaW52YWxpZCBhdHRyaWJ1dGVzXG4gICAgICAgICAgICAgICAgdGhpcy5jYW52YXMuc2V0QXR0cmlidXRlKGF0dHIubmFtZSwgYXR0ci52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFkZEV2ZW50cygpO1xuXG4gICAgICAgIHRoaXMuZWxlbWVudC5wYXJlbnROb2RlPy5pbnNlcnRCZWZvcmUodGhpcy5jYW52YXMsIHRoaXMuZWxlbWVudCk7XG4gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkRXZlbnRzKCkge1xuICAgICAgICB0aGlzLmFwR2lmRXZlbnRzLmZvckVhY2goKGV2ZW50TmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNhbnZhcz8uYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIChldjogRXZlbnQpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgIC8vIHdtOiBmaW5kIGEgd2F5IHRvIGRpc3BhdGNoIHRoZSByaWdodCBldmVudCB0eXBlXG4gICAgICAgICAgICAgICAgICAgIG5ldyBFdmVudChldi50eXBlLCBldilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVuZnJlZXplKCkge1xuICAgICAgICBpZiAodGhpcy5jYW52YXMpIHtcbiAgICAgICAgICAgIHRoaXMuY2FudmFzLnJlbW92ZSgpO1xuICAgICAgICAgICAgdGhpcy5jYW52YXMgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gJ2luaGVyaXQnO1xuICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdpbmhlcml0JztcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Directive, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import DOMPurify from 'dompurify';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
const DATA_MST = 'data-mst';
|
|
5
|
+
/**
|
|
6
|
+
* 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.
|
|
7
|
+
* The specific tags must this schema: <ng-container data-mst="STYLING-CLASSES">TEXT</ng-container>.
|
|
8
|
+
* Example: 'Lorem <ng-container data-mst="my-style">ipsum</ng-container> dolor sit amet'.
|
|
9
|
+
*/
|
|
10
|
+
export class MultiStyleTextDirective {
|
|
11
|
+
elRef;
|
|
12
|
+
renderer;
|
|
13
|
+
set multiStyleText(fullText) {
|
|
14
|
+
// First remove previously added children (on update).
|
|
15
|
+
this.renderer.setProperty(this.elRef.nativeElement, 'innerHTML', '');
|
|
16
|
+
if (!fullText || fullText.length <= 0) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
this.renderer.setProperty(this.elRef.nativeElement, 'innerHTML', DOMPurify.sanitize(fullText.replace(/ng-container/g, 'span')));
|
|
20
|
+
Array.from(this.elRef.nativeElement.children).forEach((childNode) => {
|
|
21
|
+
if (childNode.nodeType == 1 && childNode.tagName.toLowerCase() === 'span') {
|
|
22
|
+
// Node.ELEMENT_NODE
|
|
23
|
+
const span = this.renderer.createElement('span');
|
|
24
|
+
span.innerHTML = childNode.innerHTML;
|
|
25
|
+
this.elRef.nativeElement.replaceChild(span, childNode);
|
|
26
|
+
const mstValue = childNode.getAttribute(DATA_MST);
|
|
27
|
+
if (mstValue) {
|
|
28
|
+
const mstContents = mstValue.split(';');
|
|
29
|
+
// Bind click events
|
|
30
|
+
if (mstContents[1]) {
|
|
31
|
+
this.renderer.listen(span, 'click', () => this.partEvent.emit(mstContents[1]));
|
|
32
|
+
}
|
|
33
|
+
// Add classes
|
|
34
|
+
if (mstContents[0] && mstContents[0].length > 0) {
|
|
35
|
+
this.renderer.setAttribute(span, 'class', mstContents[0].replace(',', ' '));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
partEvent = new EventEmitter();
|
|
42
|
+
constructor(elRef, renderer) {
|
|
43
|
+
this.elRef = elRef;
|
|
44
|
+
this.renderer = renderer;
|
|
45
|
+
}
|
|
46
|
+
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 });
|
|
47
|
+
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 });
|
|
48
|
+
}
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: MultiStyleTextDirective, decorators: [{
|
|
50
|
+
type: Directive,
|
|
51
|
+
args: [{
|
|
52
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
53
|
+
selector: '[multiStyleText]',
|
|
54
|
+
standalone: true,
|
|
55
|
+
}]
|
|
56
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { multiStyleText: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], partEvent: [{
|
|
59
|
+
type: Output
|
|
60
|
+
}] } });
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc3R5bGUtdGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZGlyZWN0aXZlcy9zcmMvbXVsdGktc3R5bGUtdGV4dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLFNBQVMsTUFBTSxXQUFXLENBQUM7O0FBRWxDLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQztBQUU1Qjs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLHVCQUF1QjtJQXFDcEI7SUFDQTtJQXJDWixJQUFhLGNBQWMsQ0FBQyxRQUFnQjtRQUN4QyxzREFBc0Q7UUFDdEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQWtCLEVBQUUsRUFBRTtZQUN6RSxJQUFJLFNBQVMsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQ3hFLG9CQUFvQjtnQkFFcEIsTUFBTSxJQUFJLEdBQWdCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM5RCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBRXZELE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2xELElBQUksUUFBUSxFQUFFLENBQUM7b0JBQ1gsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDeEMsb0JBQW9CO29CQUNwQixJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ25GLENBQUM7b0JBQ0QsY0FBYztvQkFDZCxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUM5QyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ2hGLENBQUM7Z0JBQ0wsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUyxTQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUVqRCxZQUNZLEtBQThCLEVBQzlCLFFBQW1CO1FBRG5CLFVBQUssR0FBTCxLQUFLLENBQXlCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQVc7SUFDNUIsQ0FBQzt1R0F2Q0ssdUJBQXVCOzJGQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7dUdBRWdCLGNBQWM7c0JBQTFCLEtBQUs7Z0JBaUNJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgRE9NUHVyaWZ5IGZyb20gJ2RvbXB1cmlmeSc7XG5cbmNvbnN0IERBVEFfTVNUID0gJ2RhdGEtbXN0JztcblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBhaW1zIHRvIHBhcnNlIHNpbXBsZSBzdHJpbmcgdG8gZXh0cmFjdCBzb21lIHNwZWNpZmljIHRhZ3MgYW5kIHRvIHR1cm4gdGhlbSBpbnRvIFNQQU4gd2l0aCBzdHlsaW5nIGNsYXNzZXMgYXR0cmlidXRlcyBhbmQgb3B0aW9uYWwgZXZlbnQgbGlzdGVuaW5nLlxuICogVGhlIHNwZWNpZmljIHRhZ3MgbXVzdCB0aGlzIHNjaGVtYTogPG5nLWNvbnRhaW5lciBkYXRhLW1zdD1cIlNUWUxJTkctQ0xBU1NFU1wiPlRFWFQ8L25nLWNvbnRhaW5lcj4uXG4gKiBFeGFtcGxlOiAnTG9yZW0gPG5nLWNvbnRhaW5lciBkYXRhLW1zdD1cIm15LXN0eWxlXCI+aXBzdW08L25nLWNvbnRhaW5lcj4gZG9sb3Igc2l0IGFtZXQnLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW211bHRpU3R5bGVUZXh0XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlTdHlsZVRleHREaXJlY3RpdmUge1xuICAgIEBJbnB1dCgpIHNldCBtdWx0aVN0eWxlVGV4dChmdWxsVGV4dDogc3RyaW5nKSB7XG4gICAgICAgIC8vIEZpcnN0IHJlbW92ZSBwcmV2aW91c2x5IGFkZGVkIGNoaWxkcmVuIChvbiB1cGRhdGUpLlxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgJ2lubmVySFRNTCcsICcnKTtcbiAgICAgICAgaWYgKCFmdWxsVGV4dCB8fCBmdWxsVGV4dC5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsICdpbm5lckhUTUwnLCBET01QdXJpZnkuc2FuaXRpemUoZnVsbFRleHQucmVwbGFjZSgvbmctY29udGFpbmVyL2csICdzcGFuJykpKTtcblxuICAgICAgICBBcnJheS5mcm9tKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jaGlsZHJlbikuZm9yRWFjaCgoY2hpbGROb2RlOiBFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hpbGROb2RlLm5vZGVUeXBlID09IDEgJiYgY2hpbGROb2RlLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3NwYW4nKSB7XG4gICAgICAgICAgICAgICAgLy8gTm9kZS5FTEVNRU5UX05PREVcblxuICAgICAgICAgICAgICAgIGNvbnN0IHNwYW46IEhUTUxFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgICAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSBjaGlsZE5vZGUuaW5uZXJIVE1MO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5yZXBsYWNlQ2hpbGQoc3BhbiwgY2hpbGROb2RlKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG1zdFZhbHVlID0gY2hpbGROb2RlLmdldEF0dHJpYnV0ZShEQVRBX01TVCk7XG4gICAgICAgICAgICAgICAgaWYgKG1zdFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1zdENvbnRlbnRzID0gbXN0VmFsdWUuc3BsaXQoJzsnKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gQmluZCBjbGljayBldmVudHNcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1zdENvbnRlbnRzWzFdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihzcGFuLCAnY2xpY2snLCAoKSA9PiB0aGlzLnBhcnRFdmVudC5lbWl0KG1zdENvbnRlbnRzWzFdKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gQWRkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1zdENvbnRlbnRzWzBdICYmIG1zdENvbnRlbnRzWzBdLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHNwYW4sICdjbGFzcycsIG1zdENvbnRlbnRzWzBdLnJlcGxhY2UoJywnLCAnICcpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIHBhcnRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7fVxufVxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './autosize-textarea.directive';
|
|
2
|
+
export * from './base-button.directive';
|
|
3
|
+
export * from './default-image.directive';
|
|
4
|
+
export * from './ellipsis.directive';
|
|
5
|
+
export * from './equal-validator.directive';
|
|
6
|
+
export * from './frozen-gif.directive';
|
|
7
|
+
export * from './multi-style-text.directive';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9kaXJlY3RpdmVzL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dG9zaXplLXRleHRhcmVhLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtYnV0dG9uLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RlZmF1bHQtaW1hZ2UuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZWxsaXBzaXMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZXF1YWwtdmFsaWRhdG9yLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zyb3plbi1naWYuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbXVsdGktc3R5bGUtdGV4dC5kaXJlY3RpdmUnO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdvcmFwdWxzZS11aS1jb21wb25lbnRzLWRvdC1zdGVwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL2RvdC1zdGVwcGVyL3NyYy9hZ29yYXB1bHNlLXVpLWNvbXBvbmVudHMtZG90LXN0ZXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { NgClass } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, booleanAttribute } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class DotStepperComponent {
|
|
5
|
+
interactive = true;
|
|
6
|
+
index = 0;
|
|
7
|
+
items = [];
|
|
8
|
+
dotClick = new EventEmitter();
|
|
9
|
+
currentItem = undefined;
|
|
10
|
+
ngOnChanges() {
|
|
11
|
+
this.currentItem = this.items[this.index];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* On dot click
|
|
15
|
+
* @param event Dom click event
|
|
16
|
+
* @param item Item clicked
|
|
17
|
+
* @param index Index of the item clicked
|
|
18
|
+
*/
|
|
19
|
+
onDotClick(event, item, index) {
|
|
20
|
+
event.stopPropagation();
|
|
21
|
+
if (!this.interactive) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
this.currentItem = item;
|
|
25
|
+
this.index = index;
|
|
26
|
+
this.dotClick.emit(this.index);
|
|
27
|
+
}
|
|
28
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DotStepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
+
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 });
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DotStepperComponent, decorators: [{
|
|
32
|
+
type: Component,
|
|
33
|
+
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"] }]
|
|
34
|
+
}], propDecorators: { interactive: [{
|
|
35
|
+
type: Input,
|
|
36
|
+
args: [{
|
|
37
|
+
transform: booleanAttribute,
|
|
38
|
+
}]
|
|
39
|
+
}], index: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}], items: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}], dotClick: [{
|
|
44
|
+
type: Output
|
|
45
|
+
}] } });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90LXN0ZXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL2RvdC1zdGVwcGVyL3NyYy9kb3Qtc3RlcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZG90LXN0ZXBwZXIvc3JjL2RvdC1zdGVwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVU3SCxNQUFNLE9BQU8sbUJBQW1CO0lBSXpCLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDYixLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsS0FBSyxHQUFRLEVBQUUsQ0FBQztJQUNmLFFBQVEsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUV0RSxXQUFXLEdBQWtCLFNBQVMsQ0FBQztJQUV2QyxXQUFXO1FBQ1AsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsS0FBWSxFQUFFLElBQU8sRUFBRSxLQUFhO1FBQzNDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7dUdBN0JRLG1CQUFtQjsyRkFBbkIsbUJBQW1CLHdHQUdiLGdCQUFnQixxSENkbkMsZ2FBY0EsMmdERE5jLE9BQU87OzJGQUdSLG1CQUFtQjtrQkFSL0IsU0FBUztzQ0FDVyx1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDLGdCQUFnQixjQUNkLElBQUksV0FFUCxDQUFDLE9BQU8sQ0FBQzs4QkFPZixXQUFXO3NCQUZiLEtBQUs7dUJBQUM7d0JBQ0gsU0FBUyxFQUFFLGdCQUFnQjtxQkFDOUI7Z0JBQ1EsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgYm9vbGVhbkF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2FwLWRvdC1zdGVwcGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kb3Qtc3RlcHBlci5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW05nQ2xhc3NdLFxuICAgIHN0eWxlVXJsczogWycuL2RvdC1zdGVwcGVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERvdFN0ZXBwZXJDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gICAgQElucHV0KHtcbiAgICAgICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuICAgIH0pIGludGVyYWN0aXZlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBpbmRleCA9IDA7XG4gICAgQElucHV0KCkgaXRlbXM6IFRbXSA9IFtdO1xuICAgIEBPdXRwdXQoKSBkb3RDbGljazogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIGN1cnJlbnRJdGVtOiBUIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudEl0ZW0gPSB0aGlzLml0ZW1zW3RoaXMuaW5kZXhdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9uIGRvdCBjbGlja1xuICAgICAqIEBwYXJhbSBldmVudCBEb20gY2xpY2sgZXZlbnRcbiAgICAgKiBAcGFyYW0gaXRlbSBJdGVtIGNsaWNrZWRcbiAgICAgKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgdGhlIGl0ZW0gY2xpY2tlZFxuICAgICAqL1xuICAgIG9uRG90Q2xpY2soZXZlbnQ6IEV2ZW50LCBpdGVtOiBULCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBpZiAoIXRoaXMuaW50ZXJhY3RpdmUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRJdGVtID0gaXRlbTtcbiAgICAgICAgdGhpcy5pbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmRvdENsaWNrLmVtaXQodGhpcy5pbmRleCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiZG90c1wiPlxuICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXM7IHRyYWNrIGl0ZW07IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZG90XCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgIGFjdGl2ZTogaXRlbSA9PT0gY3VycmVudEl0ZW0sXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICFpbnRlcmFjdGl2ZVxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25Eb3RDbGljaygkZXZlbnQsIGl0ZW0sIGkpXCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cIm9uRG90Q2xpY2soJGV2ZW50LCBpdGVtLCBpKVwiPjwvZGl2PlxuICAgIH1cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './dot-stepper.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9kb3Qtc3RlcHBlci9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kb3Qtc3RlcHBlci5jb21wb25lbnQnO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdvcmFwdWxzZS11aS1jb21wb25lbnRzLWZvcm0tZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZm9ybS1maWVsZC9zcmMvYWdvcmFwdWxzZS11aS1jb21wb25lbnRzLWZvcm0tZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class FormFieldComponent {
|
|
4
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5
|
+
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 });
|
|
6
|
+
}
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
8
|
+
type: Component,
|
|
9
|
+
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"] }]
|
|
10
|
+
}] });
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZm9ybS1maWVsZC9zcmMvZm9ybS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZm9ybS1maWVsZC9zcmMvZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVV0RixNQUFNLE9BQU8sa0JBQWtCO3VHQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQix5RUNWL0Isa0xBS0E7OzJGREthLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDSSxlQUFlLGNBR2IsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcC1mb3JtLWZpZWxkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkQ29tcG9uZW50IHt9XG4iLCI8ZGl2IGNsYXNzPVwiYXAtZm9ybS1maWVsZFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImxhYmVsXCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhcC1mb3JtLW1lc3NhZ2VcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './form-field.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9mb3JtLWZpZWxkL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdvcmFwdWxzZS11aS1jb21wb25lbnRzLWZvcm0tbWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9mb3JtLW1lc3NhZ2Uvc3JjL2Fnb3JhcHVsc2UtdWktY29tcG9uZW50cy1mb3JtLW1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { SymbolComponent, SymbolRegistry, apErrorFill, apRoundedCheckFill } from '@agorapulse/ui-symbol';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, computed, inject, signal } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class FormMessageComponent {
|
|
5
|
+
set messageType(messageType) {
|
|
6
|
+
this.messageTypeSignal.set(messageType);
|
|
7
|
+
}
|
|
8
|
+
message;
|
|
9
|
+
messageTypeSignal = signal('error');
|
|
10
|
+
symbolIdSignal = computed(() => {
|
|
11
|
+
return this.messageTypeSignal() === 'error' ? 'error_fill' : 'rounded-check_fill';
|
|
12
|
+
});
|
|
13
|
+
symbolRegistry = inject(SymbolRegistry);
|
|
14
|
+
constructor() {
|
|
15
|
+
this.symbolRegistry.registerSymbols([apErrorFill, apRoundedCheckFill]);
|
|
16
|
+
}
|
|
17
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FormMessageComponent, isStandalone: true, selector: "ap-form-message", inputs: { messageType: "messageType", message: "message" }, host: { properties: { "class.error": "messageTypeSignal() === 'error'", "class.success": "messageTypeSignal() === 'success'" }, classAttribute: "ap-form-message" }, ngImport: i0, template: "<ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolIdSignal()\" />\n<span>\n {{ message }}\n</span>\n", styles: [".ap-form-message{font-size:var(--comp-forms-status-text-size);font-weight:var(--comp-forms-status-text-font-weight);line-height:var(--comp-forms-status-text-line-height);font-family:var(--comp-forms-status-text-font-family);margin:0;display:flex;align-items:center;gap:var(--ref-spacing-xxxs)}.ap-form-message.error{color:var(--comp-forms-status-text-error-color)}.ap-form-message.error ap-symbol{color:var(--comp-forms-status-icon-error-color)}.ap-form-message.success{color:var(--comp-forms-status-text-success-color)}.ap-form-message.success ap-symbol{color:var(--ref-color-green-150)}\n"], dependencies: [{ kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["color", "symbolId", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormMessageComponent, decorators: [{
|
|
21
|
+
type: Component,
|
|
22
|
+
args: [{ selector: 'ap-form-message', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [SymbolComponent], host: {
|
|
23
|
+
class: 'ap-form-message',
|
|
24
|
+
'[class.error]': "messageTypeSignal() === 'error'",
|
|
25
|
+
'[class.success]': "messageTypeSignal() === 'success'",
|
|
26
|
+
}, template: "<ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolIdSignal()\" />\n<span>\n {{ message }}\n</span>\n", styles: [".ap-form-message{font-size:var(--comp-forms-status-text-size);font-weight:var(--comp-forms-status-text-font-weight);line-height:var(--comp-forms-status-text-line-height);font-family:var(--comp-forms-status-text-font-family);margin:0;display:flex;align-items:center;gap:var(--ref-spacing-xxxs)}.ap-form-message.error{color:var(--comp-forms-status-text-error-color)}.ap-form-message.error ap-symbol{color:var(--comp-forms-status-icon-error-color)}.ap-form-message.success{color:var(--comp-forms-status-text-success-color)}.ap-form-message.success ap-symbol{color:var(--ref-color-green-150)}\n"] }]
|
|
27
|
+
}], ctorParameters: () => [], propDecorators: { messageType: [{
|
|
28
|
+
type: Input,
|
|
29
|
+
args: [{ required: true }]
|
|
30
|
+
}], message: [{
|
|
31
|
+
type: Input,
|
|
32
|
+
args: [{ required: true }]
|
|
33
|
+
}] } });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tZXNzYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9mb3JtLW1lc3NhZ2Uvc3JjL2Zvcm0tbWVzc2FnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZm9ybS1tZXNzYWdlL3NyYy9mb3JtLW1lc3NhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBa0J2SCxNQUFNLE9BQU8sb0JBQW9CO0lBQzdCLElBQ0ksV0FBVyxDQUFDLFdBQXdCO1FBQ3BDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUdELE9BQU8sQ0FBVTtJQUVqQixpQkFBaUIsR0FBRyxNQUFNLENBQWMsT0FBTyxDQUFDLENBQUM7SUFFakQsY0FBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDM0IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7SUFDdEYsQ0FBQyxDQUFDLENBQUM7SUFFSyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRWhEO1FBQ0ksSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7dUdBbkJRLG9CQUFvQjsyRkFBcEIsb0JBQW9CLDRTQ25CakMsMkdBTUEsd29CRE1jLGVBQWU7OzJGQU9oQixvQkFBb0I7a0JBZGhDLFNBQVM7K0JBQ0ksaUJBQWlCLGNBR2YsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsZUFBZSxDQUFDLFFBQ3BCO3dCQUNGLEtBQUssRUFBRSxpQkFBaUI7d0JBQ3hCLGVBQWUsRUFBRSxpQ0FBaUM7d0JBQ2xELGlCQUFpQixFQUFFLG1DQUFtQztxQkFDekQ7d0RBSUcsV0FBVztzQkFEZCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFNekIsT0FBTztzQkFETixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN5bWJvbENvbXBvbmVudCwgU3ltYm9sUmVnaXN0cnksIGFwRXJyb3JGaWxsLCBhcFJvdW5kZWRDaGVja0ZpbGwgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1zeW1ib2wnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgTWVzc2FnZVR5cGUgPSAnZXJyb3InIHwgJ3N1Y2Nlc3MnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwLWZvcm0tbWVzc2FnZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tbWVzc2FnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9ybS1tZXNzYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGltcG9ydHM6IFtTeW1ib2xDb21wb25lbnRdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdhcC1mb3JtLW1lc3NhZ2UnLFxuICAgICAgICAnW2NsYXNzLmVycm9yXSc6IFwibWVzc2FnZVR5cGVTaWduYWwoKSA9PT0gJ2Vycm9yJ1wiLFxuICAgICAgICAnW2NsYXNzLnN1Y2Nlc3NdJzogXCJtZXNzYWdlVHlwZVNpZ25hbCgpID09PSAnc3VjY2VzcydcIixcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtTWVzc2FnZUNvbXBvbmVudCB7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBzZXQgbWVzc2FnZVR5cGUobWVzc2FnZVR5cGU6IE1lc3NhZ2VUeXBlKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVR5cGVTaWduYWwuc2V0KG1lc3NhZ2VUeXBlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIG1lc3NhZ2UhOiBzdHJpbmc7XG5cbiAgICBtZXNzYWdlVHlwZVNpZ25hbCA9IHNpZ25hbDxNZXNzYWdlVHlwZT4oJ2Vycm9yJyk7XG5cbiAgICBzeW1ib2xJZFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWVzc2FnZVR5cGVTaWduYWwoKSA9PT0gJ2Vycm9yJyA/ICdlcnJvcl9maWxsJyA6ICdyb3VuZGVkLWNoZWNrX2ZpbGwnO1xuICAgIH0pO1xuXG4gICAgcHJpdmF0ZSBzeW1ib2xSZWdpc3RyeSA9IGluamVjdChTeW1ib2xSZWdpc3RyeSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zeW1ib2xSZWdpc3RyeS5yZWdpc3RlclN5bWJvbHMoW2FwRXJyb3JGaWxsLCBhcFJvdW5kZWRDaGVja0ZpbGxdKTtcbiAgICB9XG59XG4iLCI8YXAtc3ltYm9sXG4gICAgc2l6ZT1cInNtXCJcbiAgICBbc3ltYm9sSWRdPVwic3ltYm9sSWRTaWduYWwoKVwiIC8+XG48c3Bhbj5cbiAgICB7eyBtZXNzYWdlIH19XG48L3NwYW4+XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './form-message.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9mb3JtLW1lc3NhZ2Uvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZm9ybS1tZXNzYWdlLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdvcmFwdWxzZS11aS1jb21wb25lbnRzLWljb24tYnV0dG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL2ljb24tYnV0dG9uL3NyYy9hZ29yYXB1bHNlLXVpLWNvbXBvbmVudHMtaWNvbi1idXR0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
|