@evotor-dev/ui-kit 6.2.0 → 6.4.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/.releaserc.json +6 -6
- package/README.md +121 -117
- package/assets/color-icons/404.svg +11 -11
- package/assets/color-icons/alert-circle.svg +6 -6
- package/assets/color-icons/alert-triangle.svg +6 -6
- package/assets/color-icons/application.svg +6 -6
- package/assets/color-icons/backup.svg +17 -17
- package/assets/color-icons/bank.svg +12 -12
- package/assets/color-icons/barcode.svg +12 -12
- package/assets/color-icons/big-data.svg +17 -17
- package/assets/color-icons/biil.svg +10 -10
- package/assets/color-icons/bill.svg +10 -10
- package/assets/color-icons/blank.svg +10 -10
- package/assets/color-icons/card-attention.svg +20 -20
- package/assets/color-icons/card.svg +9 -9
- package/assets/color-icons/cards.svg +18 -18
- package/assets/color-icons/cash.svg +19 -19
- package/assets/color-icons/check.svg +6 -6
- package/assets/color-icons/clock.svg +6 -6
- package/assets/color-icons/cloud.svg +6 -6
- package/assets/color-icons/code.svg +14 -14
- package/assets/color-icons/comment-approved.svg +20 -20
- package/assets/color-icons/comment-declined.svg +19 -19
- package/assets/color-icons/comment.svg +20 -20
- package/assets/color-icons/data-matrix-znak.svg +23 -23
- package/assets/color-icons/data-matrix.svg +29 -29
- package/assets/color-icons/document-fail.svg +14 -14
- package/assets/color-icons/document-signed.svg +15 -15
- package/assets/color-icons/document.svg +11 -11
- package/assets/color-icons/evotor-payment.svg +17 -17
- package/assets/color-icons/gift.svg +17 -17
- package/assets/color-icons/highlight.svg +21 -21
- package/assets/color-icons/hr.svg +22 -22
- package/assets/color-icons/info-circle.svg +6 -6
- package/assets/color-icons/link.svg +11 -11
- package/assets/color-icons/mail-new.svg +10 -10
- package/assets/color-icons/market.svg +13 -13
- package/assets/color-icons/money.svg +17 -17
- package/assets/color-icons/news.svg +10 -10
- package/assets/color-icons/not-found.svg +15 -15
- package/assets/color-icons/number-1.svg +6 -6
- package/assets/color-icons/number-2.svg +6 -6
- package/assets/color-icons/number-3.svg +6 -6
- package/assets/color-icons/number.svg +6 -6
- package/assets/color-icons/numbers.svg +13 -13
- package/assets/color-icons/ok.svg +6 -6
- package/assets/color-icons/person.svg +9 -9
- package/assets/color-icons/phone.svg +13 -13
- package/assets/color-icons/piechart.svg +15 -15
- package/assets/color-icons/power.svg +10 -10
- package/assets/color-icons/production.svg +24 -24
- package/assets/color-icons/purse.svg +12 -12
- package/assets/color-icons/qr.svg +6 -6
- package/assets/color-icons/rating.svg +19 -19
- package/assets/color-icons/recommended.svg +12 -12
- package/assets/color-icons/sbp.svg +6 -6
- package/assets/color-icons/settings.svg +6 -6
- package/assets/color-icons/shelf.svg +11 -11
- package/assets/color-icons/sim-activated.svg +20 -20
- package/assets/color-icons/sim-cancel.svg +19 -19
- package/assets/color-icons/sim-normal.svg +16 -16
- package/assets/color-icons/sim-waiting.svg +19 -19
- package/assets/color-icons/software-check.svg +16 -16
- package/assets/color-icons/software-fail.svg +15 -15
- package/assets/color-icons/software-support.svg +11 -11
- package/assets/color-icons/software.svg +11 -11
- package/assets/color-icons/stop.svg +13 -13
- package/assets/color-icons/tap-on-phone.svg +16 -16
- package/assets/color-icons/telegram.svg +10 -10
- package/assets/color-icons/terminal-fail.svg +14 -14
- package/assets/color-icons/terminal-free.svg +15 -15
- package/assets/color-icons/terminal-off.svg +14 -14
- package/assets/color-icons/terminal-success.svg +14 -14
- package/assets/color-icons/terminal.svg +13 -13
- package/assets/color-icons/traffic-light-green.svg +9 -9
- package/assets/color-icons/traffic-light-red.svg +9 -9
- package/assets/color-icons/traffic-light-yellow.svg +9 -9
- package/assets/color-icons/usb.svg +23 -23
- package/assets/color-icons/version-check.svg +15 -15
- package/assets/color-icons/version-fail.svg +14 -14
- package/assets/color-icons/version.svg +10 -10
- package/assets/color-icons/wait.svg +6 -6
- package/assets/color-icons/waiting.svg +15 -15
- package/assets/color-icons/warning.svg +6 -6
- package/assets/color-icons/wi-fi.svg +5 -5
- package/assets/color-icons/wifi.svg +5 -5
- package/bundles/evotor-dev-ui-kit-icons-category.umd.js +74 -38
- package/bundles/evotor-dev-ui-kit-icons-category.umd.js.map +1 -1
- package/bundles/evotor-dev-ui-kit-icons-emotions.umd.js +18 -18
- package/bundles/evotor-dev-ui-kit-icons-header.umd.js +28 -28
- package/bundles/evotor-dev-ui-kit-icons-info.umd.js +40 -40
- package/bundles/evotor-dev-ui-kit-icons-navigation.umd.js +56 -56
- package/bundles/evotor-dev-ui-kit-icons-navigation.umd.js.map +1 -1
- package/bundles/evotor-dev-ui-kit-icons-side-menu.umd.js +64 -64
- package/bundles/evotor-dev-ui-kit-icons-side-menu.umd.js.map +1 -1
- package/bundles/evotor-dev-ui-kit-icons-system.umd.js +384 -336
- package/bundles/evotor-dev-ui-kit-icons-system.umd.js.map +1 -1
- package/bundles/evotor-dev-ui-kit-icons.umd.js +624 -568
- package/bundles/evotor-dev-ui-kit-icons.umd.js.map +1 -1
- package/bundles/evotor-dev-ui-kit.umd.js +8323 -8271
- package/bundles/evotor-dev-ui-kit.umd.js.map +1 -1
- package/esm2015/evotor-dev-ui-kit.js +4 -4
- package/esm2015/icons/category/evotor-dev-ui-kit-icons-category.js +4 -4
- package/esm2015/icons/category/index.js +62 -38
- package/esm2015/icons/emotions/evotor-dev-ui-kit-icons-emotions.js +4 -4
- package/esm2015/icons/emotions/index.js +17 -17
- package/esm2015/icons/evotor-dev-ui-kit-icons.js +4 -4
- package/esm2015/icons/header/evotor-dev-ui-kit-icons-header.js +4 -4
- package/esm2015/icons/header/index.js +27 -27
- package/esm2015/icons/index.js +8 -8
- package/esm2015/icons/info/evotor-dev-ui-kit-icons-info.js +4 -4
- package/esm2015/icons/info/index.js +39 -39
- package/esm2015/icons/navigation/evotor-dev-ui-kit-icons-navigation.js +4 -4
- package/esm2015/icons/navigation/index.js +56 -56
- package/esm2015/icons/side-menu/evotor-dev-ui-kit-icons-side-menu.js +4 -4
- package/esm2015/icons/side-menu/index.js +64 -64
- package/esm2015/icons/system/evotor-dev-ui-kit-icons-system.js +4 -4
- package/esm2015/icons/system/index.js +368 -336
- package/esm2015/lib/common/Serializable.js +6 -6
- package/esm2015/lib/common/animations/expand.animation.js +28 -28
- package/esm2015/lib/common/animations/index.js +4 -4
- package/esm2015/lib/common/animations/sidebar.animation.js +10 -10
- package/esm2015/lib/common/animations/skip-initial-render.animation.js +3 -3
- package/esm2015/lib/common/collection/evo-collection-fabric.js +10 -10
- package/esm2015/lib/common/collection/evo-collection.js +7 -7
- package/esm2015/lib/common/collection/index.js +3 -3
- package/esm2015/lib/common/constants/css-breakpoints.js +9 -9
- package/esm2015/lib/common/constants/view-breakpoint-streams.js +24 -24
- package/esm2015/lib/common/evo-base-control.js +47 -47
- package/esm2015/lib/common/evo-control-state-manager/evo-control-state-manager.js +13 -13
- package/esm2015/lib/common/evo-control-state-manager/evo-control-state.interface.js +2 -2
- package/esm2015/lib/common/evo-control-state-manager/evo-control-states.enum.js +6 -6
- package/esm2015/lib/common/form-helper/form-helper.js +31 -31
- package/esm2015/lib/common/types/evo-color.js +2 -2
- package/esm2015/lib/common/types/evo-size.js +2 -2
- package/esm2015/lib/common/types/index.js +3 -3
- package/esm2015/lib/components/evo-accordion/evo-accordion-content/evo-accordion-content.component.js +36 -36
- package/esm2015/lib/components/evo-accordion/evo-accordion-panel/evo-accordion-panel.component.js +24 -24
- package/esm2015/lib/components/evo-accordion/evo-accordion-title/evo-accordion-title.component.js +62 -62
- package/esm2015/lib/components/evo-accordion/evo-accordion.component.js +23 -23
- package/esm2015/lib/components/evo-accordion/evo-accordion.module.js +66 -66
- package/esm2015/lib/components/evo-accordion/index.js +2 -2
- package/esm2015/lib/components/evo-accordion/public-api.js +6 -6
- package/esm2015/lib/components/evo-alert/evo-alert.component.js +83 -83
- package/esm2015/lib/components/evo-alert/evo-alert.module.js +29 -29
- package/esm2015/lib/components/evo-alert/index.js +2 -2
- package/esm2015/lib/components/evo-alert/public-api.js +3 -3
- package/esm2015/lib/components/evo-autocomplete/components/evo-autocomplete.component.js +365 -364
- package/esm2015/lib/components/evo-autocomplete/components/templates/evo-autocomplete-default-option.component.js +49 -43
- package/esm2015/lib/components/evo-autocomplete/evo-autocomplete.module.js +58 -58
- package/esm2015/lib/components/evo-autocomplete/helpers/switch-query-to-list.js +6 -6
- package/esm2015/lib/components/evo-autocomplete/index.js +2 -2
- package/esm2015/lib/components/evo-autocomplete/models/DaDataParty.js +28 -28
- package/esm2015/lib/components/evo-autocomplete/models/dadata.model.js +48 -48
- package/esm2015/lib/components/evo-autocomplete/public-api.js +7 -7
- package/esm2015/lib/components/evo-autocomplete/types/evo-autocomplete-size.js +2 -2
- package/esm2015/lib/components/evo-badge/evo-badge.component.js +45 -45
- package/esm2015/lib/components/evo-badge/evo-badge.module.js +28 -28
- package/esm2015/lib/components/evo-badge/index.js +3 -3
- package/esm2015/lib/components/evo-badge/public-api.js +3 -3
- package/esm2015/lib/components/evo-badge/types/evo-badge-color.js +2 -2
- package/esm2015/lib/components/evo-badge/types/evo-badge-size.js +2 -2
- package/esm2015/lib/components/evo-badge/types/index.js +3 -3
- package/esm2015/lib/components/evo-banner/evo-banner.component.js +116 -116
- package/esm2015/lib/components/evo-banner/evo-banner.module.js +27 -27
- package/esm2015/lib/components/evo-banner/index.js +2 -2
- package/esm2015/lib/components/evo-banner/public-api.js +3 -3
- package/esm2015/lib/components/evo-button/evo-button.component.js +87 -87
- package/esm2015/lib/components/evo-button/evo-button.module.js +26 -26
- package/esm2015/lib/components/evo-button/index.js +2 -2
- package/esm2015/lib/components/evo-button/public-api.js +3 -3
- package/esm2015/lib/components/evo-checkbox/evo-checkbox.component.js +87 -87
- package/esm2015/lib/components/evo-checkbox/evo-checkbox.module.js +34 -34
- package/esm2015/lib/components/evo-checkbox/index.js +2 -2
- package/esm2015/lib/components/evo-checkbox/public-api.js +3 -3
- package/esm2015/lib/components/evo-chip/evo-chip.component.js +138 -138
- package/esm2015/lib/components/evo-chip/evo-chip.module.js +45 -45
- package/esm2015/lib/components/evo-chip/index.js +2 -2
- package/esm2015/lib/components/evo-chip/public-api.js +3 -3
- package/esm2015/lib/components/evo-control-error/evo-control-error.component.js +43 -43
- package/esm2015/lib/components/evo-control-error/evo-control-error.module.js +30 -30
- package/esm2015/lib/components/evo-control-error/index.js +2 -2
- package/esm2015/lib/components/evo-control-error/public-api.js +3 -3
- package/esm2015/lib/components/evo-control-label/evo-control-label.component.js +23 -23
- package/esm2015/lib/components/evo-control-label/evo-control-label.module.js +22 -22
- package/esm2015/lib/components/evo-control-label/index.js +2 -2
- package/esm2015/lib/components/evo-control-label/public-api.js +3 -3
- package/esm2015/lib/components/evo-counter/evo-counter.component.js +43 -43
- package/esm2015/lib/components/evo-counter/evo-counter.module.js +30 -30
- package/esm2015/lib/components/evo-counter/index.js +2 -2
- package/esm2015/lib/components/evo-counter/public-api.js +3 -3
- package/esm2015/lib/components/evo-datepicker/evo-datepicker.component.js +557 -557
- package/esm2015/lib/components/evo-datepicker/evo-datepicker.module.js +34 -34
- package/esm2015/lib/components/evo-datepicker/flatpickr-options.interface.js +2 -2
- package/esm2015/lib/components/evo-datepicker/index.js +2 -2
- package/esm2015/lib/components/evo-datepicker/public-api.js +3 -3
- package/esm2015/lib/components/evo-datepicker/templates/index.js +114 -114
- package/esm2015/lib/components/evo-dropdown/evo-dropdown-origin.directive.js +41 -41
- package/esm2015/lib/components/evo-dropdown/evo-dropdown-position-description.js +51 -51
- package/esm2015/lib/components/evo-dropdown/evo-dropdown.component.js +112 -112
- package/esm2015/lib/components/evo-dropdown/evo-dropdown.module.js +20 -20
- package/esm2015/lib/components/evo-dropdown/index.js +2 -2
- package/esm2015/lib/components/evo-dropdown/public-api.js +5 -5
- package/esm2015/lib/components/evo-dropdown/types/evo-dropdown-positions.js +2 -2
- package/esm2015/lib/components/evo-icon/classes/evo-icons-library.js +19 -19
- package/esm2015/lib/components/evo-icon/evo-icon.component.js +57 -57
- package/esm2015/lib/components/evo-icon/evo-icon.module.js +57 -57
- package/esm2015/lib/components/evo-icon/index.js +2 -2
- package/esm2015/lib/components/evo-icon/interfaces/icons-category.js +2 -2
- package/esm2015/lib/components/evo-icon/interfaces/icons-source.js +2 -2
- package/esm2015/lib/components/evo-icon/public-api.js +6 -6
- package/esm2015/lib/components/evo-icon-button/evo-icon-button.component.js +67 -67
- package/esm2015/lib/components/evo-icon-button/evo-icon-button.module.js +26 -26
- package/esm2015/lib/components/evo-icon-button/index.js +2 -2
- package/esm2015/lib/components/evo-icon-button/public-api.js +3 -3
- package/esm2015/lib/components/evo-icon-button/types/evo-icon-button-size.js +2 -2
- package/esm2015/lib/components/evo-icon-button/types/evo-icon-button-theme.js +2 -2
- package/esm2015/lib/components/evo-icon-number/components/evo-icon-number/evo-icon-number.component.js +19 -0
- package/esm2015/lib/components/evo-icon-number/evo-icon-number.module.js +18 -0
- package/esm2015/lib/components/evo-icon-number/index.js +2 -0
- package/esm2015/lib/components/evo-icon-number/public-api.js +3 -0
- package/esm2015/lib/components/evo-input/evo-input-icon/evo-input-icon.directive.js +13 -13
- package/esm2015/lib/components/evo-input/evo-input.component.js +363 -363
- package/esm2015/lib/components/evo-input/evo-input.module.js +66 -66
- package/esm2015/lib/components/evo-input/index.js +2 -2
- package/esm2015/lib/components/evo-input/public-api.js +4 -4
- package/esm2015/lib/components/evo-input-contenteditable/evo-input-contenteditable.component.js +157 -157
- package/esm2015/lib/components/evo-input-contenteditable/evo-input-contenteditable.module.js +34 -34
- package/esm2015/lib/components/evo-input-contenteditable/index.js +2 -2
- package/esm2015/lib/components/evo-input-contenteditable/public-api.js +3 -3
- package/esm2015/lib/components/evo-input-contenteditable/utils/clear-multiline.js +7 -7
- package/esm2015/lib/components/evo-loader/evo-circular-loader.component.js +23 -23
- package/esm2015/lib/components/evo-loader/evo-loader.component.js +28 -28
- package/esm2015/lib/components/evo-loader/evo-loader.module.js +33 -33
- package/esm2015/lib/components/evo-loader/index.js +2 -2
- package/esm2015/lib/components/evo-loader/public-api.js +4 -4
- package/esm2015/lib/components/evo-modal/evo-modal.component.js +122 -122
- package/esm2015/lib/components/evo-modal/evo-modal.module.js +32 -32
- package/esm2015/lib/components/evo-modal/evo-modal.service.js +32 -32
- package/esm2015/lib/components/evo-modal/index.js +2 -2
- package/esm2015/lib/components/evo-modal/public-api.js +4 -4
- package/esm2015/lib/components/evo-navbar/evo-navbar-item/evo-navbar-item.component.js +63 -63
- package/esm2015/lib/components/evo-navbar/evo-navbar.component.js +51 -51
- package/esm2015/lib/components/evo-navbar/evo-navbar.module.js +24 -24
- package/esm2015/lib/components/evo-navbar/index.js +2 -2
- package/esm2015/lib/components/evo-navbar/interfaces/nav-item-main-info.js +2 -2
- package/esm2015/lib/components/evo-navbar/interfaces/nav-item-router-link.js +2 -2
- package/esm2015/lib/components/evo-navbar/interfaces/nav-item.href.js +2 -2
- package/esm2015/lib/components/evo-navbar/public-api.js +4 -4
- package/esm2015/lib/components/evo-navbar/types/nav-item.js +2 -2
- package/esm2015/lib/components/evo-note/evo-note.component.js +45 -45
- package/esm2015/lib/components/evo-note/evo-note.module.js +45 -45
- package/esm2015/lib/components/evo-note/index.js +2 -2
- package/esm2015/lib/components/evo-note/public.api.js +4 -4
- package/esm2015/lib/components/evo-note/types/evo-note-type.js +2 -2
- package/esm2015/lib/components/evo-paginator/evo-paginator.component.js +114 -114
- package/esm2015/lib/components/evo-paginator/evo-paginator.module.js +22 -22
- package/esm2015/lib/components/evo-paginator/index.js +2 -2
- package/esm2015/lib/components/evo-paginator/public-api.js +3 -3
- package/esm2015/lib/components/evo-plus-minus/evo-plus-minus.component.js +30 -30
- package/esm2015/lib/components/evo-plus-minus/evo-plus-minus.module.js +22 -22
- package/esm2015/lib/components/evo-plus-minus/index.js +2 -2
- package/esm2015/lib/components/evo-plus-minus/public-api.js +3 -3
- package/esm2015/lib/components/evo-popover/evo-popover.component.js +177 -177
- package/esm2015/lib/components/evo-popover/evo-popover.module.js +26 -26
- package/esm2015/lib/components/evo-popover/index.js +2 -2
- package/esm2015/lib/components/evo-popover/public-api.js +3 -3
- package/esm2015/lib/components/evo-portal/evo-portal-outlet.class.js +7 -7
- package/esm2015/lib/components/evo-portal/evo-portal-outlet.directive.js +19 -19
- package/esm2015/lib/components/evo-portal/evo-portal.module.js +32 -32
- package/esm2015/lib/components/evo-portal/evo-portal.service.js +92 -92
- package/esm2015/lib/components/evo-portal/index.js +2 -2
- package/esm2015/lib/components/evo-portal/public-api.js +5 -5
- package/esm2015/lib/components/evo-radio/evo-radio.component.js +56 -56
- package/esm2015/lib/components/evo-radio/evo-radio.module.js +26 -26
- package/esm2015/lib/components/evo-radio/index.js +2 -2
- package/esm2015/lib/components/evo-radio/public-api.js +3 -3
- package/esm2015/lib/components/evo-radio-group/evo-radio-group.component.js +128 -128
- package/esm2015/lib/components/evo-radio-group/evo-radio-group.module.js +34 -34
- package/esm2015/lib/components/evo-radio-group/index.js +2 -2
- package/esm2015/lib/components/evo-radio-group/public-api.js +3 -3
- package/esm2015/lib/components/evo-radio-group/typings/options.js +2 -2
- package/esm2015/lib/components/evo-radioshape/components/evo-radioshape.component.js +61 -61
- package/esm2015/lib/components/evo-radioshape/evo-radioshape.module.js +33 -33
- package/esm2015/lib/components/evo-radioshape/index.js +2 -2
- package/esm2015/lib/components/evo-radioshape/public-api.js +3 -3
- package/esm2015/lib/components/evo-segmented-bar/evo-segmented-bar/evo-segmented-bar.component.js +24 -24
- package/esm2015/lib/components/evo-segmented-bar/evo-segmented-bar-button/evo-segmented-bar-button.component.js +79 -79
- package/esm2015/lib/components/evo-segmented-bar/evo-segmented-bar.module.js +39 -39
- package/esm2015/lib/components/evo-segmented-bar/index.js +2 -2
- package/esm2015/lib/components/evo-segmented-bar/public-api.js +4 -4
- package/esm2015/lib/components/evo-select/evo-select.component.js +121 -121
- package/esm2015/lib/components/evo-select/evo-select.module.js +34 -34
- package/esm2015/lib/components/evo-select/index.js +2 -2
- package/esm2015/lib/components/evo-select/public-api.js +3 -3
- package/esm2015/lib/components/evo-sidebar/enums/evo-sidebar-close-targets.js +8 -8
- package/esm2015/lib/components/evo-sidebar/enums/evo-sidebar-sizes.js +7 -7
- package/esm2015/lib/components/evo-sidebar/enums/evo-sidebar-states.js +6 -6
- package/esm2015/lib/components/evo-sidebar/evo-sidebar-content/evo-sidebar-content.component.js +38 -38
- package/esm2015/lib/components/evo-sidebar/evo-sidebar-footer/evo-sidebar-footer.component.js +19 -19
- package/esm2015/lib/components/evo-sidebar/evo-sidebar-header/evo-sidebar-header.component.js +47 -47
- package/esm2015/lib/components/evo-sidebar/evo-sidebar-portal.js +21 -21
- package/esm2015/lib/components/evo-sidebar/evo-sidebar.component.js +174 -174
- package/esm2015/lib/components/evo-sidebar/evo-sidebar.module.js +90 -90
- package/esm2015/lib/components/evo-sidebar/evo-sidebar.service.js +102 -102
- package/esm2015/lib/components/evo-sidebar/index.js +2 -2
- package/esm2015/lib/components/evo-sidebar/interfaces.js +2 -2
- package/esm2015/lib/components/evo-sidebar/public-api.js +12 -12
- package/esm2015/lib/components/evo-sidebar/sidebar-injection-token.js +3 -3
- package/esm2015/lib/components/evo-sidebar/tokens.js +12 -12
- package/esm2015/lib/components/evo-stepper/evo-stepper-events.js +25 -25
- package/esm2015/lib/components/evo-stepper/evo-stepper-item/evo-stepper-item.component.js +35 -35
- package/esm2015/lib/components/evo-stepper/evo-stepper.component.js +72 -72
- package/esm2015/lib/components/evo-stepper/evo-stepper.module.js +27 -27
- package/esm2015/lib/components/evo-stepper/index.js +2 -2
- package/esm2015/lib/components/evo-stepper/public-api.js +4 -4
- package/esm2015/lib/components/evo-submenu/evo-submenu.component.js +160 -160
- package/esm2015/lib/components/evo-submenu/evo-submenu.module.js +36 -36
- package/esm2015/lib/components/evo-submenu/index.js +2 -2
- package/esm2015/lib/components/evo-submenu/public-api.js +3 -3
- package/esm2015/lib/components/evo-switcher/components/evo-switcher-item/evo-switcher-item.component.js +15 -15
- package/esm2015/lib/components/evo-switcher/evo-switcher.component.js +36 -36
- package/esm2015/lib/components/evo-switcher/evo-switcher.module.js +27 -27
- package/esm2015/lib/components/evo-switcher/index.js +2 -2
- package/esm2015/lib/components/evo-switcher/public-api.js +4 -4
- package/esm2015/lib/components/evo-table/evo-table/evo-table.component.js +71 -69
- package/esm2015/lib/components/evo-table/evo-table-column/evo-table-column.component.js +35 -35
- package/esm2015/lib/components/evo-table/evo-table.module.js +23 -23
- package/esm2015/lib/components/evo-table/index.js +2 -2
- package/esm2015/lib/components/evo-table/public-api.js +4 -4
- package/esm2015/lib/components/evo-tabs/enums/evo-tabs-size.js +6 -6
- package/esm2015/lib/components/evo-tabs/evo-tab/evo-tab.component.js +92 -92
- package/esm2015/lib/components/evo-tabs/evo-tab-content/evo-tab-content.component.js +40 -40
- package/esm2015/lib/components/evo-tabs/evo-tab-state.collection.js +43 -43
- package/esm2015/lib/components/evo-tabs/evo-tabs-size.service.js +24 -24
- package/esm2015/lib/components/evo-tabs/evo-tabs.component.js +88 -88
- package/esm2015/lib/components/evo-tabs/evo-tabs.module.js +30 -30
- package/esm2015/lib/components/evo-tabs/evo-tabs.service.js +67 -67
- package/esm2015/lib/components/evo-tabs/index.js +2 -2
- package/esm2015/lib/components/evo-tabs/public-api.js +9 -9
- package/esm2015/lib/components/evo-textarea/evo-textarea.component.js +84 -84
- package/esm2015/lib/components/evo-textarea/evo-textarea.module.js +37 -37
- package/esm2015/lib/components/evo-textarea/index.js +2 -2
- package/esm2015/lib/components/evo-textarea/public-api.js +3 -3
- package/esm2015/lib/components/evo-toast/evo-toast.component.js +103 -103
- package/esm2015/lib/components/evo-toast/evo-toast.module.js +45 -45
- package/esm2015/lib/components/evo-toast/evo-toast.service.js +49 -49
- package/esm2015/lib/components/evo-toast/index.js +2 -2
- package/esm2015/lib/components/evo-toast/public-api.js +4 -4
- package/esm2015/lib/components/evo-toggle/evo-toggle.component.js +70 -70
- package/esm2015/lib/components/evo-toggle/evo-toggle.module.js +30 -30
- package/esm2015/lib/components/evo-toggle/index.js +2 -2
- package/esm2015/lib/components/evo-toggle/public-api.js +3 -3
- package/esm2015/lib/components/evo-upload/evo-upload.component.js +292 -292
- package/esm2015/lib/components/evo-upload/evo-upload.module.js +59 -59
- package/esm2015/lib/components/evo-upload/index.js +2 -2
- package/esm2015/lib/components/evo-upload/public-api.js +3 -3
- package/esm2015/lib/decorators/deprecate-method.decorator.js +8 -8
- package/esm2015/lib/decorators/deprecate-variable.decorator.js +17 -17
- package/esm2015/lib/decorators/index.js +2 -2
- package/esm2015/lib/decorators/public-api.js +3 -3
- package/esm2015/lib/directives/evo-click-outside.directive.js +40 -40
- package/esm2015/lib/directives/evo-is-expanded.directive.js +72 -72
- package/esm2015/lib/directives/evo-let/evo-let.directive.js +36 -36
- package/esm2015/lib/directives/evo-ui-class.directive.js +159 -159
- package/esm2015/lib/directives/index.js +2 -2
- package/esm2015/lib/directives/public-api.js +5 -5
- package/esm2015/lib/evo-ui-kit.module.js +65 -65
- package/esm2015/lib/operators/enter-zone.operator.js +9 -9
- package/esm2015/lib/operators/index.js +2 -2
- package/esm2015/lib/operators/public-api.js +2 -2
- package/esm2015/lib/pipes/declination.pipe.js +40 -40
- package/esm2015/lib/pipes/evo-pipes.module.js +17 -17
- package/esm2015/lib/pipes/index.js +2 -2
- package/esm2015/lib/pipes/public-api.js +4 -4
- package/esm2015/lib/pipes/safe-html.pipe.js +18 -18
- package/esm2015/lib/services/evo-expanded.service.js +23 -23
- package/esm2015/lib/services/index.js +2 -2
- package/esm2015/lib/services/public-api.js +2 -2
- package/esm2015/lib/services/window.service.js +49 -49
- package/esm2015/public_api.js +73 -72
- package/evotor-dev-ui-kit.d.ts +5 -5
- package/fesm2015/evotor-dev-ui-kit-icons-category.js +63 -39
- package/fesm2015/evotor-dev-ui-kit-icons-category.js.map +1 -1
- package/fesm2015/evotor-dev-ui-kit-icons-emotions.js +18 -18
- package/fesm2015/evotor-dev-ui-kit-icons-header.js +28 -28
- package/fesm2015/evotor-dev-ui-kit-icons-info.js +40 -40
- package/fesm2015/evotor-dev-ui-kit-icons-navigation.js +56 -56
- package/fesm2015/evotor-dev-ui-kit-icons-navigation.js.map +1 -1
- package/fesm2015/evotor-dev-ui-kit-icons-side-menu.js +64 -64
- package/fesm2015/evotor-dev-ui-kit-icons-side-menu.js.map +1 -1
- package/fesm2015/evotor-dev-ui-kit-icons-system.js +369 -337
- package/fesm2015/evotor-dev-ui-kit-icons-system.js.map +1 -1
- package/fesm2015/evotor-dev-ui-kit-icons.js +624 -568
- package/fesm2015/evotor-dev-ui-kit-icons.js.map +1 -1
- package/fesm2015/evotor-dev-ui-kit.js +7225 -7186
- package/fesm2015/evotor-dev-ui-kit.js.map +1 -1
- package/icons/category/evotor-dev-ui-kit-icons-category.d.ts +5 -5
- package/icons/category/index.d.ts +59 -35
- package/icons/emotions/evotor-dev-ui-kit-icons-emotions.d.ts +5 -5
- package/icons/emotions/index.d.ts +15 -15
- package/icons/evotor-dev-ui-kit-icons.d.ts +5 -5
- package/icons/header/evotor-dev-ui-kit-icons-header.d.ts +5 -5
- package/icons/header/index.d.ts +25 -25
- package/icons/index.d.ts +319 -291
- package/icons/info/evotor-dev-ui-kit-icons-info.d.ts +5 -5
- package/icons/info/index.d.ts +37 -37
- package/icons/navigation/evotor-dev-ui-kit-icons-navigation.d.ts +5 -5
- package/icons/navigation/index.d.ts +53 -53
- package/icons/side-menu/evotor-dev-ui-kit-icons-side-menu.d.ts +5 -5
- package/icons/side-menu/index.d.ts +61 -61
- package/icons/system/evotor-dev-ui-kit-icons-system.d.ts +5 -5
- package/icons/system/index.d.ts +365 -333
- package/lib/common/Serializable.d.ts +3 -3
- package/lib/common/animations/expand.animation.d.ts +1 -1
- package/lib/common/animations/index.d.ts +3 -3
- package/lib/common/animations/sidebar.animation.d.ts +2 -2
- package/lib/common/animations/skip-initial-render.animation.d.ts +1 -1
- package/lib/common/collection/evo-collection-fabric.d.ts +4 -4
- package/lib/common/collection/evo-collection.d.ts +3 -3
- package/lib/common/collection/index.d.ts +2 -2
- package/lib/common/constants/css-breakpoints.d.ts +8 -8
- package/lib/common/constants/view-breakpoint-streams.d.ts +9 -9
- package/lib/common/evo-base-control.d.ts +21 -21
- package/lib/common/evo-control-state-manager/evo-control-state-manager.d.ts +7 -7
- package/lib/common/evo-control-state-manager/evo-control-state.interface.d.ts +5 -5
- package/lib/common/evo-control-state-manager/evo-control-states.enum.d.ts +4 -4
- package/lib/common/form-helper/form-helper.d.ts +5 -5
- package/lib/common/types/evo-color.d.ts +1 -1
- package/lib/common/types/evo-size.d.ts +1 -1
- package/lib/common/types/index.d.ts +2 -2
- package/lib/components/evo-accordion/evo-accordion-content/evo-accordion-content.component.d.ts +11 -11
- package/lib/components/evo-accordion/evo-accordion-panel/evo-accordion-panel.component.d.ts +9 -9
- package/lib/components/evo-accordion/evo-accordion-title/evo-accordion-title.component.d.ts +11 -11
- package/lib/components/evo-accordion/evo-accordion.component.d.ts +9 -9
- package/lib/components/evo-accordion/evo-accordion.module.d.ts +13 -13
- package/lib/components/evo-accordion/index.d.ts +1 -1
- package/lib/components/evo-accordion/public-api.d.ts +5 -5
- package/lib/components/evo-alert/evo-alert.component.d.ts +38 -38
- package/lib/components/evo-alert/evo-alert.module.d.ts +9 -9
- package/lib/components/evo-alert/index.d.ts +1 -1
- package/lib/components/evo-alert/public-api.d.ts +2 -2
- package/lib/components/evo-autocomplete/components/evo-autocomplete.component.d.ts +115 -115
- package/lib/components/evo-autocomplete/components/templates/evo-autocomplete-default-option.component.d.ts +16 -15
- package/lib/components/evo-autocomplete/evo-autocomplete.module.d.ts +15 -15
- package/lib/components/evo-autocomplete/helpers/switch-query-to-list.d.ts +2 -2
- package/lib/components/evo-autocomplete/index.d.ts +1 -1
- package/lib/components/evo-autocomplete/models/DaDataParty.d.ts +37 -37
- package/lib/components/evo-autocomplete/models/dadata.model.d.ts +320 -320
- package/lib/components/evo-autocomplete/public-api.d.ts +6 -6
- package/lib/components/evo-autocomplete/types/evo-autocomplete-size.d.ts +1 -1
- package/lib/components/evo-badge/evo-badge.component.d.ts +12 -12
- package/lib/components/evo-badge/evo-badge.module.d.ts +9 -9
- package/lib/components/evo-badge/index.d.ts +2 -2
- package/lib/components/evo-badge/public-api.d.ts +2 -2
- package/lib/components/evo-badge/types/evo-badge-color.d.ts +2 -2
- package/lib/components/evo-badge/types/evo-badge-size.d.ts +2 -2
- package/lib/components/evo-badge/types/index.d.ts +2 -2
- package/lib/components/evo-banner/evo-banner.component.d.ts +46 -46
- package/lib/components/evo-banner/evo-banner.module.d.ts +9 -9
- package/lib/components/evo-banner/index.d.ts +1 -1
- package/lib/components/evo-banner/public-api.d.ts +2 -2
- package/lib/components/evo-button/evo-button.component.d.ts +33 -33
- package/lib/components/evo-button/evo-button.module.d.ts +9 -9
- package/lib/components/evo-button/index.d.ts +1 -1
- package/lib/components/evo-button/public-api.d.ts +2 -2
- package/lib/components/evo-checkbox/evo-checkbox.component.d.ts +26 -26
- package/lib/components/evo-checkbox/evo-checkbox.module.d.ts +11 -11
- package/lib/components/evo-checkbox/index.d.ts +1 -1
- package/lib/components/evo-checkbox/public-api.d.ts +2 -2
- package/lib/components/evo-chip/evo-chip.component.d.ts +45 -45
- package/lib/components/evo-chip/evo-chip.module.d.ts +11 -11
- package/lib/components/evo-chip/index.d.ts +1 -1
- package/lib/components/evo-chip/public-api.d.ts +2 -2
- package/lib/components/evo-control-error/evo-control-error.component.d.ts +14 -14
- package/lib/components/evo-control-error/evo-control-error.module.d.ts +10 -10
- package/lib/components/evo-control-error/index.d.ts +1 -1
- package/lib/components/evo-control-error/public-api.d.ts +2 -2
- package/lib/components/evo-control-label/evo-control-label.component.d.ts +9 -9
- package/lib/components/evo-control-label/evo-control-label.module.d.ts +8 -8
- package/lib/components/evo-control-label/index.d.ts +1 -1
- package/lib/components/evo-control-label/public-api.d.ts +2 -2
- package/lib/components/evo-counter/evo-counter.component.d.ts +16 -16
- package/lib/components/evo-counter/evo-counter.module.d.ts +9 -9
- package/lib/components/evo-counter/index.d.ts +1 -1
- package/lib/components/evo-counter/public-api.d.ts +2 -2
- package/lib/components/evo-datepicker/evo-datepicker.component.d.ts +174 -174
- package/lib/components/evo-datepicker/evo-datepicker.module.d.ts +11 -11
- package/lib/components/evo-datepicker/flatpickr-options.interface.d.ts +10 -10
- package/lib/components/evo-datepicker/index.d.ts +1 -1
- package/lib/components/evo-datepicker/public-api.d.ts +2 -2
- package/lib/components/evo-datepicker/templates/index.d.ts +16 -16
- package/lib/components/evo-dropdown/evo-dropdown-origin.directive.d.ts +15 -15
- package/lib/components/evo-dropdown/evo-dropdown-position-description.d.ts +3 -3
- package/lib/components/evo-dropdown/evo-dropdown.component.d.ts +34 -34
- package/lib/components/evo-dropdown/evo-dropdown.module.d.ts +10 -10
- package/lib/components/evo-dropdown/index.d.ts +1 -1
- package/lib/components/evo-dropdown/public-api.d.ts +4 -4
- package/lib/components/evo-dropdown/types/evo-dropdown-positions.d.ts +1 -1
- package/lib/components/evo-icon/classes/evo-icons-library.d.ts +11 -11
- package/lib/components/evo-icon/evo-icon.component.d.ts +20 -20
- package/lib/components/evo-icon/evo-icon.module.d.ts +16 -16
- package/lib/components/evo-icon/index.d.ts +1 -1
- package/lib/components/evo-icon/interfaces/icons-category.d.ts +5 -5
- package/lib/components/evo-icon/interfaces/icons-source.d.ts +3 -3
- package/lib/components/evo-icon/public-api.d.ts +5 -5
- package/lib/components/evo-icon-button/evo-icon-button.component.d.ts +23 -23
- package/lib/components/evo-icon-button/evo-icon-button.module.d.ts +8 -8
- package/lib/components/evo-icon-button/index.d.ts +1 -1
- package/lib/components/evo-icon-button/public-api.d.ts +2 -2
- package/lib/components/evo-icon-button/types/evo-icon-button-size.d.ts +2 -2
- package/lib/components/evo-icon-button/types/evo-icon-button-theme.d.ts +1 -1
- package/lib/components/evo-icon-number/components/evo-icon-number/evo-icon-number.component.d.ts +6 -0
- package/lib/components/evo-icon-number/evo-icon-number.module.d.ts +8 -0
- package/lib/components/evo-icon-number/index.d.ts +1 -0
- package/lib/components/evo-icon-number/public-api.d.ts +2 -0
- package/lib/components/evo-input/evo-input-icon/evo-input-icon.directive.d.ts +5 -5
- package/lib/components/evo-input/evo-input.component.d.ts +93 -93
- package/lib/components/evo-input/evo-input.module.d.ts +14 -14
- package/lib/components/evo-input/index.d.ts +1 -1
- package/lib/components/evo-input/public-api.d.ts +3 -3
- package/lib/components/evo-input-contenteditable/evo-input-contenteditable.component.d.ts +44 -44
- package/lib/components/evo-input-contenteditable/evo-input-contenteditable.module.d.ts +10 -10
- package/lib/components/evo-input-contenteditable/index.d.ts +1 -1
- package/lib/components/evo-input-contenteditable/public-api.d.ts +2 -2
- package/lib/components/evo-input-contenteditable/utils/clear-multiline.d.ts +1 -1
- package/lib/components/evo-loader/evo-circular-loader.component.d.ts +8 -8
- package/lib/components/evo-loader/evo-loader.component.d.ts +14 -14
- package/lib/components/evo-loader/evo-loader.module.d.ts +10 -10
- package/lib/components/evo-loader/index.d.ts +1 -1
- package/lib/components/evo-loader/public-api.d.ts +3 -3
- package/lib/components/evo-modal/evo-modal.component.d.ts +37 -37
- package/lib/components/evo-modal/evo-modal.module.d.ts +10 -10
- package/lib/components/evo-modal/evo-modal.service.d.ts +22 -22
- package/lib/components/evo-modal/index.d.ts +1 -1
- package/lib/components/evo-modal/public-api.d.ts +3 -3
- package/lib/components/evo-navbar/evo-navbar-item/evo-navbar-item.component.d.ts +21 -21
- package/lib/components/evo-navbar/evo-navbar.component.d.ts +18 -18
- package/lib/components/evo-navbar/evo-navbar.module.d.ts +12 -12
- package/lib/components/evo-navbar/index.d.ts +1 -1
- package/lib/components/evo-navbar/interfaces/nav-item-main-info.d.ts +5 -5
- package/lib/components/evo-navbar/interfaces/nav-item-router-link.d.ts +14 -14
- package/lib/components/evo-navbar/interfaces/nav-item.href.d.ts +4 -4
- package/lib/components/evo-navbar/public-api.d.ts +7 -7
- package/lib/components/evo-navbar/types/nav-item.d.ts +4 -4
- package/lib/components/evo-note/evo-note.component.d.ts +13 -13
- package/lib/components/evo-note/evo-note.module.d.ts +10 -10
- package/lib/components/evo-note/index.d.ts +1 -1
- package/lib/components/evo-note/public.api.d.ts +3 -3
- package/lib/components/evo-note/types/evo-note-type.d.ts +1 -1
- package/lib/components/evo-paginator/evo-paginator.component.d.ts +26 -26
- package/lib/components/evo-paginator/evo-paginator.module.d.ts +8 -8
- package/lib/components/evo-paginator/index.d.ts +1 -1
- package/lib/components/evo-paginator/public-api.d.ts +2 -2
- package/lib/components/evo-plus-minus/evo-plus-minus.component.d.ts +13 -13
- package/lib/components/evo-plus-minus/evo-plus-minus.module.d.ts +8 -8
- package/lib/components/evo-plus-minus/index.d.ts +1 -1
- package/lib/components/evo-plus-minus/public-api.d.ts +2 -2
- package/lib/components/evo-popover/evo-popover.component.d.ts +43 -43
- package/lib/components/evo-popover/evo-popover.module.d.ts +9 -9
- package/lib/components/evo-popover/index.d.ts +1 -1
- package/lib/components/evo-popover/public-api.d.ts +2 -2
- package/lib/components/evo-portal/evo-portal-outlet.class.d.ts +6 -6
- package/lib/components/evo-portal/evo-portal-outlet.directive.d.ts +10 -10
- package/lib/components/evo-portal/evo-portal.module.d.ts +8 -8
- package/lib/components/evo-portal/evo-portal.service.d.ts +27 -27
- package/lib/components/evo-portal/index.d.ts +1 -1
- package/lib/components/evo-portal/public-api.d.ts +4 -4
- package/lib/components/evo-radio/evo-radio.component.d.ts +18 -18
- package/lib/components/evo-radio/evo-radio.module.d.ts +9 -9
- package/lib/components/evo-radio/index.d.ts +1 -1
- package/lib/components/evo-radio/public-api.d.ts +2 -2
- package/lib/components/evo-radio-group/evo-radio-group.component.d.ts +56 -56
- package/lib/components/evo-radio-group/evo-radio-group.module.d.ts +11 -11
- package/lib/components/evo-radio-group/index.d.ts +1 -1
- package/lib/components/evo-radio-group/public-api.d.ts +2 -2
- package/lib/components/evo-radio-group/typings/options.d.ts +6 -6
- package/lib/components/evo-radioshape/components/evo-radioshape.component.d.ts +19 -19
- package/lib/components/evo-radioshape/evo-radioshape.module.d.ts +9 -9
- package/lib/components/evo-radioshape/index.d.ts +1 -1
- package/lib/components/evo-radioshape/public-api.d.ts +2 -2
- package/lib/components/evo-segmented-bar/evo-segmented-bar/evo-segmented-bar.component.d.ts +10 -10
- package/lib/components/evo-segmented-bar/evo-segmented-bar-button/evo-segmented-bar-button.component.d.ts +22 -22
- package/lib/components/evo-segmented-bar/evo-segmented-bar.module.d.ts +11 -11
- package/lib/components/evo-segmented-bar/index.d.ts +1 -1
- package/lib/components/evo-segmented-bar/public-api.d.ts +3 -3
- package/lib/components/evo-select/evo-select.component.d.ts +37 -37
- package/lib/components/evo-select/evo-select.module.d.ts +11 -11
- package/lib/components/evo-select/index.d.ts +1 -1
- package/lib/components/evo-select/public-api.d.ts +2 -2
- package/lib/components/evo-sidebar/enums/evo-sidebar-close-targets.d.ts +6 -6
- package/lib/components/evo-sidebar/enums/evo-sidebar-sizes.d.ts +5 -5
- package/lib/components/evo-sidebar/enums/evo-sidebar-states.d.ts +4 -4
- package/lib/components/evo-sidebar/evo-sidebar-content/evo-sidebar-content.component.d.ts +12 -12
- package/lib/components/evo-sidebar/evo-sidebar-footer/evo-sidebar-footer.component.d.ts +5 -5
- package/lib/components/evo-sidebar/evo-sidebar-header/evo-sidebar-header.component.d.ts +13 -13
- package/lib/components/evo-sidebar/evo-sidebar-portal.d.ts +13 -13
- package/lib/components/evo-sidebar/evo-sidebar.component.d.ts +42 -42
- package/lib/components/evo-sidebar/evo-sidebar.module.d.ts +17 -17
- package/lib/components/evo-sidebar/evo-sidebar.service.d.ts +26 -26
- package/lib/components/evo-sidebar/index.d.ts +1 -1
- package/lib/components/evo-sidebar/interfaces.d.ts +23 -23
- package/lib/components/evo-sidebar/public-api.d.ts +11 -11
- package/lib/components/evo-sidebar/sidebar-injection-token.d.ts +2 -2
- package/lib/components/evo-sidebar/tokens.d.ts +7 -7
- package/lib/components/evo-stepper/evo-stepper-events.d.ts +12 -12
- package/lib/components/evo-stepper/evo-stepper-item/evo-stepper-item.component.d.ts +13 -13
- package/lib/components/evo-stepper/evo-stepper.component.d.ts +27 -27
- package/lib/components/evo-stepper/evo-stepper.module.d.ts +10 -10
- package/lib/components/evo-stepper/index.d.ts +1 -1
- package/lib/components/evo-stepper/public-api.d.ts +3 -3
- package/lib/components/evo-submenu/evo-submenu.component.d.ts +49 -49
- package/lib/components/evo-submenu/evo-submenu.module.d.ts +11 -11
- package/lib/components/evo-submenu/index.d.ts +1 -1
- package/lib/components/evo-submenu/public-api.d.ts +2 -2
- package/lib/components/evo-switcher/components/evo-switcher-item/evo-switcher-item.component.d.ts +9 -9
- package/lib/components/evo-switcher/evo-switcher.component.d.ts +14 -14
- package/lib/components/evo-switcher/evo-switcher.module.d.ts +10 -10
- package/lib/components/evo-switcher/index.d.ts +1 -1
- package/lib/components/evo-switcher/public-api.d.ts +3 -3
- package/lib/components/evo-table/evo-table/evo-table.component.d.ts +35 -32
- package/lib/components/evo-table/evo-table-column/evo-table-column.component.d.ts +12 -12
- package/lib/components/evo-table/evo-table.module.d.ts +9 -9
- package/lib/components/evo-table/index.d.ts +1 -1
- package/lib/components/evo-table/public-api.d.ts +3 -3
- package/lib/components/evo-tabs/enums/evo-tabs-size.d.ts +4 -4
- package/lib/components/evo-tabs/evo-tab/evo-tab.component.d.ts +35 -35
- package/lib/components/evo-tabs/evo-tab-content/evo-tab-content.component.d.ts +16 -16
- package/lib/components/evo-tabs/evo-tab-state.collection.d.ts +15 -15
- package/lib/components/evo-tabs/evo-tabs-size.service.d.ts +12 -12
- package/lib/components/evo-tabs/evo-tabs.component.d.ts +22 -22
- package/lib/components/evo-tabs/evo-tabs.module.d.ts +11 -11
- package/lib/components/evo-tabs/evo-tabs.service.d.ts +19 -19
- package/lib/components/evo-tabs/index.d.ts +1 -1
- package/lib/components/evo-tabs/public-api.d.ts +8 -8
- package/lib/components/evo-textarea/evo-textarea.component.d.ts +25 -25
- package/lib/components/evo-textarea/evo-textarea.module.d.ts +11 -11
- package/lib/components/evo-textarea/index.d.ts +1 -1
- package/lib/components/evo-textarea/public-api.d.ts +2 -2
- package/lib/components/evo-toast/evo-toast.component.d.ts +23 -23
- package/lib/components/evo-toast/evo-toast.module.d.ts +10 -10
- package/lib/components/evo-toast/evo-toast.service.d.ts +22 -22
- package/lib/components/evo-toast/index.d.ts +1 -1
- package/lib/components/evo-toast/public-api.d.ts +3 -3
- package/lib/components/evo-toggle/evo-toggle.component.d.ts +20 -20
- package/lib/components/evo-toggle/evo-toggle.module.d.ts +10 -10
- package/lib/components/evo-toggle/index.d.ts +1 -1
- package/lib/components/evo-toggle/public-api.d.ts +2 -2
- package/lib/components/evo-upload/evo-upload.component.d.ts +65 -65
- package/lib/components/evo-upload/evo-upload.module.d.ts +13 -13
- package/lib/components/evo-upload/index.d.ts +1 -1
- package/lib/components/evo-upload/public-api.d.ts +2 -2
- package/lib/decorators/deprecate-method.decorator.d.ts +1 -1
- package/lib/decorators/deprecate-variable.decorator.d.ts +1 -1
- package/lib/decorators/index.d.ts +1 -1
- package/lib/decorators/public-api.d.ts +2 -2
- package/lib/directives/evo-click-outside.directive.d.ts +12 -12
- package/lib/directives/evo-is-expanded.directive.d.ts +19 -19
- package/lib/directives/evo-let/evo-let.directive.d.ts +17 -17
- package/lib/directives/evo-ui-class.directive.d.ts +61 -61
- package/lib/directives/index.d.ts +1 -1
- package/lib/directives/public-api.d.ts +4 -4
- package/lib/evo-ui-kit.module.d.ts +16 -16
- package/lib/operators/enter-zone.operator.d.ts +3 -3
- package/lib/operators/index.d.ts +1 -1
- package/lib/operators/public-api.d.ts +1 -1
- package/lib/pipes/declination.pipe.d.ts +7 -7
- package/lib/pipes/evo-pipes.module.d.ts +8 -8
- package/lib/pipes/index.d.ts +1 -1
- package/lib/pipes/public-api.d.ts +3 -3
- package/lib/pipes/safe-html.pipe.d.ts +10 -10
- package/lib/services/evo-expanded.service.d.ts +11 -11
- package/lib/services/index.d.ts +1 -1
- package/lib/services/public-api.d.ts +1 -1
- package/lib/services/window.service.d.ts +14 -14
- package/package.json +1 -1
- package/public_api.d.ts +62 -61
- package/styles/components/evo-alert.scss +64 -64
- package/styles/components/evo-button-loader.scss +53 -53
- package/styles/components/evo-button-wrapper.scss +21 -21
- package/styles/components/evo-button.scss +233 -233
- package/styles/components/evo-card.scss +40 -40
- package/styles/components/evo-chip.scss +169 -169
- package/styles/components/evo-form.scss +273 -273
- package/styles/components/evo-grid.scss +27 -27
- package/styles/components/evo-icon.scss +3 -3
- package/styles/components/evo-link.scss +41 -41
- package/styles/components/evo-list.scss +38 -38
- package/styles/components/evo-modal-mixins.scss +32 -32
- package/styles/components/evo-sidebar-mixins.scss +20 -20
- package/styles/components/evo-spinner.scss +12 -12
- package/styles/components/evo-table.scss +42 -42
- package/styles/components/evo-title.scss +23 -23
- package/styles/components/skeleton.scss +12 -12
- package/styles/globals.scss +67 -67
- package/styles/icons.scss +173 -173
- package/styles/keyframes.scss +37 -37
- package/styles/main.scss +19 -19
- package/styles/mixins.scss +211 -208
- package/styles/normalize.scss +341 -341
- package/styles/reset.scss +155 -155
- package/styles/variables.scss +140 -137
package/esm2015/lib/components/evo-sidebar/evo-sidebar-header/evo-sidebar-header.component.js
CHANGED
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
import { Component, EventEmitter, Inject, Input, Output } from '@angular/core';
|
|
2
|
-
import { EvoSidebarCloseTargets } from '../enums/evo-sidebar-close-targets';
|
|
3
|
-
import { SidebarInjectionToken } from '../sidebar-injection-token';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../../evo-icon/evo-icon.component";
|
|
6
|
-
import * as i2 from "@angular/common";
|
|
7
|
-
export class EvoSidebarHeaderComponent {
|
|
8
|
-
constructor(sidebar) {
|
|
9
|
-
this.sidebar = sidebar;
|
|
10
|
-
this.back = new EventEmitter();
|
|
11
|
-
}
|
|
12
|
-
ngOnInit() {
|
|
13
|
-
var _a;
|
|
14
|
-
if (!this.sidebar) {
|
|
15
|
-
throw new Error(`EvoSidebarHeaderComponent must be used inside EvoSidebarComponent only!`);
|
|
16
|
-
}
|
|
17
|
-
this.backButton = (_a = this.backButton) !== null && _a !== void 0 ? _a : this.sidebar.backButton;
|
|
18
|
-
}
|
|
19
|
-
handleBackClick() {
|
|
20
|
-
this.back.emit();
|
|
21
|
-
}
|
|
22
|
-
closeSidebar() {
|
|
23
|
-
this.sidebar.closeSidebar(EvoSidebarCloseTargets.BUTTON);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
EvoSidebarHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoSidebarHeaderComponent, deps: [{ token: SidebarInjectionToken }], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
-
EvoSidebarHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: EvoSidebarHeaderComponent, selector: "evo-sidebar-header, [evo-sidebar-header]", inputs: { backButton: "backButton" }, outputs: { back: "back" }, host: { classAttribute: "evo-sidebar__header" }, ngImport: i0, template: "<div class=\"evo-sidebar__back\"\
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoSidebarHeaderComponent, decorators: [{
|
|
29
|
-
type: Component,
|
|
30
|
-
args: [{
|
|
31
|
-
selector: 'evo-sidebar-header, [evo-sidebar-header]',
|
|
32
|
-
templateUrl: './evo-sidebar-header.component.html',
|
|
33
|
-
styleUrls: ['./evo-sidebar-header.component.scss'],
|
|
34
|
-
// eslint-disable-next-line
|
|
35
|
-
host: {
|
|
36
|
-
class: 'evo-sidebar__header',
|
|
37
|
-
},
|
|
38
|
-
}]
|
|
39
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
40
|
-
type: Inject,
|
|
41
|
-
args: [SidebarInjectionToken]
|
|
42
|
-
}] }]; }, propDecorators: { backButton: [{
|
|
43
|
-
type: Input
|
|
44
|
-
}], back: [{
|
|
45
|
-
type: Output
|
|
46
|
-
}] } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Component, EventEmitter, Inject, Input, Output } from '@angular/core';
|
|
2
|
+
import { EvoSidebarCloseTargets } from '../enums/evo-sidebar-close-targets';
|
|
3
|
+
import { SidebarInjectionToken } from '../sidebar-injection-token';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../evo-icon/evo-icon.component";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
export class EvoSidebarHeaderComponent {
|
|
8
|
+
constructor(sidebar) {
|
|
9
|
+
this.sidebar = sidebar;
|
|
10
|
+
this.back = new EventEmitter();
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
var _a;
|
|
14
|
+
if (!this.sidebar) {
|
|
15
|
+
throw new Error(`EvoSidebarHeaderComponent must be used inside EvoSidebarComponent only!`);
|
|
16
|
+
}
|
|
17
|
+
this.backButton = (_a = this.backButton) !== null && _a !== void 0 ? _a : this.sidebar.backButton;
|
|
18
|
+
}
|
|
19
|
+
handleBackClick() {
|
|
20
|
+
this.back.emit();
|
|
21
|
+
}
|
|
22
|
+
closeSidebar() {
|
|
23
|
+
this.sidebar.closeSidebar(EvoSidebarCloseTargets.BUTTON);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
EvoSidebarHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoSidebarHeaderComponent, deps: [{ token: SidebarInjectionToken }], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
+
EvoSidebarHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: EvoSidebarHeaderComponent, selector: "evo-sidebar-header, [evo-sidebar-header]", inputs: { backButton: "backButton" }, outputs: { back: "back" }, host: { classAttribute: "evo-sidebar__header" }, ngImport: i0, template: "<div class=\"evo-sidebar__back\"\n *ngIf=\"backButton\"\n (click)=\"handleBackClick()\">\n <evo-icon class=\"evo-sidebar__icon\" shape=\"chevron-left\"></evo-icon>\n</div>\n\n<div class=\"evo-sidebar__title\">\n <ng-content></ng-content>\n</div>\n\n<div class=\"evo-sidebar__close\" (click)=\"closeSidebar()\">\n <evo-icon class=\"evo-sidebar__icon\" shape=\"close\"></evo-icon>\n</div>\n\n", styles: [":host{display:flex;flex-shrink:0;align-items:flex-start;margin:0 15px;padding:16px 0;border-bottom:solid 1px #C6C6C6}@media (min-width: 768px){:host{padding-top:32px;padding-bottom:16px}}@media (min-width: 992px){:host{margin:0 32px}}.evo-sidebar__title{flex:1;color:#212121;font-weight:700;font-size:24px;font-family:\"Ubuntu\",\"Helvetica Neue\",Arial,sans-serif;line-height:32px}@media (min-width: 768px){.evo-sidebar__title{font-size:30px;line-height:38px}}.evo-sidebar__close{flex-shrink:0;margin-left:8px;padding:0;color:#231f20;cursor:pointer;transition:opacity .3s}.evo-sidebar__close:hover{opacity:.8}.evo-sidebar__icon{display:block;width:32px;height:32px;vertical-align:bottom;fill:#91b1b8}@media (min-width: 768px){.evo-sidebar__icon{width:36px;height:36px}}.evo-sidebar__back{flex-shrink:0;margin-right:8px;color:#231f20;cursor:pointer;-webkit-user-select:none;user-select:none}\n"], components: [{ type: i1.EvoIconComponent, selector: "evo-icon", inputs: ["shape", "svgWidth", "svgHeight", "svgViewBox"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoSidebarHeaderComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{
|
|
31
|
+
selector: 'evo-sidebar-header, [evo-sidebar-header]',
|
|
32
|
+
templateUrl: './evo-sidebar-header.component.html',
|
|
33
|
+
styleUrls: ['./evo-sidebar-header.component.scss'],
|
|
34
|
+
// eslint-disable-next-line
|
|
35
|
+
host: {
|
|
36
|
+
class: 'evo-sidebar__header',
|
|
37
|
+
},
|
|
38
|
+
}]
|
|
39
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
40
|
+
type: Inject,
|
|
41
|
+
args: [SidebarInjectionToken]
|
|
42
|
+
}] }]; }, propDecorators: { backButton: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], back: [{
|
|
45
|
+
type: Output
|
|
46
|
+
}] } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvLXNpZGViYXItaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V2by11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2V2by1zaWRlYmFyL2V2by1zaWRlYmFyLWhlYWRlci9ldm8tc2lkZWJhci1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLXNpZGViYXIvZXZvLXNpZGViYXItaGVhZGVyL2V2by1zaWRlYmFyLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQVdqRSxNQUFNLE9BQU8seUJBQXlCO0lBS2xDLFlBQW1ELE9BQVk7UUFBWixZQUFPLEdBQVAsT0FBTyxDQUFLO1FBRnJELFNBQUksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRThCLENBQUM7SUFFbkUsUUFBUTs7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMseUVBQXlFLENBQUMsQ0FBQztTQUM5RjtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBQSxJQUFJLENBQUMsVUFBVSxtQ0FBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUNqRSxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RCxDQUFDOzt1SEFyQlEseUJBQXlCLGtCQUtkLHFCQUFxQjsyR0FMaEMseUJBQXlCLGtNQ2J0Qyx1WkFjQTs0RkREYSx5QkFBeUI7a0JBVHJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDBDQUEwQztvQkFDcEQsV0FBVyxFQUFFLHFDQUFxQztvQkFDbEQsU0FBUyxFQUFFLENBQUMscUNBQXFDLENBQUM7b0JBQ2xELDJCQUEyQjtvQkFDM0IsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxxQkFBcUI7cUJBQy9CO2lCQUNKOzswQkFNZ0IsTUFBTTsyQkFBQyxxQkFBcUI7NENBSmhDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksSUFBSTtzQkFBYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFdm9TaWRlYmFyQ2xvc2VUYXJnZXRzfSBmcm9tICcuLi9lbnVtcy9ldm8tc2lkZWJhci1jbG9zZS10YXJnZXRzJztcbmltcG9ydCB7U2lkZWJhckluamVjdGlvblRva2VufSBmcm9tICcuLi9zaWRlYmFyLWluamVjdGlvbi10b2tlbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXZvLXNpZGViYXItaGVhZGVyLCBbZXZvLXNpZGViYXItaGVhZGVyXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V2by1zaWRlYmFyLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZXZvLXNpZGViYXItaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2V2by1zaWRlYmFyX19oZWFkZXInLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIEV2b1NpZGViYXJIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIGJhY2tCdXR0b246IGJvb2xlYW47XG5cbiAgICBAT3V0cHV0KCkgYmFjayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoU2lkZWJhckluamVjdGlvblRva2VuKSBwcml2YXRlIHNpZGViYXI6IGFueSkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoIXRoaXMuc2lkZWJhcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFdm9TaWRlYmFySGVhZGVyQ29tcG9uZW50IG11c3QgYmUgdXNlZCBpbnNpZGUgRXZvU2lkZWJhckNvbXBvbmVudCBvbmx5IWApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5iYWNrQnV0dG9uID0gdGhpcy5iYWNrQnV0dG9uID8/IHRoaXMuc2lkZWJhci5iYWNrQnV0dG9uO1xuICAgIH1cblxuICAgIGhhbmRsZUJhY2tDbGljaygpIHtcbiAgICAgICAgdGhpcy5iYWNrLmVtaXQoKTtcbiAgICB9XG5cbiAgICBjbG9zZVNpZGViYXIoKSB7XG4gICAgICAgIHRoaXMuc2lkZWJhci5jbG9zZVNpZGViYXIoRXZvU2lkZWJhckNsb3NlVGFyZ2V0cy5CVVRUT04pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJldm8tc2lkZWJhcl9fYmFja1wiXG4gICAgKm5nSWY9XCJiYWNrQnV0dG9uXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlQmFja0NsaWNrKClcIj5cbiAgICA8ZXZvLWljb24gY2xhc3M9XCJldm8tc2lkZWJhcl9faWNvblwiIHNoYXBlPVwiY2hldnJvbi1sZWZ0XCI+PC9ldm8taWNvbj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZXZvLXNpZGViYXJfX3RpdGxlXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJldm8tc2lkZWJhcl9fY2xvc2VcIiAoY2xpY2spPVwiY2xvc2VTaWRlYmFyKClcIj5cbiAgICA8ZXZvLWljb24gY2xhc3M9XCJldm8tc2lkZWJhcl9faWNvblwiIHNoYXBlPVwiY2xvc2VcIj48L2V2by1pY29uPlxuPC9kaXY+XG5cbiJdfQ==
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { EvoPortalService } from '../evo-portal';
|
|
2
|
-
import { EvoSidebarComponent } from './evo-sidebar.component';
|
|
3
|
-
export class EvoSidebarPortal extends EvoPortalService {
|
|
4
|
-
constructor(appRef, injector, cfr) {
|
|
5
|
-
super(appRef, injector, cfr);
|
|
6
|
-
this.appRef = appRef;
|
|
7
|
-
this.injector = injector;
|
|
8
|
-
this.cfr = cfr;
|
|
9
|
-
}
|
|
10
|
-
attach(host) {
|
|
11
|
-
this.attachedPortal = this.attachComponent(EvoSidebarComponent, host, this.injector);
|
|
12
|
-
}
|
|
13
|
-
detach() {
|
|
14
|
-
super.detach(this.attachedPortal);
|
|
15
|
-
this.attachedPortal = null;
|
|
16
|
-
}
|
|
17
|
-
hasAttachedPortal() {
|
|
18
|
-
return !!this.attachedPortal;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { EvoPortalService } from '../evo-portal';
|
|
2
|
+
import { EvoSidebarComponent } from './evo-sidebar.component';
|
|
3
|
+
export class EvoSidebarPortal extends EvoPortalService {
|
|
4
|
+
constructor(appRef, injector, cfr) {
|
|
5
|
+
super(appRef, injector, cfr);
|
|
6
|
+
this.appRef = appRef;
|
|
7
|
+
this.injector = injector;
|
|
8
|
+
this.cfr = cfr;
|
|
9
|
+
}
|
|
10
|
+
attach(host) {
|
|
11
|
+
this.attachedPortal = this.attachComponent(EvoSidebarComponent, host, this.injector);
|
|
12
|
+
}
|
|
13
|
+
detach() {
|
|
14
|
+
super.detach(this.attachedPortal);
|
|
15
|
+
this.attachedPortal = null;
|
|
16
|
+
}
|
|
17
|
+
hasAttachedPortal() {
|
|
18
|
+
return !!this.attachedPortal;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvLXNpZGViYXItcG9ydGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLXNpZGViYXIvZXZvLXNpZGViYXItcG9ydGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBb0IsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFNUQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGdCQUFnQjtJQUdsRCxZQUFtQixNQUFzQixFQUFTLFFBQWtCLEVBQVMsR0FBNkI7UUFDdEcsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFEZCxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUFTLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBUyxRQUFHLEdBQUgsR0FBRyxDQUEwQjtJQUUxRyxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVk7UUFDZixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQsTUFBTTtRQUNGLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRCxpQkFBaUI7UUFDYixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQ2pDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXBwbGljYXRpb25SZWYsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmLCBJbmplY3Rvcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0V2b0Fic3RyYWN0UG9ydGFsLCBFdm9Qb3J0YWxTZXJ2aWNlfSBmcm9tICcuLi9ldm8tcG9ydGFsJztcbmltcG9ydCB7RXZvU2lkZWJhckNvbXBvbmVudH0gZnJvbSAnLi9ldm8tc2lkZWJhci5jb21wb25lbnQnO1xuXG5leHBvcnQgY2xhc3MgRXZvU2lkZWJhclBvcnRhbCBleHRlbmRzIEV2b1BvcnRhbFNlcnZpY2UgaW1wbGVtZW50cyBFdm9BYnN0cmFjdFBvcnRhbCB7XG4gICAgYXR0YWNoZWRQb3J0YWw6IENvbXBvbmVudFJlZjxFdm9TaWRlYmFyQ29tcG9uZW50PjtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLCBwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yLCBwdWJsaWMgY2ZyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHtcbiAgICAgICAgc3VwZXIoYXBwUmVmLCBpbmplY3RvciwgY2ZyKTtcbiAgICB9XG5cbiAgICBhdHRhY2goaG9zdDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYXR0YWNoZWRQb3J0YWwgPSB0aGlzLmF0dGFjaENvbXBvbmVudChFdm9TaWRlYmFyQ29tcG9uZW50LCBob3N0LCB0aGlzLmluamVjdG9yKTtcbiAgICB9XG5cbiAgICBkZXRhY2goKSB7XG4gICAgICAgIHN1cGVyLmRldGFjaCh0aGlzLmF0dGFjaGVkUG9ydGFsKTtcbiAgICAgICAgdGhpcy5hdHRhY2hlZFBvcnRhbCA9IG51bGw7XG4gICAgfVxuXG4gICAgaGFzQXR0YWNoZWRQb3J0YWwoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuYXR0YWNoZWRQb3J0YWw7XG4gICAgfVxufVxuIl19
|
|
@@ -1,174 +1,174 @@
|
|
|
1
|
-
// tslint:disable-next-line:max-line-length
|
|
2
|
-
import { Component, EventEmitter, forwardRef, Injector, Input, Output, ViewChild, ViewContainerRef, } from '@angular/core';
|
|
3
|
-
import { fromEvent, Subject } from 'rxjs';
|
|
4
|
-
import { delay, filter, takeUntil, takeWhile, tap } from 'rxjs/operators';
|
|
5
|
-
import { enterZone } from '../../operators';
|
|
6
|
-
import { EVO_SIDEBAR_DATA, evoSidebarRootId } from './tokens';
|
|
7
|
-
import { sidebarAnimation } from '../../common/animations/sidebar.animation';
|
|
8
|
-
import { EvoSidebarCloseTargets } from './enums/evo-sidebar-close-targets';
|
|
9
|
-
import { EvoSidebarStates } from './enums/evo-sidebar-states';
|
|
10
|
-
import { EvoSidebarSizes } from './enums/evo-sidebar-sizes';
|
|
11
|
-
import { SidebarInjectionToken } from './sidebar-injection-token';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "@angular/common";
|
|
14
|
-
import * as i2 from "./evo-sidebar.service";
|
|
15
|
-
import * as i3 from "./evo-sidebar-header/evo-sidebar-header.component";
|
|
16
|
-
import * as i4 from "./evo-sidebar-content/evo-sidebar-content.component";
|
|
17
|
-
import * as i5 from "./evo-sidebar-footer/evo-sidebar-footer.component";
|
|
18
|
-
import * as i6 from "../../directives/evo-ui-class.directive";
|
|
19
|
-
export class EvoSidebarComponent {
|
|
20
|
-
constructor(zone, location, componentFactoryResolver, sidebarService, cdr) {
|
|
21
|
-
this.zone = zone;
|
|
22
|
-
this.location = location;
|
|
23
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
|
24
|
-
this.sidebarService = sidebarService;
|
|
25
|
-
this.cdr = cdr;
|
|
26
|
-
this.size = EvoSidebarSizes.NORMAL;
|
|
27
|
-
this.back = new EventEmitter();
|
|
28
|
-
this.isVisible = false;
|
|
29
|
-
this.isDynamicContent = false;
|
|
30
|
-
this.closeTargets = EvoSidebarCloseTargets;
|
|
31
|
-
this.closeTarget = EvoSidebarCloseTargets.DEFAULT;
|
|
32
|
-
this.destroy$ = new Subject();
|
|
33
|
-
}
|
|
34
|
-
ngOnDestroy() {
|
|
35
|
-
var _a;
|
|
36
|
-
this.clearView();
|
|
37
|
-
this.sidebarService.deregister(this.id);
|
|
38
|
-
(_a = this.locationSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
39
|
-
this.destroy$.next();
|
|
40
|
-
this.destroy$.complete();
|
|
41
|
-
}
|
|
42
|
-
ngOnInit() {
|
|
43
|
-
if (!this.id) {
|
|
44
|
-
this.id = evoSidebarRootId;
|
|
45
|
-
}
|
|
46
|
-
this.sidebarService.register(this.id);
|
|
47
|
-
this.sidebarService
|
|
48
|
-
.getEventsSubscription(this.id, true)
|
|
49
|
-
.pipe(
|
|
50
|
-
// async hack to avoid "Expression has changed after it was checked" error
|
|
51
|
-
delay(0), takeUntil(this.destroy$))
|
|
52
|
-
.subscribe((sidebarState) => {
|
|
53
|
-
const { isOpen, params } = sidebarState;
|
|
54
|
-
if (isOpen) {
|
|
55
|
-
this.subscribeToKeyEvent();
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
this.closeTarget = EvoSidebarCloseTargets.DEFAULT;
|
|
59
|
-
}
|
|
60
|
-
// Dynamic content strategy
|
|
61
|
-
if (isOpen && (params === null || params === void 0 ? void 0 : params.component)) {
|
|
62
|
-
const { component, closeOnNavigation, size, data } = params;
|
|
63
|
-
this.isDynamicContent = true;
|
|
64
|
-
this.insertComponent(component, data);
|
|
65
|
-
if (size) {
|
|
66
|
-
this.size = size;
|
|
67
|
-
}
|
|
68
|
-
if (!this.locationSubscription && closeOnNavigation !== false) {
|
|
69
|
-
this.closeOnLocationUpdates();
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
this.isVisible = isOpen;
|
|
73
|
-
this.cdr.markForCheck();
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
get currentState() {
|
|
77
|
-
return this.isVisible ? EvoSidebarStates.VISIBLE : EvoSidebarStates.HIDDEN;
|
|
78
|
-
}
|
|
79
|
-
get totalClasses() {
|
|
80
|
-
var _a;
|
|
81
|
-
const classes = [];
|
|
82
|
-
if (this.isVisible) {
|
|
83
|
-
classes.push(EvoSidebarStates.VISIBLE);
|
|
84
|
-
}
|
|
85
|
-
classes.push((_a = this.size) !== null && _a !== void 0 ? _a : EvoSidebarSizes.NORMAL);
|
|
86
|
-
return classes;
|
|
87
|
-
}
|
|
88
|
-
closeSidebar(source) {
|
|
89
|
-
this.isVisible = false;
|
|
90
|
-
this.closeTarget = source;
|
|
91
|
-
}
|
|
92
|
-
handleAnimationDone(event) {
|
|
93
|
-
const isClosed = event.fromState === EvoSidebarStates.VISIBLE;
|
|
94
|
-
if (isClosed && !this.isVisible) {
|
|
95
|
-
this.sidebarService.close(this.id, { closeTarget: this.closeTarget });
|
|
96
|
-
this.clearView();
|
|
97
|
-
if (this.id === evoSidebarRootId) {
|
|
98
|
-
this.sidebarService.deregister(evoSidebarRootId);
|
|
99
|
-
this.sidebarService.cleanupDefaultHost();
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
handleBackClick() {
|
|
104
|
-
this.back.emit();
|
|
105
|
-
}
|
|
106
|
-
subscribeToKeyEvent() {
|
|
107
|
-
this.zone.runOutsideAngular(() => {
|
|
108
|
-
fromEvent(document.body, 'keyup')
|
|
109
|
-
.pipe(takeWhile(() => this.isVisible), filter((event) => event.code === 'Escape'), enterZone(this.zone), tap(() => this.closeSidebar(EvoSidebarCloseTargets.ESC)))
|
|
110
|
-
.subscribe();
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
insertComponent(component, data) {
|
|
114
|
-
this.clearView();
|
|
115
|
-
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(component);
|
|
116
|
-
const injector = Injector.create({
|
|
117
|
-
providers: [
|
|
118
|
-
{
|
|
119
|
-
provide: EVO_SIDEBAR_DATA,
|
|
120
|
-
useValue: data,
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
provide: SidebarInjectionToken,
|
|
124
|
-
useValue: this,
|
|
125
|
-
},
|
|
126
|
-
],
|
|
127
|
-
});
|
|
128
|
-
this.dynamicComponentRef = this.contentContainer.createComponent(componentFactory, 0, injector);
|
|
129
|
-
}
|
|
130
|
-
clearView() {
|
|
131
|
-
if (!this.dynamicComponentRef) {
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
this.contentContainer.clear();
|
|
135
|
-
this.dynamicComponentRef = null;
|
|
136
|
-
}
|
|
137
|
-
closeOnLocationUpdates() {
|
|
138
|
-
this.locationSubscription = this.location.subscribe(() => {
|
|
139
|
-
this.closeSidebar(EvoSidebarCloseTargets.DEFAULT);
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
EvoSidebarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoSidebarComponent, deps: [{ token: i0.NgZone }, { token: i1.Location }, { token: i0.ComponentFactoryResolver }, { token: i2.EvoSidebarService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
144
|
-
EvoSidebarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: EvoSidebarComponent, selector: "evo-sidebar", inputs: { backButton: "backButton", id: "id", header: "header", size: "size", relativeFooter: "relativeFooter" }, outputs: { back: "back" }, viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["sidebarContentContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div class=\"evo-sidebar__background\"\
|
|
145
|
-
provide: SidebarInjectionToken, useExisting: forwardRef(() => EvoSidebarComponent),
|
|
146
|
-
}], animations: [sidebarAnimation] });
|
|
147
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoSidebarComponent, decorators: [{
|
|
148
|
-
type: Component,
|
|
149
|
-
args: [{
|
|
150
|
-
selector: 'evo-sidebar',
|
|
151
|
-
styleUrls: ['./evo-sidebar.component.scss'],
|
|
152
|
-
templateUrl: './evo-sidebar.component.html',
|
|
153
|
-
animations: [sidebarAnimation],
|
|
154
|
-
viewProviders: [{
|
|
155
|
-
provide: SidebarInjectionToken, useExisting: forwardRef(() => EvoSidebarComponent),
|
|
156
|
-
}]
|
|
157
|
-
}]
|
|
158
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Location }, { type: i0.ComponentFactoryResolver }, { type: i2.EvoSidebarService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { contentContainer: [{
|
|
159
|
-
type: ViewChild,
|
|
160
|
-
args: ['sidebarContentContainer', { read: ViewContainerRef }]
|
|
161
|
-
}], backButton: [{
|
|
162
|
-
type: Input
|
|
163
|
-
}], id: [{
|
|
164
|
-
type: Input
|
|
165
|
-
}], header: [{
|
|
166
|
-
type: Input
|
|
167
|
-
}], size: [{
|
|
168
|
-
type: Input
|
|
169
|
-
}], relativeFooter: [{
|
|
170
|
-
type: Input
|
|
171
|
-
}], back: [{
|
|
172
|
-
type: Output
|
|
173
|
-
}] } });
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvLXNpZGViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLXNpZGViYXIvZXZvLXNpZGViYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLXNpZGViYXIvZXZvLXNpZGViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQTJDO0FBQzNDLE9BQU8sRUFFSCxTQUFTLEVBR1QsWUFBWSxFQUNaLFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEVBQ1QsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUUsT0FBTyxFQUFtQixNQUFNLE1BQU0sQ0FBQztBQUcxRCxPQUFPLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUcxQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDNUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDM0UsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQVdoRSxNQUFNLE9BQU8sbUJB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ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcclxuaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgQ29tcG9uZW50UmVmLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgZm9yd2FyZFJlZixcclxuICAgIEluamVjdG9yLFxyXG4gICAgSW5wdXQsXHJcbiAgICBOZ1pvbmUsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPbkluaXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBUeXBlLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVmlld0NvbnRhaW5lclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtmcm9tRXZlbnQsIFN1YmplY3QsIFN1YnNjcmlwdGlvbkxpa2V9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0V2b1NpZGViYXJTZXJ2aWNlfSBmcm9tICcuL2V2by1zaWRlYmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQge0FuaW1hdGlvbkV2ZW50fSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHtkZWxheSwgZmlsdGVyLCB0YWtlVW50aWwsIHRha2VXaGlsZSwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7ZW50ZXJab25lfSBmcm9tICcuLi8uLi9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge0xvY2F0aW9ufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge0V2b1NpZGViYXJTdGF0ZX0gZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHtFVk9fU0lERUJBUl9EQVRBLCBldm9TaWRlYmFyUm9vdElkfSBmcm9tICcuL3Rva2Vucyc7XHJcbmltcG9ydCB7c2lkZWJhckFuaW1hdGlvbn0gZnJvbSAnLi4vLi4vY29tbW9uL2FuaW1hdGlvbnMvc2lkZWJhci5hbmltYXRpb24nO1xyXG5pbXBvcnQge0V2b1NpZGViYXJDbG9zZVRhcmdldHN9IGZyb20gJy4vZW51bXMvZXZvLXNpZGViYXItY2xvc2UtdGFyZ2V0cyc7XHJcbmltcG9ydCB7RXZvU2lkZWJhclN0YXRlc30gZnJvbSAnLi9lbnVtcy9ldm8tc2lkZWJhci1zdGF0ZXMnO1xyXG5pbXBvcnQge0V2b1NpZGViYXJTaXplc30gZnJvbSAnLi9lbnVtcy9ldm8tc2lkZWJhci1zaXplcyc7XHJcbmltcG9ydCB7U2lkZWJhckluamVjdGlvblRva2VufSBmcm9tICcuL3NpZGViYXItaW5qZWN0aW9uLXRva2VuJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdldm8tc2lkZWJhcicsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9ldm8tc2lkZWJhci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V2by1zaWRlYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIGFuaW1hdGlvbnM6IFtzaWRlYmFyQW5pbWF0aW9uXSxcclxuICAgIHZpZXdQcm92aWRlcnM6IFt7XHJcbiAgICAgICAgcHJvdmlkZTogU2lkZWJhckluamVjdGlvblRva2VuLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFdm9TaWRlYmFyQ29tcG9uZW50KSxcclxuICAgIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFdm9TaWRlYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xyXG4gICAgQFZpZXdDaGlsZCgnc2lkZWJhckNvbnRlbnRDb250YWluZXInLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZn0pXHJcbiAgICBjb250ZW50Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG5cclxuICAgIEBJbnB1dCgpIGJhY2tCdXR0b246IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBpZDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgaGVhZGVyOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBzaXplOiBFdm9TaWRlYmFyU2l6ZXMgPSBFdm9TaWRlYmFyU2l6ZXMuTk9STUFMO1xyXG4gICAgQElucHV0KCkgcmVsYXRpdmVGb290ZXI6IGJvb2xlYW47XHJcblxyXG4gICAgQE91dHB1dCgpIGJhY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgaXNWaXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgaXNEeW5hbWljQ29udGVudCA9IGZhbHNlO1xyXG5cclxuICAgIHJlYWRvbmx5IGNsb3NlVGFyZ2V0cyA9IEV2b1NpZGViYXJDbG9zZVRhcmdldHM7XHJcblxyXG4gICAgcHJpdmF0ZSBjbG9zZVRhcmdldDogRXZvU2lkZWJhckNsb3NlVGFyZ2V0cyA9IEV2b1NpZGViYXJDbG9zZVRhcmdldHMuREVGQVVMVDtcclxuXHJcbiAgICBwcml2YXRlIGR5bmFtaWNDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+O1xyXG5cclxuICAgIHByaXZhdGUgbG9jYXRpb25TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbkxpa2U7XHJcblxyXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXHJcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgICAgICBwdWJsaWMgc2lkZWJhclNlcnZpY2U6IEV2b1NpZGViYXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICkge31cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmNsZWFyVmlldygpO1xyXG4gICAgICAgIHRoaXMuc2lkZWJhclNlcnZpY2UuZGVyZWdpc3Rlcih0aGlzLmlkKTtcclxuICAgICAgICB0aGlzLmxvY2F0aW9uU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaWQpIHtcclxuICAgICAgICAgICAgdGhpcy5pZCA9IGV2b1NpZGViYXJSb290SWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2lkZWJhclNlcnZpY2UucmVnaXN0ZXIodGhpcy5pZCk7XHJcbiAgICAgICAgdGhpcy5zaWRlYmFyU2VydmljZVxyXG4gICAgICAgICAgICAuZ2V0RXZlbnRzU3Vic2NyaXB0aW9uKHRoaXMuaWQsIHRydWUpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgLy8gYXN5bmMgaGFjayB0byBhdm9pZCBcIkV4cHJlc3Npb24gaGFzIGNoYW5nZWQgYWZ0ZXIgaXQgd2FzIGNoZWNrZWRcIiBlcnJvclxyXG4gICAgICAgICAgICAgICAgZGVsYXkoMCksXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoc2lkZWJhclN0YXRlOiBFdm9TaWRlYmFyU3RhdGUpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHtpc09wZW4sIHBhcmFtc30gPSBzaWRlYmFyU3RhdGU7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNPcGVuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVUb0tleUV2ZW50KCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VUYXJnZXQgPSBFdm9TaWRlYmFyQ2xvc2VUYXJnZXRzLkRFRkFVTFQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gRHluYW1pYyBjb250ZW50IHN0cmF0ZWd5XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNPcGVuICYmIHBhcmFtcz8uY29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qge2NvbXBvbmVudCwgY2xvc2VPbk5hdmlnYXRpb24sIHNpemUsIGRhdGF9ID0gcGFyYW1zO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNEeW5hbWljQ29udGVudCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRDb21wb25lbnQoY29tcG9uZW50LCBkYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoc2l6ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNpemUgPSBzaXplO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMubG9jYXRpb25TdWJzY3JpcHRpb24gJiYgY2xvc2VPbk5hdmlnYXRpb24gIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VPbkxvY2F0aW9uVXBkYXRlcygpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IGlzT3BlbjtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY3VycmVudFN0YXRlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWaXNpYmxlID8gRXZvU2lkZWJhclN0YXRlcy5WSVNJQkxFIDogRXZvU2lkZWJhclN0YXRlcy5ISURERU47XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHRvdGFsQ2xhc3NlcygpOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNWaXNpYmxlKSB7XHJcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaChFdm9TaWRlYmFyU3RhdGVzLlZJU0lCTEUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY2xhc3Nlcy5wdXNoKHRoaXMuc2l6ZSA/PyBFdm9TaWRlYmFyU2l6ZXMuTk9STUFMKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGNsYXNzZXM7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VTaWRlYmFyKHNvdXJjZTogRXZvU2lkZWJhckNsb3NlVGFyZ2V0cykge1xyXG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jbG9zZVRhcmdldCA9IHNvdXJjZTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVBbmltYXRpb25Eb25lKGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xyXG4gICAgICAgIGNvbnN0IGlzQ2xvc2VkID0gZXZlbnQuZnJvbVN0YXRlID09PSBFdm9TaWRlYmFyU3RhdGVzLlZJU0lCTEU7XHJcblxyXG4gICAgICAgIGlmIChpc0Nsb3NlZCAmJiAhdGhpcy5pc1Zpc2libGUpIHtcclxuICAgICAgICAgICAgdGhpcy5zaWRlYmFyU2VydmljZS5jbG9zZSh0aGlzLmlkLCB7Y2xvc2VUYXJnZXQ6IHRoaXMuY2xvc2VUYXJnZXR9KTtcclxuICAgICAgICAgICAgdGhpcy5jbGVhclZpZXcoKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaWQgPT09IGV2b1NpZGViYXJSb290SWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhclNlcnZpY2UuZGVyZWdpc3Rlcihldm9TaWRlYmFyUm9vdElkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhclNlcnZpY2UuY2xlYW51cERlZmF1bHRIb3N0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlQmFja0NsaWNrKCkge1xyXG4gICAgICAgIHRoaXMuYmFjay5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVUb0tleUV2ZW50KCkge1xyXG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgICAgIGZyb21FdmVudChkb2N1bWVudC5ib2R5LCAna2V5dXAnKVxyXG4gICAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgdGFrZVdoaWxlKCgpID0+IHRoaXMuaXNWaXNpYmxlKSxcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiBldmVudC5jb2RlID09PSAnRXNjYXBlJyksXHJcbiAgICAgICAgICAgICAgICAgICAgZW50ZXJab25lKHRoaXMuem9uZSksXHJcbiAgICAgICAgICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMuY2xvc2VTaWRlYmFyKEV2b1NpZGViYXJDbG9zZVRhcmdldHMuRVNDKSksXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbnNlcnRDb21wb25lbnQoY29tcG9uZW50OiBUeXBlPGFueT4sIGRhdGE6IGFueSkge1xyXG4gICAgICAgIHRoaXMuY2xlYXJWaWV3KCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeTxDb21wb25lbnQ+KGNvbXBvbmVudCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGluamVjdG9yOiBJbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XHJcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEVWT19TSURFQkFSX0RBVEEsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IGRhdGEsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IFNpZGViYXJJbmplY3Rpb25Ub2tlbixcclxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogdGhpcyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZHluYW1pY0NvbXBvbmVudFJlZiA9IHRoaXMuY29udGVudENvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSwgMCwgaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2xlYXJWaWV3KCkge1xyXG4gICAgICAgIGlmICghdGhpcy5keW5hbWljQ29tcG9uZW50UmVmKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb250ZW50Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy5keW5hbWljQ29tcG9uZW50UmVmID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNsb3NlT25Mb2NhdGlvblVwZGF0ZXMoKSB7XHJcbiAgICAgICAgdGhpcy5sb2NhdGlvblN1YnNjcmlwdGlvbiA9IHRoaXMubG9jYXRpb24uc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZVNpZGViYXIoRXZvU2lkZWJhckNsb3NlVGFyZ2V0cy5ERUZBVUxUKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZXZvLXNpZGViYXJfX2JhY2tncm91bmRcIlxyXG4gICAgICpuZ0lmPVwiaXNWaXNpYmxlXCJcclxuICAgICAoY2xpY2spPVwiY2xvc2VTaWRlYmFyKGNsb3NlVGFyZ2V0cy5CQUNLR1JPVU5EKVwiXHJcbj48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJldm8tc2lkZWJhclwiXHJcbiAgICAgW0BvcGVuXT1cImN1cnJlbnRTdGF0ZVwiXHJcbiAgICAgKEBvcGVuLmRvbmUpPVwiaGFuZGxlQW5pbWF0aW9uRG9uZSgkZXZlbnQpXCJcclxuICAgICBbZXZvVWlDbGFzc109XCJ0b3RhbENsYXNzZXNcIlxyXG4+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNzaWRlYmFyQ29udGVudENvbnRhaW5lcj48L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNEeW5hbWljQ29udGVudFwiPlxyXG5cclxuICAgICAgICA8ZGl2IGV2by1zaWRlYmFyLWhlYWRlclxyXG4gICAgICAgICAgICBbYmFja0J1dHRvbl09XCJiYWNrQnV0dG9uXCJcclxuICAgICAgICAgICAgKGJhY2spPVwiaGFuZGxlQmFja0NsaWNrKClcIlxyXG4gICAgICAgICAgICA+e3sgaGVhZGVyIH19PC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgZXZvLXNpZGViYXItY29udGVudFxyXG4gICAgICAgICAgICBbcmVsYXRpdmVGb290ZXJdPVwicmVsYXRpdmVGb290ZXJcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjb250ZW50XVwiPjwvbmctY29udGVudD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBldm8tc2lkZWJhci1mb290ZXI+PG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Zvb3Rlcl1cIj48L25nLWNvbnRlbnQ+PC9kaXY+XHJcblxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
1
|
+
// tslint:disable-next-line:max-line-length
|
|
2
|
+
import { Component, EventEmitter, forwardRef, Injector, Input, Output, ViewChild, ViewContainerRef, } from '@angular/core';
|
|
3
|
+
import { fromEvent, Subject } from 'rxjs';
|
|
4
|
+
import { delay, filter, takeUntil, takeWhile, tap } from 'rxjs/operators';
|
|
5
|
+
import { enterZone } from '../../operators';
|
|
6
|
+
import { EVO_SIDEBAR_DATA, evoSidebarRootId } from './tokens';
|
|
7
|
+
import { sidebarAnimation } from '../../common/animations/sidebar.animation';
|
|
8
|
+
import { EvoSidebarCloseTargets } from './enums/evo-sidebar-close-targets';
|
|
9
|
+
import { EvoSidebarStates } from './enums/evo-sidebar-states';
|
|
10
|
+
import { EvoSidebarSizes } from './enums/evo-sidebar-sizes';
|
|
11
|
+
import { SidebarInjectionToken } from './sidebar-injection-token';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@angular/common";
|
|
14
|
+
import * as i2 from "./evo-sidebar.service";
|
|
15
|
+
import * as i3 from "./evo-sidebar-header/evo-sidebar-header.component";
|
|
16
|
+
import * as i4 from "./evo-sidebar-content/evo-sidebar-content.component";
|
|
17
|
+
import * as i5 from "./evo-sidebar-footer/evo-sidebar-footer.component";
|
|
18
|
+
import * as i6 from "../../directives/evo-ui-class.directive";
|
|
19
|
+
export class EvoSidebarComponent {
|
|
20
|
+
constructor(zone, location, componentFactoryResolver, sidebarService, cdr) {
|
|
21
|
+
this.zone = zone;
|
|
22
|
+
this.location = location;
|
|
23
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
24
|
+
this.sidebarService = sidebarService;
|
|
25
|
+
this.cdr = cdr;
|
|
26
|
+
this.size = EvoSidebarSizes.NORMAL;
|
|
27
|
+
this.back = new EventEmitter();
|
|
28
|
+
this.isVisible = false;
|
|
29
|
+
this.isDynamicContent = false;
|
|
30
|
+
this.closeTargets = EvoSidebarCloseTargets;
|
|
31
|
+
this.closeTarget = EvoSidebarCloseTargets.DEFAULT;
|
|
32
|
+
this.destroy$ = new Subject();
|
|
33
|
+
}
|
|
34
|
+
ngOnDestroy() {
|
|
35
|
+
var _a;
|
|
36
|
+
this.clearView();
|
|
37
|
+
this.sidebarService.deregister(this.id);
|
|
38
|
+
(_a = this.locationSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
39
|
+
this.destroy$.next();
|
|
40
|
+
this.destroy$.complete();
|
|
41
|
+
}
|
|
42
|
+
ngOnInit() {
|
|
43
|
+
if (!this.id) {
|
|
44
|
+
this.id = evoSidebarRootId;
|
|
45
|
+
}
|
|
46
|
+
this.sidebarService.register(this.id);
|
|
47
|
+
this.sidebarService
|
|
48
|
+
.getEventsSubscription(this.id, true)
|
|
49
|
+
.pipe(
|
|
50
|
+
// async hack to avoid "Expression has changed after it was checked" error
|
|
51
|
+
delay(0), takeUntil(this.destroy$))
|
|
52
|
+
.subscribe((sidebarState) => {
|
|
53
|
+
const { isOpen, params } = sidebarState;
|
|
54
|
+
if (isOpen) {
|
|
55
|
+
this.subscribeToKeyEvent();
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
this.closeTarget = EvoSidebarCloseTargets.DEFAULT;
|
|
59
|
+
}
|
|
60
|
+
// Dynamic content strategy
|
|
61
|
+
if (isOpen && (params === null || params === void 0 ? void 0 : params.component)) {
|
|
62
|
+
const { component, closeOnNavigation, size, data } = params;
|
|
63
|
+
this.isDynamicContent = true;
|
|
64
|
+
this.insertComponent(component, data);
|
|
65
|
+
if (size) {
|
|
66
|
+
this.size = size;
|
|
67
|
+
}
|
|
68
|
+
if (!this.locationSubscription && closeOnNavigation !== false) {
|
|
69
|
+
this.closeOnLocationUpdates();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
this.isVisible = isOpen;
|
|
73
|
+
this.cdr.markForCheck();
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
get currentState() {
|
|
77
|
+
return this.isVisible ? EvoSidebarStates.VISIBLE : EvoSidebarStates.HIDDEN;
|
|
78
|
+
}
|
|
79
|
+
get totalClasses() {
|
|
80
|
+
var _a;
|
|
81
|
+
const classes = [];
|
|
82
|
+
if (this.isVisible) {
|
|
83
|
+
classes.push(EvoSidebarStates.VISIBLE);
|
|
84
|
+
}
|
|
85
|
+
classes.push((_a = this.size) !== null && _a !== void 0 ? _a : EvoSidebarSizes.NORMAL);
|
|
86
|
+
return classes;
|
|
87
|
+
}
|
|
88
|
+
closeSidebar(source) {
|
|
89
|
+
this.isVisible = false;
|
|
90
|
+
this.closeTarget = source;
|
|
91
|
+
}
|
|
92
|
+
handleAnimationDone(event) {
|
|
93
|
+
const isClosed = event.fromState === EvoSidebarStates.VISIBLE;
|
|
94
|
+
if (isClosed && !this.isVisible) {
|
|
95
|
+
this.sidebarService.close(this.id, { closeTarget: this.closeTarget });
|
|
96
|
+
this.clearView();
|
|
97
|
+
if (this.id === evoSidebarRootId) {
|
|
98
|
+
this.sidebarService.deregister(evoSidebarRootId);
|
|
99
|
+
this.sidebarService.cleanupDefaultHost();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
handleBackClick() {
|
|
104
|
+
this.back.emit();
|
|
105
|
+
}
|
|
106
|
+
subscribeToKeyEvent() {
|
|
107
|
+
this.zone.runOutsideAngular(() => {
|
|
108
|
+
fromEvent(document.body, 'keyup')
|
|
109
|
+
.pipe(takeWhile(() => this.isVisible), filter((event) => event.code === 'Escape'), enterZone(this.zone), tap(() => this.closeSidebar(EvoSidebarCloseTargets.ESC)))
|
|
110
|
+
.subscribe();
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
insertComponent(component, data) {
|
|
114
|
+
this.clearView();
|
|
115
|
+
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(component);
|
|
116
|
+
const injector = Injector.create({
|
|
117
|
+
providers: [
|
|
118
|
+
{
|
|
119
|
+
provide: EVO_SIDEBAR_DATA,
|
|
120
|
+
useValue: data,
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
provide: SidebarInjectionToken,
|
|
124
|
+
useValue: this,
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
});
|
|
128
|
+
this.dynamicComponentRef = this.contentContainer.createComponent(componentFactory, 0, injector);
|
|
129
|
+
}
|
|
130
|
+
clearView() {
|
|
131
|
+
if (!this.dynamicComponentRef) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
this.contentContainer.clear();
|
|
135
|
+
this.dynamicComponentRef = null;
|
|
136
|
+
}
|
|
137
|
+
closeOnLocationUpdates() {
|
|
138
|
+
this.locationSubscription = this.location.subscribe(() => {
|
|
139
|
+
this.closeSidebar(EvoSidebarCloseTargets.DEFAULT);
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
EvoSidebarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoSidebarComponent, deps: [{ token: i0.NgZone }, { token: i1.Location }, { token: i0.ComponentFactoryResolver }, { token: i2.EvoSidebarService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
144
|
+
EvoSidebarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: EvoSidebarComponent, selector: "evo-sidebar", inputs: { backButton: "backButton", id: "id", header: "header", size: "size", relativeFooter: "relativeFooter" }, outputs: { back: "back" }, viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["sidebarContentContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div class=\"evo-sidebar__background\"\n *ngIf=\"isVisible\"\n (click)=\"closeSidebar(closeTargets.BACKGROUND)\"\n></div>\n\n<div class=\"evo-sidebar\"\n [@open]=\"currentState\"\n (@open.done)=\"handleAnimationDone($event)\"\n [evoUiClass]=\"totalClasses\"\n>\n\n <ng-template #sidebarContentContainer></ng-template>\n\n <ng-container *ngIf=\"!isDynamicContent\">\n\n <div evo-sidebar-header\n [backButton]=\"backButton\"\n (back)=\"handleBackClick()\"\n >{{ header }}</div>\n\n <div evo-sidebar-content\n [relativeFooter]=\"relativeFooter\"\n >\n <ng-content select=\"[content]\"></ng-content>\n </div>\n\n <div evo-sidebar-footer><ng-content select=\"[footer]\"></ng-content></div>\n\n </ng-container>\n</div>\n", styles: [".evo-sidebar{position:fixed;top:0;right:0;z-index:3000;display:flex;flex-direction:column;width:100%;height:100%;background-color:#fff;transform:translate(100vw);transition:box-shadow .1s .5s}.evo-sidebar_visible{box-shadow:0 8px 10px #00000024,0 3px 14px #0000001f;transition-delay:unset}@media (min-width: 992px){.evo-sidebar_normal{width:674px;transform:translate(674px)}}@media (min-width: 992px){.evo-sidebar_middle{width:995px;transform:translate(100%)}}@media (min-width: 992px){.evo-sidebar_large{width:80%;transform:translate(100%)}}.evo-sidebar__background{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background-color:#000;opacity:.3}\n"], components: [{ type: i3.EvoSidebarHeaderComponent, selector: "evo-sidebar-header, [evo-sidebar-header]", inputs: ["backButton"], outputs: ["back"] }, { type: i4.EvoSidebarContentComponent, selector: "evo-sidebar-content, [evo-sidebar-content]", inputs: ["relativeFooter"] }, { type: i5.EvoSidebarFooterComponent, selector: "evo-sidebar-footer, [evo-sidebar-footer]" }], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.EvoUiClassDirective, selector: "[evoUiClass]", inputs: ["class", "evoUiClass"] }], viewProviders: [{
|
|
145
|
+
provide: SidebarInjectionToken, useExisting: forwardRef(() => EvoSidebarComponent),
|
|
146
|
+
}], animations: [sidebarAnimation] });
|
|
147
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoSidebarComponent, decorators: [{
|
|
148
|
+
type: Component,
|
|
149
|
+
args: [{
|
|
150
|
+
selector: 'evo-sidebar',
|
|
151
|
+
styleUrls: ['./evo-sidebar.component.scss'],
|
|
152
|
+
templateUrl: './evo-sidebar.component.html',
|
|
153
|
+
animations: [sidebarAnimation],
|
|
154
|
+
viewProviders: [{
|
|
155
|
+
provide: SidebarInjectionToken, useExisting: forwardRef(() => EvoSidebarComponent),
|
|
156
|
+
}]
|
|
157
|
+
}]
|
|
158
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Location }, { type: i0.ComponentFactoryResolver }, { type: i2.EvoSidebarService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { contentContainer: [{
|
|
159
|
+
type: ViewChild,
|
|
160
|
+
args: ['sidebarContentContainer', { read: ViewContainerRef }]
|
|
161
|
+
}], backButton: [{
|
|
162
|
+
type: Input
|
|
163
|
+
}], id: [{
|
|
164
|
+
type: Input
|
|
165
|
+
}], header: [{
|
|
166
|
+
type: Input
|
|
167
|
+
}], size: [{
|
|
168
|
+
type: Input
|
|
169
|
+
}], relativeFooter: [{
|
|
170
|
+
type: Input
|
|
171
|
+
}], back: [{
|
|
172
|
+
type: Output
|
|
173
|
+
}] } });
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvLXNpZGViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLXNpZGViYXIvZXZvLXNpZGViYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLXNpZGViYXIvZXZvLXNpZGViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQTJDO0FBQzNDLE9BQU8sRUFFSCxTQUFTLEVBR1QsWUFBWSxFQUNaLFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEVBQ1QsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUUsT0FBTyxFQUFtQixNQUFNLE1BQU0sQ0FBQztBQUcxRCxPQUFPLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUcxQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDNUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDM0UsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQVdoRSxNQUFNLE9BQU8sbUJBQW1CO0lBMEI1QixZQUNZLElBQVksRUFDWixRQUFrQixFQUNsQix3QkFBa0QsRUFDbkQsY0FBaUMsRUFDdkIsR0FBc0I7UUFKL0IsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNuRCxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDdkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF4QmxDLFNBQUksR0FBb0IsZUFBZSxDQUFDLE1BQU0sQ0FBQztRQUc5QyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUxQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUVoQixpQkFBWSxHQUFHLHNCQUFzQixDQUFDO1FBRXZDLGdCQUFXLEdBQTJCLHNCQUFzQixDQUFDLE9BQU8sQ0FBQztRQU1yRSxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQVE5QixDQUFDO0lBRUosV0FBVzs7UUFDUCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLE1BQUEsSUFBSSxDQUFDLG9CQUFvQiwwQ0FBRSxXQUFXLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNWLElBQUksQ0FBQyxFQUFFLEdBQUcsZ0JBQWdCLENBQUM7U0FDOUI7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGNBQWM7YUFDZCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQzthQUNwQyxJQUFJO1FBQ0QsMEVBQTBFO1FBQzFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDUixTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUMzQjthQUNBLFNBQVMsQ0FBQyxDQUFDLFlBQTZCLEVBQUUsRUFBRTtZQUN6QyxNQUFNLEVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBQyxHQUFHLFlBQVksQ0FBQztZQUN0QyxJQUFJLE1BQU0sRUFBRTtnQkFDUixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQzthQUM5QjtpQkFBTTtnQkFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLHNCQUFzQixDQUFDLE9BQU8sQ0FBQzthQUNyRDtZQUVELDJCQUEyQjtZQUMzQixJQUFJLE1BQU0sS0FBSSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsU0FBUyxDQUFBLEVBQUU7Z0JBQzdCLE1BQU0sRUFBQyxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyxHQUFHLE1BQU0sQ0FBQztnQkFDMUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3RDLElBQUksSUFBSSxFQUFFO29CQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2lCQUNwQjtnQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLGlCQUFpQixLQUFLLEtBQUssRUFBRTtvQkFDM0QsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7aUJBQ2pDO2FBQ0o7WUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztZQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7SUFDL0UsQ0FBQztJQUVELElBQUksWUFBWTs7UUFDWixNQUFNLE9BQU8sR0FBYSxFQUFFLENBQUM7UUFFN0IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDMUM7UUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQUEsSUFBSSxDQUFDLElBQUksbUNBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWxELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBOEI7UUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUM7SUFDOUIsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQXFCO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxTQUFTLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxDQUFDO1FBRTlELElBQUksUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUMsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixJQUFJLElBQUksQ0FBQyxFQUFFLEtBQUssZ0JBQWdCLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUM1QztTQUNKO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxtQkFBbUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDN0IsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDO2lCQUM1QixJQUFJLENBQ0QsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFDL0IsTUFBTSxDQUFDLENBQUMsS0FBb0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsRUFDekQsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDcEIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDM0Q7aUJBQ0EsU0FBUyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sZUFBZSxDQUFDLFNBQW9CLEVBQUUsSUFBUztRQUNuRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFakIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsdUJBQXVCLENBQVksU0FBUyxDQUFDLENBQUM7UUFFckcsTUFBTSxRQUFRLEdBQWEsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUN2QyxTQUFTLEVBQUU7Z0JBQ1A7b0JBQ0ksT0FBTyxFQUFFLGdCQUFnQjtvQkFDekIsUUFBUSxFQUFFLElBQUk7aUJBQ2pCO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxxQkFBcUI7b0JBQzlCLFFBQVEsRUFBRSxJQUFJO2lCQUNqQjthQUNKO1NBQ0osQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFTyxTQUFTO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUMzQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztJQUNwQyxDQUFDO0lBRU8sc0JBQXNCO1FBQzFCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDckQsSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O2lIQXBLUSxtQkFBbUI7cUdBQW5CLG1CQUFtQix3U0FDaUIsZ0JBQWdCLDZCQzFDakUsdTBCQThCQSxpdUNET21CLENBQUM7WUFDWixPQUFPLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztTQUNyRixDQUFDLGNBSFUsQ0FBQyxnQkFBZ0IsQ0FBQzs0RkFLckIsbUJBQW1CO2tCQVQvQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxhQUFhO29CQUN2QixTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztvQkFDM0MsV0FBVyxFQUFFLDhCQUE4QjtvQkFDM0MsVUFBVSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzlCLGFBQWEsRUFBRSxDQUFDOzRCQUNaLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQzt5QkFDckYsQ0FBQztpQkFDTDsyTkFHRyxnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyx5QkFBeUIsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBQztnQkFHckQsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVJLElBQUk7c0JBQWIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFR5cGUsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtmcm9tRXZlbnQsIFN1YmplY3QsIFN1YnNjcmlwdGlvbkxpa2V9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtFdm9TaWRlYmFyU2VydmljZX0gZnJvbSAnLi9ldm8tc2lkZWJhci5zZXJ2aWNlJztcbmltcG9ydCB7QW5pbWF0aW9uRXZlbnR9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtkZWxheSwgZmlsdGVyLCB0YWtlVW50aWwsIHRha2VXaGlsZSwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge2VudGVyWm9uZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3JzJztcbmltcG9ydCB7TG9jYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0V2b1NpZGViYXJTdGF0ZX0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7RVZPX1NJREVCQVJfREFUQSwgZXZvU2lkZWJhclJvb3RJZH0gZnJvbSAnLi90b2tlbnMnO1xuaW1wb3J0IHtzaWRlYmFyQW5pbWF0aW9ufSBmcm9tICcuLi8uLi9jb21tb24vYW5pbWF0aW9ucy9zaWRlYmFyLmFuaW1hdGlvbic7XG5pbXBvcnQge0V2b1NpZGViYXJDbG9zZVRhcmdldHN9IGZyb20gJy4vZW51bXMvZXZvLXNpZGViYXItY2xvc2UtdGFyZ2V0cyc7XG5pbXBvcnQge0V2b1NpZGViYXJTdGF0ZXN9IGZyb20gJy4vZW51bXMvZXZvLXNpZGViYXItc3RhdGVzJztcbmltcG9ydCB7RXZvU2lkZWJhclNpemVzfSBmcm9tICcuL2VudW1zL2V2by1zaWRlYmFyLXNpemVzJztcbmltcG9ydCB7U2lkZWJhckluamVjdGlvblRva2VufSBmcm9tICcuL3NpZGViYXItaW5qZWN0aW9uLXRva2VuJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldm8tc2lkZWJhcicsXG4gICAgc3R5bGVVcmxzOiBbJy4vZXZvLXNpZGViYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXZvLXNpZGViYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGFuaW1hdGlvbnM6IFtzaWRlYmFyQW5pbWF0aW9uXSxcbiAgICB2aWV3UHJvdmlkZXJzOiBbe1xuICAgICAgICBwcm92aWRlOiBTaWRlYmFySW5qZWN0aW9uVG9rZW4sIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEV2b1NpZGViYXJDb21wb25lbnQpLFxuICAgIH1dXG59KVxuZXhwb3J0IGNsYXNzIEV2b1NpZGViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZCgnc2lkZWJhckNvbnRlbnRDb250YWluZXInLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZn0pXG4gICAgY29udGVudENvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIEBJbnB1dCgpIGJhY2tCdXR0b246IGJvb2xlYW47XG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBoZWFkZXI6IHN0cmluZztcbiAgICBASW5wdXQoKSBzaXplOiBFdm9TaWRlYmFyU2l6ZXMgPSBFdm9TaWRlYmFyU2l6ZXMuTk9STUFMO1xuICAgIEBJbnB1dCgpIHJlbGF0aXZlRm9vdGVyOiBib29sZWFuO1xuXG4gICAgQE91dHB1dCgpIGJhY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBpc1Zpc2libGUgPSBmYWxzZTtcblxuICAgIGlzRHluYW1pY0NvbnRlbnQgPSBmYWxzZTtcblxuICAgIHJlYWRvbmx5IGNsb3NlVGFyZ2V0cyA9IEV2b1NpZGViYXJDbG9zZVRhcmdldHM7XG5cbiAgICBwcml2YXRlIGNsb3NlVGFyZ2V0OiBFdm9TaWRlYmFyQ2xvc2VUYXJnZXRzID0gRXZvU2lkZWJhckNsb3NlVGFyZ2V0cy5ERUZBVUxUO1xuXG4gICAgcHJpdmF0ZSBkeW5hbWljQ29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PjtcblxuICAgIHByaXZhdGUgbG9jYXRpb25TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbkxpa2U7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHB1YmxpYyBzaWRlYmFyU2VydmljZTogRXZvU2lkZWJhclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICApIHt9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5jbGVhclZpZXcoKTtcbiAgICAgICAgdGhpcy5zaWRlYmFyU2VydmljZS5kZXJlZ2lzdGVyKHRoaXMuaWQpO1xuICAgICAgICB0aGlzLmxvY2F0aW9uU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoIXRoaXMuaWQpIHtcbiAgICAgICAgICAgIHRoaXMuaWQgPSBldm9TaWRlYmFyUm9vdElkO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2lkZWJhclNlcnZpY2UucmVnaXN0ZXIodGhpcy5pZCk7XG4gICAgICAgIHRoaXMuc2lkZWJhclNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRFdmVudHNTdWJzY3JpcHRpb24odGhpcy5pZCwgdHJ1ZSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIC8vIGFzeW5jIGhhY2sgdG8gYXZvaWQgXCJFeHByZXNzaW9uIGhhcyBjaGFuZ2VkIGFmdGVyIGl0IHdhcyBjaGVja2VkXCIgZXJyb3JcbiAgICAgICAgICAgICAgICBkZWxheSgwKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChzaWRlYmFyU3RhdGU6IEV2b1NpZGViYXJTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHtpc09wZW4sIHBhcmFtc30gPSBzaWRlYmFyU3RhdGU7XG4gICAgICAgICAgICAgICAgaWYgKGlzT3Blbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmliZVRvS2V5RXZlbnQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlVGFyZ2V0ID0gRXZvU2lkZWJhckNsb3NlVGFyZ2V0cy5ERUZBVUxUO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIER5bmFtaWMgY29udGVudCBzdHJhdGVneVxuICAgICAgICAgICAgICAgIGlmIChpc09wZW4gJiYgcGFyYW1zPy5jb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qge2NvbXBvbmVudCwgY2xvc2VPbk5hdmlnYXRpb24sIHNpemUsIGRhdGF9ID0gcGFyYW1zO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRHluYW1pY0NvbnRlbnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydENvbXBvbmVudChjb21wb25lbnQsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaXplID0gc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMubG9jYXRpb25TdWJzY3JpcHRpb24gJiYgY2xvc2VPbk5hdmlnYXRpb24gIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlT25Mb2NhdGlvblVwZGF0ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuaXNWaXNpYmxlID0gaXNPcGVuO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGN1cnJlbnRTdGF0ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1Zpc2libGUgPyBFdm9TaWRlYmFyU3RhdGVzLlZJU0lCTEUgOiBFdm9TaWRlYmFyU3RhdGVzLkhJRERFTjtcbiAgICB9XG5cbiAgICBnZXQgdG90YWxDbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICBpZiAodGhpcy5pc1Zpc2libGUpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaChFdm9TaWRlYmFyU3RhdGVzLlZJU0lCTEUpO1xuICAgICAgICB9XG5cbiAgICAgICAgY2xhc3Nlcy5wdXNoKHRoaXMuc2l6ZSA/PyBFdm9TaWRlYmFyU2l6ZXMuTk9STUFMKTtcblxuICAgICAgICByZXR1cm4gY2xhc3NlcztcbiAgICB9XG5cbiAgICBjbG9zZVNpZGViYXIoc291cmNlOiBFdm9TaWRlYmFyQ2xvc2VUYXJnZXRzKSB7XG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2xvc2VUYXJnZXQgPSBzb3VyY2U7XG4gICAgfVxuXG4gICAgaGFuZGxlQW5pbWF0aW9uRG9uZShldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgY29uc3QgaXNDbG9zZWQgPSBldmVudC5mcm9tU3RhdGUgPT09IEV2b1NpZGViYXJTdGF0ZXMuVklTSUJMRTtcblxuICAgICAgICBpZiAoaXNDbG9zZWQgJiYgIXRoaXMuaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnNpZGViYXJTZXJ2aWNlLmNsb3NlKHRoaXMuaWQsIHtjbG9zZVRhcmdldDogdGhpcy5jbG9zZVRhcmdldH0pO1xuICAgICAgICAgICAgdGhpcy5jbGVhclZpZXcoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlkID09PSBldm9TaWRlYmFyUm9vdElkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaWRlYmFyU2VydmljZS5kZXJlZ2lzdGVyKGV2b1NpZGViYXJSb290SWQpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhclNlcnZpY2UuY2xlYW51cERlZmF1bHRIb3N0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVCYWNrQ2xpY2soKSB7XG4gICAgICAgIHRoaXMuYmFjay5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVUb0tleUV2ZW50KCkge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgZnJvbUV2ZW50KGRvY3VtZW50LmJvZHksICdrZXl1cCcpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VXaGlsZSgoKSA9PiB0aGlzLmlzVmlzaWJsZSksXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcigoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IGV2ZW50LmNvZGUgPT09ICdFc2NhcGUnKSxcbiAgICAgICAgICAgICAgICAgICAgZW50ZXJab25lKHRoaXMuem9uZSksXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLmNsb3NlU2lkZWJhcihFdm9TaWRlYmFyQ2xvc2VUYXJnZXRzLkVTQykpLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5zZXJ0Q29tcG9uZW50KGNvbXBvbmVudDogVHlwZTxhbnk+LCBkYXRhOiBhbnkpIHtcbiAgICAgICAgdGhpcy5jbGVhclZpZXcoKTtcblxuICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3Rvcnk8Q29tcG9uZW50Pihjb21wb25lbnQpO1xuXG4gICAgICAgIGNvbnN0IGluamVjdG9yOiBJbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEVWT19TSURFQkFSX0RBVEEsXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBkYXRhLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBTaWRlYmFySW5qZWN0aW9uVG9rZW4sXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB0aGlzLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmR5bmFtaWNDb21wb25lbnRSZWYgPSB0aGlzLmNvbnRlbnRDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnksIDAsIGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyVmlldygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmR5bmFtaWNDb21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbnRlbnRDb250YWluZXIuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5keW5hbWljQ29tcG9uZW50UmVmID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlT25Mb2NhdGlvblVwZGF0ZXMoKSB7XG4gICAgICAgIHRoaXMubG9jYXRpb25TdWJzY3JpcHRpb24gPSB0aGlzLmxvY2F0aW9uLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlU2lkZWJhcihFdm9TaWRlYmFyQ2xvc2VUYXJnZXRzLkRFRkFVTFQpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZXZvLXNpZGViYXJfX2JhY2tncm91bmRcIlxuICAgICAqbmdJZj1cImlzVmlzaWJsZVwiXG4gICAgIChjbGljayk9XCJjbG9zZVNpZGViYXIoY2xvc2VUYXJnZXRzLkJBQ0tHUk9VTkQpXCJcbj48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImV2by1zaWRlYmFyXCJcbiAgICAgW0BvcGVuXT1cImN1cnJlbnRTdGF0ZVwiXG4gICAgIChAb3Blbi5kb25lKT1cImhhbmRsZUFuaW1hdGlvbkRvbmUoJGV2ZW50KVwiXG4gICAgIFtldm9VaUNsYXNzXT1cInRvdGFsQ2xhc3Nlc1wiXG4+XG5cbiAgICA8bmctdGVtcGxhdGUgI3NpZGViYXJDb250ZW50Q29udGFpbmVyPjwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRHluYW1pY0NvbnRlbnRcIj5cblxuICAgICAgICA8ZGl2IGV2by1zaWRlYmFyLWhlYWRlclxuICAgICAgICAgICAgW2JhY2tCdXR0b25dPVwiYmFja0J1dHRvblwiXG4gICAgICAgICAgICAoYmFjayk9XCJoYW5kbGVCYWNrQ2xpY2soKVwiXG4gICAgICAgICAgICA+e3sgaGVhZGVyIH19PC9kaXY+XG5cbiAgICAgICAgPGRpdiBldm8tc2lkZWJhci1jb250ZW50XG4gICAgICAgICAgICBbcmVsYXRpdmVGb290ZXJdPVwicmVsYXRpdmVGb290ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGV2by1zaWRlYmFyLWZvb3Rlcj48bmctY29udGVudCBzZWxlY3Q9XCJbZm9vdGVyXVwiPjwvbmctY29udGVudD48L2Rpdj5cblxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
|