@agorapulse/ui-components 15.1.31 → 16.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/add-comment/add-comment.component.d.ts +3 -3
- package/agorapulse-ui-components-16.0.0-rc.0.tgz +0 -0
- package/avatar/avatar.component.d.ts +1 -1
- package/button/button.component.d.ts +2 -2
- package/checkbox/checkbox.component.d.ts +4 -4
- package/confirm-modal/confirm-modal.component.d.ts +2 -2
- package/datepicker/datepicker.component.d.ts +7 -7
- package/directives/base-button.directive.d.ts +2 -2
- package/directives/default-image.directive.d.ts +1 -1
- package/directives/ellipsis.directive.d.ts +1 -1
- package/directives/equal-validator.directive.d.ts +1 -1
- package/directives/frozen-gif.directive.d.ts +2 -2
- package/directives/multi-style-text.directive.d.ts +2 -2
- package/directives/truncate-tooltip.directive.d.ts +1 -1
- package/dots-stepper/dots-stepper.component.d.ts +6 -6
- package/esm2022/add-comment/add-comment.component.mjs +68 -0
- package/esm2022/avatar/avatar.component.mjs +209 -0
- package/esm2022/button/button.component.mjs +109 -0
- package/esm2022/checkbox/checkbox.component.mjs +169 -0
- package/esm2022/confirm-modal/confirm-modal.component.mjs +61 -0
- package/esm2022/datepicker/datepicker.component.mjs +271 -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/truncate-tooltip.directive.mjs +43 -0
- package/esm2022/dots-stepper/dots-stepper.component.mjs +43 -0
- package/esm2022/icon-button/icon-button.component.mjs +118 -0
- package/esm2022/index.mjs +42 -0
- package/esm2022/infobox/infobox.component.mjs +65 -0
- package/esm2022/labels/label-list.component.mjs +106 -0
- package/esm2022/labels/label.component.mjs +64 -0
- package/esm2022/labels-selector/labels-selector.component.mjs +107 -0
- package/esm2022/media-display-overlay/media-display-overlay-dialog.component.mjs +94 -0
- package/esm2022/modal/modal.component.mjs +119 -0
- package/{esm2020 → esm2022}/neo-datepicker/day-detail.model.mjs +1 -1
- package/esm2022/neo-datepicker/day-disabled.pipe.mjs +21 -0
- package/esm2022/neo-datepicker/neo-datepicker.component.mjs +243 -0
- package/esm2022/notification/notification.component.mjs +15 -0
- package/esm2022/paginator/paginator-button/paginator-button.component.mjs +51 -0
- package/esm2022/paginator/paginator.component.mjs +126 -0
- package/esm2022/password-input/password-input.component.mjs +77 -0
- package/esm2022/popmenu/options.mjs +17 -0
- package/esm2022/popmenu/popmenu-options.interface.mjs +2 -0
- package/esm2022/popmenu/popmenu-options.service.mjs +7 -0
- package/esm2022/popmenu/popmenu.component.mjs +384 -0
- package/esm2022/popmenu/popmenu.directive.mjs +292 -0
- package/esm2022/popmenu/popmenu.module.mjs +29 -0
- package/esm2022/radio/radio-control.registry.mjs +102 -0
- package/esm2022/radio/radio.component.mjs +218 -0
- package/esm2022/slide-toggle/slide-toggle.component.mjs +63 -0
- package/esm2022/snackbar/snackbar.component.mjs +27 -0
- package/esm2022/snackbars-thread/component/snackbars-thread.component.mjs +75 -0
- package/esm2022/snackbars-thread/model/snackbars-thread.model.mjs +54 -0
- package/{esm2020 → esm2022}/snackbars-thread/public_api.mjs +2 -2
- package/esm2022/snackbars-thread/service/snackbars-thread.service.mjs +45 -0
- package/esm2022/snackbars-thread/utils/const/snackbars-thread.const.mjs +13 -0
- package/esm2022/social-button/social-button.component.mjs +143 -0
- package/esm2022/split-button/split-button.component.mjs +126 -0
- package/esm2022/src/lib/agorapulse-ui-components.module.mjs +213 -0
- package/esm2022/stepper/stepper.component.mjs +38 -0
- package/esm2022/text-measurement/text-measurement.service.mjs +29 -0
- package/esm2022/toggle/toggle.component.mjs +203 -0
- package/esm2022/tooltip/tooltip.directive.mjs +397 -0
- package/esm2022/tooltip/tooltip.service.mjs +29 -0
- package/fesm2022/agorapulse-ui-components-add-comment.mjs +75 -0
- package/fesm2022/agorapulse-ui-components-add-comment.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-avatar.mjs +216 -0
- package/fesm2022/agorapulse-ui-components-avatar.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-button.mjs +116 -0
- package/fesm2022/agorapulse-ui-components-button.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-checkbox.mjs +176 -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-datepicker.mjs +278 -0
- package/fesm2022/agorapulse-ui-components-datepicker.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/agorapulse-ui-components-directives.mjs +104 -72
- package/fesm2022/agorapulse-ui-components-directives.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-dots-stepper.mjs +50 -0
- package/fesm2022/agorapulse-ui-components-dots-stepper.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-icon-button.mjs +125 -0
- package/fesm2022/agorapulse-ui-components-icon-button.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-infobox.mjs +69 -0
- package/fesm2022/agorapulse-ui-components-infobox.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-labels-selector.mjs +114 -0
- package/fesm2022/agorapulse-ui-components-labels-selector.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-labels.mjs +173 -0
- package/fesm2022/agorapulse-ui-components-labels.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs +101 -0
- package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-modal.mjs +126 -0
- package/fesm2022/agorapulse-ui-components-modal.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs +268 -0
- package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-notification.mjs +22 -0
- package/fesm2022/agorapulse-ui-components-notification.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-paginator.mjs +181 -0
- package/fesm2022/agorapulse-ui-components-paginator.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-password-input.mjs +84 -0
- package/fesm2022/agorapulse-ui-components-password-input.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/agorapulse-ui-components-popmenu.mjs +112 -83
- package/fesm2022/agorapulse-ui-components-popmenu.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-radio.mjs +322 -0
- package/fesm2022/agorapulse-ui-components-radio.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-slide-toggle.mjs +70 -0
- package/fesm2022/agorapulse-ui-components-slide-toggle.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-snackbar.mjs +34 -0
- package/fesm2022/agorapulse-ui-components-snackbar.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs +190 -0
- package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-social-button.mjs +150 -0
- package/fesm2022/agorapulse-ui-components-social-button.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-split-button.mjs +133 -0
- package/fesm2022/agorapulse-ui-components-split-button.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-stepper.mjs +45 -0
- package/fesm2022/agorapulse-ui-components-stepper.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/agorapulse-ui-components-text-measurement.mjs +8 -7
- package/fesm2022/agorapulse-ui-components-text-measurement.mjs.map +1 -0
- package/fesm2022/agorapulse-ui-components-toggle.mjs +210 -0
- package/fesm2022/agorapulse-ui-components-toggle.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/agorapulse-ui-components-tooltip.mjs +114 -75
- package/fesm2022/agorapulse-ui-components-tooltip.mjs.map +1 -0
- package/{fesm2015 → fesm2022}/agorapulse-ui-components.mjs +100 -103
- package/fesm2022/agorapulse-ui-components.mjs.map +1 -0
- package/icon-button/icon-button.component.d.ts +3 -3
- package/infobox/infobox.component.d.ts +3 -3
- package/labels/label-list.component.d.ts +2 -2
- package/labels/label.component.d.ts +3 -3
- package/labels-selector/labels-selector.component.d.ts +2 -2
- package/media-display-overlay/media-display-overlay-dialog.component.d.ts +1 -1
- package/modal/modal.component.d.ts +12 -12
- package/neo-datepicker/day-detail.model.d.ts +2 -2
- package/neo-datepicker/day-disabled.pipe.d.ts +1 -1
- package/neo-datepicker/neo-datepicker.component.d.ts +10 -7
- package/notification/notification.component.d.ts +1 -1
- package/package.json +107 -172
- package/paginator/paginator-button/paginator-button.component.d.ts +1 -1
- package/paginator/paginator.component.d.ts +1 -1
- package/password-input/password-input.component.d.ts +4 -4
- package/popmenu/popmenu-options.interface.d.ts +24 -19
- package/popmenu/popmenu.component.d.ts +10 -10
- package/popmenu/popmenu.directive.d.ts +23 -23
- package/radio/radio-control.registry.d.ts +2 -2
- package/radio/radio.component.d.ts +2 -2
- package/slide-toggle/slide-toggle.component.d.ts +1 -1
- package/snackbar/snackbar.component.d.ts +1 -1
- package/snackbars-thread/component/snackbars-thread.component.d.ts +2 -2
- package/snackbars-thread/model/snackbars-thread.model.d.ts +1 -1
- package/snackbars-thread/public_api.d.ts +1 -1
- package/snackbars-thread/service/snackbars-thread.service.d.ts +4 -4
- package/social-button/social-button.component.d.ts +3 -3
- package/split-button/split-button.component.d.ts +3 -3
- package/stepper/stepper.component.d.ts +2 -2
- package/toggle/toggle.component.d.ts +3 -3
- package/tooltip/tooltip.directive.d.ts +5 -5
- package/agorapulse-ui-components-15.1.31.tgz +0 -0
- package/esm2020/add-comment/add-comment.component.mjs +0 -69
- package/esm2020/avatar/avatar.component.mjs +0 -211
- package/esm2020/button/button.component.mjs +0 -104
- package/esm2020/checkbox/checkbox.component.mjs +0 -163
- package/esm2020/confirm-modal/confirm-modal.component.mjs +0 -60
- package/esm2020/datepicker/datepicker.component.mjs +0 -259
- package/esm2020/directives/autosize-textarea.directive.mjs +0 -44
- package/esm2020/directives/base-button.directive.mjs +0 -47
- package/esm2020/directives/default-image.directive.mjs +0 -32
- package/esm2020/directives/ellipsis.directive.mjs +0 -86
- package/esm2020/directives/equal-validator.directive.mjs +0 -66
- package/esm2020/directives/frozen-gif.directive.mjs +0 -116
- package/esm2020/directives/multi-style-text.directive.mjs +0 -58
- package/esm2020/directives/truncate-tooltip.directive.mjs +0 -40
- package/esm2020/dots-stepper/dots-stepper.component.mjs +0 -43
- package/esm2020/icon-button/icon-button.component.mjs +0 -112
- package/esm2020/index.mjs +0 -42
- package/esm2020/infobox/infobox.component.mjs +0 -67
- package/esm2020/labels/label-list.component.mjs +0 -101
- package/esm2020/labels/label.component.mjs +0 -58
- package/esm2020/labels-selector/labels-selector.component.mjs +0 -101
- package/esm2020/media-display-overlay/media-display-overlay-dialog.component.mjs +0 -94
- package/esm2020/modal/modal.component.mjs +0 -109
- package/esm2020/neo-datepicker/day-disabled.pipe.mjs +0 -21
- package/esm2020/neo-datepicker/neo-datepicker.component.mjs +0 -228
- package/esm2020/notification/notification.component.mjs +0 -17
- package/esm2020/paginator/paginator-button/paginator-button.component.mjs +0 -51
- package/esm2020/paginator/paginator.component.mjs +0 -124
- package/esm2020/password-input/password-input.component.mjs +0 -75
- package/esm2020/popmenu/options.mjs +0 -17
- package/esm2020/popmenu/popmenu-options.interface.mjs +0 -2
- package/esm2020/popmenu/popmenu-options.service.mjs +0 -7
- package/esm2020/popmenu/popmenu.component.mjs +0 -373
- package/esm2020/popmenu/popmenu.directive.mjs +0 -268
- package/esm2020/popmenu/popmenu.module.mjs +0 -35
- package/esm2020/radio/radio-control.registry.mjs +0 -104
- package/esm2020/radio/radio.component.mjs +0 -199
- package/esm2020/slide-toggle/slide-toggle.component.mjs +0 -65
- package/esm2020/snackbar/snackbar.component.mjs +0 -26
- package/esm2020/snackbars-thread/component/snackbars-thread.component.mjs +0 -79
- package/esm2020/snackbars-thread/model/snackbars-thread.model.mjs +0 -52
- package/esm2020/snackbars-thread/service/snackbars-thread.service.mjs +0 -41
- package/esm2020/snackbars-thread/utils/const/snackbars-thread.const.mjs +0 -13
- package/esm2020/social-button/social-button.component.mjs +0 -137
- package/esm2020/split-button/split-button.component.mjs +0 -112
- package/esm2020/src/lib/agorapulse-ui-components.module.mjs +0 -213
- package/esm2020/stepper/stepper.component.mjs +0 -36
- package/esm2020/text-measurement/text-measurement.service.mjs +0 -28
- package/esm2020/toggle/toggle.component.mjs +0 -190
- package/esm2020/tooltip/tooltip.directive.mjs +0 -358
- package/esm2020/tooltip/tooltip.service.mjs +0 -29
- package/fesm2015/agorapulse-ui-components-add-comment.mjs +0 -76
- package/fesm2015/agorapulse-ui-components-add-comment.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-avatar.mjs +0 -218
- package/fesm2015/agorapulse-ui-components-avatar.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-button.mjs +0 -111
- package/fesm2015/agorapulse-ui-components-button.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-checkbox.mjs +0 -170
- package/fesm2015/agorapulse-ui-components-checkbox.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-confirm-modal.mjs +0 -67
- package/fesm2015/agorapulse-ui-components-confirm-modal.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-datepicker.mjs +0 -269
- package/fesm2015/agorapulse-ui-components-datepicker.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-directives.mjs +0 -483
- package/fesm2015/agorapulse-ui-components-directives.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-dots-stepper.mjs +0 -50
- package/fesm2015/agorapulse-ui-components-dots-stepper.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-icon-button.mjs +0 -119
- package/fesm2015/agorapulse-ui-components-icon-button.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-infobox.mjs +0 -71
- package/fesm2015/agorapulse-ui-components-infobox.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-labels-selector.mjs +0 -109
- package/fesm2015/agorapulse-ui-components-labels-selector.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-labels.mjs +0 -162
- package/fesm2015/agorapulse-ui-components-labels.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-media-display-overlay.mjs +0 -103
- package/fesm2015/agorapulse-ui-components-media-display-overlay.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-modal.mjs +0 -116
- package/fesm2015/agorapulse-ui-components-modal.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-neo-datepicker.mjs +0 -253
- package/fesm2015/agorapulse-ui-components-neo-datepicker.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-notification.mjs +0 -24
- package/fesm2015/agorapulse-ui-components-notification.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-paginator.mjs +0 -179
- package/fesm2015/agorapulse-ui-components-paginator.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-password-input.mjs +0 -82
- package/fesm2015/agorapulse-ui-components-password-input.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-popmenu.mjs +0 -698
- package/fesm2015/agorapulse-ui-components-popmenu.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-radio.mjs +0 -306
- package/fesm2015/agorapulse-ui-components-radio.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-slide-toggle.mjs +0 -72
- package/fesm2015/agorapulse-ui-components-slide-toggle.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-snackbar.mjs +0 -35
- package/fesm2015/agorapulse-ui-components-snackbar.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-snackbars-thread.mjs +0 -188
- package/fesm2015/agorapulse-ui-components-snackbars-thread.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-social-button.mjs +0 -144
- package/fesm2015/agorapulse-ui-components-social-button.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-split-button.mjs +0 -119
- package/fesm2015/agorapulse-ui-components-split-button.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-stepper.mjs +0 -44
- package/fesm2015/agorapulse-ui-components-stepper.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-text-measurement.mjs +0 -35
- package/fesm2015/agorapulse-ui-components-text-measurement.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-toggle.mjs +0 -197
- package/fesm2015/agorapulse-ui-components-toggle.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components-tooltip.mjs +0 -391
- package/fesm2015/agorapulse-ui-components-tooltip.mjs.map +0 -1
- package/fesm2015/agorapulse-ui-components.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-add-comment.mjs +0 -76
- package/fesm2020/agorapulse-ui-components-add-comment.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-avatar.mjs +0 -218
- package/fesm2020/agorapulse-ui-components-avatar.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-button.mjs +0 -111
- package/fesm2020/agorapulse-ui-components-button.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-checkbox.mjs +0 -170
- package/fesm2020/agorapulse-ui-components-checkbox.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-confirm-modal.mjs +0 -67
- package/fesm2020/agorapulse-ui-components-confirm-modal.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-datepicker.mjs +0 -266
- package/fesm2020/agorapulse-ui-components-datepicker.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-directives.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-dots-stepper.mjs +0 -50
- package/fesm2020/agorapulse-ui-components-dots-stepper.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-icon-button.mjs +0 -119
- package/fesm2020/agorapulse-ui-components-icon-button.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-infobox.mjs +0 -71
- package/fesm2020/agorapulse-ui-components-infobox.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-labels-selector.mjs +0 -108
- package/fesm2020/agorapulse-ui-components-labels-selector.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-labels.mjs +0 -162
- package/fesm2020/agorapulse-ui-components-labels.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-media-display-overlay.mjs +0 -101
- package/fesm2020/agorapulse-ui-components-media-display-overlay.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-modal.mjs +0 -116
- package/fesm2020/agorapulse-ui-components-modal.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-neo-datepicker.mjs +0 -253
- package/fesm2020/agorapulse-ui-components-neo-datepicker.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-notification.mjs +0 -24
- package/fesm2020/agorapulse-ui-components-notification.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-paginator.mjs +0 -179
- package/fesm2020/agorapulse-ui-components-paginator.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-password-input.mjs +0 -82
- package/fesm2020/agorapulse-ui-components-password-input.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-popmenu.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-radio.mjs +0 -305
- package/fesm2020/agorapulse-ui-components-radio.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-slide-toggle.mjs +0 -72
- package/fesm2020/agorapulse-ui-components-slide-toggle.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-snackbar.mjs +0 -33
- package/fesm2020/agorapulse-ui-components-snackbar.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-snackbars-thread.mjs +0 -188
- package/fesm2020/agorapulse-ui-components-snackbars-thread.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-social-button.mjs +0 -144
- package/fesm2020/agorapulse-ui-components-social-button.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-split-button.mjs +0 -119
- package/fesm2020/agorapulse-ui-components-split-button.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-stepper.mjs +0 -43
- package/fesm2020/agorapulse-ui-components-stepper.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-text-measurement.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-toggle.mjs +0 -197
- package/fesm2020/agorapulse-ui-components-toggle.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components-tooltip.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-components.mjs +0 -252
- package/fesm2020/agorapulse-ui-components.mjs.map +0 -1
- /package/{esm2020 → esm2022}/add-comment/agorapulse-ui-components-add-comment.mjs +0 -0
- /package/{esm2020 → esm2022}/add-comment/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/agorapulse-ui-components.mjs +0 -0
- /package/{esm2020 → esm2022}/avatar/agorapulse-ui-components-avatar.mjs +0 -0
- /package/{esm2020 → esm2022}/avatar/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/button/agorapulse-ui-components-button.mjs +0 -0
- /package/{esm2020 → esm2022}/button/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/checkbox/agorapulse-ui-components-checkbox.mjs +0 -0
- /package/{esm2020 → esm2022}/checkbox/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/confirm-modal/agorapulse-ui-components-confirm-modal.mjs +0 -0
- /package/{esm2020 → esm2022}/confirm-modal/confirm-modal-texts.model.mjs +0 -0
- /package/{esm2020 → esm2022}/confirm-modal/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/datepicker/agorapulse-ui-components-datepicker.mjs +0 -0
- /package/{esm2020 → esm2022}/datepicker/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/directives/agorapulse-ui-components-directives.mjs +0 -0
- /package/{esm2020 → esm2022}/directives/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/dots-stepper/agorapulse-ui-components-dots-stepper.mjs +0 -0
- /package/{esm2020 → esm2022}/dots-stepper/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/icon-button/agorapulse-ui-components-icon-button.mjs +0 -0
- /package/{esm2020 → esm2022}/icon-button/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/infobox/agorapulse-ui-components-infobox.mjs +0 -0
- /package/{esm2020 → esm2022}/infobox/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/labels/agorapulse-ui-components-labels.mjs +0 -0
- /package/{esm2020 → esm2022}/labels/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/labels-selector/agorapulse-ui-components-labels-selector.mjs +0 -0
- /package/{esm2020 → esm2022}/labels-selector/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/media-display-overlay/agorapulse-ui-components-media-display-overlay.mjs +0 -0
- /package/{esm2020 → esm2022}/media-display-overlay/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/modal/agorapulse-ui-components-modal.mjs +0 -0
- /package/{esm2020 → esm2022}/modal/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/neo-datepicker/agorapulse-ui-components-neo-datepicker.mjs +0 -0
- /package/{esm2020 → esm2022}/neo-datepicker/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/notification/agorapulse-ui-components-notification.mjs +0 -0
- /package/{esm2020 → esm2022}/notification/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/paginator/agorapulse-ui-components-paginator.mjs +0 -0
- /package/{esm2020 → esm2022}/paginator/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/password-input/agorapulse-ui-components-password-input.mjs +0 -0
- /package/{esm2020 → esm2022}/password-input/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/popmenu/agorapulse-ui-components-popmenu.mjs +0 -0
- /package/{esm2020 → esm2022}/popmenu/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/radio/agorapulse-ui-components-radio.mjs +0 -0
- /package/{esm2020 → esm2022}/radio/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/slide-toggle/agorapulse-ui-components-slide-toggle.mjs +0 -0
- /package/{esm2020 → esm2022}/slide-toggle/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/snackbar/agorapulse-ui-components-snackbar.mjs +0 -0
- /package/{esm2020 → esm2022}/snackbar/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/snackbars-thread/agorapulse-ui-components-snackbars-thread.mjs +0 -0
- /package/{esm2020 → esm2022}/social-button/agorapulse-ui-components-social-button.mjs +0 -0
- /package/{esm2020 → esm2022}/social-button/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/split-button/agorapulse-ui-components-split-button.mjs +0 -0
- /package/{esm2020 → esm2022}/split-button/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/stepper/agorapulse-ui-components-stepper.mjs +0 -0
- /package/{esm2020 → esm2022}/stepper/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/stepper/step.model.mjs +0 -0
- /package/{esm2020 → esm2022}/text-measurement/agorapulse-ui-components-text-measurement.mjs +0 -0
- /package/{esm2020 → esm2022}/text-measurement/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/toggle/agorapulse-ui-components-toggle.mjs +0 -0
- /package/{esm2020 → esm2022}/toggle/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/tooltip/agorapulse-ui-components-tooltip.mjs +0 -0
- /package/{esm2020 → esm2022}/tooltip/public_api.mjs +0 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { LoaderComponent } from '@agorapulse/ui-animations';
|
|
2
|
+
import * as i1 from '@agorapulse/ui-symbol';
|
|
3
|
+
import { apPremiumStar, SymbolComponent } from '@agorapulse/ui-symbol';
|
|
4
|
+
import { NgIf, CommonModule } from '@angular/common';
|
|
5
|
+
import * as i0 from '@angular/core';
|
|
6
|
+
import { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ContentChild, ViewChild, HostListener } from '@angular/core';
|
|
7
|
+
import * as i2 from '@angular/material/menu';
|
|
8
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
9
|
+
|
|
10
|
+
class IconButtonComponent {
|
|
11
|
+
symbolRegistry;
|
|
12
|
+
elementRef;
|
|
13
|
+
ariaLabel = '';
|
|
14
|
+
name = '';
|
|
15
|
+
color = 'none';
|
|
16
|
+
disabled = false;
|
|
17
|
+
menuTrigger = null;
|
|
18
|
+
set locked(locked) {
|
|
19
|
+
this._locked = locked;
|
|
20
|
+
if (locked) {
|
|
21
|
+
this.color = 'none';
|
|
22
|
+
this.disabled = false;
|
|
23
|
+
this.loading = false;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
get locked() {
|
|
27
|
+
return this._locked;
|
|
28
|
+
}
|
|
29
|
+
set loading(loading) {
|
|
30
|
+
if (!this.locked) {
|
|
31
|
+
this._loading = loading;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
get loading() {
|
|
35
|
+
return this._loading;
|
|
36
|
+
}
|
|
37
|
+
type = 'flat';
|
|
38
|
+
// eslint-disable-next-line
|
|
39
|
+
onClick = new EventEmitter();
|
|
40
|
+
// eslint-disable-next-line
|
|
41
|
+
onFocus = new EventEmitter();
|
|
42
|
+
// eslint-disable-next-line
|
|
43
|
+
onBlur = new EventEmitter();
|
|
44
|
+
menuOpened = new EventEmitter();
|
|
45
|
+
menuClosed = new EventEmitter();
|
|
46
|
+
symbolComponent;
|
|
47
|
+
buttonElement;
|
|
48
|
+
_loading = false;
|
|
49
|
+
_locked = false;
|
|
50
|
+
hostDataTest = undefined;
|
|
51
|
+
focused = false;
|
|
52
|
+
constructor(symbolRegistry, elementRef) {
|
|
53
|
+
this.symbolRegistry = symbolRegistry;
|
|
54
|
+
this.elementRef = elementRef;
|
|
55
|
+
this.symbolRegistry.registerSymbols([apPremiumStar]);
|
|
56
|
+
this.hostDataTest = this.elementRef.nativeElement.getAttribute('data-test');
|
|
57
|
+
}
|
|
58
|
+
onClickHandle($event) {
|
|
59
|
+
this.buttonElement.nativeElement.blur();
|
|
60
|
+
this.onClick.emit($event);
|
|
61
|
+
this.onFocus.emit($event);
|
|
62
|
+
}
|
|
63
|
+
onBlurHandle($event) {
|
|
64
|
+
this.focused = false;
|
|
65
|
+
this.onBlur.emit($event);
|
|
66
|
+
}
|
|
67
|
+
onFocusHandle($event) {
|
|
68
|
+
this.focused = true;
|
|
69
|
+
this.onFocus.emit($event);
|
|
70
|
+
}
|
|
71
|
+
onSpaceKeyUp(event) {
|
|
72
|
+
if (this.focused) {
|
|
73
|
+
event.preventDefault();
|
|
74
|
+
this.buttonElement.nativeElement.click();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: IconButtonComponent, deps: [{ token: i1.SymbolRegistry }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
78
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.10", type: IconButtonComponent, isStandalone: true, selector: "ap-icon-button", inputs: { ariaLabel: "ariaLabel", name: "name", color: "color", disabled: "disabled", menuTrigger: "menuTrigger", locked: "locked", loading: "loading", type: "type" }, outputs: { onClick: "onClick", onFocus: "onFocus", onBlur: "onBlur", menuOpened: "menuOpened", menuClosed: "menuClosed" }, host: { listeners: { "window:keyup.space": "onSpaceKeyUp($event)" } }, queries: [{ propertyName: "symbolComponent", first: true, predicate: SymbolComponent, descendants: true }], viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true }], ngImport: i0, template: "<button\n #button\n #trigger=\"matMenuTrigger\"\n class=\"icon-button\"\n type=\"button\"\n [name]=\"name\"\n [matMenuTriggerFor]=\"menuTrigger\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.data-test]=\"hostDataTest ?? name\"\n [disabled]=\"disabled\"\n [class.blue]=\"color === 'blue'\"\n [class.green]=\"color === 'green'\"\n [class.red]=\"color === 'red'\"\n [class.flat]=\"type === 'flat'\"\n [class.stroked]=\"type === 'stroked' || type === 'stroked-transparent'\"\n [class.transparent]=\"type === 'stroked-transparent'\"\n [class.loading]=\"loading\"\n [class.locked]=\"locked\"\n (click)=\"onClickHandle($event)\"\n (blur)=\"onBlurHandle($event)\"\n (focus)=\"onFocusHandle($event)\"\n (menuOpened)=\"menuOpened.emit()\"\n (menuClosed)=\"menuClosed.emit()\">\n <ng-content *ngIf=\"!loading\"></ng-content>\n <ap-loader\n *ngIf=\"loading\"\n color=\"white\"\n [diameter]=\"16\" />\n <div\n *ngIf=\"locked\"\n class=\"locked-symbol\">\n <ap-symbol\n symbolId=\"premium-star\"\n size=\"micro\" />\n </div>\n</button>\n", styles: ["ap-icon-button{display:flex;width:var(--comp-icon-button-width);max-width:var(--comp-icon-button-width);height:var(--comp-icon-button-height);max-height:var(--comp-icon-button-height)}ap-icon-button button.icon-button{margin:0;display:flex;justify-content:center;align-items:center;width:var(--comp-icon-button-width);max-width:var(--comp-icon-button-width);height:var(--comp-icon-button-height);max-height:var(--comp-icon-button-height);border-radius:var(--comp-icon-button-border-radius);background:transparent;border:none;position:relative;transition:border .25s;padding:var(--comp-icon-button-padding)}@media (hover: hover){ap-icon-button button.icon-button:focus:not(.disabled):not(:active){outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px}}ap-icon-button button.icon-button:hover{cursor:pointer}ap-icon-button button.icon-button:hover:not(.stroked):not(.locked){background:var(--ref-color-grey-05)}ap-icon-button button.icon-button:active:not(.stroked):not(.locked){background:var(--ref-color-grey-10)}ap-icon-button button.icon-button ap-symbol{display:inline-flex;justify-content:center;align-items:center;width:100%;height:100%;padding:0;margin:0;color:var(--ref-color-grey-60);min-width:calc(var(--comp-icon-button-height) - var(--comp-icon-button-padding) * 2);min-height:calc(var(--comp-icon-button-height) - var(--comp-icon-button-padding) * 2)}ap-icon-button button.icon-button ap-symbol .svg{display:inline-flex!important;justify-content:center;align-items:center}ap-icon-button button.icon-button ap-symbol .svg svg{height:100%;width:100%}ap-icon-button button.icon-button:disabled{cursor:default;pointer-events:none}ap-icon-button button.icon-button:disabled ap-symbol{color:var(--ref-color-grey-20)}ap-icon-button button.icon-button.blue:hover{cursor:pointer}ap-icon-button button.icon-button.blue:hover:not(.stroked){background:var(--ref-color-electric-blue-05)}ap-icon-button button.icon-button.blue:active:not(.stroked){background:var(--ref-color-electric-blue-10)}ap-icon-button button.icon-button.blue:disabled{cursor:default;pointer-events:none}ap-icon-button button.icon-button.blue:disabled ap-symbol{color:var(--ref-color-electric-blue-20)}ap-icon-button button.icon-button.blue ap-symbol{color:var(--ref-color-electric-blue-100)}ap-icon-button button.icon-button.green:hover{cursor:pointer}ap-icon-button button.icon-button.green:hover:not(.stroked){background:var(--ref-color-green-10)}ap-icon-button button.icon-button.green:active:not(.stroked){background:var(--ref-color-green-20)}ap-icon-button button.icon-button.green:disabled{cursor:default;pointer-events:none}ap-icon-button button.icon-button.green:disabled ap-symbol{color:var(--ref-color-green-20)}ap-icon-button button.icon-button.green ap-symbol{color:var(--ref-color-green-100)}ap-icon-button button.icon-button.red:hover{cursor:pointer}ap-icon-button button.icon-button.red:hover:not(.stroked){background:var(--ref-color-red-10)}ap-icon-button button.icon-button.red:active:not(.stroked){background:var(--ref-color-red-20)}ap-icon-button button.icon-button.red:disabled{cursor:default;pointer-events:none}ap-icon-button button.icon-button.red:disabled ap-symbol{color:var(--ref-color-red-20)}ap-icon-button button.icon-button.red ap-symbol{color:var(--ref-color-red-100)}ap-icon-button button.icon-button.stroked{border-width:1px;border-style:solid;background:white}ap-icon-button button.icon-button.stroked:not(.loading):not(.locked){border-color:var(--ref-color-grey-20)}ap-icon-button button.icon-button.stroked:hover:not(.locked){border-color:var(--ref-color-grey-40)}ap-icon-button button.icon-button.stroked:active:not(.locked){border-color:var(--ref-color-grey-60)}ap-icon-button button.icon-button.stroked.blue:not(.loading):not(.locked){border-color:var(--ref-color-electric-blue-100)}ap-icon-button button.icon-button.stroked.blue:not(.loading):not(.locked):hover:not(.locked){border-color:var(--ref-color-electric-blue-60)}ap-icon-button button.icon-button.stroked.blue:not(.loading):not(.locked):disabled{border-color:var(--ref-color-electric-blue-20)}ap-icon-button button.icon-button.stroked.blue:not(.loading):not(.locked):active:not(.locked){border-color:var(--ref-color-electric-blue-100)}ap-icon-button button.icon-button.stroked.green:not(.loading):not(.locked){border-color:var(--ref-color-green-100)}ap-icon-button button.icon-button.stroked.green:not(.loading):not(.locked):hover:not(.locked){border-color:var(--ref-color-green-60)}ap-icon-button button.icon-button.stroked.green:not(.loading):not(.locked):disabled{border-color:var(--ref-color-green-20)}ap-icon-button button.icon-button.stroked.green:not(.loading):not(.locked):active:not(.locked){border-color:var(--ref-color-green-100)}ap-icon-button button.icon-button.stroked.red:not(.loading):not(.locked){border-color:var(--ref-color-red-100)}ap-icon-button button.icon-button.stroked.red:not(.loading):not(.locked):hover:not(.locked){border-color:var(--ref-color-red-60)}ap-icon-button button.icon-button.stroked.red:not(.loading):not(.locked):disabled{border-color:var(--ref-color-red-20)}ap-icon-button button.icon-button.stroked.red:not(.loading):not(.locked):active:not(.locked){border-color:var(--ref-color-red-100)}ap-icon-button button.icon-button.stroked.transparent:not(.loading):not(.locked){background:transparent}ap-icon-button button.icon-button.loading{background:var(--ref-color-grey-20);border:none;pointer-events:none}ap-icon-button button.icon-button.locked{background:var(--ref-color-purple-10);color:var(--ref-color-purple-80);border:1px solid var(--ref-color-purple-20)}ap-icon-button button.icon-button.locked:hover{border-color:var(--ref-color-purple-40)}ap-icon-button button.icon-button.locked:active{border-color:var(--ref-color-purple-60)}ap-icon-button button.icon-button.locked ap-symbol{color:var(--ref-color-purple-100)}ap-icon-button button.icon-button.locked .locked-symbol{position:absolute;top:-6px;right:-6px}ap-icon-button button.icon-button.locked .locked-symbol ap-symbol{border-radius:100%;background:var(--ref-color-white)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["color", "symbolId", "size"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: LoaderComponent, selector: "ap-loader", inputs: ["color", "diameter"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
79
|
+
}
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: IconButtonComponent, decorators: [{
|
|
81
|
+
type: Component,
|
|
82
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-icon-button', standalone: true, imports: [NgIf, SymbolComponent, CommonModule, LoaderComponent, MatMenuModule], encapsulation: ViewEncapsulation.None, template: "<button\n #button\n #trigger=\"matMenuTrigger\"\n class=\"icon-button\"\n type=\"button\"\n [name]=\"name\"\n [matMenuTriggerFor]=\"menuTrigger\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.data-test]=\"hostDataTest ?? name\"\n [disabled]=\"disabled\"\n [class.blue]=\"color === 'blue'\"\n [class.green]=\"color === 'green'\"\n [class.red]=\"color === 'red'\"\n [class.flat]=\"type === 'flat'\"\n [class.stroked]=\"type === 'stroked' || type === 'stroked-transparent'\"\n [class.transparent]=\"type === 'stroked-transparent'\"\n [class.loading]=\"loading\"\n [class.locked]=\"locked\"\n (click)=\"onClickHandle($event)\"\n (blur)=\"onBlurHandle($event)\"\n (focus)=\"onFocusHandle($event)\"\n (menuOpened)=\"menuOpened.emit()\"\n (menuClosed)=\"menuClosed.emit()\">\n <ng-content *ngIf=\"!loading\"></ng-content>\n <ap-loader\n *ngIf=\"loading\"\n color=\"white\"\n [diameter]=\"16\" />\n <div\n *ngIf=\"locked\"\n class=\"locked-symbol\">\n <ap-symbol\n symbolId=\"premium-star\"\n size=\"micro\" />\n </div>\n</button>\n", styles: ["ap-icon-button{display:flex;width:var(--comp-icon-button-width);max-width:var(--comp-icon-button-width);height:var(--comp-icon-button-height);max-height:var(--comp-icon-button-height)}ap-icon-button button.icon-button{margin:0;display:flex;justify-content:center;align-items:center;width:var(--comp-icon-button-width);max-width:var(--comp-icon-button-width);height:var(--comp-icon-button-height);max-height:var(--comp-icon-button-height);border-radius:var(--comp-icon-button-border-radius);background:transparent;border:none;position:relative;transition:border .25s;padding:var(--comp-icon-button-padding)}@media (hover: hover){ap-icon-button button.icon-button:focus:not(.disabled):not(:active){outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px}}ap-icon-button button.icon-button:hover{cursor:pointer}ap-icon-button button.icon-button:hover:not(.stroked):not(.locked){background:var(--ref-color-grey-05)}ap-icon-button button.icon-button:active:not(.stroked):not(.locked){background:var(--ref-color-grey-10)}ap-icon-button button.icon-button ap-symbol{display:inline-flex;justify-content:center;align-items:center;width:100%;height:100%;padding:0;margin:0;color:var(--ref-color-grey-60);min-width:calc(var(--comp-icon-button-height) - var(--comp-icon-button-padding) * 2);min-height:calc(var(--comp-icon-button-height) - var(--comp-icon-button-padding) * 2)}ap-icon-button button.icon-button ap-symbol .svg{display:inline-flex!important;justify-content:center;align-items:center}ap-icon-button button.icon-button ap-symbol .svg svg{height:100%;width:100%}ap-icon-button button.icon-button:disabled{cursor:default;pointer-events:none}ap-icon-button button.icon-button:disabled ap-symbol{color:var(--ref-color-grey-20)}ap-icon-button button.icon-button.blue:hover{cursor:pointer}ap-icon-button button.icon-button.blue:hover:not(.stroked){background:var(--ref-color-electric-blue-05)}ap-icon-button button.icon-button.blue:active:not(.stroked){background:var(--ref-color-electric-blue-10)}ap-icon-button button.icon-button.blue:disabled{cursor:default;pointer-events:none}ap-icon-button button.icon-button.blue:disabled ap-symbol{color:var(--ref-color-electric-blue-20)}ap-icon-button button.icon-button.blue ap-symbol{color:var(--ref-color-electric-blue-100)}ap-icon-button button.icon-button.green:hover{cursor:pointer}ap-icon-button button.icon-button.green:hover:not(.stroked){background:var(--ref-color-green-10)}ap-icon-button button.icon-button.green:active:not(.stroked){background:var(--ref-color-green-20)}ap-icon-button button.icon-button.green:disabled{cursor:default;pointer-events:none}ap-icon-button button.icon-button.green:disabled ap-symbol{color:var(--ref-color-green-20)}ap-icon-button button.icon-button.green ap-symbol{color:var(--ref-color-green-100)}ap-icon-button button.icon-button.red:hover{cursor:pointer}ap-icon-button button.icon-button.red:hover:not(.stroked){background:var(--ref-color-red-10)}ap-icon-button button.icon-button.red:active:not(.stroked){background:var(--ref-color-red-20)}ap-icon-button button.icon-button.red:disabled{cursor:default;pointer-events:none}ap-icon-button button.icon-button.red:disabled ap-symbol{color:var(--ref-color-red-20)}ap-icon-button button.icon-button.red ap-symbol{color:var(--ref-color-red-100)}ap-icon-button button.icon-button.stroked{border-width:1px;border-style:solid;background:white}ap-icon-button button.icon-button.stroked:not(.loading):not(.locked){border-color:var(--ref-color-grey-20)}ap-icon-button button.icon-button.stroked:hover:not(.locked){border-color:var(--ref-color-grey-40)}ap-icon-button button.icon-button.stroked:active:not(.locked){border-color:var(--ref-color-grey-60)}ap-icon-button button.icon-button.stroked.blue:not(.loading):not(.locked){border-color:var(--ref-color-electric-blue-100)}ap-icon-button button.icon-button.stroked.blue:not(.loading):not(.locked):hover:not(.locked){border-color:var(--ref-color-electric-blue-60)}ap-icon-button button.icon-button.stroked.blue:not(.loading):not(.locked):disabled{border-color:var(--ref-color-electric-blue-20)}ap-icon-button button.icon-button.stroked.blue:not(.loading):not(.locked):active:not(.locked){border-color:var(--ref-color-electric-blue-100)}ap-icon-button button.icon-button.stroked.green:not(.loading):not(.locked){border-color:var(--ref-color-green-100)}ap-icon-button button.icon-button.stroked.green:not(.loading):not(.locked):hover:not(.locked){border-color:var(--ref-color-green-60)}ap-icon-button button.icon-button.stroked.green:not(.loading):not(.locked):disabled{border-color:var(--ref-color-green-20)}ap-icon-button button.icon-button.stroked.green:not(.loading):not(.locked):active:not(.locked){border-color:var(--ref-color-green-100)}ap-icon-button button.icon-button.stroked.red:not(.loading):not(.locked){border-color:var(--ref-color-red-100)}ap-icon-button button.icon-button.stroked.red:not(.loading):not(.locked):hover:not(.locked){border-color:var(--ref-color-red-60)}ap-icon-button button.icon-button.stroked.red:not(.loading):not(.locked):disabled{border-color:var(--ref-color-red-20)}ap-icon-button button.icon-button.stroked.red:not(.loading):not(.locked):active:not(.locked){border-color:var(--ref-color-red-100)}ap-icon-button button.icon-button.stroked.transparent:not(.loading):not(.locked){background:transparent}ap-icon-button button.icon-button.loading{background:var(--ref-color-grey-20);border:none;pointer-events:none}ap-icon-button button.icon-button.locked{background:var(--ref-color-purple-10);color:var(--ref-color-purple-80);border:1px solid var(--ref-color-purple-20)}ap-icon-button button.icon-button.locked:hover{border-color:var(--ref-color-purple-40)}ap-icon-button button.icon-button.locked:active{border-color:var(--ref-color-purple-60)}ap-icon-button button.icon-button.locked ap-symbol{color:var(--ref-color-purple-100)}ap-icon-button button.icon-button.locked .locked-symbol{position:absolute;top:-6px;right:-6px}ap-icon-button button.icon-button.locked .locked-symbol ap-symbol{border-radius:100%;background:var(--ref-color-white)}\n"] }]
|
|
83
|
+
}], ctorParameters: function () { return [{ type: i1.SymbolRegistry }, { type: i0.ElementRef }]; }, propDecorators: { ariaLabel: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], name: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], color: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], disabled: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], menuTrigger: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], locked: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], loading: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}], type: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], onClick: [{
|
|
100
|
+
type: Output
|
|
101
|
+
}], onFocus: [{
|
|
102
|
+
type: Output
|
|
103
|
+
}], onBlur: [{
|
|
104
|
+
type: Output
|
|
105
|
+
}], menuOpened: [{
|
|
106
|
+
type: Output
|
|
107
|
+
}], menuClosed: [{
|
|
108
|
+
type: Output
|
|
109
|
+
}], symbolComponent: [{
|
|
110
|
+
type: ContentChild,
|
|
111
|
+
args: [SymbolComponent]
|
|
112
|
+
}], buttonElement: [{
|
|
113
|
+
type: ViewChild,
|
|
114
|
+
args: ['button']
|
|
115
|
+
}], onSpaceKeyUp: [{
|
|
116
|
+
type: HostListener,
|
|
117
|
+
args: ['window:keyup.space', ['$event']]
|
|
118
|
+
}] } });
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Generated bundle index. Do not edit.
|
|
122
|
+
*/
|
|
123
|
+
|
|
124
|
+
export { IconButtonComponent };
|
|
125
|
+
//# sourceMappingURL=agorapulse-ui-components-icon-button.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-icon-button.mjs","sources":["../../../libs/ui-components/icon-button/src/icon-button.component.ts","../../../libs/ui-components/icon-button/src/icon-button.component.html","../../../libs/ui-components/icon-button/src/agorapulse-ui-components-icon-button.ts"],"sourcesContent":["import { LoaderComponent } from '@agorapulse/ui-animations';\nimport { apPremiumStar, SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport { CommonModule, NgIf } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MatMenuModule, MatMenuPanel } from '@angular/material/menu';\n\nexport type ButtonType = 'flat' | 'stroked-transparent' | 'stroked';\nexport type ButtonColor = 'none' | 'blue' | 'red' | 'green';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-icon-button',\n styleUrls: ['./icon-button.component.scss'],\n standalone: true,\n imports: [NgIf, SymbolComponent, CommonModule, LoaderComponent, MatMenuModule],\n templateUrl: './icon-button.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class IconButtonComponent {\n @Input() ariaLabel = '';\n @Input() name = '';\n @Input() color: ButtonColor = 'none';\n @Input() disabled: boolean = false;\n @Input() menuTrigger: MatMenuPanel | null = null;\n\n @Input() set locked(locked: boolean) {\n this._locked = locked;\n if (locked) {\n this.color = 'none';\n this.disabled = false;\n this.loading = false;\n }\n }\n\n get locked(): boolean {\n return this._locked;\n }\n\n @Input() set loading(loading: boolean) {\n if (!this.locked) {\n this._loading = loading;\n }\n }\n\n get loading(): boolean {\n return this._loading;\n }\n\n @Input() type: ButtonType = 'flat';\n\n // eslint-disable-next-line\n @Output() onClick: EventEmitter<MouseEvent> = new EventEmitter();\n\n // eslint-disable-next-line\n @Output() onFocus: EventEmitter<FocusEvent> = new EventEmitter();\n\n // eslint-disable-next-line\n @Output() onBlur: EventEmitter<FocusEvent> = new EventEmitter();\n @Output() menuOpened: EventEmitter<void> = new EventEmitter();\n @Output() menuClosed: EventEmitter<void> = new EventEmitter();\n\n @ContentChild(SymbolComponent) symbolComponent!: SymbolComponent;\n\n @ViewChild('button') buttonElement!: ElementRef<HTMLButtonElement>;\n\n private _loading: boolean = false;\n private _locked: boolean = false;\n hostDataTest: string | undefined = undefined;\n focused: boolean = false;\n\n constructor(private symbolRegistry: SymbolRegistry, private elementRef: ElementRef) {\n this.symbolRegistry.registerSymbols([apPremiumStar]);\n this.hostDataTest = this.elementRef.nativeElement.getAttribute('data-test');\n }\n\n onClickHandle($event: MouseEvent): void {\n this.buttonElement.nativeElement.blur();\n this.onClick.emit($event);\n this.onFocus.emit($event);\n }\n\n onBlurHandle($event: FocusEvent): void {\n this.focused = false;\n this.onBlur.emit($event);\n }\n\n onFocusHandle($event: FocusEvent): void {\n this.focused = true;\n this.onFocus.emit($event);\n }\n\n @HostListener('window:keyup.space', ['$event'])\n onSpaceKeyUp(event: KeyboardEvent) {\n if (this.focused) {\n event.preventDefault();\n this.buttonElement.nativeElement.click();\n }\n }\n}\n","<button\n #button\n #trigger=\"matMenuTrigger\"\n class=\"icon-button\"\n type=\"button\"\n [name]=\"name\"\n [matMenuTriggerFor]=\"menuTrigger\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.data-test]=\"hostDataTest ?? name\"\n [disabled]=\"disabled\"\n [class.blue]=\"color === 'blue'\"\n [class.green]=\"color === 'green'\"\n [class.red]=\"color === 'red'\"\n [class.flat]=\"type === 'flat'\"\n [class.stroked]=\"type === 'stroked' || type === 'stroked-transparent'\"\n [class.transparent]=\"type === 'stroked-transparent'\"\n [class.loading]=\"loading\"\n [class.locked]=\"locked\"\n (click)=\"onClickHandle($event)\"\n (blur)=\"onBlurHandle($event)\"\n (focus)=\"onFocusHandle($event)\"\n (menuOpened)=\"menuOpened.emit()\"\n (menuClosed)=\"menuClosed.emit()\">\n <ng-content *ngIf=\"!loading\"></ng-content>\n <ap-loader\n *ngIf=\"loading\"\n color=\"white\"\n [diameter]=\"16\" />\n <div\n *ngIf=\"locked\"\n class=\"locked-symbol\">\n <ap-symbol\n symbolId=\"premium-star\"\n size=\"micro\" />\n </div>\n</button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { ButtonComponent } from '@agorapulse/ui-components/button';
|
|
2
|
+
import { SymbolRegistry, apInformationCircle, apAlertCircle, apRemoveCircle, apCheckCircle, apClose, SymbolComponent } from '@agorapulse/ui-symbol';
|
|
3
|
+
import { NgIf, NgClass } from '@angular/common';
|
|
4
|
+
import * as i0 from '@angular/core';
|
|
5
|
+
import { inject, ElementRef, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, HostBinding, Input, Output } from '@angular/core';
|
|
6
|
+
|
|
7
|
+
class InfoboxComponent {
|
|
8
|
+
CONTAINER_WIDTH_BREAKPOINT = 588;
|
|
9
|
+
symbolRegistry = inject(SymbolRegistry);
|
|
10
|
+
elementRef = inject(ElementRef);
|
|
11
|
+
fullWidth = false;
|
|
12
|
+
buttonLabel = undefined;
|
|
13
|
+
closable = false;
|
|
14
|
+
title;
|
|
15
|
+
type = 'info';
|
|
16
|
+
set width(width) {
|
|
17
|
+
this._width = width;
|
|
18
|
+
this.fullWidth = width === 'full-width';
|
|
19
|
+
}
|
|
20
|
+
get width() {
|
|
21
|
+
return this._width;
|
|
22
|
+
}
|
|
23
|
+
_width = 'fit';
|
|
24
|
+
buttonClicked = new EventEmitter();
|
|
25
|
+
displayDirection = 'horizontal';
|
|
26
|
+
symbolIds = {
|
|
27
|
+
info: 'information-circle',
|
|
28
|
+
warning: 'alert-circle',
|
|
29
|
+
error: 'remove-circle',
|
|
30
|
+
success: 'check-circle',
|
|
31
|
+
};
|
|
32
|
+
constructor() {
|
|
33
|
+
this.symbolRegistry.registerSymbols([apInformationCircle, apAlertCircle, apRemoveCircle, apCheckCircle, apClose]);
|
|
34
|
+
}
|
|
35
|
+
onClickButton() {
|
|
36
|
+
this.buttonClicked.emit();
|
|
37
|
+
}
|
|
38
|
+
onCloseInfobox() {
|
|
39
|
+
this.elementRef.nativeElement.remove();
|
|
40
|
+
}
|
|
41
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: InfoboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.10", type: InfoboxComponent, isStandalone: true, selector: "ap-infobox", inputs: { buttonLabel: "buttonLabel", closable: "closable", title: "title", type: "type", width: "width" }, outputs: { buttonClicked: "buttonClicked" }, host: { properties: { "class.full-width": "this.fullWidth" } }, ngImport: i0, template: "<div\n class=\"main\"\n [class.info]=\"type === 'info'\"\n [class.warning]=\"type === 'warning'\"\n [class.error]=\"type === 'error'\"\n [class.success]=\"type === 'success'\"\n [class.has-title]=\"!!title\">\n <div class=\"status-banner\"></div>\n <div class=\"wrapper\">\n <div class=\"symbol-content\">\n <div class=\"symbol-wrapper\">\n <ap-symbol\n [symbolId]=\"symbolIds[type]\"\n class=\"status\"\n size=\"micro\" />\n </div>\n <div class=\"content\">\n <div class=\"texts\">\n <span\n *ngIf=\"title\"\n class=\"title\">\n {{ title }}\n </span>\n <span class=\"text\">\n <ng-content />\n </span>\n </div>\n <ng-container *ngIf=\"buttonLabel\">\n <ap-button\n name=\"infobox-button\"\n [config]=\"{\n style: 'stroked',\n color: 'grey'\n }\"\n (click)=\"onClickButton()\">\n {{ buttonLabel }}\n </ap-button>\n </ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"closable\">\n <button\n class=\"closable-button\"\n (click)=\"onCloseInfobox()\">\n <svg\n width=\"8\"\n height=\"8\"\n viewBox=\"0 0 8 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.3245 0.673336C7.16518 0.514565 6.94943 0.425415 6.7245 0.425415C6.49958 0.425415 6.28383 0.514565 6.12451 0.673336L4.00651 2.79134L1.88584 0.673336C1.72499 0.519607 1.51036 0.434955 1.28788 0.437501C1.0654 0.440048 0.852756 0.529591 0.695472 0.686962C0.538189 0.844333 0.448763 1.05702 0.44634 1.27951C0.443916 1.50199 0.528687 1.71658 0.682505 1.87734L2.79984 3.99534L0.682505 6.114C0.528687 6.27476 0.443916 6.48935 0.44634 6.71183C0.448763 6.93431 0.538189 7.147 0.695472 7.30438C0.852756 7.46175 1.0654 7.55129 1.28788 7.55384C1.51036 7.55638 1.72499 7.47173 1.88584 7.318L4.00317 5.2L6.12117 7.31867C6.28364 7.46307 6.4952 7.53986 6.71247 7.53329C6.92974 7.52671 7.13627 7.43728 7.28972 7.28332C7.44316 7.12936 7.53191 6.92254 7.53776 6.70525C7.5436 6.48796 7.46611 6.27666 7.32117 6.11467L5.20384 3.996L7.32117 1.878C7.48132 1.71867 7.57164 1.50226 7.57226 1.27636C7.57289 1.05045 7.48377 0.833548 7.3245 0.673336Z\"\n fill=\"currentColor\" />\n </svg>\n </button>\n </ng-container>\n </div>\n</div>\n", styles: ["ap-infobox{--comp-icon-size: 24px;container:infobox/inline-size;display:block;width:100%;max-width:100%}ap-infobox .main{display:flex;font-size:var(--ref-font-size-sm);line-height:var(--ref-font-line-height-sm);align-items:center;color:var(--ref-color-grey-100);padding:var(--comp-infobox-padding-top) var(--comp-infobox-padding-right) var(--comp-infobox-padding-bottom) var(--comp-infobox-padding-left);border-radius:var(--comp-infobox-border-radius);overflow:hidden;font-family:var(--comp-infobox-text-title-font-family);box-sizing:border-box;position:relative;gap:var(--comp-infobox-button-margin-left)}ap-infobox .main .status-banner{position:absolute;left:0;top:0;width:4px;height:100%}ap-infobox .main ap-symbol{align-self:flex-start}ap-infobox .main .symbol-wrapper{margin-top:1px}ap-infobox .main.has-title .symbol-wrapper{margin-top:var(--ref-spacing-xxxs)}ap-infobox .main button.closable-button{border:none;background-color:transparent;height:var(--comp-icon-size);width:var(--comp-icon-size);border-radius:100%;display:flex;align-items:center;justify-content:center;cursor:pointer}ap-infobox .main button.closable-button svg{margin:0;color:var(--ref-color-grey-60)}ap-infobox .main button.closable-button:hover{background-color:#3445631a}ap-infobox .main button.closable-button:hover svg{color:var(--ref-color-grey-80)}ap-infobox .main button.closable-button:active{background-color:#34456333}ap-infobox .main button.closable-button:active svg{color:var(--ref-color-grey-100)}ap-infobox .main .wrapper{display:flex;justify-content:space-between;width:100%;align-items:flex-start;gap:var(--ref-spacing-xxs)}ap-infobox .main .wrapper .symbol-content{display:flex;gap:var(--ref-spacing-xs);align-items:flex-start;flex:1}ap-infobox .main .wrapper .symbol-content .content{display:flex;flex-direction:column;align-items:flex-start;flex:1;justify-content:space-between;gap:var(--ref-spacing-xxs)}ap-infobox .main .wrapper .symbol-content .content ap-button button{width:unset}ap-infobox .main .wrapper .symbol-content .content .texts{display:flex;flex-direction:column}ap-infobox .main .wrapper .symbol-content .content .texts .title{font-weight:var(--comp-infobox-text-title-weight);font-family:var(--comp-infobox-text-title-font-family);font-size:var(--comp-infobox-text-title-size);line-height:var(--comp-infobox-text-title-line-height)}ap-infobox .main.info{background-color:var(--comp-infobox-info-background-color)}ap-infobox .main.info ap-symbol.status{align-self:baseline;color:var(--comp-infobox-info-icon-color)}ap-infobox .main.info .status-banner{background-color:var(--comp-infobox-info-border-left-color)}ap-infobox .main.warning{background-color:var(--comp-infobox-warning-background-color)}ap-infobox .main.warning ap-symbol.status{color:var(--comp-infobox-warning-icon-color)}ap-infobox .main.warning .status-banner{background-color:var(--comp-infobox-warning-border-left-color)}ap-infobox .main.error{background-color:var(--comp-infobox-error-background-color)}ap-infobox .main.error ap-symbol.status{color:var(--comp-infobox-error-icon-color)}ap-infobox .main.error .status-banner{background-color:var(--comp-infobox-error-border-left-color)}ap-infobox .main.success{background-color:var(--comp-infobox-success-background-color)}ap-infobox .main.success ap-symbol.status{color:var(--comp-infobox-success-icon-color)}ap-infobox .main.success .status-banner{background-color:var(--comp-infobox-success-border-left-color)}@container infobox (min-width: 588px){.main .wrapper{align-items:center!important}.main .wrapper .symbol-wrapper{margin-top:0!important}.main .wrapper .symbol-content{align-items:center!important}.main .wrapper .symbol-content .content{flex-direction:row!important;align-items:center!important}}\n"], dependencies: [{ kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["color", "symbolId", "size"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "ap-button", inputs: ["ariaLabel", "disabled", "name", "form", "config", "loading", "locked", "menuTrigger", "symbolPosition", "ionicModalEnabled"], outputs: ["menuOpened", "menuClosed", "click", "focus", "blur"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
43
|
+
}
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: InfoboxComponent, decorators: [{
|
|
45
|
+
type: Component,
|
|
46
|
+
args: [{ selector: 'ap-infobox', standalone: true, imports: [SymbolComponent, NgClass, NgIf, ButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"main\"\n [class.info]=\"type === 'info'\"\n [class.warning]=\"type === 'warning'\"\n [class.error]=\"type === 'error'\"\n [class.success]=\"type === 'success'\"\n [class.has-title]=\"!!title\">\n <div class=\"status-banner\"></div>\n <div class=\"wrapper\">\n <div class=\"symbol-content\">\n <div class=\"symbol-wrapper\">\n <ap-symbol\n [symbolId]=\"symbolIds[type]\"\n class=\"status\"\n size=\"micro\" />\n </div>\n <div class=\"content\">\n <div class=\"texts\">\n <span\n *ngIf=\"title\"\n class=\"title\">\n {{ title }}\n </span>\n <span class=\"text\">\n <ng-content />\n </span>\n </div>\n <ng-container *ngIf=\"buttonLabel\">\n <ap-button\n name=\"infobox-button\"\n [config]=\"{\n style: 'stroked',\n color: 'grey'\n }\"\n (click)=\"onClickButton()\">\n {{ buttonLabel }}\n </ap-button>\n </ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"closable\">\n <button\n class=\"closable-button\"\n (click)=\"onCloseInfobox()\">\n <svg\n width=\"8\"\n height=\"8\"\n viewBox=\"0 0 8 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.3245 0.673336C7.16518 0.514565 6.94943 0.425415 6.7245 0.425415C6.49958 0.425415 6.28383 0.514565 6.12451 0.673336L4.00651 2.79134L1.88584 0.673336C1.72499 0.519607 1.51036 0.434955 1.28788 0.437501C1.0654 0.440048 0.852756 0.529591 0.695472 0.686962C0.538189 0.844333 0.448763 1.05702 0.44634 1.27951C0.443916 1.50199 0.528687 1.71658 0.682505 1.87734L2.79984 3.99534L0.682505 6.114C0.528687 6.27476 0.443916 6.48935 0.44634 6.71183C0.448763 6.93431 0.538189 7.147 0.695472 7.30438C0.852756 7.46175 1.0654 7.55129 1.28788 7.55384C1.51036 7.55638 1.72499 7.47173 1.88584 7.318L4.00317 5.2L6.12117 7.31867C6.28364 7.46307 6.4952 7.53986 6.71247 7.53329C6.92974 7.52671 7.13627 7.43728 7.28972 7.28332C7.44316 7.12936 7.53191 6.92254 7.53776 6.70525C7.5436 6.48796 7.46611 6.27666 7.32117 6.11467L5.20384 3.996L7.32117 1.878C7.48132 1.71867 7.57164 1.50226 7.57226 1.27636C7.57289 1.05045 7.48377 0.833548 7.3245 0.673336Z\"\n fill=\"currentColor\" />\n </svg>\n </button>\n </ng-container>\n </div>\n</div>\n", styles: ["ap-infobox{--comp-icon-size: 24px;container:infobox/inline-size;display:block;width:100%;max-width:100%}ap-infobox .main{display:flex;font-size:var(--ref-font-size-sm);line-height:var(--ref-font-line-height-sm);align-items:center;color:var(--ref-color-grey-100);padding:var(--comp-infobox-padding-top) var(--comp-infobox-padding-right) var(--comp-infobox-padding-bottom) var(--comp-infobox-padding-left);border-radius:var(--comp-infobox-border-radius);overflow:hidden;font-family:var(--comp-infobox-text-title-font-family);box-sizing:border-box;position:relative;gap:var(--comp-infobox-button-margin-left)}ap-infobox .main .status-banner{position:absolute;left:0;top:0;width:4px;height:100%}ap-infobox .main ap-symbol{align-self:flex-start}ap-infobox .main .symbol-wrapper{margin-top:1px}ap-infobox .main.has-title .symbol-wrapper{margin-top:var(--ref-spacing-xxxs)}ap-infobox .main button.closable-button{border:none;background-color:transparent;height:var(--comp-icon-size);width:var(--comp-icon-size);border-radius:100%;display:flex;align-items:center;justify-content:center;cursor:pointer}ap-infobox .main button.closable-button svg{margin:0;color:var(--ref-color-grey-60)}ap-infobox .main button.closable-button:hover{background-color:#3445631a}ap-infobox .main button.closable-button:hover svg{color:var(--ref-color-grey-80)}ap-infobox .main button.closable-button:active{background-color:#34456333}ap-infobox .main button.closable-button:active svg{color:var(--ref-color-grey-100)}ap-infobox .main .wrapper{display:flex;justify-content:space-between;width:100%;align-items:flex-start;gap:var(--ref-spacing-xxs)}ap-infobox .main .wrapper .symbol-content{display:flex;gap:var(--ref-spacing-xs);align-items:flex-start;flex:1}ap-infobox .main .wrapper .symbol-content .content{display:flex;flex-direction:column;align-items:flex-start;flex:1;justify-content:space-between;gap:var(--ref-spacing-xxs)}ap-infobox .main .wrapper .symbol-content .content ap-button button{width:unset}ap-infobox .main .wrapper .symbol-content .content .texts{display:flex;flex-direction:column}ap-infobox .main .wrapper .symbol-content .content .texts .title{font-weight:var(--comp-infobox-text-title-weight);font-family:var(--comp-infobox-text-title-font-family);font-size:var(--comp-infobox-text-title-size);line-height:var(--comp-infobox-text-title-line-height)}ap-infobox .main.info{background-color:var(--comp-infobox-info-background-color)}ap-infobox .main.info ap-symbol.status{align-self:baseline;color:var(--comp-infobox-info-icon-color)}ap-infobox .main.info .status-banner{background-color:var(--comp-infobox-info-border-left-color)}ap-infobox .main.warning{background-color:var(--comp-infobox-warning-background-color)}ap-infobox .main.warning ap-symbol.status{color:var(--comp-infobox-warning-icon-color)}ap-infobox .main.warning .status-banner{background-color:var(--comp-infobox-warning-border-left-color)}ap-infobox .main.error{background-color:var(--comp-infobox-error-background-color)}ap-infobox .main.error ap-symbol.status{color:var(--comp-infobox-error-icon-color)}ap-infobox .main.error .status-banner{background-color:var(--comp-infobox-error-border-left-color)}ap-infobox .main.success{background-color:var(--comp-infobox-success-background-color)}ap-infobox .main.success ap-symbol.status{color:var(--comp-infobox-success-icon-color)}ap-infobox .main.success .status-banner{background-color:var(--comp-infobox-success-border-left-color)}@container infobox (min-width: 588px){.main .wrapper{align-items:center!important}.main .wrapper .symbol-wrapper{margin-top:0!important}.main .wrapper .symbol-content{align-items:center!important}.main .wrapper .symbol-content .content{flex-direction:row!important;align-items:center!important}}\n"] }]
|
|
47
|
+
}], ctorParameters: function () { return []; }, propDecorators: { fullWidth: [{
|
|
48
|
+
type: HostBinding,
|
|
49
|
+
args: ['class.full-width']
|
|
50
|
+
}], buttonLabel: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], closable: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], title: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}], type: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], width: [{
|
|
59
|
+
type: Input
|
|
60
|
+
}], buttonClicked: [{
|
|
61
|
+
type: Output
|
|
62
|
+
}] } });
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Generated bundle index. Do not edit.
|
|
66
|
+
*/
|
|
67
|
+
|
|
68
|
+
export { InfoboxComponent };
|
|
69
|
+
//# sourceMappingURL=agorapulse-ui-components-infobox.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-infobox.mjs","sources":["../../../libs/ui-components/infobox/src/infobox.component.ts","../../../libs/ui-components/infobox/src/infobox.component.html","../../../libs/ui-components/infobox/src/agorapulse-ui-components-infobox.ts"],"sourcesContent":["import { ButtonComponent } from '@agorapulse/ui-components/button';\nimport {\n agorapulseSymbol,\n SymbolComponent,\n apAlertCircle,\n apCheckCircle,\n apClose,\n apInformationCircle,\n apRemoveCircle,\n SymbolRegistry,\n} from '@agorapulse/ui-symbol';\nimport { NgClass, NgIf } from '@angular/common';\nimport { AfterViewInit, ElementRef, EventEmitter } from '@angular/core';\nimport { Output } from '@angular/core';\nimport { inject } from '@angular/core';\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\nexport type InfoboxDirection = 'column' | 'row';\nexport type InfoboxWidth = 'fit' | 'full-width';\n\n@Component({\n selector: 'ap-infobox',\n templateUrl: './infobox.component.html',\n styleUrls: ['./infobox.component.scss'],\n standalone: true,\n imports: [SymbolComponent, NgClass, NgIf, ButtonComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class InfoboxComponent {\n private readonly CONTAINER_WIDTH_BREAKPOINT = 588;\n\n private readonly symbolRegistry = inject(SymbolRegistry);\n private readonly elementRef = inject(ElementRef);\n\n @HostBinding('class.full-width') fullWidth: boolean = false;\n\n @Input() buttonLabel: string | undefined = undefined;\n @Input() closable = false;\n @Input() title?: string;\n @Input() type: 'info' | 'warning' | 'error' | 'success' = 'info';\n\n @Input() set width(width: InfoboxWidth) {\n this._width = width;\n this.fullWidth = width === 'full-width';\n }\n get width(): InfoboxWidth {\n return this._width;\n }\n private _width: InfoboxWidth = 'fit';\n\n @Output() buttonClicked = new EventEmitter<void>();\n\n displayDirection: 'horizontal' | 'vertical' = 'horizontal';\n\n readonly symbolIds: { [k: string]: agorapulseSymbol } = {\n info: 'information-circle',\n warning: 'alert-circle',\n error: 'remove-circle',\n success: 'check-circle',\n };\n\n constructor() {\n this.symbolRegistry.registerSymbols([apInformationCircle, apAlertCircle, apRemoveCircle, apCheckCircle, apClose]);\n }\n\n onClickButton(): void {\n this.buttonClicked.emit();\n }\n\n onCloseInfobox(): void {\n this.elementRef.nativeElement.remove();\n }\n}\n","<div\n class=\"main\"\n [class.info]=\"type === 'info'\"\n [class.warning]=\"type === 'warning'\"\n [class.error]=\"type === 'error'\"\n [class.success]=\"type === 'success'\"\n [class.has-title]=\"!!title\">\n <div class=\"status-banner\"></div>\n <div class=\"wrapper\">\n <div class=\"symbol-content\">\n <div class=\"symbol-wrapper\">\n <ap-symbol\n [symbolId]=\"symbolIds[type]\"\n class=\"status\"\n size=\"micro\" />\n </div>\n <div class=\"content\">\n <div class=\"texts\">\n <span\n *ngIf=\"title\"\n class=\"title\">\n {{ title }}\n </span>\n <span class=\"text\">\n <ng-content />\n </span>\n </div>\n <ng-container *ngIf=\"buttonLabel\">\n <ap-button\n name=\"infobox-button\"\n [config]=\"{\n style: 'stroked',\n color: 'grey'\n }\"\n (click)=\"onClickButton()\">\n {{ buttonLabel }}\n </ap-button>\n </ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"closable\">\n <button\n class=\"closable-button\"\n (click)=\"onCloseInfobox()\">\n <svg\n width=\"8\"\n height=\"8\"\n viewBox=\"0 0 8 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.3245 0.673336C7.16518 0.514565 6.94943 0.425415 6.7245 0.425415C6.49958 0.425415 6.28383 0.514565 6.12451 0.673336L4.00651 2.79134L1.88584 0.673336C1.72499 0.519607 1.51036 0.434955 1.28788 0.437501C1.0654 0.440048 0.852756 0.529591 0.695472 0.686962C0.538189 0.844333 0.448763 1.05702 0.44634 1.27951C0.443916 1.50199 0.528687 1.71658 0.682505 1.87734L2.79984 3.99534L0.682505 6.114C0.528687 6.27476 0.443916 6.48935 0.44634 6.71183C0.448763 6.93431 0.538189 7.147 0.695472 7.30438C0.852756 7.46175 1.0654 7.55129 1.28788 7.55384C1.51036 7.55638 1.72499 7.47173 1.88584 7.318L4.00317 5.2L6.12117 7.31867C6.28364 7.46307 6.4952 7.53986 6.71247 7.53329C6.92974 7.52671 7.13627 7.43728 7.28972 7.28332C7.44316 7.12936 7.53191 6.92254 7.53776 6.70525C7.5436 6.48796 7.46611 6.27666 7.32117 6.11467L5.20384 3.996L7.32117 1.878C7.48132 1.71867 7.57164 1.50226 7.57226 1.27636C7.57289 1.05045 7.48377 0.833548 7.3245 0.673336Z\"\n fill=\"currentColor\" />\n </svg>\n </button>\n </ng-container>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { LabelComponent } from '@agorapulse/ui-components/labels';
|
|
2
|
+
import * as i1 from '@agorapulse/ui-symbol';
|
|
3
|
+
import { apAddCircleBoldAlternate, SymbolComponent } from '@agorapulse/ui-symbol';
|
|
4
|
+
import { NgForOf, NgIf, AsyncPipe } from '@angular/common';
|
|
5
|
+
import * as i0 from '@angular/core';
|
|
6
|
+
import { EventEmitter, Component, Input, Output } from '@angular/core';
|
|
7
|
+
import * as i3 from '@angular/forms';
|
|
8
|
+
import { FormsModule } from '@angular/forms';
|
|
9
|
+
import * as i2 from '@ng-select/ng-select';
|
|
10
|
+
import { NgSelectModule } from '@ng-select/ng-select';
|
|
11
|
+
import { Subject } from 'rxjs';
|
|
12
|
+
import { debounceTime, distinctUntilChanged, tap, switchMap, catchError, map } from 'rxjs/operators';
|
|
13
|
+
|
|
14
|
+
class LabelsSelectorComponent {
|
|
15
|
+
changeDetectorRef;
|
|
16
|
+
symbolRegistry;
|
|
17
|
+
addLabelEnabled = true;
|
|
18
|
+
disabled = false;
|
|
19
|
+
initialLabels = [];
|
|
20
|
+
translation;
|
|
21
|
+
loadingOnSearch = true;
|
|
22
|
+
multipleEnabled = true;
|
|
23
|
+
searchLabelsFunction;
|
|
24
|
+
createLabel = new EventEmitter();
|
|
25
|
+
deleteLabel = new EventEmitter();
|
|
26
|
+
selectLabels = new EventEmitter();
|
|
27
|
+
searchErrorMessage = new EventEmitter();
|
|
28
|
+
labels = [];
|
|
29
|
+
labelsInput$ = new Subject();
|
|
30
|
+
labels$;
|
|
31
|
+
labelsLoading = false;
|
|
32
|
+
constructor(changeDetectorRef, symbolRegistry) {
|
|
33
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
34
|
+
this.symbolRegistry = symbolRegistry;
|
|
35
|
+
this.symbolRegistry.registerSymbols([apAddCircleBoldAlternate]);
|
|
36
|
+
}
|
|
37
|
+
ngOnInit() {
|
|
38
|
+
this.labels = this.initialLabels;
|
|
39
|
+
this.setSearchFunction();
|
|
40
|
+
}
|
|
41
|
+
ngOnChanges(changes) {
|
|
42
|
+
if (changes?.initialLabels?.currentValue) {
|
|
43
|
+
this.labels = this.initialLabels;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
onCreateLabel(label) {
|
|
47
|
+
this.createLabel.emit(label);
|
|
48
|
+
}
|
|
49
|
+
onDeleteLabel(event) {
|
|
50
|
+
this.deleteLabel.emit(event.value);
|
|
51
|
+
}
|
|
52
|
+
onOpen() {
|
|
53
|
+
this.labelsInput$.next('');
|
|
54
|
+
}
|
|
55
|
+
onLabelsChange() {
|
|
56
|
+
if (!this.multipleEnabled && this.labels.length > 1) {
|
|
57
|
+
this.labels = [this.labels[this.labels.length - 1]];
|
|
58
|
+
}
|
|
59
|
+
this.selectLabels.emit(this.labels);
|
|
60
|
+
this.changeDetectorRef.markForCheck();
|
|
61
|
+
}
|
|
62
|
+
setSearchFunction() {
|
|
63
|
+
this.labels$ = this.labelsInput$.pipe(debounceTime(this.loadingOnSearch ? 400 : 0), distinctUntilChanged(), tap(() => {
|
|
64
|
+
this.labelsLoading = true;
|
|
65
|
+
}), switchMap((term) => this.searchLabelsFunction(term).pipe(catchError(response => {
|
|
66
|
+
this.searchErrorMessage.emit(response.error ? response.error.message : 'Error');
|
|
67
|
+
return [];
|
|
68
|
+
}), map(response => {
|
|
69
|
+
this.labelsLoading = false;
|
|
70
|
+
if (!response || Object.keys(response).length == 0) {
|
|
71
|
+
return [];
|
|
72
|
+
}
|
|
73
|
+
return response;
|
|
74
|
+
}))));
|
|
75
|
+
}
|
|
76
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: LabelsSelectorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SymbolRegistry }], target: i0.ɵɵFactoryTarget.Component });
|
|
77
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.10", type: LabelsSelectorComponent, isStandalone: true, selector: "ap-labels-selector", inputs: { addLabelEnabled: "addLabelEnabled", disabled: "disabled", initialLabels: "initialLabels", translation: "translation", loadingOnSearch: "loadingOnSearch", multipleEnabled: "multipleEnabled", searchLabelsFunction: "searchLabelsFunction" }, outputs: { createLabel: "createLabel", deleteLabel: "deleteLabel", selectLabels: "selectLabels", searchErrorMessage: "searchErrorMessage" }, usesOnChanges: true, ngImport: i0, template: "<!-- @JRA [multiple]=\"false\" break the component display and behavior, we use [maxSelectedItems]=\"1\" as efficient workaround -->\n<ng-select\n class=\"labels-select\"\n [addTag]=\"addLabelEnabled\"\n [clearable]=\"false\"\n [disabled]=\"disabled\"\n [hideSelected]=\"true\"\n [items]=\"labels$ | async\"\n [loading]=\"labelsLoading\"\n [minTermLength]=\"0\"\n [multiple]=\"true\"\n [placeholder]=\"translation.placeholder\"\n [typeahead]=\"labelsInput$\"\n [(ngModel)]=\"labels\"\n (add)=\"onCreateLabel($event)\"\n (change)=\"onLabelsChange()\"\n (remove)=\"onDeleteLabel($event)\"\n (open)=\"onOpen()\"\n appendTo=\"body\">\n <ng-template\n ng-multi-label-tmp\n let-items=\"items\"\n let-clear=\"clear\">\n <div\n *ngFor=\"let item of items\"\n class=\"labels-wrapper\">\n <ap-label\n [content]=\"item\"\n [selectorWidth]=\"221\"\n [removable]=\"!disabled\"\n (remove)=\"clear(item)\" />\n </div>\n </ng-template>\n <ng-template\n ng-option-tmp\n let-item=\"item\"\n let-search=\"searchTerm\">\n <div *ngIf=\"search\">\n <b>{{ item.substring(0, search.length) }}</b>\n {{ item.substring(search.length, item.length) }}\n </div>\n <div *ngIf=\"!search\">{{ item }}</div>\n </ng-template>\n <ng-template\n ng-tag-tmp\n let-search=\"searchTerm\">\n <div class=\"add-label\">\n <ap-symbol\n class=\"add-label-icon\"\n symbolId=\"add-circle-bold-alternate\"\n size=\"micro\" />\n <div class=\"add-label-preview\">{{ translation.createLabel }} \"{{ search }}\"</div>\n </div>\n </ng-template>\n</ng-select>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #a566a5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #c7ab82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #f2713c}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #ffd006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94c5aa}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2a9d8f}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78acd8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525a9e}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6a2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729e}:host{max-width:260px;display:flex}.labels-select{width:260px}.labels-select .labels-wrapper{margin-bottom:5px;max-width:221px}::ng-deep .labels-select.ng-select .ng-select-container .ng-value-container{overflow-y:auto;overflow-x:hidden;max-height:171px;padding-left:6px!important;gap:4px}::ng-deep .ng-option{color:#344563!important}::ng-deep .ng-option.ng-option-marked{color:#178dfe!important}.add-label{display:flex;align-items:center;color:#178dfe}.add-label .add-label-icon{padding-right:8px}.add-label-preview{text-overflow:ellipsis;display:block;white-space:nowrap;overflow:hidden}\n"], dependencies: [{ kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["color", "symbolId", "size"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i2.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i2.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i2.NgMultiLabelTemplateDirective, selector: "[ng-multi-label-tmp]" }, { kind: "directive", type: i2.NgTagTemplateDirective, selector: "[ng-tag-tmp]" }, { kind: "component", type: LabelComponent, selector: "ap-label", inputs: ["color", "content", "onlyText", "selectorWidth", "removable"], outputs: ["remove"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
|
|
78
|
+
}
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: LabelsSelectorComponent, decorators: [{
|
|
80
|
+
type: Component,
|
|
81
|
+
args: [{ selector: 'ap-labels-selector', standalone: true, imports: [SymbolComponent, NgSelectModule, LabelComponent, NgForOf, NgIf, FormsModule, AsyncPipe], template: "<!-- @JRA [multiple]=\"false\" break the component display and behavior, we use [maxSelectedItems]=\"1\" as efficient workaround -->\n<ng-select\n class=\"labels-select\"\n [addTag]=\"addLabelEnabled\"\n [clearable]=\"false\"\n [disabled]=\"disabled\"\n [hideSelected]=\"true\"\n [items]=\"labels$ | async\"\n [loading]=\"labelsLoading\"\n [minTermLength]=\"0\"\n [multiple]=\"true\"\n [placeholder]=\"translation.placeholder\"\n [typeahead]=\"labelsInput$\"\n [(ngModel)]=\"labels\"\n (add)=\"onCreateLabel($event)\"\n (change)=\"onLabelsChange()\"\n (remove)=\"onDeleteLabel($event)\"\n (open)=\"onOpen()\"\n appendTo=\"body\">\n <ng-template\n ng-multi-label-tmp\n let-items=\"items\"\n let-clear=\"clear\">\n <div\n *ngFor=\"let item of items\"\n class=\"labels-wrapper\">\n <ap-label\n [content]=\"item\"\n [selectorWidth]=\"221\"\n [removable]=\"!disabled\"\n (remove)=\"clear(item)\" />\n </div>\n </ng-template>\n <ng-template\n ng-option-tmp\n let-item=\"item\"\n let-search=\"searchTerm\">\n <div *ngIf=\"search\">\n <b>{{ item.substring(0, search.length) }}</b>\n {{ item.substring(search.length, item.length) }}\n </div>\n <div *ngIf=\"!search\">{{ item }}</div>\n </ng-template>\n <ng-template\n ng-tag-tmp\n let-search=\"searchTerm\">\n <div class=\"add-label\">\n <ap-symbol\n class=\"add-label-icon\"\n symbolId=\"add-circle-bold-alternate\"\n size=\"micro\" />\n <div class=\"add-label-preview\">{{ translation.createLabel }} \"{{ search }}\"</div>\n </div>\n </ng-template>\n</ng-select>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #a566a5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #c7ab82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #f2713c}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #ffd006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94c5aa}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2a9d8f}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78acd8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525a9e}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6a2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729e}:host{max-width:260px;display:flex}.labels-select{width:260px}.labels-select .labels-wrapper{margin-bottom:5px;max-width:221px}::ng-deep .labels-select.ng-select .ng-select-container .ng-value-container{overflow-y:auto;overflow-x:hidden;max-height:171px;padding-left:6px!important;gap:4px}::ng-deep .ng-option{color:#344563!important}::ng-deep .ng-option.ng-option-marked{color:#178dfe!important}.add-label{display:flex;align-items:center;color:#178dfe}.add-label .add-label-icon{padding-right:8px}.add-label-preview{text-overflow:ellipsis;display:block;white-space:nowrap;overflow:hidden}\n"] }]
|
|
82
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SymbolRegistry }]; }, propDecorators: { addLabelEnabled: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], disabled: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], initialLabels: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], translation: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], loadingOnSearch: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], multipleEnabled: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], searchLabelsFunction: [{
|
|
95
|
+
type: Input,
|
|
96
|
+
args: [{
|
|
97
|
+
required: true,
|
|
98
|
+
}]
|
|
99
|
+
}], createLabel: [{
|
|
100
|
+
type: Output
|
|
101
|
+
}], deleteLabel: [{
|
|
102
|
+
type: Output
|
|
103
|
+
}], selectLabels: [{
|
|
104
|
+
type: Output
|
|
105
|
+
}], searchErrorMessage: [{
|
|
106
|
+
type: Output
|
|
107
|
+
}] } });
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Generated bundle index. Do not edit.
|
|
111
|
+
*/
|
|
112
|
+
|
|
113
|
+
export { LabelsSelectorComponent };
|
|
114
|
+
//# sourceMappingURL=agorapulse-ui-components-labels-selector.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-labels-selector.mjs","sources":["../../../libs/ui-components/labels-selector/src/labels-selector.component.ts","../../../libs/ui-components/labels-selector/src/labels-selector.component.html","../../../libs/ui-components/labels-selector/src/agorapulse-ui-components-labels-selector.ts"],"sourcesContent":["import { LabelComponent } from '@agorapulse/ui-components/labels';\nimport { SymbolComponent, apAddCircleBoldAlternate, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport { AsyncPipe, NgForOf, NgIf } from '@angular/common';\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { Observable, Subject } from 'rxjs';\nimport { catchError, debounceTime, distinctUntilChanged, map, switchMap, tap } from 'rxjs/operators';\n\nexport interface LabelsSelectorTranslation {\n placeholder: string;\n createLabel: string;\n}\n\n@Component({\n selector: 'ap-labels-selector',\n templateUrl: './labels-selector.component.html',\n styleUrls: ['./labels-selector.component.scss'],\n standalone: true,\n imports: [SymbolComponent, NgSelectModule, LabelComponent, NgForOf, NgIf, FormsModule, AsyncPipe],\n})\nexport class LabelsSelectorComponent implements OnInit, OnChanges {\n @Input() addLabelEnabled: boolean = true;\n @Input() disabled: boolean = false;\n @Input() initialLabels: string[] = [];\n @Input() translation!: LabelsSelectorTranslation;\n @Input() loadingOnSearch: boolean = true;\n @Input() multipleEnabled: boolean = true;\n @Input({\n required: true,\n })\n searchLabelsFunction!: (val: string) => Observable<string[]>;\n\n @Output() createLabel = new EventEmitter<string>();\n @Output() deleteLabel = new EventEmitter<string>();\n @Output() selectLabels = new EventEmitter<string[]>();\n @Output() searchErrorMessage = new EventEmitter<string>();\n\n labels: string[] = [];\n labelsInput$: Subject<string> = new Subject<string>();\n labels$!: Observable<string[]>;\n labelsLoading = false;\n\n constructor(private changeDetectorRef: ChangeDetectorRef, public symbolRegistry: SymbolRegistry) {\n this.symbolRegistry.registerSymbols([apAddCircleBoldAlternate]);\n }\n\n ngOnInit(): void {\n this.labels = this.initialLabels;\n this.setSearchFunction();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.initialLabels?.currentValue) {\n this.labels = this.initialLabels;\n }\n }\n\n onCreateLabel(label: string): void {\n this.createLabel.emit(label);\n }\n\n onDeleteLabel(event: { value: string }) {\n this.deleteLabel.emit(event.value);\n }\n\n onOpen(): void {\n this.labelsInput$.next('');\n }\n\n onLabelsChange(): void {\n if (!this.multipleEnabled && this.labels.length > 1) {\n this.labels = [this.labels[this.labels.length - 1]];\n }\n this.selectLabels.emit(this.labels);\n this.changeDetectorRef.markForCheck();\n }\n\n setSearchFunction(): void {\n this.labels$ = this.labelsInput$.pipe(\n debounceTime(this.loadingOnSearch ? 400 : 0),\n distinctUntilChanged(),\n tap(() => {\n this.labelsLoading = true;\n }),\n switchMap((term: string) =>\n this.searchLabelsFunction(term).pipe(\n catchError(response => {\n this.searchErrorMessage.emit(response.error ? response.error.message : 'Error');\n return [];\n }),\n map(response => {\n this.labelsLoading = false;\n if (!response || Object.keys(response).length == 0) {\n return [];\n }\n return response;\n })\n )\n )\n );\n }\n}\n","<!-- @JRA [multiple]=\"false\" break the component display and behavior, we use [maxSelectedItems]=\"1\" as efficient workaround -->\n<ng-select\n class=\"labels-select\"\n [addTag]=\"addLabelEnabled\"\n [clearable]=\"false\"\n [disabled]=\"disabled\"\n [hideSelected]=\"true\"\n [items]=\"labels$ | async\"\n [loading]=\"labelsLoading\"\n [minTermLength]=\"0\"\n [multiple]=\"true\"\n [placeholder]=\"translation.placeholder\"\n [typeahead]=\"labelsInput$\"\n [(ngModel)]=\"labels\"\n (add)=\"onCreateLabel($event)\"\n (change)=\"onLabelsChange()\"\n (remove)=\"onDeleteLabel($event)\"\n (open)=\"onOpen()\"\n appendTo=\"body\">\n <ng-template\n ng-multi-label-tmp\n let-items=\"items\"\n let-clear=\"clear\">\n <div\n *ngFor=\"let item of items\"\n class=\"labels-wrapper\">\n <ap-label\n [content]=\"item\"\n [selectorWidth]=\"221\"\n [removable]=\"!disabled\"\n (remove)=\"clear(item)\" />\n </div>\n </ng-template>\n <ng-template\n ng-option-tmp\n let-item=\"item\"\n let-search=\"searchTerm\">\n <div *ngIf=\"search\">\n <b>{{ item.substring(0, search.length) }}</b>\n {{ item.substring(search.length, item.length) }}\n </div>\n <div *ngIf=\"!search\">{{ item }}</div>\n </ng-template>\n <ng-template\n ng-tag-tmp\n let-search=\"searchTerm\">\n <div class=\"add-label\">\n <ap-symbol\n class=\"add-label-icon\"\n symbolId=\"add-circle-bold-alternate\"\n size=\"micro\" />\n <div class=\"add-label-preview\">{{ translation.createLabel }} \"{{ search }}\"</div>\n </div>\n </ng-template>\n</ng-select>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|