@alauda/ui 6.2.3-beta.9 → 6.3.1-beta.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/.changeset/README.md +8 -0
- package/accordion/accordion-item/accordion-item.component.d.ts +7 -0
- package/accordion/accordion.component.d.ts +3 -0
- package/accordion/accordion.module.d.ts +10 -0
- package/alauda-ui.d.ts +1 -20
- package/anchor/anchor.component.d.ts +7 -2
- package/anchor/anchor.directive.d.ts +7 -0
- package/anchor/anchor.module.d.ts +7 -0
- package/autocomplete/autocomplete-placeholder.component.d.ts +3 -0
- package/autocomplete/autocomplete.component.d.ts +3 -0
- package/autocomplete/autocomplete.directive.d.ts +5 -0
- package/autocomplete/autocomplete.module.d.ts +13 -0
- package/autocomplete/helper-directives.d.ts +3 -0
- package/autocomplete/suggestion/suggestion.component.d.ts +3 -0
- package/autocomplete/suggestion-group/suggestion-group.component.d.ts +3 -0
- package/back-top/back-top.component.d.ts +3 -0
- package/back-top/back-top.module.d.ts +7 -0
- package/breadcrumb/breadcrumb-item.component.d.ts +3 -0
- package/breadcrumb/breadcrumb.component.d.ts +3 -0
- package/breadcrumb/breadcrumb.module.d.ts +8 -0
- package/button/button-group/button-group.component.d.ts +3 -0
- package/button/button.component.d.ts +9 -38
- package/button/button.module.d.ts +8 -0
- package/card/card.component.d.ts +3 -0
- package/card/card.module.d.ts +8 -0
- package/card/helper-directives.d.ts +7 -0
- package/card/section.component.d.ts +3 -0
- package/checkbox/checkbox-group/checkbox-group.component.d.ts +3 -0
- package/checkbox/checkbox.component.d.ts +3 -0
- package/checkbox/checkbox.module.d.ts +8 -0
- package/color-picker/color-picker.component.d.ts +3 -0
- package/color-picker/color-picker.module.d.ts +7 -0
- package/date-picker/calendar/date-picker-panel/component.d.ts +3 -0
- package/date-picker/calendar/footer/component.d.ts +3 -0
- package/date-picker/calendar/header/component.d.ts +3 -0
- package/date-picker/calendar/panel/picker-panel.d.ts +3 -0
- package/date-picker/calendar/range-picker-panel/component.d.ts +3 -0
- package/date-picker/date-picker/date-picker.component.d.ts +3 -0
- package/date-picker/date-picker.module.d.ts +20 -0
- package/date-picker/public-api.d.ts +1 -0
- package/date-picker/range-picker/range-picker.component.d.ts +3 -0
- package/date-picker/trigger/trigger.component.d.ts +3 -0
- package/dialog/confirm-dialog/confirm-dialog.component.d.ts +3 -0
- package/dialog/dialog-content/dialog-close.directive.d.ts +3 -0
- package/dialog/dialog-content/dialog-content.component.d.ts +3 -0
- package/dialog/dialog-content/dialog-footer.component.d.ts +3 -0
- package/dialog/dialog-content/dialog-header.component.d.ts +3 -0
- package/dialog/dialog.component.d.ts +3 -0
- package/dialog/dialog.module.d.ts +15 -0
- package/dialog/dialog.service.d.ts +3 -0
- package/dialog/public-api.d.ts +1 -0
- package/drawer/component/drawer.component.d.ts +5 -2
- package/drawer/component/helper-directives.d.ts +7 -4
- package/drawer/drawer.module.d.ts +10 -0
- package/drawer/drawer.service.d.ts +3 -0
- package/dropdown/dropdown-active.directive.d.ts +3 -0
- package/dropdown/dropdown-button/dropdown-button.component.d.ts +3 -0
- package/dropdown/dropdown.directive.d.ts +3 -0
- package/dropdown/dropdown.module.d.ts +17 -0
- package/dropdown/helper-directives.d.ts +3 -0
- package/dropdown/menu/menu-content.directive.d.ts +3 -0
- package/dropdown/menu/menu.component.d.ts +3 -0
- package/dropdown/menu-group/menu-group.component.d.ts +3 -0
- package/dropdown/menu-item/menu-item.component.d.ts +3 -0
- package/dropdown/public-api.d.ts +1 -0
- package/dropdown/submenu/submenu.component.d.ts +3 -0
- package/esm2020/accordion/accordion-item/accordion-item.component.mjs +73 -0
- package/esm2020/accordion/accordion.component.mjs +27 -0
- package/esm2020/accordion/accordion.module.mjs +39 -0
- package/{esm2015/accordion/public-api.js → esm2020/accordion/public-api.mjs} +0 -0
- package/esm2020/alauda-ui.mjs +5 -0
- package/esm2020/anchor/anchor.component.mjs +139 -0
- package/esm2020/anchor/anchor.directive.mjs +184 -0
- package/esm2020/anchor/anchor.module.mjs +36 -0
- package/{esm2015/anchor/public-api.js → esm2020/anchor/public-api.mjs} +0 -0
- package/{esm2015/anchor/types.js → esm2020/anchor/types.mjs} +0 -0
- package/{esm2015/anchor/utils.js → esm2020/anchor/utils.mjs} +0 -0
- package/esm2020/autocomplete/autocomplete-placeholder.component.mjs +17 -0
- package/esm2020/autocomplete/autocomplete.component.mjs +41 -0
- package/esm2020/autocomplete/autocomplete.directive.mjs +272 -0
- package/esm2020/autocomplete/autocomplete.module.mjs +53 -0
- package/{esm2015/autocomplete/autocomplete.types.js → esm2020/autocomplete/autocomplete.types.mjs} +0 -0
- package/esm2020/autocomplete/helper-directives.mjs +17 -0
- package/{esm2015/autocomplete/public-api.js → esm2020/autocomplete/public-api.mjs} +0 -0
- package/esm2020/autocomplete/suggestion/suggestion.component.mjs +78 -0
- package/esm2020/autocomplete/suggestion-group/suggestion-group.component.mjs +23 -0
- package/esm2020/back-top/back-top.component.mjs +68 -0
- package/esm2020/back-top/back-top.module.mjs +19 -0
- package/{esm2015/back-top/public-api.js → esm2020/back-top/public-api.mjs} +0 -0
- package/esm2020/breadcrumb/breadcrumb-item.component.mjs +32 -0
- package/esm2020/breadcrumb/breadcrumb.component.mjs +57 -0
- package/esm2020/breadcrumb/breadcrumb.module.mjs +20 -0
- package/{esm2015/breadcrumb/public-api.js → esm2020/breadcrumb/public-api.mjs} +0 -0
- package/esm2020/button/button-group/button-group.component.mjs +11 -0
- package/esm2020/button/button.component.mjs +122 -0
- package/esm2020/button/button.module.mjs +20 -0
- package/{esm2015/button/button.types.js → esm2020/button/button.types.mjs} +0 -0
- package/{esm2015/button/public-api.js → esm2020/button/public-api.mjs} +0 -0
- package/esm2020/card/card.component.mjs +16 -0
- package/esm2020/card/card.module.mjs +40 -0
- package/esm2020/card/helper-directives.mjs +43 -0
- package/{esm2015/card/public-api.js → esm2020/card/public-api.mjs} +0 -0
- package/esm2020/card/section.component.mjs +11 -0
- package/esm2020/checkbox/checkbox-group/checkbox-group.component.mjs +64 -0
- package/esm2020/checkbox/checkbox.component.mjs +114 -0
- package/esm2020/checkbox/checkbox.module.mjs +20 -0
- package/{esm2015/checkbox/public-api.js → esm2020/checkbox/public-api.mjs} +0 -0
- package/esm2020/color-picker/color-picker.component.mjs +32 -0
- package/esm2020/color-picker/color-picker.module.mjs +19 -0
- package/{esm2015/color-picker/public-api.js → esm2020/color-picker/public-api.mjs} +0 -0
- package/{esm2015/date-picker/calendar/constant.js → esm2020/date-picker/calendar/constant.mjs} +0 -0
- package/esm2020/date-picker/calendar/date-picker-panel/component.mjs +128 -0
- package/esm2020/date-picker/calendar/footer/component.mjs +29 -0
- package/esm2020/date-picker/calendar/header/component.mjs +105 -0
- package/esm2020/date-picker/calendar/panel/picker-panel.mjs +149 -0
- package/esm2020/date-picker/calendar/range-picker-panel/component.mjs +209 -0
- package/{esm2015/date-picker/calendar/util.js → esm2020/date-picker/calendar/util.mjs} +0 -0
- package/esm2020/date-picker/date-picker/date-picker.component.mjs +104 -0
- package/esm2020/date-picker/date-picker.module.mjs +84 -0
- package/{esm2015/date-picker/date-picker.type.js → esm2020/date-picker/date-picker.type.mjs} +0 -0
- package/esm2020/date-picker/public-api.mjs +12 -0
- package/esm2020/date-picker/range-picker/range-picker.component.mjs +80 -0
- package/esm2020/date-picker/trigger/trigger.component.mjs +69 -0
- package/{esm2015/dialog/confirm-dialog/confirm-dialog-config.js → esm2020/dialog/confirm-dialog/confirm-dialog-config.mjs} +0 -0
- package/esm2020/dialog/confirm-dialog/confirm-dialog.component.mjs +86 -0
- package/{esm2015/dialog/dialog-config.js → esm2020/dialog/dialog-config.mjs} +0 -0
- package/esm2020/dialog/dialog-content/dialog-close.directive.mjs +38 -0
- package/esm2020/dialog/dialog-content/dialog-content.component.mjs +20 -0
- package/esm2020/dialog/dialog-content/dialog-footer.component.mjs +15 -0
- package/esm2020/dialog/dialog-content/dialog-header.component.mjs +39 -0
- package/{esm2015/dialog/dialog-ref.js → esm2020/dialog/dialog-ref.mjs} +0 -0
- package/esm2020/dialog/dialog.component.mjs +59 -0
- package/esm2020/dialog/dialog.module.mjs +68 -0
- package/esm2020/dialog/dialog.service.mjs +128 -0
- package/{esm2015/dialog/dialog.types.js → esm2020/dialog/dialog.types.mjs} +0 -0
- package/esm2020/dialog/public-api.mjs +12 -0
- package/{esm2015/dialog/utils/errors.js → esm2020/dialog/utils/errors.mjs} +0 -0
- package/esm2020/dialog/utils/index.mjs +11 -0
- package/{esm2015/drawer/component/drawer-ref.js → esm2020/drawer/component/drawer-ref.mjs} +0 -0
- package/esm2020/drawer/component/drawer.component.mjs +231 -0
- package/esm2020/drawer/component/helper-directives.mjs +37 -0
- package/esm2020/drawer/drawer.module.mjs +37 -0
- package/esm2020/drawer/drawer.service.mjs +45 -0
- package/{esm2015/drawer/public-api.js → esm2020/drawer/public-api.mjs} +0 -0
- package/esm2020/dropdown/dropdown-active.directive.mjs +21 -0
- package/esm2020/dropdown/dropdown-button/dropdown-button.component.mjs +51 -0
- package/esm2020/dropdown/dropdown.directive.mjs +83 -0
- package/esm2020/dropdown/dropdown.module.mjs +65 -0
- package/{esm2015/dropdown/dropdown.types.js → esm2020/dropdown/dropdown.types.mjs} +0 -0
- package/esm2020/dropdown/helper-directives.mjs +17 -0
- package/esm2020/dropdown/menu/menu-content.directive.mjs +51 -0
- package/esm2020/dropdown/menu/menu.component.mjs +33 -0
- package/esm2020/dropdown/menu-group/menu-group.component.mjs +11 -0
- package/esm2020/dropdown/menu-item/menu-item.component.mjs +37 -0
- package/esm2020/dropdown/public-api.mjs +12 -0
- package/esm2020/dropdown/submenu/submenu.component.mjs +40 -0
- package/esm2020/form/common-form.mjs +92 -0
- package/esm2020/form/form-item/form-item.component.mjs +106 -0
- package/esm2020/form/form.directive.mjs +70 -0
- package/esm2020/form/form.module.mjs +48 -0
- package/{esm2015/form/form.types.js → esm2020/form/form.types.mjs} +0 -0
- package/esm2020/form/helper-directives.mjs +81 -0
- package/{esm2015/form/public-api.js → esm2020/form/public-api.mjs} +0 -0
- package/esm2020/i18n/i18n.module.mjs +16 -0
- package/esm2020/i18n/i18n.pipe.mjs +20 -0
- package/esm2020/i18n/i18n.service.mjs +43 -0
- package/esm2020/i18n/i18n.type.mjs +6 -0
- package/{esm2015/i18n/language/en.js → esm2020/i18n/language/en.mjs} +0 -0
- package/{esm2015/i18n/language/zh.js → esm2020/i18n/language/zh.mjs} +0 -0
- package/{esm2015/i18n/public-api.js → esm2020/i18n/public-api.mjs} +0 -0
- package/esm2020/icon/icon-register.service.mjs +70 -0
- package/esm2020/icon/icon.component.mjs +65 -0
- package/esm2020/icon/icon.module.mjs +21 -0
- package/{esm2015/icon/icons.js → esm2020/icon/icons.mjs} +0 -0
- package/{esm2015/icon/public-api.js → esm2020/icon/public-api.mjs} +0 -0
- package/{esm2015/icon/utils.js → esm2020/icon/utils.mjs} +0 -0
- package/esm2020/inline-alert/helper-directives.mjs +14 -0
- package/esm2020/inline-alert/inline-alert.component.mjs +55 -0
- package/esm2020/inline-alert/inline-alert.module.mjs +20 -0
- package/{esm2015/inline-alert/inline-alert.types.js → esm2020/inline-alert/inline-alert.types.mjs} +0 -0
- package/{esm2015/inline-alert/public-api.js → esm2020/inline-alert/public-api.mjs} +0 -0
- package/esm2020/input/autosize.directive.mjs +60 -0
- package/esm2020/input/helper-directives.mjs +43 -0
- package/esm2020/input/input-group/input-group.component.mjs +39 -0
- package/esm2020/input/input.component.mjs +61 -0
- package/esm2020/input/input.module.mjs +91 -0
- package/esm2020/input/number-input/number-input.component.mjs +94 -0
- package/esm2020/input/public-api.mjs +9 -0
- package/esm2020/input/search/search.component.mjs +81 -0
- package/esm2020/input/tags-input/tags-input.component.mjs +265 -0
- package/{esm2015/input/tags-input/with-max-row-count.js → esm2020/input/tags-input/with-max-row-count.mjs} +0 -0
- package/{esm2015/input/utils/index.js → esm2020/input/utils/index.mjs} +0 -0
- package/esm2020/message/base-message.mjs +90 -0
- package/{esm2015/message/message-animations.js → esm2020/message/message-animations.mjs} +0 -0
- package/esm2020/message/message-wrapper.component.mjs +14 -0
- package/esm2020/message/message.component.mjs +70 -0
- package/{esm2015/message/message.config.js → esm2020/message/message.config.mjs} +0 -0
- package/esm2020/message/message.module.mjs +23 -0
- package/esm2020/message/message.service.mjs +26 -0
- package/{esm2015/message/public-api.js → esm2020/message/public-api.mjs} +0 -0
- package/esm2020/notification/notification-wrapper.component.mjs +16 -0
- package/esm2020/notification/notification.component.mjs +107 -0
- package/{esm2015/notification/notification.config.js → esm2020/notification/notification.config.mjs} +0 -0
- package/esm2020/notification/notification.module.mjs +24 -0
- package/esm2020/notification/notification.service.mjs +26 -0
- package/{esm2015/notification/public-api.js → esm2020/notification/public-api.mjs} +0 -0
- package/esm2020/paginator/paginator-intl.mjs +36 -0
- package/esm2020/paginator/paginator.component.mjs +125 -0
- package/esm2020/paginator/paginator.module.mjs +24 -0
- package/{esm2015/paginator/public-api.js → esm2020/paginator/public-api.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/esm2020/radio/base-radio.mjs +69 -0
- package/{esm2015/radio/public-api.js → esm2020/radio/public-api.mjs} +0 -0
- package/esm2020/radio/radio-button/radio-button.component.mjs +42 -0
- package/esm2020/radio/radio-group/radio-group.component.mjs +80 -0
- package/esm2020/radio/radio.component.mjs +24 -0
- package/esm2020/radio/radio.module.mjs +21 -0
- package/{esm2015/radio/radio.types.js → esm2020/radio/radio.types.mjs} +0 -0
- package/esm2020/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +84 -0
- package/esm2020/scrolling/fixed-size-table-virtual-scroll.directive.mjs +122 -0
- package/esm2020/scrolling/fixed-size-virtual-scroll.directive.mjs +28 -0
- package/esm2020/scrolling/public-api.mjs +7 -0
- package/esm2020/scrolling/scrolling.module.mjs +30 -0
- package/esm2020/scrolling/virtual-for-of.directive.mjs +36 -0
- package/esm2020/scrolling/virtual-scroll-viewport.component.mjs +26 -0
- package/esm2020/select/base-select.mjs +339 -0
- package/esm2020/select/helper-directives.mjs +29 -0
- package/esm2020/select/multi-select/multi-select.component.mjs +292 -0
- package/esm2020/select/option/option.component.mjs +110 -0
- package/esm2020/select/option-group/option-group.component.mjs +23 -0
- package/esm2020/select/option-placeholder.component.mjs +17 -0
- package/{esm2015/select/public-api.js → esm2020/select/public-api.mjs} +0 -0
- package/esm2020/select/select.component.mjs +107 -0
- package/esm2020/select/select.module.mjs +80 -0
- package/{esm2015/select/select.types.js → esm2020/select/select.types.mjs} +0 -0
- package/esm2020/select/validators.mjs +79 -0
- package/esm2020/shared/click-outside.directive.mjs +28 -0
- package/esm2020/shared/shared.module.mjs +16 -0
- package/{esm2015/sort/public-api.js → esm2020/sort/public-api.mjs} +0 -0
- package/{esm2015/sort/sort-errors.js → esm2020/sort/sort-errors.mjs} +0 -0
- package/esm2020/sort/sort-header.component.mjs +72 -0
- package/esm2020/sort/sort.directive.mjs +75 -0
- package/esm2020/sort/sort.module.mjs +19 -0
- package/{esm2015/sort/sort.types.js → esm2020/sort/sort.types.mjs} +0 -0
- package/{esm2015/status-bar/public-api.js → esm2020/status-bar/public-api.mjs} +0 -0
- package/esm2020/status-bar/status-bar.component.mjs +29 -0
- package/esm2020/status-bar/status-bar.module.mjs +19 -0
- package/{esm2015/status-bar/status-bar.types.js → esm2020/status-bar/status-bar.types.mjs} +0 -0
- package/{esm2015/steps/public-api.js → esm2020/steps/public-api.mjs} +0 -0
- package/esm2020/steps/steps.component.mjs +183 -0
- package/esm2020/steps/steps.module.mjs +19 -0
- package/{esm2015/steps/types.js → esm2020/steps/types.mjs} +0 -0
- package/{esm2015/switch/public-api.js → esm2020/switch/public-api.mjs} +0 -0
- package/esm2020/switch/switch.component.mjs +49 -0
- package/esm2020/switch/switch.module.mjs +18 -0
- package/esm2020/table/public-api.mjs +15 -0
- package/esm2020/table/table-cell-def.directive.mjs +29 -0
- package/esm2020/table/table-cell.component.mjs +121 -0
- package/esm2020/table/table-cell.directive.mjs +27 -0
- package/esm2020/table/table-column-def.directive.mjs +37 -0
- package/esm2020/table/table-header-cell-def.directive.mjs +29 -0
- package/esm2020/table/table-header-cell.directive.mjs +27 -0
- package/esm2020/table/table-header-row-def.directive.mjs +39 -0
- package/esm2020/table/table-header-row.component.mjs +25 -0
- package/esm2020/table/table-placeholder.directive.mjs +30 -0
- package/esm2020/table/table-row-def.directive.mjs +42 -0
- package/esm2020/table/table-row.component.mjs +43 -0
- package/esm2020/table/table-scroll.directive.mjs +91 -0
- package/esm2020/table/table.component.mjs +81 -0
- package/esm2020/table/table.module.mjs +96 -0
- package/{esm2015/table-of-contents/public-api.js → esm2020/table-of-contents/public-api.mjs} +0 -0
- package/esm2020/table-of-contents/table-of-contents.module.mjs +20 -0
- package/esm2020/table-of-contents/toc-container.directive.mjs +110 -0
- package/esm2020/table-of-contents/toc-content.directive.mjs +35 -0
- package/esm2020/table-of-contents/toc-link.directive.mjs +47 -0
- package/esm2020/tabs/public-api.mjs +9 -0
- package/esm2020/tabs/tab-body.component.mjs +165 -0
- package/esm2020/tabs/tab-context.service.mjs +32 -0
- package/esm2020/tabs/tab-group.component.mjs +291 -0
- package/esm2020/tabs/tab-header-active-indicator.component.mjs +53 -0
- package/esm2020/tabs/tab-header.component.mjs +365 -0
- package/esm2020/tabs/tab.component.mjs +85 -0
- package/esm2020/tabs/tabs.module.mjs +88 -0
- package/{esm2015/tabs/tabs.types.js → esm2020/tabs/tabs.types.mjs} +0 -0
- package/esm2020/tag/check-tag/check-tag.component.mjs +33 -0
- package/{esm2015/tag/public-api.js → esm2020/tag/public-api.mjs} +0 -0
- package/esm2020/tag/tag.component.mjs +64 -0
- package/esm2020/tag/tag.module.mjs +20 -0
- package/{esm2015/tag/tag.types.js → esm2020/tag/tag.types.mjs} +0 -0
- package/{esm2015/theme/public-api.js → esm2020/theme/public-api.mjs} +0 -0
- package/esm2020/theme/theme.module.mjs +18 -0
- package/esm2020/theme/theme.pipe.mjs +70 -0
- package/esm2020/theme/theme.service.mjs +53 -0
- package/{esm2015/theme/theme.types.js → esm2020/theme/theme.types.mjs} +0 -0
- package/{esm2015/theme/utils.js → esm2020/theme/utils.mjs} +0 -0
- package/esm2020/time-picker/component.mjs +173 -0
- package/esm2020/time-picker/constant.mjs +5 -0
- package/esm2020/time-picker/panel/panel.component.mjs +224 -0
- package/{esm2015/time-picker/public-api.js → esm2020/time-picker/public-api.mjs} +0 -0
- package/esm2020/time-picker/time-picker.module.mjs +58 -0
- package/esm2020/time-picker/time-picker.type.mjs +13 -0
- package/esm2020/tooltip/base-tooltip.mjs +244 -0
- package/esm2020/tooltip/public-api.mjs +9 -0
- package/esm2020/tooltip/tooltip-active.directive.mjs +44 -0
- package/esm2020/tooltip/tooltip-copy.directive.mjs +78 -0
- package/esm2020/tooltip/tooltip-intl.mjs +28 -0
- package/esm2020/tooltip/tooltip.component.mjs +49 -0
- package/esm2020/tooltip/tooltip.directive.mjs +51 -0
- package/esm2020/tooltip/tooltip.module.mjs +33 -0
- package/{esm2015/tooltip/tooltip.types.js → esm2020/tooltip/tooltip.types.mjs} +0 -0
- package/{esm2015/tooltip/utils/index.js → esm2020/tooltip/utils/index.mjs} +0 -0
- package/esm2020/tree-select/public-api.mjs +5 -0
- package/esm2020/tree-select/tree-node-placeholder.component.mjs +17 -0
- package/esm2020/tree-select/tree-select.component.mjs +343 -0
- package/esm2020/tree-select/tree-select.module.mjs +34 -0
- package/{esm2015/tree-select/tree-select.types.js → esm2020/tree-select/tree-select.types.mjs} +0 -0
- package/{esm2015/types.js → esm2020/types.mjs} +0 -0
- package/{esm2015/utils/async.js → esm2020/utils/async.mjs} +0 -0
- package/{esm2015/utils/bem.js → esm2020/utils/bem.mjs} +0 -0
- package/esm2020/utils/coercion.mjs +17 -0
- package/esm2020/utils/fn.mjs +8 -0
- package/{esm2015/utils/index.js → esm2020/utils/index.mjs} +0 -0
- package/{esm2015/utils/observe-dom.js → esm2020/utils/observe-dom.mjs} +0 -0
- package/{esm2015/utils/scroll-into-view.js → esm2020/utils/scroll-into-view.mjs} +0 -0
- package/{esm2015/utils/watch-content-exist.js → esm2020/utils/watch-content-exist.mjs} +0 -0
- package/fesm2015/alauda-ui.mjs +11581 -0
- package/fesm2015/alauda-ui.mjs.map +1 -0
- package/fesm2020/alauda-ui.mjs +11507 -0
- package/fesm2020/alauda-ui.mjs.map +1 -0
- package/form/common-form.d.ts +3 -0
- package/form/form-item/form-item.component.d.ts +3 -0
- package/form/form.directive.d.ts +3 -0
- package/form/form.module.d.ts +8 -0
- package/form/helper-directives.d.ts +11 -0
- package/i18n/i18n.module.d.ts +5 -0
- package/i18n/i18n.pipe.d.ts +3 -0
- package/i18n/i18n.service.d.ts +5 -1
- package/icon/icon-register.service.d.ts +3 -0
- package/icon/icon.component.d.ts +3 -0
- package/icon/icon.module.d.ts +7 -0
- package/inline-alert/helper-directives.d.ts +3 -0
- package/inline-alert/inline-alert.component.d.ts +3 -0
- package/inline-alert/inline-alert.module.d.ts +8 -0
- package/input/autosize.directive.d.ts +3 -0
- package/input/helper-directives.d.ts +9 -0
- package/input/input-group/input-group.component.d.ts +3 -0
- package/input/input.component.d.ts +7 -21
- package/input/input.module.d.ts +17 -0
- package/input/number-input/number-input.component.d.ts +3 -0
- package/input/public-api.d.ts +2 -0
- package/input/search/search.component.d.ts +3 -0
- package/input/tags-input/tags-input.component.d.ts +5 -2
- package/message/message-wrapper.component.d.ts +3 -0
- package/message/message.component.d.ts +3 -0
- package/message/message.module.d.ts +9 -0
- package/message/message.service.d.ts +3 -0
- package/notification/notification-wrapper.component.d.ts +3 -0
- package/notification/notification.component.d.ts +5 -3
- package/notification/notification.module.d.ts +10 -0
- package/notification/notification.service.d.ts +3 -0
- package/package.json +28 -16
- package/paginator/paginator-intl.d.ts +3 -0
- package/paginator/paginator.component.d.ts +3 -0
- package/paginator/paginator.module.d.ts +10 -0
- package/radio/base-radio.d.ts +3 -0
- package/radio/radio-button/radio-button.component.d.ts +3 -0
- package/radio/radio-group/radio-group.component.d.ts +3 -0
- package/radio/radio.component.d.ts +3 -0
- package/radio/radio.module.d.ts +9 -0
- package/scrolling/fixed-size-table-virtual-scroll-strategy.d.ts +3 -0
- package/scrolling/fixed-size-table-virtual-scroll.directive.d.ts +3 -0
- package/scrolling/fixed-size-virtual-scroll.directive.d.ts +3 -0
- package/scrolling/public-api.d.ts +1 -0
- package/scrolling/scrolling.module.d.ts +8 -0
- package/scrolling/virtual-for-of.directive.d.ts +3 -0
- package/scrolling/virtual-scroll-viewport.component.d.ts +3 -0
- package/select/base-select.d.ts +10 -29
- package/select/helper-directives.d.ts +5 -0
- package/select/multi-select/multi-select.component.d.ts +4 -0
- package/select/option/option.component.d.ts +3 -0
- package/select/option-group/option-group.component.d.ts +3 -0
- package/select/option-placeholder.component.d.ts +3 -0
- package/select/select.component.d.ts +3 -0
- package/select/select.module.d.ts +17 -0
- package/select/validators.d.ts +3 -0
- package/shared/click-outside.directive.d.ts +3 -0
- package/shared/shared.module.d.ts +5 -0
- package/sort/sort-header.component.d.ts +3 -0
- package/sort/sort.directive.d.ts +3 -0
- package/sort/sort.module.d.ts +7 -0
- package/src/accordion/README.md +13 -0
- package/src/anchor/README.md +23 -0
- package/src/dropdown/README.md +57 -0
- package/src/form/README.md +32 -0
- package/src/icon/README.md +28 -0
- package/src/inline-alert/README.md +16 -0
- package/src/input/number-input/README.md +15 -0
- package/src/select/README.md +57 -0
- package/src/sort/README.md +13 -0
- package/src/table/README.md +8 -0
- package/src/table-of-contents/README.md +79 -0
- package/src/tag/README.md +32 -0
- package/src/tree-select/README.md +34 -0
- package/status-bar/status-bar.component.d.ts +3 -0
- package/status-bar/status-bar.module.d.ts +7 -0
- package/steps/steps.component.d.ts +4 -1
- package/steps/steps.module.d.ts +7 -0
- package/switch/switch.component.d.ts +3 -0
- package/switch/switch.module.d.ts +6 -0
- package/table/public-api.d.ts +2 -0
- package/table/table-cell-def.directive.d.ts +3 -0
- package/table/table-cell.component.d.ts +5 -0
- package/table/table-cell.directive.d.ts +3 -0
- package/table/table-column-def.directive.d.ts +3 -0
- package/table/table-header-cell-def.directive.d.ts +3 -0
- package/table/table-header-cell.directive.d.ts +3 -0
- package/table/table-header-row-def.directive.d.ts +4 -1
- package/table/table-header-row.component.d.ts +3 -0
- package/table/table-placeholder.directive.d.ts +5 -0
- package/table/table-row-def.directive.d.ts +5 -2
- package/table/table-row.component.d.ts +3 -0
- package/table/table-scroll.directive.d.ts +5 -0
- package/table/table.component.d.ts +3 -0
- package/table/table.module.d.ts +20 -0
- package/table-of-contents/table-of-contents.module.d.ts +8 -0
- package/table-of-contents/toc-container.directive.d.ts +3 -0
- package/table-of-contents/toc-content.directive.d.ts +3 -0
- package/table-of-contents/toc-link.directive.d.ts +3 -0
- package/tabs/public-api.d.ts +0 -1
- package/tabs/tab-body.component.d.ts +61 -2
- package/tabs/tab-context.service.d.ts +4 -1
- package/tabs/tab-group.component.d.ts +7 -12
- package/tabs/tab-header-active-indicator.component.d.ts +3 -0
- package/tabs/tab-header.component.d.ts +4 -1
- package/tabs/tab.component.d.ts +4 -1
- package/tabs/tabs.module.d.ts +16 -0
- package/tag/check-tag/check-tag.component.d.ts +3 -0
- package/tag/tag.component.d.ts +3 -0
- package/tag/tag.module.d.ts +8 -0
- package/theme/_var.scss +7 -10
- package/theme/style.css +2 -2
- package/theme/theme.module.d.ts +6 -0
- package/theme/theme.pipe.d.ts +9 -0
- package/theme/theme.service.d.ts +3 -0
- package/time-picker/component.d.ts +3 -0
- package/time-picker/panel/panel.component.d.ts +3 -0
- package/time-picker/time-picker.module.d.ts +15 -0
- package/tooltip/base-tooltip.d.ts +3 -0
- package/tooltip/public-api.d.ts +1 -0
- package/tooltip/tooltip-active.directive.d.ts +3 -0
- package/tooltip/tooltip-copy.directive.d.ts +3 -0
- package/tooltip/tooltip-intl.d.ts +3 -0
- package/tooltip/tooltip.component.d.ts +3 -0
- package/tooltip/tooltip.directive.d.ts +3 -0
- package/tooltip/tooltip.module.d.ts +10 -0
- package/tree-select/public-api.d.ts +0 -1
- package/tree-select/tree-node-placeholder.component.d.ts +3 -0
- package/tree-select/tree-select.component.d.ts +37 -3
- package/tree-select/tree-select.module.d.ts +10 -0
- package/utils/coercion.d.ts +1 -1
- package/utils/fn.d.ts +1 -1
- package/utils/observe-dom.d.ts +0 -1
- package/accordion/accordion-item/accordion-item.component.ngfactory.d.ts +0 -1
- package/accordion/accordion-item/accordion-item.component.scss.ngstyle.d.ts +0 -1
- package/accordion/accordion.component.ngfactory.d.ts +0 -1
- package/accordion/accordion.component.scss.ngstyle.d.ts +0 -1
- package/accordion/accordion.module.ngfactory.d.ts +0 -3
- package/alauda-ui.metadata.json +0 -1
- package/anchor/anchor.component.ngfactory.d.ts +0 -1
- package/anchor/anchor.component.scss.ngstyle.d.ts +0 -1
- package/anchor/anchor.module.ngfactory.d.ts +0 -3
- package/autocomplete/autocomplete-placeholder.component.ngfactory.d.ts +0 -1
- package/autocomplete/autocomplete.component.ngfactory.d.ts +0 -1
- package/autocomplete/autocomplete.component.scss.ngstyle.d.ts +0 -1
- package/autocomplete/autocomplete.module.ngfactory.d.ts +0 -3
- package/autocomplete/suggestion/suggestion.component.ngfactory.d.ts +0 -1
- package/autocomplete/suggestion/suggestion.component.scss.ngstyle.d.ts +0 -1
- package/autocomplete/suggestion-group/suggestion-group.component.ngfactory.d.ts +0 -1
- package/autocomplete/suggestion-group/suggestion-group.component.scss.ngstyle.d.ts +0 -1
- package/back-top/back-top.component.ngfactory.d.ts +0 -1
- package/back-top/back-top.component.scss.ngstyle.d.ts +0 -1
- package/back-top/back-top.module.ngfactory.d.ts +0 -3
- package/breadcrumb/breadcrumb-item.component.ngfactory.d.ts +0 -1
- package/breadcrumb/breadcrumb-item.component.scss.ngstyle.d.ts +0 -1
- package/breadcrumb/breadcrumb.component.ngfactory.d.ts +0 -1
- package/breadcrumb/breadcrumb.component.scss.ngstyle.d.ts +0 -1
- package/breadcrumb/breadcrumb.module.ngfactory.d.ts +0 -3
- package/bundles/alauda-ui.umd.js +0 -12812
- package/bundles/alauda-ui.umd.js.map +0 -1
- package/bundles/alauda-ui.umd.min.js +0 -2
- package/bundles/alauda-ui.umd.min.js.map +0 -1
- package/button/button-group/button-group.component.ngfactory.d.ts +0 -1
- package/button/button-group/button-group.component.scss.ngstyle.d.ts +0 -1
- package/button/button.component.ngfactory.d.ts +0 -1
- package/button/button.component.scss.ngstyle.d.ts +0 -1
- package/button/button.module.ngfactory.d.ts +0 -3
- package/card/card.component.ngfactory.d.ts +0 -1
- package/card/card.component.scss.ngstyle.d.ts +0 -1
- package/card/card.module.ngfactory.d.ts +0 -3
- package/card/section.component.ngfactory.d.ts +0 -1
- package/card/section.component.scss.ngstyle.d.ts +0 -1
- package/checkbox/checkbox-group/checkbox-group.component.ngfactory.d.ts +0 -1
- package/checkbox/checkbox-group/checkbox-group.component.scss.ngstyle.d.ts +0 -1
- package/checkbox/checkbox.component.ngfactory.d.ts +0 -1
- package/checkbox/checkbox.component.scss.ngstyle.d.ts +0 -1
- package/checkbox/checkbox.module.ngfactory.d.ts +0 -3
- package/color-picker/color-picker.component.ngfactory.d.ts +0 -1
- package/color-picker/color-picker.component.scss.ngstyle.d.ts +0 -1
- package/color-picker/color-picker.module.ngfactory.d.ts +0 -3
- package/date-picker/calendar/date-picker-panel/component.ngfactory.d.ts +0 -1
- package/date-picker/calendar/date-picker-panel/style.scss.ngstyle.d.ts +0 -1
- package/date-picker/calendar/footer/component.ngfactory.d.ts +0 -1
- package/date-picker/calendar/footer/style.scss.ngstyle.d.ts +0 -1
- package/date-picker/calendar/header/component.ngfactory.d.ts +0 -1
- package/date-picker/calendar/header/style.scss.ngstyle.d.ts +0 -1
- package/date-picker/calendar/panel/picker-panel.ngfactory.d.ts +0 -1
- package/date-picker/calendar/panel/picker-panel.style.scss.ngstyle.d.ts +0 -1
- package/date-picker/calendar/range-picker-panel/component.ngfactory.d.ts +0 -1
- package/date-picker/calendar/range-picker-panel/style.scss.ngstyle.d.ts +0 -1
- package/date-picker/date-picker/date-picker.component.ngfactory.d.ts +0 -1
- package/date-picker/date-picker/date-picker.style.scss.shim.ngstyle.d.ts +0 -1
- package/date-picker/date-picker.module.ngfactory.d.ts +0 -3
- package/date-picker/range-picker/range-picker.component.ngfactory.d.ts +0 -1
- package/date-picker/range-picker/range-picker.style.scss.shim.ngstyle.d.ts +0 -1
- package/date-picker/trigger/trigger.component.ngfactory.d.ts +0 -1
- package/date-picker/trigger/trigger.style.scss.shim.ngstyle.d.ts +0 -1
- package/dialog/confirm-dialog/confirm-dialog.component.ngfactory.d.ts +0 -1
- package/dialog/confirm-dialog/confirm-dialog.component.scss.ngstyle.d.ts +0 -1
- package/dialog/dialog-content/dialog-content.component.ngfactory.d.ts +0 -1
- package/dialog/dialog-content/dialog-footer.component.ngfactory.d.ts +0 -1
- package/dialog/dialog-content/dialog-header.component.ngfactory.d.ts +0 -1
- package/dialog/dialog.component.ngfactory.d.ts +0 -1
- package/dialog/dialog.component.scss.ngstyle.d.ts +0 -1
- package/dialog/dialog.module.ngfactory.d.ts +0 -3
- package/drawer/component/drawer.component.ngfactory.d.ts +0 -1
- package/drawer/component/drawer.component.scss.ngstyle.d.ts +0 -1
- package/drawer/drawer.module.ngfactory.d.ts +0 -3
- package/dropdown/dropdown-button/dropdown-button.component.ngfactory.d.ts +0 -1
- package/dropdown/dropdown-button/dropdown-button.component.scss.ngstyle.d.ts +0 -1
- package/dropdown/dropdown.module.ngfactory.d.ts +0 -3
- package/dropdown/menu/menu.component.ngfactory.d.ts +0 -1
- package/dropdown/menu/menu.component.scss.ngstyle.d.ts +0 -1
- package/dropdown/menu-group/menu-group.component.ngfactory.d.ts +0 -1
- package/dropdown/menu-group/menu-group.component.scss.ngstyle.d.ts +0 -1
- package/dropdown/menu-item/menu-item.component.ngfactory.d.ts +0 -1
- package/dropdown/menu-item/menu-item.component.scss.ngstyle.d.ts +0 -1
- package/dropdown/submenu/submenu.component.ngfactory.d.ts +0 -1
- package/dropdown/submenu/submenu.component.scss.ngstyle.d.ts +0 -1
- package/esm2015/accordion/accordion-item/accordion-item.component.js +0 -68
- package/esm2015/accordion/accordion-item/accordion-item.component.ngfactory.js +0 -28
- package/esm2015/accordion/accordion-item/accordion-item.component.ngsummary.json +0 -1
- package/esm2015/accordion/accordion-item/accordion-item.component.scss.ngstyle.js +0 -9
- package/esm2015/accordion/accordion.component.js +0 -28
- package/esm2015/accordion/accordion.component.ngfactory.js +0 -17
- package/esm2015/accordion/accordion.component.ngsummary.json +0 -1
- package/esm2015/accordion/accordion.component.scss.ngstyle.js +0 -9
- package/esm2015/accordion/accordion.module.js +0 -28
- package/esm2015/accordion/accordion.module.ngfactory.js +0 -18
- package/esm2015/accordion/accordion.module.ngsummary.json +0 -1
- package/esm2015/accordion/public-api.ngsummary.json +0 -1
- package/esm2015/alauda-ui.js +0 -25
- package/esm2015/alauda-ui.ngsummary.json +0 -1
- package/esm2015/anchor/anchor.component.js +0 -146
- package/esm2015/anchor/anchor.component.ngfactory.js +0 -40
- package/esm2015/anchor/anchor.component.ngsummary.json +0 -1
- package/esm2015/anchor/anchor.component.scss.ngstyle.js +0 -9
- package/esm2015/anchor/anchor.directive.js +0 -174
- package/esm2015/anchor/anchor.directive.ngsummary.json +0 -1
- package/esm2015/anchor/anchor.module.js +0 -25
- package/esm2015/anchor/anchor.module.ngfactory.js +0 -13
- package/esm2015/anchor/anchor.module.ngsummary.json +0 -1
- package/esm2015/anchor/public-api.ngsummary.json +0 -1
- package/esm2015/anchor/types.ngsummary.json +0 -1
- package/esm2015/anchor/utils.ngsummary.json +0 -1
- package/esm2015/autocomplete/autocomplete-placeholder.component.js +0 -13
- package/esm2015/autocomplete/autocomplete-placeholder.component.ngfactory.js +0 -16
- package/esm2015/autocomplete/autocomplete-placeholder.component.ngsummary.json +0 -1
- package/esm2015/autocomplete/autocomplete.component.js +0 -40
- package/esm2015/autocomplete/autocomplete.component.ngfactory.js +0 -22
- package/esm2015/autocomplete/autocomplete.component.ngsummary.json +0 -1
- package/esm2015/autocomplete/autocomplete.component.scss.ngstyle.js +0 -9
- package/esm2015/autocomplete/autocomplete.directive.js +0 -253
- package/esm2015/autocomplete/autocomplete.directive.ngsummary.json +0 -1
- package/esm2015/autocomplete/autocomplete.module.js +0 -36
- package/esm2015/autocomplete/autocomplete.module.ngfactory.js +0 -20
- package/esm2015/autocomplete/autocomplete.module.ngsummary.json +0 -1
- package/esm2015/autocomplete/autocomplete.types.ngsummary.json +0 -1
- package/esm2015/autocomplete/helper-directives.js +0 -13
- package/esm2015/autocomplete/helper-directives.ngsummary.json +0 -1
- package/esm2015/autocomplete/public-api.ngsummary.json +0 -1
- package/esm2015/autocomplete/suggestion/suggestion.component.js +0 -79
- package/esm2015/autocomplete/suggestion/suggestion.component.ngfactory.js +0 -22
- package/esm2015/autocomplete/suggestion/suggestion.component.ngsummary.json +0 -1
- package/esm2015/autocomplete/suggestion/suggestion.component.scss.ngstyle.js +0 -9
- package/esm2015/autocomplete/suggestion-group/suggestion-group.component.js +0 -25
- package/esm2015/autocomplete/suggestion-group/suggestion-group.component.ngfactory.js +0 -18
- package/esm2015/autocomplete/suggestion-group/suggestion-group.component.ngsummary.json +0 -1
- package/esm2015/autocomplete/suggestion-group/suggestion-group.component.scss.ngstyle.js +0 -9
- package/esm2015/back-top/back-top.component.js +0 -75
- package/esm2015/back-top/back-top.component.ngfactory.js +0 -25
- package/esm2015/back-top/back-top.component.ngsummary.json +0 -1
- package/esm2015/back-top/back-top.component.scss.ngstyle.js +0 -9
- package/esm2015/back-top/back-top.module.js +0 -14
- package/esm2015/back-top/back-top.module.ngfactory.js +0 -16
- package/esm2015/back-top/back-top.module.ngsummary.json +0 -1
- package/esm2015/back-top/public-api.ngsummary.json +0 -1
- package/esm2015/breadcrumb/breadcrumb-item.component.js +0 -36
- package/esm2015/breadcrumb/breadcrumb-item.component.ngfactory.js +0 -23
- package/esm2015/breadcrumb/breadcrumb-item.component.ngsummary.json +0 -1
- package/esm2015/breadcrumb/breadcrumb-item.component.scss.ngstyle.js +0 -9
- package/esm2015/breadcrumb/breadcrumb.component.js +0 -58
- package/esm2015/breadcrumb/breadcrumb.component.ngfactory.js +0 -17
- package/esm2015/breadcrumb/breadcrumb.component.ngsummary.json +0 -1
- package/esm2015/breadcrumb/breadcrumb.component.scss.ngstyle.js +0 -9
- package/esm2015/breadcrumb/breadcrumb.module.js +0 -15
- package/esm2015/breadcrumb/breadcrumb.module.ngfactory.js +0 -16
- package/esm2015/breadcrumb/breadcrumb.module.ngsummary.json +0 -1
- package/esm2015/breadcrumb/public-api.ngsummary.json +0 -1
- package/esm2015/button/button-group/button-group.component.js +0 -14
- package/esm2015/button/button-group/button-group.component.ngfactory.js +0 -17
- package/esm2015/button/button-group/button-group.component.ngsummary.json +0 -1
- package/esm2015/button/button-group/button-group.component.scss.ngstyle.js +0 -9
- package/esm2015/button/button.component.js +0 -124
- package/esm2015/button/button.component.ngfactory.js +0 -23
- package/esm2015/button/button.component.ngsummary.json +0 -1
- package/esm2015/button/button.component.scss.ngstyle.js +0 -9
- package/esm2015/button/button.module.js +0 -15
- package/esm2015/button/button.module.ngfactory.js +0 -16
- package/esm2015/button/button.module.ngsummary.json +0 -1
- package/esm2015/button/button.types.ngsummary.json +0 -1
- package/esm2015/button/public-api.ngsummary.json +0 -1
- package/esm2015/card/card.component.js +0 -20
- package/esm2015/card/card.component.ngfactory.js +0 -17
- package/esm2015/card/card.component.ngsummary.json +0 -1
- package/esm2015/card/card.component.scss.ngstyle.js +0 -9
- package/esm2015/card/card.module.js +0 -27
- package/esm2015/card/card.module.ngfactory.js +0 -12
- package/esm2015/card/card.module.ngsummary.json +0 -1
- package/esm2015/card/helper-directives.js +0 -33
- package/esm2015/card/helper-directives.ngsummary.json +0 -1
- package/esm2015/card/public-api.ngsummary.json +0 -1
- package/esm2015/card/section.component.js +0 -14
- package/esm2015/card/section.component.ngfactory.js +0 -17
- package/esm2015/card/section.component.ngsummary.json +0 -1
- package/esm2015/card/section.component.scss.ngstyle.js +0 -9
- package/esm2015/checkbox/checkbox-group/checkbox-group.component.js +0 -60
- package/esm2015/checkbox/checkbox-group/checkbox-group.component.ngfactory.js +0 -18
- package/esm2015/checkbox/checkbox-group/checkbox-group.component.ngsummary.json +0 -1
- package/esm2015/checkbox/checkbox-group/checkbox-group.component.scss.ngstyle.js +0 -9
- package/esm2015/checkbox/checkbox.component.js +0 -105
- package/esm2015/checkbox/checkbox.component.ngfactory.js +0 -30
- package/esm2015/checkbox/checkbox.component.ngsummary.json +0 -1
- package/esm2015/checkbox/checkbox.component.scss.ngstyle.js +0 -9
- package/esm2015/checkbox/checkbox.module.js +0 -15
- package/esm2015/checkbox/checkbox.module.ngfactory.js +0 -16
- package/esm2015/checkbox/checkbox.module.ngsummary.json +0 -1
- package/esm2015/checkbox/public-api.ngsummary.json +0 -1
- package/esm2015/color-picker/color-picker.component.js +0 -29
- package/esm2015/color-picker/color-picker.component.ngfactory.js +0 -22
- package/esm2015/color-picker/color-picker.component.ngsummary.json +0 -1
- package/esm2015/color-picker/color-picker.component.scss.ngstyle.js +0 -9
- package/esm2015/color-picker/color-picker.module.js +0 -14
- package/esm2015/color-picker/color-picker.module.ngfactory.js +0 -13
- package/esm2015/color-picker/color-picker.module.ngsummary.json +0 -1
- package/esm2015/color-picker/public-api.ngsummary.json +0 -1
- package/esm2015/date-picker/calendar/constant.ngsummary.json +0 -1
- package/esm2015/date-picker/calendar/date-picker-panel/component.js +0 -106
- package/esm2015/date-picker/calendar/date-picker-panel/component.ngfactory.js +0 -65
- package/esm2015/date-picker/calendar/date-picker-panel/component.ngsummary.json +0 -1
- package/esm2015/date-picker/calendar/date-picker-panel/style.scss.ngstyle.js +0 -9
- package/esm2015/date-picker/calendar/footer/component.js +0 -25
- package/esm2015/date-picker/calendar/footer/component.ngfactory.js +0 -32
- package/esm2015/date-picker/calendar/footer/component.ngsummary.json +0 -1
- package/esm2015/date-picker/calendar/footer/style.scss.ngstyle.js +0 -9
- package/esm2015/date-picker/calendar/header/component.js +0 -100
- package/esm2015/date-picker/calendar/header/component.ngfactory.js +0 -58
- package/esm2015/date-picker/calendar/header/component.ngsummary.json +0 -1
- package/esm2015/date-picker/calendar/header/style.scss.ngstyle.js +0 -9
- package/esm2015/date-picker/calendar/panel/picker-panel.js +0 -144
- package/esm2015/date-picker/calendar/panel/picker-panel.ngfactory.js +0 -34
- package/esm2015/date-picker/calendar/panel/picker-panel.ngsummary.json +0 -1
- package/esm2015/date-picker/calendar/panel/picker-panel.style.scss.ngstyle.js +0 -9
- package/esm2015/date-picker/calendar/range-picker-panel/component.js +0 -193
- package/esm2015/date-picker/calendar/range-picker-panel/component.ngfactory.js +0 -76
- package/esm2015/date-picker/calendar/range-picker-panel/component.ngsummary.json +0 -1
- package/esm2015/date-picker/calendar/range-picker-panel/style.scss.ngstyle.js +0 -9
- package/esm2015/date-picker/calendar/util.ngsummary.json +0 -1
- package/esm2015/date-picker/date-picker/date-picker.component.js +0 -84
- package/esm2015/date-picker/date-picker/date-picker.component.ngfactory.js +0 -49
- package/esm2015/date-picker/date-picker/date-picker.component.ngsummary.json +0 -1
- package/esm2015/date-picker/date-picker/date-picker.style.scss.shim.ngstyle.js +0 -9
- package/esm2015/date-picker/date-picker.module.js +0 -47
- package/esm2015/date-picker/date-picker.module.ngfactory.js +0 -31
- package/esm2015/date-picker/date-picker.module.ngsummary.json +0 -1
- package/esm2015/date-picker/date-picker.type.ngsummary.json +0 -1
- package/esm2015/date-picker/public-api.js +0 -11
- package/esm2015/date-picker/public-api.ngsummary.json +0 -1
- package/esm2015/date-picker/range-picker/range-picker.component.js +0 -66
- package/esm2015/date-picker/range-picker/range-picker.component.ngfactory.js +0 -49
- package/esm2015/date-picker/range-picker/range-picker.component.ngsummary.json +0 -1
- package/esm2015/date-picker/range-picker/range-picker.style.scss.shim.ngstyle.js +0 -9
- package/esm2015/date-picker/trigger/trigger.component.js +0 -61
- package/esm2015/date-picker/trigger/trigger.component.ngfactory.js +0 -66
- package/esm2015/date-picker/trigger/trigger.component.ngsummary.json +0 -1
- package/esm2015/date-picker/trigger/trigger.style.scss.shim.ngstyle.js +0 -9
- package/esm2015/dialog/confirm-dialog/confirm-dialog-config.ngsummary.json +0 -1
- package/esm2015/dialog/confirm-dialog/confirm-dialog.component.js +0 -95
- package/esm2015/dialog/confirm-dialog/confirm-dialog.component.ngfactory.js +0 -32
- package/esm2015/dialog/confirm-dialog/confirm-dialog.component.ngsummary.json +0 -1
- package/esm2015/dialog/confirm-dialog/confirm-dialog.component.scss.ngstyle.js +0 -9
- package/esm2015/dialog/dialog-config.ngsummary.json +0 -1
- package/esm2015/dialog/dialog-content/dialog-close.directive.js +0 -35
- package/esm2015/dialog/dialog-content/dialog-close.directive.ngsummary.json +0 -1
- package/esm2015/dialog/dialog-content/dialog-content.component.js +0 -27
- package/esm2015/dialog/dialog-content/dialog-content.component.ngfactory.js +0 -18
- package/esm2015/dialog/dialog-content/dialog-content.component.ngsummary.json +0 -1
- package/esm2015/dialog/dialog-content/dialog-footer.component.js +0 -17
- package/esm2015/dialog/dialog-content/dialog-footer.component.ngfactory.js +0 -16
- package/esm2015/dialog/dialog-content/dialog-footer.component.ngsummary.json +0 -1
- package/esm2015/dialog/dialog-content/dialog-header.component.js +0 -41
- package/esm2015/dialog/dialog-content/dialog-header.component.ngfactory.js +0 -26
- package/esm2015/dialog/dialog-content/dialog-header.component.ngsummary.json +0 -1
- package/esm2015/dialog/dialog-ref.ngsummary.json +0 -1
- package/esm2015/dialog/dialog.component.js +0 -64
- package/esm2015/dialog/dialog.component.ngfactory.js +0 -20
- package/esm2015/dialog/dialog.component.ngsummary.json +0 -1
- package/esm2015/dialog/dialog.component.scss.ngstyle.js +0 -9
- package/esm2015/dialog/dialog.module.js +0 -44
- package/esm2015/dialog/dialog.module.ngfactory.js +0 -25
- package/esm2015/dialog/dialog.module.ngsummary.json +0 -1
- package/esm2015/dialog/dialog.service.js +0 -132
- package/esm2015/dialog/dialog.service.ngsummary.json +0 -1
- package/esm2015/dialog/dialog.types.ngsummary.json +0 -1
- package/esm2015/dialog/public-api.js +0 -11
- package/esm2015/dialog/public-api.ngsummary.json +0 -1
- package/esm2015/dialog/utils/errors.ngsummary.json +0 -1
- package/esm2015/dialog/utils/index.js +0 -11
- package/esm2015/dialog/utils/index.ngsummary.json +0 -1
- package/esm2015/drawer/component/drawer-ref.ngsummary.json +0 -1
- package/esm2015/drawer/component/drawer.component.js +0 -210
- package/esm2015/drawer/component/drawer.component.ngfactory.js +0 -42
- package/esm2015/drawer/component/drawer.component.ngsummary.json +0 -1
- package/esm2015/drawer/component/drawer.component.scss.ngstyle.js +0 -9
- package/esm2015/drawer/component/helper-directives.js +0 -27
- package/esm2015/drawer/component/helper-directives.ngsummary.json +0 -1
- package/esm2015/drawer/drawer.module.js +0 -26
- package/esm2015/drawer/drawer.module.ngfactory.js +0 -23
- package/esm2015/drawer/drawer.module.ngsummary.json +0 -1
- package/esm2015/drawer/drawer.service.js +0 -46
- package/esm2015/drawer/drawer.service.ngsummary.json +0 -1
- package/esm2015/drawer/public-api.ngsummary.json +0 -1
- package/esm2015/dropdown/dropdown-active.directive.js +0 -13
- package/esm2015/dropdown/dropdown-active.directive.ngsummary.json +0 -1
- package/esm2015/dropdown/dropdown-button/dropdown-button.component.js +0 -46
- package/esm2015/dropdown/dropdown-button/dropdown-button.component.ngfactory.js +0 -29
- package/esm2015/dropdown/dropdown-button/dropdown-button.component.ngsummary.json +0 -1
- package/esm2015/dropdown/dropdown-button/dropdown-button.component.scss.ngstyle.js +0 -9
- package/esm2015/dropdown/dropdown.directive.js +0 -73
- package/esm2015/dropdown/dropdown.directive.ngsummary.json +0 -1
- package/esm2015/dropdown/dropdown.module.js +0 -44
- package/esm2015/dropdown/dropdown.module.ngfactory.js +0 -25
- package/esm2015/dropdown/dropdown.module.ngsummary.json +0 -1
- package/esm2015/dropdown/dropdown.types.ngsummary.json +0 -1
- package/esm2015/dropdown/helper-directives.js +0 -13
- package/esm2015/dropdown/helper-directives.ngsummary.json +0 -1
- package/esm2015/dropdown/menu/menu-content.directive.js +0 -54
- package/esm2015/dropdown/menu/menu-content.directive.ngsummary.json +0 -1
- package/esm2015/dropdown/menu/menu.component.js +0 -32
- package/esm2015/dropdown/menu/menu.component.ngfactory.js +0 -18
- package/esm2015/dropdown/menu/menu.component.ngsummary.json +0 -1
- package/esm2015/dropdown/menu/menu.component.scss.ngstyle.js +0 -9
- package/esm2015/dropdown/menu-group/menu-group.component.js +0 -14
- package/esm2015/dropdown/menu-group/menu-group.component.ngfactory.js +0 -17
- package/esm2015/dropdown/menu-group/menu-group.component.ngsummary.json +0 -1
- package/esm2015/dropdown/menu-group/menu-group.component.scss.ngstyle.js +0 -9
- package/esm2015/dropdown/menu-item/menu-item.component.js +0 -38
- package/esm2015/dropdown/menu-item/menu-item.component.ngfactory.js +0 -17
- package/esm2015/dropdown/menu-item/menu-item.component.ngsummary.json +0 -1
- package/esm2015/dropdown/menu-item/menu-item.component.scss.ngstyle.js +0 -9
- package/esm2015/dropdown/public-api.js +0 -11
- package/esm2015/dropdown/public-api.ngsummary.json +0 -1
- package/esm2015/dropdown/submenu/submenu.component.js +0 -37
- package/esm2015/dropdown/submenu/submenu.component.ngfactory.js +0 -29
- package/esm2015/dropdown/submenu/submenu.component.ngsummary.json +0 -1
- package/esm2015/dropdown/submenu/submenu.component.scss.ngstyle.js +0 -9
- package/esm2015/form/common-form.js +0 -89
- package/esm2015/form/common-form.ngsummary.json +0 -1
- package/esm2015/form/form-item/form-item.component.js +0 -93
- package/esm2015/form/form-item/form-item.component.ngfactory.js +0 -23
- package/esm2015/form/form-item/form-item.component.ngsummary.json +0 -1
- package/esm2015/form/form-item/form-item.component.scss.ngstyle.js +0 -9
- package/esm2015/form/form.directive.js +0 -58
- package/esm2015/form/form.directive.ngsummary.json +0 -1
- package/esm2015/form/form.module.js +0 -31
- package/esm2015/form/form.module.ngfactory.js +0 -12
- package/esm2015/form/form.module.ngsummary.json +0 -1
- package/esm2015/form/form.types.ngsummary.json +0 -1
- package/esm2015/form/helper-directives.js +0 -66
- package/esm2015/form/helper-directives.ngsummary.json +0 -1
- package/esm2015/form/public-api.ngsummary.json +0 -1
- package/esm2015/i18n/i18n.module.js +0 -11
- package/esm2015/i18n/i18n.module.ngfactory.js +0 -11
- package/esm2015/i18n/i18n.module.ngsummary.json +0 -1
- package/esm2015/i18n/i18n.pipe.js +0 -19
- package/esm2015/i18n/i18n.pipe.ngsummary.json +0 -1
- package/esm2015/i18n/i18n.service.js +0 -43
- package/esm2015/i18n/i18n.service.ngsummary.json +0 -1
- package/esm2015/i18n/i18n.type.js +0 -6
- package/esm2015/i18n/i18n.type.ngsummary.json +0 -1
- package/esm2015/i18n/language/en.ngsummary.json +0 -1
- package/esm2015/i18n/language/zh.ngsummary.json +0 -1
- package/esm2015/i18n/public-api.ngsummary.json +0 -1
- package/esm2015/icon/icon-register.service.js +0 -63
- package/esm2015/icon/icon-register.service.ngsummary.json +0 -1
- package/esm2015/icon/icon.component.js +0 -62
- package/esm2015/icon/icon.component.ngfactory.js +0 -25
- package/esm2015/icon/icon.component.ngsummary.json +0 -1
- package/esm2015/icon/icon.component.scss.ngstyle.js +0 -9
- package/esm2015/icon/icon.module.js +0 -16
- package/esm2015/icon/icon.module.ngfactory.js +0 -15
- package/esm2015/icon/icon.module.ngsummary.json +0 -1
- package/esm2015/icon/icons.ngsummary.json +0 -1
- package/esm2015/icon/public-api.ngsummary.json +0 -1
- package/esm2015/icon/utils.ngsummary.json +0 -1
- package/esm2015/inline-alert/helper-directives.js +0 -10
- package/esm2015/inline-alert/helper-directives.ngsummary.json +0 -1
- package/esm2015/inline-alert/inline-alert.component.js +0 -51
- package/esm2015/inline-alert/inline-alert.component.ngfactory.js +0 -29
- package/esm2015/inline-alert/inline-alert.component.ngsummary.json +0 -1
- package/esm2015/inline-alert/inline-alert.component.scss.ngstyle.js +0 -9
- package/esm2015/inline-alert/inline-alert.module.js +0 -15
- package/esm2015/inline-alert/inline-alert.module.ngfactory.js +0 -16
- package/esm2015/inline-alert/inline-alert.module.ngsummary.json +0 -1
- package/esm2015/inline-alert/inline-alert.types.ngsummary.json +0 -1
- package/esm2015/inline-alert/public-api.ngsummary.json +0 -1
- package/esm2015/input/autosize.directive.js +0 -61
- package/esm2015/input/autosize.directive.ngsummary.json +0 -1
- package/esm2015/input/helper-directives.js +0 -30
- package/esm2015/input/helper-directives.ngsummary.json +0 -1
- package/esm2015/input/input-group/input-group.component.js +0 -33
- package/esm2015/input/input-group/input-group.component.ngfactory.js +0 -22
- package/esm2015/input/input-group/input-group.component.ngsummary.json +0 -1
- package/esm2015/input/input-group/input-group.component.scss.ngstyle.js +0 -9
- package/esm2015/input/input.component.js +0 -69
- package/esm2015/input/input.component.ngfactory.js +0 -17
- package/esm2015/input/input.component.ngsummary.json +0 -1
- package/esm2015/input/input.component.scss.ngstyle.js +0 -9
- package/esm2015/input/input.module.js +0 -54
- package/esm2015/input/input.module.ngfactory.js +0 -20
- package/esm2015/input/input.module.ngsummary.json +0 -1
- package/esm2015/input/number-input/number-input.component.js +0 -83
- package/esm2015/input/number-input/number-input.component.ngfactory.js +0 -51
- package/esm2015/input/number-input/number-input.component.ngsummary.json +0 -1
- package/esm2015/input/number-input/number-input.component.scss.ngstyle.js +0 -9
- package/esm2015/input/public-api.js +0 -7
- package/esm2015/input/public-api.ngsummary.json +0 -1
- package/esm2015/input/search/search.component.js +0 -72
- package/esm2015/input/search/search.component.ngfactory.js +0 -51
- package/esm2015/input/search/search.component.ngsummary.json +0 -1
- package/esm2015/input/search/search.component.scss.ngstyle.js +0 -9
- package/esm2015/input/tags-input/tags-input.component.js +0 -252
- package/esm2015/input/tags-input/tags-input.component.ngfactory.js +0 -45
- package/esm2015/input/tags-input/tags-input.component.ngsummary.json +0 -1
- package/esm2015/input/tags-input/tags-input.component.scss.ngstyle.js +0 -9
- package/esm2015/input/tags-input/with-max-row-count.ngsummary.json +0 -1
- package/esm2015/input/utils/index.ngsummary.json +0 -1
- package/esm2015/message/base-message.js +0 -87
- package/esm2015/message/base-message.ngsummary.json +0 -1
- package/esm2015/message/message-animations.ngsummary.json +0 -1
- package/esm2015/message/message-wrapper.component.js +0 -20
- package/esm2015/message/message-wrapper.component.ngfactory.js +0 -17
- package/esm2015/message/message-wrapper.component.ngsummary.json +0 -1
- package/esm2015/message/message-wrapper.component.scss.ngstyle.js +0 -9
- package/esm2015/message/message.component.js +0 -77
- package/esm2015/message/message.component.ngfactory.js +0 -23
- package/esm2015/message/message.component.ngsummary.json +0 -1
- package/esm2015/message/message.component.scss.ngstyle.js +0 -9
- package/esm2015/message/message.config.ngsummary.json +0 -1
- package/esm2015/message/message.module.js +0 -18
- package/esm2015/message/message.module.ngfactory.js +0 -25
- package/esm2015/message/message.module.ngsummary.json +0 -1
- package/esm2015/message/message.service.js +0 -22
- package/esm2015/message/message.service.ngsummary.json +0 -1
- package/esm2015/message/public-api.ngsummary.json +0 -1
- package/esm2015/notification/notification-wrapper.component.js +0 -22
- package/esm2015/notification/notification-wrapper.component.ngfactory.js +0 -17
- package/esm2015/notification/notification-wrapper.component.ngsummary.json +0 -1
- package/esm2015/notification/notification-wrapper.component.scss.ngstyle.js +0 -9
- package/esm2015/notification/notification.component.js +0 -106
- package/esm2015/notification/notification.component.ngfactory.js +0 -42
- package/esm2015/notification/notification.component.ngsummary.json +0 -1
- package/esm2015/notification/notification.component.scss.ngstyle.js +0 -9
- package/esm2015/notification/notification.config.ngsummary.json +0 -1
- package/esm2015/notification/notification.module.js +0 -19
- package/esm2015/notification/notification.module.ngfactory.js +0 -25
- package/esm2015/notification/notification.module.ngsummary.json +0 -1
- package/esm2015/notification/notification.service.js +0 -22
- package/esm2015/notification/notification.service.ngsummary.json +0 -1
- package/esm2015/notification/public-api.ngsummary.json +0 -1
- package/esm2015/paginator/paginator-intl.js +0 -33
- package/esm2015/paginator/paginator-intl.ngsummary.json +0 -1
- package/esm2015/paginator/paginator.component.js +0 -118
- package/esm2015/paginator/paginator.component.ngfactory.js +0 -73
- package/esm2015/paginator/paginator.component.ngsummary.json +0 -1
- package/esm2015/paginator/paginator.component.scss.ngstyle.js +0 -9
- package/esm2015/paginator/paginator.module.js +0 -19
- package/esm2015/paginator/paginator.module.ngfactory.js +0 -32
- package/esm2015/paginator/paginator.module.ngsummary.json +0 -1
- package/esm2015/paginator/public-api.ngsummary.json +0 -1
- package/esm2015/public-api.ngsummary.json +0 -1
- package/esm2015/radio/base-radio.js +0 -69
- package/esm2015/radio/base-radio.ngsummary.json +0 -1
- package/esm2015/radio/public-api.ngsummary.json +0 -1
- package/esm2015/radio/radio-button/radio-button.component.js +0 -48
- package/esm2015/radio/radio-button/radio-button.component.ngfactory.js +0 -30
- package/esm2015/radio/radio-button/radio-button.component.ngsummary.json +0 -1
- package/esm2015/radio/radio-button/radio-button.component.scss.ngstyle.js +0 -9
- package/esm2015/radio/radio-group/radio-group.component.js +0 -75
- package/esm2015/radio/radio-group/radio-group.component.ngfactory.js +0 -18
- package/esm2015/radio/radio-group/radio-group.component.ngsummary.json +0 -1
- package/esm2015/radio/radio-group/radio-group.component.scss.ngstyle.js +0 -9
- package/esm2015/radio/radio.component.js +0 -31
- package/esm2015/radio/radio.component.ngfactory.js +0 -26
- package/esm2015/radio/radio.component.ngsummary.json +0 -1
- package/esm2015/radio/radio.component.scss.ngstyle.js +0 -9
- package/esm2015/radio/radio.module.js +0 -16
- package/esm2015/radio/radio.module.ngfactory.js +0 -16
- package/esm2015/radio/radio.module.ngsummary.json +0 -1
- package/esm2015/radio/radio.types.ngsummary.json +0 -1
- package/esm2015/scrolling/fixed-size-table-virtual-scroll-strategy.js +0 -81
- package/esm2015/scrolling/fixed-size-table-virtual-scroll-strategy.ngsummary.json +0 -1
- package/esm2015/scrolling/fixed-size-table-virtual-scroll.directive.js +0 -108
- package/esm2015/scrolling/fixed-size-table-virtual-scroll.directive.ngsummary.json +0 -1
- package/esm2015/scrolling/fixed-size-virtual-scroll.directive.js +0 -20
- package/esm2015/scrolling/fixed-size-virtual-scroll.directive.ngsummary.json +0 -1
- package/esm2015/scrolling/public-api.js +0 -6
- package/esm2015/scrolling/public-api.ngsummary.json +0 -1
- package/esm2015/scrolling/scrolling.module.js +0 -21
- package/esm2015/scrolling/scrolling.module.ngfactory.js +0 -11
- package/esm2015/scrolling/scrolling.module.ngsummary.json +0 -1
- package/esm2015/scrolling/virtual-for-of.directive.js +0 -30
- package/esm2015/scrolling/virtual-for-of.directive.ngsummary.json +0 -1
- package/esm2015/scrolling/virtual-scroll-viewport.component.js +0 -26
- package/esm2015/scrolling/virtual-scroll-viewport.component.ngfactory.js +0 -19
- package/esm2015/scrolling/virtual-scroll-viewport.component.ngsummary.json +0 -1
- package/esm2015/scrolling/virtual-scroll-viewport.component.scss.ngstyle.js +0 -9
- package/esm2015/select/base-select.js +0 -311
- package/esm2015/select/base-select.ngsummary.json +0 -1
- package/esm2015/select/helper-directives.js +0 -22
- package/esm2015/select/helper-directives.ngsummary.json +0 -1
- package/esm2015/select/multi-select/multi-select.component.js +0 -276
- package/esm2015/select/multi-select/multi-select.component.ngfactory.js +0 -76
- package/esm2015/select/multi-select/multi-select.component.ngsummary.json +0 -1
- package/esm2015/select/multi-select/multi-select.component.scss.ngstyle.js +0 -9
- package/esm2015/select/option/option.component.js +0 -107
- package/esm2015/select/option/option.component.ngfactory.js +0 -26
- package/esm2015/select/option/option.component.ngsummary.json +0 -1
- package/esm2015/select/option/option.component.scss.ngstyle.js +0 -9
- package/esm2015/select/option-group/option-group.component.js +0 -25
- package/esm2015/select/option-group/option-group.component.ngfactory.js +0 -18
- package/esm2015/select/option-group/option-group.component.ngsummary.json +0 -1
- package/esm2015/select/option-group/option-group.component.scss.ngstyle.js +0 -9
- package/esm2015/select/option-placeholder.component.js +0 -13
- package/esm2015/select/option-placeholder.component.ngfactory.js +0 -16
- package/esm2015/select/option-placeholder.component.ngsummary.json +0 -1
- package/esm2015/select/public-api.ngsummary.json +0 -1
- package/esm2015/select/select.component.js +0 -95
- package/esm2015/select/select.component.ngfactory.js +0 -63
- package/esm2015/select/select.component.ngsummary.json +0 -1
- package/esm2015/select/select.component.scss.ngstyle.js +0 -9
- package/esm2015/select/select.module.js +0 -49
- package/esm2015/select/select.module.ngfactory.js +0 -30
- package/esm2015/select/select.module.ngsummary.json +0 -1
- package/esm2015/select/select.types.ngsummary.json +0 -1
- package/esm2015/select/validators.js +0 -72
- package/esm2015/select/validators.ngsummary.json +0 -1
- package/esm2015/shared/click-outside.directive.js +0 -26
- package/esm2015/shared/click-outside.directive.ngsummary.json +0 -1
- package/esm2015/shared/shared.module.js +0 -11
- package/esm2015/shared/shared.module.ngfactory.js +0 -11
- package/esm2015/shared/shared.module.ngsummary.json +0 -1
- package/esm2015/sort/public-api.ngsummary.json +0 -1
- package/esm2015/sort/sort-errors.ngsummary.json +0 -1
- package/esm2015/sort/sort-header.component.js +0 -76
- package/esm2015/sort/sort-header.component.ngfactory.js +0 -22
- package/esm2015/sort/sort-header.component.ngsummary.json +0 -1
- package/esm2015/sort/sort-header.component.scss.ngstyle.js +0 -9
- package/esm2015/sort/sort.directive.js +0 -69
- package/esm2015/sort/sort.directive.ngsummary.json +0 -1
- package/esm2015/sort/sort.module.js +0 -14
- package/esm2015/sort/sort.module.ngfactory.js +0 -12
- package/esm2015/sort/sort.module.ngsummary.json +0 -1
- package/esm2015/sort/sort.types.ngsummary.json +0 -1
- package/esm2015/status-bar/public-api.ngsummary.json +0 -1
- package/esm2015/status-bar/status-bar.component.js +0 -28
- package/esm2015/status-bar/status-bar.component.ngfactory.js +0 -26
- package/esm2015/status-bar/status-bar.component.ngsummary.json +0 -1
- package/esm2015/status-bar/status-bar.component.scss.ngstyle.js +0 -9
- package/esm2015/status-bar/status-bar.module.js +0 -14
- package/esm2015/status-bar/status-bar.module.ngfactory.js +0 -20
- package/esm2015/status-bar/status-bar.module.ngsummary.json +0 -1
- package/esm2015/status-bar/status-bar.types.ngsummary.json +0 -1
- package/esm2015/steps/public-api.ngsummary.json +0 -1
- package/esm2015/steps/steps.component.js +0 -179
- package/esm2015/steps/steps.component.ngfactory.js +0 -34
- package/esm2015/steps/steps.component.ngsummary.json +0 -1
- package/esm2015/steps/steps.component.scss.ngstyle.js +0 -9
- package/esm2015/steps/steps.module.js +0 -14
- package/esm2015/steps/steps.module.ngfactory.js +0 -16
- package/esm2015/steps/steps.module.ngsummary.json +0 -1
- package/esm2015/steps/types.ngsummary.json +0 -1
- package/esm2015/switch/public-api.ngsummary.json +0 -1
- package/esm2015/switch/switch.component.js +0 -47
- package/esm2015/switch/switch.component.ngfactory.js +0 -25
- package/esm2015/switch/switch.component.ngsummary.json +0 -1
- package/esm2015/switch/switch.component.scss.ngstyle.js +0 -9
- package/esm2015/switch/switch.module.js +0 -13
- package/esm2015/switch/switch.module.ngfactory.js +0 -12
- package/esm2015/switch/switch.module.ngsummary.json +0 -1
- package/esm2015/table/public-api.js +0 -13
- package/esm2015/table/public-api.ngsummary.json +0 -1
- package/esm2015/table/table-cell-def.directive.js +0 -20
- package/esm2015/table/table-cell-def.directive.ngsummary.json +0 -1
- package/esm2015/table/table-cell.component.js +0 -82
- package/esm2015/table/table-cell.component.ngfactory.js +0 -32
- package/esm2015/table/table-cell.component.ngsummary.json +0 -1
- package/esm2015/table/table-cell.directive.js +0 -26
- package/esm2015/table/table-cell.directive.ngsummary.json +0 -1
- package/esm2015/table/table-column-def.directive.js +0 -29
- package/esm2015/table/table-column-def.directive.ngsummary.json +0 -1
- package/esm2015/table/table-header-cell-def.directive.js +0 -20
- package/esm2015/table/table-header-cell-def.directive.ngsummary.json +0 -1
- package/esm2015/table/table-header-cell.directive.js +0 -26
- package/esm2015/table/table-header-cell.directive.ngsummary.json +0 -1
- package/esm2015/table/table-header-row-def.directive.js +0 -24
- package/esm2015/table/table-header-row-def.directive.ngsummary.json +0 -1
- package/esm2015/table/table-header-row.component.js +0 -20
- package/esm2015/table/table-header-row.component.ngfactory.js +0 -17
- package/esm2015/table/table-header-row.component.ngsummary.json +0 -1
- package/esm2015/table/table-placeholder.directive.js +0 -30
- package/esm2015/table/table-placeholder.directive.ngsummary.json +0 -1
- package/esm2015/table/table-row-def.directive.js +0 -25
- package/esm2015/table/table-row-def.directive.ngsummary.json +0 -1
- package/esm2015/table/table-row.component.js +0 -37
- package/esm2015/table/table-row.component.ngfactory.js +0 -17
- package/esm2015/table/table-row.component.ngsummary.json +0 -1
- package/esm2015/table/table-scroll.directive.js +0 -84
- package/esm2015/table/table-scroll.directive.ngsummary.json +0 -1
- package/esm2015/table/table-scroll.scss.ngstyle.js +0 -9
- package/esm2015/table/table.component.js +0 -69
- package/esm2015/table/table.component.ngfactory.js +0 -25
- package/esm2015/table/table.component.ngsummary.json +0 -1
- package/esm2015/table/table.component.scss.ngstyle.js +0 -9
- package/esm2015/table/table.module.js +0 -61
- package/esm2015/table/table.module.ngfactory.js +0 -20
- package/esm2015/table/table.module.ngsummary.json +0 -1
- package/esm2015/table-of-contents/public-api.ngsummary.json +0 -1
- package/esm2015/table-of-contents/table-of-contents.module.js +0 -15
- package/esm2015/table-of-contents/table-of-contents.module.ngfactory.js +0 -12
- package/esm2015/table-of-contents/table-of-contents.module.ngsummary.json +0 -1
- package/esm2015/table-of-contents/toc-container.directive.js +0 -109
- package/esm2015/table-of-contents/toc-container.directive.ngsummary.json +0 -1
- package/esm2015/table-of-contents/toc-content.directive.js +0 -32
- package/esm2015/table-of-contents/toc-content.directive.ngsummary.json +0 -1
- package/esm2015/table-of-contents/toc-link.directive.js +0 -43
- package/esm2015/table-of-contents/toc-link.directive.ngsummary.json +0 -1
- package/esm2015/tabs/public-api.js +0 -10
- package/esm2015/tabs/public-api.ngsummary.json +0 -1
- package/esm2015/tabs/tab-body.component.js +0 -35
- package/esm2015/tabs/tab-body.component.ngfactory.js +0 -18
- package/esm2015/tabs/tab-body.component.ngsummary.json +0 -1
- package/esm2015/tabs/tab-context.service.js +0 -28
- package/esm2015/tabs/tab-context.service.ngsummary.json +0 -1
- package/esm2015/tabs/tab-directives.js +0 -142
- package/esm2015/tabs/tab-directives.ngsummary.json +0 -1
- package/esm2015/tabs/tab-group.component.js +0 -277
- package/esm2015/tabs/tab-group.component.ngfactory.js +0 -56
- package/esm2015/tabs/tab-group.component.ngsummary.json +0 -1
- package/esm2015/tabs/tab-group.component.scss.ngstyle.js +0 -9
- package/esm2015/tabs/tab-header-active-indicator.component.js +0 -59
- package/esm2015/tabs/tab-header-active-indicator.component.ngfactory.js +0 -17
- package/esm2015/tabs/tab-header-active-indicator.component.ngsummary.json +0 -1
- package/esm2015/tabs/tab-header.component.js +0 -348
- package/esm2015/tabs/tab-header.component.ngfactory.js +0 -44
- package/esm2015/tabs/tab-header.component.ngsummary.json +0 -1
- package/esm2015/tabs/tab-header.component.scss.ngstyle.js +0 -9
- package/esm2015/tabs/tab.component.js +0 -82
- package/esm2015/tabs/tab.component.ngfactory.js +0 -18
- package/esm2015/tabs/tab.component.ngsummary.json +0 -1
- package/esm2015/tabs/tabs.module.js +0 -53
- package/esm2015/tabs/tabs.module.ngfactory.js +0 -22
- package/esm2015/tabs/tabs.module.ngsummary.json +0 -1
- package/esm2015/tabs/tabs.types.ngsummary.json +0 -1
- package/esm2015/tag/check-tag/check-tag.component.js +0 -34
- package/esm2015/tag/check-tag/check-tag.component.ngfactory.js +0 -27
- package/esm2015/tag/check-tag/check-tag.component.ngsummary.json +0 -1
- package/esm2015/tag/check-tag/check-tag.component.scss.ngstyle.js +0 -9
- package/esm2015/tag/public-api.ngsummary.json +0 -1
- package/esm2015/tag/tag.component.js +0 -57
- package/esm2015/tag/tag.component.ngfactory.js +0 -26
- package/esm2015/tag/tag.component.ngsummary.json +0 -1
- package/esm2015/tag/tag.component.scss.ngstyle.js +0 -9
- package/esm2015/tag/tag.module.js +0 -15
- package/esm2015/tag/tag.module.ngfactory.js +0 -16
- package/esm2015/tag/tag.module.ngsummary.json +0 -1
- package/esm2015/tag/tag.types.ngsummary.json +0 -1
- package/esm2015/theme/public-api.ngsummary.json +0 -1
- package/esm2015/theme/theme.module.js +0 -13
- package/esm2015/theme/theme.module.ngfactory.js +0 -12
- package/esm2015/theme/theme.module.ngsummary.json +0 -1
- package/esm2015/theme/theme.pipe.js +0 -61
- package/esm2015/theme/theme.pipe.ngsummary.json +0 -1
- package/esm2015/theme/theme.service.js +0 -52
- package/esm2015/theme/theme.service.ngsummary.json +0 -1
- package/esm2015/theme/theme.types.ngsummary.json +0 -1
- package/esm2015/theme/utils.ngsummary.json +0 -1
- package/esm2015/time-picker/component.js +0 -149
- package/esm2015/time-picker/component.ngfactory.js +0 -82
- package/esm2015/time-picker/component.ngsummary.json +0 -1
- package/esm2015/time-picker/constant.js +0 -9
- package/esm2015/time-picker/constant.ngsummary.json +0 -1
- package/esm2015/time-picker/panel/panel.component.js +0 -211
- package/esm2015/time-picker/panel/panel.component.ngfactory.js +0 -49
- package/esm2015/time-picker/panel/panel.component.ngsummary.json +0 -1
- package/esm2015/time-picker/panel/panel.style.scss.ngstyle.js +0 -9
- package/esm2015/time-picker/public-api.ngsummary.json +0 -1
- package/esm2015/time-picker/style.scss.ngstyle.js +0 -9
- package/esm2015/time-picker/time-picker.module.js +0 -33
- package/esm2015/time-picker/time-picker.module.ngfactory.js +0 -30
- package/esm2015/time-picker/time-picker.module.ngsummary.json +0 -1
- package/esm2015/time-picker/time-picker.type.js +0 -13
- package/esm2015/time-picker/time-picker.type.ngsummary.json +0 -1
- package/esm2015/tooltip/base-tooltip.js +0 -255
- package/esm2015/tooltip/base-tooltip.ngsummary.json +0 -1
- package/esm2015/tooltip/public-api.js +0 -8
- package/esm2015/tooltip/public-api.ngsummary.json +0 -1
- package/esm2015/tooltip/tooltip-active.directive.js +0 -44
- package/esm2015/tooltip/tooltip-active.directive.ngsummary.json +0 -1
- package/esm2015/tooltip/tooltip-copy.directive.js +0 -80
- package/esm2015/tooltip/tooltip-copy.directive.ngsummary.json +0 -1
- package/esm2015/tooltip/tooltip-intl.js +0 -25
- package/esm2015/tooltip/tooltip-intl.ngsummary.json +0 -1
- package/esm2015/tooltip/tooltip.component.js +0 -55
- package/esm2015/tooltip/tooltip.component.ngfactory.js +0 -25
- package/esm2015/tooltip/tooltip.component.ngsummary.json +0 -1
- package/esm2015/tooltip/tooltip.component.scss.ngstyle.js +0 -9
- package/esm2015/tooltip/tooltip.directive.js +0 -45
- package/esm2015/tooltip/tooltip.directive.ngsummary.json +0 -1
- package/esm2015/tooltip/tooltip.module.js +0 -25
- package/esm2015/tooltip/tooltip.module.ngfactory.js +0 -19
- package/esm2015/tooltip/tooltip.module.ngsummary.json +0 -1
- package/esm2015/tooltip/tooltip.types.ngsummary.json +0 -1
- package/esm2015/tooltip/utils/index.ngsummary.json +0 -1
- package/esm2015/tree-select/public-api.js +0 -6
- package/esm2015/tree-select/public-api.ngsummary.json +0 -1
- package/esm2015/tree-select/tree-node/tree-node.component.js +0 -127
- package/esm2015/tree-select/tree-node/tree-node.component.ngfactory.js +0 -32
- package/esm2015/tree-select/tree-node/tree-node.component.ngsummary.json +0 -1
- package/esm2015/tree-select/tree-node/tree-node.component.scss.ngstyle.js +0 -9
- package/esm2015/tree-select/tree-node-placeholder.component.js +0 -13
- package/esm2015/tree-select/tree-node-placeholder.component.ngfactory.js +0 -16
- package/esm2015/tree-select/tree-node-placeholder.component.ngsummary.json +0 -1
- package/esm2015/tree-select/tree-select.component.js +0 -204
- package/esm2015/tree-select/tree-select.component.ngfactory.js +0 -56
- package/esm2015/tree-select/tree-select.component.ngsummary.json +0 -1
- package/esm2015/tree-select/tree-select.component.scss.ngstyle.js +0 -9
- package/esm2015/tree-select/tree-select.module.js +0 -26
- package/esm2015/tree-select/tree-select.module.ngfactory.js +0 -29
- package/esm2015/tree-select/tree-select.module.ngsummary.json +0 -1
- package/esm2015/tree-select/tree-select.types.ngsummary.json +0 -1
- package/esm2015/types.ngsummary.json +0 -1
- package/esm2015/utils/async.ngsummary.json +0 -1
- package/esm2015/utils/bem.ngsummary.json +0 -1
- package/esm2015/utils/coercion.js +0 -16
- package/esm2015/utils/coercion.ngsummary.json +0 -1
- package/esm2015/utils/fn.js +0 -8
- package/esm2015/utils/fn.ngsummary.json +0 -1
- package/esm2015/utils/index.ngsummary.json +0 -1
- package/esm2015/utils/observe-dom.ngsummary.json +0 -1
- package/esm2015/utils/scroll-into-view.ngsummary.json +0 -1
- package/esm2015/utils/watch-content-exist.ngsummary.json +0 -1
- package/fesm2015/alauda-ui.js +0 -10768
- package/fesm2015/alauda-ui.js.map +0 -1
- package/form/form-item/form-item.component.ngfactory.d.ts +0 -1
- package/form/form-item/form-item.component.scss.ngstyle.d.ts +0 -1
- package/form/form.module.ngfactory.d.ts +0 -3
- package/i18n/i18n.module.ngfactory.d.ts +0 -3
- package/icon/icon.component.ngfactory.d.ts +0 -1
- package/icon/icon.component.scss.ngstyle.d.ts +0 -1
- package/icon/icon.module.ngfactory.d.ts +0 -3
- package/inline-alert/inline-alert.component.ngfactory.d.ts +0 -1
- package/inline-alert/inline-alert.component.scss.ngstyle.d.ts +0 -1
- package/inline-alert/inline-alert.module.ngfactory.d.ts +0 -3
- package/input/input-group/input-group.component.ngfactory.d.ts +0 -1
- package/input/input-group/input-group.component.scss.ngstyle.d.ts +0 -1
- package/input/input.component.ngfactory.d.ts +0 -1
- package/input/input.component.scss.ngstyle.d.ts +0 -1
- package/input/input.module.ngfactory.d.ts +0 -3
- package/input/number-input/number-input.component.ngfactory.d.ts +0 -1
- package/input/number-input/number-input.component.scss.ngstyle.d.ts +0 -1
- package/input/search/search.component.ngfactory.d.ts +0 -1
- package/input/search/search.component.scss.ngstyle.d.ts +0 -1
- package/input/tags-input/tags-input.component.ngfactory.d.ts +0 -1
- package/input/tags-input/tags-input.component.scss.ngstyle.d.ts +0 -1
- package/message/message-wrapper.component.ngfactory.d.ts +0 -1
- package/message/message-wrapper.component.scss.ngstyle.d.ts +0 -1
- package/message/message.component.ngfactory.d.ts +0 -1
- package/message/message.component.scss.ngstyle.d.ts +0 -1
- package/message/message.module.ngfactory.d.ts +0 -3
- package/notification/notification-wrapper.component.ngfactory.d.ts +0 -1
- package/notification/notification-wrapper.component.scss.ngstyle.d.ts +0 -1
- package/notification/notification.component.ngfactory.d.ts +0 -1
- package/notification/notification.component.scss.ngstyle.d.ts +0 -1
- package/notification/notification.module.ngfactory.d.ts +0 -3
- package/paginator/paginator.component.ngfactory.d.ts +0 -1
- package/paginator/paginator.component.scss.ngstyle.d.ts +0 -1
- package/paginator/paginator.module.ngfactory.d.ts +0 -3
- package/radio/radio-button/radio-button.component.ngfactory.d.ts +0 -1
- package/radio/radio-button/radio-button.component.scss.ngstyle.d.ts +0 -1
- package/radio/radio-group/radio-group.component.ngfactory.d.ts +0 -1
- package/radio/radio-group/radio-group.component.scss.ngstyle.d.ts +0 -1
- package/radio/radio.component.ngfactory.d.ts +0 -1
- package/radio/radio.component.scss.ngstyle.d.ts +0 -1
- package/radio/radio.module.ngfactory.d.ts +0 -3
- package/scrolling/scrolling.module.ngfactory.d.ts +0 -3
- package/scrolling/virtual-scroll-viewport.component.ngfactory.d.ts +0 -1
- package/scrolling/virtual-scroll-viewport.component.scss.ngstyle.d.ts +0 -1
- package/select/multi-select/multi-select.component.ngfactory.d.ts +0 -1
- package/select/multi-select/multi-select.component.scss.ngstyle.d.ts +0 -1
- package/select/option/option.component.ngfactory.d.ts +0 -1
- package/select/option/option.component.scss.ngstyle.d.ts +0 -1
- package/select/option-group/option-group.component.ngfactory.d.ts +0 -1
- package/select/option-group/option-group.component.scss.ngstyle.d.ts +0 -1
- package/select/option-placeholder.component.ngfactory.d.ts +0 -1
- package/select/select.component.ngfactory.d.ts +0 -1
- package/select/select.component.scss.ngstyle.d.ts +0 -1
- package/select/select.module.ngfactory.d.ts +0 -3
- package/shared/shared.module.ngfactory.d.ts +0 -3
- package/sort/sort-header.component.ngfactory.d.ts +0 -1
- package/sort/sort-header.component.scss.ngstyle.d.ts +0 -1
- package/sort/sort.module.ngfactory.d.ts +0 -3
- package/status-bar/status-bar.component.ngfactory.d.ts +0 -1
- package/status-bar/status-bar.component.scss.ngstyle.d.ts +0 -1
- package/status-bar/status-bar.module.ngfactory.d.ts +0 -3
- package/steps/steps.component.ngfactory.d.ts +0 -1
- package/steps/steps.component.scss.ngstyle.d.ts +0 -1
- package/steps/steps.module.ngfactory.d.ts +0 -3
- package/switch/switch.component.ngfactory.d.ts +0 -1
- package/switch/switch.component.scss.ngstyle.d.ts +0 -1
- package/switch/switch.module.ngfactory.d.ts +0 -3
- package/table/table-cell.component.ngfactory.d.ts +0 -1
- package/table/table-header-row.component.ngfactory.d.ts +0 -1
- package/table/table-row.component.ngfactory.d.ts +0 -1
- package/table/table-scroll.scss.ngstyle.d.ts +0 -1
- package/table/table.component.ngfactory.d.ts +0 -1
- package/table/table.component.scss.ngstyle.d.ts +0 -1
- package/table/table.module.ngfactory.d.ts +0 -3
- package/table-of-contents/table-of-contents.module.ngfactory.d.ts +0 -3
- package/tabs/tab-body.component.ngfactory.d.ts +0 -1
- package/tabs/tab-directives.d.ts +0 -47
- package/tabs/tab-group.component.ngfactory.d.ts +0 -1
- package/tabs/tab-group.component.scss.ngstyle.d.ts +0 -1
- package/tabs/tab-header-active-indicator.component.ngfactory.d.ts +0 -1
- package/tabs/tab-header.component.ngfactory.d.ts +0 -1
- package/tabs/tab-header.component.scss.ngstyle.d.ts +0 -1
- package/tabs/tab.component.ngfactory.d.ts +0 -1
- package/tabs/tabs.module.ngfactory.d.ts +0 -3
- package/tag/check-tag/check-tag.component.ngfactory.d.ts +0 -1
- package/tag/check-tag/check-tag.component.scss.ngstyle.d.ts +0 -1
- package/tag/tag.component.ngfactory.d.ts +0 -1
- package/tag/tag.component.scss.ngstyle.d.ts +0 -1
- package/tag/tag.module.ngfactory.d.ts +0 -3
- package/theme/theme.module.ngfactory.d.ts +0 -3
- package/time-picker/component.ngfactory.d.ts +0 -1
- package/time-picker/panel/panel.component.ngfactory.d.ts +0 -1
- package/time-picker/panel/panel.style.scss.ngstyle.d.ts +0 -1
- package/time-picker/style.scss.ngstyle.d.ts +0 -1
- package/time-picker/time-picker.module.ngfactory.d.ts +0 -3
- package/tooltip/tooltip.component.ngfactory.d.ts +0 -1
- package/tooltip/tooltip.component.scss.ngstyle.d.ts +0 -1
- package/tooltip/tooltip.module.ngfactory.d.ts +0 -3
- package/tree-select/tree-node/tree-node.component.d.ts +0 -34
- package/tree-select/tree-node/tree-node.component.ngfactory.d.ts +0 -1
- package/tree-select/tree-node/tree-node.component.scss.ngstyle.d.ts +0 -1
- package/tree-select/tree-node-placeholder.component.ngfactory.d.ts +0 -1
- package/tree-select/tree-select.component.ngfactory.d.ts +0 -1
- package/tree-select/tree-select.component.scss.ngstyle.d.ts +0 -1
- package/tree-select/tree-select.module.ngfactory.d.ts +0 -3
- package/tsconfig.lib.tsbuildinfo +0 -3
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { buildBem } from '../utils';
|
|
3
|
+
import { TabType } from './tabs.types';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
export class TabHeaderActiveIndicatorComponent {
|
|
7
|
+
constructor(_elementRef, _ngZone) {
|
|
8
|
+
this._elementRef = _elementRef;
|
|
9
|
+
this._ngZone = _ngZone;
|
|
10
|
+
this.type = TabType.Line;
|
|
11
|
+
this.bem = buildBem('aui-tab-header-active-indicator');
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Calculates the styles from the provided element in order to align the indicator to that element.
|
|
15
|
+
* Shows the indicator if previously set as hidden.
|
|
16
|
+
* @param element
|
|
17
|
+
*/
|
|
18
|
+
alignToElement(element) {
|
|
19
|
+
if (typeof requestAnimationFrame !== 'undefined') {
|
|
20
|
+
this._ngZone.runOutsideAngular(() => {
|
|
21
|
+
requestAnimationFrame(() => this._setStyles(element));
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
this._setStyles(element);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Sets the proper styles to the element.
|
|
30
|
+
* @param element
|
|
31
|
+
*/
|
|
32
|
+
_setStyles(element) {
|
|
33
|
+
const positions = this._getElementPosition(element);
|
|
34
|
+
const nativeEl = this._elementRef.nativeElement;
|
|
35
|
+
nativeEl.style.left = positions.left;
|
|
36
|
+
nativeEl.style.width = positions.width;
|
|
37
|
+
}
|
|
38
|
+
_getElementPosition(element) {
|
|
39
|
+
return {
|
|
40
|
+
left: element ? (element.offsetLeft || 0) + 'px' : '0',
|
|
41
|
+
width: element ? (element.offsetWidth || 0) + 'px' : '0',
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
TabHeaderActiveIndicatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TabHeaderActiveIndicatorComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
46
|
+
TabHeaderActiveIndicatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: TabHeaderActiveIndicatorComponent, selector: "aui-tab-header-active-indicator", inputs: { type: "type" }, ngImport: i0, template: "<div [ngClass]=\"bem.block(type)\"></div>\n", directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TabHeaderActiveIndicatorComponent, decorators: [{
|
|
48
|
+
type: Component,
|
|
49
|
+
args: [{ selector: 'aui-tab-header-active-indicator', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, template: "<div [ngClass]=\"bem.block(type)\"></div>\n" }]
|
|
50
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { type: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}] } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWhlYWRlci1hY3RpdmUtaW5kaWNhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90YWJzL3RhYi1oZWFkZXItYWN0aXZlLWluZGljYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi9zcmMvdGFicy90YWItaGVhZGVyLWFjdGl2ZS1pbmRpY2F0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsS0FBSyxFQUVMLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQU8sUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQVN2QyxNQUFNLE9BQU8saUNBQWlDO0lBTTVDLFlBQ21CLFdBQW9DLEVBQ3BDLE9BQWU7UUFEZixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQU5sQyxTQUFJLEdBQVksT0FBTyxDQUFDLElBQUksQ0FBQztRQUU3QixRQUFHLEdBQVEsUUFBUSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFLcEQsQ0FBQztJQUVKOzs7O09BSUc7SUFDSCxjQUFjLENBQUMsT0FBb0I7UUFDakMsSUFBSSxPQUFPLHFCQUFxQixLQUFLLFdBQVcsRUFBRTtZQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtnQkFDbEMscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssVUFBVSxDQUFDLE9BQW9CO1FBQ3JDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztRQUNoRCxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQ3JDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDekMsQ0FBQztJQUVPLG1CQUFtQixDQUFDLE9BQW9CO1FBQzlDLE9BQU87WUFDTCxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHO1lBQ3RELEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUc7U0FDekQsQ0FBQztJQUNKLENBQUM7OzhIQTFDVSxpQ0FBaUM7a0hBQWpDLGlDQUFpQyxpR0NwQjlDLDZDQUNBOzJGRG1CYSxpQ0FBaUM7a0JBUDdDLFNBQVM7K0JBQ0UsaUNBQWlDLGlCQUU1QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLHVCQUMxQixLQUFLO3NIQUkxQixJQUFJO3NCQURILEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJlbSwgYnVpbGRCZW0gfSBmcm9tICcuLi91dGlscyc7XG5cbmltcG9ydCB7IFRhYlR5cGUgfSBmcm9tICcuL3RhYnMudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktdGFiLWhlYWRlci1hY3RpdmUtaW5kaWNhdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYi1oZWFkZXItYWN0aXZlLWluZGljYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgVGFiSGVhZGVyQWN0aXZlSW5kaWNhdG9yQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgdHlwZTogVGFiVHlwZSA9IFRhYlR5cGUuTGluZTtcblxuICBiZW06IEJlbSA9IGJ1aWxkQmVtKCdhdWktdGFiLWhlYWRlci1hY3RpdmUtaW5kaWNhdG9yJyk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbmdab25lOiBOZ1pvbmUsXG4gICkge31cblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgc3R5bGVzIGZyb20gdGhlIHByb3ZpZGVkIGVsZW1lbnQgaW4gb3JkZXIgdG8gYWxpZ24gdGhlIGluZGljYXRvciB0byB0aGF0IGVsZW1lbnQuXG4gICAqIFNob3dzIHRoZSBpbmRpY2F0b3IgaWYgcHJldmlvdXNseSBzZXQgYXMgaGlkZGVuLlxuICAgKiBAcGFyYW0gZWxlbWVudFxuICAgKi9cbiAgYWxpZ25Ub0VsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICBpZiAodHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLl9zZXRTdHlsZXMoZWxlbWVudCkpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3NldFN0eWxlcyhlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcHJvcGVyIHN0eWxlcyB0byB0aGUgZWxlbWVudC5cbiAgICogQHBhcmFtIGVsZW1lbnRcbiAgICovXG4gIHByaXZhdGUgX3NldFN0eWxlcyhlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgIGNvbnN0IHBvc2l0aW9ucyA9IHRoaXMuX2dldEVsZW1lbnRQb3NpdGlvbihlbGVtZW50KTtcbiAgICBjb25zdCBuYXRpdmVFbCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICBuYXRpdmVFbC5zdHlsZS5sZWZ0ID0gcG9zaXRpb25zLmxlZnQ7XG4gICAgbmF0aXZlRWwuc3R5bGUud2lkdGggPSBwb3NpdGlvbnMud2lkdGg7XG4gIH1cblxuICBwcml2YXRlIF9nZXRFbGVtZW50UG9zaXRpb24oZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbGVmdDogZWxlbWVudCA/IChlbGVtZW50Lm9mZnNldExlZnQgfHwgMCkgKyAncHgnIDogJzAnLFxuICAgICAgd2lkdGg6IGVsZW1lbnQgPyAoZWxlbWVudC5vZmZzZXRXaWR0aCB8fCAwKSArICdweCcgOiAnMCcsXG4gICAgfTtcbiAgfVxufVxuIiwiPGRpdiBbbmdDbGFzc109XCJiZW0uYmxvY2sodHlwZSlcIj48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
import { FocusKeyManager } from '@angular/cdk/a11y';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { takeUntil } from 'rxjs/operators';
|
|
5
|
+
import { buildBem, coerceNumber } from '../utils';
|
|
6
|
+
import { TabHeaderAddonDirective, TabLabelWrapperDirective, TabTitleDirective, } from './tab-body.component';
|
|
7
|
+
import { TabHeaderActiveIndicatorComponent } from './tab-header-active-indicator.component';
|
|
8
|
+
import { TabSize, TabType } from './tabs.types';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/cdk/scrolling";
|
|
11
|
+
import * as i2 from "../icon/icon.component";
|
|
12
|
+
import * as i3 from "./tab-header-active-indicator.component";
|
|
13
|
+
import * as i4 from "@angular/common";
|
|
14
|
+
import * as i5 from "@angular/cdk/portal";
|
|
15
|
+
import * as i6 from "@angular/cdk/observers";
|
|
16
|
+
/**
|
|
17
|
+
* The distance in pixels that will be overshot when scrolling a tab label into view. This helps
|
|
18
|
+
* provide a small affordance to the label next to it.
|
|
19
|
+
*/
|
|
20
|
+
const EXAGGERATED_OVERSCROLL = 60;
|
|
21
|
+
export class TabHeaderComponent {
|
|
22
|
+
constructor(_changeDetectorRef, _viewportRuler) {
|
|
23
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
24
|
+
this._viewportRuler = _viewportRuler;
|
|
25
|
+
this.bem = buildBem('aui-tab-header');
|
|
26
|
+
this._showAddon = false;
|
|
27
|
+
/** Whether the controls for pagination should be displayed */
|
|
28
|
+
this._showPaginationControls = false;
|
|
29
|
+
/** Whether the tab list can be scrolled more towards the end of the tab label list. */
|
|
30
|
+
this._disableScrollAfter = true;
|
|
31
|
+
/** Whether the tab list can be scrolled more towards the beginning of the tab label list. */
|
|
32
|
+
this._disableScrollBefore = true;
|
|
33
|
+
/** Whether the header should scroll to the selected index after the view has been checked. */
|
|
34
|
+
this._selectedIndexChanged = false;
|
|
35
|
+
/** The distance in pixels that the tab labels should be translated to the left. */
|
|
36
|
+
this._scrollDistance = 0;
|
|
37
|
+
this._selectedIndex = 0;
|
|
38
|
+
/** Emits when the component is destroyed. */
|
|
39
|
+
this._destroyed = new Subject();
|
|
40
|
+
this.type = TabType.Line;
|
|
41
|
+
this.size = TabSize.Medium;
|
|
42
|
+
/** Event emitted when the option is selected. */
|
|
43
|
+
this.selectFocusedIndex = new EventEmitter();
|
|
44
|
+
/** Event emitted when a label is focused. */
|
|
45
|
+
this.indexFocused = new EventEmitter();
|
|
46
|
+
}
|
|
47
|
+
/** The index of the active tab. */
|
|
48
|
+
get selectedIndex() {
|
|
49
|
+
return this._selectedIndex;
|
|
50
|
+
}
|
|
51
|
+
set selectedIndex(value) {
|
|
52
|
+
value = coerceNumber(value);
|
|
53
|
+
this._selectedIndexChanged = this._selectedIndex !== value;
|
|
54
|
+
this._selectedIndex = value;
|
|
55
|
+
if (this._keyManager) {
|
|
56
|
+
this._keyManager.updateActiveItem(value);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
ngOnDestroy() {
|
|
60
|
+
this._destroyed.next();
|
|
61
|
+
this._destroyed.complete();
|
|
62
|
+
}
|
|
63
|
+
ngAfterContentChecked() {
|
|
64
|
+
// If the number of tab labels have changed, check if scrolling should be enabled
|
|
65
|
+
if (this._tabLabelCount !== this._labelWrappers.length) {
|
|
66
|
+
this._updatePagination();
|
|
67
|
+
this._tabLabelCount = this._labelWrappers.length;
|
|
68
|
+
this._changeDetectorRef.markForCheck();
|
|
69
|
+
}
|
|
70
|
+
// If the selected index has changed, scroll to the label and check if the scrolling controls
|
|
71
|
+
// should be disabled.
|
|
72
|
+
if (this._selectedIndexChanged) {
|
|
73
|
+
this._scrollToLabel(this._selectedIndex);
|
|
74
|
+
this._checkScrollingControls();
|
|
75
|
+
this._alignActiveIndicatorToSelectedTab();
|
|
76
|
+
this._selectedIndexChanged = false;
|
|
77
|
+
this._changeDetectorRef.markForCheck();
|
|
78
|
+
}
|
|
79
|
+
// If the scroll distance has been changed (tab selected, focused, scroll controls activated),
|
|
80
|
+
// then translate the header to reflect this.
|
|
81
|
+
if (this._scrollDistanceChanged) {
|
|
82
|
+
this._updateTabScrollPosition();
|
|
83
|
+
this._scrollDistanceChanged = false;
|
|
84
|
+
this._changeDetectorRef.markForCheck();
|
|
85
|
+
}
|
|
86
|
+
if (this._showAddon !== !!this._headerAddon) {
|
|
87
|
+
this._showAddon = !!this._headerAddon;
|
|
88
|
+
this._updatePagination();
|
|
89
|
+
this._changeDetectorRef.markForCheck();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Aligns the ink bar to the selected tab on load.
|
|
94
|
+
*/
|
|
95
|
+
ngAfterContentInit() {
|
|
96
|
+
const resize = this._viewportRuler.change(150);
|
|
97
|
+
const realign = () => {
|
|
98
|
+
this._updatePagination();
|
|
99
|
+
this._alignActiveIndicatorToSelectedTab();
|
|
100
|
+
};
|
|
101
|
+
this._keyManager = new FocusKeyManager(this._labelWrappers)
|
|
102
|
+
.withHorizontalOrientation('ltr')
|
|
103
|
+
.withWrap();
|
|
104
|
+
this._keyManager.updateActiveItem(0);
|
|
105
|
+
// Defer the first call in order to allow for slower browsers to lay out the elements.
|
|
106
|
+
// This helps in cases where the user lands directly on a page with paginated tabs.
|
|
107
|
+
typeof requestAnimationFrame !== 'undefined'
|
|
108
|
+
? requestAnimationFrame(realign)
|
|
109
|
+
: realign();
|
|
110
|
+
// On window resize, realign the ink bar and update the orientation of
|
|
111
|
+
// the key manager if the direction has changed.
|
|
112
|
+
resize.pipe(takeUntil(this._destroyed)).subscribe(() => {
|
|
113
|
+
realign();
|
|
114
|
+
});
|
|
115
|
+
// If there is a change in the focus key manager we need to emit the `indexFocused`
|
|
116
|
+
// event in order to provide a public event that notifies about focus changes. Also we realign
|
|
117
|
+
// the tabs container by scrolling the new focused tab into the visible section.
|
|
118
|
+
this._keyManager.change
|
|
119
|
+
.pipe(takeUntil(this._destroyed))
|
|
120
|
+
.subscribe(newFocusIndex => {
|
|
121
|
+
this.indexFocused.emit(newFocusIndex);
|
|
122
|
+
this._setTabFocus(newFocusIndex);
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
/** Sets the distance in pixels that the tab header should be transformed in the X-axis. */
|
|
126
|
+
get scrollDistance() {
|
|
127
|
+
return this._scrollDistance;
|
|
128
|
+
}
|
|
129
|
+
set scrollDistance(v) {
|
|
130
|
+
this._scrollDistance = Math.max(0, Math.min(this._getMaxScrollDistance(), v));
|
|
131
|
+
// Mark that the scroll distance has changed so that after the view is checked, the CSS
|
|
132
|
+
// transformation can move the header.
|
|
133
|
+
this._scrollDistanceChanged = true;
|
|
134
|
+
this._checkScrollingControls();
|
|
135
|
+
}
|
|
136
|
+
/** Tracks which element has focus; used for keyboard navigation */
|
|
137
|
+
get focusIndex() {
|
|
138
|
+
return this._keyManager ? this._keyManager.activeItemIndex : 0;
|
|
139
|
+
}
|
|
140
|
+
/** When the focus index is set, we must manually send focus to the correct label */
|
|
141
|
+
set focusIndex(value) {
|
|
142
|
+
if (!this._isValidIndex(value) ||
|
|
143
|
+
this.focusIndex === value ||
|
|
144
|
+
!this._keyManager) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
this._keyManager.setActiveItem(value);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Determines if an index is valid. If the tabs are not ready yet, we assume that the user is
|
|
151
|
+
* providing a valid index and return true.
|
|
152
|
+
*/
|
|
153
|
+
_isValidIndex(index) {
|
|
154
|
+
if (!this._labelWrappers) {
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
const tab = this._labelWrappers
|
|
158
|
+
? this._labelWrappers.toArray()[index]
|
|
159
|
+
: null;
|
|
160
|
+
return !!tab && !tab.disabled;
|
|
161
|
+
}
|
|
162
|
+
_handleKeydown(event) {
|
|
163
|
+
switch (event.key) {
|
|
164
|
+
case 'Home':
|
|
165
|
+
this._keyManager.setFirstItemActive();
|
|
166
|
+
event.preventDefault();
|
|
167
|
+
break;
|
|
168
|
+
case 'End':
|
|
169
|
+
this._keyManager.setLastItemActive();
|
|
170
|
+
event.preventDefault();
|
|
171
|
+
break;
|
|
172
|
+
case 'Enter':
|
|
173
|
+
case 'Space':
|
|
174
|
+
this.selectFocusedIndex.emit(this.focusIndex);
|
|
175
|
+
event.preventDefault();
|
|
176
|
+
break;
|
|
177
|
+
default:
|
|
178
|
+
this._keyManager.onKeydown(event);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Sets focus on the HTML element for the label wrapper and scrolls it into the view if
|
|
183
|
+
* scrolling is enabled.
|
|
184
|
+
*/
|
|
185
|
+
_setTabFocus(tabIndex) {
|
|
186
|
+
if (this._showPaginationControls) {
|
|
187
|
+
this._scrollToLabel(tabIndex);
|
|
188
|
+
}
|
|
189
|
+
if (this._labelWrappers?.length > 0) {
|
|
190
|
+
this._labelWrappers.toArray()[tabIndex].focus();
|
|
191
|
+
// Do not let the browser manage scrolling to focus the element, this will be handled
|
|
192
|
+
// by using translation. In LTR, the scroll left should be 0. In RTL, the scroll width
|
|
193
|
+
// should be the full width minus the offset width.
|
|
194
|
+
const containerEl = this._tabListContainer.nativeElement;
|
|
195
|
+
containerEl.scrollLeft = 0;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Moves the tab list such that the desired tab label (marked by index) is moved into view.
|
|
200
|
+
*
|
|
201
|
+
* This is an expensive call that forces a layout reflow to compute box and scroll metrics and
|
|
202
|
+
* should be called sparingly.
|
|
203
|
+
*/
|
|
204
|
+
_scrollToLabel(labelIndex) {
|
|
205
|
+
const selectedLabel = this._labelWrappers
|
|
206
|
+
? this._labelWrappers.toArray()[labelIndex]
|
|
207
|
+
: null;
|
|
208
|
+
if (!selectedLabel) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
// The view length is the visible width of the tab labels.
|
|
212
|
+
const viewLength = this._tabListContainer.nativeElement.offsetWidth;
|
|
213
|
+
const labelBeforePos = selectedLabel.getOffsetLeft();
|
|
214
|
+
const labelAfterPos = labelBeforePos + selectedLabel.getOffsetWidth();
|
|
215
|
+
const beforeVisiblePos = this.scrollDistance;
|
|
216
|
+
const afterVisiblePos = this.scrollDistance + viewLength;
|
|
217
|
+
if (labelBeforePos < beforeVisiblePos) {
|
|
218
|
+
// Scroll header to move label to the before direction
|
|
219
|
+
this.scrollDistance -=
|
|
220
|
+
beforeVisiblePos - labelBeforePos + EXAGGERATED_OVERSCROLL;
|
|
221
|
+
}
|
|
222
|
+
else if (labelAfterPos > afterVisiblePos) {
|
|
223
|
+
// Scroll header to move label to the after direction
|
|
224
|
+
this.scrollDistance +=
|
|
225
|
+
labelAfterPos - afterVisiblePos + EXAGGERATED_OVERSCROLL;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Moves the tab list in the 'before' or 'after' direction (towards the beginning of the list or
|
|
230
|
+
* the end of the list, respectively). The distance to scroll is computed to be a third of the
|
|
231
|
+
* length of the tab list view window.
|
|
232
|
+
*
|
|
233
|
+
* This is an expensive call that forces a layout reflow to compute box and scroll metrics and
|
|
234
|
+
* should be called sparingly.
|
|
235
|
+
*/
|
|
236
|
+
_scrollHeader(scrollDir) {
|
|
237
|
+
const viewLength = this._tabListContainer.nativeElement.offsetWidth;
|
|
238
|
+
// Move the scroll distance one-third the length of the tab list's viewport.
|
|
239
|
+
this.scrollDistance += ((scrollDir === 'before' ? -1 : 1) * viewLength) / 3;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Callback for when the MutationObserver detects that the content has changed.
|
|
243
|
+
*/
|
|
244
|
+
_onContentChanges() {
|
|
245
|
+
this._updatePagination();
|
|
246
|
+
this._alignActiveIndicatorToSelectedTab();
|
|
247
|
+
this._changeDetectorRef.markForCheck();
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Updating the view whether pagination should be enabled or not
|
|
251
|
+
*/
|
|
252
|
+
_updatePagination() {
|
|
253
|
+
this._checkPaginationEnabled();
|
|
254
|
+
this._checkScrollingControls();
|
|
255
|
+
this._updateTabScrollPosition();
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Evaluate whether the pagination controls should be displayed. If the scroll width of the
|
|
259
|
+
* tab list is wider than the size of the header container, then the pagination controls should
|
|
260
|
+
* be shown.
|
|
261
|
+
*
|
|
262
|
+
* This is an expensive call that forces a layout reflow to compute box and scroll metrics and
|
|
263
|
+
* should be called sparingly.
|
|
264
|
+
*/
|
|
265
|
+
_checkPaginationEnabled() {
|
|
266
|
+
const isEnabled = this._tabList.nativeElement.scrollWidth >
|
|
267
|
+
this._paginationWrapper.nativeElement.offsetWidth + 2; // 2 is the border size
|
|
268
|
+
if (!isEnabled) {
|
|
269
|
+
this.scrollDistance = 0;
|
|
270
|
+
}
|
|
271
|
+
const detectChanges = isEnabled !== this._showPaginationControls;
|
|
272
|
+
this._showPaginationControls = isEnabled;
|
|
273
|
+
if (detectChanges) {
|
|
274
|
+
this._changeDetectorRef.markForCheck();
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Evaluate whether the before and after controls should be enabled or disabled.
|
|
279
|
+
* If the header is at the beginning of the list (scroll distance is equal to 0) then disable the
|
|
280
|
+
* before button. If the header is at the end of the list (scroll distance is equal to the
|
|
281
|
+
* maximum distance we can scroll), then disable the after button.
|
|
282
|
+
*
|
|
283
|
+
* This is an expensive call that forces a layout reflow to compute box and scroll metrics and
|
|
284
|
+
* should be called sparingly.
|
|
285
|
+
*/
|
|
286
|
+
_checkScrollingControls() {
|
|
287
|
+
// Check if the pagination arrows should be activated.
|
|
288
|
+
this._disableScrollBefore = this.scrollDistance === 0;
|
|
289
|
+
this._disableScrollAfter =
|
|
290
|
+
this.scrollDistance === this._getMaxScrollDistance();
|
|
291
|
+
this._changeDetectorRef.markForCheck();
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Determines what is the maximum length in pixels that can be set for the scroll distance. This
|
|
295
|
+
* is equal to the difference in width between the tab list container and tab header container.
|
|
296
|
+
*
|
|
297
|
+
* This is an expensive call that forces a layout reflow to compute box and scroll metrics and
|
|
298
|
+
* should be called sparingly.
|
|
299
|
+
*/
|
|
300
|
+
_getMaxScrollDistance() {
|
|
301
|
+
const lengthOfTabList = this._tabList.nativeElement.scrollWidth;
|
|
302
|
+
const viewLength = this._tabListContainer.nativeElement.offsetWidth;
|
|
303
|
+
return lengthOfTabList - viewLength || 0;
|
|
304
|
+
}
|
|
305
|
+
/** Performs the CSS transformation on the tab list that will cause the list to scroll. */
|
|
306
|
+
_updateTabScrollPosition() {
|
|
307
|
+
const scrollDistance = this.scrollDistance;
|
|
308
|
+
const translateX = -scrollDistance;
|
|
309
|
+
// Don't use `translate3d` here because we don't want to create a new layer. A new layer
|
|
310
|
+
// seems to cause flickering and overflow in Internet Explorer. For example, the ink bar
|
|
311
|
+
// and ripples will exceed the boundaries of the visible tab bar.
|
|
312
|
+
// See: https://github.com/angular/material2/issues/10276
|
|
313
|
+
this._tabList.nativeElement.style.transform = `translateX(${translateX}px)`;
|
|
314
|
+
}
|
|
315
|
+
/** Tells the active indicator to align itself to the current label wrapper */
|
|
316
|
+
_alignActiveIndicatorToSelectedTab() {
|
|
317
|
+
const selectedLabelWrapper = this._labelWrappers?.length > 0
|
|
318
|
+
? this._labelWrappers.toArray()[this.selectedIndex].elementRef
|
|
319
|
+
.nativeElement
|
|
320
|
+
: null;
|
|
321
|
+
this._activeIndicator.alignToElement(selectedLabelWrapper);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
TabHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TabHeaderComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ViewportRuler }], target: i0.ɵɵFactoryTarget.Component });
|
|
325
|
+
TabHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: TabHeaderComponent, selector: "aui-tab-header", inputs: { type: "type", size: "size", selectedIndex: "selectedIndex" }, outputs: { selectFocusedIndex: "selectFocusedIndex", indexFocused: "indexFocused" }, queries: [{ propertyName: "_headerAddon", first: true, predicate: TabHeaderAddonDirective, descendants: true }, { propertyName: "_title", first: true, predicate: TabTitleDirective, descendants: true }, { propertyName: "_labelWrappers", predicate: TabLabelWrapperDirective }], viewQueries: [{ propertyName: "_tabListContainer", first: true, predicate: ["tabListContainer"], descendants: true, static: true }, { propertyName: "_tabList", first: true, predicate: ["tabList"], descendants: true, static: true }, { propertyName: "_paginationWrapper", first: true, predicate: ["paginationWrapper"], descendants: true, static: true }, { propertyName: "_activeIndicator", first: true, predicate: TabHeaderActiveIndicatorComponent, descendants: true, static: true }], ngImport: i0, template: "<div [ngClass]=\"bem.block(type, size)\">\n <ng-container *ngIf=\"_title\">\n <div [ngClass]=\"bem.element('title')\">\n <ng-template [cdkPortalOutlet]=\"_title\"></ng-template>\n </div>\n </ng-container>\n <div [ngClass]=\"bem.element('header-wrapper')\">\n <div [ngClass]=\"bem.element('pagination-wrapper')\" #paginationWrapper>\n <div\n *ngIf=\"_showPaginationControls\"\n (click)=\"_scrollHeader('before')\"\n [attr.disabled]=\"_disableScrollBefore ? '' : null\"\n [ngClass]=\"bem.element('pagination-button')\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </div>\n <div\n [ngClass]=\"bem.element('tab-list-container')\"\n (keydown)=\"_handleKeydown($event)\"\n #tabListContainer\n >\n <div\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\"\n [ngClass]=\"bem.element('tab-list')\"\n #tabList\n >\n <div [ngClass]=\"bem.element('labels')\"><ng-content></ng-content></div>\n <aui-tab-header-active-indicator\n [type]=\"type\"\n ></aui-tab-header-active-indicator>\n </div>\n </div>\n <div\n *ngIf=\"_showPaginationControls\"\n (click)=\"_scrollHeader('after')\"\n [attr.disabled]=\"_disableScrollAfter ? '' : null\"\n [ngClass]=\"bem.element('pagination-button')\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </div>\n </div>\n <!-- If there is addon template, use it. -->\n <ng-container *ngIf=\"_showAddon\">\n <div [ngClass]=\"bem.element('addon')\">\n <ng-template [cdkPortalOutlet]=\"_headerAddon\"></ng-template>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";.aui-tab-header{display:flex;flex-direction:column;flex-shrink:0;position:relative;background-color:rgb(var(--aui-color-n-10))}.aui-tab-header--large .aui-tab-label{font-size:18px;padding:16px 20px;line-height:24px}.aui-tab-header--medium .aui-tab-label{font-size:16px;padding:12px 20px;line-height:22px}.aui-tab-header--small .aui-tab-label{font-size:14px;padding:8px 16px;line-height:20px}.aui-tab-header__header-wrapper{display:flex;flex-shrink:0;position:relative}.aui-tab-header__title{display:flex;justify-content:space-between;color:rgb(var(--aui-color-n-1));font-size:20px;margin-inline:20px;padding:20px 0 16px;font-weight:500;border-bottom:1px rgb(var(--aui-color-n-8)) solid;line-height:32px}.aui-tab-header--card{background-color:rgb(var(--aui-color-button-bg))}.aui-tab-header--line{border-radius:var(--aui-border-radius-l);overflow:hidden;box-shadow:0 0 4px #3234371a;background-color:rgb(var(--aui-color-n-10))}.aui-tab-header__pagination-wrapper{display:flex;overflow:hidden;flex-grow:1;align-items:center;position:relative}.aui-tab-header__pagination-button{width:32px;align-self:stretch;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;z-index:3;box-shadow:0 0 4px #ccc;opacity:.6;transition:box-shadow .3s,opacity .3s,color .3s}.aui-tab-header__pagination-button:hover{opacity:1;color:rgb(var(--aui-color-primary))}.aui-tab-header__pagination-button:first-of-type{margin-right:1px}.aui-tab-header__pagination-button:last-of-type{margin-left:1px}.aui-tab-header__pagination-button[disabled]{cursor:default;box-shadow:none;opacity:.1}.aui-tab-header__tab-list-container{display:flex;flex-grow:1;overflow:hidden;position:relative;z-index:1}.aui-tab-header__tab-list{flex-grow:1;position:relative;transition:all .3s cubic-bezier(.35,0,.25,1)}.aui-tab-header__labels{display:flex}.aui-tab-header__labels:focus{outline:none}.aui-tab-header__addon{display:inline-flex;align-items:center;justify-content:center;margin:0 8px}.aui-tab-header__spacer{flex:1 1 0}.aui-tab-label{position:relative;cursor:pointer;box-sizing:border-box;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;color:rgb(var(--aui-color-n-2));font-weight:400;z-index:2;transition:opacity .3s}.aui-tab-label:focus,.aui-tab-label.isActive{outline:none}.aui-tab-label:not(.aui-tab-label--disabled).isActive{font-weight:500}.aui-tab-label:not(.aui-tab-label--disabled).isActive,.aui-tab-label:not(.aui-tab-label--disabled):hover{color:rgb(var(--aui-color-primary))}.aui-tab-label.aui-tab-label--disabled{cursor:not-allowed;opacity:.2}.aui-tab-label__content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.aui-tab-label__close{margin-left:8px;font-size:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:rgb(var(--aui-color-n-4));transition:all .3s ease}.aui-tab-label__close:hover{color:rgb(var(--aui-color-n-9));background-color:rgb(var(--aui-color-n-4))}.aui-tab-label.cdk-focused:not(.cdk-mouse-focused){box-shadow:inset 0 0 0 3px #007af54d}aui-tab-header-active-indicator{display:flex;height:100%;position:absolute;top:0;pointer-events:none;transition:all .3s cubic-bezier(.35,0,.25,1)}.aui-tab-header-active-indicator{position:relative;flex:1;height:100%;z-index:1}.aui-tab-header-active-indicator:after{content:\"\";position:absolute;display:block;background:rgb(var(--aui-color-primary));height:2px}.aui-tab-header-active-indicator--line:after{width:100%;left:0;bottom:0}.aui-tab-header-active-indicator--card{background-color:rgb(var(--aui-color-n-10))}.aui-tab-header-active-indicator--card:after{width:calc(100% + 2px);top:0;left:-1px}\n"], components: [{ type: i2.IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { type: i3.TabHeaderActiveIndicatorComponent, selector: "aui-tab-header-active-indicator", inputs: ["type"] }], directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { type: i6.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
326
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TabHeaderComponent, decorators: [{
|
|
327
|
+
type: Component,
|
|
328
|
+
args: [{ selector: 'aui-tab-header', encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"bem.block(type, size)\">\n <ng-container *ngIf=\"_title\">\n <div [ngClass]=\"bem.element('title')\">\n <ng-template [cdkPortalOutlet]=\"_title\"></ng-template>\n </div>\n </ng-container>\n <div [ngClass]=\"bem.element('header-wrapper')\">\n <div [ngClass]=\"bem.element('pagination-wrapper')\" #paginationWrapper>\n <div\n *ngIf=\"_showPaginationControls\"\n (click)=\"_scrollHeader('before')\"\n [attr.disabled]=\"_disableScrollBefore ? '' : null\"\n [ngClass]=\"bem.element('pagination-button')\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </div>\n <div\n [ngClass]=\"bem.element('tab-list-container')\"\n (keydown)=\"_handleKeydown($event)\"\n #tabListContainer\n >\n <div\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\"\n [ngClass]=\"bem.element('tab-list')\"\n #tabList\n >\n <div [ngClass]=\"bem.element('labels')\"><ng-content></ng-content></div>\n <aui-tab-header-active-indicator\n [type]=\"type\"\n ></aui-tab-header-active-indicator>\n </div>\n </div>\n <div\n *ngIf=\"_showPaginationControls\"\n (click)=\"_scrollHeader('after')\"\n [attr.disabled]=\"_disableScrollAfter ? '' : null\"\n [ngClass]=\"bem.element('pagination-button')\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </div>\n </div>\n <!-- If there is addon template, use it. -->\n <ng-container *ngIf=\"_showAddon\">\n <div [ngClass]=\"bem.element('addon')\">\n <ng-template [cdkPortalOutlet]=\"_headerAddon\"></ng-template>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";.aui-tab-header{display:flex;flex-direction:column;flex-shrink:0;position:relative;background-color:rgb(var(--aui-color-n-10))}.aui-tab-header--large .aui-tab-label{font-size:18px;padding:16px 20px;line-height:24px}.aui-tab-header--medium .aui-tab-label{font-size:16px;padding:12px 20px;line-height:22px}.aui-tab-header--small .aui-tab-label{font-size:14px;padding:8px 16px;line-height:20px}.aui-tab-header__header-wrapper{display:flex;flex-shrink:0;position:relative}.aui-tab-header__title{display:flex;justify-content:space-between;color:rgb(var(--aui-color-n-1));font-size:20px;margin-inline:20px;padding:20px 0 16px;font-weight:500;border-bottom:1px rgb(var(--aui-color-n-8)) solid;line-height:32px}.aui-tab-header--card{background-color:rgb(var(--aui-color-button-bg))}.aui-tab-header--line{border-radius:var(--aui-border-radius-l);overflow:hidden;box-shadow:0 0 4px #3234371a;background-color:rgb(var(--aui-color-n-10))}.aui-tab-header__pagination-wrapper{display:flex;overflow:hidden;flex-grow:1;align-items:center;position:relative}.aui-tab-header__pagination-button{width:32px;align-self:stretch;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;z-index:3;box-shadow:0 0 4px #ccc;opacity:.6;transition:box-shadow .3s,opacity .3s,color .3s}.aui-tab-header__pagination-button:hover{opacity:1;color:rgb(var(--aui-color-primary))}.aui-tab-header__pagination-button:first-of-type{margin-right:1px}.aui-tab-header__pagination-button:last-of-type{margin-left:1px}.aui-tab-header__pagination-button[disabled]{cursor:default;box-shadow:none;opacity:.1}.aui-tab-header__tab-list-container{display:flex;flex-grow:1;overflow:hidden;position:relative;z-index:1}.aui-tab-header__tab-list{flex-grow:1;position:relative;transition:all .3s cubic-bezier(.35,0,.25,1)}.aui-tab-header__labels{display:flex}.aui-tab-header__labels:focus{outline:none}.aui-tab-header__addon{display:inline-flex;align-items:center;justify-content:center;margin:0 8px}.aui-tab-header__spacer{flex:1 1 0}.aui-tab-label{position:relative;cursor:pointer;box-sizing:border-box;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;color:rgb(var(--aui-color-n-2));font-weight:400;z-index:2;transition:opacity .3s}.aui-tab-label:focus,.aui-tab-label.isActive{outline:none}.aui-tab-label:not(.aui-tab-label--disabled).isActive{font-weight:500}.aui-tab-label:not(.aui-tab-label--disabled).isActive,.aui-tab-label:not(.aui-tab-label--disabled):hover{color:rgb(var(--aui-color-primary))}.aui-tab-label.aui-tab-label--disabled{cursor:not-allowed;opacity:.2}.aui-tab-label__content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.aui-tab-label__close{margin-left:8px;font-size:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:rgb(var(--aui-color-n-4));transition:all .3s ease}.aui-tab-label__close:hover{color:rgb(var(--aui-color-n-9));background-color:rgb(var(--aui-color-n-4))}.aui-tab-label.cdk-focused:not(.cdk-mouse-focused){box-shadow:inset 0 0 0 3px #007af54d}aui-tab-header-active-indicator{display:flex;height:100%;position:absolute;top:0;pointer-events:none;transition:all .3s cubic-bezier(.35,0,.25,1)}.aui-tab-header-active-indicator{position:relative;flex:1;height:100%;z-index:1}.aui-tab-header-active-indicator:after{content:\"\";position:absolute;display:block;background:rgb(var(--aui-color-primary));height:2px}.aui-tab-header-active-indicator--line:after{width:100%;left:0;bottom:0}.aui-tab-header-active-indicator--card{background-color:rgb(var(--aui-color-n-10))}.aui-tab-header-active-indicator--card:after{width:calc(100% + 2px);top:0;left:-1px}\n"] }]
|
|
329
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.ViewportRuler }]; }, propDecorators: { type: [{
|
|
330
|
+
type: Input
|
|
331
|
+
}], size: [{
|
|
332
|
+
type: Input
|
|
333
|
+
}], selectedIndex: [{
|
|
334
|
+
type: Input
|
|
335
|
+
}], selectFocusedIndex: [{
|
|
336
|
+
type: Output
|
|
337
|
+
}], indexFocused: [{
|
|
338
|
+
type: Output
|
|
339
|
+
}], _headerAddon: [{
|
|
340
|
+
type: ContentChild,
|
|
341
|
+
args: [TabHeaderAddonDirective, { static: false }]
|
|
342
|
+
}], _title: [{
|
|
343
|
+
type: ContentChild,
|
|
344
|
+
args: [TabTitleDirective, { static: false }]
|
|
345
|
+
}],
|
|
346
|
+
/**
|
|
347
|
+
* workaround for @link https://github.com/microsoft/TypeScript/pull/42425
|
|
348
|
+
*/
|
|
349
|
+
_labelWrappers: [{
|
|
350
|
+
type: ContentChildren,
|
|
351
|
+
args: [TabLabelWrapperDirective]
|
|
352
|
+
}], _tabListContainer: [{
|
|
353
|
+
type: ViewChild,
|
|
354
|
+
args: ['tabListContainer', { static: true }]
|
|
355
|
+
}], _tabList: [{
|
|
356
|
+
type: ViewChild,
|
|
357
|
+
args: ['tabList', { static: true }]
|
|
358
|
+
}], _paginationWrapper: [{
|
|
359
|
+
type: ViewChild,
|
|
360
|
+
args: ['paginationWrapper', { static: true }]
|
|
361
|
+
}], _activeIndicator: [{
|
|
362
|
+
type: ViewChild,
|
|
363
|
+
args: [TabHeaderActiveIndicatorComponent, { static: true }]
|
|
364
|
+
}] } });
|
|
365
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFicy90YWItaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy90YWJzL3RhYi1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE9BQU8sRUFHTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQU8sUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4QixpQkFBaUIsR0FDbEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM1RixPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7QUFRaEQ7OztHQUdHO0FBQ0gsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUM7QUFVbEMsTUFBTSxPQUFPLGtCQUFrQjtJQXNZN0IsWUFDbUIsa0JBQXFDLEVBQ3JDLGNBQTZCO1FBRDdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFyWWhELFFBQUcsR0FBUSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUV0QyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5C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QWlCLENBQUMsSUFBSSx1QkFDaEIsS0FBSyxtQkFDVCx1QkFBdUIsQ0FBQyxNQUFNO29JQTBDL0MsSUFBSTtzQkFESCxLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFLRixhQUFhO3NCQURoQixLQUFLO2dCQWlCRyxrQkFBa0I7c0JBRDFCLE1BQU07Z0JBS0UsWUFBWTtzQkFEcEIsTUFBTTtnQkFJUCxZQUFZO3NCQURYLFlBQVk7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUl4RCxNQUFNO3NCQURMLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOztRQUlsRDs7V0FFRztRQUNILGNBQWM7c0JBSmIsZUFBZTt1QkFBQyx3QkFBd0I7Z0JBT3pDLGlCQUFpQjtzQkFEaEIsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSS9DLFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUl0QyxrQkFBa0I7c0JBRGpCLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUloRCxnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxpQ0FBaUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c0tleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBWaWV3cG9ydFJ1bGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBCZW0sIGJ1aWxkQmVtLCBjb2VyY2VOdW1iZXIgfSBmcm9tICcuLi91dGlscyc7XG5cbmltcG9ydCB7XG4gIFRhYkhlYWRlckFkZG9uRGlyZWN0aXZlLFxuICBUYWJMYWJlbFdyYXBwZXJEaXJlY3RpdmUsXG4gIFRhYlRpdGxlRGlyZWN0aXZlLFxufSBmcm9tICcuL3RhYi1ib2R5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJIZWFkZXJBY3RpdmVJbmRpY2F0b3JDb21wb25lbnQgfSBmcm9tICcuL3RhYi1oZWFkZXItYWN0aXZlLWluZGljYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiU2l6ZSwgVGFiVHlwZSB9IGZyb20gJy4vdGFicy50eXBlcyc7XG5cbi8qKlxuICogVGhlIGRpcmVjdGlvbnMgdGhhdCBzY3JvbGxpbmcgY2FuIGdvIGluIHdoZW4gdGhlIGhlYWRlcidzIHRhYnMgZXhjZWVkIHRoZSBoZWFkZXIgd2lkdGguICdBZnRlcidcbiAqIHdpbGwgc2Nyb2xsIHRoZSBoZWFkZXIgdG93YXJkcyB0aGUgZW5kIG9mIHRoZSB0YWJzIGxpc3QgYW5kICdiZWZvcmUnIHdpbGwgc2Nyb2xsIHRvd2FyZHMgdGhlXG4gKiBiZWdpbm5pbmcgb2YgdGhlIGxpc3QuXG4gKi9cbmV4cG9ydCB0eXBlIFNjcm9sbERpcmVjdGlvbiA9ICdhZnRlcicgfCAnYmVmb3JlJztcbi8qKlxuICogVGhlIGRpc3RhbmNlIGluIHBpeGVscyB0aGF0IHdpbGwgYmUgb3ZlcnNob3Qgd2hlbiBzY3JvbGxpbmcgYSB0YWIgbGFiZWwgaW50byB2aWV3LiBUaGlzIGhlbHBzXG4gKiBwcm92aWRlIGEgc21hbGwgYWZmb3JkYW5jZSB0byB0aGUgbGFiZWwgbmV4dCB0byBpdC5cbiAqL1xuY29uc3QgRVhBR0dFUkFURURfT1ZFUlNDUk9MTCA9IDYwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktdGFiLWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWItaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFiLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRhYkhlYWRlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgQWZ0ZXJDb250ZW50SW5pdFxue1xuICBiZW06IEJlbSA9IGJ1aWxkQmVtKCdhdWktdGFiLWhlYWRlcicpO1xuXG4gIF9zaG93QWRkb24gPSBmYWxzZTtcblxuICAvKiogV2hldGhlciB0aGUgY29udHJvbHMgZm9yIHBhZ2luYXRpb24gc2hvdWxkIGJlIGRpc3BsYXllZCAqL1xuICBfc2hvd1BhZ2luYXRpb25Db250cm9scyA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSB0YWIgbGlzdCBjYW4gYmUgc2Nyb2xsZWQgbW9yZSB0b3dhcmRzIHRoZSBlbmQgb2YgdGhlIHRhYiBsYWJlbCBsaXN0LiAqL1xuICBfZGlzYWJsZVNjcm9sbEFmdGVyID0gdHJ1ZTtcblxuICAvKiogV2hldGhlciB0aGUgdGFiIGxpc3QgY2FuIGJlIHNjcm9sbGVkIG1vcmUgdG93YXJkcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0YWIgbGFiZWwgbGlzdC4gKi9cbiAgX2Rpc2FibGVTY3JvbGxCZWZvcmUgPSB0cnVlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBzY3JvbGwgZGlzdGFuY2UgaGFzIGNoYW5nZWQgYW5kIHNob3VsZCBiZSBhcHBsaWVkIGFmdGVyIHRoZSB2aWV3IGlzIGNoZWNrZWQuICovXG4gIHByaXZhdGUgX3Njcm9sbERpc3RhbmNlQ2hhbmdlZDogYm9vbGVhbjtcblxuICAvKiogV2hldGhlciB0aGUgaGVhZGVyIHNob3VsZCBzY3JvbGwgdG8gdGhlIHNlbGVjdGVkIGluZGV4IGFmdGVyIHRoZSB2aWV3IGhhcyBiZWVuIGNoZWNrZWQuICovXG4gIHByaXZhdGUgX3NlbGVjdGVkSW5kZXhDaGFuZ2VkID0gZmFsc2U7XG5cbiAgLyoqIFRoZSBkaXN0YW5jZSBpbiBwaXhlbHMgdGhhdCB0aGUgdGFiIGxhYmVscyBzaG91bGQgYmUgdHJhbnNsYXRlZCB0byB0aGUgbGVmdC4gKi9cbiAgcHJpdmF0ZSBfc2Nyb2xsRGlzdGFuY2UgPSAwO1xuXG4gIHByaXZhdGUgX3NlbGVjdGVkSW5kZXggPSAwO1xuXG4gIC8qKiBFbWl0cyB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKiBVc2VkIHRvIG1hbmFnZSBmb2N1cyBiZXR3ZWVuIHRoZSB0YWJzLiAqL1xuICBwcml2YXRlIF9rZXlNYW5hZ2VyOiBGb2N1c0tleU1hbmFnZXI8VGFiTGFiZWxXcmFwcGVyRGlyZWN0aXZlPjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiB0YWIgbGFiZWxzIHRoYXQgYXJlIGRpc3BsYXllZCBvbiB0aGUgaGVhZGVyLiBXaGVuIHRoaXMgY2hhbmdlcywgdGhlIGhlYWRlclxuICAgKiBzaG91bGQgcmUtZXZhbHVhdGUgdGhlIHNjcm9sbCBwb3NpdGlvbi5cbiAgICovXG4gIHByaXZhdGUgX3RhYkxhYmVsQ291bnQ6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICB0eXBlOiBUYWJUeXBlID0gVGFiVHlwZS5MaW5lO1xuXG4gIEBJbnB1dCgpXG4gIHNpemU6IFRhYlNpemUgPSBUYWJTaXplLk1lZGl1bTtcblxuICAvKiogVGhlIGluZGV4IG9mIHRoZSBhY3RpdmUgdGFiLiAqL1xuICBASW5wdXQoKVxuICBnZXQgc2VsZWN0ZWRJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEluZGV4O1xuICB9XG5cbiAgc2V0IHNlbGVjdGVkSW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIHZhbHVlID0gY29lcmNlTnVtYmVyKHZhbHVlKTtcbiAgICB0aGlzLl9zZWxlY3RlZEluZGV4Q2hhbmdlZCA9IHRoaXMuX3NlbGVjdGVkSW5kZXggIT09IHZhbHVlO1xuICAgIHRoaXMuX3NlbGVjdGVkSW5kZXggPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLl9rZXlNYW5hZ2VyKSB7XG4gICAgICB0aGlzLl9rZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0odmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIG9wdGlvbiBpcyBzZWxlY3RlZC4gKi9cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHNlbGVjdEZvY3VzZWRJbmRleCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBsYWJlbCBpcyBmb2N1c2VkLiAqL1xuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgaW5kZXhGb2N1c2VkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQENvbnRlbnRDaGlsZChUYWJIZWFkZXJBZGRvbkRpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIF9oZWFkZXJBZGRvbjogVGFiSGVhZGVyQWRkb25EaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZChUYWJUaXRsZURpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIF90aXRsZTogVGFiVGl0bGVEaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihUYWJMYWJlbFdyYXBwZXJEaXJlY3RpdmUpXG4gIC8qKlxuICAgKiB3b3JrYXJvdW5kIGZvciBAbGluayBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvcHVsbC80MjQyNVxuICAgKi9cbiAgX2xhYmVsV3JhcHBlcnM6IFF1ZXJ5TGlzdDxUYWJMYWJlbFdyYXBwZXJEaXJlY3RpdmUgJiB7IGRpc2FibGVkPzogYm9vbGVhbiB9PjtcblxuICBAVmlld0NoaWxkKCd0YWJMaXN0Q29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgX3RhYkxpc3RDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ3RhYkxpc3QnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBfdGFiTGlzdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgncGFnaW5hdGlvbldyYXBwZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBfcGFnaW5hdGlvbldyYXBwZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoVGFiSGVhZGVyQWN0aXZlSW5kaWNhdG9yQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBfYWN0aXZlSW5kaWNhdG9yOiBUYWJIZWFkZXJBY3RpdmVJbmRpY2F0b3JDb21wb25lbnQ7XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZGVzdHJveWVkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAvLyBJZiB0aGUgbnVtYmVyIG9mIHRhYiBsYWJlbHMgaGF2ZSBjaGFuZ2VkLCBjaGVjayBpZiBzY3JvbGxpbmcgc2hvdWxkIGJlIGVuYWJsZWRcbiAgICBpZiAodGhpcy5fdGFiTGFiZWxDb3VudCAhPT0gdGhpcy5fbGFiZWxXcmFwcGVycy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVBhZ2luYXRpb24oKTtcbiAgICAgIHRoaXMuX3RhYkxhYmVsQ291bnQgPSB0aGlzLl9sYWJlbFdyYXBwZXJzLmxlbmd0aDtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBzZWxlY3RlZCBpbmRleCBoYXMgY2hhbmdlZCwgc2Nyb2xsIHRvIHRoZSBsYWJlbCBhbmQgY2hlY2sgaWYgdGhlIHNjcm9sbGluZyBjb250cm9sc1xuICAgIC8vIHNob3VsZCBiZSBkaXNhYmxlZC5cbiAgICBpZiAodGhpcy5fc2VsZWN0ZWRJbmRleENoYW5nZWQpIHtcbiAgICAgIHRoaXMuX3Njcm9sbFRvTGFiZWwodGhpcy5fc2VsZWN0ZWRJbmRleCk7XG4gICAgICB0aGlzLl9jaGVja1Njcm9sbGluZ0NvbnRyb2xzKCk7XG4gICAgICB0aGlzLl9hbGlnbkFjdGl2ZUluZGljYXRvclRvU2VsZWN0ZWRUYWIoKTtcbiAgICAgIHRoaXMuX3NlbGVjdGVkSW5kZXhDaGFuZ2VkID0gZmFsc2U7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgc2Nyb2xsIGRpc3RhbmNlIGhhcyBiZWVuIGNoYW5nZWQgKHRhYiBzZWxlY3RlZCwgZm9jdXNlZCwgc2Nyb2xsIGNvbnRyb2xzIGFjdGl2YXRlZCksXG4gICAgLy8gdGhlbiB0cmFuc2xhdGUgdGhlIGhlYWRlciB0byByZWZsZWN0IHRoaXMuXG4gICAgaWYgKHRoaXMuX3Njcm9sbERpc3RhbmNlQ2hhbmdlZCkge1xuICAgICAgdGhpcy5fdXBkYXRlVGFiU2Nyb2xsUG9zaXRpb24oKTtcbiAgICAgIHRoaXMuX3Njcm9sbERpc3RhbmNlQ2hhbmdlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Nob3dBZGRvbiAhPT0gISF0aGlzLl9oZWFkZXJBZGRvbikge1xuICAgICAgdGhpcy5fc2hvd0FkZG9uID0gISF0aGlzLl9oZWFkZXJBZGRvbjtcbiAgICAgIHRoaXMuX3VwZGF0ZVBhZ2luYXRpb24oKTtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBbGlnbnMgdGhlIGluayBiYXIgdG8gdGhlIHNlbGVjdGVkIHRhYiBvbiBsb2FkLlxuICAgKi9cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIGNvbnN0IHJlc2l6ZSA9IHRoaXMuX3ZpZXdwb3J0UnVsZXIuY2hhbmdlKDE1MCk7XG4gICAgY29uc3QgcmVhbGlnbiA9ICgpID0+IHtcbiAgICAgIHRoaXMuX3VwZGF0ZVBhZ2luYXRpb24oKTtcbiAgICAgIHRoaXMuX2FsaWduQWN0aXZlSW5kaWNhdG9yVG9TZWxlY3RlZFRhYigpO1xuICAgIH07XG5cbiAgICB0aGlzLl9rZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcih0aGlzLl9sYWJlbFdyYXBwZXJzKVxuICAgICAgLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24oJ2x0cicpXG4gICAgICAud2l0aFdyYXAoKTtcbiAgICB0aGlzLl9rZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0oMCk7XG5cbiAgICAvLyBEZWZlciB0aGUgZmlyc3QgY2FsbCBpbiBvcmRlciB0byBhbGxvdyBmb3Igc2xvd2VyIGJyb3dzZXJzIHRvIGxheSBvdXQgdGhlIGVsZW1lbnRzLlxuICAgIC8vIFRoaXMgaGVscHMgaW4gY2FzZXMgd2hlcmUgdGhlIHVzZXIgbGFuZHMgZGlyZWN0bHkgb24gYSBwYWdlIHdpdGggcGFnaW5hdGVkIHRhYnMuXG4gICAgdHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgID8gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlYWxpZ24pXG4gICAgICA6IHJlYWxpZ24oKTtcblxuICAgIC8vIE9uIHdpbmRvdyByZXNpemUsIHJlYWxpZ24gdGhlIGluayBiYXIgYW5kIHVwZGF0ZSB0aGUgb3JpZW50YXRpb24gb2ZcbiAgICAvLyB0aGUga2V5IG1hbmFnZXIgaWYgdGhlIGRpcmVjdGlvbiBoYXMgY2hhbmdlZC5cbiAgICByZXNpemUucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHJlYWxpZ24oKTtcbiAgICB9KTtcblxuICAgIC8vIElmIHRoZXJlIGlzIGEgY2hhbmdlIGluIHRoZSBmb2N1cyBrZXkgbWFuYWdlciB3ZSBuZWVkIHRvIGVtaXQgdGhlIGBpbmRleEZvY3VzZWRgXG4gICAgLy8gZXZlbnQgaW4gb3JkZXIgdG8gcHJvdmlkZSBhIHB1YmxpYyBldmVudCB0aGF0IG5vdGlmaWVzIGFib3V0IGZvY3VzIGNoYW5nZXMuIEFsc28gd2UgcmVhbGlnblxuICAgIC8vIHRoZSB0YWJzIGNvbnRhaW5lciBieSBzY3JvbGxpbmcgdGhlIG5ldyBmb2N1c2VkIHRhYiBpbnRvIHRoZSB2aXNpYmxlIHNlY3Rpb24uXG4gICAgdGhpcy5fa2V5TWFuYWdlci5jaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpKVxuICAgICAgLnN1YnNjcmliZShuZXdGb2N1c0luZGV4ID0+IHtcbiAgICAgICAgdGhpcy5pbmRleEZvY3VzZWQuZW1pdChuZXdGb2N1c0luZGV4KTtcbiAgICAgICAgdGhpcy5fc2V0VGFiRm9jdXMobmV3Rm9jdXNJbmRleCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKiBTZXRzIHRoZSBkaXN0YW5jZSBpbiBwaXhlbHMgdGhhdCB0aGUgdGFiIGhlYWRlciBzaG91bGQgYmUgdHJhbnNmb3JtZWQgaW4gdGhlIFgtYXhpcy4gKi9cbiAgZ2V0IHNjcm9sbERpc3RhbmNlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3Njcm9sbERpc3RhbmNlO1xuICB9XG5cbiAgc2V0IHNjcm9sbERpc3RhbmNlKHY6IG51bWJlcikge1xuICAgIHRoaXMuX3Njcm9sbERpc3RhbmNlID0gTWF0aC5tYXgoXG4gICAgICAwLFxuICAgICAgTWF0aC5taW4odGhpcy5fZ2V0TWF4U2Nyb2xsRGlzdGFuY2UoKSwgdiksXG4gICAgKTtcbiAgICAvLyBNYXJrIHRoYXQgdGhlIHNjcm9sbCBkaXN0YW5jZSBoYXMgY2hhbmdlZCBzbyB0aGF0IGFmdGVyIHRoZSB2aWV3IGlzIGNoZWNrZWQsIHRoZSBDU1NcbiAgICAvLyB0cmFuc2Zvcm1hdGlvbiBjYW4gbW92ZSB0aGUgaGVhZGVyLlxuICAgIHRoaXMuX3Njcm9sbERpc3RhbmNlQ2hhbmdlZCA9IHRydWU7XG4gICAgdGhpcy5fY2hlY2tTY3JvbGxpbmdDb250cm9scygpO1xuICB9XG5cbiAgLyoqIFRyYWNrcyB3aGljaCBlbGVtZW50IGhhcyBmb2N1czsgdXNlZCBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbiAqL1xuICBnZXQgZm9jdXNJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9rZXlNYW5hZ2VyID8gdGhpcy5fa2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXggOiAwO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIGZvY3VzIGluZGV4IGlzIHNldCwgd2UgbXVzdCBtYW51YWxseSBzZW5kIGZvY3VzIHRvIHRoZSBjb3JyZWN0IGxhYmVsICovXG4gIHNldCBmb2N1c0luZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5faXNWYWxpZEluZGV4KHZhbHVlKSB8fFxuICAgICAgdGhpcy5mb2N1c0luZGV4ID09PSB2YWx1ZSB8fFxuICAgICAgIXRoaXMuX2tleU1hbmFnZXJcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGFuIGluZGV4IGlzIHZhbGlkLiAgSWYgdGhlIHRhYnMgYXJlIG5vdCByZWFkeSB5ZXQsIHdlIGFzc3VtZSB0aGF0IHRoZSB1c2VyIGlzXG4gICAqIHByb3ZpZGluZyBhIHZhbGlkIGluZGV4IGFuZCByZXR1cm4gdHJ1ZS5cbiAgICovXG4gIF9pc1ZhbGlkSW5kZXgoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5fbGFiZWxXcmFwcGVycykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IHRhYiA9IHRoaXMuX2xhYmVsV3JhcHBlcnNcbiAgICAgID8gdGhpcy5fbGFiZWxXcmFwcGVycy50b0FycmF5KClbaW5kZXhdXG4gICAgICA6IG51bGw7XG4gICAgcmV0dXJuICEhdGFiICYmICF0YWIuZGlzYWJsZWQ7XG4gIH1cblxuICBfaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdIb21lJzpcbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFbmQnOlxuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyLnNldExhc3RJdGVtQWN0aXZlKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgY2FzZSAnU3BhY2UnOlxuICAgICAgICB0aGlzLnNlbGVjdEZvY3VzZWRJbmRleC5lbWl0KHRoaXMuZm9jdXNJbmRleCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlci5vbktleWRvd24oZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGZvY3VzIG9uIHRoZSBIVE1MIGVsZW1lbnQgZm9yIHRoZSBsYWJlbCB3cmFwcGVyIGFuZCBzY3JvbGxzIGl0IGludG8gdGhlIHZpZXcgaWZcbiAgICogc2Nyb2xsaW5nIGlzIGVuYWJsZWQuXG4gICAqL1xuICBfc2V0VGFiRm9jdXModGFiSW5kZXg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLl9zaG93UGFnaW5hdGlvbkNvbnRyb2xzKSB7XG4gICAgICB0aGlzLl9zY3JvbGxUb0xhYmVsKHRhYkluZGV4KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2xhYmVsV3JhcHBlcnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX2xhYmVsV3JhcHBlcnMudG9BcnJheSgpW3RhYkluZGV4XS5mb2N1cygpO1xuICAgICAgLy8gRG8gbm90IGxldCB0aGUgYnJvd3NlciBtYW5hZ2Ugc2Nyb2xsaW5nIHRvIGZvY3VzIHRoZSBlbGVtZW50LCB0aGlzIHdpbGwgYmUgaGFuZGxlZFxuICAgICAgLy8gYnkgdXNpbmcgdHJhbnNsYXRpb24uIEluIExUUiwgdGhlIHNjcm9sbCBsZWZ0IHNob3VsZCBiZSAwLiBJbiBSVEwsIHRoZSBzY3JvbGwgd2lkdGhcbiAgICAgIC8vIHNob3VsZCBiZSB0aGUgZnVsbCB3aWR0aCBtaW51cyB0aGUgb2Zmc2V0IHdpZHRoLlxuICAgICAgY29uc3QgY29udGFpbmVyRWwgPSB0aGlzLl90YWJMaXN0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBjb250YWluZXJFbC5zY3JvbGxMZWZ0ID0gMDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTW92ZXMgdGhlIHRhYiBsaXN0IHN1Y2ggdGhhdCB0aGUgZGVzaXJlZCB0YWIgbGFiZWwgKG1hcmtlZCBieSBpbmRleCkgaXMgbW92ZWQgaW50byB2aWV3LlxuICAgKlxuICAgKiBUaGlzIGlzIGFuIGV4cGVuc2l2ZSBjYWxsIHRoYXQgZm9yY2VzIGEgbGF5b3V0IHJlZmxvdyB0byBjb21wdXRlIGJveCBhbmQgc2Nyb2xsIG1ldHJpY3MgYW5kXG4gICAqIHNob3VsZCBiZSBjYWxsZWQgc3BhcmluZ2x5LlxuICAgKi9cbiAgX3Njcm9sbFRvTGFiZWwobGFiZWxJbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRMYWJlbCA9IHRoaXMuX2xhYmVsV3JhcHBlcnNcbiAgICAgID8gdGhpcy5fbGFiZWxXcmFwcGVycy50b0FycmF5KClbbGFiZWxJbmRleF1cbiAgICAgIDogbnVsbDtcbiAgICBpZiAoIXNlbGVjdGVkTGFiZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gVGhlIHZpZXcgbGVuZ3RoIGlzIHRoZSB2aXNpYmxlIHdpZHRoIG9mIHRoZSB0YWIgbGFiZWxzLlxuICAgIGNvbnN0IHZpZXdMZW5ndGggPSB0aGlzLl90YWJMaXN0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgY29uc3QgbGFiZWxCZWZvcmVQb3MgPSBzZWxlY3RlZExhYmVsLmdldE9mZnNldExlZnQoKTtcbiAgICBjb25zdCBsYWJlbEFmdGVyUG9zID0gbGFiZWxCZWZvcmVQb3MgKyBzZWxlY3RlZExhYmVsLmdldE9mZnNldFdpZHRoKCk7XG4gICAgY29uc3QgYmVmb3JlVmlzaWJsZVBvcyA9IHRoaXMuc2Nyb2xsRGlzdGFuY2U7XG4gICAgY29uc3QgYWZ0ZXJWaXNpYmxlUG9zID0gdGhpcy5zY3JvbGxEaXN0YW5jZSArIHZpZXdMZW5ndGg7XG4gICAgaWYgKGxhYmVsQmVmb3JlUG9zIDwgYmVmb3JlVmlzaWJsZVBvcykge1xuICAgICAgLy8gU2Nyb2xsIGhlYWRlciB0byBtb3ZlIGxhYmVsIHRvIHRoZSBiZWZvcmUgZGlyZWN0aW9uXG4gICAgICB0aGlzLnNjcm9sbERpc3RhbmNlIC09XG4gICAgICAgIGJlZm9yZVZpc2libGVQb3MgLSBsYWJlbEJlZm9yZVBvcyArIEVYQUdHRVJBVEVEX09WRVJTQ1JPTEw7XG4gICAgfSBlbHNlIGlmIChsYWJlbEFmdGVyUG9zID4gYWZ0ZXJWaXNpYmxlUG9zKSB7XG4gICAgICAvLyBTY3JvbGwgaGVhZGVyIHRvIG1vdmUgbGFiZWwgdG8gdGhlIGFmdGVyIGRpcmVjdGlvblxuICAgICAgdGhpcy5zY3JvbGxEaXN0YW5jZSArPVxuICAgICAgICBsYWJlbEFmdGVyUG9zIC0gYWZ0ZXJWaXNpYmxlUG9zICsgRVhBR0dFUkFURURfT1ZFUlNDUk9MTDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTW92ZXMgdGhlIHRhYiBsaXN0IGluIHRoZSAnYmVmb3JlJyBvciAnYWZ0ZXInIGRpcmVjdGlvbiAodG93YXJkcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0IG9yXG4gICAqIHRoZSBlbmQgb2YgdGhlIGxpc3QsIHJlc3BlY3RpdmVseSkuIFRoZSBkaXN0YW5jZSB0byBzY3JvbGwgaXMgY29tcHV0ZWQgdG8gYmUgYSB0aGlyZCBvZiB0aGVcbiAgICogbGVuZ3RoIG9mIHRoZSB0YWIgbGlzdCB2aWV3IHdpbmRvdy5cbiAgICpcbiAgICogVGhpcyBpcyBhbiBleHBlbnNpdmUgY2FsbCB0aGF0IGZvcmNlcyBhIGxheW91dCByZWZsb3cgdG8gY29tcHV0ZSBib3ggYW5kIHNjcm9sbCBtZXRyaWNzIGFuZFxuICAgKiBzaG91bGQgYmUgY2FsbGVkIHNwYXJpbmdseS5cbiAgICovXG4gIF9zY3JvbGxIZWFkZXIoc2Nyb2xsRGlyOiBTY3JvbGxEaXJlY3Rpb24pIHtcbiAgICBjb25zdCB2aWV3TGVuZ3RoID0gdGhpcy5fdGFiTGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIC8vIE1vdmUgdGhlIHNjcm9sbCBkaXN0YW5jZSBvbmUtdGhpcmQgdGhlIGxlbmd0aCBvZiB0aGUgdGFiIGxpc3QncyB2aWV3cG9ydC5cbiAgICB0aGlzLnNjcm9sbERpc3RhbmNlICs9ICgoc2Nyb2xsRGlyID09PSAnYmVmb3JlJyA/IC0xIDogMSkgKiB2aWV3TGVuZ3RoKSAvIDM7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGJhY2sgZm9yIHdoZW4gdGhlIE11dGF0aW9uT2JzZXJ2ZXIgZGV0ZWN0cyB0aGF0IHRoZSBjb250ZW50IGhhcyBjaGFuZ2VkLlxuICAgKi9cbiAgX29uQ29udGVudENoYW5nZXMoKSB7XG4gICAgdGhpcy5fdXBkYXRlUGFnaW5hdGlvbigpO1xuICAgIHRoaXMuX2FsaWduQWN0aXZlSW5kaWNhdG9yVG9TZWxlY3RlZFRhYigpO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0aW5nIHRoZSB2aWV3IHdoZXRoZXIgcGFnaW5hdGlvbiBzaG91bGQgYmUgZW5hYmxlZCBvciBub3RcbiAgICovXG4gIF91cGRhdGVQYWdpbmF0aW9uKCkge1xuICAgIHRoaXMuX2NoZWNrUGFnaW5hdGlvbkVuYWJsZWQoKTtcbiAgICB0aGlzLl9jaGVja1Njcm9sbGluZ0NvbnRyb2xzKCk7XG4gICAgdGhpcy5fdXBkYXRlVGFiU2Nyb2xsUG9zaXRpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdmFsdWF0ZSB3aGV0aGVyIHRoZSBwYWdpbmF0aW9uIGNvbnRyb2xzIHNob3VsZCBiZSBkaXNwbGF5ZWQuIElmIHRoZSBzY3JvbGwgd2lkdGggb2YgdGhlXG4gICAqIHRhYiBsaXN0IGlzIHdpZGVyIHRoYW4gdGhlIHNpemUgb2YgdGhlIGhlYWRlciBjb250YWluZXIsIHRoZW4gdGhlIHBhZ2luYXRpb24gY29udHJvbHMgc2hvdWxkXG4gICAqIGJlIHNob3duLlxuICAgKlxuICAgKiBUaGlzIGlzIGFuIGV4cGVuc2l2ZSBjYWxsIHRoYXQgZm9yY2VzIGEgbGF5b3V0IHJlZmxvdyB0byBjb21wdXRlIGJveCBhbmQgc2Nyb2xsIG1ldHJpY3MgYW5kXG4gICAqIHNob3VsZCBiZSBjYWxsZWQgc3BhcmluZ2x5LlxuICAgKi9cbiAgX2NoZWNrUGFnaW5hdGlvbkVuYWJsZWQoKSB7XG4gICAgY29uc3QgaXNFbmFibGVkID1cbiAgICAgIHRoaXMuX3RhYkxpc3QubmF0aXZlRWxlbWVudC5zY3JvbGxXaWR0aCA+XG4gICAgICB0aGlzLl9wYWdpbmF0aW9uV3JhcHBlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICsgMjsgLy8gMiBpcyB0aGUgYm9yZGVyIHNpemVcbiAgICBpZiAoIWlzRW5hYmxlZCkge1xuICAgICAgdGhpcy5zY3JvbGxEaXN0YW5jZSA9IDA7XG4gICAgfVxuICAgIGNvbnN0IGRldGVjdENoYW5nZXMgPSBpc0VuYWJsZWQgIT09IHRoaXMuX3Nob3dQYWdpbmF0aW9uQ29udHJvbHM7XG4gICAgdGhpcy5fc2hvd1BhZ2luYXRpb25Db250cm9scyA9IGlzRW5hYmxlZDtcblxuICAgIGlmIChkZXRlY3RDaGFuZ2VzKSB7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXZhbHVhdGUgd2hldGhlciB0aGUgYmVmb3JlIGFuZCBhZnRlciBjb250cm9scyBzaG91bGQgYmUgZW5hYmxlZCBvciBkaXNhYmxlZC5cbiAgICogSWYgdGhlIGhlYWRlciBpcyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0IChzY3JvbGwgZGlzdGFuY2UgaXMgZXF1YWwgdG8gMCkgdGhlbiBkaXNhYmxlIHRoZVxuICAgKiBiZWZvcmUgYnV0dG9uLiBJZiB0aGUgaGVhZGVyIGlzIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QgKHNjcm9sbCBkaXN0YW5jZSBpcyBlcXVhbCB0byB0aGVcbiAgICogbWF4aW11bSBkaXN0YW5jZSB3ZSBjYW4gc2Nyb2xsKSwgdGhlbiBkaXNhYmxlIHRoZSBhZnRlciBidXR0b24uXG4gICAqXG4gICAqIFRoaXMgaXMgYW4gZXhwZW5zaXZlIGNhbGwgdGhhdCBmb3JjZXMgYSBsYXlvdXQgcmVmbG93IHRvIGNvbXB1dGUgYm94IGFuZCBzY3JvbGwgbWV0cmljcyBhbmRcbiAgICogc2hvdWxkIGJlIGNhbGxlZCBzcGFyaW5nbHkuXG4gICAqL1xuICBfY2hlY2tTY3JvbGxpbmdDb250cm9scygpIHtcbiAgICAvLyBDaGVjayBpZiB0aGUgcGFnaW5hdGlvbiBhcnJvd3Mgc2hvdWxkIGJlIGFjdGl2YXRlZC5cbiAgICB0aGlzLl9kaXNhYmxlU2Nyb2xsQmVmb3JlID0gdGhpcy5zY3JvbGxEaXN0YW5jZSA9PT0gMDtcbiAgICB0aGlzLl9kaXNhYmxlU2Nyb2xsQWZ0ZXIgPVxuICAgICAgdGhpcy5zY3JvbGxEaXN0YW5jZSA9PT0gdGhpcy5fZ2V0TWF4U2Nyb2xsRGlzdGFuY2UoKTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoYXQgaXMgdGhlIG1heGltdW0gbGVuZ3RoIGluIHBpeGVscyB0aGF0IGNhbiBiZSBzZXQgZm9yIHRoZSBzY3JvbGwgZGlzdGFuY2UuIFRoaXNcbiAgICogaXMgZXF1YWwgdG8gdGhlIGRpZmZlcmVuY2UgaW4gd2lkdGggYmV0d2VlbiB0aGUgdGFiIGxpc3QgY29udGFpbmVyIGFuZCB0YWIgaGVhZGVyIGNvbnRhaW5lci5cbiAgICpcbiAgICogVGhpcyBpcyBhbiBleHBlbnNpdmUgY2FsbCB0aGF0IGZvcmNlcyBhIGxheW91dCByZWZsb3cgdG8gY29tcHV0ZSBib3ggYW5kIHNjcm9sbCBtZXRyaWNzIGFuZFxuICAgKiBzaG91bGQgYmUgY2FsbGVkIHNwYXJpbmdseS5cbiAgICovXG4gIF9nZXRNYXhTY3JvbGxEaXN0YW5jZSgpOiBudW1iZXIge1xuICAgIGNvbnN0IGxlbmd0aE9mVGFiTGlzdCA9IHRoaXMuX3RhYkxpc3QubmF0aXZlRWxlbWVudC5zY3JvbGxXaWR0aDtcbiAgICBjb25zdCB2aWV3TGVuZ3RoID0gdGhpcy5fdGFiTGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIHJldHVybiBsZW5ndGhPZlRhYkxpc3QgLSB2aWV3TGVuZ3RoIHx8IDA7XG4gIH1cblxuICAvKiogUGVyZm9ybXMgdGhlIENTUyB0cmFuc2Zvcm1hdGlvbiBvbiB0aGUgdGFiIGxpc3QgdGhhdCB3aWxsIGNhdXNlIHRoZSBsaXN0IHRvIHNjcm9sbC4gKi9cbiAgX3VwZGF0ZVRhYlNjcm9sbFBvc2l0aW9uKCkge1xuICAgIGNvbnN0IHNjcm9sbERpc3RhbmNlID0gdGhpcy5zY3JvbGxEaXN0YW5jZTtcbiAgICBjb25zdCB0cmFuc2xhdGVYID0gLXNjcm9sbERpc3RhbmNlO1xuICAgIC8vIERvbid0IHVzZSBgdHJhbnNsYXRlM2RgIGhlcmUgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRvIGNyZWF0ZSBhIG5ldyBsYXllci4gQSBuZXcgbGF5ZXJcbiAgICAvLyBzZWVtcyB0byBjYXVzZSBmbGlja2VyaW5nIGFuZCBvdmVyZmxvdyBpbiBJbnRlcm5ldCBFeHBsb3Jlci4gRm9yIGV4YW1wbGUsIHRoZSBpbmsgYmFyXG4gICAgLy8gYW5kIHJpcHBsZXMgd2lsbCBleGNlZWQgdGhlIGJvdW5kYXJpZXMgb2YgdGhlIHZpc2libGUgdGFiIGJhci5cbiAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL21hdGVyaWFsMi9pc3N1ZXMvMTAyNzZcbiAgICB0aGlzLl90YWJMaXN0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoJHt0cmFuc2xhdGVYfXB4KWA7XG4gIH1cblxuICAvKiogVGVsbHMgdGhlIGFjdGl2ZSBpbmRpY2F0b3IgdG8gYWxpZ24gaXRzZWxmIHRvIHRoZSBjdXJyZW50IGxhYmVsIHdyYXBwZXIgKi9cbiAgX2FsaWduQWN0aXZlSW5kaWNhdG9yVG9TZWxlY3RlZFRhYigpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZExhYmVsV3JhcHBlciA9XG4gICAgICB0aGlzLl9sYWJlbFdyYXBwZXJzPy5sZW5ndGggPiAwXG4gICAgICAgID8gdGhpcy5fbGFiZWxXcmFwcGVycy50b0FycmF5KClbdGhpcy5zZWxlY3RlZEluZGV4XS5lbGVtZW50UmVmXG4gICAgICAgICAgICAubmF0aXZlRWxlbWVudFxuICAgICAgICA6IG51bGw7XG4gICAgdGhpcy5fYWN0aXZlSW5kaWNhdG9yLmFsaWduVG9FbGVtZW50KHNlbGVjdGVkTGFiZWxXcmFwcGVyKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IF92aWV3cG9ydFJ1bGVyOiBWaWV3cG9ydFJ1bGVyLFxuICApIHt9XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cImJlbS5ibG9jayh0eXBlLCBzaXplKVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiX3RpdGxlXCI+XG4gICAgPGRpdiBbbmdDbGFzc109XCJiZW0uZWxlbWVudCgndGl0bGUnKVwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiX3RpdGxlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxkaXYgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2hlYWRlci13cmFwcGVyJylcIj5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cImJlbS5lbGVtZW50KCdwYWdpbmF0aW9uLXdyYXBwZXInKVwiICNwYWdpbmF0aW9uV3JhcHBlcj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJfc2hvd1BhZ2luYXRpb25Db250cm9sc1wiXG4gICAgICAgIChjbGljayk9XCJfc2Nyb2xsSGVhZGVyKCdiZWZvcmUnKVwiXG4gICAgICAgIFthdHRyLmRpc2FibGVkXT1cIl9kaXNhYmxlU2Nyb2xsQmVmb3JlID8gJycgOiBudWxsXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ3BhZ2luYXRpb24tYnV0dG9uJylcIlxuICAgICAgPlxuICAgICAgICA8YXVpLWljb24gaWNvbj1cImFuZ2xlX2xlZnRcIj48L2F1aS1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIFtuZ0NsYXNzXT1cImJlbS5lbGVtZW50KCd0YWItbGlzdC1jb250YWluZXInKVwiXG4gICAgICAgIChrZXlkb3duKT1cIl9oYW5kbGVLZXlkb3duKCRldmVudClcIlxuICAgICAgICAjdGFiTGlzdENvbnRhaW5lclxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgcm9sZT1cInRhYmxpc3RcIlxuICAgICAgICAgIChjZGtPYnNlcnZlQ29udGVudCk9XCJfb25Db250ZW50Q2hhbmdlcygpXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJiZW0uZWxlbWVudCgndGFiLWxpc3QnKVwiXG4gICAgICAgICAgI3RhYkxpc3RcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2xhYmVscycpXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvZGl2PlxuICAgICAgICAgIDxhdWktdGFiLWhlYWRlci1hY3RpdmUtaW5kaWNhdG9yXG4gICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICA+PC9hdWktdGFiLWhlYWRlci1hY3RpdmUtaW5kaWNhdG9yPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cIl9zaG93UGFnaW5hdGlvbkNvbnRyb2xzXCJcbiAgICAgICAgKGNsaWNrKT1cIl9zY3JvbGxIZWFkZXIoJ2FmdGVyJylcIlxuICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJfZGlzYWJsZVNjcm9sbEFmdGVyID8gJycgOiBudWxsXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ3BhZ2luYXRpb24tYnV0dG9uJylcIlxuICAgICAgPlxuICAgICAgICA8YXVpLWljb24gaWNvbj1cImFuZ2xlX3JpZ2h0XCI+PC9hdWktaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwhLS0gSWYgdGhlcmUgaXMgYWRkb24gdGVtcGxhdGUsIHVzZSBpdC4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9zaG93QWRkb25cIj5cbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2FkZG9uJylcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiX2hlYWRlckFkZG9uXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/* eslint-disable no-prototype-builtins */
|
|
2
|
+
import { TemplatePortal } from '@angular/cdk/portal';
|
|
3
|
+
import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
5
|
+
import { coerceAttrBoolean } from '../utils';
|
|
6
|
+
import { TabContextService } from './tab-context.service';
|
|
7
|
+
import { TabContentDirective, TabLabelDirective } from './tab-body.component';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "./tab-context.service";
|
|
10
|
+
export class TabComponent {
|
|
11
|
+
constructor(_viewContainerRef, tabContext) {
|
|
12
|
+
this._viewContainerRef = _viewContainerRef;
|
|
13
|
+
this.tabContext = tabContext;
|
|
14
|
+
/** Plain text label for the tab, used when there is no template label. */
|
|
15
|
+
this.textLabel = '';
|
|
16
|
+
/** Whether or not to show the close button in the header */
|
|
17
|
+
this.closeable = false;
|
|
18
|
+
this.close = new EventEmitter();
|
|
19
|
+
/**
|
|
20
|
+
* The relatively indexed position where 0 represents the center, negative is left, and positive
|
|
21
|
+
* represents the right.
|
|
22
|
+
*/
|
|
23
|
+
this.position = null;
|
|
24
|
+
/**
|
|
25
|
+
* The initial relatively index origin of the tab if it was created and selected after there
|
|
26
|
+
* was already a selected tab. Provides context of what position the tab should originate from.
|
|
27
|
+
*/
|
|
28
|
+
this.origin = null;
|
|
29
|
+
/** Emits whenever the internal state of the tab changes. */
|
|
30
|
+
this._stateChanges = new Subject();
|
|
31
|
+
/** Portal that will be the hosted content of the tab */
|
|
32
|
+
this._contentPortal = null;
|
|
33
|
+
this._disabled = false;
|
|
34
|
+
}
|
|
35
|
+
/** Whether or not the tab is disabled */
|
|
36
|
+
get disabled() {
|
|
37
|
+
return this._disabled;
|
|
38
|
+
}
|
|
39
|
+
set disabled(value) {
|
|
40
|
+
this._disabled = coerceAttrBoolean(value);
|
|
41
|
+
}
|
|
42
|
+
get content() {
|
|
43
|
+
return this._contentPortal;
|
|
44
|
+
}
|
|
45
|
+
ngAfterContentInit() {
|
|
46
|
+
this._contentPortal = new TemplatePortal(this._explicitContent || this._implicitContent, this._viewContainerRef);
|
|
47
|
+
}
|
|
48
|
+
ngOnDestroy() {
|
|
49
|
+
this._stateChanges.complete();
|
|
50
|
+
}
|
|
51
|
+
ngOnChanges(changes) {
|
|
52
|
+
if (changes.hasOwnProperty('textLabel') ||
|
|
53
|
+
changes.hasOwnProperty('disabled') ||
|
|
54
|
+
changes.hasOwnProperty('closeable')) {
|
|
55
|
+
this._stateChanges.next();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
TabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TabComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.TabContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
60
|
+
TabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: TabComponent, selector: "aui-tab", inputs: { name: "name", textLabel: ["label", "textLabel"], closeable: "closeable", disabled: "disabled" }, outputs: { close: "close" }, providers: [TabContextService], queries: [{ propertyName: "templateLabel", first: true, predicate: TabLabelDirective, descendants: true }, { propertyName: "_explicitContent", first: true, predicate: TabContentDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "_implicitContent", first: true, predicate: TemplateRef, descendants: true, static: true }], exportAs: ["auiTab"], usesOnChanges: true, ngImport: i0, template: "<!--\n Create a template for the content of the <aui-tab> so that we can grab a reference to this\n TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\n tab-group.\n-->\n<ng-template><ng-content></ng-content></ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TabComponent, decorators: [{
|
|
62
|
+
type: Component,
|
|
63
|
+
args: [{ selector: 'aui-tab', exportAs: 'auiTab', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, providers: [TabContextService], template: "<!--\n Create a template for the content of the <aui-tab> so that we can grab a reference to this\n TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\n tab-group.\n-->\n<ng-template><ng-content></ng-content></ng-template>\n" }]
|
|
64
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i1.TabContextService }]; }, propDecorators: { name: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}], textLabel: [{
|
|
67
|
+
type: Input,
|
|
68
|
+
args: ['label']
|
|
69
|
+
}], closeable: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], disabled: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], close: [{
|
|
74
|
+
type: Output
|
|
75
|
+
}], templateLabel: [{
|
|
76
|
+
type: ContentChild,
|
|
77
|
+
args: [TabLabelDirective, { static: false }]
|
|
78
|
+
}], _explicitContent: [{
|
|
79
|
+
type: ContentChild,
|
|
80
|
+
args: [TabContentDirective, { read: TemplateRef, static: false }]
|
|
81
|
+
}], _implicitContent: [{
|
|
82
|
+
type: ViewChild,
|
|
83
|
+
args: [TemplateRef, { static: true }]
|
|
84
|
+
}] } });
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90YWJzL3RhYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi9zcmMvdGFicy90YWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMENBQTBDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFFVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQVc5RSxNQUFNLE9BQU8sWUFBWTtJQStEdkIsWUFDbUIsaUJBQW1DLEVBQ3BDLFVBQTZCO1FBRDVCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDcEMsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUE3RC9DLDBFQUEwRTtRQUUxRSxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWYsNERBQTREO1FBRTVELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFhbEIsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFvQmpDOzs7V0FHRztRQUNILGFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBRS9COzs7V0FHRztRQUNILFdBQU0sR0FBa0IsSUFBSSxDQUFDO1FBRTdCLDREQUE0RDtRQUNuRCxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFN0Msd0RBQXdEO1FBQ2hELG1CQUFjLEdBQTBCLElBQUksQ0FBQztRQUU3QyxjQUFTLEdBQUcsS0FBSyxDQUFDO0lBS3ZCLENBQUM7SUF0REosMENBQTBDO0lBQzFDLElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsS0FBbUI7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBbUJELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBMkJELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUN0QyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUM5QyxJQUFJLENBQUMsaUJBQWlCLENBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUNFLE9BQU8sQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEVBQ25DO1lBQ0EsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMzQjtJQUNILENBQUM7O3lHQXZGVSxZQUFZOzZGQUFaLFlBQVksMEtBRlosQ0FBQyxpQkFBaUIsQ0FBQyxxRUE0QmhCLGlCQUFpQixtRkFNakIsbUJBQW1CLDJCQUFVLFdBQVcsK0VBSTNDLFdBQVcseUdDdEV4QiwrUUFNQTsyRkQ0QmEsWUFBWTtrQkFUeEIsU0FBUzsrQkFDRSxTQUFTLFlBQ1QsUUFBUSxpQkFFSCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLHVCQUMxQixLQUFLLGFBQ2YsQ0FBQyxpQkFBaUIsQ0FBQzt1SUFJOUIsSUFBSTtzQkFESCxLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSzt1QkFBQyxPQUFPO2dCQUtkLFNBQVM7c0JBRFIsS0FBSztnQkFLRixRQUFRO3NCQURYLEtBQUs7Z0JBVU4sS0FBSztzQkFESixNQUFNO2dCQUtQLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBT2xELGdCQUFnQjtzQkFEZixZQUFZO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUt2RSxnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zICovXG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGNvZXJjZUF0dHJCb29sZWFuIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBUYWJDb250ZXh0U2VydmljZSB9IGZyb20gJy4vdGFiLWNvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBUYWJDb250ZW50RGlyZWN0aXZlLCBUYWJMYWJlbERpcmVjdGl2ZSB9IGZyb20gJy4vdGFiLWJvZHkuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLXRhYicsXG4gIGV4cG9ydEFzOiAnYXVpVGFiJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYi5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgcHJvdmlkZXJzOiBbVGFiQ29udGV4dFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIG5hbWU6IHN0cmluZztcblxuICAvKiogUGxhaW4gdGV4dCBsYWJlbCBmb3IgdGhlIHRhYiwgdXNlZCB3aGVuIHRoZXJlIGlzIG5vIHRlbXBsYXRlIGxhYmVsLiAqL1xuICBASW5wdXQoJ2xhYmVsJylcbiAgdGV4dExhYmVsID0gJyc7XG5cbiAgLyoqIFdoZXRoZXIgb3Igbm90IHRvIHNob3cgdGhlIGNsb3NlIGJ1dHRvbiBpbiB0aGUgaGVhZGVyICovXG4gIEBJbnB1dCgpXG4gIGNsb3NlYWJsZSA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGUgdGFiIGlzIGRpc2FibGVkICAqL1xuICBASW5wdXQoKVxuICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuIHwgJycpIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUF0dHJCb29sZWFuKHZhbHVlKTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKiogQ29udGVudCBmb3IgdGhlIHRhYiBsYWJlbCBnaXZlbiBieSBgPG5nLXRlbXBsYXRlIFthdWlUYWJMYWJlbF0+YC4gKi9cbiAgQENvbnRlbnRDaGlsZChUYWJMYWJlbERpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHRlbXBsYXRlTGFiZWw6IFRhYkxhYmVsRGlyZWN0aXZlO1xuXG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBwcm92aWRlZCBpbiB0aGUgdGFiIGNvbnRlbnQgdGhhdCB3aWxsIGJlIHVzZWQgaWYgcHJlc2VudCwgdXNlZCB0byBlbmFibGUgbGF6eS1sb2FkaW5nXG4gICAqL1xuICBAQ29udGVudENoaWxkKFRhYkNvbnRlbnREaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogZmFsc2UgfSlcbiAgX2V4cGxpY2l0Q29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKiogVGVtcGxhdGUgaW5zaWRlIHRoZSBBdWlUYWIgdmlldyB0aGF0IGNvbnRhaW5zIGFuIGA8bmctY29udGVudD5gLiAqL1xuICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBfaW1wbGljaXRDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGdldCBjb250ZW50KCk6IFRlbXBsYXRlUG9ydGFsIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRQb3J0YWw7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHJlbGF0aXZlbHkgaW5kZXhlZCBwb3NpdGlvbiB3aGVyZSAwIHJlcHJlc2VudHMgdGhlIGNlbnRlciwgbmVnYXRpdmUgaXMgbGVmdCwgYW5kIHBvc2l0aXZlXG4gICAqIHJlcHJlc2VudHMgdGhlIHJpZ2h0LlxuICAgKi9cbiAgcG9zaXRpb246IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5pdGlhbCByZWxhdGl2ZWx5IGluZGV4IG9yaWdpbiBvZiB0aGUgdGFiIGlmIGl0IHdhcyBjcmVhdGVkIGFuZCBzZWxlY3RlZCBhZnRlciB0aGVyZVxuICAgKiB3YXMgYWxyZWFkeSBhIHNlbGVjdGVkIHRhYi4gUHJvdmlkZXMgY29udGV4dCBvZiB3aGF0IHBvc2l0aW9uIHRoZSB0YWIgc2hvdWxkIG9yaWdpbmF0ZSBmcm9tLlxuICAgKi9cbiAgb3JpZ2luOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGludGVybmFsIHN0YXRlIG9mIHRoZSB0YWIgY2hhbmdlcy4gKi9cbiAgcmVhZG9ubHkgX3N0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqIFBvcnRhbCB0aGF0IHdpbGwgYmUgdGhlIGhvc3RlZCBjb250ZW50IG9mIHRoZSB0YWIgKi9cbiAgcHJpdmF0ZSBfY29udGVudFBvcnRhbDogVGVtcGxhdGVQb3J0YWwgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHVibGljIHJlYWRvbmx5IHRhYkNvbnRleHQ6IFRhYkNvbnRleHRTZXJ2aWNlLFxuICApIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbnRlbnRQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwoXG4gICAgICB0aGlzLl9leHBsaWNpdENvbnRlbnQgfHwgdGhpcy5faW1wbGljaXRDb250ZW50LFxuICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZixcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eSgndGV4dExhYmVsJykgfHxcbiAgICAgIGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ2Rpc2FibGVkJykgfHxcbiAgICAgIGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ2Nsb3NlYWJsZScpXG4gICAgKSB7XG4gICAgICB0aGlzLl9zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cbiAgfVxufVxuIiwiPCEtLVxuICBDcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGNvbnRlbnQgb2YgdGhlIDxhdWktdGFiPiBzbyB0aGF0IHdlIGNhbiBncmFiIGEgcmVmZXJlbmNlIHRvIHRoaXNcbiAgVGVtcGxhdGVSZWYgYW5kIHVzZSBpdCBpbiBhIFBvcnRhbCB0byByZW5kZXIgdGhlIHRhYiBjb250ZW50IGluIHRoZSBhcHByb3ByaWF0ZSBwbGFjZSBpbiB0aGVcbiAgdGFiLWdyb3VwLlxuLS0+XG48bmctdGVtcGxhdGU+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvbmctdGVtcGxhdGU+XG4iXX0=
|