@ptsecurity/mosaic 13.0.0 → 13.2.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 +1235 -1004
- package/_visual.scss +914 -708
- package/core/formatters/date/formatter.d.ts +37 -13
- package/core/pop-up/pop-up.d.ts +1 -0
- 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 +28 -38
- 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/legacy-2017/tokens/components/dl.json5 +38 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/components/dropdown.json5 +0 -0
- package/design-tokens/legacy-2017/tokens/components/form-field.json5 +91 -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/legacy-2017/tokens/components/tabs.json5 +101 -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 +4 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/properties/font.json5 +0 -0
- package/design-tokens/{tokens → legacy-2017/tokens}/properties/globals.json5 +20 -1
- 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} +101 -28
- 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 +174 -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/dl.json5 +38 -0
- package/design-tokens/pt-2022/tokens/components/dropdown.json5 +47 -0
- package/design-tokens/pt-2022/tokens/components/form-field.json5 +91 -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 +101 -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 +116 -0
- package/design-tokens/pt-2022/tokens/properties/font.json5 +15 -0
- package/design-tokens/pt-2022/tokens/properties/globals.json5 +49 -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 +8749 -0
- package/design-tokens/public-api.d.ts +3 -1
- package/dl/README.md +0 -0
- package/dl/dl.component.d.ts +26 -0
- package/dl/dl.module.d.ts +10 -0
- package/dl/index.d.ts +1 -0
- package/dl/package.json +10 -0
- package/dl/ptsecurity-mosaic-dl.d.ts +5 -0
- package/dl/public-api.d.ts +2 -0
- package/esm2020/autocomplete/autocomplete-origin.directive.mjs +3 -3
- package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +3 -3
- package/esm2020/autocomplete/autocomplete.component.mjs +5 -5
- package/esm2020/autocomplete/autocomplete.module.mjs +4 -4
- package/esm2020/button/button.component.mjs +7 -7
- package/esm2020/button/button.module.mjs +4 -4
- package/esm2020/button-toggle/button-toggle.component.mjs +8 -8
- package/esm2020/button-toggle/button-toggle.module.mjs +4 -4
- package/esm2020/card/card.component.mjs +4 -4
- 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 +4 -4
- 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 +4 -4
- package/esm2020/core/option/option-module.mjs +4 -4
- package/esm2020/core/option/option.mjs +4 -4
- package/esm2020/core/pop-up/pop-up-trigger.mjs +7 -14
- package/esm2020/core/pop-up/pop-up.mjs +7 -4
- package/esm2020/core/public-api.mjs +2 -1
- package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +4 -4
- 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 +4 -4
- package/esm2020/datepicker/calendar.component.mjs +7 -7
- 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 +7 -7
- package/esm2020/datepicker/datepicker.component.mjs +8 -8
- 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 +1006 -0
- package/esm2020/design-tokens/pt-2022/tokens.mjs +1066 -0
- package/esm2020/design-tokens/public-api.mjs +4 -2
- package/esm2020/divider/divider.component.mjs +4 -4
- package/esm2020/divider/divider.module.mjs +4 -4
- package/esm2020/dl/dl.component.mjs +78 -0
- package/esm2020/dl/dl.module.mjs +42 -0
- package/esm2020/dl/index.mjs +2 -0
- package/esm2020/dl/ptsecurity-mosaic-dl.mjs +5 -0
- package/esm2020/dl/public-api.mjs +3 -0
- package/esm2020/dropdown/dropdown-content.directive.mjs +3 -3
- package/esm2020/dropdown/dropdown-item.component.mjs +4 -4
- package/esm2020/dropdown/dropdown-trigger.directive.mjs +3 -3
- package/esm2020/dropdown/dropdown.component.mjs +6 -6
- package/esm2020/dropdown/dropdown.module.mjs +4 -4
- package/esm2020/form-field/cleaner.mjs +5 -5
- package/esm2020/form-field/form-field.mjs +48 -28
- package/esm2020/form-field/form-field.module.mjs +10 -5
- package/esm2020/form-field/hint.mjs +6 -6
- package/esm2020/form-field/password-hint.mjs +115 -0
- package/esm2020/form-field/prefix.mjs +3 -3
- package/esm2020/form-field/public-api.mjs +2 -1
- 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-password.mjs +367 -0
- package/esm2020/input/input.mjs +6 -6
- package/esm2020/input/input.module.mjs +50 -8
- package/esm2020/input/public-api.mjs +2 -1
- package/esm2020/link/link.component.mjs +3 -3
- package/esm2020/link/link.module.mjs +4 -4
- package/esm2020/list/list-selection.component.mjs +22 -28
- package/esm2020/list/list.component.mjs +7 -7
- 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 +4 -4
- 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 +37 -31
- package/esm2020/navbar/navbar.component.mjs +10 -10
- package/esm2020/navbar/navbar.module.mjs +4 -4
- package/esm2020/navbar/vertical-navbar.component.mjs +6 -6
- package/esm2020/popover/popover-confirm.component.mjs +8 -8
- package/esm2020/popover/popover.component.mjs +8 -8
- package/esm2020/popover/popover.module.mjs +4 -4
- package/esm2020/progress-bar/progress-bar.component.mjs +4 -4
- package/esm2020/progress-bar/progress-bar.module.mjs +4 -4
- package/esm2020/progress-spinner/progress-spinner.component.mjs +4 -4
- package/esm2020/progress-spinner/progress-spinner.module.mjs +4 -4
- package/esm2020/radio/radio.component.mjs +7 -7
- package/esm2020/radio/radio.module.mjs +4 -4
- package/esm2020/select/select.component.mjs +15 -15
- 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 +5 -5
- package/esm2020/sidepanel/sidepanel-directives.mjs +18 -18
- package/esm2020/sidepanel/sidepanel.module.mjs +4 -4
- package/esm2020/sidepanel/sidepanel.service.mjs +3 -3
- package/esm2020/splitter/splitter.component.mjs +22 -20
- 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 +20 -20
- package/esm2020/tabs/tab-header.component.mjs +4 -4
- 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 +9 -9
- 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 +4 -4
- 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 +6 -6
- package/esm2020/toggle/toggle.module.mjs +4 -4
- package/esm2020/tooltip/tooltip.component.mjs +17 -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 +15 -15
- package/fesm2015/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +12 -12
- package/fesm2015/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-button.mjs +11 -11
- package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-card.mjs +8 -8
- package/fesm2015/ptsecurity-mosaic-card.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-checkbox.mjs +11 -11
- package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-core.mjs +234 -189
- package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-datepicker.mjs +44 -44
- package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +2647 -502
- package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-divider.mjs +8 -8
- package/fesm2015/ptsecurity-mosaic-divider.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-dl.mjs +124 -0
- package/fesm2015/ptsecurity-mosaic-dl.mjs.map +1 -0
- package/fesm2015/ptsecurity-mosaic-dropdown.mjs +19 -19
- package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-form-field.mjs +193 -51
- package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-icon.mjs +10 -10
- package/fesm2015/ptsecurity-mosaic-icon.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-input.mjs +429 -28
- package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-link.mjs +7 -7
- package/fesm2015/ptsecurity-mosaic-link.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-list.mjs +33 -38
- package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-modal.mjs +51 -29
- package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-navbar.mjs +55 -49
- package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-popover.mjs +18 -18
- package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-progress-bar.mjs +8 -8
- package/fesm2015/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs +8 -8
- package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-radio.mjs +11 -11
- package/fesm2015/ptsecurity-mosaic-radio.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-select.mjs +18 -18
- package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-sidebar.mjs +13 -13
- package/fesm2015/ptsecurity-mosaic-sidebar.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +28 -28
- package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-splitter.mjs +25 -23
- package/fesm2015/ptsecurity-mosaic-splitter.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-table.mjs +7 -7
- package/fesm2015/ptsecurity-mosaic-table.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tabs.mjs +56 -56
- package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tags.mjs +73 -68
- package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-textarea.mjs +7 -7
- package/fesm2015/ptsecurity-mosaic-textarea.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-timepicker.mjs +7 -7
- package/fesm2015/ptsecurity-mosaic-timepicker.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-toggle.mjs +9 -9
- package/fesm2015/ptsecurity-mosaic-toggle.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tooltip.mjs +20 -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/fesm2015/ptsecurity-mosaic.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +15 -15
- package/fesm2020/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-button-toggle.mjs +12 -12
- package/fesm2020/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-button.mjs +11 -11
- package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-card.mjs +8 -8
- package/fesm2020/ptsecurity-mosaic-card.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-checkbox.mjs +11 -11
- package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-core.mjs +234 -189
- package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-datepicker.mjs +44 -44
- package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +2647 -502
- package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-divider.mjs +8 -8
- package/fesm2020/ptsecurity-mosaic-divider.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-dl.mjs +124 -0
- package/fesm2020/ptsecurity-mosaic-dl.mjs.map +1 -0
- package/fesm2020/ptsecurity-mosaic-dropdown.mjs +19 -19
- package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-form-field.mjs +182 -51
- package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-icon.mjs +10 -10
- package/fesm2020/ptsecurity-mosaic-icon.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-input.mjs +422 -28
- package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-link.mjs +7 -7
- package/fesm2020/ptsecurity-mosaic-link.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-list.mjs +32 -38
- package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-modal.mjs +51 -29
- package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-navbar.mjs +55 -49
- package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-popover.mjs +18 -18
- package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-progress-bar.mjs +8 -8
- package/fesm2020/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs +8 -8
- package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-radio.mjs +11 -11
- package/fesm2020/ptsecurity-mosaic-radio.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-select.mjs +18 -18
- package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-sidebar.mjs +13 -13
- package/fesm2020/ptsecurity-mosaic-sidebar.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +28 -28
- package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-splitter.mjs +25 -23
- package/fesm2020/ptsecurity-mosaic-splitter.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-table.mjs +7 -7
- package/fesm2020/ptsecurity-mosaic-table.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tabs.mjs +56 -56
- package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tags.mjs +71 -68
- package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-textarea.mjs +7 -7
- package/fesm2020/ptsecurity-mosaic-textarea.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-timepicker.mjs +7 -7
- package/fesm2020/ptsecurity-mosaic-timepicker.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-toggle.mjs +9 -9
- package/fesm2020/ptsecurity-mosaic-toggle.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tooltip.mjs +20 -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/fesm2020/ptsecurity-mosaic.mjs.map +1 -1
- package/form-field/form-field.d.ts +9 -2
- package/form-field/form-field.module.d.ts +8 -7
- package/form-field/password-hint.d.ts +38 -0
- package/form-field/public-api.d.ts +1 -0
- package/input/input-password.d.ts +120 -0
- package/input/input.module.d.ts +7 -6
- package/input/public-api.d.ts +1 -0
- package/modal/modal-control.service.d.ts +1 -0
- package/navbar/navbar-item.component.d.ts +1 -0
- package/package.json +12 -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/design-tokens/tokens/components/form-field.json5 +0 -52
- package/design-tokens/tokens/components/tabs.json5 +0 -25
- package/esm2020/design-tokens/tokens.mjs +0 -933
@@ -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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"}
|
@@ -44,6 +44,7 @@ class McModalControlService {
|
|
44
44
|
const afterOpenSubscription = modalRef.afterOpen.subscribe(() => this.openModals.push(modalRef));
|
45
45
|
const afterCloseSubscription = modalRef.afterClose.subscribe(() => this.removeOpenModal(modalRef));
|
46
46
|
this.registeredMetaMap.set(modalRef, { modalRef, afterOpenSubscription, afterCloseSubscription });
|
47
|
+
this.handleMultipleMasks(modalRef);
|
47
48
|
}
|
48
49
|
}
|
49
50
|
hasRegistered(modalRef) {
|
@@ -65,10 +66,31 @@ class McModalControlService {
|
|
65
66
|
}
|
66
67
|
}
|
67
68
|
}
|
69
|
+
handleMultipleMasks(modalRef) {
|
70
|
+
const modals = Array.from(this.registeredMetaMap.values()).map((v) => v.modalRef);
|
71
|
+
if (modals.filter((modal) => modal.mcVisible).length > 1) {
|
72
|
+
const otherModals = modals.splice(0, modals.length - 1)
|
73
|
+
.filter((modal) => modal.mcVisible && modal.mcMask);
|
74
|
+
// hide other masks
|
75
|
+
setTimeout(() => {
|
76
|
+
otherModals.forEach((modal) => {
|
77
|
+
modal.getInstance().mcMask = false;
|
78
|
+
modal.markForCheck();
|
79
|
+
});
|
80
|
+
});
|
81
|
+
// show other masks on close
|
82
|
+
modalRef.afterClose.subscribe(() => {
|
83
|
+
otherModals.forEach((modal) => {
|
84
|
+
modal.getInstance().mcMask = true;
|
85
|
+
modal.markForCheck();
|
86
|
+
});
|
87
|
+
});
|
88
|
+
}
|
89
|
+
}
|
68
90
|
}
|
69
|
-
/** @nocollapse */ /** @nocollapse */ McModalControlService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
70
|
-
/** @nocollapse */ /** @nocollapse */ McModalControlService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.
|
71
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
91
|
+
/** @nocollapse */ /** @nocollapse */ McModalControlService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McModalControlService, deps: [{ token: McModalControlService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
92
|
+
/** @nocollapse */ /** @nocollapse */ McModalControlService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McModalControlService });
|
93
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McModalControlService, decorators: [{
|
72
94
|
type: Injectable
|
73
95
|
}], ctorParameters: function () { return [{ type: McModalControlService, decorators: [{
|
74
96
|
type: Optional
|
@@ -110,9 +132,9 @@ var ModalSize;
|
|
110
132
|
|
111
133
|
class McModalTitle {
|
112
134
|
}
|
113
|
-
/** @nocollapse */ /** @nocollapse */ McModalTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
114
|
-
/** @nocollapse */ /** @nocollapse */ McModalTitle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
115
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
135
|
+
/** @nocollapse */ /** @nocollapse */ McModalTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McModalTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
136
|
+
/** @nocollapse */ /** @nocollapse */ McModalTitle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: McModalTitle, selector: "[mc-modal-title], mc-modal-title, [mcModalTitle]", host: { classAttribute: "mc-modal-header mc-modal-title" }, ngImport: i0 });
|
137
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McModalTitle, decorators: [{
|
116
138
|
type: Directive,
|
117
139
|
args: [{
|
118
140
|
selector: `[mc-modal-title], mc-modal-title, [mcModalTitle]`,
|
@@ -123,9 +145,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
123
145
|
}] });
|
124
146
|
class McModalBody {
|
125
147
|
}
|
126
|
-
/** @nocollapse */ /** @nocollapse */ McModalBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
127
|
-
/** @nocollapse */ /** @nocollapse */ McModalBody.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
148
|
+
/** @nocollapse */ /** @nocollapse */ McModalBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McModalBody, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
149
|
+
/** @nocollapse */ /** @nocollapse */ McModalBody.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: McModalBody, selector: "[mc-modal-body], mc-modal-body, [mcModalBody]", host: { classAttribute: "mc-modal-body" }, ngImport: i0 });
|
150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McModalBody, decorators: [{
|
129
151
|
type: Directive,
|
130
152
|
args: [{
|
131
153
|
selector: `[mc-modal-body], mc-modal-body, [mcModalBody]`,
|
@@ -136,9 +158,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
136
158
|
}] });
|
137
159
|
class McModalFooter {
|
138
160
|
}
|
139
|
-
/** @nocollapse */ /** @nocollapse */ McModalFooter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
140
|
-
/** @nocollapse */ /** @nocollapse */ McModalFooter.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
141
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
161
|
+
/** @nocollapse */ /** @nocollapse */ McModalFooter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McModalFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
162
|
+
/** @nocollapse */ /** @nocollapse */ McModalFooter.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: McModalFooter, selector: "[mc-modal-footer], mc-modal-footer, [mcModalFooter]", host: { classAttribute: "mc-modal-footer" }, ngImport: i0 });
|
163
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McModalFooter, decorators: [{
|
142
164
|
type: Directive,
|
143
165
|
args: [{
|
144
166
|
selector: `[mc-modal-footer], mc-modal-footer, [mcModalFooter]`,
|
@@ -149,9 +171,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
149
171
|
}] });
|
150
172
|
class McModalMainAction {
|
151
173
|
}
|
152
|
-
/** @nocollapse */ /** @nocollapse */ McModalMainAction.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
153
|
-
/** @nocollapse */ /** @nocollapse */ McModalMainAction.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
154
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
174
|
+
/** @nocollapse */ /** @nocollapse */ McModalMainAction.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McModalMainAction, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
175
|
+
/** @nocollapse */ /** @nocollapse */ McModalMainAction.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: McModalMainAction, selector: "[mc-modal-main-action]", ngImport: i0 });
|
176
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McModalMainAction, decorators: [{
|
155
177
|
type: Directive,
|
156
178
|
args: [{
|
157
179
|
selector: `[mc-modal-main-action]`
|
@@ -164,9 +186,9 @@ class CssUnitPipe {
|
|
164
186
|
return isNaN(formatted) ? `${value}` : `${formatted}${defaultUnit}`;
|
165
187
|
}
|
166
188
|
}
|
167
|
-
/** @nocollapse */ /** @nocollapse */ CssUnitPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
168
|
-
/** @nocollapse */ /** @nocollapse */ CssUnitPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.
|
169
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
189
|
+
/** @nocollapse */ /** @nocollapse */ CssUnitPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CssUnitPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
190
|
+
/** @nocollapse */ /** @nocollapse */ CssUnitPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CssUnitPipe, name: "toCssUnit" });
|
191
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CssUnitPipe, decorators: [{
|
170
192
|
type: Pipe,
|
171
193
|
args: [{
|
172
194
|
name: 'toCssUnit'
|
@@ -560,13 +582,13 @@ class McModalComponent extends McModalRef {
|
|
560
582
|
}
|
561
583
|
}
|
562
584
|
}
|
563
|
-
/** @nocollapse */ /** @nocollapse */ McModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
564
|
-
/** @nocollapse */ /** @nocollapse */ McModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: McModalComponent, selector: "mc-modal", inputs: { mcModalType: "mcModalType", mcComponent: "mcComponent", mcContent: "mcContent", mcComponentParams: "mcComponentParams", mcFooter: "mcFooter", mcVisible: "mcVisible", mcZIndex: "mcZIndex", mcWidth: "mcWidth", mcSize: "mcSize", mcWrapClassName: "mcWrapClassName", mcClassName: "mcClassName", mcStyle: "mcStyle", mcTitle: "mcTitle", mcCloseByESC: "mcCloseByESC", mcClosable: "mcClosable", mcMask: "mcMask", mcMaskClosable: "mcMaskClosable", mcMaskStyle: "mcMaskStyle", mcBodyStyle: "mcBodyStyle", mcOkText: "mcOkText", mcOkType: "mcOkType", mcOkLoading: "mcOkLoading", mcOnOk: "mcOnOk", mcCancelText: "mcCancelText", mcCancelLoading: "mcCancelLoading", mcOnCancel: "mcOnCancel", mcGetContainer: "mcGetContainer" }, outputs: { mcVisibleChange: "mcVisibleChange", mcAfterOpen: "mcAfterOpen", mcAfterClose: "mcAfterClose", mcOnOk: "mcOnOk", mcOnCancel: "mcOnCancel" }, host: { listeners: { "keydown": "onKeyDown($event)" } }, viewQueries: [{ propertyName: "modalContainer", first: true, predicate: ["modalContainer"], descendants: true, static: true }, { propertyName: "bodyContainer", first: true, predicate: ["bodyContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "modalBody", first: true, predicate: ["modalBody"], descendants: true }, { propertyName: "autoFocusedButtons", predicate: ["autoFocusedButton"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- Compatible: the <ng-content> can appear only once -->\n<ng-template #tplOriginContent>\n <ng-content></ng-content>\n</ng-template>\n\n<div>\n <div *ngIf=\"mcMask\"\n class=\"mc-modal-mask\"\n [ngClass]=\"maskAnimationClassMap\"\n [class.mc-modal-mask-hidden]=\"hidden\"\n [ngStyle]=\"mcMaskStyle\"\n [style.zIndex]=\"mcZIndex\"\n ></div>\n <div (mousedown)=\"onClickMask($event)\"\n class=\"mc-modal-wrap {{ mcWrapClassName }}\"\n [style.zIndex]=\"mcZIndex\"\n [style.display]=\"hidden ? 'none' : ''\"\n tabindex=\"-1\">\n\n <div #modalContainer\n class=\"mc-modal {{ mcClassName }} mc-modal_{{ mcSize }}\"\n [ngClass]=\"modalAnimationClassMap\"\n [ngStyle]=\"mcStyle\"\n [style.width]=\"mcWidth | toCssUnit\"\n [style.transform-origin]=\"transformOrigin\">\n\n <div class=\"mc-modal-content\" cdkTrapFocus>\n <button *ngIf=\"mcClosable\"\n mc-button\n (click)=\"onClickCloseBtn()\"\n class=\"mc-modal-close mc-button_transparent\">\n <i mc-icon=\"mc-close-L_16\" class=\"mc-icon mc-icon_light\" [color]=\"themePalette.Second\"></i>\n </button>\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isModalType('default')\"\n [ngTemplateOutlet]=\"tplContentDefault\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('confirm')\"\n [ngTemplateOutlet]=\"tplContentConfirm\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('custom')\"\n [ngTemplateOutlet]=\"tplContentCustom\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #tplContentCustom>\n <ng-container #bodyContainer></ng-container>\n</ng-template>\n\n\n<!-- [Predefined] Default Modal Content -->\n<ng-template #tplContentDefault>\n <div *ngIf=\"mcTitle\" class=\"mc-modal-header\" [class.mc-modal-body_top-overflow]=\"isTopOverflow\">\n <div class=\"mc-modal-title\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(mcTitle)\" [ngTemplateOutlet]=\"$any(mcTitle)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcTitle)\">\n <div [innerHTML]=\"mcTitle\"></div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"mc-modal-body\" #modalBody [ngStyle]=\"mcBodyStyle\" (scroll)=\"checkOverflow()\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(mcContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(mcContent)\" [ngTemplateOutlet]=\"$any(mcContent)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcContent)\">\n <div [innerHTML]=\"mcContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div *ngIf=\"mcFooter || mcOkText || mcCancelText\" class=\"mc-modal-footer\" [class.mc-modal-body_bottom-overflow]=\"isBottomOverflow\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(mcFooter)\" [ngTemplateOutlet]=\"$any(mcFooter)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcFooter)\">\n <div [innerHTML]=\"mcFooter\"></div>\n </ng-container>\n <ng-container *ngSwitchCase=\"isModalButtons(mcFooter)\">\n <ng-container *ngFor=\"let button of $any(mcFooter)\">\n <button\n mc-button\n #autoFocusedButton\n [attr.autofocus]=\"button.autoFocus\"\n [attr.mc-modal-main-action]=\"button.mcModalMainAction\"\n *ngIf=\"getButtonCallableProp(button, 'show')\"\n [disabled]=\"getButtonCallableProp(button, 'disabled')\"\n [class.mc-progress]=\"getButtonCallableProp(button, 'loading')\"\n (click)=\"onButtonClick(button)\"\n [color]=\"button.type\">\n {{ button.label }}\n </button>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button\n #autoFocusedButton\n [attr.autofocus]=\"true\"\n *ngIf=\"mcOkText\"\n mc-button\n [color]=\"themePalette.Primary\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n <button *ngIf=\"mcCancelText\" mc-button (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n<!-- /[Predefined] Default Modal Content -->\n\n<!-- [Predefined] Confirm Modal Content -->\n<ng-template #tplContentConfirm>\n <div class=\"mc-modal-body\" [ngStyle]=\"mcBodyStyle\">\n <div class=\"mc-confirm-body-wrapper\">\n <div class=\"mc-confirm-body\">\n <div class=\"mc-confirm-content\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(mcContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(mcContent)\"\n [ngTemplateOutlet]=\"$any(mcContent)\">\n </ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcContent)\">\n <div [innerHTML]=\"mcContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </div> <!-- /.mc-confirm-body-wrapper -->\n </div>\n <div class=\"mc-confirm-btns\" *ngIf=\"mcOkText || mcCancelText\">\n <button\n mc-button\n #autoFocusedButton\n [color]=\"mcOkType\"\n [attr.autofocus]=\"true\"\n *ngIf=\"mcOkText\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n\n <button mc-button [color]=\"themePalette.Second\" *ngIf=\"mcCancelText\" (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </div>\n</ng-template>\n<!-- /[Predefined] Confirm Modal Content -->\n", styles: [".mc-confirm .mc-modal-header,.mc-confirm .mc-modal-close{display:none}.mc-confirm .mc-modal-body{padding:24px;padding:var(--mc-modal-confirm-size-padding, 24px)}.mc-confirm-body-wrapper{zoom:1}.mc-confirm-body-wrapper:before,.mc-confirm-body-wrapper:after{content:\"\";display:table}.mc-confirm-body-wrapper:after{clear:both}.mc-confirm-body .mc-confirm-title{display:block;overflow:auto}.mc-confirm .mc-confirm-btns{border-radius:0 0 4px 4px;border-radius:var(--mc-modal-footer-size-border-radius, 0 0 4px 4px);text-align:right}.mc-confirm .mc-confirm-btns button+button{margin:16px}.mc-modal{box-sizing:border-box;position:relative;top:48px;top:var(--mc-modal-size-top, 48px);width:auto;margin:0 auto;list-style:none}.mc-modal.zoom-enter,.mc-modal.zoom-appear{animation-duration:.3s;transform:none;opacity:0}.mc-modal.mc-modal_small{width:400px;width:var(--mc-modal-size-small, 400px)}.mc-modal.mc-modal_normal{width:640px;width:var(--mc-modal-size-normal, 640px)}.mc-modal.mc-modal_large{width:960px;width:var(--mc-modal-size-large, 960px)}.mc-modal .mc-modal-close{position:absolute;z-index:10;top:0;right:0;width:56px;width:var(--mc-modal-size-close-width, 56px);height:56px;height:var(--mc-modal-size-close-width, 56px)}.mc-modal-wrap{position:fixed;z-index:1000;top:0;right:0;bottom:0;left:0;overflow:auto;-webkit-overflow-scrolling:touch;outline:0}.mc-modal-title{margin:0}.mc-modal-content{position:relative;border-radius:4px;border-radius:var(--mc-modal-size-border-radius, 4px);background-clip:padding-box;background-color:#fff}.mc-modal-header{display:block;border-radius:4px 4px 0 0;border-radius:var(--mc-modal-header-size-border-radius, 4px 4px 0 0);padding:14px 16px;padding:var(--mc-modal-header-size-padding, 14px 16px)}.mc-modal-body{display:block;overflow-y:auto;max-height:calc(100vh - 260px);max-height:var(--mc-modal-body-size-max-height, calc(100vh - 260px));padding:16px 24px 24px;padding:var(--mc-modal-body-size-padding, 16px 24px 24px);word-wrap:break-word}.mc-modal-footer{display:block;border-radius:0 0 4px 4px;border-radius:var(--mc-modal-footer-size-border-radius, 0 0 4px 4px);padding:16px;padding:var(--mc-modal-footer-size-padding, 16px 16px);text-align:right}.mc-modal-footer button+button{margin-left:16px;margin-bottom:0}.mc-modal-mask{position:fixed;z-index:1000;top:0;right:0;left:0;bottom:0;height:100%}.mc-modal-mask.mc-modal-mask-hidden{display:none}.mc-modal-open{overflow:hidden}\n"], components: [{ type: i3.McButton, selector: "[mc-button]", inputs: ["color", "tabIndex", "disabled"] }, { type: i4.McIcon, selector: "[mc-icon]", inputs: ["color"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i6.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { type: i3.McButtonCssStyler, selector: "[mc-button]" }, { type: i4.McIconCSSStyler, selector: "[mc-icon]" }, { type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: McModalMainAction, selector: "[mc-modal-main-action]" }], pipes: { "toCssUnit": CssUnitPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
565
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
585
|
+
/** @nocollapse */ /** @nocollapse */ McModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McModalComponent, deps: [{ token: i1.Overlay }, { token: i0.Renderer2 }, { token: i0.ComponentFactoryResolver }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: McModalControlService }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
|
586
|
+
/** @nocollapse */ /** @nocollapse */ McModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: McModalComponent, selector: "mc-modal", inputs: { mcModalType: "mcModalType", mcComponent: "mcComponent", mcContent: "mcContent", mcComponentParams: "mcComponentParams", mcFooter: "mcFooter", mcVisible: "mcVisible", mcZIndex: "mcZIndex", mcWidth: "mcWidth", mcSize: "mcSize", mcWrapClassName: "mcWrapClassName", mcClassName: "mcClassName", mcStyle: "mcStyle", mcTitle: "mcTitle", mcCloseByESC: "mcCloseByESC", mcClosable: "mcClosable", mcMask: "mcMask", mcMaskClosable: "mcMaskClosable", mcMaskStyle: "mcMaskStyle", mcBodyStyle: "mcBodyStyle", mcOkText: "mcOkText", mcOkType: "mcOkType", mcOkLoading: "mcOkLoading", mcOnOk: "mcOnOk", mcCancelText: "mcCancelText", mcCancelLoading: "mcCancelLoading", mcOnCancel: "mcOnCancel", mcGetContainer: "mcGetContainer" }, outputs: { mcVisibleChange: "mcVisibleChange", mcAfterOpen: "mcAfterOpen", mcAfterClose: "mcAfterClose", mcOnOk: "mcOnOk", mcOnCancel: "mcOnCancel" }, host: { listeners: { "keydown": "onKeyDown($event)" } }, viewQueries: [{ propertyName: "modalContainer", first: true, predicate: ["modalContainer"], descendants: true, static: true }, { propertyName: "bodyContainer", first: true, predicate: ["bodyContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "modalBody", first: true, predicate: ["modalBody"], descendants: true }, { propertyName: "autoFocusedButtons", predicate: ["autoFocusedButton"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- Compatible: the <ng-content> can appear only once -->\n<ng-template #tplOriginContent>\n <ng-content></ng-content>\n</ng-template>\n\n<div>\n <div *ngIf=\"mcMask\"\n class=\"mc-modal-mask\"\n [ngClass]=\"maskAnimationClassMap\"\n [class.mc-modal-mask-hidden]=\"hidden\"\n [ngStyle]=\"mcMaskStyle\"\n [style.zIndex]=\"mcZIndex\"\n ></div>\n <div (mousedown)=\"onClickMask($event)\"\n class=\"mc-modal-wrap {{ mcWrapClassName }}\"\n [style.zIndex]=\"mcZIndex\"\n [style.display]=\"hidden ? 'none' : ''\"\n tabindex=\"-1\">\n\n <div #modalContainer\n class=\"mc-modal {{ mcClassName }} mc-modal_{{ mcSize }}\"\n [ngClass]=\"modalAnimationClassMap\"\n [ngStyle]=\"mcStyle\"\n [style.width]=\"mcWidth | toCssUnit\"\n [style.transform-origin]=\"transformOrigin\">\n\n <div class=\"mc-modal-content\" cdkTrapFocus>\n <button *ngIf=\"mcClosable\"\n mc-button\n (click)=\"onClickCloseBtn()\"\n class=\"mc-modal-close mc-button_transparent\">\n <i mc-icon=\"mc-close-L_16\" class=\"mc-icon mc-icon_light\" [color]=\"themePalette.Second\"></i>\n </button>\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isModalType('default')\"\n [ngTemplateOutlet]=\"tplContentDefault\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('confirm')\"\n [ngTemplateOutlet]=\"tplContentConfirm\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('custom')\"\n [ngTemplateOutlet]=\"tplContentCustom\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #tplContentCustom>\n <ng-container #bodyContainer></ng-container>\n</ng-template>\n\n\n<!-- [Predefined] Default Modal Content -->\n<ng-template #tplContentDefault>\n <div *ngIf=\"mcTitle\" class=\"mc-modal-header\" [class.mc-modal-body_top-overflow]=\"isTopOverflow\">\n <div class=\"mc-modal-title\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(mcTitle)\" [ngTemplateOutlet]=\"$any(mcTitle)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcTitle)\">\n <div [innerHTML]=\"mcTitle\"></div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"mc-modal-body\" #modalBody [ngStyle]=\"mcBodyStyle\" (scroll)=\"checkOverflow()\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(mcContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(mcContent)\" [ngTemplateOutlet]=\"$any(mcContent)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcContent)\">\n <div [innerHTML]=\"mcContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div *ngIf=\"mcFooter || mcOkText || mcCancelText\" class=\"mc-modal-footer\" [class.mc-modal-body_bottom-overflow]=\"isBottomOverflow\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(mcFooter)\" [ngTemplateOutlet]=\"$any(mcFooter)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcFooter)\">\n <div [innerHTML]=\"mcFooter\"></div>\n </ng-container>\n <ng-container *ngSwitchCase=\"isModalButtons(mcFooter)\">\n <ng-container *ngFor=\"let button of $any(mcFooter)\">\n <button\n mc-button\n #autoFocusedButton\n [attr.autofocus]=\"button.autoFocus\"\n [attr.mc-modal-main-action]=\"button.mcModalMainAction\"\n *ngIf=\"getButtonCallableProp(button, 'show')\"\n [disabled]=\"getButtonCallableProp(button, 'disabled')\"\n [class.mc-progress]=\"getButtonCallableProp(button, 'loading')\"\n (click)=\"onButtonClick(button)\"\n [color]=\"button.type\">\n {{ button.label }}\n </button>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button\n #autoFocusedButton\n [attr.autofocus]=\"true\"\n *ngIf=\"mcOkText\"\n mc-button\n [color]=\"themePalette.Primary\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n <button *ngIf=\"mcCancelText\" mc-button (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n<!-- /[Predefined] Default Modal Content -->\n\n<!-- [Predefined] Confirm Modal Content -->\n<ng-template #tplContentConfirm>\n <div class=\"mc-modal-body\" [ngStyle]=\"mcBodyStyle\">\n <div class=\"mc-confirm-body-wrapper\">\n <div class=\"mc-confirm-body\">\n <div class=\"mc-confirm-content\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(mcContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(mcContent)\"\n [ngTemplateOutlet]=\"$any(mcContent)\">\n </ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcContent)\">\n <div [innerHTML]=\"mcContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </div> <!-- /.mc-confirm-body-wrapper -->\n </div>\n <div class=\"mc-confirm-btns\" *ngIf=\"mcOkText || mcCancelText\">\n <button\n mc-button\n #autoFocusedButton\n [color]=\"mcOkType\"\n [attr.autofocus]=\"true\"\n *ngIf=\"mcOkText\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n\n <button mc-button [color]=\"themePalette.Second\" *ngIf=\"mcCancelText\" (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </div>\n</ng-template>\n<!-- /[Predefined] Confirm Modal Content -->\n", styles: [".mc-confirm .mc-modal-header,.mc-confirm .mc-modal-close{display:none}.mc-confirm .mc-modal-body{padding:var(--mc-modal-confirm-size-padding, 24px)}.mc-confirm-body-wrapper{zoom:1}.mc-confirm-body-wrapper:before,.mc-confirm-body-wrapper:after{content:\"\";display:table}.mc-confirm-body-wrapper:after{clear:both}.mc-confirm-body .mc-confirm-title{display:block;overflow:auto}.mc-confirm .mc-confirm-btns{border-radius:var(--mc-modal-footer-size-border-radius, 0 0 4px 4px);text-align:right}.mc-confirm .mc-confirm-btns button+button{margin:16px}.mc-modal{box-sizing:border-box;position:relative;top:var(--mc-modal-size-top, 48px);width:auto;margin:0 auto;list-style:none}.mc-modal.zoom-enter,.mc-modal.zoom-appear{animation-duration:.3s;transform:none;opacity:0}.mc-modal.mc-modal_small{width:var(--mc-modal-size-small, 400px)}.mc-modal.mc-modal_normal{width:var(--mc-modal-size-normal, 640px)}.mc-modal.mc-modal_large{width:var(--mc-modal-size-large, 960px)}.mc-modal .mc-modal-close{position:absolute;z-index:10;top:0;right:0;width:var(--mc-modal-size-close-width, 56px);height:var(--mc-modal-size-close-width, 56px)}.mc-modal-wrap{position:fixed;z-index:1000;top:0;right:0;bottom:0;left:0;overflow:auto;-webkit-overflow-scrolling:touch;outline:0}.mc-modal-title{margin:0}.mc-modal-content{position:relative;border-radius:var(--mc-modal-size-border-radius, 4px);background-clip:padding-box;background-color:#fff}.mc-modal-header{display:block;border-radius:var(--mc-modal-header-size-border-radius, 4px 4px 0 0);padding:var(--mc-modal-header-size-padding, 14px 16px)}.mc-modal-body{display:block;overflow-y:auto;max-height:var(--mc-modal-body-size-max-height, calc(100vh - 260px));padding:var(--mc-modal-body-size-padding, 16px 24px 24px);word-wrap:break-word}.mc-modal-footer{display:block;border-radius:var(--mc-modal-footer-size-border-radius, 0 0 4px 4px);padding:var(--mc-modal-footer-size-padding, 16px 16px);text-align:right}.mc-modal-footer button+button{margin-left:16px;margin-bottom:0}.mc-modal-mask{position:fixed;z-index:1000;top:0;right:0;left:0;bottom:0;height:100%}.mc-modal-mask.mc-modal-mask-hidden{display:none}.mc-modal-open{overflow:hidden}\n"], components: [{ type: i3.McButton, selector: "[mc-button]", inputs: ["color", "tabIndex", "disabled"] }, { type: i4.McIcon, selector: "[mc-icon]", inputs: ["color"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i6.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { type: i3.McButtonCssStyler, selector: "[mc-button]" }, { type: i4.McIconCSSStyler, selector: "[mc-icon]" }, { type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: McModalMainAction, selector: "[mc-modal-main-action]" }], pipes: { "toCssUnit": CssUnitPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
587
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McModalComponent, decorators: [{
|
566
588
|
type: Component,
|
567
589
|
args: [{ selector: 'mc-modal', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
568
590
|
'(keydown)': 'onKeyDown($event)'
|
569
|
-
}, template: "<!-- Compatible: the <ng-content> can appear only once -->\n<ng-template #tplOriginContent>\n <ng-content></ng-content>\n</ng-template>\n\n<div>\n <div *ngIf=\"mcMask\"\n class=\"mc-modal-mask\"\n [ngClass]=\"maskAnimationClassMap\"\n [class.mc-modal-mask-hidden]=\"hidden\"\n [ngStyle]=\"mcMaskStyle\"\n [style.zIndex]=\"mcZIndex\"\n ></div>\n <div (mousedown)=\"onClickMask($event)\"\n class=\"mc-modal-wrap {{ mcWrapClassName }}\"\n [style.zIndex]=\"mcZIndex\"\n [style.display]=\"hidden ? 'none' : ''\"\n tabindex=\"-1\">\n\n <div #modalContainer\n class=\"mc-modal {{ mcClassName }} mc-modal_{{ mcSize }}\"\n [ngClass]=\"modalAnimationClassMap\"\n [ngStyle]=\"mcStyle\"\n [style.width]=\"mcWidth | toCssUnit\"\n [style.transform-origin]=\"transformOrigin\">\n\n <div class=\"mc-modal-content\" cdkTrapFocus>\n <button *ngIf=\"mcClosable\"\n mc-button\n (click)=\"onClickCloseBtn()\"\n class=\"mc-modal-close mc-button_transparent\">\n <i mc-icon=\"mc-close-L_16\" class=\"mc-icon mc-icon_light\" [color]=\"themePalette.Second\"></i>\n </button>\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isModalType('default')\"\n [ngTemplateOutlet]=\"tplContentDefault\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('confirm')\"\n [ngTemplateOutlet]=\"tplContentConfirm\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('custom')\"\n [ngTemplateOutlet]=\"tplContentCustom\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #tplContentCustom>\n <ng-container #bodyContainer></ng-container>\n</ng-template>\n\n\n<!-- [Predefined] Default Modal Content -->\n<ng-template #tplContentDefault>\n <div *ngIf=\"mcTitle\" class=\"mc-modal-header\" [class.mc-modal-body_top-overflow]=\"isTopOverflow\">\n <div class=\"mc-modal-title\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(mcTitle)\" [ngTemplateOutlet]=\"$any(mcTitle)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcTitle)\">\n <div [innerHTML]=\"mcTitle\"></div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"mc-modal-body\" #modalBody [ngStyle]=\"mcBodyStyle\" (scroll)=\"checkOverflow()\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(mcContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(mcContent)\" [ngTemplateOutlet]=\"$any(mcContent)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcContent)\">\n <div [innerHTML]=\"mcContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div *ngIf=\"mcFooter || mcOkText || mcCancelText\" class=\"mc-modal-footer\" [class.mc-modal-body_bottom-overflow]=\"isBottomOverflow\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(mcFooter)\" [ngTemplateOutlet]=\"$any(mcFooter)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcFooter)\">\n <div [innerHTML]=\"mcFooter\"></div>\n </ng-container>\n <ng-container *ngSwitchCase=\"isModalButtons(mcFooter)\">\n <ng-container *ngFor=\"let button of $any(mcFooter)\">\n <button\n mc-button\n #autoFocusedButton\n [attr.autofocus]=\"button.autoFocus\"\n [attr.mc-modal-main-action]=\"button.mcModalMainAction\"\n *ngIf=\"getButtonCallableProp(button, 'show')\"\n [disabled]=\"getButtonCallableProp(button, 'disabled')\"\n [class.mc-progress]=\"getButtonCallableProp(button, 'loading')\"\n (click)=\"onButtonClick(button)\"\n [color]=\"button.type\">\n {{ button.label }}\n </button>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button\n #autoFocusedButton\n [attr.autofocus]=\"true\"\n *ngIf=\"mcOkText\"\n mc-button\n [color]=\"themePalette.Primary\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n <button *ngIf=\"mcCancelText\" mc-button (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n<!-- /[Predefined] Default Modal Content -->\n\n<!-- [Predefined] Confirm Modal Content -->\n<ng-template #tplContentConfirm>\n <div class=\"mc-modal-body\" [ngStyle]=\"mcBodyStyle\">\n <div class=\"mc-confirm-body-wrapper\">\n <div class=\"mc-confirm-body\">\n <div class=\"mc-confirm-content\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(mcContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(mcContent)\"\n [ngTemplateOutlet]=\"$any(mcContent)\">\n </ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcContent)\">\n <div [innerHTML]=\"mcContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </div> <!-- /.mc-confirm-body-wrapper -->\n </div>\n <div class=\"mc-confirm-btns\" *ngIf=\"mcOkText || mcCancelText\">\n <button\n mc-button\n #autoFocusedButton\n [color]=\"mcOkType\"\n [attr.autofocus]=\"true\"\n *ngIf=\"mcOkText\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n\n <button mc-button [color]=\"themePalette.Second\" *ngIf=\"mcCancelText\" (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </div>\n</ng-template>\n<!-- /[Predefined] Confirm Modal Content -->\n", styles: [".mc-confirm .mc-modal-header,.mc-confirm .mc-modal-close{display:none}.mc-confirm .mc-modal-body{padding:
|
591
|
+
}, template: "<!-- Compatible: the <ng-content> can appear only once -->\n<ng-template #tplOriginContent>\n <ng-content></ng-content>\n</ng-template>\n\n<div>\n <div *ngIf=\"mcMask\"\n class=\"mc-modal-mask\"\n [ngClass]=\"maskAnimationClassMap\"\n [class.mc-modal-mask-hidden]=\"hidden\"\n [ngStyle]=\"mcMaskStyle\"\n [style.zIndex]=\"mcZIndex\"\n ></div>\n <div (mousedown)=\"onClickMask($event)\"\n class=\"mc-modal-wrap {{ mcWrapClassName }}\"\n [style.zIndex]=\"mcZIndex\"\n [style.display]=\"hidden ? 'none' : ''\"\n tabindex=\"-1\">\n\n <div #modalContainer\n class=\"mc-modal {{ mcClassName }} mc-modal_{{ mcSize }}\"\n [ngClass]=\"modalAnimationClassMap\"\n [ngStyle]=\"mcStyle\"\n [style.width]=\"mcWidth | toCssUnit\"\n [style.transform-origin]=\"transformOrigin\">\n\n <div class=\"mc-modal-content\" cdkTrapFocus>\n <button *ngIf=\"mcClosable\"\n mc-button\n (click)=\"onClickCloseBtn()\"\n class=\"mc-modal-close mc-button_transparent\">\n <i mc-icon=\"mc-close-L_16\" class=\"mc-icon mc-icon_light\" [color]=\"themePalette.Second\"></i>\n </button>\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isModalType('default')\"\n [ngTemplateOutlet]=\"tplContentDefault\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('confirm')\"\n [ngTemplateOutlet]=\"tplContentConfirm\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('custom')\"\n [ngTemplateOutlet]=\"tplContentCustom\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #tplContentCustom>\n <ng-container #bodyContainer></ng-container>\n</ng-template>\n\n\n<!-- [Predefined] Default Modal Content -->\n<ng-template #tplContentDefault>\n <div *ngIf=\"mcTitle\" class=\"mc-modal-header\" [class.mc-modal-body_top-overflow]=\"isTopOverflow\">\n <div class=\"mc-modal-title\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(mcTitle)\" [ngTemplateOutlet]=\"$any(mcTitle)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcTitle)\">\n <div [innerHTML]=\"mcTitle\"></div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"mc-modal-body\" #modalBody [ngStyle]=\"mcBodyStyle\" (scroll)=\"checkOverflow()\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(mcContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(mcContent)\" [ngTemplateOutlet]=\"$any(mcContent)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcContent)\">\n <div [innerHTML]=\"mcContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div *ngIf=\"mcFooter || mcOkText || mcCancelText\" class=\"mc-modal-footer\" [class.mc-modal-body_bottom-overflow]=\"isBottomOverflow\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(mcFooter)\" [ngTemplateOutlet]=\"$any(mcFooter)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcFooter)\">\n <div [innerHTML]=\"mcFooter\"></div>\n </ng-container>\n <ng-container *ngSwitchCase=\"isModalButtons(mcFooter)\">\n <ng-container *ngFor=\"let button of $any(mcFooter)\">\n <button\n mc-button\n #autoFocusedButton\n [attr.autofocus]=\"button.autoFocus\"\n [attr.mc-modal-main-action]=\"button.mcModalMainAction\"\n *ngIf=\"getButtonCallableProp(button, 'show')\"\n [disabled]=\"getButtonCallableProp(button, 'disabled')\"\n [class.mc-progress]=\"getButtonCallableProp(button, 'loading')\"\n (click)=\"onButtonClick(button)\"\n [color]=\"button.type\">\n {{ button.label }}\n </button>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button\n #autoFocusedButton\n [attr.autofocus]=\"true\"\n *ngIf=\"mcOkText\"\n mc-button\n [color]=\"themePalette.Primary\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n <button *ngIf=\"mcCancelText\" mc-button (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n<!-- /[Predefined] Default Modal Content -->\n\n<!-- [Predefined] Confirm Modal Content -->\n<ng-template #tplContentConfirm>\n <div class=\"mc-modal-body\" [ngStyle]=\"mcBodyStyle\">\n <div class=\"mc-confirm-body-wrapper\">\n <div class=\"mc-confirm-body\">\n <div class=\"mc-confirm-content\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(mcContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(mcContent)\"\n [ngTemplateOutlet]=\"$any(mcContent)\">\n </ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcContent)\">\n <div [innerHTML]=\"mcContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </div> <!-- /.mc-confirm-body-wrapper -->\n </div>\n <div class=\"mc-confirm-btns\" *ngIf=\"mcOkText || mcCancelText\">\n <button\n mc-button\n #autoFocusedButton\n [color]=\"mcOkType\"\n [attr.autofocus]=\"true\"\n *ngIf=\"mcOkText\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n\n <button mc-button [color]=\"themePalette.Second\" *ngIf=\"mcCancelText\" (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </div>\n</ng-template>\n<!-- /[Predefined] Confirm Modal Content -->\n", styles: [".mc-confirm .mc-modal-header,.mc-confirm .mc-modal-close{display:none}.mc-confirm .mc-modal-body{padding:var(--mc-modal-confirm-size-padding, 24px)}.mc-confirm-body-wrapper{zoom:1}.mc-confirm-body-wrapper:before,.mc-confirm-body-wrapper:after{content:\"\";display:table}.mc-confirm-body-wrapper:after{clear:both}.mc-confirm-body .mc-confirm-title{display:block;overflow:auto}.mc-confirm .mc-confirm-btns{border-radius:var(--mc-modal-footer-size-border-radius, 0 0 4px 4px);text-align:right}.mc-confirm .mc-confirm-btns button+button{margin:16px}.mc-modal{box-sizing:border-box;position:relative;top:var(--mc-modal-size-top, 48px);width:auto;margin:0 auto;list-style:none}.mc-modal.zoom-enter,.mc-modal.zoom-appear{animation-duration:.3s;transform:none;opacity:0}.mc-modal.mc-modal_small{width:var(--mc-modal-size-small, 400px)}.mc-modal.mc-modal_normal{width:var(--mc-modal-size-normal, 640px)}.mc-modal.mc-modal_large{width:var(--mc-modal-size-large, 960px)}.mc-modal .mc-modal-close{position:absolute;z-index:10;top:0;right:0;width:var(--mc-modal-size-close-width, 56px);height:var(--mc-modal-size-close-width, 56px)}.mc-modal-wrap{position:fixed;z-index:1000;top:0;right:0;bottom:0;left:0;overflow:auto;-webkit-overflow-scrolling:touch;outline:0}.mc-modal-title{margin:0}.mc-modal-content{position:relative;border-radius:var(--mc-modal-size-border-radius, 4px);background-clip:padding-box;background-color:#fff}.mc-modal-header{display:block;border-radius:var(--mc-modal-header-size-border-radius, 4px 4px 0 0);padding:var(--mc-modal-header-size-padding, 14px 16px)}.mc-modal-body{display:block;overflow-y:auto;max-height:var(--mc-modal-body-size-max-height, calc(100vh - 260px));padding:var(--mc-modal-body-size-padding, 16px 24px 24px);word-wrap:break-word}.mc-modal-footer{display:block;border-radius:var(--mc-modal-footer-size-border-radius, 0 0 4px 4px);padding:var(--mc-modal-footer-size-padding, 16px 16px);text-align:right}.mc-modal-footer button+button{margin-left:16px;margin-bottom:0}.mc-modal-mask{position:fixed;z-index:1000;top:0;right:0;left:0;bottom:0;height:100%}.mc-modal-mask.mc-modal-mask-hidden{display:none}.mc-modal-open{overflow:hidden}\n"] }]
|
570
592
|
}], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Renderer2 }, { type: i0.ComponentFactoryResolver }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: McModalControlService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
571
593
|
type: Inject,
|
572
594
|
args: [DOCUMENT]
|
@@ -764,16 +786,16 @@ class McModalService {
|
|
764
786
|
return this.confirm(options, confirmType);
|
765
787
|
}
|
766
788
|
}
|
767
|
-
/** @nocollapse */ /** @nocollapse */ McModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
768
|
-
/** @nocollapse */ /** @nocollapse */ McModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.
|
769
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
789
|
+
/** @nocollapse */ /** @nocollapse */ McModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McModalService, deps: [{ token: i1.Overlay }, { token: McModalControlService }], target: i0.ɵɵFactoryTarget.Injectable });
|
790
|
+
/** @nocollapse */ /** @nocollapse */ McModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McModalService });
|
791
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McModalService, decorators: [{
|
770
792
|
type: Injectable
|
771
793
|
}], ctorParameters: function () { return [{ type: i1.Overlay }, { type: McModalControlService }]; } });
|
772
794
|
|
773
795
|
class McModalModule {
|
774
796
|
}
|
775
|
-
/** @nocollapse */ /** @nocollapse */ McModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
776
|
-
/** @nocollapse */ /** @nocollapse */ McModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
|
797
|
+
/** @nocollapse */ /** @nocollapse */ McModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
798
|
+
/** @nocollapse */ /** @nocollapse */ McModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McModalModule, declarations: [McModalComponent,
|
777
799
|
McModalTitle,
|
778
800
|
McModalBody,
|
779
801
|
McModalFooter,
|
@@ -787,7 +809,7 @@ class McModalModule {
|
|
787
809
|
McModalBody,
|
788
810
|
McModalFooter,
|
789
811
|
McModalMainAction] });
|
790
|
-
/** @nocollapse */ /** @nocollapse */ McModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.
|
812
|
+
/** @nocollapse */ /** @nocollapse */ McModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McModalModule, providers: [
|
791
813
|
McModalControlService,
|
792
814
|
McModalService
|
793
815
|
], imports: [[
|
@@ -797,7 +819,7 @@ class McModalModule {
|
|
797
819
|
McButtonModule,
|
798
820
|
McIconModule
|
799
821
|
]] });
|
800
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
822
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McModalModule, decorators: [{
|
801
823
|
type: NgModule,
|
802
824
|
args: [{
|
803
825
|
imports: [
|