@lucca-front/ng 16.5.1 → 17.0.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/esm2022/a11y/skip-links/skip-links.component.mjs +7 -8
- package/esm2022/api/api.module.mjs +6 -7
- package/esm2022/api/select/api-select.module.mjs +6 -7
- package/esm2022/api/select/feeder/api-feeder.component.mjs +7 -8
- package/esm2022/api/select/feeder/api-feeder.module.mjs +6 -7
- package/esm2022/api/select/input/api-select-input.component.mjs +6 -7
- package/esm2022/api/select/input/api-select-input.module.mjs +6 -7
- package/esm2022/api/select/pager/api-pager.component.mjs +7 -8
- package/esm2022/api/select/pager/api-pager.module.mjs +6 -7
- package/esm2022/api/select/searcher/api-searcher.component.mjs +13 -15
- package/esm2022/api/select/searcher/api-searcher.module.mjs +6 -7
- package/esm2022/api/service/api-hybrid.service.mjs +6 -7
- package/esm2022/api/service/api-v3.service.mjs +6 -7
- package/esm2022/api/service/api-v4.service.mjs +6 -7
- package/esm2022/button/button.component.mjs +5 -6
- package/esm2022/callout/callout/callout.component.mjs +5 -6
- package/esm2022/callout/callout-disclosure/callout-disclosure.component.mjs +5 -6
- package/esm2022/callout/callout-feedback-item/callout-feedback-item.component.mjs +5 -6
- package/esm2022/callout/callout-feedback-list/callout-feedback-list.component.mjs +5 -6
- package/esm2022/callout/callout-popover/callout-popover.component.mjs +5 -6
- package/esm2022/core/date/native/native-date.adapter.mjs +7 -8
- package/esm2022/core/date/string/string-date.adapter.mjs +7 -8
- package/esm2022/core/portal/portal.directive.mjs +5 -6
- package/esm2022/core/tools/ng-clazz.directive.mjs +7 -7
- package/esm2022/core-select/displayer/displayer.directive.mjs +6 -7
- package/esm2022/core-select/input/select-input.component.mjs +5 -6
- package/esm2022/core-select/input/select-input.models.mjs +4 -4
- package/esm2022/core-select/option/default-option.component.mjs +5 -6
- package/esm2022/core-select/option/disabled.directive.mjs +5 -6
- package/esm2022/core-select/option/option-outlet.directive.mjs +5 -6
- package/esm2022/core-select/option/option.component.mjs +5 -6
- package/esm2022/core-select/option/option.directive.mjs +6 -7
- package/esm2022/date/adapter/date-adapter.module.mjs +6 -7
- package/esm2022/date/adapter/date-adapter.pipe.mjs +6 -7
- package/esm2022/date/calendar/calendar-input.component.mjs +7 -8
- package/esm2022/date/calendar/calendar-input.module.mjs +6 -7
- package/esm2022/date/calendar/calendar-item.factory.mjs +6 -7
- package/esm2022/date/date.module.mjs +6 -7
- package/esm2022/date/input/date-input.directive.mjs +6 -7
- package/esm2022/date/input/date-input.module.mjs +6 -7
- package/esm2022/date/picker/date-picker.component.mjs +6 -7
- package/esm2022/date/picker/date-picker.module.mjs +6 -7
- package/esm2022/date/select/date-select-input.component.mjs +6 -7
- package/esm2022/date/select/date-select-input.module.mjs +6 -7
- package/esm2022/department/department.module.mjs +6 -7
- package/esm2022/department/select/department-select.module.mjs +6 -7
- package/esm2022/department/select/feeder/department-feeder.component.mjs +7 -8
- package/esm2022/department/select/feeder/department-feeder.module.mjs +6 -7
- package/esm2022/department/select/input/department-select-input.component.mjs +6 -7
- package/esm2022/department/select/input/department-select-input.module.mjs +6 -7
- package/esm2022/department/service/department-v3.service.mjs +6 -7
- package/esm2022/dropdown/dropdown.module.mjs +6 -7
- package/esm2022/dropdown/item/dropdown-item.directive.mjs +6 -7
- package/esm2022/dropdown/item/dropdown-item.module.mjs +6 -7
- package/esm2022/dropdown/panel/dropdown-panel.component.mjs +6 -7
- package/esm2022/dropdown/panel/dropdown-panel.module.mjs +6 -7
- package/esm2022/dropdown/trigger/dropdown-trigger.directive.mjs +6 -7
- package/esm2022/dropdown/trigger/dropdown-trigger.module.mjs +6 -7
- package/esm2022/establishment/establishment.module.mjs +6 -7
- package/esm2022/establishment/select/establishment-select.module.mjs +6 -7
- package/esm2022/establishment/select/for-legal-units/for-legal-units.directive.mjs +6 -7
- package/esm2022/establishment/select/for-legal-units/for-legal-units.module.mjs +6 -7
- package/esm2022/establishment/select/input/establishment-select-input.component.mjs +7 -8
- package/esm2022/establishment/select/input/establishment-select-input.module.mjs +6 -7
- package/esm2022/establishment/select/legal-unit-selector/legal-unit-selector.directive.mjs +7 -8
- package/esm2022/establishment/select/legal-unit-selector/legal-unit-selector.module.mjs +6 -7
- package/esm2022/establishment/select/searcher/establishment-searcher.component.mjs +7 -8
- package/esm2022/establishment/select/searcher/establishment-searcher.module.mjs +6 -7
- package/esm2022/establishment/select/select-all/establishment-select-all.component.mjs +7 -8
- package/esm2022/establishment/select/select-all/establishment-select-all.module.mjs +6 -7
- package/esm2022/establishment/service/establishment.service.mjs +6 -7
- package/esm2022/establishment/service/legal-unit.service.mjs +6 -7
- package/esm2022/form-field/form-field.component.mjs +5 -6
- package/esm2022/form-field/input.directive.mjs +5 -6
- package/esm2022/formly/formly.module.mjs +6 -7
- package/esm2022/formly/types/api.mjs +6 -6
- package/esm2022/formly/types/checkbox.mjs +6 -6
- package/esm2022/formly/types/date.mjs +6 -6
- package/esm2022/formly/types/department.mjs +6 -6
- package/esm2022/formly/types/establishment.mjs +6 -6
- package/esm2022/formly/types/input.mjs +6 -6
- package/esm2022/formly/types/qualification.mjs +6 -6
- package/esm2022/formly/types/radios.mjs +6 -6
- package/esm2022/formly/types/select.mjs +6 -6
- package/esm2022/formly/types/textarea.mjs +6 -6
- package/esm2022/formly/types/user.mjs +6 -6
- package/esm2022/formly/wrappers/checkbox-layout.mjs +6 -6
- package/esm2022/formly/wrappers/error.mjs +11 -11
- package/esm2022/formly/wrappers/helper.mjs +6 -6
- package/esm2022/formly/wrappers/icon.mjs +6 -6
- package/esm2022/formly/wrappers/radiosfield-layout.mjs +6 -6
- package/esm2022/formly/wrappers/suffix.mjs +6 -6
- package/esm2022/formly/wrappers/textfield-layout.mjs +6 -6
- package/esm2022/forms/abstract-field-component.mjs +5 -6
- package/esm2022/forms/checkboxfield/checkboxfield.component.mjs +5 -6
- package/esm2022/forms/form-field-id.directive.mjs +6 -7
- package/esm2022/forms/noop-value-accessor.directive.mjs +5 -6
- package/esm2022/forms/switchfield/switchfield.component.mjs +5 -6
- package/esm2022/forms/textfield/textfield.component.mjs +5 -6
- package/esm2022/icon/icon.component.mjs +5 -6
- package/esm2022/inline-message/inline-message.component.mjs +5 -6
- package/esm2022/input/clearer/clearer.component.mjs +5 -6
- package/esm2022/input/clearer/clearer.module.mjs +6 -7
- package/esm2022/input/displayer/input-displayer.directive.mjs +6 -7
- package/esm2022/input/displayer/input-displayer.module.mjs +6 -7
- package/esm2022/input/input.directive.mjs +6 -7
- package/esm2022/input/input.module.mjs +6 -7
- package/esm2022/modal/modal-panel.component.mjs +17 -19
- package/esm2022/modal/modal-ref.factory.mjs +6 -7
- package/esm2022/modal/modal.module.mjs +6 -7
- package/esm2022/modal/modal.service.mjs +5 -6
- package/esm2022/multi-select/displayer/default-displayer.component.mjs +5 -6
- package/esm2022/multi-select/displayer/displayer.directive.mjs +6 -7
- package/esm2022/multi-select/input/panel-ref.factory.mjs +5 -6
- package/esm2022/multi-select/input/select-input.component.mjs +5 -6
- package/esm2022/multi-select/panel/option-selected.pipe.mjs +5 -6
- package/esm2022/multi-select/panel/panel.component.mjs +5 -6
- package/esm2022/multi-select/panel/selected-chip.directive.mjs +5 -6
- package/esm2022/new-badge/new-badge.component.mjs +5 -6
- package/esm2022/number/number.module.mjs +6 -7
- package/esm2022/number/number.pipe.mjs +7 -8
- package/esm2022/numeric-badge/numeric-badge.component.mjs +5 -6
- package/esm2022/option/item/option-item.component.mjs +6 -7
- package/esm2022/option/item/option-item.module.mjs +6 -7
- package/esm2022/option/item/tree-option-item.component.mjs +6 -7
- package/esm2022/option/item/tree-option-item.module.mjs +6 -7
- package/esm2022/option/operator/feeder/option-feeder.component.mjs +5 -6
- package/esm2022/option/operator/feeder/option-feeder.module.mjs +6 -7
- package/esm2022/option/operator/feeder/tree-option-feeder.component.mjs +5 -6
- package/esm2022/option/operator/feeder/tree-option-feeder.module.mjs +6 -7
- package/esm2022/option/operator/for-groups/for-groups.directive.mjs +6 -7
- package/esm2022/option/operator/for-groups/for-groups.module.mjs +6 -7
- package/esm2022/option/operator/for-options/for-options.directive.mjs +6 -7
- package/esm2022/option/operator/for-options/for-options.module.mjs +6 -7
- package/esm2022/option/operator/for-options/for-tree-options.directive.mjs +5 -6
- package/esm2022/option/operator/for-options/for-tree-options.module.mjs +6 -7
- package/esm2022/option/operator/option-operator.module.mjs +6 -7
- package/esm2022/option/operator/pager/option-pager.component.mjs +5 -6
- package/esm2022/option/operator/pager/option-pager.module.mjs +6 -7
- package/esm2022/option/operator/pager/tree-option-pager.component.mjs +5 -6
- package/esm2022/option/operator/pager/tree-option-pager.module.mjs +6 -7
- package/esm2022/option/operator/searcher/option-searcher.component.mjs +5 -6
- package/esm2022/option/operator/searcher/option-searcher.module.mjs +6 -7
- package/esm2022/option/operator/searcher/tree-option-searcher.component.mjs +5 -6
- package/esm2022/option/operator/searcher/tree-option-searcher.module.mjs +6 -7
- package/esm2022/option/operator/tree-option-operator.module.mjs +6 -7
- package/esm2022/option/option.module.mjs +6 -7
- package/esm2022/option/picker/option-picker-advanced.component.mjs +13 -15
- package/esm2022/option/picker/option-picker.component.mjs +13 -15
- package/esm2022/option/picker/option-picker.module.mjs +6 -7
- package/esm2022/option/picker/tree-option-picker-advanced.component.mjs +13 -15
- package/esm2022/option/picker/tree-option-picker.component.mjs +13 -15
- package/esm2022/option/picker/tree-option-picker.module.mjs +6 -7
- package/esm2022/option/placeholder/option-placeholder.component.mjs +5 -6
- package/esm2022/option/placeholder/option-placeholder.module.mjs +6 -7
- package/esm2022/option/selector/all/select-all.component.mjs +5 -6
- package/esm2022/option/selector/all/select-all.module.mjs +6 -7
- package/esm2022/option/selector/all/tree-select-all.component.mjs +5 -6
- package/esm2022/option/selector/all/tree-select-all.module.mjs +6 -7
- package/esm2022/option/selector/option-selector.module.mjs +6 -7
- package/esm2022/option/selector/tree-option-selector.module.mjs +6 -7
- package/esm2022/option/tree-option.module.mjs +6 -7
- package/esm2022/popover/panel/popover-panel.component.mjs +6 -7
- package/esm2022/popover/panel/popover-panel.module.mjs +6 -7
- package/esm2022/popover/popover.module.mjs +6 -7
- package/esm2022/popover/target/popover-target.directive.mjs +6 -7
- package/esm2022/popover/target/popover-target.module.mjs +6 -7
- package/esm2022/popover/trigger/popover-trigger.directive.mjs +6 -7
- package/esm2022/popover/trigger/popover-trigger.module.mjs +6 -7
- package/esm2022/popup/popup-ref.factory.mjs +6 -7
- package/esm2022/popup/popup.module.mjs +6 -7
- package/esm2022/popup/popup.service.mjs +5 -6
- package/esm2022/qualification/qualification.module.mjs +6 -7
- package/esm2022/qualification/select/input/qualification-select-input.component.mjs +6 -7
- package/esm2022/qualification/select/input/qualification-select-input.module.mjs +6 -7
- package/esm2022/qualification/select/qualification-select.module.mjs +6 -7
- package/esm2022/safe-content/safe-content.module.mjs +6 -7
- package/esm2022/safe-content/safe-html.pipe.mjs +6 -7
- package/esm2022/scroll/scroll.directive.mjs +6 -7
- package/esm2022/scroll/scroll.module.mjs +6 -7
- package/esm2022/select/input/select-input.component.mjs +11 -13
- package/esm2022/select/input/select-input.module.mjs +6 -7
- package/esm2022/select/select.module.mjs +6 -7
- package/esm2022/sidepanel/sidepanel.module.mjs +6 -7
- package/esm2022/sidepanel/sidepanel.service.mjs +5 -6
- package/esm2022/simple-select/api/api-v3.directive.mjs +5 -6
- package/esm2022/simple-select/api/api-v4.directive.mjs +5 -6
- package/esm2022/simple-select/api/api.directive.mjs +5 -6
- package/esm2022/simple-select/input/panel-ref.factory.mjs +5 -6
- package/esm2022/simple-select/input/select-input.component.mjs +5 -6
- package/esm2022/simple-select/panel/panel.component.mjs +5 -6
- package/esm2022/title/title.module.mjs +6 -7
- package/esm2022/title/title.service.mjs +7 -8
- package/esm2022/title/title.strategy.mjs +7 -8
- package/esm2022/toast/toasts.component.mjs +6 -7
- package/esm2022/toast/toasts.module.mjs +6 -7
- package/esm2022/toast/toasts.service.mjs +5 -6
- package/esm2022/tooltip/panel/tooltip-panel.component.mjs +6 -7
- package/esm2022/tooltip/panel/tooltip-panel.module.mjs +6 -7
- package/esm2022/tooltip/tooltip.module.mjs +6 -7
- package/esm2022/tooltip/trigger/tooltip-trigger.directive.mjs +6 -7
- package/esm2022/tooltip/trigger/tooltip-trigger.module.mjs +6 -7
- package/esm2022/user/display/user-display.module.mjs +6 -7
- package/esm2022/user/display/user-display.pipe.mjs +5 -6
- package/esm2022/user/picture/user-picture.component.mjs +6 -7
- package/esm2022/user/picture/user-picture.module.mjs +6 -7
- package/esm2022/user/select/homonyms/user-homonyms.component.mjs +7 -8
- package/esm2022/user/select/homonyms/user-homonyms.module.mjs +6 -7
- package/esm2022/user/select/homonyms/user-homonyms.service.mjs +6 -7
- package/esm2022/user/select/input/user-select-input.component.mjs +6 -7
- package/esm2022/user/select/input/user-select-input.module.mjs +6 -7
- package/esm2022/user/select/me/me-option.directive.mjs +7 -8
- package/esm2022/user/select/me/me-option.module.mjs +6 -7
- package/esm2022/user/select/searcher/user-searcher.component.mjs +7 -8
- package/esm2022/user/select/searcher/user-searcher.module.mjs +6 -7
- package/esm2022/user/select/user-select.module.mjs +6 -7
- package/esm2022/user/service/user-v3.service.mjs +6 -7
- package/esm2022/user/tile/user-tile.component.mjs +6 -7
- package/esm2022/user/tile/user-tile.module.mjs +6 -7
- package/esm2022/user/user.module.mjs +6 -7
- package/fesm2022/lucca-front-ng-a11y.mjs +5 -5
- package/fesm2022/lucca-front-ng-a11y.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-animations.mjs +1 -1
- package/fesm2022/lucca-front-ng-api.mjs +60 -60
- package/fesm2022/lucca-front-ng-api.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-button.mjs +3 -3
- package/fesm2022/lucca-front-ng-button.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-callout.mjs +16 -16
- package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select.mjs +28 -28
- package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core.mjs +19 -18
- package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date.mjs +52 -50
- package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-department.mjs +29 -29
- package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-dropdown.mjs +28 -28
- package/fesm2022/lucca-front-ng-dropdown.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-establishment.mjs +61 -61
- package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-field.mjs +7 -7
- package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-formly.mjs +80 -61
- package/fesm2022/lucca-front-ng-formly.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms.mjs +21 -20
- package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-icon.mjs +3 -3
- package/fesm2022/lucca-front-ng-icon.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-inline-message.mjs +3 -3
- package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-input.mjs +23 -23
- package/fesm2022/lucca-front-ng-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-modal.mjs +25 -24
- package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-multi-select.mjs +24 -24
- package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-new-badge.mjs +3 -3
- package/fesm2022/lucca-front-ng-new-badge.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-number.mjs +10 -10
- package/fesm2022/lucca-front-ng-number.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-numeric-badge.mjs +3 -3
- package/fesm2022/lucca-front-ng-numeric-badge.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-option.mjs +175 -175
- package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-popover.mjs +29 -29
- package/fesm2022/lucca-front-ng-popover.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-popup.mjs +11 -11
- package/fesm2022/lucca-front-ng-popup.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-qualification.mjs +16 -16
- package/fesm2022/lucca-front-ng-qualification.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-safe-content.mjs +8 -8
- package/fesm2022/lucca-front-ng-safe-content.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-scroll.mjs +8 -8
- package/fesm2022/lucca-front-ng-scroll.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-select.mjs +16 -16
- package/fesm2022/lucca-front-ng-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-sidepanel.mjs +7 -7
- package/fesm2022/lucca-front-ng-sidepanel.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-simple-select-api.mjs +10 -10
- package/fesm2022/lucca-front-ng-simple-select-api.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-simple-select.mjs +10 -10
- package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-title.mjs +15 -15
- package/fesm2022/lucca-front-ng-title.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-toast.mjs +11 -11
- package/fesm2022/lucca-front-ng-toast.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-tooltip.mjs +21 -21
- package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-user.mjs +75 -75
- package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
- package/package.json +31 -31
- package/schematics/lib/local-deps/package.json +0 -23
- /package/{dockerRegistry-42781e58-2adb-4149-b8aa-04ec1df56c6b.env → dockerRegistry-a64fee7f-1bfc-49ea-b07d-9ccbdbf6fd83.env} +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as i1$1 from '@angular/common';
|
|
2
2
|
import { AsyncPipe, NgIf, NgFor, NgTemplateOutlet, CommonModule, NgPlural, NgPluralCase } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { InjectionToken, EventEmitter, Pipe,
|
|
4
|
+
import { InjectionToken, EventEmitter, Pipe, ElementRef, inject, Directive, Input, Component, ChangeDetectionStrategy, ViewChild, ViewChildren, HostListener, Injector, ChangeDetectorRef, Injectable, forwardRef, HostBinding, DestroyRef, NgZone } from '@angular/core';
|
|
5
5
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
6
|
import { getIntl } from '@lucca-front/ng/core';
|
|
7
7
|
import { LuSelectPanelRef, SELECT_ID, ɵLuOptionComponent, ɵLuOptionOutletDirective, ALuSelectInputComponent, provideLuSelectOverlayContainer, provideLuSelectLabelsAndIds, LU_OPTION_CONTEXT } from '@lucca-front/ng/core-select';
|
|
8
8
|
import { LuTooltipModule } from '@lucca-front/ng/tooltip';
|
|
9
|
-
import {
|
|
9
|
+
import { asyncScheduler, observeOn, map, filter, take, takeUntil, ReplaySubject, distinctUntilChanged, Observable, startWith, concatMap, debounceTime, combineLatest } from 'rxjs';
|
|
10
10
|
import * as i2 from '@angular/forms';
|
|
11
11
|
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
12
12
|
import { Overlay, OverlayPositionBuilder, ScrollStrategyOptions } from '@angular/cdk/overlay';
|
|
@@ -93,10 +93,10 @@ class LuIsOptionSelectedPipe {
|
|
|
93
93
|
transform(option, comparer, selectedOptions) {
|
|
94
94
|
return selectedOptions.some((selectedOption) => comparer(option, selectedOption));
|
|
95
95
|
}
|
|
96
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
97
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
96
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuIsOptionSelectedPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
97
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: LuIsOptionSelectedPipe, isStandalone: true, name: "luIsOptionSelected" }); }
|
|
98
98
|
}
|
|
99
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuIsOptionSelectedPipe, decorators: [{
|
|
100
100
|
type: Pipe,
|
|
101
101
|
args: [{
|
|
102
102
|
name: 'luIsOptionSelected',
|
|
@@ -114,10 +114,10 @@ class ɵLuMultiSelectSelectedChipDirective {
|
|
|
114
114
|
setInactiveStyles() {
|
|
115
115
|
// Nothing to do
|
|
116
116
|
}
|
|
117
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
118
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
117
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ɵLuMultiSelectSelectedChipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
118
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: ɵLuMultiSelectSelectedChipDirective, isStandalone: true, selector: "[luMultiSelectSelectedChip]", inputs: { option: ["luMultiSelectSelectedChip", "option"] }, ngImport: i0 }); }
|
|
119
119
|
}
|
|
120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
120
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ɵLuMultiSelectSelectedChipDirective, decorators: [{
|
|
121
121
|
type: Directive,
|
|
122
122
|
args: [{
|
|
123
123
|
standalone: true,
|
|
@@ -238,10 +238,10 @@ class LuMultiSelectPanelComponent {
|
|
|
238
238
|
initRightColumnKeyManager() {
|
|
239
239
|
this.rightColumnKeyManager = new ActiveDescendantKeyManager(this.selectedChipsQL).withHomeAndEnd();
|
|
240
240
|
}
|
|
241
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
242
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: LuMultiSelectPanelComponent, isStandalone: true, selector: "lu-select-panel", host: { listeners: { "keydown": "onKeyDown($event)" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "optionsQL", predicate: ɵLuOptionComponent, descendants: true }, { propertyName: "selectedChipsQL", predicate: ɵLuMultiSelectSelectedChipDirective, descendants: true }], ngImport: i0, template: "<!-- TODO : il faudrait remplacer la classe is-expanded par un attribut aria-expanded=\"true\"-->\n<ng-template #searchInputTpl>\n\t<label class=\"panel-search textfield mod-search mod-outlined lu-multiselect-search\">\n\t\t<input\n\t\t\t#searchInput\n\t\t\tclass=\"textfield-input\"\n\t\t\t[(ngModel)]=\"search\"\n\t\t\t(ngModelChange)=\"updateClue($event)\"\n\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t/>\n\t\t<span class=\"u-mask textfield-label\">{{ intl.search }}</span>\n\t</label>\n</ng-template>\n\n<div\n\tclass=\"lu-picker-panel lu-option-picker-panel lu-multiselect-panel mod-multiple\"\n\trole=\"dialog\"\n\tcdkTrapFocus\n\t*ngIf=\"{ options: options$ | async } as ctx\"\n\t[cdkTrapFocusAutoCapture]=\"true\"\n\t[class.is-expanded]=\"isExpanded\"\n\t[attr.aria-expanded]=\"isExpanded ? 'true' : undefined\"\n>\n\t<div class=\"lu-multiselect-panel-form\" *ngIf=\"searchable && !isExpanded\">\n\t\t<ng-container *ngTemplateOutlet=\"searchInputTpl\"></ng-container>\n\t\t<!--\t\t<button class=\"button mod-text mod-icon lu-multiselect-expandbutton\" type=\"button\" (click)=\"toggleExpansion()\">-->\n\t\t<!--\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon\" [class.icon-fullscreen]=\"!isExpanded\" [class.icon-fullscreenExit]=\"isExpanded\"></span>-->\n\t\t<!--\t\t\t{{ isExpanded ? intl.reduce : intl.expand }}-->\n\t\t<!--\t\t</button>-->\n\t</div>\n\t<div class=\"lu-multiselect-panel-columns\">\n\t\t<div class=\"lu-multiselect-panel-columns-col1\" (keydown)=\"onLeftColumnKeydown($event)\">\n\t\t\t<div class=\"lu-multiselect-panel-form\" *ngIf=\"searchable && isExpanded\">\n\t\t\t\t<ng-container *ngTemplateOutlet=\"searchInputTpl\"></ng-container>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tclass=\"lu-picker-content lu-multiselect-panel-columns-col1-content\"\n\t\t\t\t[class.is-loading]=\"loading$ | async\"\n\t\t\t\ttabindex=\"0\"\n\t\t\t\tcdkFocusInitial\n\t\t\t\trole=\"list\"\n\t\t\t\taria-multiselectable=\"true\"\n\t\t\t\t(scroll)=\"onScroll($event)\"\n\t\t\t>\n\t\t\t\t<ng-container *ngIf=\"searchable\">\n\t\t\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\n\t\t\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottom0\">{{ intl.emptyResults }}</p>\n\t\t\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.nativeElement.focus()\">{{ intl.clearSearch }}</button>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-container>\n\n\t\t\t\t<!--\t\t\t\t<ng-container *ngIf=\"canSelectAll\">-->\n\t\t\t\t<!--\t\t\t\t\t<label class=\"checkbox lu-multiselect-selectall\" role=\"option\" [for]=\"selectId + '-select-all'\">-->\n\t\t\t\t<!--\t\t\t\t\t\t<input-->\n\t\t\t\t<!--\t\t\t\t\t\t\tclass=\"checkbox-input\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\ttype=\"checkbox\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\t[class.is-incomplete]=\"(areAllOptionsSelected$ | async) !== true && selectedOptions.length\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\t[id]=\"selectId + '-select-all'\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\t[ngModel]=\"(areAllOptionsSelected$ | async) === true || !!selectedOptions.length\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\t(ngModelChange)=\"toggleAll($event)\"-->\n\t\t\t\t<!--\t\t\t\t\t\t/>-->\n\t\t\t\t<!--\t\t\t\t\t\t<span class=\"checkbox-label\">{{ intl.selectAll }}</span>-->\n\t\t\t\t<!--\t\t\t\t\t</label>-->\n\t\t\t\t<!--\t\t\t\t</ng-container>-->\n\n\t\t\t\t<div class=\"lu-picker-content-option\">\n\t\t\t\t\t<lu-select-option\n\t\t\t\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\n\t\t\t\t\t\t[option]=\"option\"\n\t\t\t\t\t\t[optionTpl]=\"optionTpl\"\n\t\t\t\t\t\t[optionIndex]=\"index\"\n\t\t\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'nearest' }\"\n\t\t\t\t\t\t[isSelected]=\"option | luIsOptionSelected:optionComparer:selectedOptions\"\n\t\t\t\t\t\t(click)=\"toggleOption(option)\"\n\t\t\t\t\t></lu-select-option>\n\t\t\t\t</div>\n\n\t\t\t\t<div *ngIf=\"loading$ | async\" class=\"panel-loading loading lu-picker-loading\"></div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"lu-multiselect-panel-columns-col2\" *ngIf=\"isExpanded\">\n\t\t\t<div class=\"lu-multiselect-emptystate\" *ngIf=\"!selectedOptions.length\">{{ intl.emptySelection }}</div>\n\t\t\t<div class=\"lu-multiselect-chips\" role=\"listbox\" tabindex=\"0\" *ngIf=\"selectedOptions.length\" (keydown)=\"onRightColumnKeydown($event)\">\n\t\t\t\t<div role=\"option\" class=\"chip lu-multiselect-chip\" *ngFor=\"let option of selectedOptions\" [luMultiSelectSelectedChip]=\"option\">\n\t\t\t\t\t<ng-container *luOptionOutlet=\"optionTpl; value: option\"></ng-container>\n\t\t\t\t\t<button type=\"button\" class=\"chip-kill\" tabindex=\"-1\" (click)=\"onChipKillClick(option)\"></button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"selectedOptions.length\" class=\"lu-multiselect-panel-columns-col2-footer\">\n\t\t\t\t<button class=\"button mod-text\" type=\"button\" (click)=\"clear()\">{{ intl.clear }}</button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}.optionPlaceholder{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:var(--palettes-grey-600)}.lu-multiselect-panel{display:flex;flex-direction:column;width:100%;border-radius:var(--commons-borderRadius-M);background-color:var(--colors-white-color);box-shadow:var(--commons-boxShadow-M);transition-property:width,min-width,margin-top,margin-left;transition-duration:var(--commons-animations-durations-fast);transition-timing-function:ease-in}.lu-multiselect-panel-form{padding:var(--spacings-XS);z-index:1}.lu-multiselect-panel-columns{display:flex;gap:var(--spacings-XS);padding:0;width:100%;transition:padding var(--commons-animations-durations-standard) ease;max-height:20rem}.is-expanded .lu-multiselect-panel-columns{padding:var(--spacings-XS)}[class*=lu-multiselect-panel-columns-col]{display:flex;flex-basis:100%;flex-direction:column}.is-expanded [class*=lu-multiselect-panel-columns-col]{border-radius:var(--commons-borderRadius-M)}.lu-multiselect-panel-columns-col2{align-items:flex-start;background-color:var(--palettes-grey-25);min-width:18rem}.is-expanded .lu-multiselect-panel-columns-col1{border:var(--commons-divider-width) solid var(--palettes-grey-200)}.lu-multiselect-panel-columns-col1-content{box-shadow:none;animation:none;padding:var(--spacings-XS);max-height:inherit}.lu-multiselect-panel-columns-col1-content,.lu-multiselect-chips{scroll-snap-type:y proximity;outline:none}.lu-multiselect-panel-columns-col1-content>*,.lu-multiselect-chips>*{scroll-snap-align:center}.lu-multiselect-panel-columns-col1-content:focus-visible,.lu-multiselect-chips:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px}.lu-multiselect-search{flex-grow:1}.lu-multiselect-selectall{padding:var(--spacings-XS);font-weight:600;border-radius:var(--commons-borderRadius-M);margin-bottom:var(--spacings-XXS)}.lu-multiselect-selectall:hover,.lu-multiselect-selectall:focus-within{background-color:var(--palettes-grey-25)}.lu-multiselect-chips{overflow-y:auto;display:flex;flex-grow:1;flex-direction:column;align-items:flex-start;align-self:stretch;gap:var(--spacings-XXS);padding:var(--spacings-XS);border-top-left-radius:var(--commons-borderRadius-M);border-top-right-radius:var(--commons-borderRadius-M)}.lu-multiselect-panel-columns-col2-footer{display:flex;flex:0;align-items:flex-end;align-self:stretch;justify-content:flex-end;border-radius:0!important;border-top:var(--commons-divider-border);margin-top:auto;padding:var(--spacings-XXS) var(--spacings-XS)}.lu-multiselect-panel-form{display:flex;gap:var(--spacings-XS)}.lu-multiselect-panel-form~.lu-multiselect-panel-columns-col1-content{padding-top:0}@media not all and (min-width: 50em){.lu-multiselect-expandbutton{display:none}}.lu-multiselect-emptystate{margin:auto;text-align:center;padding:var(--spacings-S);color:var(--palettes-grey-600)}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: LuIsOptionSelectedPipe, name: "luIsOptionSelected" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ɵLuOptionComponent, selector: "lu-select-option", inputs: ["optionTpl", "isSelected", "option", "optionIndex", "scrollIntoViewOptions"] }, { kind: "directive", type: ɵLuOptionOutletDirective, selector: "[luOptionOutlet]", inputs: ["luOptionOutlet", "luOptionOutletValue"] }, { kind: "directive", type: ɵLuMultiSelectSelectedChipDirective, selector: "[luMultiSelectSelectedChip]", inputs: ["luMultiSelectSelectedChip"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
241
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuMultiSelectPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
242
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: LuMultiSelectPanelComponent, isStandalone: true, selector: "lu-select-panel", host: { listeners: { "keydown": "onKeyDown($event)" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "optionsQL", predicate: ɵLuOptionComponent, descendants: true }, { propertyName: "selectedChipsQL", predicate: ɵLuMultiSelectSelectedChipDirective, descendants: true }], ngImport: i0, template: "<!-- TODO : il faudrait remplacer la classe is-expanded par un attribut aria-expanded=\"true\"-->\n<ng-template #searchInputTpl>\n\t<label class=\"panel-search textfield mod-search mod-outlined lu-multiselect-search\">\n\t\t<input\n\t\t\t#searchInput\n\t\t\tclass=\"textfield-input\"\n\t\t\t[(ngModel)]=\"search\"\n\t\t\t(ngModelChange)=\"updateClue($event)\"\n\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t/>\n\t\t<span class=\"u-mask textfield-label\">{{ intl.search }}</span>\n\t</label>\n</ng-template>\n\n<div\n\tclass=\"lu-picker-panel lu-option-picker-panel lu-multiselect-panel mod-multiple\"\n\trole=\"dialog\"\n\tcdkTrapFocus\n\t*ngIf=\"{ options: options$ | async } as ctx\"\n\t[cdkTrapFocusAutoCapture]=\"true\"\n\t[class.is-expanded]=\"isExpanded\"\n\t[attr.aria-expanded]=\"isExpanded ? 'true' : undefined\"\n>\n\t<div class=\"lu-multiselect-panel-form\" *ngIf=\"searchable && !isExpanded\">\n\t\t<ng-container *ngTemplateOutlet=\"searchInputTpl\"></ng-container>\n\t\t<!--\t\t<button class=\"button mod-text mod-icon lu-multiselect-expandbutton\" type=\"button\" (click)=\"toggleExpansion()\">-->\n\t\t<!--\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon\" [class.icon-fullscreen]=\"!isExpanded\" [class.icon-fullscreenExit]=\"isExpanded\"></span>-->\n\t\t<!--\t\t\t{{ isExpanded ? intl.reduce : intl.expand }}-->\n\t\t<!--\t\t</button>-->\n\t</div>\n\t<div class=\"lu-multiselect-panel-columns\">\n\t\t<div class=\"lu-multiselect-panel-columns-col1\" (keydown)=\"onLeftColumnKeydown($event)\">\n\t\t\t<div class=\"lu-multiselect-panel-form\" *ngIf=\"searchable && isExpanded\">\n\t\t\t\t<ng-container *ngTemplateOutlet=\"searchInputTpl\"></ng-container>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tclass=\"lu-picker-content lu-multiselect-panel-columns-col1-content\"\n\t\t\t\t[class.is-loading]=\"loading$ | async\"\n\t\t\t\ttabindex=\"0\"\n\t\t\t\tcdkFocusInitial\n\t\t\t\trole=\"list\"\n\t\t\t\taria-multiselectable=\"true\"\n\t\t\t\t(scroll)=\"onScroll($event)\"\n\t\t\t>\n\t\t\t\t<ng-container *ngIf=\"searchable\">\n\t\t\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\n\t\t\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottom0\">{{ intl.emptyResults }}</p>\n\t\t\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.nativeElement.focus()\">{{ intl.clearSearch }}</button>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-container>\n\n\t\t\t\t<!--\t\t\t\t<ng-container *ngIf=\"canSelectAll\">-->\n\t\t\t\t<!--\t\t\t\t\t<label class=\"checkbox lu-multiselect-selectall\" role=\"option\" [for]=\"selectId + '-select-all'\">-->\n\t\t\t\t<!--\t\t\t\t\t\t<input-->\n\t\t\t\t<!--\t\t\t\t\t\t\tclass=\"checkbox-input\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\ttype=\"checkbox\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\t[class.is-incomplete]=\"(areAllOptionsSelected$ | async) !== true && selectedOptions.length\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\t[id]=\"selectId + '-select-all'\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\t[ngModel]=\"(areAllOptionsSelected$ | async) === true || !!selectedOptions.length\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\t(ngModelChange)=\"toggleAll($event)\"-->\n\t\t\t\t<!--\t\t\t\t\t\t/>-->\n\t\t\t\t<!--\t\t\t\t\t\t<span class=\"checkbox-label\">{{ intl.selectAll }}</span>-->\n\t\t\t\t<!--\t\t\t\t\t</label>-->\n\t\t\t\t<!--\t\t\t\t</ng-container>-->\n\n\t\t\t\t<div class=\"lu-picker-content-option\">\n\t\t\t\t\t<lu-select-option\n\t\t\t\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\n\t\t\t\t\t\t[option]=\"option\"\n\t\t\t\t\t\t[optionTpl]=\"optionTpl\"\n\t\t\t\t\t\t[optionIndex]=\"index\"\n\t\t\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'nearest' }\"\n\t\t\t\t\t\t[isSelected]=\"option | luIsOptionSelected:optionComparer:selectedOptions\"\n\t\t\t\t\t\t(click)=\"toggleOption(option)\"\n\t\t\t\t\t></lu-select-option>\n\t\t\t\t</div>\n\n\t\t\t\t<div *ngIf=\"loading$ | async\" class=\"panel-loading loading lu-picker-loading\"></div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"lu-multiselect-panel-columns-col2\" *ngIf=\"isExpanded\">\n\t\t\t<div class=\"lu-multiselect-emptystate\" *ngIf=\"!selectedOptions.length\">{{ intl.emptySelection }}</div>\n\t\t\t<div class=\"lu-multiselect-chips\" role=\"listbox\" tabindex=\"0\" *ngIf=\"selectedOptions.length\" (keydown)=\"onRightColumnKeydown($event)\">\n\t\t\t\t<div role=\"option\" class=\"chip lu-multiselect-chip\" *ngFor=\"let option of selectedOptions\" [luMultiSelectSelectedChip]=\"option\">\n\t\t\t\t\t<ng-container *luOptionOutlet=\"optionTpl; value: option\"></ng-container>\n\t\t\t\t\t<button type=\"button\" class=\"chip-kill\" tabindex=\"-1\" (click)=\"onChipKillClick(option)\"></button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"selectedOptions.length\" class=\"lu-multiselect-panel-columns-col2-footer\">\n\t\t\t\t<button class=\"button mod-text\" type=\"button\" (click)=\"clear()\">{{ intl.clear }}</button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}.optionPlaceholder{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:var(--palettes-grey-600)}.lu-multiselect-panel{display:flex;flex-direction:column;width:100%;border-radius:var(--commons-borderRadius-M);background-color:var(--colors-white-color);box-shadow:var(--commons-boxShadow-M);transition-property:width,min-width,margin-top,margin-left;transition-duration:var(--commons-animations-durations-fast);transition-timing-function:ease-in}.lu-multiselect-panel-form{padding:var(--spacings-XS);z-index:1}.lu-multiselect-panel-columns{display:flex;gap:var(--spacings-XS);padding:0;width:100%;transition:padding var(--commons-animations-durations-standard) ease;max-height:20rem}.is-expanded .lu-multiselect-panel-columns{padding:var(--spacings-XS)}[class*=lu-multiselect-panel-columns-col]{display:flex;flex-basis:100%;flex-direction:column}.is-expanded [class*=lu-multiselect-panel-columns-col]{border-radius:var(--commons-borderRadius-M)}.lu-multiselect-panel-columns-col2{align-items:flex-start;background-color:var(--palettes-grey-25);min-width:18rem}.is-expanded .lu-multiselect-panel-columns-col1{border:var(--commons-divider-width) solid var(--palettes-grey-200)}.lu-multiselect-panel-columns-col1-content{box-shadow:none;animation:none;padding:var(--spacings-XS);max-height:inherit}.lu-multiselect-panel-columns-col1-content,.lu-multiselect-chips{scroll-snap-type:y proximity;outline:none}.lu-multiselect-panel-columns-col1-content>*,.lu-multiselect-chips>*{scroll-snap-align:center}.lu-multiselect-panel-columns-col1-content:focus-visible,.lu-multiselect-chips:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px}.lu-multiselect-search{flex-grow:1}.lu-multiselect-selectall{padding:var(--spacings-XS);font-weight:600;border-radius:var(--commons-borderRadius-M);margin-bottom:var(--spacings-XXS)}.lu-multiselect-selectall:hover,.lu-multiselect-selectall:focus-within{background-color:var(--palettes-grey-25)}.lu-multiselect-chips{overflow-y:auto;display:flex;flex-grow:1;flex-direction:column;align-items:flex-start;align-self:stretch;gap:var(--spacings-XXS);padding:var(--spacings-XS);border-top-left-radius:var(--commons-borderRadius-M);border-top-right-radius:var(--commons-borderRadius-M)}.lu-multiselect-panel-columns-col2-footer{display:flex;flex:0;align-items:flex-end;align-self:stretch;justify-content:flex-end;border-radius:0!important;border-top:var(--commons-divider-border);margin-top:auto;padding:var(--spacings-XXS) var(--spacings-XS)}.lu-multiselect-panel-form{display:flex;gap:var(--spacings-XS)}.lu-multiselect-panel-form~.lu-multiselect-panel-columns-col1-content{padding-top:0}@media not all and (min-width: 50em){.lu-multiselect-expandbutton{display:none}}.lu-multiselect-emptystate{margin:auto;text-align:center;padding:var(--spacings-S);color:var(--palettes-grey-600)}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: LuIsOptionSelectedPipe, name: "luIsOptionSelected" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ɵLuOptionComponent, selector: "lu-select-option", inputs: ["optionTpl", "isSelected", "option", "optionIndex", "scrollIntoViewOptions"] }, { kind: "directive", type: ɵLuOptionOutletDirective, selector: "[luOptionOutlet]", inputs: ["luOptionOutlet", "luOptionOutletValue"] }, { kind: "directive", type: ɵLuMultiSelectSelectedChipDirective, selector: "[luMultiSelectSelectedChip]", inputs: ["luMultiSelectSelectedChip"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
243
243
|
}
|
|
244
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
244
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuMultiSelectPanelComponent, decorators: [{
|
|
245
245
|
type: Component,
|
|
246
246
|
args: [{ selector: 'lu-select-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [A11yModule, AsyncPipe, FormsModule, LuIsOptionSelectedPipe, NgIf, NgFor, ɵLuOptionComponent, ɵLuOptionOutletDirective, ɵLuMultiSelectSelectedChipDirective, NgTemplateOutlet], template: "<!-- TODO : il faudrait remplacer la classe is-expanded par un attribut aria-expanded=\"true\"-->\n<ng-template #searchInputTpl>\n\t<label class=\"panel-search textfield mod-search mod-outlined lu-multiselect-search\">\n\t\t<input\n\t\t\t#searchInput\n\t\t\tclass=\"textfield-input\"\n\t\t\t[(ngModel)]=\"search\"\n\t\t\t(ngModelChange)=\"updateClue($event)\"\n\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t/>\n\t\t<span class=\"u-mask textfield-label\">{{ intl.search }}</span>\n\t</label>\n</ng-template>\n\n<div\n\tclass=\"lu-picker-panel lu-option-picker-panel lu-multiselect-panel mod-multiple\"\n\trole=\"dialog\"\n\tcdkTrapFocus\n\t*ngIf=\"{ options: options$ | async } as ctx\"\n\t[cdkTrapFocusAutoCapture]=\"true\"\n\t[class.is-expanded]=\"isExpanded\"\n\t[attr.aria-expanded]=\"isExpanded ? 'true' : undefined\"\n>\n\t<div class=\"lu-multiselect-panel-form\" *ngIf=\"searchable && !isExpanded\">\n\t\t<ng-container *ngTemplateOutlet=\"searchInputTpl\"></ng-container>\n\t\t<!--\t\t<button class=\"button mod-text mod-icon lu-multiselect-expandbutton\" type=\"button\" (click)=\"toggleExpansion()\">-->\n\t\t<!--\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon\" [class.icon-fullscreen]=\"!isExpanded\" [class.icon-fullscreenExit]=\"isExpanded\"></span>-->\n\t\t<!--\t\t\t{{ isExpanded ? intl.reduce : intl.expand }}-->\n\t\t<!--\t\t</button>-->\n\t</div>\n\t<div class=\"lu-multiselect-panel-columns\">\n\t\t<div class=\"lu-multiselect-panel-columns-col1\" (keydown)=\"onLeftColumnKeydown($event)\">\n\t\t\t<div class=\"lu-multiselect-panel-form\" *ngIf=\"searchable && isExpanded\">\n\t\t\t\t<ng-container *ngTemplateOutlet=\"searchInputTpl\"></ng-container>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tclass=\"lu-picker-content lu-multiselect-panel-columns-col1-content\"\n\t\t\t\t[class.is-loading]=\"loading$ | async\"\n\t\t\t\ttabindex=\"0\"\n\t\t\t\tcdkFocusInitial\n\t\t\t\trole=\"list\"\n\t\t\t\taria-multiselectable=\"true\"\n\t\t\t\t(scroll)=\"onScroll($event)\"\n\t\t\t>\n\t\t\t\t<ng-container *ngIf=\"searchable\">\n\t\t\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\n\t\t\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottom0\">{{ intl.emptyResults }}</p>\n\t\t\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.nativeElement.focus()\">{{ intl.clearSearch }}</button>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-container>\n\n\t\t\t\t<!--\t\t\t\t<ng-container *ngIf=\"canSelectAll\">-->\n\t\t\t\t<!--\t\t\t\t\t<label class=\"checkbox lu-multiselect-selectall\" role=\"option\" [for]=\"selectId + '-select-all'\">-->\n\t\t\t\t<!--\t\t\t\t\t\t<input-->\n\t\t\t\t<!--\t\t\t\t\t\t\tclass=\"checkbox-input\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\ttype=\"checkbox\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\t[class.is-incomplete]=\"(areAllOptionsSelected$ | async) !== true && selectedOptions.length\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\t[id]=\"selectId + '-select-all'\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\t[ngModel]=\"(areAllOptionsSelected$ | async) === true || !!selectedOptions.length\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\t(ngModelChange)=\"toggleAll($event)\"-->\n\t\t\t\t<!--\t\t\t\t\t\t/>-->\n\t\t\t\t<!--\t\t\t\t\t\t<span class=\"checkbox-label\">{{ intl.selectAll }}</span>-->\n\t\t\t\t<!--\t\t\t\t\t</label>-->\n\t\t\t\t<!--\t\t\t\t</ng-container>-->\n\n\t\t\t\t<div class=\"lu-picker-content-option\">\n\t\t\t\t\t<lu-select-option\n\t\t\t\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\n\t\t\t\t\t\t[option]=\"option\"\n\t\t\t\t\t\t[optionTpl]=\"optionTpl\"\n\t\t\t\t\t\t[optionIndex]=\"index\"\n\t\t\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'nearest' }\"\n\t\t\t\t\t\t[isSelected]=\"option | luIsOptionSelected:optionComparer:selectedOptions\"\n\t\t\t\t\t\t(click)=\"toggleOption(option)\"\n\t\t\t\t\t></lu-select-option>\n\t\t\t\t</div>\n\n\t\t\t\t<div *ngIf=\"loading$ | async\" class=\"panel-loading loading lu-picker-loading\"></div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"lu-multiselect-panel-columns-col2\" *ngIf=\"isExpanded\">\n\t\t\t<div class=\"lu-multiselect-emptystate\" *ngIf=\"!selectedOptions.length\">{{ intl.emptySelection }}</div>\n\t\t\t<div class=\"lu-multiselect-chips\" role=\"listbox\" tabindex=\"0\" *ngIf=\"selectedOptions.length\" (keydown)=\"onRightColumnKeydown($event)\">\n\t\t\t\t<div role=\"option\" class=\"chip lu-multiselect-chip\" *ngFor=\"let option of selectedOptions\" [luMultiSelectSelectedChip]=\"option\">\n\t\t\t\t\t<ng-container *luOptionOutlet=\"optionTpl; value: option\"></ng-container>\n\t\t\t\t\t<button type=\"button\" class=\"chip-kill\" tabindex=\"-1\" (click)=\"onChipKillClick(option)\"></button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"selectedOptions.length\" class=\"lu-multiselect-panel-columns-col2-footer\">\n\t\t\t\t<button class=\"button mod-text\" type=\"button\" (click)=\"clear()\">{{ intl.clear }}</button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}.optionPlaceholder{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:var(--palettes-grey-600)}.lu-multiselect-panel{display:flex;flex-direction:column;width:100%;border-radius:var(--commons-borderRadius-M);background-color:var(--colors-white-color);box-shadow:var(--commons-boxShadow-M);transition-property:width,min-width,margin-top,margin-left;transition-duration:var(--commons-animations-durations-fast);transition-timing-function:ease-in}.lu-multiselect-panel-form{padding:var(--spacings-XS);z-index:1}.lu-multiselect-panel-columns{display:flex;gap:var(--spacings-XS);padding:0;width:100%;transition:padding var(--commons-animations-durations-standard) ease;max-height:20rem}.is-expanded .lu-multiselect-panel-columns{padding:var(--spacings-XS)}[class*=lu-multiselect-panel-columns-col]{display:flex;flex-basis:100%;flex-direction:column}.is-expanded [class*=lu-multiselect-panel-columns-col]{border-radius:var(--commons-borderRadius-M)}.lu-multiselect-panel-columns-col2{align-items:flex-start;background-color:var(--palettes-grey-25);min-width:18rem}.is-expanded .lu-multiselect-panel-columns-col1{border:var(--commons-divider-width) solid var(--palettes-grey-200)}.lu-multiselect-panel-columns-col1-content{box-shadow:none;animation:none;padding:var(--spacings-XS);max-height:inherit}.lu-multiselect-panel-columns-col1-content,.lu-multiselect-chips{scroll-snap-type:y proximity;outline:none}.lu-multiselect-panel-columns-col1-content>*,.lu-multiselect-chips>*{scroll-snap-align:center}.lu-multiselect-panel-columns-col1-content:focus-visible,.lu-multiselect-chips:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px}.lu-multiselect-search{flex-grow:1}.lu-multiselect-selectall{padding:var(--spacings-XS);font-weight:600;border-radius:var(--commons-borderRadius-M);margin-bottom:var(--spacings-XXS)}.lu-multiselect-selectall:hover,.lu-multiselect-selectall:focus-within{background-color:var(--palettes-grey-25)}.lu-multiselect-chips{overflow-y:auto;display:flex;flex-grow:1;flex-direction:column;align-items:flex-start;align-self:stretch;gap:var(--spacings-XXS);padding:var(--spacings-XS);border-top-left-radius:var(--commons-borderRadius-M);border-top-right-radius:var(--commons-borderRadius-M)}.lu-multiselect-panel-columns-col2-footer{display:flex;flex:0;align-items:flex-end;align-self:stretch;justify-content:flex-end;border-radius:0!important;border-top:var(--commons-divider-border);margin-top:auto;padding:var(--spacings-XXS) var(--spacings-XS)}.lu-multiselect-panel-form{display:flex;gap:var(--spacings-XS)}.lu-multiselect-panel-form~.lu-multiselect-panel-columns-col1-content{padding-top:0}@media not all and (min-width: 50em){.lu-multiselect-expandbutton{display:none}}.lu-multiselect-emptystate{margin:auto;text-align:center;padding:var(--spacings-S);color:var(--palettes-grey-600)}\n"] }]
|
|
247
247
|
}], propDecorators: { searchInput: [{
|
|
@@ -363,10 +363,10 @@ class LuMultiSelectPanelRefFactory {
|
|
|
363
363
|
...(config.offsetY ? { offsetY: yDirection === 'bottom' ? config.offsetY : -config.offsetY } : {}),
|
|
364
364
|
};
|
|
365
365
|
}
|
|
366
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
367
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
366
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuMultiSelectPanelRefFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
367
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuMultiSelectPanelRefFactory }); }
|
|
368
368
|
}
|
|
369
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
369
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuMultiSelectPanelRefFactory, decorators: [{
|
|
370
370
|
type: Injectable
|
|
371
371
|
}] });
|
|
372
372
|
|
|
@@ -418,8 +418,8 @@ class LuMultiSelectInputComponent extends ALuSelectInputComponent {
|
|
|
418
418
|
this.onChange?.([]);
|
|
419
419
|
this.value = [];
|
|
420
420
|
}
|
|
421
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
422
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
421
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuMultiSelectInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
422
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: LuMultiSelectInputComponent, isStandalone: true, selector: "lu-multi-select", inputs: { valuesTpl: "valuesTpl", expandedPositionStrategy: "expandedPositionStrategy", expanded: "expanded", panelRef: "panelRef" }, host: { properties: { "class.mod-multiple": "this.modMultipleClass" } }, providers: [
|
|
423
423
|
{
|
|
424
424
|
provide: NG_VALUE_ACCESSOR,
|
|
425
425
|
useExisting: forwardRef(() => LuMultiSelectInputComponent),
|
|
@@ -434,7 +434,7 @@ class LuMultiSelectInputComponent extends ALuSelectInputComponent {
|
|
|
434
434
|
LuMultiSelectPanelRefFactory,
|
|
435
435
|
], usesInheritance: true, ngImport: i0, template: "<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\n<div class=\"lu-select-value\">\n\t<div class=\"lu-select-display-wrapper\">\n\t\t<ng-container *luOptionOutlet=\"valuesTpl; value: value\"></ng-container>\n\t</div>\n</div>\n<div class=\"lu-select-suffix\">\n\t<a *ngIf=\"hasValue && clearable\" role=\"button\" class=\"clear\" (click)=\"clearValue($event)\">\n\t\t<span class=\"u-mask\">{{intl.clear}}</span>\n\t</a>\n</div>\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}:host{--components-select-input-padding-horizontal: var(--spacings-XS);--components-select-input-padding-vertical: var(--spacings-XS);--components-select-framed-color: var(--palettes-grey-500);--components-select-framed-color50: var(--palettes-grey-50);--components-select-framed-see-through: var(--palettes-grey-50);--components-select-framed-text: var(--palettes-grey-800);--components-select-framed-placeholder: #cccccc;--components-select-framed-side-padding: var(--spacings-S);--components-select-framed-top-padding: var(--spacings-L);--components-select-framed-bottom-padding: var(--spacings-S);--components-select-framed-label-top-offset: var(--spacings-XS);cursor:pointer;outline:none;padding:0;gap:0}:host:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;color:var(--palettes-grey-600);bottom:var(--components-select-input-padding-vertical);font-size:var(--sizes-M-lineHeight);line-height:var(--sizes-M-lineHeight);pointer-events:none;position:absolute;right:var(--components-select-input-padding-horizontal);transition:transform var(--commons-animations-durations-standard) ease}@supports (content: \"*\"/\"\"){:host:after{content:\"\\e97c\"/\"\"}}@supports not (content: \"*\"/\"\"){:host:after{content:\"\\e97c\"}}:host[disabled],:host.is-disabled{cursor:not-allowed;pointer-events:all}.lu-select-display-wrapper{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lu-select-value{line-height:var(--sizes-M-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-M-lineHeight));padding:var(--components-select-input-padding-vertical) 3.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all var(--commons-animations-durations-standard);display:none}.lu-select-placeholder{color:var(--palettes-grey-400);line-height:var(--sizes-M-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-M-lineHeight));padding:var(--components-select-input-padding-vertical) 3.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all var(--commons-animations-durations-standard);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-suffix,.lu-select-clearer{position:absolute;bottom:.75rem;right:2.25rem}::ng-deep .lu-select-value .label{padding:var(--spacings-XXS) var(--spacings-XS);margin-left:0}::ng-deep .lu-select-value .chip{vertical-align:baseline;max-width:100%;margin:0 var(--spacings-XXS) var(--spacings-XXS) 0;text-overflow:ellipsis;overflow:hidden;vertical-align:top;white-space:nowrap}:host-context(.textfield.mod-S){padding:0}:host-context(.textfield.mod-S) .lu-select-value,:host-context(.textfield.mod-S) .lu-select-placeholder{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-XS-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-XS-lineHeight))}:host-context(.textfield.mod-S) .lu-select-clearer{bottom:var(--spacings-XS)}:host-context(.textfield.mod-S):after{line-height:var(--sizes-XS-lineHeight);font-size:var(--sizes-S-lineHeight)}:host-context(.textfield.mod-S) .lu-select-suffix{bottom:.5rem;right:2rem}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .label{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);font-weight:600;margin:0;padding:0;background-color:transparent}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .chip{height:var(--sizes-XS-lineHeight);line-height:var(--sizes-XS-lineHeight);font-size:var(--sizes-XS-fontSize);padding-left:var(--spacings-XXS);padding-right:var(--spacings-XXS);gap:var(--spacings-XXS)}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}:host-context(.textfield.mod-framed).textfield-input,:host-context(.form.mod-framed).textfield-input{padding:var(--components-select-framed-top-padding) 0 0}:host-context(.textfield.mod-framed).textfield-input:after,:host-context(.form.mod-framed).textfield-input:after{color:var(--palettes-grey-500);bottom:var(--components-select-framed-bottom-padding);right:var(--spacings-XS)}:host-context(.textfield.mod-framed).textfield-input .lu-select-value,:host-context(.form.mod-framed).textfield-input .lu-select-value{padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-placeholder,:host-context(.form.mod-framed).textfield-input .lu-select-placeholder{color:var(--palettes-grey-400);padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-suffix,:host-context(.form.mod-framed).textfield-input .lu-select-suffix{bottom:var(--components-select-framed-bottom-padding);right:1.7rem}:host-context(.textfield.mod-filter) .lu-select-value,:host-context(.textfield.mod-filter) .lu-select-placeholder{padding:0;height:auto;padding-top:var(--spacings-S);color:var(--palettes-grey-800)}:host-context(.textfield.mod-material):after{color:var(--palettes-grey-500);bottom:.6rem;right:0}:host-context(.textfield.mod-material) .lu-select-value,:host-context(.textfield.mod-material) .lu-select-placeholder{padding-left:0;padding-right:.8rem}:host-context(.textfield.mod-material) .lu-select-suffix{right:calc(2 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material).is-select .lu-select-placeholder{display:none}:host-context(.textfield.mod-material).mod-search:after{bottom:0}:host-context(.textfield.mod-material).mod-search .lu-select-suffix{right:calc(2.75 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material .textfield-input.is-focused) .lu-select-placeholder{display:none}:host(.mod-multiple) .lu-select-value{height:auto;align-items:center}:host(.mod-multiple) .lu-select-display-wrapper{overflow:visible;white-space:normal;margin-bottom:calc(var(--spacings-XXS) * -1)}:host-context(.textfield.mod-outlined).textfield-input:after{color:var(--palettes-grey-600)}:host-context(.textfield.mod-outlined).textfield-input .lu-select-placeholder{color:var(--palettes-grey-400)}:host-context(.textfield.mod-outlined) :host-context(.textfield-input.is-error):after{color:var(--palettes-error-600)}:host-context(.textfield.mod-outlined) :host-context(.textfield-input.is-error) .lu-select-placeholder{color:var(--palettes-error-400)}:host-context(.textfield-input.is-filled) .lu-select-placeholder{display:none}:host-context(.textfield-input.is-filled) .lu-select-value{display:flex;align-items:flex-start}:host-context(.textfield .textfield-input.is-focused):after{transform:rotate(-180deg)}:host-context(.textfield-input.is-clearable) .lu-select-value{padding-right:3.5rem}:host-context(.textfield-input.is-error):after{color:var(--palettes-error-700)}:host-context(.textfield-input.is-error) .lu-select-placeholder{color:var(--palettes-error-400)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]):after{color:var(--commons-disabled-color)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]) .lu-select-placeholder{color:var(--commons-disabled-placeholder)}:host[aria-expanded=true]{outline:none}.lu-select-value{padding-right:2rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: LuTooltipModule }, { kind: "directive", type: ɵLuOptionOutletDirective, selector: "[luOptionOutlet]", inputs: ["luOptionOutlet", "luOptionOutletValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
436
436
|
}
|
|
437
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
437
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuMultiSelectInputComponent, decorators: [{
|
|
438
438
|
type: Component,
|
|
439
439
|
args: [{ selector: 'lu-multi-select', standalone: true, imports: [CommonModule, LuTooltipModule, ɵLuOptionOutletDirective, IconComponent], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
440
440
|
{
|
|
@@ -571,8 +571,8 @@ class LuMultiSelectDefaultDisplayerComponent {
|
|
|
571
571
|
ngAfterViewInit() {
|
|
572
572
|
this.ngAfterViewInit$.next();
|
|
573
573
|
}
|
|
574
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
575
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
574
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuMultiSelectDefaultDisplayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
575
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: LuMultiSelectDefaultDisplayerComponent, isStandalone: true, selector: "lu-multi-select-default-displayer", host: { properties: { "style.--hidden-option-count-width.px": "this.hiddenOptionCountWidthCssVar", "style.--hidden-option-count-offset-left.px": "this.hiddenOptionCountOffsetLeftCssVar" } }, viewQueries: [{ propertyName: "overflowCountContainer", first: true, predicate: ["overflow"], descendants: true, static: true }, { propertyName: "chipsContainer", first: true, predicate: ["chipsContainer"], descendants: true, static: true }, { propertyName: "chipsQL", predicate: ["chip"], descendants: true }], ngImport: i0, template: `
|
|
576
576
|
<div class="chips-container" #chipsContainer>
|
|
577
577
|
<div
|
|
578
578
|
#chip
|
|
@@ -596,7 +596,7 @@ class LuMultiSelectDefaultDisplayerComponent {
|
|
|
596
596
|
</div>
|
|
597
597
|
`, isInline: true, styles: [":host{display:flex;height:var(--sizes-M-lineHeight);position:relative;padding-right:var(--hidden-option-count-width);overflow:hidden}:host-context(.textfield.mod-S){height:var(--sizes-S-lineHeight)}:host-context(lu-multi-select.is-disabled) .chip{background:var(--palettes-grey-100);color:var(--palettes-grey-500)}:host-context(lu-multi-select.is-disabled) .chip .chip-kill{display:none}.lu-multiselect-counter{position:absolute;top:0;left:calc(var(--hidden-option-count-offset-left) + var(--spacings-XXS))}.lu-multiselect-counter-chip:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px}.lu-multiselect-chip[aria-hidden]{visibility:hidden}.lu-multiselect-chip-value{max-width:4rem;text-overflow:ellipsis;overflow:hidden}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: LuTooltipModule }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgPlural, selector: "[ngPlural]", inputs: ["ngPlural"] }, { kind: "directive", type: NgPluralCase, selector: "[ngPluralCase]" }, { kind: "directive", type: ɵLuOptionOutletDirective, selector: "[luOptionOutlet]", inputs: ["luOptionOutlet", "luOptionOutletValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
598
598
|
}
|
|
599
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
599
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuMultiSelectDefaultDisplayerComponent, decorators: [{
|
|
600
600
|
type: Component,
|
|
601
601
|
args: [{ selector: 'lu-multi-select-default-displayer', standalone: true, imports: [AsyncPipe, LuTooltipModule, NgIf, NgFor, NgPlural, NgPluralCase, ɵLuOptionOutletDirective], template: `
|
|
602
602
|
<div class="chips-container" #chipsContainer>
|
|
@@ -648,16 +648,16 @@ class LuMultiDisplayerDirective {
|
|
|
648
648
|
static ngTemplateContextGuard(_dir, ctx) {
|
|
649
649
|
return true;
|
|
650
650
|
}
|
|
651
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
652
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
651
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuMultiDisplayerDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
652
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: LuMultiDisplayerDirective, isStandalone: true, selector: "[luMultiDisplayer]", inputs: { select: ["luMultiDisplayerSelect", "select"] }, ngImport: i0 }); }
|
|
653
653
|
}
|
|
654
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
654
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuMultiDisplayerDirective, decorators: [{
|
|
655
655
|
type: Directive,
|
|
656
656
|
args: [{
|
|
657
657
|
selector: '[luMultiDisplayer]',
|
|
658
658
|
standalone: true,
|
|
659
659
|
}]
|
|
660
|
-
}], ctorParameters:
|
|
660
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { select: [{
|
|
661
661
|
type: Input,
|
|
662
662
|
args: ['luMultiDisplayerSelect']
|
|
663
663
|
}] } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-multi-select.mjs","sources":["../../../packages/ng/multi-select/select.translate.ts","../../../packages/ng/multi-select/input/panel.model.ts","../../../packages/ng/multi-select/select.model.ts","../../../packages/ng/multi-select/panel/option-selected.pipe.ts","../../../packages/ng/multi-select/panel/selected-chip.directive.ts","../../../packages/ng/multi-select/panel/panel.component.ts","../../../packages/ng/multi-select/panel/panel.component.html","../../../packages/ng/multi-select/input/panel-ref.factory.ts","../../../packages/ng/multi-select/input/select-input.component.ts","../../../packages/ng/multi-select/input/select-input.component.html","../../../packages/ng/multi-select/displayer/default-displayer.translate.ts","../../../packages/ng/multi-select/displayer/default-displayer.component.ts","../../../packages/ng/multi-select/displayer/displayer.directive.ts","../../../packages/ng/multi-select/lucca-front-ng-multi-select.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_MULTI_SELECT_TRANSLATIONS = new InjectionToken('LuMultiSelectTranslations', {\n\tfactory: () => luMultiSelectTranslations,\n});\n\nexport interface ILuMultiSelectLabel {\n\tplaceholder: string;\n\tsearch: string;\n\tclear: string;\n\tclearSearch: string;\n\temptyResults: string;\n\temptySelection: string;\n\texpand: string;\n\treduce: string;\n\tselectAll: string;\n}\n\nexport const luMultiSelectTranslations: ILuTranslation<ILuMultiSelectLabel> = {\n\ten: {\n\t\tplaceholder: 'Select an option',\n\t\tsearch: 'Search',\n\t\tclear: 'Clear selection',\n\t\tclearSearch: 'Clear search',\n\t\temptyResults: 'No results',\n\t\temptySelection: 'Select items in the left list to start',\n\t\texpand: 'Expand',\n\t\treduce: 'Reduce',\n\t\tselectAll: 'Select all',\n\t},\n\tfr: {\n\t\tplaceholder: 'Sélectionnez une option',\n\t\tsearch: 'Rechercher',\n\t\tclear: 'Vider la sélection',\n\t\tclearSearch: 'Vider la recherche',\n\t\temptySelection: 'Sélectionnez les éléments dans la liste de gauche pour commencer',\n\t\temptyResults: 'Aucun résultat pour votre recherche',\n\t\texpand: 'Étendre',\n\t\treduce: 'Réduire',\n\t\tselectAll: 'Tout sélectionner',\n\t},\n\tde: {\n\t\tplaceholder: 'Wählen Sie eine Option',\n\t\tsearch: 'Suche',\n\t\tclear: 'Auswahl löschen',\n\t\tclearSearch: 'Suche löschen',\n\t\temptyResults: 'Keine Ergebnisse für Ihre Suche',\n\t\temptySelection: 'Wählen Sie Elemente in der linken Liste aus, um zu beginnen',\n\t\texpand: 'Erweitern',\n\t\treduce: 'Reduzieren',\n\t\tselectAll: 'Alles auswählen',\n\t},\n\tes: {\n\t\tplaceholder: 'Seleccione una opción',\n\t\tsearch: 'Buscar',\n\t\tclear: 'Borrar selección',\n\t\tclearSearch: 'Borrar búsqueda',\n\t\temptyResults: 'No hay resultados para su búsqueda',\n\t\temptySelection: 'Seleccione elementos en la lista de la izquierda para comenzar',\n\t\texpand: 'Expandir',\n\t\treduce: 'Reducir',\n\t\tselectAll: 'Seleccionar todo',\n\t},\n\tpt: {\n\t\tplaceholder: 'Selecione uma opção',\n\t\tsearch: 'Pesquisar',\n\t\tclear: 'Limpar seleção',\n\t\tclearSearch: 'Limpar pesquisa',\n\t\temptyResults: 'Nenhum resultado para sua pesquisa',\n\t\temptySelection: 'Selecione itens na lista à esquerda para começar',\n\t\texpand: 'Expandir',\n\t\treduce: 'Reduzir',\n\t\tselectAll: 'Selecionar tudo',\n\t},\n};\n","import { EventEmitter } from '@angular/core';\nimport { LuSelectPanelRef } from '@lucca-front/ng/core-select';\nimport { Observable } from 'rxjs';\n\nexport abstract class LuMultiSelectPanelRef<T> extends LuSelectPanelRef<T, T[]> {\n\tselectAll = new EventEmitter<void>();\n\n\tareAllOptionsSelected$: Observable<boolean | undefined>;\n\n\toverride close(): void {\n\t\tsuper.close();\n\t\tthis.selectAll.complete();\n\t}\n\n\tabstract updateSelectedOptions(selectedOptions: T[]): void;\n\n\tabstract useExpandedPosition(): void;\n\n\tabstract useDefaultPosition(): void;\n}\n","import { InjectionToken, TemplateRef, Type } from '@angular/core';\nimport { LuOptionContext } from '@lucca-front/ng/core-select';\nimport { Observable } from 'rxjs';\n\nexport interface ILuMultiSelectPanelData<T> {\n\toptions$: Observable<T[]>;\n\tloading$: Observable<boolean>;\n\toptionComparer: (option1: T, option2: T) => boolean;\n\tinitialValue: T[] | undefined;\n\toptionTpl: TemplateRef<LuOptionContext<T>> | Type<unknown>;\n\tsearchable: boolean;\n\texpanded: boolean;\n\tcanSelectAll: boolean;\n\tareAllOptionsSelected$: Observable<boolean | undefined>;\n}\n\nexport const MULTI_SELECT_PANEL_DATA = new InjectionToken<ILuMultiSelectPanelData<unknown>>('MultiSelectPanelData');\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'luIsOptionSelected',\n\tstandalone: true,\n})\nexport class LuIsOptionSelectedPipe implements PipeTransform {\n\ttransform<T>(option: T, comparer: (option1: T, option2: T) => boolean, selectedOptions: T[]): boolean {\n\t\treturn selectedOptions.some((selectedOption) => comparer(option, selectedOption));\n\t}\n}\n","import { Highlightable } from '@angular/cdk/a11y';\nimport { Directive, ElementRef, Input, inject } from '@angular/core';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[luMultiSelectSelectedChip]',\n})\nexport class ɵLuMultiSelectSelectedChipDirective<T> implements Highlightable {\n\t@Input('luMultiSelectSelectedChip') option?: T;\n\n\telementRef = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n\n\tsetActiveStyles(): void {\n\t\tthis.elementRef.querySelector('button').focus();\n\t}\n\tsetInactiveStyles(): void {\n\t\t// Nothing to do\n\t}\n}\n","import { A11yModule, ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { AsyncPipe, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, HostListener, inject, QueryList, ViewChild, ViewChildren } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { SELECT_ID, ɵLuOptionComponent, ɵLuOptionOutletDirective } from '@lucca-front/ng/core-select';\nimport { asyncScheduler, filter, map, observeOn, take, takeUntil } from 'rxjs';\nimport { LuMultiSelectPanelRef } from '../input/panel.model';\nimport { ILuMultiSelectPanelData, MULTI_SELECT_PANEL_DATA } from '../select.model';\nimport { LU_MULTI_SELECT_TRANSLATIONS } from '../select.translate';\nimport { LuIsOptionSelectedPipe } from './option-selected.pipe';\nimport { ɵLuMultiSelectSelectedChipDirective } from './selected-chip.directive';\n\n@Component({\n\tselector: 'lu-select-panel',\n\ttemplateUrl: './panel.component.html',\n\tstyleUrls: ['./panel.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [A11yModule, AsyncPipe, FormsModule, LuIsOptionSelectedPipe, NgIf, NgFor, ɵLuOptionComponent, ɵLuOptionOutletDirective, ɵLuMultiSelectSelectedChipDirective, NgTemplateOutlet],\n})\nexport class LuMultiSelectPanelComponent<T> implements AfterViewInit {\n\tprotected panelData = inject<ILuMultiSelectPanelData<T>>(MULTI_SELECT_PANEL_DATA);\n\tpanelRef = inject<LuMultiSelectPanelRef<T>>(LuMultiSelectPanelRef);\n\tselectId = inject(SELECT_ID);\n\tintl = getIntl(LU_MULTI_SELECT_TRANSLATIONS);\n\tisExpanded = this.panelData.expanded;\n\n\toptions$ = this.panelData.options$;\n\tloading$ = this.panelData.loading$;\n\tareAllOptionsSelected$ = this.panelData.areAllOptionsSelected$;\n\tcanSelectAll = false; // TODO connect to panel options when we'll be ok on designing select all\n\toptionComparer = this.panelData.optionComparer;\n\tselectedOptions: T[] = this.panelData.initialValue || [];\n\toptionTpl = this.panelData.optionTpl;\n\tsearchable = this.panelData.searchable;\n\n\t@ViewChild('searchInput')\n\tsearchInput: ElementRef<HTMLInputElement> | undefined;\n\n\t@ViewChildren(ɵLuOptionComponent) optionsQL: QueryList<ɵLuOptionComponent<T>>;\n\tprivate leftColumnKeyManager: ActiveDescendantKeyManager<ɵLuOptionComponent<T>>;\n\n\t@ViewChildren(ɵLuMultiSelectSelectedChipDirective) selectedChipsQL: QueryList<ɵLuMultiSelectSelectedChipDirective<T>>;\n\tprivate rightColumnKeyManager: ActiveDescendantKeyManager<ɵLuMultiSelectSelectedChipDirective<T>>;\n\n\tsearch: string | null = null;\n\n\tonScroll(evt: Event): void {\n\t\tif (!(evt.target instanceof HTMLElement)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (evt.target.scrollTop === 0) {\n\t\t\tthis.panelRef.previousPage.emit();\n\t\t}\n\n\t\tif (evt.target.scrollHeight - evt.target.scrollTop - evt.target.clientHeight < 1) {\n\t\t\tthis.panelRef.nextPage.emit();\n\t\t}\n\t}\n\n\tngAfterViewInit(): void {\n\t\tif (!this.optionsQL) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.initLeftColumnKeyManager();\n\t\tthis.initRightColumnKeyManager();\n\n\t\tif (this.searchInput) {\n\t\t\tsetTimeout(() => this.searchInput.nativeElement.focus());\n\t\t}\n\n\t\tif (this.isExpanded) {\n\t\t\tthis.panelRef.useExpandedPosition();\n\t\t} else {\n\t\t\tthis.panelRef.useDefaultPosition();\n\t\t}\n\t}\n\n\t@HostListener('keydown', ['$event'])\n\tonKeyDown($event: KeyboardEvent): void {\n\t\tif ($event.key === 'Escape') {\n\t\t\treturn this.panelRef.close();\n\t\t}\n\t}\n\n\tonLeftColumnKeydown($event: KeyboardEvent): void {\n\t\tif ($event.code === 'Space' || $event.code === 'Enter') {\n\t\t\tthis.toggleOption(this.leftColumnKeyManager?.activeItem?.option);\n\t\t\t$event.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.leftColumnKeyManager?.onKeydown($event);\n\t}\n\n\tonRightColumnKeydown($event: KeyboardEvent): void {\n\t\tconst option = this.rightColumnKeyManager?.activeItem?.option;\n\n\t\tif (option && ($event.code === 'Space' || $event.code === 'Enter')) {\n\t\t\tthis.onChipKillClick(option);\n\t\t\t$event.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.rightColumnKeyManager?.onKeydown($event);\n\t}\n\n\t// toggleAll(shouldSelectAll: boolean): void {\n\t// \tif (shouldSelectAll) {\n\t// \t\tthis.panelRef.selectAll.emit();\n\t// \t} else {\n\t// \t\tthis.clear();\n\t// \t}\n\t// }\n\n\tupdateClue(clue: string | null): void {\n\t\tthis.search = clue;\n\t\tthis.panelRef.clueChanged.emit(clue);\n\n\t\tsetTimeout(() => this.leftColumnKeyManager.setFirstItemActive());\n\t}\n\n\ttoggleOption(option: T): void {\n\t\tconst selectedOption = this.selectedOptions.find((o) => this.optionComparer(o, option));\n\t\tthis.selectedOptions = selectedOption ? this.selectedOptions.filter((o) => o !== selectedOption) : [...this.selectedOptions, option];\n\t\tthis.panelRef.emitValue(this.selectedOptions);\n\t\tthis.leftColumnKeyManager?.setActiveItem(this.optionsQL.toArray().findIndex((o) => o.option === option));\n\t}\n\n\tonChipKillClick(option: T): void {\n\t\tconst optionToUnselectIndex = this.selectedOptions.findIndex((o) => this.optionComparer(o, option));\n\t\tthis.selectedOptions = this.selectedOptions.filter((_, index) => index !== optionToUnselectIndex);\n\t\tthis.panelRef.emitValue(this.selectedOptions);\n\n\t\tif (this.selectedOptions.length && this.rightColumnKeyManager) {\n\t\t\toptionToUnselectIndex >= this.selectedOptions.length ? this.rightColumnKeyManager.setPreviousItemActive() : this.rightColumnKeyManager.setNextItemActive();\n\t\t}\n\t}\n\n\tclear(): void {\n\t\tthis.selectedOptions = [];\n\t\tthis.panelRef.emitValue(this.selectedOptions);\n\t}\n\n\tprotected initLeftColumnKeyManager(): void {\n\t\tthis.leftColumnKeyManager = new ActiveDescendantKeyManager(this.optionsQL).withHomeAndEnd();\n\n\t\tif (this.selectedOptions) {\n\t\t\tthis.options$\n\t\t\t\t?.pipe(\n\t\t\t\t\tobserveOn(asyncScheduler),\n\t\t\t\t\tmap((options) => (this.selectedOptions.length ? options.findIndex((o) => this.optionComparer(o, this.selectedOptions[0])) : -1)),\n\t\t\t\t\tfilter((index) => index !== -1),\n\t\t\t\t\ttake(1),\n\t\t\t\t\ttakeUntil(this.panelRef.closed),\n\t\t\t\t)\n\t\t\t\t.subscribe((selectedIndex) => this.leftColumnKeyManager.setActiveItem(selectedIndex));\n\t\t}\n\n\t\tthis.leftColumnKeyManager.change\n\t\t\t.pipe(\n\t\t\t\tmap(() => this.leftColumnKeyManager.activeItem?.id),\n\t\t\t\ttakeUntil(this.panelRef.closed),\n\t\t\t)\n\t\t\t.subscribe((activeDescendant) => this.panelRef.activeOptionIdChanged.emit(activeDescendant));\n\t}\n\n\tprotected initRightColumnKeyManager(): void {\n\t\tthis.rightColumnKeyManager = new ActiveDescendantKeyManager(this.selectedChipsQL).withHomeAndEnd();\n\t}\n}\n","<!-- TODO : il faudrait remplacer la classe is-expanded par un attribut aria-expanded=\"true\"-->\n<ng-template #searchInputTpl>\n\t<label class=\"panel-search textfield mod-search mod-outlined lu-multiselect-search\">\n\t\t<input\n\t\t\t#searchInput\n\t\t\tclass=\"textfield-input\"\n\t\t\t[(ngModel)]=\"search\"\n\t\t\t(ngModelChange)=\"updateClue($event)\"\n\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t/>\n\t\t<span class=\"u-mask textfield-label\">{{ intl.search }}</span>\n\t</label>\n</ng-template>\n\n<div\n\tclass=\"lu-picker-panel lu-option-picker-panel lu-multiselect-panel mod-multiple\"\n\trole=\"dialog\"\n\tcdkTrapFocus\n\t*ngIf=\"{ options: options$ | async } as ctx\"\n\t[cdkTrapFocusAutoCapture]=\"true\"\n\t[class.is-expanded]=\"isExpanded\"\n\t[attr.aria-expanded]=\"isExpanded ? 'true' : undefined\"\n>\n\t<div class=\"lu-multiselect-panel-form\" *ngIf=\"searchable && !isExpanded\">\n\t\t<ng-container *ngTemplateOutlet=\"searchInputTpl\"></ng-container>\n\t\t<!--\t\t<button class=\"button mod-text mod-icon lu-multiselect-expandbutton\" type=\"button\" (click)=\"toggleExpansion()\">-->\n\t\t<!--\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon\" [class.icon-fullscreen]=\"!isExpanded\" [class.icon-fullscreenExit]=\"isExpanded\"></span>-->\n\t\t<!--\t\t\t{{ isExpanded ? intl.reduce : intl.expand }}-->\n\t\t<!--\t\t</button>-->\n\t</div>\n\t<div class=\"lu-multiselect-panel-columns\">\n\t\t<div class=\"lu-multiselect-panel-columns-col1\" (keydown)=\"onLeftColumnKeydown($event)\">\n\t\t\t<div class=\"lu-multiselect-panel-form\" *ngIf=\"searchable && isExpanded\">\n\t\t\t\t<ng-container *ngTemplateOutlet=\"searchInputTpl\"></ng-container>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tclass=\"lu-picker-content lu-multiselect-panel-columns-col1-content\"\n\t\t\t\t[class.is-loading]=\"loading$ | async\"\n\t\t\t\ttabindex=\"0\"\n\t\t\t\tcdkFocusInitial\n\t\t\t\trole=\"list\"\n\t\t\t\taria-multiselectable=\"true\"\n\t\t\t\t(scroll)=\"onScroll($event)\"\n\t\t\t>\n\t\t\t\t<ng-container *ngIf=\"searchable\">\n\t\t\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\n\t\t\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottom0\">{{ intl.emptyResults }}</p>\n\t\t\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.nativeElement.focus()\">{{ intl.clearSearch }}</button>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-container>\n\n\t\t\t\t<!--\t\t\t\t<ng-container *ngIf=\"canSelectAll\">-->\n\t\t\t\t<!--\t\t\t\t\t<label class=\"checkbox lu-multiselect-selectall\" role=\"option\" [for]=\"selectId + '-select-all'\">-->\n\t\t\t\t<!--\t\t\t\t\t\t<input-->\n\t\t\t\t<!--\t\t\t\t\t\t\tclass=\"checkbox-input\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\ttype=\"checkbox\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\t[class.is-incomplete]=\"(areAllOptionsSelected$ | async) !== true && selectedOptions.length\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\t[id]=\"selectId + '-select-all'\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\t[ngModel]=\"(areAllOptionsSelected$ | async) === true || !!selectedOptions.length\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\t(ngModelChange)=\"toggleAll($event)\"-->\n\t\t\t\t<!--\t\t\t\t\t\t/>-->\n\t\t\t\t<!--\t\t\t\t\t\t<span class=\"checkbox-label\">{{ intl.selectAll }}</span>-->\n\t\t\t\t<!--\t\t\t\t\t</label>-->\n\t\t\t\t<!--\t\t\t\t</ng-container>-->\n\n\t\t\t\t<div class=\"lu-picker-content-option\">\n\t\t\t\t\t<lu-select-option\n\t\t\t\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\n\t\t\t\t\t\t[option]=\"option\"\n\t\t\t\t\t\t[optionTpl]=\"optionTpl\"\n\t\t\t\t\t\t[optionIndex]=\"index\"\n\t\t\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'nearest' }\"\n\t\t\t\t\t\t[isSelected]=\"option | luIsOptionSelected:optionComparer:selectedOptions\"\n\t\t\t\t\t\t(click)=\"toggleOption(option)\"\n\t\t\t\t\t></lu-select-option>\n\t\t\t\t</div>\n\n\t\t\t\t<div *ngIf=\"loading$ | async\" class=\"panel-loading loading lu-picker-loading\"></div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"lu-multiselect-panel-columns-col2\" *ngIf=\"isExpanded\">\n\t\t\t<div class=\"lu-multiselect-emptystate\" *ngIf=\"!selectedOptions.length\">{{ intl.emptySelection }}</div>\n\t\t\t<div class=\"lu-multiselect-chips\" role=\"listbox\" tabindex=\"0\" *ngIf=\"selectedOptions.length\" (keydown)=\"onRightColumnKeydown($event)\">\n\t\t\t\t<div role=\"option\" class=\"chip lu-multiselect-chip\" *ngFor=\"let option of selectedOptions\" [luMultiSelectSelectedChip]=\"option\">\n\t\t\t\t\t<ng-container *luOptionOutlet=\"optionTpl; value: option\"></ng-container>\n\t\t\t\t\t<button type=\"button\" class=\"chip-kill\" tabindex=\"-1\" (click)=\"onChipKillClick(option)\"></button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"selectedOptions.length\" class=\"lu-multiselect-panel-columns-col2-footer\">\n\t\t\t\t<button class=\"button mod-text\" type=\"button\" (click)=\"clear()\">{{ intl.clear }}</button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n","import { ConnectedPosition, Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef, PositionStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectorRef, ComponentRef, ElementRef, inject, Injectable, Injector } from '@angular/core';\nimport { takeUntil } from 'rxjs';\nimport { LuMultiSelectPanelComponent } from '../panel';\nimport { ILuMultiSelectPanelData, MULTI_SELECT_PANEL_DATA } from '../select.model';\nimport { LuMultiSelectPanelRef } from './panel.model';\n\nclass MultiSelectPanelRef<T> extends LuMultiSelectPanelRef<T> {\n\tinstance: LuMultiSelectPanelComponent<T>;\n\tprivate panelRef: ComponentRef<LuMultiSelectPanelComponent<T>>;\n\tprivate portalRef: ComponentPortal<LuMultiSelectPanelComponent<T>>;\n\n\tconstructor(\n\t\tprivate overlayRef: OverlayRef,\n\t\tparentInjector: Injector,\n\t\tpanelData: ILuMultiSelectPanelData<T>,\n\t\tprotected defaultPositionStrategy: PositionStrategy,\n\t\tprotected expandedPositionStrategy: PositionStrategy,\n\t) {\n\t\tsuper();\n\n\t\tconst injector = Injector.create({\n\t\t\tproviders: [\n\t\t\t\t{ provide: LuMultiSelectPanelRef, useValue: this },\n\t\t\t\t{ provide: MULTI_SELECT_PANEL_DATA, useValue: panelData },\n\t\t\t],\n\t\t\tparent: parentInjector,\n\t\t});\n\n\t\tthis.portalRef = new ComponentPortal<LuMultiSelectPanelComponent<T>>(LuMultiSelectPanelComponent, undefined, injector);\n\t\tthis.panelRef = overlayRef.attach(this.portalRef);\n\t\tthis.instance = this.panelRef.instance;\n\n\t\toverlayRef\n\t\t\t.backdropClick()\n\t\t\t.pipe(takeUntil(this.closed))\n\t\t\t.subscribe(() => this.close());\n\t}\n\n\temitValue(value: T[]): void {\n\t\tthis.valueChanged.emit(value);\n\t}\n\n\tupdateSelectedOptions(selectedOptions: T[]): void {\n\t\tthis.instance.selectedOptions = selectedOptions;\n\t\t// Run change detection on the panel component\n\t\tthis.panelRef.injector.get(ChangeDetectorRef).markForCheck();\n\t}\n\n\tuseExpandedPosition(): void {\n\t\tthis.overlayRef.updatePositionStrategy(this.expandedPositionStrategy);\n\t}\n\n\tuseDefaultPosition(): void {\n\t\tthis.overlayRef.updatePositionStrategy(this.defaultPositionStrategy);\n\t}\n\n\toverride close(): void {\n\t\tsuper.close();\n\t\tthis.panelRef.destroy();\n\t\tthis.overlayRef.detach();\n\t}\n}\n\n@Injectable()\nexport class LuMultiSelectPanelRefFactory {\n\tprotected overlay = inject(Overlay);\n\tprotected elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\tprotected positionBuilder = inject(OverlayPositionBuilder);\n\tprotected scrollStrategies = inject(ScrollStrategyOptions);\n\tprotected parentInjector = inject(Injector);\n\n\tbuildPanelRef<T>(panelData: ILuMultiSelectPanelData<T>, defaultOverlayConfigOverride: OverlayConfig = {}, expandedPositionStrategy?: PositionStrategy): LuMultiSelectPanelRef<T> {\n\t\tconst defaultOverlayConfig = this.buildDefaultOverlayConfig(defaultOverlayConfigOverride);\n\t\texpandedPositionStrategy ??= this.buildExpandedPositionStrategy();\n\n\t\tconst overlayRef = this.overlay.create(defaultOverlayConfig);\n\n\t\toverlayRef.hostElement.style.transitionProperty = 'height';\n\t\toverlayRef.hostElement.style.transitionDuration = 'var(--commons-animations-durations-standard)';\n\n\t\treturn new MultiSelectPanelRef(overlayRef, this.parentInjector, panelData, defaultOverlayConfig.positionStrategy, expandedPositionStrategy);\n\t}\n\n\tprotected buildDefaultOverlayConfig(overlayConfigOverride: OverlayConfig = {}): OverlayConfig {\n\t\tconst overlayConfig: OverlayConfig = { ...overlayConfigOverride };\n\n\t\tconst config = { overlapInput: false, offsetY: 2 };\n\t\toverlayConfig.positionStrategy = this.positionBuilder\n\t\t\t.flexibleConnectedTo(this.elementRef)\n\t\t\t.withViewportMargin(10)\n\t\t\t.withPositions([\n\t\t\t\tthis.buildPosition('bottom', 'right', config),\n\t\t\t\tthis.buildPosition('bottom', 'left', config),\n\t\t\t\tthis.buildPosition('top', 'right', config),\n\t\t\t\tthis.buildPosition('top', 'left', config),\n\t\t\t]);\n\t\toverlayConfig.scrollStrategy = this.scrollStrategies.reposition();\n\t\toverlayConfig.minWidth = this.elementRef.nativeElement.clientWidth;\n\t\toverlayConfig.maxWidth = '100vw';\n\n\t\treturn overlayConfig;\n\t}\n\n\tbuildExpandedPositionStrategy(): PositionStrategy {\n\t\tconst config = { overlapInput: true, offsetX: -4, offsetY: -4 };\n\t\treturn this.positionBuilder\n\t\t\t.flexibleConnectedTo(this.elementRef)\n\t\t\t.withViewportMargin(10)\n\t\t\t.withPositions([\n\t\t\t\tthis.buildPosition('top', 'right', config),\n\t\t\t\tthis.buildPosition('top', 'left', config),\n\t\t\t\tthis.buildPosition('bottom', 'right', config),\n\t\t\t\tthis.buildPosition('bottom', 'left', config),\n\t\t\t]);\n\t}\n\n\tprotected buildPosition(\n\t\tyDirection: 'top' | 'bottom',\n\t\txDirection: 'left' | 'right',\n\t\tconfig: {\n\t\t\toffsetX?: number;\n\t\t\toffsetY?: number;\n\t\t\toverlapInput: boolean;\n\t\t},\n\t): ConnectedPosition {\n\t\tconst originX = xDirection === 'right' ? 'start' : 'end';\n\t\tconst overlayX = originX;\n\n\t\tconst oppositeYDirection = yDirection === 'top' ? 'bottom' : 'top';\n\t\tconst { originY, overlayY } = config.overlapInput\n\t\t\t? ({\n\t\t\t\t\toriginY: oppositeYDirection,\n\t\t\t\t\toverlayY: oppositeYDirection,\n\t\t\t } as const)\n\t\t\t: ({ originY: yDirection, overlayY: oppositeYDirection } as const);\n\n\t\treturn {\n\t\t\toriginX,\n\t\t\toriginY,\n\t\t\toverlayX,\n\t\t\toverlayY,\n\t\t\t...(config.offsetX ? { offsetX: xDirection === 'right' ? config.offsetX : -config.offsetX } : {}),\n\t\t\t...(config.offsetY ? { offsetY: yDirection === 'bottom' ? config.offsetY : -config.offsetY } : {}),\n\t\t};\n\t}\n}\n","import { PositionStrategy } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, HostBinding, inject, Input, TemplateRef, Type } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { ALuSelectInputComponent, LuOptionContext, provideLuSelectLabelsAndIds, provideLuSelectOverlayContainer, ɵLuOptionOutletDirective } from '@lucca-front/ng/core-select';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { ReplaySubject } from 'rxjs';\nimport { LuMultiSelectDefaultDisplayerComponent } from '../displayer/index';\nimport { LU_MULTI_SELECT_TRANSLATIONS } from '../select.translate';\nimport { LuMultiSelectPanelRefFactory } from './panel-ref.factory';\nimport { LuMultiSelectPanelRef } from './panel.model';\nimport { IconComponent } from '@lucca-front/ng/icon';\n\n@Component({\n\tselector: 'lu-multi-select',\n\tstandalone: true,\n\timports: [CommonModule, LuTooltipModule, ɵLuOptionOutletDirective, IconComponent],\n\ttemplateUrl: './select-input.component.html',\n\tstyleUrls: ['./select-input.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => LuMultiSelectInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t\t{\n\t\t\tprovide: ALuSelectInputComponent,\n\t\t\tuseExisting: forwardRef(() => LuMultiSelectInputComponent),\n\t\t},\n\t\tprovideLuSelectOverlayContainer(),\n\t\tprovideLuSelectLabelsAndIds(),\n\t\tLuMultiSelectPanelRefFactory,\n\t],\n})\nexport class LuMultiSelectInputComponent<T> extends ALuSelectInputComponent<T, T[]> implements ControlValueAccessor {\n\tintl = getIntl(LU_MULTI_SELECT_TRANSLATIONS);\n\n\t@HostBinding('class.mod-multiple') modMultipleClass = true;\n\n\t@Input() valuesTpl?: TemplateRef<LuOptionContext<T[]>> | Type<unknown> = LuMultiSelectDefaultDisplayerComponent;\n\n\t// TODO This is for select all\n\t// @Input() set areAllOptionsSelected(selected: boolean | undefined) {\n\t// \tthis.areAllOptionsSelected$.next(selected);\n\t// }\n\n\t@Input()\n\texpandedPositionStrategy?: PositionStrategy;\n\n\t// TODO this is for select all\n\t// @Output() selectAll = new EventEmitter<void>();\n\n\t@Input()\n\texpanded = false;\n\n\t@Input()\n\tpublic override get panelRef(): LuMultiSelectPanelRef<T> | undefined {\n\t\treturn this._panelRef;\n\t}\n\n\tprotected areAllOptionsSelected$ = new ReplaySubject<boolean | undefined>(1);\n\n\tprotected override _panelRef?: LuMultiSelectPanelRef<T>;\n\n\tprotected panelRefFactory = inject(LuMultiSelectPanelRefFactory);\n\n\tpublic override writeValue(value: T[]): void {\n\t\tsuper.writeValue(value);\n\t\tthis.panelRef?.updateSelectedOptions(value);\n\t}\n\n\tprotected override buildPanelRef(): LuMultiSelectPanelRef<T> {\n\t\treturn this.panelRefFactory.buildPanelRef(\n\t\t\t{\n\t\t\t\tinitialValue: this.value,\n\t\t\t\toptionComparer: this.optionComparer,\n\t\t\t\toptions$: this.options$,\n\t\t\t\tloading$: this.loading$,\n\t\t\t\tsearchable: this.searchable,\n\t\t\t\toptionTpl: this.optionTpl,\n\t\t\t\tcanSelectAll: false, // TODO Connect this to this.selectAll.observed when we'll be fixed on how to implement select all\n\t\t\t\tareAllOptionsSelected$: this.areAllOptionsSelected$,\n\t\t\t\texpanded: this.expanded,\n\t\t\t},\n\t\t\tthis.overlayConfig,\n\t\t\tthis.expandedPositionStrategy,\n\t\t);\n\t}\n\n\tprotected override bindInputToPanelRefEvents(): void {\n\t\tif (!this.panelRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tsuper.bindInputToPanelRefEvents();\n\t\t// TODO This is for select all\n\t\t// this.panelRef.selectAll.subscribe(() => this.selectAll.emit());\n\t}\n\n\tprotected override get hasValue(): boolean {\n\t\treturn this.value && this.value.length > 0;\n\t}\n\n\toverride clearValue(event: MouseEvent): void {\n\t\tevent.stopPropagation();\n\t\tthis.onChange?.([]);\n\t\tthis.value = [];\n\t}\n}\n","<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\n<div class=\"lu-select-value\">\n\t<div class=\"lu-select-display-wrapper\">\n\t\t<ng-container *luOptionOutlet=\"valuesTpl; value: value\"></ng-container>\n\t</div>\n</div>\n<div class=\"lu-select-suffix\">\n\t<a *ngIf=\"hasValue && clearable\" role=\"button\" class=\"clear\" (click)=\"clearValue($event)\">\n\t\t<span class=\"u-mask\">{{intl.clear}}</span>\n\t</a>\n</div>\n","import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_MULTI_SELECT_DISPLAYER_TRANSLATIONS = new InjectionToken('LuMultiSelectDisplayerTranslations', {\n\tfactory: () => luMultiSelectDisplayerTranslations,\n});\n\nexport interface ILuMultiSelectDisplayerLabel {\n\totherResult: string;\n\totherResults: string;\n\tshowResultsDetails: string;\n}\n\nexport const luMultiSelectDisplayerTranslations: ILuTranslation<ILuMultiSelectDisplayerLabel> = {\n\tfr: {\n\t\totherResult: 'autre résultat',\n\t\totherResults: 'autres résultats',\n\t\tshowResultsDetails: 'Voir le détail',\n\t},\n\ten: {\n\t\totherResult: 'other result',\n\t\totherResults: 'other results',\n\t\tshowResultsDetails: 'Show details',\n\t},\n\tde: {\n\t\totherResult: 'anderes Ergebnis',\n\t\totherResults: 'andere Ergebnisse',\n\t\tshowResultsDetails: 'Details anzeigen',\n\t},\n\tes: {\n\t\totherResult: 'otro resultado',\n\t\totherResults: 'otros resultados',\n\t\tshowResultsDetails: 'Mostrar detalles',\n\t},\n\tpt: {\n\t\totherResult: 'outro resultado',\n\t\totherResults: 'outros resultados',\n\t\tshowResultsDetails: 'Mostrar detalhes',\n\t},\n};\n","import { AsyncPipe, NgFor, NgIf, NgPlural, NgPluralCase } from '@angular/common';\nimport {\n\tAfterViewInit,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tDestroyRef,\n\tElementRef,\n\tHostBinding,\n\tNgZone,\n\tOnDestroy,\n\tOnInit,\n\tQueryList,\n\tViewChild,\n\tViewChildren,\n\tinject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { ILuOptionContext, LU_OPTION_CONTEXT, ɵLuOptionOutletDirective } from '@lucca-front/ng/core-select';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { Observable, ReplaySubject, combineLatest, concatMap, debounceTime, distinctUntilChanged, map, startWith } from 'rxjs';\nimport { LuMultiSelectInputComponent } from '../input';\nimport { LU_MULTI_SELECT_DISPLAYER_TRANSLATIONS } from './default-displayer.translate';\n\nfunction fromElementWidth(el: HTMLElement): Observable<number> {\n\treturn new Observable<number>((observer) => {\n\t\t// Emit the initial width\n\t\tobserver.next(el.getBoundingClientRect().width);\n\n\t\t// Emit the new width whenever the element is resized\n\t\tconst resizeObserver = new ResizeObserver((entries) => observer.next(entries[0].contentRect.width));\n\t\tresizeObserver.observe(el);\n\n\t\t// Cleanup observer on cancellation\n\t\treturn () => resizeObserver.disconnect();\n\t}).pipe(distinctUntilChanged());\n}\n\n@Component({\n\tselector: 'lu-multi-select-default-displayer',\n\tstandalone: true,\n\timports: [AsyncPipe, LuTooltipModule, NgIf, NgFor, NgPlural, NgPluralCase, ɵLuOptionOutletDirective],\n\ttemplate: `\n\t\t<div class=\"chips-container\" #chipsContainer>\n\t\t\t<div\n\t\t\t\t#chip\n\t\t\t\t*ngFor=\"let option of context.option$ | async; let index = index\"\n\t\t\t\tclass=\"chip lu-multiselect-chip\"\n\t\t\t\t[class.mod-unkillable]=\"disabled\"\n\t\t\t\t[attr.aria-hidden]=\"index >= ((visibleChipsCount$ | async) || 0) ? 'true' : undefined\"\n\t\t\t>\n\t\t\t\t<span class=\"lu-multiselect-chip-value\"><ng-container *luOptionOutlet=\"select.valueTpl || select.optionTpl; value: option\"></ng-container></span>\n\t\t\t\t<a href *ngIf=\"!disabled\" type=\"button\" class=\"chip-kill\" (click)=\"unselectOption(option, $event)\" [attr.tabindex]=\"index >= ((visibleChipsCount$ | async) || 0) ? -1 : undefined\"></a>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"lu-multiselect-counter\" #overflow>\n\t\t\t<ng-container *ngIf=\"hiddenChipsCount$ | async as count\">\n\t\t\t\t<div class=\"chip mod-unkillable lu-multiselect-counter-chip\" aria-hidden=\"true\">+ {{ count }}</div>\n\t\t\t\t<span class=\"u-mask\" [ngPlural]=\"count\">\n\t\t\t\t\t<ng-template ngPluralCase=\"=1\">{{ intl.otherResult }}</ng-template>\n\t\t\t\t\t<ng-template ngPluralCase=\"other\">{{ intl.otherResults }}</ng-template>\n\t\t\t\t</span>\n\t\t\t</ng-container>\n\t\t</div>\n\t`,\n\tstyleUrls: ['./default-displayer.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LuMultiSelectDefaultDisplayerComponent<T> implements AfterViewInit, OnInit, OnDestroy {\n\tselect = inject<LuMultiSelectInputComponent<T>>(LuMultiSelectInputComponent);\n\telementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\tcdr = inject(ChangeDetectorRef);\n\tintl = getIntl(LU_MULTI_SELECT_DISPLAYER_TRANSLATIONS);\n\n\tprotected destroyRef = inject(DestroyRef);\n\tprotected zone = inject(NgZone);\n\n\tget disabled() {\n\t\treturn this.select.disabled;\n\t}\n\n\t@ViewChild('overflow', { static: true })\n\toverflowCountContainer: ElementRef<HTMLElement>;\n\n\t@ViewChild('chipsContainer', { static: true })\n\tchipsContainer: ElementRef<HTMLElement>;\n\n\t@ViewChildren('chip')\n\tchipsQL: QueryList<ElementRef<HTMLElement>>;\n\n\tprotected ngAfterViewInit$ = new ReplaySubject<void>(1);\n\n\tchips$: Observable<HTMLElement[]> = this.ngAfterViewInit$.pipe(\n\t\tconcatMap(() => this.chipsQL.changes.pipe(startWith(undefined))),\n\t\tmap(() => this.chipsQL.toArray().map((chip) => chip.nativeElement)),\n\t);\n\n\tcontext = inject<ILuOptionContext<T[]>>(LU_OPTION_CONTEXT);\n\n\tprotected visibleChips$ = new ReplaySubject<HTMLElement[]>(1);\n\tprotected hiddenChips$ = new ReplaySubject<HTMLElement[]>(1);\n\n\tvisibleChipsCount$ = this.visibleChips$.pipe(\n\t\tmap((chips) => chips.length),\n\t\tdistinctUntilChanged(),\n\t);\n\thiddenChipsCount$ = this.hiddenChips$.pipe(\n\t\tmap((chips) => chips.length),\n\t\tdistinctUntilChanged(),\n\t);\n\n\t@HostBinding('style.--hidden-option-count-width.px')\n\thiddenOptionCountWidthCssVar = 0;\n\n\t@HostBinding('style.--hidden-option-count-offset-left.px')\n\thiddenOptionCountOffsetLeftCssVar = 0;\n\n\tngOnInit(): void {\n\t\tthis.visibleChips$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((visible) => {\n\t\t\tthis.hiddenOptionCountOffsetLeftCssVar = visible.length ? visible[visible.length - 1].offsetLeft + visible[visible.length - 1].offsetWidth : 0;\n\t\t\tthis.cdr.markForCheck();\n\t\t});\n\n\t\tthis.hiddenChipsCount$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((hidden) => {\n\t\t\tthis.hiddenOptionCountWidthCssVar = hidden;\n\t\t\tthis.cdr.markForCheck();\n\t\t});\n\n\t\tcombineLatest([fromElementWidth(this.chipsContainer.nativeElement), fromElementWidth(this.overflowCountContainer.nativeElement), this.chips$])\n\t\t\t.pipe(\n\t\t\t\tdebounceTime(0),\n\t\t\t\tmap(([containerWidth, counterWidth, chips]) => {\n\t\t\t\t\tconst baseOffsetTop = this.elementRef.nativeElement.offsetTop;\n\n\t\t\t\t\tconst isOutOfContainer = (chip: HTMLElement, allowedWidth: number) => chip.offsetTop > baseOffsetTop || chip.offsetLeft + chip.offsetWidth > allowedWidth;\n\n\t\t\t\t\tconst needsCounterSpace = !!chips.length && isOutOfContainer(chips[chips.length - 1], containerWidth);\n\t\t\t\t\tconst availableWidth = needsCounterSpace ? containerWidth - counterWidth : containerWidth;\n\n\t\t\t\t\t// First on next line or first out of container\n\t\t\t\t\tconst firstHiddenIndex = chips.findIndex((chip) => isOutOfContainer(chip, availableWidth));\n\n\t\t\t\t\treturn firstHiddenIndex !== -1\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tvisible: chips.slice(0, firstHiddenIndex),\n\t\t\t\t\t\t\t\thidden: chips.slice(firstHiddenIndex),\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tvisible: chips,\n\t\t\t\t\t\t\t\thidden: [],\n\t\t\t\t\t\t };\n\t\t\t\t}),\n\t\t\t\ttakeUntilDestroyed(this.destroyRef),\n\t\t\t)\n\t\t\t.subscribe(({ visible, hidden }) => {\n\t\t\t\tthis.zone.run(() => {\n\t\t\t\t\tthis.visibleChips$.next(visible);\n\t\t\t\t\tthis.hiddenChips$.next(hidden);\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tunselectOption(option: T, $event: Event): void {\n\t\t$event.stopPropagation();\n\t\t$event.preventDefault();\n\t\tthis.select.updateValue(this.select.value.filter((o) => o !== option));\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.ngAfterViewInit$.complete();\n\t}\n\n\tngAfterViewInit() {\n\t\tthis.ngAfterViewInit$.next();\n\t}\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { LuOptionContext } from '@lucca-front/ng/core-select';\nimport { LuMultiSelectInputComponent } from '../input';\n\n@Directive({\n\tselector: '[luMultiDisplayer]',\n\tstandalone: true,\n})\nexport class LuMultiDisplayerDirective<T> {\n\t@Input('luMultiDisplayerSelect') set select(select: LuMultiSelectInputComponent<T>) {\n\t\tselect.valuesTpl = this.templateRef;\n\t}\n\n\tpublic constructor(private templateRef: TemplateRef<LuOptionContext<T[]>>) {}\n\n\tpublic static ngTemplateContextGuard<T>(_dir: LuMultiDisplayerDirective<T>, ctx: unknown): ctx is LuOptionContext<T[]> {\n\t\treturn true;\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-multi-select.mjs","sources":["../../../packages/ng/multi-select/select.translate.ts","../../../packages/ng/multi-select/input/panel.model.ts","../../../packages/ng/multi-select/select.model.ts","../../../packages/ng/multi-select/panel/option-selected.pipe.ts","../../../packages/ng/multi-select/panel/selected-chip.directive.ts","../../../packages/ng/multi-select/panel/panel.component.ts","../../../packages/ng/multi-select/panel/panel.component.html","../../../packages/ng/multi-select/input/panel-ref.factory.ts","../../../packages/ng/multi-select/input/select-input.component.ts","../../../packages/ng/multi-select/input/select-input.component.html","../../../packages/ng/multi-select/displayer/default-displayer.translate.ts","../../../packages/ng/multi-select/displayer/default-displayer.component.ts","../../../packages/ng/multi-select/displayer/displayer.directive.ts","../../../packages/ng/multi-select/lucca-front-ng-multi-select.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_MULTI_SELECT_TRANSLATIONS = new InjectionToken('LuMultiSelectTranslations', {\n\tfactory: () => luMultiSelectTranslations,\n});\n\nexport interface ILuMultiSelectLabel {\n\tplaceholder: string;\n\tsearch: string;\n\tclear: string;\n\tclearSearch: string;\n\temptyResults: string;\n\temptySelection: string;\n\texpand: string;\n\treduce: string;\n\tselectAll: string;\n}\n\nexport const luMultiSelectTranslations: ILuTranslation<ILuMultiSelectLabel> = {\n\ten: {\n\t\tplaceholder: 'Select an option',\n\t\tsearch: 'Search',\n\t\tclear: 'Clear selection',\n\t\tclearSearch: 'Clear search',\n\t\temptyResults: 'No results',\n\t\temptySelection: 'Select items in the left list to start',\n\t\texpand: 'Expand',\n\t\treduce: 'Reduce',\n\t\tselectAll: 'Select all',\n\t},\n\tfr: {\n\t\tplaceholder: 'Sélectionnez une option',\n\t\tsearch: 'Rechercher',\n\t\tclear: 'Vider la sélection',\n\t\tclearSearch: 'Vider la recherche',\n\t\temptySelection: 'Sélectionnez les éléments dans la liste de gauche pour commencer',\n\t\temptyResults: 'Aucun résultat pour votre recherche',\n\t\texpand: 'Étendre',\n\t\treduce: 'Réduire',\n\t\tselectAll: 'Tout sélectionner',\n\t},\n\tde: {\n\t\tplaceholder: 'Wählen Sie eine Option',\n\t\tsearch: 'Suche',\n\t\tclear: 'Auswahl löschen',\n\t\tclearSearch: 'Suche löschen',\n\t\temptyResults: 'Keine Ergebnisse für Ihre Suche',\n\t\temptySelection: 'Wählen Sie Elemente in der linken Liste aus, um zu beginnen',\n\t\texpand: 'Erweitern',\n\t\treduce: 'Reduzieren',\n\t\tselectAll: 'Alles auswählen',\n\t},\n\tes: {\n\t\tplaceholder: 'Seleccione una opción',\n\t\tsearch: 'Buscar',\n\t\tclear: 'Borrar selección',\n\t\tclearSearch: 'Borrar búsqueda',\n\t\temptyResults: 'No hay resultados para su búsqueda',\n\t\temptySelection: 'Seleccione elementos en la lista de la izquierda para comenzar',\n\t\texpand: 'Expandir',\n\t\treduce: 'Reducir',\n\t\tselectAll: 'Seleccionar todo',\n\t},\n\tpt: {\n\t\tplaceholder: 'Selecione uma opção',\n\t\tsearch: 'Pesquisar',\n\t\tclear: 'Limpar seleção',\n\t\tclearSearch: 'Limpar pesquisa',\n\t\temptyResults: 'Nenhum resultado para sua pesquisa',\n\t\temptySelection: 'Selecione itens na lista à esquerda para começar',\n\t\texpand: 'Expandir',\n\t\treduce: 'Reduzir',\n\t\tselectAll: 'Selecionar tudo',\n\t},\n};\n","import { EventEmitter } from '@angular/core';\nimport { LuSelectPanelRef } from '@lucca-front/ng/core-select';\nimport { Observable } from 'rxjs';\n\nexport abstract class LuMultiSelectPanelRef<T> extends LuSelectPanelRef<T, T[]> {\n\tselectAll = new EventEmitter<void>();\n\n\tareAllOptionsSelected$: Observable<boolean | undefined>;\n\n\toverride close(): void {\n\t\tsuper.close();\n\t\tthis.selectAll.complete();\n\t}\n\n\tabstract updateSelectedOptions(selectedOptions: T[]): void;\n\n\tabstract useExpandedPosition(): void;\n\n\tabstract useDefaultPosition(): void;\n}\n","import { InjectionToken, TemplateRef, Type } from '@angular/core';\nimport { LuOptionContext } from '@lucca-front/ng/core-select';\nimport { Observable } from 'rxjs';\n\nexport interface ILuMultiSelectPanelData<T> {\n\toptions$: Observable<T[]>;\n\tloading$: Observable<boolean>;\n\toptionComparer: (option1: T, option2: T) => boolean;\n\tinitialValue: T[] | undefined;\n\toptionTpl: TemplateRef<LuOptionContext<T>> | Type<unknown>;\n\tsearchable: boolean;\n\texpanded: boolean;\n\tcanSelectAll: boolean;\n\tareAllOptionsSelected$: Observable<boolean | undefined>;\n}\n\nexport const MULTI_SELECT_PANEL_DATA = new InjectionToken<ILuMultiSelectPanelData<unknown>>('MultiSelectPanelData');\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'luIsOptionSelected',\n\tstandalone: true,\n})\nexport class LuIsOptionSelectedPipe implements PipeTransform {\n\ttransform<T>(option: T, comparer: (option1: T, option2: T) => boolean, selectedOptions: T[]): boolean {\n\t\treturn selectedOptions.some((selectedOption) => comparer(option, selectedOption));\n\t}\n}\n","import { Highlightable } from '@angular/cdk/a11y';\nimport { Directive, ElementRef, Input, inject } from '@angular/core';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[luMultiSelectSelectedChip]',\n})\nexport class ɵLuMultiSelectSelectedChipDirective<T> implements Highlightable {\n\t@Input('luMultiSelectSelectedChip') option?: T;\n\n\telementRef = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n\n\tsetActiveStyles(): void {\n\t\tthis.elementRef.querySelector('button').focus();\n\t}\n\tsetInactiveStyles(): void {\n\t\t// Nothing to do\n\t}\n}\n","import { A11yModule, ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { AsyncPipe, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, HostListener, inject, QueryList, ViewChild, ViewChildren } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { SELECT_ID, ɵLuOptionComponent, ɵLuOptionOutletDirective } from '@lucca-front/ng/core-select';\nimport { asyncScheduler, filter, map, observeOn, take, takeUntil } from 'rxjs';\nimport { LuMultiSelectPanelRef } from '../input/panel.model';\nimport { ILuMultiSelectPanelData, MULTI_SELECT_PANEL_DATA } from '../select.model';\nimport { LU_MULTI_SELECT_TRANSLATIONS } from '../select.translate';\nimport { LuIsOptionSelectedPipe } from './option-selected.pipe';\nimport { ɵLuMultiSelectSelectedChipDirective } from './selected-chip.directive';\n\n@Component({\n\tselector: 'lu-select-panel',\n\ttemplateUrl: './panel.component.html',\n\tstyleUrls: ['./panel.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [A11yModule, AsyncPipe, FormsModule, LuIsOptionSelectedPipe, NgIf, NgFor, ɵLuOptionComponent, ɵLuOptionOutletDirective, ɵLuMultiSelectSelectedChipDirective, NgTemplateOutlet],\n})\nexport class LuMultiSelectPanelComponent<T> implements AfterViewInit {\n\tprotected panelData = inject<ILuMultiSelectPanelData<T>>(MULTI_SELECT_PANEL_DATA);\n\tpanelRef = inject<LuMultiSelectPanelRef<T>>(LuMultiSelectPanelRef);\n\tselectId = inject(SELECT_ID);\n\tintl = getIntl(LU_MULTI_SELECT_TRANSLATIONS);\n\tisExpanded = this.panelData.expanded;\n\n\toptions$ = this.panelData.options$;\n\tloading$ = this.panelData.loading$;\n\tareAllOptionsSelected$ = this.panelData.areAllOptionsSelected$;\n\tcanSelectAll = false; // TODO connect to panel options when we'll be ok on designing select all\n\toptionComparer = this.panelData.optionComparer;\n\tselectedOptions: T[] = this.panelData.initialValue || [];\n\toptionTpl = this.panelData.optionTpl;\n\tsearchable = this.panelData.searchable;\n\n\t@ViewChild('searchInput')\n\tsearchInput: ElementRef<HTMLInputElement> | undefined;\n\n\t@ViewChildren(ɵLuOptionComponent) optionsQL: QueryList<ɵLuOptionComponent<T>>;\n\tprivate leftColumnKeyManager: ActiveDescendantKeyManager<ɵLuOptionComponent<T>>;\n\n\t@ViewChildren(ɵLuMultiSelectSelectedChipDirective) selectedChipsQL: QueryList<ɵLuMultiSelectSelectedChipDirective<T>>;\n\tprivate rightColumnKeyManager: ActiveDescendantKeyManager<ɵLuMultiSelectSelectedChipDirective<T>>;\n\n\tsearch: string | null = null;\n\n\tonScroll(evt: Event): void {\n\t\tif (!(evt.target instanceof HTMLElement)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (evt.target.scrollTop === 0) {\n\t\t\tthis.panelRef.previousPage.emit();\n\t\t}\n\n\t\tif (evt.target.scrollHeight - evt.target.scrollTop - evt.target.clientHeight < 1) {\n\t\t\tthis.panelRef.nextPage.emit();\n\t\t}\n\t}\n\n\tngAfterViewInit(): void {\n\t\tif (!this.optionsQL) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.initLeftColumnKeyManager();\n\t\tthis.initRightColumnKeyManager();\n\n\t\tif (this.searchInput) {\n\t\t\tsetTimeout(() => this.searchInput.nativeElement.focus());\n\t\t}\n\n\t\tif (this.isExpanded) {\n\t\t\tthis.panelRef.useExpandedPosition();\n\t\t} else {\n\t\t\tthis.panelRef.useDefaultPosition();\n\t\t}\n\t}\n\n\t@HostListener('keydown', ['$event'])\n\tonKeyDown($event: KeyboardEvent): void {\n\t\tif ($event.key === 'Escape') {\n\t\t\treturn this.panelRef.close();\n\t\t}\n\t}\n\n\tonLeftColumnKeydown($event: KeyboardEvent): void {\n\t\tif ($event.code === 'Space' || $event.code === 'Enter') {\n\t\t\tthis.toggleOption(this.leftColumnKeyManager?.activeItem?.option);\n\t\t\t$event.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.leftColumnKeyManager?.onKeydown($event);\n\t}\n\n\tonRightColumnKeydown($event: KeyboardEvent): void {\n\t\tconst option = this.rightColumnKeyManager?.activeItem?.option;\n\n\t\tif (option && ($event.code === 'Space' || $event.code === 'Enter')) {\n\t\t\tthis.onChipKillClick(option);\n\t\t\t$event.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.rightColumnKeyManager?.onKeydown($event);\n\t}\n\n\t// toggleAll(shouldSelectAll: boolean): void {\n\t// \tif (shouldSelectAll) {\n\t// \t\tthis.panelRef.selectAll.emit();\n\t// \t} else {\n\t// \t\tthis.clear();\n\t// \t}\n\t// }\n\n\tupdateClue(clue: string | null): void {\n\t\tthis.search = clue;\n\t\tthis.panelRef.clueChanged.emit(clue);\n\n\t\tsetTimeout(() => this.leftColumnKeyManager.setFirstItemActive());\n\t}\n\n\ttoggleOption(option: T): void {\n\t\tconst selectedOption = this.selectedOptions.find((o) => this.optionComparer(o, option));\n\t\tthis.selectedOptions = selectedOption ? this.selectedOptions.filter((o) => o !== selectedOption) : [...this.selectedOptions, option];\n\t\tthis.panelRef.emitValue(this.selectedOptions);\n\t\tthis.leftColumnKeyManager?.setActiveItem(this.optionsQL.toArray().findIndex((o) => o.option === option));\n\t}\n\n\tonChipKillClick(option: T): void {\n\t\tconst optionToUnselectIndex = this.selectedOptions.findIndex((o) => this.optionComparer(o, option));\n\t\tthis.selectedOptions = this.selectedOptions.filter((_, index) => index !== optionToUnselectIndex);\n\t\tthis.panelRef.emitValue(this.selectedOptions);\n\n\t\tif (this.selectedOptions.length && this.rightColumnKeyManager) {\n\t\t\toptionToUnselectIndex >= this.selectedOptions.length ? this.rightColumnKeyManager.setPreviousItemActive() : this.rightColumnKeyManager.setNextItemActive();\n\t\t}\n\t}\n\n\tclear(): void {\n\t\tthis.selectedOptions = [];\n\t\tthis.panelRef.emitValue(this.selectedOptions);\n\t}\n\n\tprotected initLeftColumnKeyManager(): void {\n\t\tthis.leftColumnKeyManager = new ActiveDescendantKeyManager(this.optionsQL).withHomeAndEnd();\n\n\t\tif (this.selectedOptions) {\n\t\t\tthis.options$\n\t\t\t\t?.pipe(\n\t\t\t\t\tobserveOn(asyncScheduler),\n\t\t\t\t\tmap((options) => (this.selectedOptions.length ? options.findIndex((o) => this.optionComparer(o, this.selectedOptions[0])) : -1)),\n\t\t\t\t\tfilter((index) => index !== -1),\n\t\t\t\t\ttake(1),\n\t\t\t\t\ttakeUntil(this.panelRef.closed),\n\t\t\t\t)\n\t\t\t\t.subscribe((selectedIndex) => this.leftColumnKeyManager.setActiveItem(selectedIndex));\n\t\t}\n\n\t\tthis.leftColumnKeyManager.change\n\t\t\t.pipe(\n\t\t\t\tmap(() => this.leftColumnKeyManager.activeItem?.id),\n\t\t\t\ttakeUntil(this.panelRef.closed),\n\t\t\t)\n\t\t\t.subscribe((activeDescendant) => this.panelRef.activeOptionIdChanged.emit(activeDescendant));\n\t}\n\n\tprotected initRightColumnKeyManager(): void {\n\t\tthis.rightColumnKeyManager = new ActiveDescendantKeyManager(this.selectedChipsQL).withHomeAndEnd();\n\t}\n}\n","<!-- TODO : il faudrait remplacer la classe is-expanded par un attribut aria-expanded=\"true\"-->\n<ng-template #searchInputTpl>\n\t<label class=\"panel-search textfield mod-search mod-outlined lu-multiselect-search\">\n\t\t<input\n\t\t\t#searchInput\n\t\t\tclass=\"textfield-input\"\n\t\t\t[(ngModel)]=\"search\"\n\t\t\t(ngModelChange)=\"updateClue($event)\"\n\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t/>\n\t\t<span class=\"u-mask textfield-label\">{{ intl.search }}</span>\n\t</label>\n</ng-template>\n\n<div\n\tclass=\"lu-picker-panel lu-option-picker-panel lu-multiselect-panel mod-multiple\"\n\trole=\"dialog\"\n\tcdkTrapFocus\n\t*ngIf=\"{ options: options$ | async } as ctx\"\n\t[cdkTrapFocusAutoCapture]=\"true\"\n\t[class.is-expanded]=\"isExpanded\"\n\t[attr.aria-expanded]=\"isExpanded ? 'true' : undefined\"\n>\n\t<div class=\"lu-multiselect-panel-form\" *ngIf=\"searchable && !isExpanded\">\n\t\t<ng-container *ngTemplateOutlet=\"searchInputTpl\"></ng-container>\n\t\t<!--\t\t<button class=\"button mod-text mod-icon lu-multiselect-expandbutton\" type=\"button\" (click)=\"toggleExpansion()\">-->\n\t\t<!--\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon\" [class.icon-fullscreen]=\"!isExpanded\" [class.icon-fullscreenExit]=\"isExpanded\"></span>-->\n\t\t<!--\t\t\t{{ isExpanded ? intl.reduce : intl.expand }}-->\n\t\t<!--\t\t</button>-->\n\t</div>\n\t<div class=\"lu-multiselect-panel-columns\">\n\t\t<div class=\"lu-multiselect-panel-columns-col1\" (keydown)=\"onLeftColumnKeydown($event)\">\n\t\t\t<div class=\"lu-multiselect-panel-form\" *ngIf=\"searchable && isExpanded\">\n\t\t\t\t<ng-container *ngTemplateOutlet=\"searchInputTpl\"></ng-container>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tclass=\"lu-picker-content lu-multiselect-panel-columns-col1-content\"\n\t\t\t\t[class.is-loading]=\"loading$ | async\"\n\t\t\t\ttabindex=\"0\"\n\t\t\t\tcdkFocusInitial\n\t\t\t\trole=\"list\"\n\t\t\t\taria-multiselectable=\"true\"\n\t\t\t\t(scroll)=\"onScroll($event)\"\n\t\t\t>\n\t\t\t\t<ng-container *ngIf=\"searchable\">\n\t\t\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\n\t\t\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottom0\">{{ intl.emptyResults }}</p>\n\t\t\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.nativeElement.focus()\">{{ intl.clearSearch }}</button>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-container>\n\n\t\t\t\t<!--\t\t\t\t<ng-container *ngIf=\"canSelectAll\">-->\n\t\t\t\t<!--\t\t\t\t\t<label class=\"checkbox lu-multiselect-selectall\" role=\"option\" [for]=\"selectId + '-select-all'\">-->\n\t\t\t\t<!--\t\t\t\t\t\t<input-->\n\t\t\t\t<!--\t\t\t\t\t\t\tclass=\"checkbox-input\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\ttype=\"checkbox\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\t[class.is-incomplete]=\"(areAllOptionsSelected$ | async) !== true && selectedOptions.length\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\t[id]=\"selectId + '-select-all'\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\t[ngModel]=\"(areAllOptionsSelected$ | async) === true || !!selectedOptions.length\"-->\n\t\t\t\t<!--\t\t\t\t\t\t\t(ngModelChange)=\"toggleAll($event)\"-->\n\t\t\t\t<!--\t\t\t\t\t\t/>-->\n\t\t\t\t<!--\t\t\t\t\t\t<span class=\"checkbox-label\">{{ intl.selectAll }}</span>-->\n\t\t\t\t<!--\t\t\t\t\t</label>-->\n\t\t\t\t<!--\t\t\t\t</ng-container>-->\n\n\t\t\t\t<div class=\"lu-picker-content-option\">\n\t\t\t\t\t<lu-select-option\n\t\t\t\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\n\t\t\t\t\t\t[option]=\"option\"\n\t\t\t\t\t\t[optionTpl]=\"optionTpl\"\n\t\t\t\t\t\t[optionIndex]=\"index\"\n\t\t\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'nearest' }\"\n\t\t\t\t\t\t[isSelected]=\"option | luIsOptionSelected:optionComparer:selectedOptions\"\n\t\t\t\t\t\t(click)=\"toggleOption(option)\"\n\t\t\t\t\t></lu-select-option>\n\t\t\t\t</div>\n\n\t\t\t\t<div *ngIf=\"loading$ | async\" class=\"panel-loading loading lu-picker-loading\"></div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"lu-multiselect-panel-columns-col2\" *ngIf=\"isExpanded\">\n\t\t\t<div class=\"lu-multiselect-emptystate\" *ngIf=\"!selectedOptions.length\">{{ intl.emptySelection }}</div>\n\t\t\t<div class=\"lu-multiselect-chips\" role=\"listbox\" tabindex=\"0\" *ngIf=\"selectedOptions.length\" (keydown)=\"onRightColumnKeydown($event)\">\n\t\t\t\t<div role=\"option\" class=\"chip lu-multiselect-chip\" *ngFor=\"let option of selectedOptions\" [luMultiSelectSelectedChip]=\"option\">\n\t\t\t\t\t<ng-container *luOptionOutlet=\"optionTpl; value: option\"></ng-container>\n\t\t\t\t\t<button type=\"button\" class=\"chip-kill\" tabindex=\"-1\" (click)=\"onChipKillClick(option)\"></button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"selectedOptions.length\" class=\"lu-multiselect-panel-columns-col2-footer\">\n\t\t\t\t<button class=\"button mod-text\" type=\"button\" (click)=\"clear()\">{{ intl.clear }}</button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n","import { ConnectedPosition, Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef, PositionStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectorRef, ComponentRef, ElementRef, inject, Injectable, Injector } from '@angular/core';\nimport { takeUntil } from 'rxjs';\nimport { LuMultiSelectPanelComponent } from '../panel';\nimport { ILuMultiSelectPanelData, MULTI_SELECT_PANEL_DATA } from '../select.model';\nimport { LuMultiSelectPanelRef } from './panel.model';\n\nclass MultiSelectPanelRef<T> extends LuMultiSelectPanelRef<T> {\n\tinstance: LuMultiSelectPanelComponent<T>;\n\tprivate panelRef: ComponentRef<LuMultiSelectPanelComponent<T>>;\n\tprivate portalRef: ComponentPortal<LuMultiSelectPanelComponent<T>>;\n\n\tconstructor(\n\t\tprivate overlayRef: OverlayRef,\n\t\tparentInjector: Injector,\n\t\tpanelData: ILuMultiSelectPanelData<T>,\n\t\tprotected defaultPositionStrategy: PositionStrategy,\n\t\tprotected expandedPositionStrategy: PositionStrategy,\n\t) {\n\t\tsuper();\n\n\t\tconst injector = Injector.create({\n\t\t\tproviders: [\n\t\t\t\t{ provide: LuMultiSelectPanelRef, useValue: this },\n\t\t\t\t{ provide: MULTI_SELECT_PANEL_DATA, useValue: panelData },\n\t\t\t],\n\t\t\tparent: parentInjector,\n\t\t});\n\n\t\tthis.portalRef = new ComponentPortal<LuMultiSelectPanelComponent<T>>(LuMultiSelectPanelComponent, undefined, injector);\n\t\tthis.panelRef = overlayRef.attach(this.portalRef);\n\t\tthis.instance = this.panelRef.instance;\n\n\t\toverlayRef\n\t\t\t.backdropClick()\n\t\t\t.pipe(takeUntil(this.closed))\n\t\t\t.subscribe(() => this.close());\n\t}\n\n\temitValue(value: T[]): void {\n\t\tthis.valueChanged.emit(value);\n\t}\n\n\tupdateSelectedOptions(selectedOptions: T[]): void {\n\t\tthis.instance.selectedOptions = selectedOptions;\n\t\t// Run change detection on the panel component\n\t\tthis.panelRef.injector.get(ChangeDetectorRef).markForCheck();\n\t}\n\n\tuseExpandedPosition(): void {\n\t\tthis.overlayRef.updatePositionStrategy(this.expandedPositionStrategy);\n\t}\n\n\tuseDefaultPosition(): void {\n\t\tthis.overlayRef.updatePositionStrategy(this.defaultPositionStrategy);\n\t}\n\n\toverride close(): void {\n\t\tsuper.close();\n\t\tthis.panelRef.destroy();\n\t\tthis.overlayRef.detach();\n\t}\n}\n\n@Injectable()\nexport class LuMultiSelectPanelRefFactory {\n\tprotected overlay = inject(Overlay);\n\tprotected elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\tprotected positionBuilder = inject(OverlayPositionBuilder);\n\tprotected scrollStrategies = inject(ScrollStrategyOptions);\n\tprotected parentInjector = inject(Injector);\n\n\tbuildPanelRef<T>(panelData: ILuMultiSelectPanelData<T>, defaultOverlayConfigOverride: OverlayConfig = {}, expandedPositionStrategy?: PositionStrategy): LuMultiSelectPanelRef<T> {\n\t\tconst defaultOverlayConfig = this.buildDefaultOverlayConfig(defaultOverlayConfigOverride);\n\t\texpandedPositionStrategy ??= this.buildExpandedPositionStrategy();\n\n\t\tconst overlayRef = this.overlay.create(defaultOverlayConfig);\n\n\t\toverlayRef.hostElement.style.transitionProperty = 'height';\n\t\toverlayRef.hostElement.style.transitionDuration = 'var(--commons-animations-durations-standard)';\n\n\t\treturn new MultiSelectPanelRef(overlayRef, this.parentInjector, panelData, defaultOverlayConfig.positionStrategy, expandedPositionStrategy);\n\t}\n\n\tprotected buildDefaultOverlayConfig(overlayConfigOverride: OverlayConfig = {}): OverlayConfig {\n\t\tconst overlayConfig: OverlayConfig = { ...overlayConfigOverride };\n\n\t\tconst config = { overlapInput: false, offsetY: 2 };\n\t\toverlayConfig.positionStrategy = this.positionBuilder\n\t\t\t.flexibleConnectedTo(this.elementRef)\n\t\t\t.withViewportMargin(10)\n\t\t\t.withPositions([\n\t\t\t\tthis.buildPosition('bottom', 'right', config),\n\t\t\t\tthis.buildPosition('bottom', 'left', config),\n\t\t\t\tthis.buildPosition('top', 'right', config),\n\t\t\t\tthis.buildPosition('top', 'left', config),\n\t\t\t]);\n\t\toverlayConfig.scrollStrategy = this.scrollStrategies.reposition();\n\t\toverlayConfig.minWidth = this.elementRef.nativeElement.clientWidth;\n\t\toverlayConfig.maxWidth = '100vw';\n\n\t\treturn overlayConfig;\n\t}\n\n\tbuildExpandedPositionStrategy(): PositionStrategy {\n\t\tconst config = { overlapInput: true, offsetX: -4, offsetY: -4 };\n\t\treturn this.positionBuilder\n\t\t\t.flexibleConnectedTo(this.elementRef)\n\t\t\t.withViewportMargin(10)\n\t\t\t.withPositions([\n\t\t\t\tthis.buildPosition('top', 'right', config),\n\t\t\t\tthis.buildPosition('top', 'left', config),\n\t\t\t\tthis.buildPosition('bottom', 'right', config),\n\t\t\t\tthis.buildPosition('bottom', 'left', config),\n\t\t\t]);\n\t}\n\n\tprotected buildPosition(\n\t\tyDirection: 'top' | 'bottom',\n\t\txDirection: 'left' | 'right',\n\t\tconfig: {\n\t\t\toffsetX?: number;\n\t\t\toffsetY?: number;\n\t\t\toverlapInput: boolean;\n\t\t},\n\t): ConnectedPosition {\n\t\tconst originX = xDirection === 'right' ? 'start' : 'end';\n\t\tconst overlayX = originX;\n\n\t\tconst oppositeYDirection = yDirection === 'top' ? 'bottom' : 'top';\n\t\tconst { originY, overlayY } = config.overlapInput\n\t\t\t? ({\n\t\t\t\t\toriginY: oppositeYDirection,\n\t\t\t\t\toverlayY: oppositeYDirection,\n\t\t\t } as const)\n\t\t\t: ({ originY: yDirection, overlayY: oppositeYDirection } as const);\n\n\t\treturn {\n\t\t\toriginX,\n\t\t\toriginY,\n\t\t\toverlayX,\n\t\t\toverlayY,\n\t\t\t...(config.offsetX ? { offsetX: xDirection === 'right' ? config.offsetX : -config.offsetX } : {}),\n\t\t\t...(config.offsetY ? { offsetY: yDirection === 'bottom' ? config.offsetY : -config.offsetY } : {}),\n\t\t};\n\t}\n}\n","import { PositionStrategy } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, HostBinding, inject, Input, TemplateRef, Type } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { ALuSelectInputComponent, LuOptionContext, provideLuSelectLabelsAndIds, provideLuSelectOverlayContainer, ɵLuOptionOutletDirective } from '@lucca-front/ng/core-select';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { ReplaySubject } from 'rxjs';\nimport { LuMultiSelectDefaultDisplayerComponent } from '../displayer/index';\nimport { LU_MULTI_SELECT_TRANSLATIONS } from '../select.translate';\nimport { LuMultiSelectPanelRefFactory } from './panel-ref.factory';\nimport { LuMultiSelectPanelRef } from './panel.model';\nimport { IconComponent } from '@lucca-front/ng/icon';\n\n@Component({\n\tselector: 'lu-multi-select',\n\tstandalone: true,\n\timports: [CommonModule, LuTooltipModule, ɵLuOptionOutletDirective, IconComponent],\n\ttemplateUrl: './select-input.component.html',\n\tstyleUrls: ['./select-input.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => LuMultiSelectInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t\t{\n\t\t\tprovide: ALuSelectInputComponent,\n\t\t\tuseExisting: forwardRef(() => LuMultiSelectInputComponent),\n\t\t},\n\t\tprovideLuSelectOverlayContainer(),\n\t\tprovideLuSelectLabelsAndIds(),\n\t\tLuMultiSelectPanelRefFactory,\n\t],\n})\nexport class LuMultiSelectInputComponent<T> extends ALuSelectInputComponent<T, T[]> implements ControlValueAccessor {\n\tintl = getIntl(LU_MULTI_SELECT_TRANSLATIONS);\n\n\t@HostBinding('class.mod-multiple') modMultipleClass = true;\n\n\t@Input() valuesTpl?: TemplateRef<LuOptionContext<T[]>> | Type<unknown> = LuMultiSelectDefaultDisplayerComponent;\n\n\t// TODO This is for select all\n\t// @Input() set areAllOptionsSelected(selected: boolean | undefined) {\n\t// \tthis.areAllOptionsSelected$.next(selected);\n\t// }\n\n\t@Input()\n\texpandedPositionStrategy?: PositionStrategy;\n\n\t// TODO this is for select all\n\t// @Output() selectAll = new EventEmitter<void>();\n\n\t@Input()\n\texpanded = false;\n\n\t@Input()\n\tpublic override get panelRef(): LuMultiSelectPanelRef<T> | undefined {\n\t\treturn this._panelRef;\n\t}\n\n\tprotected areAllOptionsSelected$ = new ReplaySubject<boolean | undefined>(1);\n\n\tprotected override _panelRef?: LuMultiSelectPanelRef<T>;\n\n\tprotected panelRefFactory = inject(LuMultiSelectPanelRefFactory);\n\n\tpublic override writeValue(value: T[]): void {\n\t\tsuper.writeValue(value);\n\t\tthis.panelRef?.updateSelectedOptions(value);\n\t}\n\n\tprotected override buildPanelRef(): LuMultiSelectPanelRef<T> {\n\t\treturn this.panelRefFactory.buildPanelRef(\n\t\t\t{\n\t\t\t\tinitialValue: this.value,\n\t\t\t\toptionComparer: this.optionComparer,\n\t\t\t\toptions$: this.options$,\n\t\t\t\tloading$: this.loading$,\n\t\t\t\tsearchable: this.searchable,\n\t\t\t\toptionTpl: this.optionTpl,\n\t\t\t\tcanSelectAll: false, // TODO Connect this to this.selectAll.observed when we'll be fixed on how to implement select all\n\t\t\t\tareAllOptionsSelected$: this.areAllOptionsSelected$,\n\t\t\t\texpanded: this.expanded,\n\t\t\t},\n\t\t\tthis.overlayConfig,\n\t\t\tthis.expandedPositionStrategy,\n\t\t);\n\t}\n\n\tprotected override bindInputToPanelRefEvents(): void {\n\t\tif (!this.panelRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tsuper.bindInputToPanelRefEvents();\n\t\t// TODO This is for select all\n\t\t// this.panelRef.selectAll.subscribe(() => this.selectAll.emit());\n\t}\n\n\tprotected override get hasValue(): boolean {\n\t\treturn this.value && this.value.length > 0;\n\t}\n\n\toverride clearValue(event: MouseEvent): void {\n\t\tevent.stopPropagation();\n\t\tthis.onChange?.([]);\n\t\tthis.value = [];\n\t}\n}\n","<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\n<div class=\"lu-select-value\">\n\t<div class=\"lu-select-display-wrapper\">\n\t\t<ng-container *luOptionOutlet=\"valuesTpl; value: value\"></ng-container>\n\t</div>\n</div>\n<div class=\"lu-select-suffix\">\n\t<a *ngIf=\"hasValue && clearable\" role=\"button\" class=\"clear\" (click)=\"clearValue($event)\">\n\t\t<span class=\"u-mask\">{{intl.clear}}</span>\n\t</a>\n</div>\n","import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_MULTI_SELECT_DISPLAYER_TRANSLATIONS = new InjectionToken('LuMultiSelectDisplayerTranslations', {\n\tfactory: () => luMultiSelectDisplayerTranslations,\n});\n\nexport interface ILuMultiSelectDisplayerLabel {\n\totherResult: string;\n\totherResults: string;\n\tshowResultsDetails: string;\n}\n\nexport const luMultiSelectDisplayerTranslations: ILuTranslation<ILuMultiSelectDisplayerLabel> = {\n\tfr: {\n\t\totherResult: 'autre résultat',\n\t\totherResults: 'autres résultats',\n\t\tshowResultsDetails: 'Voir le détail',\n\t},\n\ten: {\n\t\totherResult: 'other result',\n\t\totherResults: 'other results',\n\t\tshowResultsDetails: 'Show details',\n\t},\n\tde: {\n\t\totherResult: 'anderes Ergebnis',\n\t\totherResults: 'andere Ergebnisse',\n\t\tshowResultsDetails: 'Details anzeigen',\n\t},\n\tes: {\n\t\totherResult: 'otro resultado',\n\t\totherResults: 'otros resultados',\n\t\tshowResultsDetails: 'Mostrar detalles',\n\t},\n\tpt: {\n\t\totherResult: 'outro resultado',\n\t\totherResults: 'outros resultados',\n\t\tshowResultsDetails: 'Mostrar detalhes',\n\t},\n};\n","import { AsyncPipe, NgFor, NgIf, NgPlural, NgPluralCase } from '@angular/common';\nimport {\n\tAfterViewInit,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tDestroyRef,\n\tElementRef,\n\tHostBinding,\n\tNgZone,\n\tOnDestroy,\n\tOnInit,\n\tQueryList,\n\tViewChild,\n\tViewChildren,\n\tinject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { ILuOptionContext, LU_OPTION_CONTEXT, ɵLuOptionOutletDirective } from '@lucca-front/ng/core-select';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { Observable, ReplaySubject, combineLatest, concatMap, debounceTime, distinctUntilChanged, map, startWith } from 'rxjs';\nimport { LuMultiSelectInputComponent } from '../input';\nimport { LU_MULTI_SELECT_DISPLAYER_TRANSLATIONS } from './default-displayer.translate';\n\nfunction fromElementWidth(el: HTMLElement): Observable<number> {\n\treturn new Observable<number>((observer) => {\n\t\t// Emit the initial width\n\t\tobserver.next(el.getBoundingClientRect().width);\n\n\t\t// Emit the new width whenever the element is resized\n\t\tconst resizeObserver = new ResizeObserver((entries) => observer.next(entries[0].contentRect.width));\n\t\tresizeObserver.observe(el);\n\n\t\t// Cleanup observer on cancellation\n\t\treturn () => resizeObserver.disconnect();\n\t}).pipe(distinctUntilChanged());\n}\n\n@Component({\n\tselector: 'lu-multi-select-default-displayer',\n\tstandalone: true,\n\timports: [AsyncPipe, LuTooltipModule, NgIf, NgFor, NgPlural, NgPluralCase, ɵLuOptionOutletDirective],\n\ttemplate: `\n\t\t<div class=\"chips-container\" #chipsContainer>\n\t\t\t<div\n\t\t\t\t#chip\n\t\t\t\t*ngFor=\"let option of context.option$ | async; let index = index\"\n\t\t\t\tclass=\"chip lu-multiselect-chip\"\n\t\t\t\t[class.mod-unkillable]=\"disabled\"\n\t\t\t\t[attr.aria-hidden]=\"index >= ((visibleChipsCount$ | async) || 0) ? 'true' : undefined\"\n\t\t\t>\n\t\t\t\t<span class=\"lu-multiselect-chip-value\"><ng-container *luOptionOutlet=\"select.valueTpl || select.optionTpl; value: option\"></ng-container></span>\n\t\t\t\t<a href *ngIf=\"!disabled\" type=\"button\" class=\"chip-kill\" (click)=\"unselectOption(option, $event)\" [attr.tabindex]=\"index >= ((visibleChipsCount$ | async) || 0) ? -1 : undefined\"></a>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"lu-multiselect-counter\" #overflow>\n\t\t\t<ng-container *ngIf=\"hiddenChipsCount$ | async as count\">\n\t\t\t\t<div class=\"chip mod-unkillable lu-multiselect-counter-chip\" aria-hidden=\"true\">+ {{ count }}</div>\n\t\t\t\t<span class=\"u-mask\" [ngPlural]=\"count\">\n\t\t\t\t\t<ng-template ngPluralCase=\"=1\">{{ intl.otherResult }}</ng-template>\n\t\t\t\t\t<ng-template ngPluralCase=\"other\">{{ intl.otherResults }}</ng-template>\n\t\t\t\t</span>\n\t\t\t</ng-container>\n\t\t</div>\n\t`,\n\tstyleUrls: ['./default-displayer.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LuMultiSelectDefaultDisplayerComponent<T> implements AfterViewInit, OnInit, OnDestroy {\n\tselect = inject<LuMultiSelectInputComponent<T>>(LuMultiSelectInputComponent);\n\telementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\tcdr = inject(ChangeDetectorRef);\n\tintl = getIntl(LU_MULTI_SELECT_DISPLAYER_TRANSLATIONS);\n\n\tprotected destroyRef = inject(DestroyRef);\n\tprotected zone = inject(NgZone);\n\n\tget disabled() {\n\t\treturn this.select.disabled;\n\t}\n\n\t@ViewChild('overflow', { static: true })\n\toverflowCountContainer: ElementRef<HTMLElement>;\n\n\t@ViewChild('chipsContainer', { static: true })\n\tchipsContainer: ElementRef<HTMLElement>;\n\n\t@ViewChildren('chip')\n\tchipsQL: QueryList<ElementRef<HTMLElement>>;\n\n\tprotected ngAfterViewInit$ = new ReplaySubject<void>(1);\n\n\tchips$: Observable<HTMLElement[]> = this.ngAfterViewInit$.pipe(\n\t\tconcatMap(() => this.chipsQL.changes.pipe(startWith(undefined))),\n\t\tmap(() => this.chipsQL.toArray().map((chip) => chip.nativeElement)),\n\t);\n\n\tcontext = inject<ILuOptionContext<T[]>>(LU_OPTION_CONTEXT);\n\n\tprotected visibleChips$ = new ReplaySubject<HTMLElement[]>(1);\n\tprotected hiddenChips$ = new ReplaySubject<HTMLElement[]>(1);\n\n\tvisibleChipsCount$ = this.visibleChips$.pipe(\n\t\tmap((chips) => chips.length),\n\t\tdistinctUntilChanged(),\n\t);\n\thiddenChipsCount$ = this.hiddenChips$.pipe(\n\t\tmap((chips) => chips.length),\n\t\tdistinctUntilChanged(),\n\t);\n\n\t@HostBinding('style.--hidden-option-count-width.px')\n\thiddenOptionCountWidthCssVar = 0;\n\n\t@HostBinding('style.--hidden-option-count-offset-left.px')\n\thiddenOptionCountOffsetLeftCssVar = 0;\n\n\tngOnInit(): void {\n\t\tthis.visibleChips$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((visible) => {\n\t\t\tthis.hiddenOptionCountOffsetLeftCssVar = visible.length ? visible[visible.length - 1].offsetLeft + visible[visible.length - 1].offsetWidth : 0;\n\t\t\tthis.cdr.markForCheck();\n\t\t});\n\n\t\tthis.hiddenChipsCount$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((hidden) => {\n\t\t\tthis.hiddenOptionCountWidthCssVar = hidden;\n\t\t\tthis.cdr.markForCheck();\n\t\t});\n\n\t\tcombineLatest([fromElementWidth(this.chipsContainer.nativeElement), fromElementWidth(this.overflowCountContainer.nativeElement), this.chips$])\n\t\t\t.pipe(\n\t\t\t\tdebounceTime(0),\n\t\t\t\tmap(([containerWidth, counterWidth, chips]) => {\n\t\t\t\t\tconst baseOffsetTop = this.elementRef.nativeElement.offsetTop;\n\n\t\t\t\t\tconst isOutOfContainer = (chip: HTMLElement, allowedWidth: number) => chip.offsetTop > baseOffsetTop || chip.offsetLeft + chip.offsetWidth > allowedWidth;\n\n\t\t\t\t\tconst needsCounterSpace = !!chips.length && isOutOfContainer(chips[chips.length - 1], containerWidth);\n\t\t\t\t\tconst availableWidth = needsCounterSpace ? containerWidth - counterWidth : containerWidth;\n\n\t\t\t\t\t// First on next line or first out of container\n\t\t\t\t\tconst firstHiddenIndex = chips.findIndex((chip) => isOutOfContainer(chip, availableWidth));\n\n\t\t\t\t\treturn firstHiddenIndex !== -1\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tvisible: chips.slice(0, firstHiddenIndex),\n\t\t\t\t\t\t\t\thidden: chips.slice(firstHiddenIndex),\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tvisible: chips,\n\t\t\t\t\t\t\t\thidden: [],\n\t\t\t\t\t\t };\n\t\t\t\t}),\n\t\t\t\ttakeUntilDestroyed(this.destroyRef),\n\t\t\t)\n\t\t\t.subscribe(({ visible, hidden }) => {\n\t\t\t\tthis.zone.run(() => {\n\t\t\t\t\tthis.visibleChips$.next(visible);\n\t\t\t\t\tthis.hiddenChips$.next(hidden);\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tunselectOption(option: T, $event: Event): void {\n\t\t$event.stopPropagation();\n\t\t$event.preventDefault();\n\t\tthis.select.updateValue(this.select.value.filter((o) => o !== option));\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.ngAfterViewInit$.complete();\n\t}\n\n\tngAfterViewInit() {\n\t\tthis.ngAfterViewInit$.next();\n\t}\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { LuOptionContext } from '@lucca-front/ng/core-select';\nimport { LuMultiSelectInputComponent } from '../input';\n\n@Directive({\n\tselector: '[luMultiDisplayer]',\n\tstandalone: true,\n})\nexport class LuMultiDisplayerDirective<T> {\n\t@Input('luMultiDisplayerSelect') set select(select: LuMultiSelectInputComponent<T>) {\n\t\tselect.valuesTpl = this.templateRef;\n\t}\n\n\tpublic constructor(private templateRef: TemplateRef<LuOptionContext<T[]>>) {}\n\n\tpublic static ngTemplateContextGuard<T>(_dir: LuMultiDisplayerDirective<T>, ctx: unknown): ctx is LuOptionContext<T[]> {\n\t\treturn true;\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -5,10 +5,10 @@ class NewBadgeComponent {
|
|
|
5
5
|
constructor() {
|
|
6
6
|
this.newBadge = true;
|
|
7
7
|
}
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: NewBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: NewBadgeComponent, isStandalone: true, selector: "lu-new-badge", inputs: { label: "label" }, host: { properties: { "class.newBadge": "this.newBadge" } }, ngImport: i0, template: "{{label}}\n", styles: [".newBadge{display:inline-flex;font-size:var(--sizes-XS-fontSize);line-height:var(--sizes-XS-lineHeight);font-weight:600;background-color:var(--palettes-lucca-700);color:var(--palettes-lucca-text);padding:0 var(--spacings-XXS);border-radius:var(--commons-borderRadius-M)}:host{display:inline-flex}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: NewBadgeComponent, decorators: [{
|
|
12
12
|
type: Component,
|
|
13
13
|
args: [{ selector: 'lu-new-badge', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "{{label}}\n", styles: [".newBadge{display:inline-flex;font-size:var(--sizes-XS-fontSize);line-height:var(--sizes-XS-lineHeight);font-weight:600;background-color:var(--palettes-lucca-700);color:var(--palettes-lucca-text);padding:0 var(--spacings-XXS);border-radius:var(--commons-borderRadius-M)}:host{display:inline-flex}\n"] }]
|
|
14
14
|
}], propDecorators: { label: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-new-badge.mjs","sources":["../../../packages/ng/new-badge/new-badge.component.ts","../../../packages/ng/new-badge/new-badge.component.html","../../../packages/ng/new-badge/lucca-front-ng-new-badge.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n\tselector: 'lu-new-badge',\n\tstandalone: true,\n\ttemplateUrl: './new-badge.component.html',\n\tstyleUrls: ['./new-badge.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NewBadgeComponent {\n\t@Input({ required: true })\n\tlabel: string;\n\n\t@HostBinding('class.newBadge')\n\tnewBadge = true;\n}\n","{{label}}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-new-badge.mjs","sources":["../../../packages/ng/new-badge/new-badge.component.ts","../../../packages/ng/new-badge/new-badge.component.html","../../../packages/ng/new-badge/lucca-front-ng-new-badge.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n\tselector: 'lu-new-badge',\n\tstandalone: true,\n\ttemplateUrl: './new-badge.component.html',\n\tstyleUrls: ['./new-badge.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NewBadgeComponent {\n\t@Input({ required: true })\n\tlabel: string;\n\n\t@HostBinding('class.newBadge')\n\tnewBadge = true;\n}\n","{{label}}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MASa,iBAAiB,CAAA;AAP9B,IAAA,WAAA,GAAA;QAYC,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;AAChB,KAAA;8GANY,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,iKCT9B,aACA,EAAA,MAAA,EAAA,CAAA,4SAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDQa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EACZ,UAAA,EAAA,IAAI,EAGC,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,4SAAA,CAAA,EAAA,CAAA;8BAI/C,KAAK,EAAA,CAAA;sBADJ,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIzB,QAAQ,EAAA,CAAA;sBADP,WAAW;uBAAC,gBAAgB,CAAA;;;AEb9B;;AAEG;;;;"}
|