@ptsecurity/mosaic 13.0.0 → 13.1.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/_theming.scss +916 -884
- package/_visual.scss +839 -686
- package/core/formatters/date/formatter.d.ts +37 -13
- package/core/public-api.d.ts +1 -0
- package/core/version.d.ts +2 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/alert.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/autocomplete.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/badge.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/button-toggle.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/button.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/card.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/checkbox.json5 +2 -2
- package/design-tokens/{tokens → legacy-2017/tokens}/components/datepicker.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/divider.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/dropdown.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/form-field.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/forms.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/input.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/link.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/list.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/modal.json5 +12 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/navbar.json5 +2 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/optgroup.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/option.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/popover.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/popup.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/progress-bar.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/progress-spinner.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/radio.json5 +0 -1
- package/design-tokens/{tokens → legacy-2017/tokens}/components/select.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/sidepanel.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/table.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/tabs.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/tags.json5 +6 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/textarea.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/timepicker.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/toggle.json5 +24 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/tooltip.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/tree.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/properties/aliases.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/properties/colors.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/properties/font.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/properties/globals.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/properties/padding.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/properties/palette.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/properties/typography.json5 +0 -0
- package/design-tokens/{tokens.d.ts → legacy-2017/tokens.d.ts} +22 -2
- package/design-tokens/pt-2022/tokens/components/alert.json5 +83 -0
- package/design-tokens/pt-2022/tokens/components/autocomplete.json5 +11 -0
- package/design-tokens/pt-2022/tokens/components/badge.json5 +184 -0
- package/design-tokens/pt-2022/tokens/components/button-toggle.json5 +10 -0
- package/design-tokens/pt-2022/tokens/components/button.json5 +143 -0
- package/design-tokens/pt-2022/tokens/components/card.json5 +51 -0
- package/design-tokens/pt-2022/tokens/components/checkbox.json5 +39 -0
- package/design-tokens/pt-2022/tokens/components/datepicker.json5 +64 -0
- package/design-tokens/pt-2022/tokens/components/divider.json5 +8 -0
- package/design-tokens/pt-2022/tokens/components/dropdown.json5 +47 -0
- package/design-tokens/pt-2022/tokens/components/form-field.json5 +52 -0
- package/design-tokens/pt-2022/tokens/components/forms.json5 +52 -0
- package/design-tokens/pt-2022/tokens/components/input.json5 +13 -0
- package/design-tokens/pt-2022/tokens/components/link.json5 +56 -0
- package/design-tokens/pt-2022/tokens/components/list.json5 +15 -0
- package/design-tokens/pt-2022/tokens/components/modal.json5 +79 -0
- package/design-tokens/pt-2022/tokens/components/navbar.json5 +69 -0
- package/design-tokens/pt-2022/tokens/components/optgroup.json5 +10 -0
- package/design-tokens/pt-2022/tokens/components/option.json5 +12 -0
- package/design-tokens/pt-2022/tokens/components/popover.json5 +68 -0
- package/design-tokens/pt-2022/tokens/components/popup.json5 +18 -0
- package/design-tokens/pt-2022/tokens/components/progress-bar.json5 +13 -0
- package/design-tokens/pt-2022/tokens/components/progress-spinner.json5 +7 -0
- package/design-tokens/pt-2022/tokens/components/radio.json5 +44 -0
- package/design-tokens/pt-2022/tokens/components/select.json5 +25 -0
- package/design-tokens/pt-2022/tokens/components/sidepanel.json5 +30 -0
- package/design-tokens/pt-2022/tokens/components/table.json5 +15 -0
- package/design-tokens/pt-2022/tokens/components/tabs.json5 +25 -0
- package/design-tokens/pt-2022/tokens/components/tags.json5 +132 -0
- package/design-tokens/pt-2022/tokens/components/textarea.json5 +12 -0
- package/design-tokens/pt-2022/tokens/components/timepicker.json5 +7 -0
- package/design-tokens/pt-2022/tokens/components/toggle.json5 +79 -0
- package/design-tokens/pt-2022/tokens/components/tooltip.json5 +83 -0
- package/design-tokens/pt-2022/tokens/components/tree.json5 +12 -0
- package/design-tokens/pt-2022/tokens/properties/aliases.json5 +3 -0
- package/design-tokens/pt-2022/tokens/properties/colors.json5 +112 -0
- package/design-tokens/pt-2022/tokens/properties/font.json5 +15 -0
- package/design-tokens/pt-2022/tokens/properties/globals.json5 +30 -0
- package/design-tokens/pt-2022/tokens/properties/padding.json5 +3 -0
- package/design-tokens/pt-2022/tokens/properties/palette.json5 +226 -0
- package/design-tokens/pt-2022/tokens/properties/typography.json5 +140 -0
- package/design-tokens/pt-2022/tokens.d.ts +8696 -0
- package/design-tokens/public-api.d.ts +3 -1
- package/esm2020/autocomplete/autocomplete-origin.directive.mjs +3 -3
- package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +3 -3
- package/esm2020/autocomplete/autocomplete.component.mjs +3 -3
- package/esm2020/autocomplete/autocomplete.module.mjs +4 -4
- package/esm2020/button/button.component.mjs +6 -6
- package/esm2020/button/button.module.mjs +4 -4
- package/esm2020/button-toggle/button-toggle.component.mjs +6 -6
- package/esm2020/button-toggle/button-toggle.module.mjs +4 -4
- package/esm2020/card/card.component.mjs +3 -3
- package/esm2020/card/card.module.mjs +4 -4
- package/esm2020/checkbox/checkbox-module.mjs +4 -4
- package/esm2020/checkbox/checkbox-required-validator.mjs +3 -3
- package/esm2020/checkbox/checkbox.mjs +3 -3
- package/esm2020/core/common-behaviors/common-module.mjs +4 -4
- package/esm2020/core/error/error-options.mjs +6 -6
- package/esm2020/core/formatters/date/formatter.mjs +76 -31
- package/esm2020/core/formatters/date/templates/en-US.mjs +38 -37
- package/esm2020/core/formatters/date/templates/ru-RU.mjs +38 -37
- package/esm2020/core/formatters/index.mjs +4 -4
- package/esm2020/core/formatters/number/formatter.mjs +4 -4
- package/esm2020/core/forms/forms-module.mjs +4 -4
- package/esm2020/core/forms/forms.directive.mjs +6 -6
- package/esm2020/core/highlight/highlight.pipe.mjs +3 -3
- package/esm2020/core/highlight/index.mjs +4 -4
- package/esm2020/core/line/line.mjs +7 -7
- package/esm2020/core/option/action.mjs +3 -3
- package/esm2020/core/option/optgroup.mjs +3 -3
- package/esm2020/core/option/option-module.mjs +4 -4
- package/esm2020/core/option/option.mjs +3 -3
- package/esm2020/core/pop-up/pop-up-trigger.mjs +4 -6
- package/esm2020/core/pop-up/pop-up.mjs +3 -3
- package/esm2020/core/public-api.mjs +2 -1
- package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +3 -3
- package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +4 -4
- package/esm2020/core/services/measure-scrollbar.service.mjs +3 -3
- package/esm2020/core/version.mjs +3 -0
- package/esm2020/datepicker/calendar-body.component.mjs +3 -3
- package/esm2020/datepicker/calendar.component.mjs +6 -6
- package/esm2020/datepicker/datepicker-input.directive.mjs +3 -3
- package/esm2020/datepicker/datepicker-intl.mjs +3 -3
- package/esm2020/datepicker/datepicker-module.mjs +4 -4
- package/esm2020/datepicker/datepicker-toggle.component.mjs +6 -6
- package/esm2020/datepicker/datepicker.component.mjs +6 -6
- package/esm2020/datepicker/month-view.component.mjs +3 -3
- package/esm2020/datepicker/multi-year-view.component.mjs +3 -3
- package/esm2020/datepicker/year-view.component.mjs +3 -3
- package/esm2020/design-tokens/legacy-2017/tokens.mjs +953 -0
- package/esm2020/design-tokens/pt-2022/tokens.mjs +1013 -0
- package/esm2020/design-tokens/public-api.mjs +4 -2
- package/esm2020/divider/divider.component.mjs +3 -3
- package/esm2020/divider/divider.module.mjs +4 -4
- package/esm2020/dropdown/dropdown-content.directive.mjs +3 -3
- package/esm2020/dropdown/dropdown-item.component.mjs +3 -3
- package/esm2020/dropdown/dropdown-trigger.directive.mjs +3 -3
- package/esm2020/dropdown/dropdown.component.mjs +3 -3
- package/esm2020/dropdown/dropdown.module.mjs +4 -4
- package/esm2020/form-field/cleaner.mjs +5 -5
- package/esm2020/form-field/form-field.mjs +6 -6
- package/esm2020/form-field/form-field.module.mjs +4 -4
- package/esm2020/form-field/hint.mjs +3 -3
- package/esm2020/form-field/prefix.mjs +3 -3
- package/esm2020/form-field/stepper.mjs +3 -3
- package/esm2020/form-field/suffix.mjs +3 -3
- package/esm2020/icon/icon.component.mjs +6 -6
- package/esm2020/icon/icon.module.mjs +4 -4
- package/esm2020/input/input-number-validators.mjs +6 -6
- package/esm2020/input/input-number.mjs +3 -3
- package/esm2020/input/input.mjs +6 -6
- package/esm2020/input/input.module.mjs +4 -4
- package/esm2020/link/link.component.mjs +3 -3
- package/esm2020/link/link.module.mjs +4 -4
- package/esm2020/list/list-selection.component.mjs +20 -26
- package/esm2020/list/list.component.mjs +6 -6
- package/esm2020/list/list.module.mjs +4 -4
- package/esm2020/modal/css-unit.pipe.mjs +3 -3
- package/esm2020/modal/modal-control.service.mjs +26 -4
- package/esm2020/modal/modal.component.mjs +3 -3
- package/esm2020/modal/modal.directive.mjs +12 -12
- package/esm2020/modal/modal.module.mjs +4 -4
- package/esm2020/modal/modal.service.mjs +3 -3
- package/esm2020/navbar/navbar-item.component.mjs +30 -30
- package/esm2020/navbar/navbar.component.mjs +9 -9
- package/esm2020/navbar/navbar.module.mjs +4 -4
- package/esm2020/navbar/vertical-navbar.component.mjs +3 -3
- package/esm2020/popover/popover-confirm.component.mjs +6 -6
- package/esm2020/popover/popover.component.mjs +6 -6
- package/esm2020/popover/popover.module.mjs +4 -4
- package/esm2020/progress-bar/progress-bar.component.mjs +3 -3
- package/esm2020/progress-bar/progress-bar.module.mjs +4 -4
- package/esm2020/progress-spinner/progress-spinner.component.mjs +3 -3
- package/esm2020/progress-spinner/progress-spinner.module.mjs +4 -4
- package/esm2020/radio/radio.component.mjs +6 -6
- package/esm2020/radio/radio.module.mjs +4 -4
- package/esm2020/select/select.component.mjs +12 -12
- package/esm2020/select/select.module.mjs +4 -4
- package/esm2020/sidebar/sidebar.component.mjs +9 -9
- package/esm2020/sidebar/sidebar.module.mjs +4 -4
- package/esm2020/sidepanel/sidepanel-container.component.mjs +3 -3
- package/esm2020/sidepanel/sidepanel-directives.mjs +15 -15
- package/esm2020/sidepanel/sidepanel.module.mjs +4 -4
- package/esm2020/sidepanel/sidepanel.service.mjs +3 -3
- package/esm2020/splitter/splitter.component.mjs +12 -12
- package/esm2020/splitter/splitter.module.mjs +4 -4
- package/esm2020/table/table.component.mjs +3 -3
- package/esm2020/table/table.module.mjs +4 -4
- package/esm2020/tabs/paginated-tab-header.mjs +3 -3
- package/esm2020/tabs/tab-body.component.mjs +6 -6
- package/esm2020/tabs/tab-content.directive.mjs +3 -3
- package/esm2020/tabs/tab-group.component.mjs +18 -18
- package/esm2020/tabs/tab-header.component.mjs +3 -3
- package/esm2020/tabs/tab-label-wrapper.directive.mjs +3 -3
- package/esm2020/tabs/tab-label.directive.mjs +3 -3
- package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +6 -6
- package/esm2020/tabs/tab.component.mjs +3 -3
- package/esm2020/tabs/tabs.module.mjs +4 -4
- package/esm2020/tags/tag-input.mjs +3 -3
- package/esm2020/tags/tag-list.component.mjs +3 -3
- package/esm2020/tags/tag.component.mjs +61 -58
- package/esm2020/tags/tag.module.mjs +4 -4
- package/esm2020/textarea/textarea.component.mjs +3 -3
- package/esm2020/textarea/textarea.module.mjs +4 -4
- package/esm2020/timepicker/timepicker.directive.mjs +3 -3
- package/esm2020/timepicker/timepicker.module.mjs +4 -4
- package/esm2020/toggle/toggle.component.mjs +3 -3
- package/esm2020/toggle/toggle.module.mjs +4 -4
- package/esm2020/tooltip/tooltip.component.mjs +14 -14
- package/esm2020/tooltip/tooltip.module.mjs +4 -4
- package/esm2020/tree/data-source/flat-data-source.mjs +4 -4
- package/esm2020/tree/node.mjs +3 -3
- package/esm2020/tree/outlet.mjs +3 -3
- package/esm2020/tree/padding.directive.mjs +3 -3
- package/esm2020/tree/toggle.mjs +11 -11
- package/esm2020/tree/tree-base.mjs +6 -6
- package/esm2020/tree/tree-option.component.mjs +17 -9
- package/esm2020/tree/tree-selection.component.mjs +8 -5
- package/esm2020/tree/tree.mjs +3 -3
- package/esm2020/tree/tree.module.mjs +4 -4
- package/esm2020/tree-select/tree-select.component.mjs +46 -10
- package/esm2020/tree-select/tree-select.module.mjs +15 -11
- package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +13 -13
- package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +10 -10
- package/fesm2015/ptsecurity-mosaic-button.mjs +10 -10
- package/fesm2015/ptsecurity-mosaic-card.mjs +7 -7
- package/fesm2015/ptsecurity-mosaic-checkbox.mjs +10 -10
- package/fesm2015/ptsecurity-mosaic-core.mjs +225 -178
- package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-datepicker.mjs +40 -40
- package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +2466 -480
- package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-divider.mjs +7 -7
- package/fesm2015/ptsecurity-mosaic-dropdown.mjs +16 -16
- package/fesm2015/ptsecurity-mosaic-form-field.mjs +26 -26
- package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-icon.mjs +10 -10
- package/fesm2015/ptsecurity-mosaic-input.mjs +19 -19
- package/fesm2015/ptsecurity-mosaic-link.mjs +7 -7
- package/fesm2015/ptsecurity-mosaic-list.mjs +30 -35
- package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-modal.mjs +50 -28
- package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-navbar.mjs +46 -46
- package/fesm2015/ptsecurity-mosaic-popover.mjs +16 -16
- package/fesm2015/ptsecurity-mosaic-progress-bar.mjs +7 -7
- package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs +7 -7
- package/fesm2015/ptsecurity-mosaic-radio.mjs +10 -10
- package/fesm2015/ptsecurity-mosaic-select.mjs +16 -16
- package/fesm2015/ptsecurity-mosaic-sidebar.mjs +13 -13
- package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +25 -25
- package/fesm2015/ptsecurity-mosaic-splitter.mjs +16 -16
- package/fesm2015/ptsecurity-mosaic-table.mjs +7 -7
- package/fesm2015/ptsecurity-mosaic-tabs.mjs +52 -52
- package/fesm2015/ptsecurity-mosaic-tags.mjs +72 -67
- package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-textarea.mjs +7 -7
- package/fesm2015/ptsecurity-mosaic-timepicker.mjs +7 -7
- package/fesm2015/ptsecurity-mosaic-toggle.mjs +7 -7
- package/fesm2015/ptsecurity-mosaic-tooltip.mjs +17 -17
- package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tree-select.mjs +59 -19
- package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tree.mjs +58 -47
- package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +13 -13
- package/fesm2020/ptsecurity-mosaic-button-toggle.mjs +10 -10
- package/fesm2020/ptsecurity-mosaic-button.mjs +10 -10
- package/fesm2020/ptsecurity-mosaic-card.mjs +7 -7
- package/fesm2020/ptsecurity-mosaic-checkbox.mjs +10 -10
- package/fesm2020/ptsecurity-mosaic-core.mjs +225 -178
- package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-datepicker.mjs +40 -40
- package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +2466 -480
- package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-divider.mjs +7 -7
- package/fesm2020/ptsecurity-mosaic-dropdown.mjs +16 -16
- package/fesm2020/ptsecurity-mosaic-form-field.mjs +26 -26
- package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-icon.mjs +10 -10
- package/fesm2020/ptsecurity-mosaic-input.mjs +19 -19
- package/fesm2020/ptsecurity-mosaic-link.mjs +7 -7
- package/fesm2020/ptsecurity-mosaic-list.mjs +29 -35
- package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-modal.mjs +50 -28
- package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-navbar.mjs +46 -46
- package/fesm2020/ptsecurity-mosaic-popover.mjs +16 -16
- package/fesm2020/ptsecurity-mosaic-progress-bar.mjs +7 -7
- package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs +7 -7
- package/fesm2020/ptsecurity-mosaic-radio.mjs +10 -10
- package/fesm2020/ptsecurity-mosaic-select.mjs +16 -16
- package/fesm2020/ptsecurity-mosaic-sidebar.mjs +13 -13
- package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +25 -25
- package/fesm2020/ptsecurity-mosaic-splitter.mjs +16 -16
- package/fesm2020/ptsecurity-mosaic-table.mjs +7 -7
- package/fesm2020/ptsecurity-mosaic-tabs.mjs +52 -52
- package/fesm2020/ptsecurity-mosaic-tags.mjs +70 -67
- package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-textarea.mjs +7 -7
- package/fesm2020/ptsecurity-mosaic-timepicker.mjs +7 -7
- package/fesm2020/ptsecurity-mosaic-toggle.mjs +7 -7
- package/fesm2020/ptsecurity-mosaic-tooltip.mjs +17 -17
- package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tree-select.mjs +58 -19
- package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tree.mjs +58 -47
- package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -1
- package/modal/modal-control.service.d.ts +1 -0
- package/package.json +4 -4
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/default-theme.css +1 -1
- package/prebuilt-visual/default-visual.css +1 -1
- package/tags/tag.component.d.ts +20 -20
- package/tree/data-source/flat-data-source.d.ts +2 -2
- package/tree/toggle.d.ts +1 -1
- package/tree/tree-option.component.d.ts +5 -3
- package/tree/tree-selection.component.d.ts +1 -0
- package/tree-select/tree-select.component.d.ts +9 -1
- package/tree-select/tree-select.module.d.ts +2 -1
- package/esm2020/design-tokens/tokens.mjs +0 -933
@@ -72,9 +72,9 @@ class McLink extends McLinkMixinBase {
|
|
72
72
|
return this.elementRef.nativeElement;
|
73
73
|
}
|
74
74
|
}
|
75
|
-
/** @nocollapse */ /** @nocollapse */ McLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
76
|
-
/** @nocollapse */ /** @nocollapse */ McLink.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
75
|
+
/** @nocollapse */ /** @nocollapse */ McLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McLink, deps: [{ token: i0.ElementRef }, { token: i1.FocusMonitor }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
76
|
+
/** @nocollapse */ /** @nocollapse */ McLink.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: McLink, selector: "[mc-link]", inputs: { tabIndex: "tabIndex", disabled: "disabled", pseudo: "pseudo", noUnderline: "noUnderline", useVisited: "useVisited", print: "print" }, host: { properties: { "class.mc-link_no-underline": "noUnderline", "class.mc-link_use-visited": "useVisited", "class.mc-link_pseudo": "pseudo", "class.mc-link_print": "printMode", "class.mc-text-only": "!hasIcon", "class.mc-text-with-icon": "hasIcon", "attr.disabled": "disabled || null", "attr.tabindex": "tabIndex", "attr.print": "print" }, classAttribute: "mc-link" }, queries: [{ propertyName: "icon", first: true, predicate: McIcon, descendants: true }], exportAs: ["mcLink"], usesInheritance: true, ngImport: i0 });
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McLink, decorators: [{
|
78
78
|
type: Directive,
|
79
79
|
args: [{
|
80
80
|
selector: '[mc-link]',
|
@@ -110,14 +110,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
110
110
|
|
111
111
|
class McLinkModule {
|
112
112
|
}
|
113
|
-
/** @nocollapse */ /** @nocollapse */ McLinkModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
114
|
-
/** @nocollapse */ /** @nocollapse */ McLinkModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
|
113
|
+
/** @nocollapse */ /** @nocollapse */ McLinkModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McLinkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
114
|
+
/** @nocollapse */ /** @nocollapse */ McLinkModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McLinkModule, declarations: [McLink], imports: [CommonModule,
|
115
115
|
A11yModule], exports: [McLink] });
|
116
|
-
/** @nocollapse */ /** @nocollapse */ McLinkModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.
|
116
|
+
/** @nocollapse */ /** @nocollapse */ McLinkModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McLinkModule, imports: [[
|
117
117
|
CommonModule,
|
118
118
|
A11yModule
|
119
119
|
]] });
|
120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
120
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McLinkModule, decorators: [{
|
121
121
|
type: NgModule,
|
122
122
|
args: [{
|
123
123
|
imports: [
|
@@ -65,13 +65,13 @@ class McListOption {
|
|
65
65
|
this._showCheckbox = coerceBooleanProperty(value);
|
66
66
|
}
|
67
67
|
get selected() {
|
68
|
-
|
68
|
+
var _a;
|
69
|
+
return ((_a = this.listSelection.selectionModel) === null || _a === void 0 ? void 0 : _a.isSelected(this)) || false;
|
69
70
|
}
|
70
71
|
set selected(value) {
|
71
72
|
const isSelected = toBoolean(value);
|
72
73
|
if (isSelected !== this._selected) {
|
73
74
|
this.setSelected(isSelected);
|
74
|
-
this.listSelection.reportValueChange();
|
75
75
|
}
|
76
76
|
}
|
77
77
|
get tabIndex() {
|
@@ -125,10 +125,7 @@ class McListOption {
|
|
125
125
|
}
|
126
126
|
getHeight() {
|
127
127
|
const clientRects = this.elementRef.nativeElement.getClientRects();
|
128
|
-
|
129
|
-
return clientRects[0].height;
|
130
|
-
}
|
131
|
-
return 0;
|
128
|
+
return clientRects.length ? clientRects[0].height : 0;
|
132
129
|
}
|
133
130
|
handleClick($event) {
|
134
131
|
if (this.disabled) {
|
@@ -180,11 +177,11 @@ class McListOption {
|
|
180
177
|
return this.elementRef.nativeElement;
|
181
178
|
}
|
182
179
|
}
|
183
|
-
/** @nocollapse */ /** @nocollapse */ McListOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
184
|
-
/** @nocollapse */ /** @nocollapse */ McListOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
180
|
+
/** @nocollapse */ /** @nocollapse */ McListOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McListOption, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: forwardRef(() => McListSelection) }, { token: i1.McOptgroup, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
181
|
+
/** @nocollapse */ /** @nocollapse */ McListOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: McListOption, selector: "mc-list-option", inputs: { checkboxPosition: "checkboxPosition", value: "value", disabled: "disabled", showCheckbox: "showCheckbox", selected: "selected" }, host: { listeners: { "focusin": "focus()", "blur": "blur()", "click": "handleClick($event)", "keydown": "onKeydown($event)" }, properties: { "class.mc-selected": "selected", "class.mc-disabled": "disabled", "class.mc-focused": "hasFocus", "class.mc-action-button-focused": "actionButton?.active", "attr.tabindex": "tabIndex", "attr.disabled": "disabled || null" }, classAttribute: "mc-list-option" }, providers: [
|
185
182
|
{ provide: MC_OPTION_ACTION_PARENT, useExisting: McListOption }
|
186
183
|
], queries: [{ propertyName: "actionButton", first: true, predicate: McOptionActionComponent, descendants: true }, { propertyName: "tooltipTrigger", first: true, predicate: McTooltipTrigger, descendants: true }, { propertyName: "dropdownTrigger", first: true, predicate: McDropdownTrigger, descendants: true }], viewQueries: [{ propertyName: "text", first: true, predicate: ["text"], descendants: true }], exportAs: ["mcListOption"], ngImport: i0, template: "<mc-pseudo-checkbox\n *ngIf=\"showCheckbox\"\n [state]=\"selected ? 'checked' : 'unchecked'\"\n [disabled]=\"disabled\">\n</mc-pseudo-checkbox>\n\n<div class=\"mc-list-text\" #text>\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"mc-option-action\"></ng-content>\n", components: [{ type: i1.McPseudoCheckbox, selector: "mc-pseudo-checkbox", inputs: ["state", "disabled"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
187
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
184
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McListOption, decorators: [{
|
188
185
|
type: Component,
|
189
186
|
args: [{ exportAs: 'mcListOption', selector: 'mc-list-option', host: {
|
190
187
|
class: 'mc-list-option',
|
@@ -498,22 +495,20 @@ class McListSelection extends McListSelectionMixinBase {
|
|
498
495
|
}
|
499
496
|
getHeight() {
|
500
497
|
const clientRects = this.elementRef.nativeElement.getClientRects();
|
501
|
-
|
502
|
-
return clientRects[0].height;
|
503
|
-
}
|
504
|
-
return 0;
|
498
|
+
return clientRects.length ? clientRects[0].height : 0;
|
505
499
|
}
|
506
500
|
// Removes an option from the selection list and updates the active item.
|
507
501
|
removeOptionFromList(option) {
|
508
|
-
if (option.hasFocus) {
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
502
|
+
if (!option.hasFocus) {
|
503
|
+
return;
|
504
|
+
}
|
505
|
+
const optionIndex = this.getOptionIndex(option);
|
506
|
+
// Check whether the option is the last item
|
507
|
+
if (optionIndex > 0) {
|
508
|
+
this.keyManager.setPreviousItemActive();
|
509
|
+
}
|
510
|
+
else if (optionIndex === 0 && this.options.length > 1) {
|
511
|
+
this.keyManager.setNextItemActive();
|
517
512
|
}
|
518
513
|
}
|
519
514
|
onKeyDown(event) {
|
@@ -650,14 +645,14 @@ class McListSelection extends McListSelectionMixinBase {
|
|
650
645
|
}
|
651
646
|
}
|
652
647
|
}
|
653
|
-
/** @nocollapse */ /** @nocollapse */ McListSelection.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
654
|
-
/** @nocollapse */ /** @nocollapse */ McListSelection.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
648
|
+
/** @nocollapse */ /** @nocollapse */ McListSelection.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McListSelection, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: 'multiple', attribute: true }, { token: i3.Clipboard, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
649
|
+
/** @nocollapse */ /** @nocollapse */ McListSelection.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: McListSelection, selector: "mc-list-selection", inputs: { disabled: "disabled", autoSelect: "autoSelect", noUnselectLast: "noUnselectLast", horizontal: "horizontal", tabIndex: "tabIndex", compareWith: "compareWith" }, outputs: { onSelectAll: "onSelectAll", onCopy: "onCopy", selectionChange: "selectionChange" }, host: { listeners: { "keydown": "onKeyDown($event)", "window:resize": "updateScrollSize()" }, properties: { "attr.tabindex": "-1", "attr.disabled": "disabled || null" }, classAttribute: "mc-list-selection" }, providers: [MC_SELECTION_LIST_VALUE_ACCESSOR], queries: [{ propertyName: "options", predicate: McListOption, descendants: true }], exportAs: ["mcListSelection"], usesInheritance: true, ngImport: i0, template: `
|
655
650
|
<div [attr.tabindex]="tabIndex"
|
656
651
|
(focus)="focus()"
|
657
652
|
(blur)="blur()">
|
658
653
|
<ng-content></ng-content>
|
659
654
|
</div>`, isInline: true, styles: [".mc-divider{display:block;margin:0}.mc-divider.mc-divider_horizontal{border-top-width:1px;border-top-width:var(--mc-divider-size-width, 1px);border-top-style:solid}.mc-divider.mc-divider_vertical{height:100%;border-right-width:1px;border-right-width:var(--mc-divider-size-width, 1px);border-right-style:solid}.mc-divider.mc-divider_inset{margin-left:80px;margin-left:var(--mc-divider-size-inset-margin, 80px)}[dir=rtl] .mc-divider.mc-divider_inset{margin-left:auto;margin-right:80px;margin-right:var(--mc-divider-size-inset-margin, 80px)}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-list,.mc-list-selection{display:block;outline:none}.mc-list-item,.mc-list-option{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;position:relative;display:flex;align-items:center;box-sizing:border-box;height:32px;height:var(--mc-list-size-item-height, 32px);border:2px solid transparent;padding-left:16px;padding-left:var(--mc-list-size-horizontal-padding, 16px)}.mc-list-item .mc-list-text,.mc-list-option .mc-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding-right:16px;padding-right:var(--mc-list-size-horizontal-padding, 16px)}.mc-list-item .mc-list-text>*,.mc-list-option .mc-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mc-list-item .mc-list-text:empty,.mc-list-option .mc-list-text:empty{display:none}.mc-list-item .mc-list-icon,.mc-list-option .mc-list-icon{box-sizing:content-box;flex-shrink:0;width:24px;width:var(--mc-list-size-icon-width, 24px);height:24px;height:var(--mc-list-size-icon-width, 24px);border-radius:50%;padding:4px;padding:var(--mc-list-size-icon-padding, 4px);font-size:24px;font-size:var(--mc-list-size-icon-width, 24px)}.mc-list-item .mc-list-icon~.mc-divider_inset,.mc-list-option .mc-list-icon~.mc-divider_inset{margin-left:32pxvar(--mc-list-size-icon-width,24px)8px;width:100%-32pxvar(--mc-list-size-icon-width,24px)8px}[dir=rtl] .mc-list-item .mc-list-icon~.mc-divider_inset,[dir=rtl] .mc-list-option .mc-list-icon~.mc-divider_inset{margin-left:auto;margin-right:32pxvar(--mc-list-size-icon-width,24px)8px}.mc-list-item .mc-divider,.mc-list-option .mc-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mc-list-item .mc-divider,[dir=rtl] .mc-list-option .mc-divider{margin-left:auto;margin-right:0}.mc-list-item .mc-divider.mc-divider_inset,.mc-list-option .mc-divider.mc-divider_inset{position:absolute}.mc-list-item.mc-progress:after,.mc-list-option.mc-progress:after{top:-2px;right:-2px;bottom:-2px;left:-2px}.mc-list-item .mc-pseudo-checkbox,.mc-list-option .mc-pseudo-checkbox{margin-right:8px}.mc-list-item .mc-option-action,.mc-list-option .mc-option-action{display:none}.mc-list-item:not([disabled]):hover .mc-option-action,.mc-list-item:not([disabled]).mc-focused .mc-option-action,.mc-list-item:not([disabled]).mc-action-button-focused .mc-option-action,.mc-list-option:not([disabled]):hover .mc-option-action,.mc-list-option:not([disabled]).mc-focused .mc-option-action,.mc-list-option:not([disabled]).mc-action-button-focused .mc-option-action{display:flex}.mc-list-option:not([disabled]):not(.mc-disabled){cursor:pointer}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
660
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
655
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McListSelection, decorators: [{
|
661
656
|
type: Component,
|
662
657
|
args: [{ exportAs: 'mcListSelection', selector: 'mc-list-selection', template: `
|
663
658
|
<div [attr.tabindex]="tabIndex"
|
@@ -702,9 +697,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
702
697
|
// todo пока не делаем, перенесено из материала, но у нас в доках таких простых списков нет.
|
703
698
|
class McList {
|
704
699
|
}
|
705
|
-
/** @nocollapse */ /** @nocollapse */ McList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
706
|
-
/** @nocollapse */ /** @nocollapse */ McList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
707
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
700
|
+
/** @nocollapse */ /** @nocollapse */ McList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McList, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
701
|
+
/** @nocollapse */ /** @nocollapse */ McList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: McList, selector: "mc-list", host: { classAttribute: "mc-list" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".mc-divider{display:block;margin:0}.mc-divider.mc-divider_horizontal{border-top-width:1px;border-top-width:var(--mc-divider-size-width, 1px);border-top-style:solid}.mc-divider.mc-divider_vertical{height:100%;border-right-width:1px;border-right-width:var(--mc-divider-size-width, 1px);border-right-style:solid}.mc-divider.mc-divider_inset{margin-left:80px;margin-left:var(--mc-divider-size-inset-margin, 80px)}[dir=rtl] .mc-divider.mc-divider_inset{margin-left:auto;margin-right:80px;margin-right:var(--mc-divider-size-inset-margin, 80px)}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-list,.mc-list-selection{display:block;outline:none}.mc-list-item,.mc-list-option{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;position:relative;display:flex;align-items:center;box-sizing:border-box;height:32px;height:var(--mc-list-size-item-height, 32px);border:2px solid transparent;padding-left:16px;padding-left:var(--mc-list-size-horizontal-padding, 16px)}.mc-list-item .mc-list-text,.mc-list-option .mc-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding-right:16px;padding-right:var(--mc-list-size-horizontal-padding, 16px)}.mc-list-item .mc-list-text>*,.mc-list-option .mc-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mc-list-item .mc-list-text:empty,.mc-list-option .mc-list-text:empty{display:none}.mc-list-item .mc-list-icon,.mc-list-option .mc-list-icon{box-sizing:content-box;flex-shrink:0;width:24px;width:var(--mc-list-size-icon-width, 24px);height:24px;height:var(--mc-list-size-icon-width, 24px);border-radius:50%;padding:4px;padding:var(--mc-list-size-icon-padding, 4px);font-size:24px;font-size:var(--mc-list-size-icon-width, 24px)}.mc-list-item .mc-list-icon~.mc-divider_inset,.mc-list-option .mc-list-icon~.mc-divider_inset{margin-left:32pxvar(--mc-list-size-icon-width,24px)8px;width:100%-32pxvar(--mc-list-size-icon-width,24px)8px}[dir=rtl] .mc-list-item .mc-list-icon~.mc-divider_inset,[dir=rtl] .mc-list-option .mc-list-icon~.mc-divider_inset{margin-left:auto;margin-right:32pxvar(--mc-list-size-icon-width,24px)8px}.mc-list-item .mc-divider,.mc-list-option .mc-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mc-list-item .mc-divider,[dir=rtl] .mc-list-option .mc-divider{margin-left:auto;margin-right:0}.mc-list-item .mc-divider.mc-divider_inset,.mc-list-option .mc-divider.mc-divider_inset{position:absolute}.mc-list-item.mc-progress:after,.mc-list-option.mc-progress:after{top:-2px;right:-2px;bottom:-2px;left:-2px}.mc-list-item .mc-pseudo-checkbox,.mc-list-option .mc-pseudo-checkbox{margin-right:8px}.mc-list-item .mc-option-action,.mc-list-option .mc-option-action{display:none}.mc-list-item:not([disabled]):hover .mc-option-action,.mc-list-item:not([disabled]).mc-focused .mc-option-action,.mc-list-item:not([disabled]).mc-action-button-focused .mc-option-action,.mc-list-option:not([disabled]):hover .mc-option-action,.mc-list-option:not([disabled]).mc-focused .mc-option-action,.mc-list-option:not([disabled]).mc-action-button-focused .mc-option-action{display:flex}.mc-list-option:not([disabled]):not(.mc-disabled){cursor:pointer}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
702
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McList, decorators: [{
|
708
703
|
type: Component,
|
709
704
|
args: [{ selector: 'mc-list', host: { class: 'mc-list' }, template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".mc-divider{display:block;margin:0}.mc-divider.mc-divider_horizontal{border-top-width:1px;border-top-width:var(--mc-divider-size-width, 1px);border-top-style:solid}.mc-divider.mc-divider_vertical{height:100%;border-right-width:1px;border-right-width:var(--mc-divider-size-width, 1px);border-right-style:solid}.mc-divider.mc-divider_inset{margin-left:80px;margin-left:var(--mc-divider-size-inset-margin, 80px)}[dir=rtl] .mc-divider.mc-divider_inset{margin-left:auto;margin-right:80px;margin-right:var(--mc-divider-size-inset-margin, 80px)}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-list,.mc-list-selection{display:block;outline:none}.mc-list-item,.mc-list-option{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;position:relative;display:flex;align-items:center;box-sizing:border-box;height:32px;height:var(--mc-list-size-item-height, 32px);border:2px solid transparent;padding-left:16px;padding-left:var(--mc-list-size-horizontal-padding, 16px)}.mc-list-item .mc-list-text,.mc-list-option .mc-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding-right:16px;padding-right:var(--mc-list-size-horizontal-padding, 16px)}.mc-list-item .mc-list-text>*,.mc-list-option .mc-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mc-list-item .mc-list-text:empty,.mc-list-option .mc-list-text:empty{display:none}.mc-list-item .mc-list-icon,.mc-list-option .mc-list-icon{box-sizing:content-box;flex-shrink:0;width:24px;width:var(--mc-list-size-icon-width, 24px);height:24px;height:var(--mc-list-size-icon-width, 24px);border-radius:50%;padding:4px;padding:var(--mc-list-size-icon-padding, 4px);font-size:24px;font-size:var(--mc-list-size-icon-width, 24px)}.mc-list-item .mc-list-icon~.mc-divider_inset,.mc-list-option .mc-list-icon~.mc-divider_inset{margin-left:32pxvar(--mc-list-size-icon-width,24px)8px;width:100%-32pxvar(--mc-list-size-icon-width,24px)8px}[dir=rtl] .mc-list-item .mc-list-icon~.mc-divider_inset,[dir=rtl] .mc-list-option .mc-list-icon~.mc-divider_inset{margin-left:auto;margin-right:32pxvar(--mc-list-size-icon-width,24px)8px}.mc-list-item .mc-divider,.mc-list-option .mc-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mc-list-item .mc-divider,[dir=rtl] .mc-list-option .mc-divider{margin-left:auto;margin-right:0}.mc-list-item .mc-divider.mc-divider_inset,.mc-list-option .mc-divider.mc-divider_inset{position:absolute}.mc-list-item.mc-progress:after,.mc-list-option.mc-progress:after{top:-2px;right:-2px;bottom:-2px;left:-2px}.mc-list-item .mc-pseudo-checkbox,.mc-list-option .mc-pseudo-checkbox{margin-right:8px}.mc-list-item .mc-option-action,.mc-list-option .mc-option-action{display:none}.mc-list-item:not([disabled]):hover .mc-option-action,.mc-list-item:not([disabled]).mc-focused .mc-option-action,.mc-list-item:not([disabled]).mc-action-button-focused .mc-option-action,.mc-list-option:not([disabled]):hover .mc-option-action,.mc-list-option:not([disabled]).mc-focused .mc-option-action,.mc-list-option:not([disabled]).mc-action-button-focused .mc-option-action{display:flex}.mc-list-option:not([disabled]):not(.mc-disabled){cursor:pointer}\n"] }]
|
710
705
|
}] });
|
@@ -726,9 +721,9 @@ class McListItem {
|
|
726
721
|
return this.elementRef.nativeElement;
|
727
722
|
}
|
728
723
|
}
|
729
|
-
/** @nocollapse */ /** @nocollapse */ McListItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
730
|
-
/** @nocollapse */ /** @nocollapse */ McListItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
731
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
724
|
+
/** @nocollapse */ /** @nocollapse */ McListItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McListItem, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
725
|
+
/** @nocollapse */ /** @nocollapse */ McListItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: McListItem, selector: "mc-list-item, a[mc-list-item]", host: { listeners: { "focus": "handleFocus()", "blur": "handleBlur()" }, classAttribute: "mc-list-item" }, queries: [{ propertyName: "lines", predicate: McLine }], ngImport: i0, template: "<ng-content select=\"[mc-list-icon], [mcListIcon]\"></ng-content>\n\n<div class=\"mc-list-text\">\n <ng-content select=\"[mc-line], [mcLine]\"></ng-content>\n</div>\n\n<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
726
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McListItem, decorators: [{
|
732
727
|
type: Component,
|
733
728
|
args: [{ selector: 'mc-list-item, a[mc-list-item]', host: {
|
734
729
|
class: 'mc-list-item',
|
@@ -742,8 +737,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
742
737
|
|
743
738
|
class McListModule {
|
744
739
|
}
|
745
|
-
/** @nocollapse */ /** @nocollapse */ McListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
746
|
-
/** @nocollapse */ /** @nocollapse */ McListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
|
740
|
+
/** @nocollapse */ /** @nocollapse */ McListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
741
|
+
/** @nocollapse */ /** @nocollapse */ McListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McListModule, declarations: [McList,
|
747
742
|
McListSelection,
|
748
743
|
McListItem,
|
749
744
|
McListOption], imports: [CommonModule,
|
@@ -755,14 +750,14 @@ class McListModule {
|
|
755
750
|
McListItem,
|
756
751
|
McListOption,
|
757
752
|
McOptionModule] });
|
758
|
-
/** @nocollapse */ /** @nocollapse */ McListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.
|
753
|
+
/** @nocollapse */ /** @nocollapse */ McListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McListModule, imports: [[
|
759
754
|
CommonModule,
|
760
755
|
A11yModule,
|
761
756
|
McPseudoCheckboxModule,
|
762
757
|
McLineModule,
|
763
758
|
McOptionModule
|
764
759
|
], McOptionModule] });
|
765
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
760
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McListModule, decorators: [{
|
766
761
|
type: NgModule,
|
767
762
|
args: [{
|
768
763
|
imports: [
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ptsecurity-mosaic-list.mjs","sources":["../../../packages/mosaic/list/list-selection.component.ts","../../../packages/mosaic/list/list-option.html","../../../packages/mosaic/list/list.component.ts","../../../packages/mosaic/list/list-item.html","../../../packages/mosaic/list/list.module.ts","../../../packages/mosaic/list/ptsecurity-mosaic-list.ts"],"sourcesContent":["/* tslint:disable:no-empty */\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n Attribute,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n QueryList,\n ViewEncapsulation,\n ChangeDetectorRef,\n Inject,\n OnDestroy,\n OnInit,\n ViewChild,\n NgZone,\n Optional,\n ContentChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusKeyManager, IFocusableOption } from '@ptsecurity/cdk/a11y';\nimport {\n hasModifierKey,\n isCopy,\n isSelectAll,\n isVerticalMovement,\n DOWN_ARROW,\n END,\n ENTER,\n HOME,\n LEFT_ARROW,\n PAGE_DOWN,\n PAGE_UP,\n RIGHT_ARROW,\n SPACE,\n TAB,\n UP_ARROW\n} from '@ptsecurity/cdk/keycodes';\nimport {\n CanDisable,\n mixinDisabled,\n toBoolean,\n CanDisableCtor,\n HasTabIndexCtor,\n mixinTabIndex,\n HasTabIndex,\n MultipleMode,\n McOptgroup,\n MC_OPTION_ACTION_PARENT,\n McOptionActionComponent\n} from '@ptsecurity/mosaic/core';\nimport { McDropdownTrigger } from '@ptsecurity/mosaic/dropdown';\nimport { McTooltipTrigger } from '@ptsecurity/mosaic/tooltip';\nimport { merge, Observable, Subject, Subscription } from 'rxjs';\nimport { startWith, take, takeUntil } from 'rxjs/operators';\n\n\n// tslint:disable-next-line:naming-convention\nexport interface McOptionEvent {\n option: McListOption;\n}\n\n/**\n * Component for list-options of selection-list. Each list-option can automatically\n * generate a checkbox and can put current item into the selectionModel of selection-list\n * if the current item is selected.\n */\n@Component({\n exportAs: 'mcListOption',\n selector: 'mc-list-option',\n templateUrl: './list-option.html',\n host: {\n class: 'mc-list-option',\n\n '[class.mc-selected]': 'selected',\n '[class.mc-disabled]': 'disabled',\n '[class.mc-focused]': 'hasFocus',\n\n '[class.mc-action-button-focused]': 'actionButton?.active',\n\n '[attr.tabindex]': 'tabIndex',\n '[attr.disabled]': 'disabled || null',\n\n '(focusin)': 'focus()',\n '(blur)': 'blur()',\n '(click)': 'handleClick($event)',\n '(keydown)': 'onKeydown($event)'\n },\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: MC_OPTION_ACTION_PARENT, useExisting: McListOption }\n ]\n})\nexport class McListOption implements OnDestroy, OnInit, IFocusableOption {\n hasFocus: boolean = false;\n\n readonly onFocus = new Subject<McOptionEvent>();\n\n readonly onBlur = new Subject<McOptionEvent>();\n\n @ContentChild(McOptionActionComponent) actionButton: McOptionActionComponent;\n @ContentChild(McTooltipTrigger) tooltipTrigger: McTooltipTrigger;\n @ContentChild(McDropdownTrigger) dropdownTrigger: McDropdownTrigger;\n\n @ViewChild('text', { static: false }) text: ElementRef;\n\n // Whether the label should appear before or after the checkbox. Defaults to 'after'\n @Input() checkboxPosition: 'before' | 'after';\n\n /**\n * This is set to true after the first OnChanges cycle so we don't clear the value of `selected`\n * in the first cycle.\n */\n private inputsInitialized = false;\n\n @Input()\n get value(): any { return this._value; }\n set value(newValue: any) {\n if (this.selected && newValue !== this.value && this.inputsInitialized) {\n this.selected = false;\n }\n\n this._value = newValue;\n }\n private _value: any;\n\n @Input()\n get disabled() {\n const listSelectionDisabled = this.listSelection && this.listSelection.disabled;\n const groupDisabled = this.group && this.group.disabled;\n\n return listSelectionDisabled || groupDisabled || this._disabled;\n }\n\n set disabled(value: any) {\n const newValue = toBoolean(value);\n\n if (newValue !== this._disabled) {\n this._disabled = newValue;\n this.changeDetector.markForCheck();\n }\n }\n\n private _disabled = false;\n\n @Input()\n get showCheckbox() {\n return this._showCheckbox !== undefined ? this._showCheckbox : this.listSelection.showCheckbox;\n }\n\n set showCheckbox(value: any) {\n this._showCheckbox = coerceBooleanProperty(value);\n }\n\n private _showCheckbox: boolean;\n\n @Input()\n get selected(): boolean {\n return this.listSelection.selectionModel && this.listSelection.selectionModel.isSelected(this) || false;\n }\n\n set selected(value: boolean) {\n const isSelected = toBoolean(value);\n\n if (isSelected !== this._selected) {\n this.setSelected(isSelected);\n\n this.listSelection.reportValueChange();\n }\n }\n\n private _selected = false;\n\n get tabIndex(): any {\n return this.disabled ? null : -1;\n }\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetector: ChangeDetectorRef,\n private ngZone: NgZone,\n @Inject(forwardRef(() => McListSelection)) public listSelection: McListSelection,\n @Optional() readonly group: McOptgroup\n ) {}\n\n ngOnInit() {\n const list = this.listSelection;\n\n if (list._value && list._value.some((value) => list.compareWith(value, this._value))) {\n this.setSelected(true);\n }\n\n const wasSelected = this._selected;\n\n // List options that are selected at initialization can't be reported properly to the form\n // control. This is because it takes some time until the selection-list knows about all\n // available options. Also it can happen that the ControlValueAccessor has an initial value\n // that should be used instead. Deferring the value change report to the next tick ensures\n // that the form control value is not being overwritten.\n Promise.resolve().then(() => {\n if (this._selected || wasSelected) {\n this.selected = true;\n this.changeDetector.markForCheck();\n }\n });\n\n this.inputsInitialized = true;\n }\n\n ngOnDestroy(): void {\n if (this.selected) {\n // We have to delay this until the next tick in order\n // to avoid changed after checked errors.\n Promise.resolve().then(() => this.selected = false);\n }\n\n this.listSelection.removeOptionFromList(this);\n }\n\n toggle(): void {\n this.selected = !this.selected;\n }\n\n getLabel() {\n return this.text ? this.text.nativeElement.textContent : '';\n }\n\n setSelected(selected: boolean) {\n if (this._selected === selected || !this.listSelection.selectionModel) { return; }\n\n this._selected = selected;\n\n if (selected) {\n this.listSelection.selectionModel.select(this);\n } else {\n this.listSelection.selectionModel.deselect(this);\n }\n\n this.changeDetector.markForCheck();\n }\n\n getHeight(): number {\n const clientRects = this.elementRef.nativeElement.getClientRects();\n\n if (clientRects.length) {\n return clientRects[0].height;\n }\n\n return 0;\n }\n\n handleClick($event) {\n if (this.disabled) { return; }\n\n this.listSelection.setSelectedOptionsByClick(\n this, hasModifierKey($event, 'shiftKey'), hasModifierKey($event, 'ctrlKey')\n );\n }\n\n onKeydown($event) {\n if (!this.actionButton) { return; }\n\n if ($event.keyCode === TAB && !$event.shiftKey && !this.actionButton.hasFocus) {\n this.actionButton.focus();\n\n $event.preventDefault();\n }\n }\n\n focus() {\n if (this.disabled || this.hasFocus || this.actionButton?.hasFocus) { return; }\n\n this.elementRef.nativeElement.focus();\n\n this.onFocus.next({ option: this });\n\n Promise.resolve().then(() => {\n this.hasFocus = true;\n\n this.changeDetector.markForCheck();\n });\n }\n\n blur(): void {\n // When animations are enabled, Angular may end up removing the option from the DOM a little\n // earlier than usual, causing it to be blurred and throwing off the logic in the list\n // that moves focus not the next item. To work around the issue, we defer marking the option\n // as not focused until the next time the zone stabilizes.\n this.ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this.ngZone.run(() => {\n this.hasFocus = false;\n\n if (this.actionButton?.hasFocus) { return; }\n\n this.onBlur.next({ option: this });\n });\n });\n }\n\n getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n\n\nexport const MC_SELECTION_LIST_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => McListSelection),\n multi: true\n};\n\nexport class McListSelectionChange {\n constructor(public source: McListSelection, public option: McListOption) {}\n}\n\nexport class McListSelectAllEvent<T> {\n constructor(public source: McListSelection, public options: T[]) {}\n}\n\nexport class McListCopyEvent<T> {\n constructor(public source: McListSelection, public option: T) {}\n}\n\nexport class McListSelectionBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n// tslint:disable-next-line:naming-convention\nexport const McListSelectionMixinBase: CanDisableCtor & HasTabIndexCtor & typeof McListSelectionBase\n = mixinTabIndex(mixinDisabled(McListSelectionBase));\n\n@Component({\n exportAs: 'mcListSelection',\n selector: 'mc-list-selection',\n template: `\n <div [attr.tabindex]=\"tabIndex\"\n (focus)=\"focus()\"\n (blur)=\"blur()\">\n <ng-content></ng-content>\n </div>`,\n styleUrls: ['./list.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled'],\n host: {\n class: 'mc-list-selection',\n\n '[attr.tabindex]': '-1',\n '[attr.disabled]': 'disabled || null',\n\n '(keydown)': 'onKeyDown($event)',\n '(window:resize)': 'updateScrollSize()'\n },\n providers: [MC_SELECTION_LIST_VALUE_ACCESSOR],\n preserveWhitespaces: false\n})\nexport class McListSelection extends McListSelectionMixinBase implements CanDisable, HasTabIndex, AfterContentInit,\n ControlValueAccessor {\n\n keyManager: FocusKeyManager<McListOption>;\n\n @ContentChildren(McListOption, { descendants: true }) options: QueryList<McListOption>;\n\n @Output() readonly onSelectAll = new EventEmitter<McListSelectAllEvent<McListOption>>();\n\n @Output() readonly onCopy = new EventEmitter<McListCopyEvent<McListOption>>();\n\n @Input()\n get autoSelect(): boolean {\n return this._autoSelect;\n }\n\n set autoSelect(value: boolean) {\n this._autoSelect = coerceBooleanProperty(value);\n }\n\n private _autoSelect: boolean = true;\n\n @Input()\n get noUnselectLast(): boolean {\n return this._noUnselectLast;\n }\n\n set noUnselectLast(value: boolean) {\n this._noUnselectLast = coerceBooleanProperty(value);\n }\n\n private _noUnselectLast: boolean = true;\n\n multipleMode: MultipleMode | null;\n\n get multiple(): boolean {\n return !!this.multipleMode;\n }\n\n @Input() horizontal: boolean = false;\n\n @Input()\n get tabIndex(): any {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: any) {\n this.userTabIndex = value;\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n userTabIndex: number | null = null;\n\n get showCheckbox(): boolean {\n return this.multipleMode === MultipleMode.CHECKBOX;\n }\n\n // Emits a change event whenever the selected state of an option changes.\n @Output() readonly selectionChange: EventEmitter<McListSelectionChange> = new EventEmitter<McListSelectionChange>();\n\n selectionModel: SelectionModel<McListOption>;\n\n get optionFocusChanges(): Observable<McOptionEvent> {\n return merge(...this.options.map((option) => option.onFocus));\n }\n\n get optionBlurChanges(): Observable<McOptionEvent> {\n return merge(...this.options.map((option) => option.onBlur));\n }\n\n // tslint:disable-next-line:orthodox-getter-and-setter naming-convention\n _value: string[] | null;\n\n /** Emits whenever the component is destroyed. */\n private readonly destroyed = new Subject<void>();\n\n private optionFocusSubscription: Subscription | null;\n\n private optionBlurSubscription: Subscription | null;\n\n constructor(\n elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n @Attribute('multiple') multiple: MultipleMode,\n @Optional() private clipboard: Clipboard\n ) {\n super(elementRef);\n\n if (multiple === MultipleMode.CHECKBOX || multiple === MultipleMode.KEYBOARD) {\n this.multipleMode = multiple;\n } else if (multiple !== null) {\n this.multipleMode = MultipleMode.CHECKBOX;\n }\n\n if (this.multipleMode === MultipleMode.CHECKBOX) {\n this.autoSelect = false;\n this.noUnselectLast = false;\n }\n\n this.selectionModel = new SelectionModel<McListOption>(this.multiple);\n }\n\n /**\n * Function used for comparing an option against the selected value when determining which\n * options should appear as selected. The first argument is the value of an options. The second\n * one is a value from the selected value. A boolean must be returned.\n */\n @Input() compareWith: (o1: any, o2: any) => boolean = (a1, a2) => a1 === a2;\n\n ngAfterContentInit(): void {\n this.horizontal = toBoolean(this.horizontal);\n\n this.keyManager = new FocusKeyManager<McListOption>(this.options)\n .withTypeAhead()\n .withVerticalOrientation(!this.horizontal)\n .withHorizontalOrientation(this.horizontal ? 'ltr' : null);\n\n this.keyManager.tabOut\n .pipe(takeUntil(this.destroyed))\n .subscribe(() => {\n this._tabIndex = -1;\n\n setTimeout(() => {\n this._tabIndex = this.userTabIndex || 0;\n this.changeDetectorRef.markForCheck();\n });\n });\n\n if (this._value) {\n this.setOptionsFromValues(this._value);\n }\n\n this.selectionModel.changed\n .pipe(takeUntil(this.destroyed))\n .subscribe((event) => {\n for (const item of event.added) { item.selected = true; }\n\n for (const item of event.removed) { item.selected = false; }\n });\n\n this.options.changes\n .pipe(startWith(null), takeUntil(this.destroyed))\n .subscribe(() => {\n this.resetOptions();\n\n // Check to see if we need to update our tab index\n this.updateTabIndex();\n });\n\n this.updateScrollSize();\n }\n\n ngOnDestroy() {\n this.destroyed.next();\n\n this.destroyed.complete();\n }\n\n focus(): void {\n if (this.options.length === 0) { return; }\n\n this.keyManager.setFirstItemActive();\n }\n\n blur() {\n if (!this.hasFocusedOption()) {\n this.keyManager.setActiveItem(-1);\n }\n\n this.onTouched();\n this.changeDetectorRef.markForCheck();\n }\n\n selectAll() {\n this.options.forEach((option) => option.setSelected(true));\n\n this.reportValueChange();\n }\n\n deselectAll() {\n this.options.forEach((option) => option.setSelected(false));\n\n this.reportValueChange();\n }\n\n updateScrollSize(): void {\n if (this.horizontal || !this.options.first) { return; }\n\n this.keyManager.withScrollSize(Math.floor(this.getHeight() / this.options.first.getHeight()));\n }\n\n setSelectedOptionsByClick(option: McListOption, shiftKey: boolean, ctrlKey: boolean): void {\n if (shiftKey && this.multiple) {\n this.setSelectedOptions(option);\n } else if (ctrlKey) {\n if (!this.canDeselectLast(option)) { return; }\n\n this.selectionModel.toggle(option);\n } else if (this.autoSelect) {\n this.selectionModel.clear();\n this.selectionModel.toggle(option);\n } else {\n this.selectionModel.toggle(option);\n }\n\n this.emitChangeEvent(option);\n this.reportValueChange();\n }\n\n setSelectedOptionsByKey(option: McListOption, shiftKey: boolean, ctrlKey: boolean): void {\n if (shiftKey && this.multiple) {\n this.setSelectedOptions(option);\n } else if (ctrlKey) {\n if (!this.canDeselectLast(option)) { return; }\n } else if (this.autoSelect) {\n this.options.forEach((item) => item.setSelected(false));\n option.setSelected(true);\n\n this.emitChangeEvent(option);\n this.reportValueChange();\n }\n }\n\n setSelectedOptions(option: McListOption): void {\n const selectedOptionState = option.selected;\n\n let fromIndex = this.keyManager.previousActiveItemIndex;\n let toIndex = this.keyManager.previousActiveItemIndex = this.keyManager.activeItemIndex;\n\n if (toIndex === fromIndex) { return; }\n\n if (fromIndex > toIndex) {\n [fromIndex, toIndex] = [toIndex, fromIndex];\n }\n\n this.options\n .toArray()\n .slice(fromIndex, toIndex + 1)\n .filter((item) => !item.disabled)\n .forEach((renderedOption) => {\n const isLastRenderedOption = renderedOption === this.keyManager.activeItem;\n\n if (isLastRenderedOption && renderedOption.selected && this.noUnselectLast) { return; }\n\n renderedOption.setSelected(!selectedOptionState);\n });\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(values: string[]): void {\n this._value = values;\n\n if (this.options) {\n this.setOptionsFromValues(values || []);\n }\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Implemented as a part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n if (this.options) {\n this.options.forEach((option) => option.disabled = isDisabled);\n }\n }\n\n getSelectedOptionValues(): string[] {\n return this.options.filter((option) => option.selected).map((option) => option.value);\n }\n\n // Toggles the selected state of the currently focused option.\n toggleFocusedOption(): void {\n const focusedIndex = this.keyManager.activeItemIndex;\n\n if (focusedIndex != null && this.isValidIndex(focusedIndex)) {\n const focusedOption: McListOption = this.options.toArray()[focusedIndex];\n\n if (focusedOption && this.canDeselectLast(focusedOption)) {\n focusedOption.toggle();\n\n // Emit a change event because the focused option changed its state through user interaction.\n this.emitChangeEvent(focusedOption);\n }\n }\n }\n\n canDeselectLast(listOption: McListOption): boolean {\n return !(this.noUnselectLast && this.selectionModel.selected.length === 1 && listOption.selected);\n }\n\n getHeight(): number {\n const clientRects = this.elementRef.nativeElement.getClientRects();\n\n if (clientRects.length) {\n return clientRects[0].height;\n }\n\n return 0;\n }\n\n // View to model callback that should be called if the list or its options lost focus.\n // tslint:disable-next-line:no-empty\n onTouched: () => void = () => {};\n\n // Removes an option from the selection list and updates the active item.\n removeOptionFromList(option: McListOption) {\n if (option.hasFocus) {\n const optionIndex = this.getOptionIndex(option);\n\n // Check whether the option is the last item\n if (optionIndex > 0) {\n this.keyManager.setPreviousItemActive();\n } else if (optionIndex === 0 && this.options.length > 1) {\n this.keyManager.setNextItemActive();\n }\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n // tslint:disable-next-line: deprecation\n const keyCode = event.keyCode;\n\n if ([SPACE, ENTER, LEFT_ARROW, RIGHT_ARROW].includes(keyCode) || isVerticalMovement(event)) {\n event.preventDefault();\n }\n\n if (this.multiple && isSelectAll(event)) {\n this.selectAllOptions();\n event.preventDefault();\n\n return;\n } else if (isCopy(event)) {\n this.copyActiveOption();\n event.preventDefault();\n\n return;\n } else if ([SPACE, ENTER].includes(keyCode)) {\n this.toggleFocusedOption();\n\n return;\n } else if (keyCode === TAB) {\n this.keyManager.tabOut.next();\n\n return;\n } else if (keyCode === DOWN_ARROW) {\n this.keyManager.setNextItemActive();\n } else if (keyCode === UP_ARROW) {\n this.keyManager.setPreviousItemActive();\n } else if (keyCode === HOME) {\n this.keyManager.setFirstItemActive();\n } else if (keyCode === END) {\n this.keyManager.setLastItemActive();\n } else if (keyCode === PAGE_UP) {\n this.keyManager.setPreviousPageItemActive();\n } else if (keyCode === PAGE_DOWN) {\n this.keyManager.setNextPageItemActive();\n }\n\n if (this.keyManager.activeItem && isVerticalMovement(event)) {\n this.setSelectedOptionsByKey(\n this.keyManager.activeItem as McListOption,\n hasModifierKey(event, 'shiftKey'),\n hasModifierKey(event, 'ctrlKey')\n );\n }\n }\n\n // Reports a value change to the ControlValueAccessor\n reportValueChange() {\n if (this.options) {\n const value = this.getSelectedOptionValues();\n this.onChange(value);\n this._value = value;\n }\n }\n\n // Emits a change event if the selected state of an option changed.\n emitChangeEvent(option: McListOption) {\n this.selectionChange.emit(new McListSelectionChange(this, option));\n }\n\n protected updateTabIndex(): void {\n this._tabIndex = this.userTabIndex || (this.options.length === 0 ? -1 : 0);\n }\n\n private onCopyDefaultHandler(): void {\n this.clipboard?.copy(this.keyManager.activeItem!.value);\n }\n\n private resetOptions() {\n this.dropSubscriptions();\n this.listenToOptionsFocus();\n }\n\n private dropSubscriptions() {\n if (this.optionFocusSubscription) {\n this.optionFocusSubscription.unsubscribe();\n this.optionFocusSubscription = null;\n }\n\n if (this.optionBlurSubscription) {\n this.optionBlurSubscription.unsubscribe();\n this.optionBlurSubscription = null;\n }\n }\n\n private listenToOptionsFocus(): void {\n this.optionFocusSubscription = this.optionFocusChanges\n .subscribe((event) => {\n const index: number = this.options.toArray().indexOf(event.option);\n\n if (this.isValidIndex(index)) {\n this.keyManager.updateActiveItem(index);\n }\n });\n\n this.optionBlurSubscription = this.optionBlurChanges\n .subscribe(() => this.blur());\n }\n\n /** Checks whether any of the options is focused. */\n private hasFocusedOption() {\n return this.options.some((option) => option.hasFocus);\n }\n\n // Returns the option with the specified value.\n private getOptionByValue(value: string): McListOption | undefined {\n return this.options.find((option) => option.value === value);\n }\n\n // Sets the selected options based on the specified values.\n private setOptionsFromValues(values: string[]) {\n this.options.forEach((option) => option.setSelected(false));\n\n values\n .map((value) => this.getOptionByValue(value))\n .filter(Boolean)\n .forEach((option) => option!.setSelected(true));\n }\n\n /**\n * Utility to ensure all indexes are valid.\n * @param index The index to be checked.\n * @returns True if the index is valid for our list of options.\n */\n private isValidIndex(index: number): boolean {\n return index >= 0 && index < this.options.length;\n }\n\n // Returns the index of the specified list option.\n private getOptionIndex(option: McListOption): number {\n return this.options.toArray().indexOf(option);\n }\n\n // View to model callback that should be called whenever the selected options change.\n private onChange: (value: any) => void = (_: any) => {};\n\n private selectAllOptions() {\n const optionsToSelect = this.options\n .filter((option) => !option.disabled);\n\n optionsToSelect\n .forEach((option) => option.setSelected(true));\n\n this.onSelectAll.emit(new McListSelectAllEvent(this, optionsToSelect));\n }\n\n private copyActiveOption() {\n if (this.onCopy.observers.length) {\n this.onCopy.emit(new McListCopyEvent(this, this.keyManager.activeItem as McListOption));\n } else {\n this.onCopyDefaultHandler();\n }\n }\n}\n","<mc-pseudo-checkbox\n *ngIf=\"showCheckbox\"\n [state]=\"selected ? 'checked' : 'unchecked'\"\n [disabled]=\"disabled\">\n</mc-pseudo-checkbox>\n\n<div class=\"mc-list-text\" #text>\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"mc-option-action\"></ng-content>\n","// todo пока не делаем, перенесено из материала, но у нас в доках таких простых списков нет.\nimport {\n AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, ElementRef, QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { McLine, McLineSetter } from '@ptsecurity/mosaic/core';\n\n\n@Component({\n selector: 'mc-list',\n host: { class: 'mc-list' },\n template: '<ng-content></ng-content>',\n styleUrls: ['./list.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McList {}\n\n\n@Component({\n selector: 'mc-list-item, a[mc-list-item]',\n host: {\n class: 'mc-list-item',\n '(focus)': 'handleFocus()',\n '(blur)': 'handleBlur()'\n },\n templateUrl: './list-item.html',\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class McListItem implements AfterContentInit {\n @ContentChildren(McLine) lines: QueryList<McLine>;\n\n constructor(private elementRef: ElementRef) {}\n\n ngAfterContentInit() {\n // tslint:disable-next-line:no-unused-expression\n new McLineSetter(this.lines, this.elementRef);\n }\n\n handleFocus() {\n this.elementRef.nativeElement.classList.add('mc-focused');\n }\n\n handleBlur() {\n this.elementRef.nativeElement.classList.remove('mc-focused');\n }\n\n getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n","<ng-content select=\"[mc-list-icon], [mcListIcon]\"></ng-content>\n\n<div class=\"mc-list-text\">\n <ng-content select=\"[mc-line], [mcLine]\"></ng-content>\n</div>\n\n<ng-content></ng-content>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McLineModule, McOptionModule, McPseudoCheckboxModule } from '@ptsecurity/mosaic/core';\n\nimport { McListSelection, McListOption } from './list-selection.component';\nimport { McList, McListItem } from './list.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n McPseudoCheckboxModule,\n McLineModule,\n McOptionModule\n ],\n exports: [\n McList,\n McListSelection,\n McListItem,\n McListOption,\n McOptionModule\n ],\n declarations: [\n McList,\n McListSelection,\n McListItem,\n McListOption\n ]\n})\nexport class McListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"ptsecurity-mosaic-list.mjs","sources":["../../../packages/mosaic/list/list-selection.component.ts","../../../packages/mosaic/list/list-option.html","../../../packages/mosaic/list/list.component.ts","../../../packages/mosaic/list/list-item.html","../../../packages/mosaic/list/list.module.ts","../../../packages/mosaic/list/ptsecurity-mosaic-list.ts"],"sourcesContent":["/* tslint:disable:no-empty */\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n Attribute,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n QueryList,\n ViewEncapsulation,\n ChangeDetectorRef,\n Inject,\n OnDestroy,\n OnInit,\n ViewChild,\n NgZone,\n Optional,\n ContentChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusKeyManager, IFocusableOption } from '@ptsecurity/cdk/a11y';\nimport {\n hasModifierKey,\n isCopy,\n isSelectAll,\n isVerticalMovement,\n DOWN_ARROW,\n END,\n ENTER,\n HOME,\n LEFT_ARROW,\n PAGE_DOWN,\n PAGE_UP,\n RIGHT_ARROW,\n SPACE,\n TAB,\n UP_ARROW\n} from '@ptsecurity/cdk/keycodes';\nimport {\n CanDisable,\n mixinDisabled,\n toBoolean,\n CanDisableCtor,\n HasTabIndexCtor,\n mixinTabIndex,\n HasTabIndex,\n MultipleMode,\n McOptgroup,\n MC_OPTION_ACTION_PARENT,\n McOptionActionComponent\n} from '@ptsecurity/mosaic/core';\nimport { McDropdownTrigger } from '@ptsecurity/mosaic/dropdown';\nimport { McTooltipTrigger } from '@ptsecurity/mosaic/tooltip';\nimport { merge, Observable, Subject, Subscription } from 'rxjs';\nimport { startWith, take, takeUntil } from 'rxjs/operators';\n\n\n// tslint:disable-next-line:naming-convention\nexport interface McOptionEvent {\n option: McListOption;\n}\n\n/**\n * Component for list-options of selection-list. Each list-option can automatically\n * generate a checkbox and can put current item into the selectionModel of selection-list\n * if the current item is selected.\n */\n@Component({\n exportAs: 'mcListOption',\n selector: 'mc-list-option',\n templateUrl: './list-option.html',\n host: {\n class: 'mc-list-option',\n\n '[class.mc-selected]': 'selected',\n '[class.mc-disabled]': 'disabled',\n '[class.mc-focused]': 'hasFocus',\n\n '[class.mc-action-button-focused]': 'actionButton?.active',\n\n '[attr.tabindex]': 'tabIndex',\n '[attr.disabled]': 'disabled || null',\n\n '(focusin)': 'focus()',\n '(blur)': 'blur()',\n '(click)': 'handleClick($event)',\n '(keydown)': 'onKeydown($event)'\n },\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: MC_OPTION_ACTION_PARENT, useExisting: McListOption }\n ]\n})\nexport class McListOption implements OnDestroy, OnInit, IFocusableOption {\n hasFocus: boolean = false;\n\n readonly onFocus = new Subject<McOptionEvent>();\n\n readonly onBlur = new Subject<McOptionEvent>();\n\n @ContentChild(McOptionActionComponent) actionButton: McOptionActionComponent;\n @ContentChild(McTooltipTrigger) tooltipTrigger: McTooltipTrigger;\n @ContentChild(McDropdownTrigger) dropdownTrigger: McDropdownTrigger;\n\n @ViewChild('text', { static: false }) text: ElementRef;\n\n // Whether the label should appear before or after the checkbox. Defaults to 'after'\n @Input() checkboxPosition: 'before' | 'after';\n\n /**\n * This is set to true after the first OnChanges cycle so we don't clear the value of `selected`\n * in the first cycle.\n */\n private inputsInitialized = false;\n\n @Input()\n get value(): any { return this._value; }\n set value(newValue: any) {\n if (this.selected && newValue !== this.value && this.inputsInitialized) {\n this.selected = false;\n }\n\n this._value = newValue;\n }\n private _value: any;\n\n @Input()\n get disabled() {\n const listSelectionDisabled = this.listSelection && this.listSelection.disabled;\n const groupDisabled = this.group && this.group.disabled;\n\n return listSelectionDisabled || groupDisabled || this._disabled;\n }\n\n set disabled(value: any) {\n const newValue = toBoolean(value);\n\n if (newValue !== this._disabled) {\n this._disabled = newValue;\n this.changeDetector.markForCheck();\n }\n }\n\n private _disabled = false;\n\n @Input()\n get showCheckbox() {\n return this._showCheckbox !== undefined ? this._showCheckbox : this.listSelection.showCheckbox;\n }\n\n set showCheckbox(value: any) {\n this._showCheckbox = coerceBooleanProperty(value);\n }\n\n private _showCheckbox: boolean;\n\n @Input()\n get selected(): boolean {\n return this.listSelection.selectionModel?.isSelected(this) || false;\n }\n\n set selected(value: boolean) {\n const isSelected = toBoolean(value);\n\n if (isSelected !== this._selected) {\n this.setSelected(isSelected);\n }\n }\n\n private _selected = false;\n\n get tabIndex(): any {\n return this.disabled ? null : -1;\n }\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetector: ChangeDetectorRef,\n private ngZone: NgZone,\n @Inject(forwardRef(() => McListSelection)) public listSelection: McListSelection,\n @Optional() readonly group: McOptgroup\n ) {}\n\n ngOnInit() {\n const list = this.listSelection;\n\n if (list._value && list._value.some((value) => list.compareWith(value, this._value))) {\n this.setSelected(true);\n }\n\n const wasSelected = this._selected;\n\n // List options that are selected at initialization can't be reported properly to the form\n // control. This is because it takes some time until the selection-list knows about all\n // available options. Also it can happen that the ControlValueAccessor has an initial value\n // that should be used instead. Deferring the value change report to the next tick ensures\n // that the form control value is not being overwritten.\n Promise.resolve().then(() => {\n if (this._selected || wasSelected) {\n this.selected = true;\n this.changeDetector.markForCheck();\n }\n });\n\n this.inputsInitialized = true;\n }\n\n ngOnDestroy(): void {\n if (this.selected) {\n // We have to delay this until the next tick in order\n // to avoid changed after checked errors.\n Promise.resolve().then(() => this.selected = false);\n }\n\n this.listSelection.removeOptionFromList(this);\n }\n\n toggle(): void {\n this.selected = !this.selected;\n }\n\n getLabel() {\n return this.text ? this.text.nativeElement.textContent : '';\n }\n\n setSelected(selected: boolean) {\n if (this._selected === selected || !this.listSelection.selectionModel) { return; }\n\n this._selected = selected;\n\n if (selected) {\n this.listSelection.selectionModel.select(this);\n } else {\n this.listSelection.selectionModel.deselect(this);\n }\n\n this.changeDetector.markForCheck();\n }\n\n getHeight(): number {\n const clientRects = this.elementRef.nativeElement.getClientRects();\n\n return clientRects.length ? clientRects[0].height : 0;\n }\n\n handleClick($event) {\n if (this.disabled) { return; }\n\n this.listSelection.setSelectedOptionsByClick(\n this, hasModifierKey($event, 'shiftKey'), hasModifierKey($event, 'ctrlKey')\n );\n }\n\n onKeydown($event) {\n if (!this.actionButton) { return; }\n\n if ($event.keyCode === TAB && !$event.shiftKey && !this.actionButton.hasFocus) {\n this.actionButton.focus();\n\n $event.preventDefault();\n }\n }\n\n focus() {\n if (this.disabled || this.hasFocus || this.actionButton?.hasFocus) { return; }\n\n this.elementRef.nativeElement.focus();\n\n this.onFocus.next({ option: this });\n\n Promise.resolve().then(() => {\n this.hasFocus = true;\n\n this.changeDetector.markForCheck();\n });\n }\n\n blur(): void {\n // When animations are enabled, Angular may end up removing the option from the DOM a little\n // earlier than usual, causing it to be blurred and throwing off the logic in the list\n // that moves focus not the next item. To work around the issue, we defer marking the option\n // as not focused until the next time the zone stabilizes.\n this.ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this.ngZone.run(() => {\n this.hasFocus = false;\n\n if (this.actionButton?.hasFocus) { return; }\n\n this.onBlur.next({ option: this });\n });\n });\n }\n\n getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n\n\nexport const MC_SELECTION_LIST_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => McListSelection),\n multi: true\n};\n\nexport class McListSelectionChange {\n constructor(public source: McListSelection, public option: McListOption) {}\n}\n\nexport class McListSelectAllEvent<T> {\n constructor(public source: McListSelection, public options: T[]) {}\n}\n\nexport class McListCopyEvent<T> {\n constructor(public source: McListSelection, public option: T) {}\n}\n\nexport class McListSelectionBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n// tslint:disable-next-line:naming-convention\nexport const McListSelectionMixinBase: CanDisableCtor & HasTabIndexCtor & typeof McListSelectionBase\n = mixinTabIndex(mixinDisabled(McListSelectionBase));\n\n@Component({\n exportAs: 'mcListSelection',\n selector: 'mc-list-selection',\n template: `\n <div [attr.tabindex]=\"tabIndex\"\n (focus)=\"focus()\"\n (blur)=\"blur()\">\n <ng-content></ng-content>\n </div>`,\n styleUrls: ['./list.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled'],\n host: {\n class: 'mc-list-selection',\n\n '[attr.tabindex]': '-1',\n '[attr.disabled]': 'disabled || null',\n\n '(keydown)': 'onKeyDown($event)',\n '(window:resize)': 'updateScrollSize()'\n },\n providers: [MC_SELECTION_LIST_VALUE_ACCESSOR],\n preserveWhitespaces: false\n})\nexport class McListSelection extends McListSelectionMixinBase implements CanDisable, HasTabIndex, AfterContentInit,\n ControlValueAccessor {\n\n keyManager: FocusKeyManager<McListOption>;\n\n @ContentChildren(McListOption, { descendants: true }) options: QueryList<McListOption>;\n\n @Output() readonly onSelectAll = new EventEmitter<McListSelectAllEvent<McListOption>>();\n\n @Output() readonly onCopy = new EventEmitter<McListCopyEvent<McListOption>>();\n\n @Input()\n get autoSelect(): boolean {\n return this._autoSelect;\n }\n\n set autoSelect(value: boolean) {\n this._autoSelect = coerceBooleanProperty(value);\n }\n\n private _autoSelect: boolean = true;\n\n @Input()\n get noUnselectLast(): boolean {\n return this._noUnselectLast;\n }\n\n set noUnselectLast(value: boolean) {\n this._noUnselectLast = coerceBooleanProperty(value);\n }\n\n private _noUnselectLast: boolean = true;\n\n multipleMode: MultipleMode | null;\n\n get multiple(): boolean {\n return !!this.multipleMode;\n }\n\n @Input() horizontal: boolean = false;\n\n @Input()\n get tabIndex(): any {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: any) {\n this.userTabIndex = value;\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n userTabIndex: number | null = null;\n\n get showCheckbox(): boolean {\n return this.multipleMode === MultipleMode.CHECKBOX;\n }\n\n // Emits a change event whenever the selected state of an option changes.\n @Output() readonly selectionChange: EventEmitter<McListSelectionChange> = new EventEmitter<McListSelectionChange>();\n\n selectionModel: SelectionModel<McListOption>;\n\n get optionFocusChanges(): Observable<McOptionEvent> {\n return merge(...this.options.map((option) => option.onFocus));\n }\n\n get optionBlurChanges(): Observable<McOptionEvent> {\n return merge(...this.options.map((option) => option.onBlur));\n }\n\n // tslint:disable-next-line:orthodox-getter-and-setter naming-convention\n _value: string[] | null;\n\n /** Emits whenever the component is destroyed. */\n private readonly destroyed = new Subject<void>();\n\n private optionFocusSubscription: Subscription | null;\n\n private optionBlurSubscription: Subscription | null;\n\n constructor(\n elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n @Attribute('multiple') multiple: MultipleMode,\n @Optional() private clipboard: Clipboard\n ) {\n super(elementRef);\n\n if (multiple === MultipleMode.CHECKBOX || multiple === MultipleMode.KEYBOARD) {\n this.multipleMode = multiple;\n } else if (multiple !== null) {\n this.multipleMode = MultipleMode.CHECKBOX;\n }\n\n if (this.multipleMode === MultipleMode.CHECKBOX) {\n this.autoSelect = false;\n this.noUnselectLast = false;\n }\n\n this.selectionModel = new SelectionModel<McListOption>(this.multiple);\n }\n\n /**\n * Function used for comparing an option against the selected value when determining which\n * options should appear as selected. The first argument is the value of an options. The second\n * one is a value from the selected value. A boolean must be returned.\n */\n @Input() compareWith: (o1: any, o2: any) => boolean = (a1, a2) => a1 === a2;\n\n ngAfterContentInit(): void {\n this.horizontal = toBoolean(this.horizontal);\n\n this.keyManager = new FocusKeyManager<McListOption>(this.options)\n .withTypeAhead()\n .withVerticalOrientation(!this.horizontal)\n .withHorizontalOrientation(this.horizontal ? 'ltr' : null);\n\n this.keyManager.tabOut\n .pipe(takeUntil(this.destroyed))\n .subscribe(() => {\n this._tabIndex = -1;\n\n setTimeout(() => {\n this._tabIndex = this.userTabIndex || 0;\n this.changeDetectorRef.markForCheck();\n });\n });\n\n if (this._value) {\n this.setOptionsFromValues(this._value);\n }\n\n this.selectionModel.changed\n .pipe(takeUntil(this.destroyed))\n .subscribe((event) => {\n for (const item of event.added) { item.selected = true; }\n\n for (const item of event.removed) { item.selected = false; }\n });\n\n this.options.changes\n .pipe(startWith(null), takeUntil(this.destroyed))\n .subscribe(() => {\n this.resetOptions();\n\n // Check to see if we need to update our tab index\n this.updateTabIndex();\n });\n\n this.updateScrollSize();\n }\n\n ngOnDestroy() {\n this.destroyed.next();\n\n this.destroyed.complete();\n }\n\n focus(): void {\n if (this.options.length === 0) { return; }\n\n this.keyManager.setFirstItemActive();\n }\n\n blur() {\n if (!this.hasFocusedOption()) {\n this.keyManager.setActiveItem(-1);\n }\n\n this.onTouched();\n this.changeDetectorRef.markForCheck();\n }\n\n selectAll() {\n this.options.forEach((option) => option.setSelected(true));\n\n this.reportValueChange();\n }\n\n deselectAll() {\n this.options.forEach((option) => option.setSelected(false));\n\n this.reportValueChange();\n }\n\n updateScrollSize(): void {\n if (this.horizontal || !this.options.first) { return; }\n\n this.keyManager.withScrollSize(Math.floor(this.getHeight() / this.options.first.getHeight()));\n }\n\n setSelectedOptionsByClick(option: McListOption, shiftKey: boolean, ctrlKey: boolean): void {\n if (shiftKey && this.multiple) {\n this.setSelectedOptions(option);\n } else if (ctrlKey) {\n if (!this.canDeselectLast(option)) { return; }\n\n this.selectionModel.toggle(option);\n } else if (this.autoSelect) {\n this.selectionModel.clear();\n this.selectionModel.toggle(option);\n } else {\n this.selectionModel.toggle(option);\n }\n\n this.emitChangeEvent(option);\n this.reportValueChange();\n }\n\n setSelectedOptionsByKey(option: McListOption, shiftKey: boolean, ctrlKey: boolean): void {\n if (shiftKey && this.multiple) {\n this.setSelectedOptions(option);\n } else if (ctrlKey) {\n if (!this.canDeselectLast(option)) { return; }\n } else if (this.autoSelect) {\n this.options.forEach((item) => item.setSelected(false));\n option.setSelected(true);\n\n this.emitChangeEvent(option);\n this.reportValueChange();\n }\n }\n\n setSelectedOptions(option: McListOption): void {\n const selectedOptionState = option.selected;\n\n let fromIndex = this.keyManager.previousActiveItemIndex;\n let toIndex = this.keyManager.previousActiveItemIndex = this.keyManager.activeItemIndex;\n\n if (toIndex === fromIndex) { return; }\n\n if (fromIndex > toIndex) {\n [fromIndex, toIndex] = [toIndex, fromIndex];\n }\n\n this.options\n .toArray()\n .slice(fromIndex, toIndex + 1)\n .filter((item) => !item.disabled)\n .forEach((renderedOption) => {\n const isLastRenderedOption = renderedOption === this.keyManager.activeItem;\n\n if (isLastRenderedOption && renderedOption.selected && this.noUnselectLast) { return; }\n\n renderedOption.setSelected(!selectedOptionState);\n });\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(values: string[]): void {\n this._value = values;\n\n if (this.options) {\n this.setOptionsFromValues(values || []);\n }\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Implemented as a part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n if (this.options) {\n this.options.forEach((option) => option.disabled = isDisabled);\n }\n }\n\n getSelectedOptionValues(): string[] {\n return this.options.filter((option) => option.selected).map((option) => option.value);\n }\n\n // Toggles the selected state of the currently focused option.\n toggleFocusedOption(): void {\n const focusedIndex = this.keyManager.activeItemIndex;\n\n if (focusedIndex != null && this.isValidIndex(focusedIndex)) {\n const focusedOption: McListOption = this.options.toArray()[focusedIndex];\n\n if (focusedOption && this.canDeselectLast(focusedOption)) {\n focusedOption.toggle();\n\n // Emit a change event because the focused option changed its state through user interaction.\n this.emitChangeEvent(focusedOption);\n }\n }\n }\n\n canDeselectLast(listOption: McListOption): boolean {\n return !(this.noUnselectLast && this.selectionModel.selected.length === 1 && listOption.selected);\n }\n\n getHeight(): number {\n const clientRects = this.elementRef.nativeElement.getClientRects();\n\n return clientRects.length ? clientRects[0].height : 0;\n }\n\n // View to model callback that should be called if the list or its options lost focus.\n // tslint:disable-next-line:no-empty\n onTouched: () => void = () => {};\n\n // Removes an option from the selection list and updates the active item.\n removeOptionFromList(option: McListOption) {\n if (!option.hasFocus) { return; }\n\n const optionIndex = this.getOptionIndex(option);\n\n // Check whether the option is the last item\n if (optionIndex > 0) {\n this.keyManager.setPreviousItemActive();\n } else if (optionIndex === 0 && this.options.length > 1) {\n this.keyManager.setNextItemActive();\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n // tslint:disable-next-line: deprecation\n const keyCode = event.keyCode;\n\n if ([SPACE, ENTER, LEFT_ARROW, RIGHT_ARROW].includes(keyCode) || isVerticalMovement(event)) {\n event.preventDefault();\n }\n\n if (this.multiple && isSelectAll(event)) {\n this.selectAllOptions();\n event.preventDefault();\n\n return;\n } else if (isCopy(event)) {\n this.copyActiveOption();\n event.preventDefault();\n\n return;\n } else if ([SPACE, ENTER].includes(keyCode)) {\n this.toggleFocusedOption();\n\n return;\n } else if (keyCode === TAB) {\n this.keyManager.tabOut.next();\n\n return;\n } else if (keyCode === DOWN_ARROW) {\n this.keyManager.setNextItemActive();\n } else if (keyCode === UP_ARROW) {\n this.keyManager.setPreviousItemActive();\n } else if (keyCode === HOME) {\n this.keyManager.setFirstItemActive();\n } else if (keyCode === END) {\n this.keyManager.setLastItemActive();\n } else if (keyCode === PAGE_UP) {\n this.keyManager.setPreviousPageItemActive();\n } else if (keyCode === PAGE_DOWN) {\n this.keyManager.setNextPageItemActive();\n }\n\n if (this.keyManager.activeItem && isVerticalMovement(event)) {\n this.setSelectedOptionsByKey(\n this.keyManager.activeItem as McListOption,\n hasModifierKey(event, 'shiftKey'),\n hasModifierKey(event, 'ctrlKey')\n );\n }\n }\n\n // Reports a value change to the ControlValueAccessor\n reportValueChange() {\n if (this.options) {\n const value = this.getSelectedOptionValues();\n this.onChange(value);\n this._value = value;\n }\n }\n\n // Emits a change event if the selected state of an option changed.\n emitChangeEvent(option: McListOption) {\n this.selectionChange.emit(new McListSelectionChange(this, option));\n }\n\n protected updateTabIndex(): void {\n this._tabIndex = this.userTabIndex || (this.options.length === 0 ? -1 : 0);\n }\n\n private onCopyDefaultHandler(): void {\n this.clipboard?.copy(this.keyManager.activeItem!.value);\n }\n\n private resetOptions() {\n this.dropSubscriptions();\n this.listenToOptionsFocus();\n }\n\n private dropSubscriptions() {\n if (this.optionFocusSubscription) {\n this.optionFocusSubscription.unsubscribe();\n this.optionFocusSubscription = null;\n }\n\n if (this.optionBlurSubscription) {\n this.optionBlurSubscription.unsubscribe();\n this.optionBlurSubscription = null;\n }\n }\n\n private listenToOptionsFocus(): void {\n this.optionFocusSubscription = this.optionFocusChanges\n .subscribe((event) => {\n const index: number = this.options.toArray().indexOf(event.option);\n\n if (this.isValidIndex(index)) {\n this.keyManager.updateActiveItem(index);\n }\n });\n\n this.optionBlurSubscription = this.optionBlurChanges\n .subscribe(() => this.blur());\n }\n\n /** Checks whether any of the options is focused. */\n private hasFocusedOption() {\n return this.options.some((option) => option.hasFocus);\n }\n\n // Returns the option with the specified value.\n private getOptionByValue(value: string): McListOption | undefined {\n return this.options.find((option) => option.value === value);\n }\n\n // Sets the selected options based on the specified values.\n private setOptionsFromValues(values: string[]) {\n this.options.forEach((option) => option.setSelected(false));\n\n values\n .map((value) => this.getOptionByValue(value))\n .filter(Boolean)\n .forEach((option) => option!.setSelected(true));\n }\n\n /**\n * Utility to ensure all indexes are valid.\n * @param index The index to be checked.\n * @returns True if the index is valid for our list of options.\n */\n private isValidIndex(index: number): boolean {\n return index >= 0 && index < this.options.length;\n }\n\n // Returns the index of the specified list option.\n private getOptionIndex(option: McListOption): number {\n return this.options.toArray().indexOf(option);\n }\n\n // View to model callback that should be called whenever the selected options change.\n private onChange: (value: any) => void = (_: any) => {};\n\n private selectAllOptions() {\n const optionsToSelect = this.options\n .filter((option) => !option.disabled);\n\n optionsToSelect\n .forEach((option) => option.setSelected(true));\n\n this.onSelectAll.emit(new McListSelectAllEvent(this, optionsToSelect));\n }\n\n private copyActiveOption() {\n if (this.onCopy.observers.length) {\n this.onCopy.emit(new McListCopyEvent(this, this.keyManager.activeItem as McListOption));\n } else {\n this.onCopyDefaultHandler();\n }\n }\n}\n","<mc-pseudo-checkbox\n *ngIf=\"showCheckbox\"\n [state]=\"selected ? 'checked' : 'unchecked'\"\n [disabled]=\"disabled\">\n</mc-pseudo-checkbox>\n\n<div class=\"mc-list-text\" #text>\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"mc-option-action\"></ng-content>\n","// todo пока не делаем, перенесено из материала, но у нас в доках таких простых списков нет.\nimport {\n AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, ElementRef, QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { McLine, McLineSetter } from '@ptsecurity/mosaic/core';\n\n\n@Component({\n selector: 'mc-list',\n host: { class: 'mc-list' },\n template: '<ng-content></ng-content>',\n styleUrls: ['./list.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McList {}\n\n\n@Component({\n selector: 'mc-list-item, a[mc-list-item]',\n host: {\n class: 'mc-list-item',\n '(focus)': 'handleFocus()',\n '(blur)': 'handleBlur()'\n },\n templateUrl: './list-item.html',\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class McListItem implements AfterContentInit {\n @ContentChildren(McLine) lines: QueryList<McLine>;\n\n constructor(private elementRef: ElementRef) {}\n\n ngAfterContentInit() {\n // tslint:disable-next-line:no-unused-expression\n new McLineSetter(this.lines, this.elementRef);\n }\n\n handleFocus() {\n this.elementRef.nativeElement.classList.add('mc-focused');\n }\n\n handleBlur() {\n this.elementRef.nativeElement.classList.remove('mc-focused');\n }\n\n getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n","<ng-content select=\"[mc-list-icon], [mcListIcon]\"></ng-content>\n\n<div class=\"mc-list-text\">\n <ng-content select=\"[mc-line], [mcLine]\"></ng-content>\n</div>\n\n<ng-content></ng-content>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McLineModule, McOptionModule, McPseudoCheckboxModule } from '@ptsecurity/mosaic/core';\n\nimport { McListSelection, McListOption } from './list-selection.component';\nimport { McList, McListItem } from './list.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n McPseudoCheckboxModule,\n McLineModule,\n McOptionModule\n ],\n exports: [\n McList,\n McListSelection,\n McListItem,\n McListOption,\n McOptionModule\n ],\n declarations: [\n McList,\n McListSelection,\n McListItem,\n McListOption\n ]\n})\nexport class McListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|