@alauda/ui 6.5.10-beta.4 → 6.5.10-beta.41
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/accordion/accordion-item/accordion-item.component.d.ts +3 -3
- package/accordion/accordion.component.d.ts +1 -1
- package/anchor/anchor.component.d.ts +2 -2
- package/anchor/anchor.directive.d.ts +3 -3
- package/autocomplete/autocomplete-placeholder.component.d.ts +1 -1
- package/autocomplete/autocomplete.component.d.ts +1 -1
- package/autocomplete/autocomplete.directive.d.ts +2 -2
- package/autocomplete/autocomplete.types.d.ts +1 -1
- package/autocomplete/helper-directives.d.ts +1 -1
- package/autocomplete/suggestion/suggestion.component.d.ts +6 -6
- package/autocomplete/suggestion-group/suggestion-group.component.d.ts +1 -1
- package/back-top/back-top.component.d.ts +3 -2
- package/back-top/back-top.module.d.ts +2 -1
- package/breadcrumb/breadcrumb-item.component.d.ts +1 -1
- package/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/button/button-group/button-group.component.d.ts +1 -1
- package/button/button.component.d.ts +1 -1
- package/button/button.types.d.ts +1 -12
- package/card/card.component.d.ts +1 -1
- package/card/helper-directives.d.ts +3 -7
- package/card/section.component.d.ts +1 -1
- package/checkbox/checkbox-group/checkbox-group.component.d.ts +3 -3
- package/checkbox/checkbox.component.d.ts +1 -1
- package/color-picker/color-picker.component.d.ts +1 -1
- package/date-picker/calendar/date-picker-panel/component.d.ts +1 -1
- package/date-picker/calendar/footer/component.d.ts +1 -1
- package/date-picker/calendar/header/component.d.ts +1 -1
- package/date-picker/calendar/panel/picker-panel.d.ts +1 -1
- package/date-picker/calendar/range-picker-panel/component.d.ts +1 -1
- package/date-picker/date-picker/date-picker.component.d.ts +1 -1
- package/date-picker/date-picker.type.d.ts +2 -2
- package/date-picker/range-picker/range-picker.component.d.ts +1 -1
- package/date-picker/trigger/trigger.component.d.ts +1 -1
- package/dialog/confirm-dialog/confirm-dialog.component.d.ts +1 -1
- package/dialog/dialog-content/dialog-close.directive.d.ts +1 -1
- package/dialog/dialog-content/dialog-content.component.d.ts +1 -1
- package/dialog/dialog-content/dialog-footer.component.d.ts +1 -1
- package/dialog/dialog-content/dialog-header.component.d.ts +1 -1
- package/dialog/dialog.component.d.ts +1 -1
- package/dialog/dialog.types.d.ts +3 -3
- package/drawer/component/drawer.component.d.ts +1 -1
- package/drawer/component/helper-directives.d.ts +3 -3
- package/dropdown/dropdown-active.directive.d.ts +1 -1
- package/dropdown/dropdown-button/dropdown-button.component.d.ts +3 -4
- package/dropdown/dropdown.directive.d.ts +1 -1
- package/dropdown/dropdown.types.d.ts +1 -1
- package/dropdown/helper-directives.d.ts +1 -1
- package/dropdown/menu/menu-content.directive.d.ts +1 -1
- package/dropdown/menu/menu.component.d.ts +1 -1
- package/dropdown/menu-group/menu-group.component.d.ts +1 -1
- package/dropdown/menu-item/menu-item.component.d.ts +1 -1
- package/dropdown/submenu/submenu.component.d.ts +1 -1
- package/esm2022/accordion/accordion-item/accordion-item.component.mjs +73 -0
- package/esm2022/accordion/accordion.component.mjs +29 -0
- package/esm2022/accordion/accordion.module.mjs +39 -0
- package/esm2022/alauda-ui.mjs +2 -0
- package/esm2022/anchor/anchor.component.mjs +141 -0
- package/esm2022/anchor/anchor.directive.mjs +198 -0
- package/esm2022/anchor/anchor.module.mjs +35 -0
- package/{esm2020 → esm2022}/autocomplete/autocomplete-placeholder.component.mjs +4 -4
- package/esm2022/autocomplete/autocomplete.component.mjs +72 -0
- package/esm2022/autocomplete/autocomplete.directive.mjs +282 -0
- package/esm2022/autocomplete/autocomplete.module.mjs +53 -0
- package/{esm2020 → esm2022}/autocomplete/helper-directives.mjs +4 -4
- package/esm2022/autocomplete/suggestion/suggestion.component.mjs +77 -0
- package/esm2022/autocomplete/suggestion-group/suggestion-group.component.mjs +25 -0
- package/esm2022/back-top/back-top.component.mjs +84 -0
- package/esm2022/back-top/back-top.module.mjs +20 -0
- package/esm2022/breadcrumb/breadcrumb-item.component.mjs +33 -0
- package/esm2022/breadcrumb/breadcrumb.component.mjs +56 -0
- package/esm2022/breadcrumb/breadcrumb.module.mjs +20 -0
- package/{esm2020 → esm2022}/button/button-group/button-group.component.mjs +4 -4
- package/esm2022/button/button.component.mjs +124 -0
- package/esm2022/button/button.module.mjs +20 -0
- package/esm2022/button/button.types.mjs +11 -0
- package/esm2022/card/card.component.mjs +14 -0
- package/esm2022/card/card.module.mjs +40 -0
- package/esm2022/card/helper-directives.mjs +42 -0
- package/{esm2020 → esm2022}/card/section.component.mjs +4 -4
- package/esm2022/checkbox/checkbox-group/checkbox-group.component.mjs +60 -0
- package/esm2022/checkbox/checkbox.component.mjs +116 -0
- package/esm2022/checkbox/checkbox.module.mjs +20 -0
- package/esm2022/color-picker/color-picker.component.mjs +28 -0
- package/esm2022/color-picker/color-picker.module.mjs +19 -0
- package/esm2022/date-picker/calendar/constant.mjs +31 -0
- package/esm2022/date-picker/calendar/date-picker-panel/component.mjs +137 -0
- package/esm2022/date-picker/calendar/footer/component.mjs +29 -0
- package/esm2022/date-picker/calendar/header/component.mjs +100 -0
- package/esm2022/date-picker/calendar/panel/picker-panel.mjs +158 -0
- package/esm2022/date-picker/calendar/range-picker-panel/component.mjs +210 -0
- package/esm2022/date-picker/calendar/util.mjs +152 -0
- package/esm2022/date-picker/date-picker/date-picker.component.mjs +115 -0
- package/esm2022/date-picker/date-picker.module.mjs +82 -0
- package/esm2022/date-picker/range-picker/range-picker.component.mjs +88 -0
- package/esm2022/date-picker/trigger/trigger.component.mjs +76 -0
- package/esm2022/dialog/confirm-dialog/confirm-dialog-config.mjs +13 -0
- package/esm2022/dialog/confirm-dialog/confirm-dialog.component.mjs +91 -0
- package/{esm2020 → esm2022}/dialog/dialog-animations.mjs +1 -2
- package/esm2022/dialog/dialog-config.mjs +14 -0
- package/esm2022/dialog/dialog-content/dialog-close.directive.mjs +42 -0
- package/esm2022/dialog/dialog-content/dialog-content.component.mjs +19 -0
- package/esm2022/dialog/dialog-content/dialog-footer.component.mjs +13 -0
- package/esm2022/dialog/dialog-content/dialog-header.component.mjs +42 -0
- package/esm2022/dialog/dialog-ref.mjs +52 -0
- package/esm2022/dialog/dialog.component.mjs +154 -0
- package/esm2022/dialog/dialog.module.mjs +65 -0
- package/esm2022/dialog/dialog.service.mjs +124 -0
- package/esm2022/drawer/component/drawer.component.mjs +248 -0
- package/esm2022/drawer/component/helper-directives.mjs +33 -0
- package/esm2022/drawer/drawer.module.mjs +36 -0
- package/esm2022/drawer/drawer.service.mjs +47 -0
- package/esm2022/dropdown/dropdown-active.directive.mjs +18 -0
- package/esm2022/dropdown/dropdown-button/dropdown-button.component.mjs +53 -0
- package/esm2022/dropdown/dropdown.directive.mjs +83 -0
- package/esm2022/dropdown/dropdown.module.mjs +65 -0
- package/{esm2020 → esm2022}/dropdown/helper-directives.mjs +4 -4
- package/esm2022/dropdown/menu/menu-content.directive.mjs +59 -0
- package/esm2022/dropdown/menu/menu.component.mjs +26 -0
- package/{esm2020 → esm2022}/dropdown/menu-group/menu-group.component.mjs +4 -4
- package/esm2022/dropdown/menu-item/menu-item.component.mjs +35 -0
- package/esm2022/dropdown/submenu/submenu.component.mjs +38 -0
- package/esm2022/form/common-form.mjs +87 -0
- package/esm2022/form/form-item/form-item.component.mjs +121 -0
- package/esm2022/form/form.directive.mjs +70 -0
- package/esm2022/form/form.module.mjs +48 -0
- package/esm2022/form/helper-directives.mjs +73 -0
- package/{esm2020 → esm2022}/i18n/i18n.module.mjs +5 -5
- package/esm2022/i18n/i18n.pipe.mjs +21 -0
- package/esm2022/i18n/i18n.service.mjs +48 -0
- package/esm2022/icon/icon-register.service.mjs +75 -0
- package/esm2022/icon/icon.component.mjs +74 -0
- package/esm2022/icon/icon.module.mjs +21 -0
- package/{esm2020 → esm2022}/inline-alert/helper-directives.mjs +4 -4
- package/esm2022/inline-alert/inline-alert.component.mjs +58 -0
- package/esm2022/inline-alert/inline-alert.module.mjs +20 -0
- package/esm2022/input/autosize.directive.mjs +56 -0
- package/esm2022/input/helper-directives.mjs +43 -0
- package/esm2022/input/input-group/input-group.component.mjs +46 -0
- package/esm2022/input/input.component.mjs +59 -0
- package/esm2022/input/input.module.mjs +85 -0
- package/esm2022/input/number-input/number-input.component.mjs +121 -0
- package/esm2022/input/search/search.component.mjs +87 -0
- package/esm2022/input/tags-input/tags-input.component.mjs +264 -0
- package/esm2022/input/tags-input/with-max-row-count.mjs +50 -0
- package/esm2022/message/base-message.mjs +99 -0
- package/esm2022/message/message-wrapper.component.mjs +15 -0
- package/esm2022/message/message.component.mjs +77 -0
- package/esm2022/message/message.config.mjs +20 -0
- package/esm2022/message/message.module.mjs +22 -0
- package/{esm2020 → esm2022}/message/message.service.mjs +4 -4
- package/esm2022/notification/notification-wrapper.component.mjs +17 -0
- package/esm2022/notification/notification.component.mjs +106 -0
- package/esm2022/notification/notification.module.mjs +23 -0
- package/{esm2020 → esm2022}/notification/notification.service.mjs +4 -4
- package/esm2022/paginator/paginator-intl.mjs +24 -0
- package/esm2022/paginator/paginator.component.mjs +126 -0
- package/esm2022/paginator/paginator.module.mjs +24 -0
- package/esm2022/radio/base-radio.mjs +72 -0
- package/esm2022/radio/radio-button/radio-button.component.mjs +41 -0
- package/esm2022/radio/radio-group/radio-group.component.mjs +65 -0
- package/esm2022/radio/radio.component.mjs +23 -0
- package/esm2022/radio/radio.module.mjs +21 -0
- package/esm2022/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +80 -0
- package/esm2022/scrolling/fixed-size-table-virtual-scroll.directive.mjs +119 -0
- package/esm2022/scrolling/fixed-size-virtual-scroll.directive.mjs +27 -0
- package/{esm2020 → esm2022}/scrolling/scrolling.module.mjs +9 -9
- package/{esm2020 → esm2022}/scrolling/virtual-for-of.directive.mjs +4 -4
- package/esm2022/scrolling/virtual-scroll-viewport.component.mjs +26 -0
- package/esm2022/select/base-select.mjs +333 -0
- package/{esm2020 → esm2022}/select/helper-directives.mjs +7 -7
- package/esm2022/select/multi-select/multi-select.component.mjs +311 -0
- package/esm2022/select/option/option.component.mjs +119 -0
- package/esm2022/select/option-group/option-group.component.mjs +25 -0
- package/{esm2020 → esm2022}/select/option-placeholder.component.mjs +4 -4
- package/esm2022/select/select.component.mjs +107 -0
- package/esm2022/select/select.module.mjs +78 -0
- package/esm2022/select/validators.mjs +78 -0
- package/esm2022/shared/click-outside.directive.mjs +29 -0
- package/{esm2020 → esm2022}/shared/shared.module.mjs +5 -5
- package/esm2022/sort/sort-errors.mjs +13 -0
- package/esm2022/sort/sort-header.component.mjs +74 -0
- package/esm2022/sort/sort.directive.mjs +73 -0
- package/esm2022/sort/sort.module.mjs +19 -0
- package/esm2022/status-bar/status-bar.component.mjs +28 -0
- package/esm2022/status-bar/status-bar.module.mjs +19 -0
- package/esm2022/steps/steps.component.mjs +166 -0
- package/esm2022/steps/steps.module.mjs +19 -0
- package/{esm2020 → esm2022}/steps/types.mjs +1 -1
- package/esm2022/switch/switch.component.mjs +43 -0
- package/esm2022/switch/switch.module.mjs +18 -0
- package/esm2022/table/table-cell-def.directive.mjs +25 -0
- package/esm2022/table/table-cell.component.mjs +115 -0
- package/esm2022/table/table-cell.directive.mjs +29 -0
- package/esm2022/table/table-column-def.directive.mjs +31 -0
- package/esm2022/table/table-header-cell-def.directive.mjs +25 -0
- package/esm2022/table/table-header-cell.directive.mjs +25 -0
- package/esm2022/table/table-header-row-def.directive.mjs +33 -0
- package/esm2022/table/table-header-row.component.mjs +24 -0
- package/esm2022/table/table-placeholder.directive.mjs +33 -0
- package/esm2022/table/table-row-def.directive.mjs +34 -0
- package/esm2022/table/table-row.component.mjs +43 -0
- package/esm2022/table/table-scroll.directive.mjs +133 -0
- package/esm2022/table/table.component.mjs +79 -0
- package/esm2022/table/table.module.mjs +96 -0
- package/esm2022/table-of-contents/table-of-contents.module.mjs +20 -0
- package/esm2022/table-of-contents/toc-container.directive.mjs +111 -0
- package/esm2022/table-of-contents/toc-content.directive.mjs +39 -0
- package/esm2022/table-of-contents/toc-link.directive.mjs +48 -0
- package/esm2022/tabs/tab-body.component.mjs +146 -0
- package/esm2022/tabs/tab-context.service.mjs +30 -0
- package/esm2022/tabs/tab-group.component.mjs +256 -0
- package/esm2022/tabs/tab-header-active-indicator.component.mjs +41 -0
- package/esm2022/tabs/tab-header.component.mjs +277 -0
- package/esm2022/tabs/tab.component.mjs +72 -0
- package/esm2022/tabs/tabs.module.mjs +86 -0
- package/esm2022/tabs/tabs.types.mjs +10 -0
- package/esm2022/tag/check-tag/check-tag.component.mjs +31 -0
- package/esm2022/tag/tag.component.mjs +63 -0
- package/esm2022/tag/tag.module.mjs +20 -0
- package/esm2022/theme/theme.module.mjs +18 -0
- package/esm2022/theme/theme.pipe.mjs +64 -0
- package/esm2022/theme/theme.service.mjs +59 -0
- package/esm2022/time-picker/component.mjs +183 -0
- package/esm2022/time-picker/panel/panel.component.mjs +240 -0
- package/esm2022/time-picker/time-picker.module.mjs +56 -0
- package/esm2022/time-picker/time-picker.type.mjs +13 -0
- package/esm2022/tooltip/base-tooltip.mjs +333 -0
- package/esm2022/tooltip/tooltip-active.directive.mjs +51 -0
- package/esm2022/tooltip/tooltip-copy.directive.mjs +87 -0
- package/esm2022/tooltip/tooltip-intl.mjs +21 -0
- package/esm2022/tooltip/tooltip.component.mjs +120 -0
- package/esm2022/tooltip/tooltip.directive.mjs +44 -0
- package/esm2022/tooltip/tooltip.module.mjs +32 -0
- package/esm2022/tooltip/utils/index.mjs +58 -0
- package/{esm2020 → esm2022}/tree-select/tree-node-placeholder.component.mjs +4 -4
- package/esm2022/tree-select/tree-select.component.mjs +329 -0
- package/esm2022/tree-select/tree-select.module.mjs +34 -0
- package/esm2022/types.mjs +8 -0
- package/esm2022/utils/bem.mjs +44 -0
- package/esm2022/utils/coercion.mjs +5 -0
- package/esm2022/utils/fn.mjs +16 -0
- package/{fesm2020 → fesm2022}/alauda-ui.mjs +3144 -3252
- package/fesm2022/alauda-ui.mjs.map +1 -0
- package/form/common-form.d.ts +1 -9
- package/form/form-item/form-item.component.d.ts +1 -1
- package/form/form.directive.d.ts +1 -1
- package/form/form.types.d.ts +2 -2
- package/form/helper-directives.d.ts +7 -8
- package/i18n/i18n.pipe.d.ts +1 -1
- package/i18n/i18n.type.d.ts +1 -1
- package/icon/icon.component.d.ts +1 -1
- package/inline-alert/helper-directives.d.ts +1 -1
- package/inline-alert/inline-alert.component.d.ts +1 -1
- package/inline-alert/inline-alert.types.d.ts +1 -1
- package/input/autosize.directive.d.ts +1 -4
- package/input/helper-directives.d.ts +4 -4
- package/input/input-group/input-group.component.d.ts +1 -1
- package/input/input.component.d.ts +2 -5
- package/input/number-input/number-input.component.d.ts +5 -3
- package/input/search/search.component.d.ts +1 -1
- package/input/tags-input/tags-input.component.d.ts +3 -3
- package/message/message-wrapper.component.d.ts +1 -1
- package/message/message.component.d.ts +1 -1
- package/message/message.config.d.ts +0 -20
- package/notification/notification-wrapper.component.d.ts +1 -1
- package/notification/notification.component.d.ts +1 -5
- package/notification/notification.config.d.ts +1 -1
- package/package.json +14 -20
- package/paginator/paginator-intl.d.ts +0 -9
- package/paginator/paginator.component.d.ts +8 -25
- package/radio/base-radio.d.ts +1 -1
- package/radio/radio-button/radio-button.component.d.ts +1 -1
- package/radio/radio-group/radio-group.component.d.ts +1 -5
- package/radio/radio.component.d.ts +1 -1
- package/radio/radio.types.d.ts +1 -1
- package/scrolling/fixed-size-table-virtual-scroll.directive.d.ts +1 -1
- package/scrolling/fixed-size-virtual-scroll.directive.d.ts +1 -1
- package/scrolling/virtual-for-of.directive.d.ts +1 -1
- package/scrolling/virtual-scroll-viewport.component.d.ts +1 -1
- package/select/base-select.d.ts +7 -13
- package/select/helper-directives.d.ts +2 -2
- package/select/multi-select/multi-select.component.d.ts +3 -4
- package/select/option/option.component.d.ts +1 -1
- package/select/option-group/option-group.component.d.ts +1 -1
- package/select/option-placeholder.component.d.ts +1 -1
- package/select/select.component.d.ts +1 -1
- package/select/select.types.d.ts +3 -3
- package/select/validators.d.ts +1 -1
- package/shared/click-outside.directive.d.ts +1 -1
- package/sort/sort-errors.d.ts +0 -4
- package/sort/sort-header.component.d.ts +1 -1
- package/sort/sort.directive.d.ts +1 -1
- package/sort/sort.types.d.ts +2 -2
- package/status-bar/status-bar.component.d.ts +1 -1
- package/status-bar/status-bar.types.d.ts +2 -2
- package/steps/steps.component.d.ts +1 -5
- package/steps/types.d.ts +3 -7
- package/switch/switch.component.d.ts +1 -1
- package/table/table-cell-def.directive.d.ts +1 -5
- package/table/table-cell.component.d.ts +2 -2
- package/table/table-cell.directive.d.ts +1 -2
- package/table/table-column-def.directive.d.ts +1 -5
- package/table/table-header-cell-def.directive.d.ts +1 -5
- package/table/table-header-cell.directive.d.ts +1 -2
- package/table/table-header-row-def.directive.d.ts +1 -5
- package/table/table-header-row.component.d.ts +1 -2
- package/table/table-placeholder.directive.d.ts +2 -2
- package/table/table-row-def.directive.d.ts +1 -6
- package/table/table-row.component.d.ts +1 -2
- package/table/table-scroll.directive.d.ts +2 -2
- package/table/table.component.d.ts +1 -1
- package/table-of-contents/toc-container.directive.d.ts +2 -2
- package/table-of-contents/toc-content.directive.d.ts +1 -1
- package/table-of-contents/toc-link.directive.d.ts +1 -1
- package/tabs/tab-body.component.d.ts +9 -26
- package/tabs/tab-context.service.d.ts +0 -3
- package/tabs/tab-group.component.d.ts +3 -31
- package/tabs/tab-header-active-indicator.component.d.ts +1 -10
- package/tabs/tab-header.component.d.ts +2 -85
- package/tabs/tab.component.d.ts +3 -22
- package/tabs/tabs.types.d.ts +2 -5
- package/tag/check-tag/check-tag.component.d.ts +1 -1
- package/tag/tag.component.d.ts +1 -1
- package/tag/tag.types.d.ts +1 -1
- package/theme/style.css +5 -1
- package/theme/theme.pipe.d.ts +4 -4
- package/theme/theme.types.d.ts +3 -3
- package/time-picker/component.d.ts +1 -1
- package/time-picker/panel/panel.component.d.ts +1 -1
- package/time-picker/time-picker.type.d.ts +1 -1
- package/tooltip/base-tooltip.d.ts +1 -1
- package/tooltip/tooltip-active.directive.d.ts +1 -1
- package/tooltip/tooltip-copy.directive.d.ts +1 -1
- package/tooltip/tooltip-intl.d.ts +0 -4
- package/tooltip/tooltip.component.d.ts +1 -1
- package/tooltip/tooltip.directive.d.ts +1 -1
- package/tree-select/tree-node-placeholder.component.d.ts +1 -1
- package/tree-select/tree-select.component.d.ts +11 -15
- package/tree-select/tree-select.types.d.ts +1 -1
- package/types.d.ts +2 -5
- package/utils/coercion.d.ts +4 -4
- package/utils/fn.d.ts +0 -1
- package/utils/operators.d.ts +1 -1
- package/.changeset/README.md +0 -8
- package/alauda-ui.d.ts +0 -5
- package/esm2020/accordion/accordion-item/accordion-item.component.mjs +0 -73
- package/esm2020/accordion/accordion.component.mjs +0 -27
- package/esm2020/accordion/accordion.module.mjs +0 -39
- package/esm2020/alauda-ui.mjs +0 -5
- package/esm2020/anchor/anchor.component.mjs +0 -138
- package/esm2020/anchor/anchor.directive.mjs +0 -182
- package/esm2020/anchor/anchor.module.mjs +0 -36
- package/esm2020/autocomplete/autocomplete.component.mjs +0 -64
- package/esm2020/autocomplete/autocomplete.directive.mjs +0 -278
- package/esm2020/autocomplete/autocomplete.module.mjs +0 -53
- package/esm2020/autocomplete/suggestion/suggestion.component.mjs +0 -79
- package/esm2020/autocomplete/suggestion-group/suggestion-group.component.mjs +0 -23
- package/esm2020/back-top/back-top.component.mjs +0 -67
- package/esm2020/back-top/back-top.module.mjs +0 -19
- package/esm2020/breadcrumb/breadcrumb-item.component.mjs +0 -32
- package/esm2020/breadcrumb/breadcrumb.component.mjs +0 -57
- package/esm2020/breadcrumb/breadcrumb.module.mjs +0 -20
- package/esm2020/button/button.component.mjs +0 -122
- package/esm2020/button/button.module.mjs +0 -20
- package/esm2020/button/button.types.mjs +0 -22
- package/esm2020/card/card.component.mjs +0 -16
- package/esm2020/card/card.module.mjs +0 -40
- package/esm2020/card/helper-directives.mjs +0 -50
- package/esm2020/checkbox/checkbox-group/checkbox-group.component.mjs +0 -61
- package/esm2020/checkbox/checkbox.component.mjs +0 -112
- package/esm2020/checkbox/checkbox.module.mjs +0 -20
- package/esm2020/color-picker/color-picker.component.mjs +0 -28
- package/esm2020/color-picker/color-picker.module.mjs +0 -19
- package/esm2020/date-picker/calendar/constant.mjs +0 -32
- package/esm2020/date-picker/calendar/date-picker-panel/component.mjs +0 -128
- package/esm2020/date-picker/calendar/footer/component.mjs +0 -29
- package/esm2020/date-picker/calendar/header/component.mjs +0 -103
- package/esm2020/date-picker/calendar/panel/picker-panel.mjs +0 -155
- package/esm2020/date-picker/calendar/range-picker-panel/component.mjs +0 -209
- package/esm2020/date-picker/calendar/util.mjs +0 -146
- package/esm2020/date-picker/date-picker/date-picker.component.mjs +0 -110
- package/esm2020/date-picker/date-picker.module.mjs +0 -84
- package/esm2020/date-picker/range-picker/range-picker.component.mjs +0 -86
- package/esm2020/date-picker/trigger/trigger.component.mjs +0 -69
- package/esm2020/dialog/confirm-dialog/confirm-dialog-config.mjs +0 -12
- package/esm2020/dialog/confirm-dialog/confirm-dialog.component.mjs +0 -85
- package/esm2020/dialog/dialog-config.mjs +0 -15
- package/esm2020/dialog/dialog-content/dialog-close.directive.mjs +0 -38
- package/esm2020/dialog/dialog-content/dialog-content.component.mjs +0 -20
- package/esm2020/dialog/dialog-content/dialog-footer.component.mjs +0 -15
- package/esm2020/dialog/dialog-content/dialog-header.component.mjs +0 -39
- package/esm2020/dialog/dialog-ref.mjs +0 -48
- package/esm2020/dialog/dialog.component.mjs +0 -148
- package/esm2020/dialog/dialog.module.mjs +0 -68
- package/esm2020/dialog/dialog.service.mjs +0 -121
- package/esm2020/drawer/component/drawer.component.mjs +0 -232
- package/esm2020/drawer/component/helper-directives.mjs +0 -37
- package/esm2020/drawer/drawer.module.mjs +0 -37
- package/esm2020/drawer/drawer.service.mjs +0 -44
- package/esm2020/dropdown/dropdown-active.directive.mjs +0 -21
- package/esm2020/dropdown/dropdown-button/dropdown-button.component.mjs +0 -57
- package/esm2020/dropdown/dropdown.directive.mjs +0 -81
- package/esm2020/dropdown/dropdown.module.mjs +0 -65
- package/esm2020/dropdown/menu/menu-content.directive.mjs +0 -51
- package/esm2020/dropdown/menu/menu.component.mjs +0 -26
- package/esm2020/dropdown/menu-item/menu-item.component.mjs +0 -37
- package/esm2020/dropdown/submenu/submenu.component.mjs +0 -40
- package/esm2020/form/common-form.mjs +0 -91
- package/esm2020/form/form-item/form-item.component.mjs +0 -108
- package/esm2020/form/form.directive.mjs +0 -69
- package/esm2020/form/form.module.mjs +0 -48
- package/esm2020/form/helper-directives.mjs +0 -80
- package/esm2020/i18n/i18n.pipe.mjs +0 -20
- package/esm2020/i18n/i18n.service.mjs +0 -43
- package/esm2020/icon/icon-register.service.mjs +0 -74
- package/esm2020/icon/icon.component.mjs +0 -65
- package/esm2020/icon/icon.module.mjs +0 -21
- package/esm2020/inline-alert/inline-alert.component.mjs +0 -53
- package/esm2020/inline-alert/inline-alert.module.mjs +0 -20
- package/esm2020/input/autosize.directive.mjs +0 -59
- package/esm2020/input/helper-directives.mjs +0 -43
- package/esm2020/input/input-group/input-group.component.mjs +0 -39
- package/esm2020/input/input.component.mjs +0 -61
- package/esm2020/input/input.module.mjs +0 -87
- package/esm2020/input/number-input/number-input.component.mjs +0 -112
- package/esm2020/input/search/search.component.mjs +0 -88
- package/esm2020/input/tags-input/tags-input.component.mjs +0 -260
- package/esm2020/input/tags-input/with-max-row-count.mjs +0 -43
- package/esm2020/message/base-message.mjs +0 -90
- package/esm2020/message/message-wrapper.component.mjs +0 -14
- package/esm2020/message/message.component.mjs +0 -70
- package/esm2020/message/message.config.mjs +0 -21
- package/esm2020/message/message.module.mjs +0 -23
- package/esm2020/notification/notification-wrapper.component.mjs +0 -16
- package/esm2020/notification/notification.component.mjs +0 -107
- package/esm2020/notification/notification.module.mjs +0 -24
- package/esm2020/paginator/paginator-intl.mjs +0 -37
- package/esm2020/paginator/paginator.component.mjs +0 -125
- package/esm2020/paginator/paginator.module.mjs +0 -24
- package/esm2020/radio/base-radio.mjs +0 -67
- package/esm2020/radio/radio-button/radio-button.component.mjs +0 -42
- package/esm2020/radio/radio-group/radio-group.component.mjs +0 -76
- package/esm2020/radio/radio.component.mjs +0 -24
- package/esm2020/radio/radio.module.mjs +0 -21
- package/esm2020/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +0 -83
- package/esm2020/scrolling/fixed-size-table-virtual-scroll.directive.mjs +0 -121
- package/esm2020/scrolling/fixed-size-virtual-scroll.directive.mjs +0 -28
- package/esm2020/scrolling/virtual-scroll-viewport.component.mjs +0 -26
- package/esm2020/select/base-select.mjs +0 -337
- package/esm2020/select/multi-select/multi-select.component.mjs +0 -313
- package/esm2020/select/option/option.component.mjs +0 -112
- package/esm2020/select/option-group/option-group.component.mjs +0 -23
- package/esm2020/select/select.component.mjs +0 -108
- package/esm2020/select/select.module.mjs +0 -80
- package/esm2020/select/validators.mjs +0 -79
- package/esm2020/shared/click-outside.directive.mjs +0 -28
- package/esm2020/sort/sort-errors.mjs +0 -17
- package/esm2020/sort/sort-header.component.mjs +0 -72
- package/esm2020/sort/sort.directive.mjs +0 -75
- package/esm2020/sort/sort.module.mjs +0 -19
- package/esm2020/status-bar/status-bar.component.mjs +0 -29
- package/esm2020/status-bar/status-bar.module.mjs +0 -19
- package/esm2020/steps/steps.component.mjs +0 -184
- package/esm2020/steps/steps.module.mjs +0 -19
- package/esm2020/switch/switch.component.mjs +0 -46
- package/esm2020/switch/switch.module.mjs +0 -18
- package/esm2020/table/table-cell-def.directive.mjs +0 -29
- package/esm2020/table/table-cell.component.mjs +0 -121
- package/esm2020/table/table-cell.directive.mjs +0 -31
- package/esm2020/table/table-column-def.directive.mjs +0 -37
- package/esm2020/table/table-header-cell-def.directive.mjs +0 -29
- package/esm2020/table/table-header-cell.directive.mjs +0 -27
- package/esm2020/table/table-header-row-def.directive.mjs +0 -39
- package/esm2020/table/table-header-row.component.mjs +0 -25
- package/esm2020/table/table-placeholder.directive.mjs +0 -30
- package/esm2020/table/table-row-def.directive.mjs +0 -42
- package/esm2020/table/table-row.component.mjs +0 -43
- package/esm2020/table/table-scroll.directive.mjs +0 -134
- package/esm2020/table/table.component.mjs +0 -79
- package/esm2020/table/table.module.mjs +0 -96
- package/esm2020/table-of-contents/table-of-contents.module.mjs +0 -20
- package/esm2020/table-of-contents/toc-container.directive.mjs +0 -109
- package/esm2020/table-of-contents/toc-content.directive.mjs +0 -35
- package/esm2020/table-of-contents/toc-link.directive.mjs +0 -44
- package/esm2020/tabs/tab-body.component.mjs +0 -165
- package/esm2020/tabs/tab-context.service.mjs +0 -31
- package/esm2020/tabs/tab-group.component.mjs +0 -291
- package/esm2020/tabs/tab-header-active-indicator.component.mjs +0 -53
- package/esm2020/tabs/tab-header.component.mjs +0 -367
- package/esm2020/tabs/tab.component.mjs +0 -85
- package/esm2020/tabs/tabs.module.mjs +0 -88
- package/esm2020/tabs/tabs.types.mjs +0 -13
- package/esm2020/tag/check-tag/check-tag.component.mjs +0 -33
- package/esm2020/tag/tag.component.mjs +0 -66
- package/esm2020/tag/tag.module.mjs +0 -20
- package/esm2020/theme/theme.module.mjs +0 -18
- package/esm2020/theme/theme.pipe.mjs +0 -69
- package/esm2020/theme/theme.service.mjs +0 -52
- package/esm2020/time-picker/component.mjs +0 -179
- package/esm2020/time-picker/panel/panel.component.mjs +0 -230
- package/esm2020/time-picker/time-picker.module.mjs +0 -58
- package/esm2020/time-picker/time-picker.type.mjs +0 -13
- package/esm2020/tooltip/base-tooltip.mjs +0 -322
- package/esm2020/tooltip/tooltip-active.directive.mjs +0 -49
- package/esm2020/tooltip/tooltip-copy.directive.mjs +0 -82
- package/esm2020/tooltip/tooltip-intl.mjs +0 -29
- package/esm2020/tooltip/tooltip.component.mjs +0 -107
- package/esm2020/tooltip/tooltip.directive.mjs +0 -47
- package/esm2020/tooltip/tooltip.module.mjs +0 -33
- package/esm2020/tooltip/utils/index.mjs +0 -58
- package/esm2020/tree-select/tree-select.component.mjs +0 -340
- package/esm2020/tree-select/tree-select.module.mjs +0 -34
- package/esm2020/types.mjs +0 -11
- package/esm2020/utils/bem.mjs +0 -44
- package/esm2020/utils/coercion.mjs +0 -17
- package/esm2020/utils/fn.mjs +0 -19
- package/fesm2015/alauda-ui.mjs +0 -12051
- package/fesm2015/alauda-ui.mjs.map +0 -1
- package/fesm2020/alauda-ui.mjs.map +0 -1
- package/src/accordion/README.md +0 -13
- package/src/anchor/README.md +0 -23
- package/src/dropdown/README.md +0 -57
- package/src/form/README.md +0 -32
- package/src/icon/README.md +0 -28
- package/src/inline-alert/README.md +0 -16
- package/src/input/number-input/README.md +0 -16
- package/src/select/README.md +0 -57
- package/src/sort/README.md +0 -13
- package/src/table/README.md +0 -8
- package/src/table-of-contents/README.md +0 -94
- package/src/tag/README.md +0 -32
- package/src/tree-select/README.md +0 -34
- /package/{esm2020 → esm2022}/accordion/index.mjs +0 -0
- /package/{esm2020 → esm2022}/anchor/index.mjs +0 -0
- /package/{esm2020 → esm2022}/anchor/types.mjs +0 -0
- /package/{esm2020 → esm2022}/anchor/utils.mjs +0 -0
- /package/{esm2020 → esm2022}/autocomplete/autocomplete.types.mjs +0 -0
- /package/{esm2020 → esm2022}/autocomplete/index.mjs +0 -0
- /package/{esm2020 → esm2022}/back-top/index.mjs +0 -0
- /package/{esm2020 → esm2022}/breadcrumb/index.mjs +0 -0
- /package/{esm2020 → esm2022}/button/index.mjs +0 -0
- /package/{esm2020 → esm2022}/card/index.mjs +0 -0
- /package/{esm2020 → esm2022}/checkbox/index.mjs +0 -0
- /package/{esm2020 → esm2022}/color-picker/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/animation/animation-consts.mjs +0 -0
- /package/{esm2020 → esm2022}/date-picker/date-picker.type.mjs +0 -0
- /package/{esm2020 → esm2022}/date-picker/index.mjs +0 -0
- /package/{esm2020 → esm2022}/dialog/dialog.types.mjs +0 -0
- /package/{esm2020 → esm2022}/dialog/index.mjs +0 -0
- /package/{esm2020 → esm2022}/dialog/utils/errors.mjs +0 -0
- /package/{esm2020 → esm2022}/dialog/utils/index.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/component/drawer-ref.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/index.mjs +0 -0
- /package/{esm2020 → esm2022}/dropdown/dropdown.types.mjs +0 -0
- /package/{esm2020 → esm2022}/dropdown/index.mjs +0 -0
- /package/{esm2020 → esm2022}/form/form.types.mjs +0 -0
- /package/{esm2020 → esm2022}/form/index.mjs +0 -0
- /package/{esm2020 → esm2022}/i18n/i18n.type.mjs +0 -0
- /package/{esm2020 → esm2022}/i18n/index.mjs +0 -0
- /package/{esm2020 → esm2022}/i18n/language/en.mjs +0 -0
- /package/{esm2020 → esm2022}/i18n/language/zh.mjs +0 -0
- /package/{esm2020 → esm2022}/icon/icons.mjs +0 -0
- /package/{esm2020 → esm2022}/icon/index.mjs +0 -0
- /package/{esm2020 → esm2022}/icon/utils.mjs +0 -0
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/inline-alert/index.mjs +0 -0
- /package/{esm2020 → esm2022}/inline-alert/inline-alert.types.mjs +0 -0
- /package/{esm2020 → esm2022}/input/index.mjs +0 -0
- /package/{esm2020 → esm2022}/input/utils/index.mjs +0 -0
- /package/{esm2020 → esm2022}/message/index.mjs +0 -0
- /package/{esm2020 → esm2022}/message/message-animations.mjs +0 -0
- /package/{esm2020 → esm2022}/notification/index.mjs +0 -0
- /package/{esm2020 → esm2022}/notification/notification.config.mjs +0 -0
- /package/{esm2020 → esm2022}/paginator/index.mjs +0 -0
- /package/{esm2020 → esm2022}/radio/index.mjs +0 -0
- /package/{esm2020 → esm2022}/radio/radio.types.mjs +0 -0
- /package/{esm2020 → esm2022}/scrolling/index.mjs +0 -0
- /package/{esm2020 → esm2022}/select/index.mjs +0 -0
- /package/{esm2020 → esm2022}/select/select.types.mjs +0 -0
- /package/{esm2020 → esm2022}/sort/index.mjs +0 -0
- /package/{esm2020 → esm2022}/sort/sort.types.mjs +0 -0
- /package/{esm2020 → esm2022}/status-bar/index.mjs +0 -0
- /package/{esm2020 → esm2022}/status-bar/status-bar.types.mjs +0 -0
- /package/{esm2020 → esm2022}/steps/index.mjs +0 -0
- /package/{esm2020 → esm2022}/switch/index.mjs +0 -0
- /package/{esm2020 → esm2022}/table/index.mjs +0 -0
- /package/{esm2020 → esm2022}/table-of-contents/index.mjs +0 -0
- /package/{esm2020 → esm2022}/tabs/index.mjs +0 -0
- /package/{esm2020 → esm2022}/tag/index.mjs +0 -0
- /package/{esm2020 → esm2022}/tag/tag.types.mjs +0 -0
- /package/{esm2020 → esm2022}/theme/index.mjs +0 -0
- /package/{esm2020 → esm2022}/theme/theme.types.mjs +0 -0
- /package/{esm2020 → esm2022}/theme/utils.mjs +0 -0
- /package/{esm2020 → esm2022}/time-picker/constant.mjs +0 -0
- /package/{esm2020 → esm2022}/time-picker/index.mjs +0 -0
- /package/{esm2020 → esm2022}/tooltip/index.mjs +0 -0
- /package/{esm2020 → esm2022}/tooltip/tooltip.types.mjs +0 -0
- /package/{esm2020 → esm2022}/tree-select/index.mjs +0 -0
- /package/{esm2020 → esm2022}/tree-select/tree-select.types.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/animations.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/async.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/observe-dom.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/operators.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/scroll-into-view.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/watch-content-exist.mjs +0 -0
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import { FocusKeyManager } from '@angular/cdk/a11y';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
3
|
+
import { Subject, takeUntil } from 'rxjs';
|
|
4
|
+
import { buildBem } from '../utils';
|
|
5
|
+
import { TabHeaderAddonDirective, TabLabelWrapperDirective, TabTitleDirective, } from './tab-body.component';
|
|
6
|
+
import { TabHeaderActiveIndicatorComponent } from './tab-header-active-indicator.component';
|
|
7
|
+
import { TabSize, TabType } from './tabs.types';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/cdk/scrolling";
|
|
10
|
+
import * as i2 from "@angular/common";
|
|
11
|
+
import * as i3 from "@angular/cdk/portal";
|
|
12
|
+
import * as i4 from "../icon/icon.component";
|
|
13
|
+
import * as i5 from "@angular/cdk/observers";
|
|
14
|
+
import * as i6 from "./tab-header-active-indicator.component";
|
|
15
|
+
const EXAGGERATED_OVERSCROLL = 60;
|
|
16
|
+
export class TabHeaderComponent {
|
|
17
|
+
_changeDetectorRef;
|
|
18
|
+
_viewportRuler;
|
|
19
|
+
bem = buildBem('aui-tab-header');
|
|
20
|
+
_showAddon = false;
|
|
21
|
+
_showPaginationControls = false;
|
|
22
|
+
_disableScrollAfter = true;
|
|
23
|
+
_disableScrollBefore = true;
|
|
24
|
+
_scrollDistanceChanged;
|
|
25
|
+
_selectedIndexChanged = false;
|
|
26
|
+
_scrollDistance = 0;
|
|
27
|
+
_selectedIndex = 0;
|
|
28
|
+
_destroyed = new Subject();
|
|
29
|
+
_keyManager;
|
|
30
|
+
_tabLabelCount;
|
|
31
|
+
type = TabType.Line;
|
|
32
|
+
size = TabSize.Medium;
|
|
33
|
+
get selectedIndex() {
|
|
34
|
+
return this._selectedIndex;
|
|
35
|
+
}
|
|
36
|
+
set selectedIndex(value) {
|
|
37
|
+
this._selectedIndexChanged = this._selectedIndex !== value;
|
|
38
|
+
this._selectedIndex = value;
|
|
39
|
+
if (this._keyManager) {
|
|
40
|
+
this._keyManager.updateActiveItem(value);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
selectFocusedIndex = new EventEmitter();
|
|
44
|
+
indexFocused = new EventEmitter();
|
|
45
|
+
_headerAddon;
|
|
46
|
+
_title;
|
|
47
|
+
_labelWrappers;
|
|
48
|
+
_tabListContainer;
|
|
49
|
+
_tabList;
|
|
50
|
+
_paginationWrapper;
|
|
51
|
+
_activeIndicator;
|
|
52
|
+
ngOnDestroy() {
|
|
53
|
+
this._destroyed.next();
|
|
54
|
+
this._destroyed.complete();
|
|
55
|
+
}
|
|
56
|
+
ngAfterContentChecked() {
|
|
57
|
+
if (this._tabLabelCount !== this._labelWrappers.length) {
|
|
58
|
+
this._updatePagination();
|
|
59
|
+
this._tabLabelCount = this._labelWrappers.length;
|
|
60
|
+
this._changeDetectorRef.markForCheck();
|
|
61
|
+
}
|
|
62
|
+
if (this._selectedIndexChanged) {
|
|
63
|
+
this._scrollToLabel(this._selectedIndex);
|
|
64
|
+
this._checkScrollingControls();
|
|
65
|
+
this._alignActiveIndicatorToSelectedTab();
|
|
66
|
+
this._selectedIndexChanged = false;
|
|
67
|
+
this._changeDetectorRef.markForCheck();
|
|
68
|
+
}
|
|
69
|
+
if (this._scrollDistanceChanged) {
|
|
70
|
+
this._updateTabScrollPosition();
|
|
71
|
+
this._scrollDistanceChanged = false;
|
|
72
|
+
this._changeDetectorRef.markForCheck();
|
|
73
|
+
}
|
|
74
|
+
if (this._showAddon !== !!this._headerAddon) {
|
|
75
|
+
this._showAddon = !!this._headerAddon;
|
|
76
|
+
this._updatePagination();
|
|
77
|
+
this._changeDetectorRef.markForCheck();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
ngAfterContentInit() {
|
|
81
|
+
const resize = this._viewportRuler.change(150);
|
|
82
|
+
const realign = () => {
|
|
83
|
+
this._updatePagination();
|
|
84
|
+
this._alignActiveIndicatorToSelectedTab();
|
|
85
|
+
requestAnimationFrame(() => {
|
|
86
|
+
this._scrollToLabel(this._selectedIndex);
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
this._keyManager = new FocusKeyManager(this._labelWrappers)
|
|
90
|
+
.withHorizontalOrientation('ltr')
|
|
91
|
+
.withWrap();
|
|
92
|
+
this._keyManager.updateActiveItem(0);
|
|
93
|
+
requestAnimationFrame(realign);
|
|
94
|
+
resize.pipe(takeUntil(this._destroyed)).subscribe(() => {
|
|
95
|
+
realign();
|
|
96
|
+
});
|
|
97
|
+
this._keyManager.change
|
|
98
|
+
.pipe(takeUntil(this._destroyed))
|
|
99
|
+
.subscribe(newFocusIndex => {
|
|
100
|
+
this.indexFocused.emit(newFocusIndex);
|
|
101
|
+
this._setTabFocus(newFocusIndex);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
get scrollDistance() {
|
|
105
|
+
return this._scrollDistance;
|
|
106
|
+
}
|
|
107
|
+
set scrollDistance(v) {
|
|
108
|
+
this._scrollDistance = Math.max(0, Math.min(this._getMaxScrollDistance(), v));
|
|
109
|
+
this._scrollDistanceChanged = true;
|
|
110
|
+
this._checkScrollingControls();
|
|
111
|
+
}
|
|
112
|
+
get focusIndex() {
|
|
113
|
+
return this._keyManager ? this._keyManager.activeItemIndex : 0;
|
|
114
|
+
}
|
|
115
|
+
set focusIndex(value) {
|
|
116
|
+
if (!this._isValidIndex(value) ||
|
|
117
|
+
this.focusIndex === value ||
|
|
118
|
+
!this._keyManager) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
this._keyManager.setActiveItem(value);
|
|
122
|
+
}
|
|
123
|
+
_isValidIndex(index) {
|
|
124
|
+
if (!this._labelWrappers) {
|
|
125
|
+
return true;
|
|
126
|
+
}
|
|
127
|
+
const tab = this._labelWrappers
|
|
128
|
+
? this._labelWrappers.toArray()[index]
|
|
129
|
+
: null;
|
|
130
|
+
return !!tab && !tab.disabled;
|
|
131
|
+
}
|
|
132
|
+
_handleKeydown(event) {
|
|
133
|
+
switch (event.key) {
|
|
134
|
+
case 'Home': {
|
|
135
|
+
this._keyManager.setFirstItemActive();
|
|
136
|
+
event.preventDefault();
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
case 'End': {
|
|
140
|
+
this._keyManager.setLastItemActive();
|
|
141
|
+
event.preventDefault();
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
case 'Enter':
|
|
145
|
+
case 'Space': {
|
|
146
|
+
this.selectFocusedIndex.emit(this.focusIndex);
|
|
147
|
+
event.preventDefault();
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
default: {
|
|
151
|
+
this._keyManager.onKeydown(event);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
_setTabFocus(tabIndex) {
|
|
156
|
+
if (this._showPaginationControls) {
|
|
157
|
+
this._scrollToLabel(tabIndex);
|
|
158
|
+
}
|
|
159
|
+
if (this._labelWrappers?.length > 0) {
|
|
160
|
+
this._labelWrappers.toArray()[tabIndex].focus();
|
|
161
|
+
const containerEl = this._tabListContainer.nativeElement;
|
|
162
|
+
containerEl.scrollLeft = 0;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
_scrollToLabel(labelIndex) {
|
|
166
|
+
const selectedLabel = this._labelWrappers
|
|
167
|
+
? this._labelWrappers.toArray()[labelIndex]
|
|
168
|
+
: null;
|
|
169
|
+
if (!selectedLabel) {
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
const viewLength = this._tabListContainer.nativeElement.offsetWidth;
|
|
173
|
+
const labelBeforePos = selectedLabel.getOffsetLeft();
|
|
174
|
+
const labelAfterPos = labelBeforePos + selectedLabel.getOffsetWidth();
|
|
175
|
+
const beforeVisiblePos = this.scrollDistance;
|
|
176
|
+
const afterVisiblePos = this.scrollDistance + viewLength;
|
|
177
|
+
if (labelBeforePos < beforeVisiblePos) {
|
|
178
|
+
this.scrollDistance -=
|
|
179
|
+
beforeVisiblePos - labelBeforePos + EXAGGERATED_OVERSCROLL;
|
|
180
|
+
}
|
|
181
|
+
else if (labelAfterPos > afterVisiblePos) {
|
|
182
|
+
this.scrollDistance +=
|
|
183
|
+
labelAfterPos - afterVisiblePos + EXAGGERATED_OVERSCROLL;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
_scrollHeader(scrollDir) {
|
|
187
|
+
const viewLength = this._tabListContainer.nativeElement.offsetWidth;
|
|
188
|
+
this.scrollDistance += ((scrollDir === 'before' ? -1 : 1) * viewLength) / 3;
|
|
189
|
+
}
|
|
190
|
+
_onContentChanges() {
|
|
191
|
+
this._updatePagination();
|
|
192
|
+
this._alignActiveIndicatorToSelectedTab();
|
|
193
|
+
this._changeDetectorRef.markForCheck();
|
|
194
|
+
}
|
|
195
|
+
_updatePagination() {
|
|
196
|
+
this._checkPaginationEnabled();
|
|
197
|
+
this._checkScrollingControls();
|
|
198
|
+
this._updateTabScrollPosition();
|
|
199
|
+
}
|
|
200
|
+
_checkPaginationEnabled() {
|
|
201
|
+
const isEnabled = this._tabList.nativeElement.scrollWidth >
|
|
202
|
+
this._paginationWrapper.nativeElement.offsetWidth + 2;
|
|
203
|
+
if (!isEnabled) {
|
|
204
|
+
this.scrollDistance = 0;
|
|
205
|
+
}
|
|
206
|
+
const detectChanges = isEnabled !== this._showPaginationControls;
|
|
207
|
+
this._showPaginationControls = isEnabled;
|
|
208
|
+
if (detectChanges) {
|
|
209
|
+
this._changeDetectorRef.markForCheck();
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
_checkScrollingControls() {
|
|
213
|
+
this._disableScrollBefore = this.scrollDistance === 0;
|
|
214
|
+
this._disableScrollAfter =
|
|
215
|
+
this.scrollDistance === this._getMaxScrollDistance();
|
|
216
|
+
this._changeDetectorRef.markForCheck();
|
|
217
|
+
}
|
|
218
|
+
_getMaxScrollDistance() {
|
|
219
|
+
const lengthOfTabList = this._tabList.nativeElement.scrollWidth;
|
|
220
|
+
const viewLength = this._tabListContainer.nativeElement.offsetWidth;
|
|
221
|
+
return lengthOfTabList - viewLength || 0;
|
|
222
|
+
}
|
|
223
|
+
_updateTabScrollPosition() {
|
|
224
|
+
const scrollDistance = this.scrollDistance;
|
|
225
|
+
const translateX = -scrollDistance;
|
|
226
|
+
this._tabList.nativeElement.style.transform = `translateX(${translateX}px)`;
|
|
227
|
+
}
|
|
228
|
+
_alignActiveIndicatorToSelectedTab() {
|
|
229
|
+
const selectedLabelWrapper = this._labelWrappers?.length > 0
|
|
230
|
+
? this._labelWrappers.toArray()[this.selectedIndex].elementRef
|
|
231
|
+
.nativeElement
|
|
232
|
+
: null;
|
|
233
|
+
this._activeIndicator.alignToElement(selectedLabelWrapper);
|
|
234
|
+
}
|
|
235
|
+
constructor(_changeDetectorRef, _viewportRuler) {
|
|
236
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
237
|
+
this._viewportRuler = _viewportRuler;
|
|
238
|
+
}
|
|
239
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TabHeaderComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ViewportRuler }], target: i0.ɵɵFactoryTarget.Component });
|
|
240
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", 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\n [ngClass]=\"bem.element('pagination-wrapper')\"\n #paginationWrapper\n >\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: [".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{padding:16px 20px;font-size:var(--aui-font-size-xl);line-height:var(--aui-line-height-xl);font-weight:var(--aui-font-weight-bolder)}.aui-tab-header--medium .aui-tab-label{padding:12px 20px;font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l);font-weight:var(--aui-font-weight-bolder)}.aui-tab-header--small .aui-tab-label{padding:8px 16px;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.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:var(--aui-font-size-xxl);margin-inline:20px;padding:20px 0 12px;font-weight:var(--aui-font-weight-bolder);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:var(--aui-font-weight-bold);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,.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}.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 rgba(var(--aui-color-primary),.3)}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"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i4.IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "directive", type: i5.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { kind: "component", type: i6.TabHeaderActiveIndicatorComponent, selector: "aui-tab-header-active-indicator", inputs: ["type"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
241
|
+
}
|
|
242
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TabHeaderComponent, decorators: [{
|
|
243
|
+
type: Component,
|
|
244
|
+
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\n [ngClass]=\"bem.element('pagination-wrapper')\"\n #paginationWrapper\n >\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: [".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{padding:16px 20px;font-size:var(--aui-font-size-xl);line-height:var(--aui-line-height-xl);font-weight:var(--aui-font-weight-bolder)}.aui-tab-header--medium .aui-tab-label{padding:12px 20px;font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l);font-weight:var(--aui-font-weight-bolder)}.aui-tab-header--small .aui-tab-label{padding:8px 16px;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.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:var(--aui-font-size-xxl);margin-inline:20px;padding:20px 0 12px;font-weight:var(--aui-font-weight-bolder);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:var(--aui-font-weight-bold);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,.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}.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 rgba(var(--aui-color-primary),.3)}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"] }]
|
|
245
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.ViewportRuler }]; }, propDecorators: { type: [{
|
|
246
|
+
type: Input
|
|
247
|
+
}], size: [{
|
|
248
|
+
type: Input
|
|
249
|
+
}], selectedIndex: [{
|
|
250
|
+
type: Input
|
|
251
|
+
}], selectFocusedIndex: [{
|
|
252
|
+
type: Output
|
|
253
|
+
}], indexFocused: [{
|
|
254
|
+
type: Output
|
|
255
|
+
}], _headerAddon: [{
|
|
256
|
+
type: ContentChild,
|
|
257
|
+
args: [TabHeaderAddonDirective, { static: false }]
|
|
258
|
+
}], _title: [{
|
|
259
|
+
type: ContentChild,
|
|
260
|
+
args: [TabTitleDirective, { static: false }]
|
|
261
|
+
}], _labelWrappers: [{
|
|
262
|
+
type: ContentChildren,
|
|
263
|
+
args: [TabLabelWrapperDirective]
|
|
264
|
+
}], _tabListContainer: [{
|
|
265
|
+
type: ViewChild,
|
|
266
|
+
args: ['tabListContainer', { static: true }]
|
|
267
|
+
}], _tabList: [{
|
|
268
|
+
type: ViewChild,
|
|
269
|
+
args: ['tabList', { static: true }]
|
|
270
|
+
}], _paginationWrapper: [{
|
|
271
|
+
type: ViewChild,
|
|
272
|
+
args: ['paginationWrapper', { static: true }]
|
|
273
|
+
}], _activeIndicator: [{
|
|
274
|
+
type: ViewChild,
|
|
275
|
+
args: [TabHeaderActiveIndicatorComponent, { static: true }]
|
|
276
|
+
}] } });
|
|
277
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFicy90YWItaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy90YWJzL3RhYi1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE9BQU8sRUFHTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQU8sUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXpDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLGlCQUFpQixHQUNsQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7OztBQVloRCxNQUFNLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztBQVVsQyxNQUFNLE9BQU8sa0JBQWtCO0lBMllWO0lBQ0E7SUF6WW5CLEdBQUcsR0FBUSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUV0QyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBR25CLHVCQUF1QixHQUFHLEtBQUssQ0FBQztJQUdoQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7SUFHM0Isb0JBQW9CLEdBQUcsSUFBSSxDQUFDO0lBR3BCLHNCQUFzQixDQUFVO0lBR2hDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUc5QixlQUFlLEdBQUcsQ0FBQyxDQUFDO0lBRXBCLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFHVixVQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUcxQyxXQUFXLENBQTRDO0lBTXZELGNBQWMsQ0FBUztJQUcvQixJQUFJLEdBQVksT0FBTyxDQUFDLElBQUksQ0FBQztJQUc3QixJQUFJLEdBQVksT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUcvQixJQUNJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksYUFBYSxDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxjQUFjLEtBQUssS0FBSyxDQUFDO1FBQzNELElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBRTVCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUlRLGtCQUFrQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFJaEQsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFHbkQsWUFBWSxDQUEwQjtJQUd0QyxNQUFNLENBQW9CO0lBTTFCLGNBQWMsQ0FBK0Q7SUFHN0UsaUJBQWlCLENBQTBCO0lBRzNDLFFBQVEsQ0FBMEI7SUFHbEMsa0JBQWtCLENBQTBCO0lBRzVDLGdCQUFnQixDQUFvQztJQUVwRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxxQkFBcUI7UUFFbkIsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFO1lBQ3RELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7WUFDakQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3hDO1FBSUQsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLGtDQUFrQyxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztZQUNuQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDeEM7UUFJRCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUMvQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN4QztRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUMzQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN4QztJQUNILENBQUM7SUFLRCxrQkFBa0I7UUFDaEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0MsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ25CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxrQ0FBa0MsRUFBRSxDQUFDO1lBQzFDLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtnQkFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7YUFDeEQseUJBQXlCLENBQUMsS0FBSyxDQUFDO2FBQ2hDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUlyQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUkvQixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3JELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7UUFLSCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU07YUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDaEMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBR0QsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxjQUFjLENBQUMsQ0FBUztRQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQzdCLENBQUMsRUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUMxQyxDQUFDO1FBR0YsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztRQUNuQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBR0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFHRCxJQUFJLFVBQVUsQ0FBQyxLQUFhO1FBQzFCLElBQ0UsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsVUFBVSxLQUFLLEtBQUs7WUFDekIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUNqQjtZQUNBLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFNRCxhQUFhLENBQUMsS0FBYTtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWM7WUFDN0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3RDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDVCxPQUFPLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBb0I7UUFDakMsUUFBUSxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ2pCLEtBQUssTUFBTSxDQUFDLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUN0QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLE1BQU07YUFDUDtZQUNELEtBQUssS0FBSyxDQUFDLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUNyQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLE1BQU07YUFDUDtZQUNELEtBQUssT0FBTyxDQUFDO1lBQ2IsS0FBSyxPQUFPLENBQUMsQ0FBQztnQkFDWixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDOUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixNQUFNO2FBQ1A7WUFDRCxPQUFPLENBQUMsQ0FBQztnQkFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNuQztTQUNGO0lBQ0gsQ0FBQztJQU1ELFlBQVksQ0FBQyxRQUFnQjtRQUMzQixJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtZQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUloRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDO1lBQ3pELFdBQVcsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQVFELGNBQWMsQ0FBQyxVQUFrQjtRQUMvQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYztZQUN2QyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUM7WUFDM0MsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNULElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDbEIsT0FBTztTQUNSO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7UUFDcEUsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JELE1BQU0sYUFBYSxHQUFHLGNBQWMsR0FBRyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzdDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDO1FBQ3pELElBQUksY0FBYyxHQUFHLGdCQUFnQixFQUFFO1lBRXJDLElBQUksQ0FBQyxjQUFjO2dCQUNqQixnQkFBZ0IsR0FBRyxjQUFjLEdBQUcsc0JBQXNCLENBQUM7U0FDOUQ7YUFBTSxJQUFJLGFBQWEsR0FBRyxlQUFlLEVBQUU7WUFFMUMsSUFBSSxDQUFDLGNBQWM7Z0JBQ2pCLGFBQWEsR0FBRyxlQUFlLEdBQUcsc0JBQXNCLENBQUM7U0FDNUQ7SUFDSCxDQUFDO0lBVUQsYUFBYSxDQUFDLFNBQTBCO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO1FBRXBFLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxDQUFDLFNBQVMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUtELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxrQ0FBa0MsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBS0QsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQVVELHVCQUF1QjtRQUNyQixNQUFNLFNBQVMsR0FDYixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXO1lBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7U0FDekI7UUFDRCxNQUFNLGFBQWEsR0FBRyxTQUFTLEtBQUssSUFBSSxDQUFDLHVCQUF1QixDQUFDO1FBQ2pFLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxTQUFTLENBQUM7UUFFekMsSUFBSSxhQUFhLEVBQUU7WUFDakIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQVdELHVCQUF1QjtRQUVyQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGNBQWMsS0FBSyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLG1CQUFtQjtZQUN0QixJQUFJLENBQUMsY0FBYyxLQUFLLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBU0QscUJBQXFCO1FBQ25CLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztRQUNoRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztRQUNwRSxPQUFPLGVBQWUsR0FBRyxVQUFVLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFHRCx3QkFBd0I7UUFDdEIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMzQyxNQUFNLFVBQVUsR0FBRyxDQUFDLGNBQWMsQ0FBQztRQUtuQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLGNBQWMsVUFBVSxLQUFLLENBQUM7SUFDOUUsQ0FBQztJQUdELGtDQUFrQztRQUNoQyxNQUFNLG9CQUFvQixHQUN4QixJQUFJLENBQUMsY0FBYyxFQUFFLE1BQU0sR0FBRyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVO2lCQUN6RCxhQUFhO1lBQ2xCLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDWCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFlBQ21CLGtCQUFxQyxFQUNyQyxjQUE2QjtRQUQ3Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLG1CQUFjLEdBQWQsY0FBYyxDQUFlO0lBQzdDLENBQUM7dUdBN1lPLGtCQUFrQjsyRkFBbEIsa0JBQWtCLDZQQW9FZix1QkFBdUIseUVBR3ZCLGlCQUFpQixvRUFHZCx3QkFBd0IsaWFBZTlCLGlDQUFpQyw4REM1STlDLGl3REFxREE7OzJGREZhLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDRSxnQkFBZ0IsaUJBR1gsaUJBQWlCLENBQUMsSUFBSSx1QkFDaEIsS0FBSyxtQkFDVCx1QkFBdUIsQ0FBQyxNQUFNO29JQTBDL0MsSUFBSTtzQkFESCxLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFLRixhQUFhO3NCQURoQixLQUFLO2dCQWdCRyxrQkFBa0I7c0JBRDFCLE1BQU07Z0JBS0UsWUFBWTtzQkFEcEIsTUFBTTtnQkFJUCxZQUFZO3NCQURYLFlBQVk7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUl4RCxNQUFNO3NCQURMLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQU9sRCxjQUFjO3NCQUpiLGVBQWU7dUJBQUMsd0JBQXdCO2dCQU96QyxpQkFBaUI7c0JBRGhCLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUkvQyxRQUFRO3NCQURQLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJdEMsa0JBQWtCO3NCQURqQixTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJaEQsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsaUNBQWlDLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgVmlld3BvcnRSdWxlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBCZW0sIGJ1aWxkQmVtIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQge1xuICBUYWJIZWFkZXJBZGRvbkRpcmVjdGl2ZSxcbiAgVGFiTGFiZWxXcmFwcGVyRGlyZWN0aXZlLFxuICBUYWJUaXRsZURpcmVjdGl2ZSxcbn0gZnJvbSAnLi90YWItYm9keS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiSGVhZGVyQWN0aXZlSW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi90YWItaGVhZGVyLWFjdGl2ZS1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYlNpemUsIFRhYlR5cGUgfSBmcm9tICcuL3RhYnMudHlwZXMnO1xuXG4vKipcbiAqIFRoZSBkaXJlY3Rpb25zIHRoYXQgc2Nyb2xsaW5nIGNhbiBnbyBpbiB3aGVuIHRoZSBoZWFkZXIncyB0YWJzIGV4Y2VlZCB0aGUgaGVhZGVyIHdpZHRoLiAnQWZ0ZXInXG4gKiB3aWxsIHNjcm9sbCB0aGUgaGVhZGVyIHRvd2FyZHMgdGhlIGVuZCBvZiB0aGUgdGFicyBsaXN0IGFuZCAnYmVmb3JlJyB3aWxsIHNjcm9sbCB0b3dhcmRzIHRoZVxuICogYmVnaW5uaW5nIG9mIHRoZSBsaXN0LlxuICovXG5leHBvcnQgdHlwZSBTY3JvbGxEaXJlY3Rpb24gPSAnYWZ0ZXInIHwgJ2JlZm9yZSc7XG4vKipcbiAqIFRoZSBkaXN0YW5jZSBpbiBwaXhlbHMgdGhhdCB3aWxsIGJlIG92ZXJzaG90IHdoZW4gc2Nyb2xsaW5nIGEgdGFiIGxhYmVsIGludG8gdmlldy4gVGhpcyBoZWxwc1xuICogcHJvdmlkZSBhIHNtYWxsIGFmZm9yZGFuY2UgdG8gdGhlIGxhYmVsIG5leHQgdG8gaXQuXG4gKi9cbmNvbnN0IEVYQUdHRVJBVEVEX09WRVJTQ1JPTEwgPSA2MDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLXRhYi1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFiLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYi1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJIZWFkZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudENoZWNrZWQsIEFmdGVyQ29udGVudEluaXRcbntcbiAgYmVtOiBCZW0gPSBidWlsZEJlbSgnYXVpLXRhYi1oZWFkZXInKTtcblxuICBfc2hvd0FkZG9uID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNvbnRyb2xzIGZvciBwYWdpbmF0aW9uIHNob3VsZCBiZSBkaXNwbGF5ZWQgKi9cbiAgX3Nob3dQYWdpbmF0aW9uQ29udHJvbHMgPSBmYWxzZTtcblxuICAvKiogV2hldGhlciB0aGUgdGFiIGxpc3QgY2FuIGJlIHNjcm9sbGVkIG1vcmUgdG93YXJkcyB0aGUgZW5kIG9mIHRoZSB0YWIgbGFiZWwgbGlzdC4gKi9cbiAgX2Rpc2FibGVTY3JvbGxBZnRlciA9IHRydWU7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHRhYiBsaXN0IGNhbiBiZSBzY3JvbGxlZCBtb3JlIHRvd2FyZHMgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGFiIGxhYmVsIGxpc3QuICovXG4gIF9kaXNhYmxlU2Nyb2xsQmVmb3JlID0gdHJ1ZTtcblxuICAvKiogV2hldGhlciB0aGUgc2Nyb2xsIGRpc3RhbmNlIGhhcyBjaGFuZ2VkIGFuZCBzaG91bGQgYmUgYXBwbGllZCBhZnRlciB0aGUgdmlldyBpcyBjaGVja2VkLiAqL1xuICBwcml2YXRlIF9zY3JvbGxEaXN0YW5jZUNoYW5nZWQ6IGJvb2xlYW47XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGhlYWRlciBzaG91bGQgc2Nyb2xsIHRvIHRoZSBzZWxlY3RlZCBpbmRleCBhZnRlciB0aGUgdmlldyBoYXMgYmVlbiBjaGVja2VkLiAqL1xuICBwcml2YXRlIF9zZWxlY3RlZEluZGV4Q2hhbmdlZCA9IGZhbHNlO1xuXG4gIC8qKiBUaGUgZGlzdGFuY2UgaW4gcGl4ZWxzIHRoYXQgdGhlIHRhYiBsYWJlbHMgc2hvdWxkIGJlIHRyYW5zbGF0ZWQgdG8gdGhlIGxlZnQuICovXG4gIHByaXZhdGUgX3Njcm9sbERpc3RhbmNlID0gMDtcblxuICBwcml2YXRlIF9zZWxlY3RlZEluZGV4ID0gMDtcblxuICAvKiogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IGlzIGRlc3Ryb3llZC4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKiogVXNlZCB0byBtYW5hZ2UgZm9jdXMgYmV0d2VlbiB0aGUgdGFicy4gKi9cbiAgcHJpdmF0ZSBfa2V5TWFuYWdlcjogRm9jdXNLZXlNYW5hZ2VyPFRhYkxhYmVsV3JhcHBlckRpcmVjdGl2ZT47XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgdGFiIGxhYmVscyB0aGF0IGFyZSBkaXNwbGF5ZWQgb24gdGhlIGhlYWRlci4gV2hlbiB0aGlzIGNoYW5nZXMsIHRoZSBoZWFkZXJcbiAgICogc2hvdWxkIHJlLWV2YWx1YXRlIHRoZSBzY3JvbGwgcG9zaXRpb24uXG4gICAqL1xuICBwcml2YXRlIF90YWJMYWJlbENvdW50OiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgdHlwZTogVGFiVHlwZSA9IFRhYlR5cGUuTGluZTtcblxuICBASW5wdXQoKVxuICBzaXplOiBUYWJTaXplID0gVGFiU2l6ZS5NZWRpdW07XG5cbiAgLyoqIFRoZSBpbmRleCBvZiB0aGUgYWN0aXZlIHRhYi4gKi9cbiAgQElucHV0KClcbiAgZ2V0IHNlbGVjdGVkSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJbmRleDtcbiAgfVxuXG4gIHNldCBzZWxlY3RlZEluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9zZWxlY3RlZEluZGV4Q2hhbmdlZCA9IHRoaXMuX3NlbGVjdGVkSW5kZXggIT09IHZhbHVlO1xuICAgIHRoaXMuX3NlbGVjdGVkSW5kZXggPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLl9rZXlNYW5hZ2VyKSB7XG4gICAgICB0aGlzLl9rZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0odmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIG9wdGlvbiBpcyBzZWxlY3RlZC4gKi9cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHNlbGVjdEZvY3VzZWRJbmRleCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBsYWJlbCBpcyBmb2N1c2VkLiAqL1xuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgaW5kZXhGb2N1c2VkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQENvbnRlbnRDaGlsZChUYWJIZWFkZXJBZGRvbkRpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIF9oZWFkZXJBZGRvbjogVGFiSGVhZGVyQWRkb25EaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZChUYWJUaXRsZURpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIF90aXRsZTogVGFiVGl0bGVEaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihUYWJMYWJlbFdyYXBwZXJEaXJlY3RpdmUpXG4gIC8qKlxuICAgKiB3b3JrYXJvdW5kIGZvciBAbGluayBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvcHVsbC80MjQyNVxuICAgKi9cbiAgX2xhYmVsV3JhcHBlcnM6IFF1ZXJ5TGlzdDxUYWJMYWJlbFdyYXBwZXJEaXJlY3RpdmUgJiB7IGRpc2FibGVkPzogYm9vbGVhbiB9PjtcblxuICBAVmlld0NoaWxkKCd0YWJMaXN0Q29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgX3RhYkxpc3RDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ3RhYkxpc3QnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBfdGFiTGlzdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgncGFnaW5hdGlvbldyYXBwZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBfcGFnaW5hdGlvbldyYXBwZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoVGFiSGVhZGVyQWN0aXZlSW5kaWNhdG9yQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBfYWN0aXZlSW5kaWNhdG9yOiBUYWJIZWFkZXJBY3RpdmVJbmRpY2F0b3JDb21wb25lbnQ7XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZGVzdHJveWVkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAvLyBJZiB0aGUgbnVtYmVyIG9mIHRhYiBsYWJlbHMgaGF2ZSBjaGFuZ2VkLCBjaGVjayBpZiBzY3JvbGxpbmcgc2hvdWxkIGJlIGVuYWJsZWRcbiAgICBpZiAodGhpcy5fdGFiTGFiZWxDb3VudCAhPT0gdGhpcy5fbGFiZWxXcmFwcGVycy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVBhZ2luYXRpb24oKTtcbiAgICAgIHRoaXMuX3RhYkxhYmVsQ291bnQgPSB0aGlzLl9sYWJlbFdyYXBwZXJzLmxlbmd0aDtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBzZWxlY3RlZCBpbmRleCBoYXMgY2hhbmdlZCwgc2Nyb2xsIHRvIHRoZSBsYWJlbCBhbmQgY2hlY2sgaWYgdGhlIHNjcm9sbGluZyBjb250cm9sc1xuICAgIC8vIHNob3VsZCBiZSBkaXNhYmxlZC5cbiAgICBpZiAodGhpcy5fc2VsZWN0ZWRJbmRleENoYW5nZWQpIHtcbiAgICAgIHRoaXMuX3Njcm9sbFRvTGFiZWwodGhpcy5fc2VsZWN0ZWRJbmRleCk7XG4gICAgICB0aGlzLl9jaGVja1Njcm9sbGluZ0NvbnRyb2xzKCk7XG4gICAgICB0aGlzLl9hbGlnbkFjdGl2ZUluZGljYXRvclRvU2VsZWN0ZWRUYWIoKTtcbiAgICAgIHRoaXMuX3NlbGVjdGVkSW5kZXhDaGFuZ2VkID0gZmFsc2U7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgc2Nyb2xsIGRpc3RhbmNlIGhhcyBiZWVuIGNoYW5nZWQgKHRhYiBzZWxlY3RlZCwgZm9jdXNlZCwgc2Nyb2xsIGNvbnRyb2xzIGFjdGl2YXRlZCksXG4gICAgLy8gdGhlbiB0cmFuc2xhdGUgdGhlIGhlYWRlciB0byByZWZsZWN0IHRoaXMuXG4gICAgaWYgKHRoaXMuX3Njcm9sbERpc3RhbmNlQ2hhbmdlZCkge1xuICAgICAgdGhpcy5fdXBkYXRlVGFiU2Nyb2xsUG9zaXRpb24oKTtcbiAgICAgIHRoaXMuX3Njcm9sbERpc3RhbmNlQ2hhbmdlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Nob3dBZGRvbiAhPT0gISF0aGlzLl9oZWFkZXJBZGRvbikge1xuICAgICAgdGhpcy5fc2hvd0FkZG9uID0gISF0aGlzLl9oZWFkZXJBZGRvbjtcbiAgICAgIHRoaXMuX3VwZGF0ZVBhZ2luYXRpb24oKTtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBbGlnbnMgdGhlIGluayBiYXIgdG8gdGhlIHNlbGVjdGVkIHRhYiBvbiBsb2FkLlxuICAgKi9cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIGNvbnN0IHJlc2l6ZSA9IHRoaXMuX3ZpZXdwb3J0UnVsZXIuY2hhbmdlKDE1MCk7XG4gICAgY29uc3QgcmVhbGlnbiA9ICgpID0+IHtcbiAgICAgIHRoaXMuX3VwZGF0ZVBhZ2luYXRpb24oKTtcbiAgICAgIHRoaXMuX2FsaWduQWN0aXZlSW5kaWNhdG9yVG9TZWxlY3RlZFRhYigpO1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5fc2Nyb2xsVG9MYWJlbCh0aGlzLl9zZWxlY3RlZEluZGV4KTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICB0aGlzLl9rZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcih0aGlzLl9sYWJlbFdyYXBwZXJzKVxuICAgICAgLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24oJ2x0cicpXG4gICAgICAud2l0aFdyYXAoKTtcbiAgICB0aGlzLl9rZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0oMCk7XG5cbiAgICAvLyBEZWZlciB0aGUgZmlyc3QgY2FsbCBpbiBvcmRlciB0byBhbGxvdyBmb3Igc2xvd2VyIGJyb3dzZXJzIHRvIGxheSBvdXQgdGhlIGVsZW1lbnRzLlxuICAgIC8vIFRoaXMgaGVscHMgaW4gY2FzZXMgd2hlcmUgdGhlIHVzZXIgbGFuZHMgZGlyZWN0bHkgb24gYSBwYWdlIHdpdGggcGFnaW5hdGVkIHRhYnMuXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlYWxpZ24pO1xuXG4gICAgLy8gT24gd2luZG93IHJlc2l6ZSwgcmVhbGlnbiB0aGUgaW5rIGJhciBhbmQgdXBkYXRlIHRoZSBvcmllbnRhdGlvbiBvZlxuICAgIC8vIHRoZSBrZXkgbWFuYWdlciBpZiB0aGUgZGlyZWN0aW9uIGhhcyBjaGFuZ2VkLlxuICAgIHJlc2l6ZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgcmVhbGlnbigpO1xuICAgIH0pO1xuXG4gICAgLy8gSWYgdGhlcmUgaXMgYSBjaGFuZ2UgaW4gdGhlIGZvY3VzIGtleSBtYW5hZ2VyIHdlIG5lZWQgdG8gZW1pdCB0aGUgYGluZGV4Rm9jdXNlZGBcbiAgICAvLyBldmVudCBpbiBvcmRlciB0byBwcm92aWRlIGEgcHVibGljIGV2ZW50IHRoYXQgbm90aWZpZXMgYWJvdXQgZm9jdXMgY2hhbmdlcy4gQWxzbyB3ZSByZWFsaWduXG4gICAgLy8gdGhlIHRhYnMgY29udGFpbmVyIGJ5IHNjcm9sbGluZyB0aGUgbmV3IGZvY3VzZWQgdGFiIGludG8gdGhlIHZpc2libGUgc2VjdGlvbi5cbiAgICB0aGlzLl9rZXlNYW5hZ2VyLmNoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpXG4gICAgICAuc3Vic2NyaWJlKG5ld0ZvY3VzSW5kZXggPT4ge1xuICAgICAgICB0aGlzLmluZGV4Rm9jdXNlZC5lbWl0KG5ld0ZvY3VzSW5kZXgpO1xuICAgICAgICB0aGlzLl9zZXRUYWJGb2N1cyhuZXdGb2N1c0luZGV4KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqIFNldHMgdGhlIGRpc3RhbmNlIGluIHBpeGVscyB0aGF0IHRoZSB0YWIgaGVhZGVyIHNob3VsZCBiZSB0cmFuc2Zvcm1lZCBpbiB0aGUgWC1heGlzLiAqL1xuICBnZXQgc2Nyb2xsRGlzdGFuY2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc2Nyb2xsRGlzdGFuY2U7XG4gIH1cblxuICBzZXQgc2Nyb2xsRGlzdGFuY2UodjogbnVtYmVyKSB7XG4gICAgdGhpcy5fc2Nyb2xsRGlzdGFuY2UgPSBNYXRoLm1heChcbiAgICAgIDAsXG4gICAgICBNYXRoLm1pbih0aGlzLl9nZXRNYXhTY3JvbGxEaXN0YW5jZSgpLCB2KSxcbiAgICApO1xuICAgIC8vIE1hcmsgdGhhdCB0aGUgc2Nyb2xsIGRpc3RhbmNlIGhhcyBjaGFuZ2VkIHNvIHRoYXQgYWZ0ZXIgdGhlIHZpZXcgaXMgY2hlY2tlZCwgdGhlIENTU1xuICAgIC8vIHRyYW5zZm9ybWF0aW9uIGNhbiBtb3ZlIHRoZSBoZWFkZXIuXG4gICAgdGhpcy5fc2Nyb2xsRGlzdGFuY2VDaGFuZ2VkID0gdHJ1ZTtcbiAgICB0aGlzLl9jaGVja1Njcm9sbGluZ0NvbnRyb2xzKCk7XG4gIH1cblxuICAvKiogVHJhY2tzIHdoaWNoIGVsZW1lbnQgaGFzIGZvY3VzOyB1c2VkIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uICovXG4gIGdldCBmb2N1c0luZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2tleU1hbmFnZXIgPyB0aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1JbmRleCA6IDA7XG4gIH1cblxuICAvKiogV2hlbiB0aGUgZm9jdXMgaW5kZXggaXMgc2V0LCB3ZSBtdXN0IG1hbnVhbGx5IHNlbmQgZm9jdXMgdG8gdGhlIGNvcnJlY3QgbGFiZWwgKi9cbiAgc2V0IGZvY3VzSW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIGlmIChcbiAgICAgICF0aGlzLl9pc1ZhbGlkSW5kZXgodmFsdWUpIHx8XG4gICAgICB0aGlzLmZvY3VzSW5kZXggPT09IHZhbHVlIHx8XG4gICAgICAhdGhpcy5fa2V5TWFuYWdlclxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0odmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYW4gaW5kZXggaXMgdmFsaWQuICBJZiB0aGUgdGFicyBhcmUgbm90IHJlYWR5IHlldCwgd2UgYXNzdW1lIHRoYXQgdGhlIHVzZXIgaXNcbiAgICogcHJvdmlkaW5nIGEgdmFsaWQgaW5kZXggYW5kIHJldHVybiB0cnVlLlxuICAgKi9cbiAgX2lzVmFsaWRJbmRleChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLl9sYWJlbFdyYXBwZXJzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgdGFiID0gdGhpcy5fbGFiZWxXcmFwcGVyc1xuICAgICAgPyB0aGlzLl9sYWJlbFdyYXBwZXJzLnRvQXJyYXkoKVtpbmRleF1cbiAgICAgIDogbnVsbDtcbiAgICByZXR1cm4gISF0YWIgJiYgIXRhYi5kaXNhYmxlZDtcbiAgfVxuXG4gIF9oYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0hvbWUnOiB7XG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnRW5kJzoge1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyLnNldExhc3RJdGVtQWN0aXZlKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgY2FzZSAnU3BhY2UnOiB7XG4gICAgICAgIHRoaXMuc2VsZWN0Rm9jdXNlZEluZGV4LmVtaXQodGhpcy5mb2N1c0luZGV4KTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXIub25LZXlkb3duKGV2ZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBmb2N1cyBvbiB0aGUgSFRNTCBlbGVtZW50IGZvciB0aGUgbGFiZWwgd3JhcHBlciBhbmQgc2Nyb2xscyBpdCBpbnRvIHRoZSB2aWV3IGlmXG4gICAqIHNjcm9sbGluZyBpcyBlbmFibGVkLlxuICAgKi9cbiAgX3NldFRhYkZvY3VzKHRhYkluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5fc2hvd1BhZ2luYXRpb25Db250cm9scykge1xuICAgICAgdGhpcy5fc2Nyb2xsVG9MYWJlbCh0YWJJbmRleCk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9sYWJlbFdyYXBwZXJzPy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9sYWJlbFdyYXBwZXJzLnRvQXJyYXkoKVt0YWJJbmRleF0uZm9jdXMoKTtcbiAgICAgIC8vIERvIG5vdCBsZXQgdGhlIGJyb3dzZXIgbWFuYWdlIHNjcm9sbGluZyB0byBmb2N1cyB0aGUgZWxlbWVudCwgdGhpcyB3aWxsIGJlIGhhbmRsZWRcbiAgICAgIC8vIGJ5IHVzaW5nIHRyYW5zbGF0aW9uLiBJbiBMVFIsIHRoZSBzY3JvbGwgbGVmdCBzaG91bGQgYmUgMC4gSW4gUlRMLCB0aGUgc2Nyb2xsIHdpZHRoXG4gICAgICAvLyBzaG91bGQgYmUgdGhlIGZ1bGwgd2lkdGggbWludXMgdGhlIG9mZnNldCB3aWR0aC5cbiAgICAgIGNvbnN0IGNvbnRhaW5lckVsID0gdGhpcy5fdGFiTGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xuICAgICAgY29udGFpbmVyRWwuc2Nyb2xsTGVmdCA9IDA7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1vdmVzIHRoZSB0YWIgbGlzdCBzdWNoIHRoYXQgdGhlIGRlc2lyZWQgdGFiIGxhYmVsIChtYXJrZWQgYnkgaW5kZXgpIGlzIG1vdmVkIGludG8gdmlldy5cbiAgICpcbiAgICogVGhpcyBpcyBhbiBleHBlbnNpdmUgY2FsbCB0aGF0IGZvcmNlcyBhIGxheW91dCByZWZsb3cgdG8gY29tcHV0ZSBib3ggYW5kIHNjcm9sbCBtZXRyaWNzIGFuZFxuICAgKiBzaG91bGQgYmUgY2FsbGVkIHNwYXJpbmdseS5cbiAgICovXG4gIF9zY3JvbGxUb0xhYmVsKGxhYmVsSW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHNlbGVjdGVkTGFiZWwgPSB0aGlzLl9sYWJlbFdyYXBwZXJzXG4gICAgICA/IHRoaXMuX2xhYmVsV3JhcHBlcnMudG9BcnJheSgpW2xhYmVsSW5kZXhdXG4gICAgICA6IG51bGw7XG4gICAgaWYgKCFzZWxlY3RlZExhYmVsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIFRoZSB2aWV3IGxlbmd0aCBpcyB0aGUgdmlzaWJsZSB3aWR0aCBvZiB0aGUgdGFiIGxhYmVscy5cbiAgICBjb25zdCB2aWV3TGVuZ3RoID0gdGhpcy5fdGFiTGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIGNvbnN0IGxhYmVsQmVmb3JlUG9zID0gc2VsZWN0ZWRMYWJlbC5nZXRPZmZzZXRMZWZ0KCk7XG4gICAgY29uc3QgbGFiZWxBZnRlclBvcyA9IGxhYmVsQmVmb3JlUG9zICsgc2VsZWN0ZWRMYWJlbC5nZXRPZmZzZXRXaWR0aCgpO1xuICAgIGNvbnN0IGJlZm9yZVZpc2libGVQb3MgPSB0aGlzLnNjcm9sbERpc3RhbmNlO1xuICAgIGNvbnN0IGFmdGVyVmlzaWJsZVBvcyA9IHRoaXMuc2Nyb2xsRGlzdGFuY2UgKyB2aWV3TGVuZ3RoO1xuICAgIGlmIChsYWJlbEJlZm9yZVBvcyA8IGJlZm9yZVZpc2libGVQb3MpIHtcbiAgICAgIC8vIFNjcm9sbCBoZWFkZXIgdG8gbW92ZSBsYWJlbCB0byB0aGUgYmVmb3JlIGRpcmVjdGlvblxuICAgICAgdGhpcy5zY3JvbGxEaXN0YW5jZSAtPVxuICAgICAgICBiZWZvcmVWaXNpYmxlUG9zIC0gbGFiZWxCZWZvcmVQb3MgKyBFWEFHR0VSQVRFRF9PVkVSU0NST0xMO1xuICAgIH0gZWxzZSBpZiAobGFiZWxBZnRlclBvcyA+IGFmdGVyVmlzaWJsZVBvcykge1xuICAgICAgLy8gU2Nyb2xsIGhlYWRlciB0byBtb3ZlIGxhYmVsIHRvIHRoZSBhZnRlciBkaXJlY3Rpb25cbiAgICAgIHRoaXMuc2Nyb2xsRGlzdGFuY2UgKz1cbiAgICAgICAgbGFiZWxBZnRlclBvcyAtIGFmdGVyVmlzaWJsZVBvcyArIEVYQUdHRVJBVEVEX09WRVJTQ1JPTEw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1vdmVzIHRoZSB0YWIgbGlzdCBpbiB0aGUgJ2JlZm9yZScgb3IgJ2FmdGVyJyBkaXJlY3Rpb24gKHRvd2FyZHMgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlzdCBvclxuICAgKiB0aGUgZW5kIG9mIHRoZSBsaXN0LCByZXNwZWN0aXZlbHkpLiBUaGUgZGlzdGFuY2UgdG8gc2Nyb2xsIGlzIGNvbXB1dGVkIHRvIGJlIGEgdGhpcmQgb2YgdGhlXG4gICAqIGxlbmd0aCBvZiB0aGUgdGFiIGxpc3QgdmlldyB3aW5kb3cuXG4gICAqXG4gICAqIFRoaXMgaXMgYW4gZXhwZW5zaXZlIGNhbGwgdGhhdCBmb3JjZXMgYSBsYXlvdXQgcmVmbG93IHRvIGNvbXB1dGUgYm94IGFuZCBzY3JvbGwgbWV0cmljcyBhbmRcbiAgICogc2hvdWxkIGJlIGNhbGxlZCBzcGFyaW5nbHkuXG4gICAqL1xuICBfc2Nyb2xsSGVhZGVyKHNjcm9sbERpcjogU2Nyb2xsRGlyZWN0aW9uKSB7XG4gICAgY29uc3Qgdmlld0xlbmd0aCA9IHRoaXMuX3RhYkxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAvLyBNb3ZlIHRoZSBzY3JvbGwgZGlzdGFuY2Ugb25lLXRoaXJkIHRoZSBsZW5ndGggb2YgdGhlIHRhYiBsaXN0J3Mgdmlld3BvcnQuXG4gICAgdGhpcy5zY3JvbGxEaXN0YW5jZSArPSAoKHNjcm9sbERpciA9PT0gJ2JlZm9yZScgPyAtMSA6IDEpICogdmlld0xlbmd0aCkgLyAzO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZvciB3aGVuIHRoZSBNdXRhdGlvbk9ic2VydmVyIGRldGVjdHMgdGhhdCB0aGUgY29udGVudCBoYXMgY2hhbmdlZC5cbiAgICovXG4gIF9vbkNvbnRlbnRDaGFuZ2VzKCkge1xuICAgIHRoaXMuX3VwZGF0ZVBhZ2luYXRpb24oKTtcbiAgICB0aGlzLl9hbGlnbkFjdGl2ZUluZGljYXRvclRvU2VsZWN0ZWRUYWIoKTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGluZyB0aGUgdmlldyB3aGV0aGVyIHBhZ2luYXRpb24gc2hvdWxkIGJlIGVuYWJsZWQgb3Igbm90XG4gICAqL1xuICBfdXBkYXRlUGFnaW5hdGlvbigpIHtcbiAgICB0aGlzLl9jaGVja1BhZ2luYXRpb25FbmFibGVkKCk7XG4gICAgdGhpcy5fY2hlY2tTY3JvbGxpbmdDb250cm9scygpO1xuICAgIHRoaXMuX3VwZGF0ZVRhYlNjcm9sbFBvc2l0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogRXZhbHVhdGUgd2hldGhlciB0aGUgcGFnaW5hdGlvbiBjb250cm9scyBzaG91bGQgYmUgZGlzcGxheWVkLiBJZiB0aGUgc2Nyb2xsIHdpZHRoIG9mIHRoZVxuICAgKiB0YWIgbGlzdCBpcyB3aWRlciB0aGFuIHRoZSBzaXplIG9mIHRoZSBoZWFkZXIgY29udGFpbmVyLCB0aGVuIHRoZSBwYWdpbmF0aW9uIGNvbnRyb2xzIHNob3VsZFxuICAgKiBiZSBzaG93bi5cbiAgICpcbiAgICogVGhpcyBpcyBhbiBleHBlbnNpdmUgY2FsbCB0aGF0IGZvcmNlcyBhIGxheW91dCByZWZsb3cgdG8gY29tcHV0ZSBib3ggYW5kIHNjcm9sbCBtZXRyaWNzIGFuZFxuICAgKiBzaG91bGQgYmUgY2FsbGVkIHNwYXJpbmdseS5cbiAgICovXG4gIF9jaGVja1BhZ2luYXRpb25FbmFibGVkKCkge1xuICAgIGNvbnN0IGlzRW5hYmxlZCA9XG4gICAgICB0aGlzLl90YWJMaXN0Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGggPlxuICAgICAgdGhpcy5fcGFnaW5hdGlvbldyYXBwZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCArIDI7IC8vIDIgaXMgdGhlIGJvcmRlciBzaXplXG4gICAgaWYgKCFpc0VuYWJsZWQpIHtcbiAgICAgIHRoaXMuc2Nyb2xsRGlzdGFuY2UgPSAwO1xuICAgIH1cbiAgICBjb25zdCBkZXRlY3RDaGFuZ2VzID0gaXNFbmFibGVkICE9PSB0aGlzLl9zaG93UGFnaW5hdGlvbkNvbnRyb2xzO1xuICAgIHRoaXMuX3Nob3dQYWdpbmF0aW9uQ29udHJvbHMgPSBpc0VuYWJsZWQ7XG5cbiAgICBpZiAoZGV0ZWN0Q2hhbmdlcykge1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlIHdoZXRoZXIgdGhlIGJlZm9yZSBhbmQgYWZ0ZXIgY29udHJvbHMgc2hvdWxkIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuXG4gICAqIElmIHRoZSBoZWFkZXIgaXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlzdCAoc2Nyb2xsIGRpc3RhbmNlIGlzIGVxdWFsIHRvIDApIHRoZW4gZGlzYWJsZSB0aGVcbiAgICogYmVmb3JlIGJ1dHRvbi4gSWYgdGhlIGhlYWRlciBpcyBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0IChzY3JvbGwgZGlzdGFuY2UgaXMgZXF1YWwgdG8gdGhlXG4gICAqIG1heGltdW0gZGlzdGFuY2Ugd2UgY2FuIHNjcm9sbCksIHRoZW4gZGlzYWJsZSB0aGUgYWZ0ZXIgYnV0dG9uLlxuICAgKlxuICAgKiBUaGlzIGlzIGFuIGV4cGVuc2l2ZSBjYWxsIHRoYXQgZm9yY2VzIGEgbGF5b3V0IHJlZmxvdyB0byBjb21wdXRlIGJveCBhbmQgc2Nyb2xsIG1ldHJpY3MgYW5kXG4gICAqIHNob3VsZCBiZSBjYWxsZWQgc3BhcmluZ2x5LlxuICAgKi9cbiAgX2NoZWNrU2Nyb2xsaW5nQ29udHJvbHMoKSB7XG4gICAgLy8gQ2hlY2sgaWYgdGhlIHBhZ2luYXRpb24gYXJyb3dzIHNob3VsZCBiZSBhY3RpdmF0ZWQuXG4gICAgdGhpcy5fZGlzYWJsZVNjcm9sbEJlZm9yZSA9IHRoaXMuc2Nyb2xsRGlzdGFuY2UgPT09IDA7XG4gICAgdGhpcy5fZGlzYWJsZVNjcm9sbEFmdGVyID1cbiAgICAgIHRoaXMuc2Nyb2xsRGlzdGFuY2UgPT09IHRoaXMuX2dldE1heFNjcm9sbERpc3RhbmNlKCk7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGF0IGlzIHRoZSBtYXhpbXVtIGxlbmd0aCBpbiBwaXhlbHMgdGhhdCBjYW4gYmUgc2V0IGZvciB0aGUgc2Nyb2xsIGRpc3RhbmNlLiBUaGlzXG4gICAqIGlzIGVxdWFsIHRvIHRoZSBkaWZmZXJlbmNlIGluIHdpZHRoIGJldHdlZW4gdGhlIHRhYiBsaXN0IGNvbnRhaW5lciBhbmQgdGFiIGhlYWRlciBjb250YWluZXIuXG4gICAqXG4gICAqIFRoaXMgaXMgYW4gZXhwZW5zaXZlIGNhbGwgdGhhdCBmb3JjZXMgYSBsYXlvdXQgcmVmbG93IHRvIGNvbXB1dGUgYm94IGFuZCBzY3JvbGwgbWV0cmljcyBhbmRcbiAgICogc2hvdWxkIGJlIGNhbGxlZCBzcGFyaW5nbHkuXG4gICAqL1xuICBfZ2V0TWF4U2Nyb2xsRGlzdGFuY2UoKTogbnVtYmVyIHtcbiAgICBjb25zdCBsZW5ndGhPZlRhYkxpc3QgPSB0aGlzLl90YWJMaXN0Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGg7XG4gICAgY29uc3Qgdmlld0xlbmd0aCA9IHRoaXMuX3RhYkxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICByZXR1cm4gbGVuZ3RoT2ZUYWJMaXN0IC0gdmlld0xlbmd0aCB8fCAwO1xuICB9XG5cbiAgLyoqIFBlcmZvcm1zIHRoZSBDU1MgdHJhbnNmb3JtYXRpb24gb24gdGhlIHRhYiBsaXN0IHRoYXQgd2lsbCBjYXVzZSB0aGUgbGlzdCB0byBzY3JvbGwuICovXG4gIF91cGRhdGVUYWJTY3JvbGxQb3NpdGlvbigpIHtcbiAgICBjb25zdCBzY3JvbGxEaXN0YW5jZSA9IHRoaXMuc2Nyb2xsRGlzdGFuY2U7XG4gICAgY29uc3QgdHJhbnNsYXRlWCA9IC1zY3JvbGxEaXN0YW5jZTtcbiAgICAvLyBEb24ndCB1c2UgYHRyYW5zbGF0ZTNkYCBoZXJlIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0byBjcmVhdGUgYSBuZXcgbGF5ZXIuIEEgbmV3IGxheWVyXG4gICAgLy8gc2VlbXMgdG8gY2F1c2UgZmxpY2tlcmluZyBhbmQgb3ZlcmZsb3cgaW4gSW50ZXJuZXQgRXhwbG9yZXIuIEZvciBleGFtcGxlLCB0aGUgaW5rIGJhclxuICAgIC8vIGFuZCByaXBwbGVzIHdpbGwgZXhjZWVkIHRoZSBib3VuZGFyaWVzIG9mIHRoZSB2aXNpYmxlIHRhYiBiYXIuXG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9tYXRlcmlhbDIvaXNzdWVzLzEwMjc2XG4gICAgdGhpcy5fdGFiTGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVYKCR7dHJhbnNsYXRlWH1weClgO1xuICB9XG5cbiAgLyoqIFRlbGxzIHRoZSBhY3RpdmUgaW5kaWNhdG9yIHRvIGFsaWduIGl0c2VsZiB0byB0aGUgY3VycmVudCBsYWJlbCB3cmFwcGVyICovXG4gIF9hbGlnbkFjdGl2ZUluZGljYXRvclRvU2VsZWN0ZWRUYWIoKTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWRMYWJlbFdyYXBwZXIgPVxuICAgICAgdGhpcy5fbGFiZWxXcmFwcGVycz8ubGVuZ3RoID4gMFxuICAgICAgICA/IHRoaXMuX2xhYmVsV3JhcHBlcnMudG9BcnJheSgpW3RoaXMuc2VsZWN0ZWRJbmRleF0uZWxlbWVudFJlZlxuICAgICAgICAgICAgLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgOiBudWxsO1xuICAgIHRoaXMuX2FjdGl2ZUluZGljYXRvci5hbGlnblRvRWxlbWVudChzZWxlY3RlZExhYmVsV3JhcHBlcik7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdmlld3BvcnRSdWxlcjogVmlld3BvcnRSdWxlcixcbiAgKSB7fVxufVxuIiwiPGRpdiBbbmdDbGFzc109XCJiZW0uYmxvY2sodHlwZSwgc2l6ZSlcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl90aXRsZVwiPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ3RpdGxlJylcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cIl90aXRsZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8ZGl2IFtuZ0NsYXNzXT1cImJlbS5lbGVtZW50KCdoZWFkZXItd3JhcHBlcicpXCI+XG4gICAgPGRpdlxuICAgICAgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ3BhZ2luYXRpb24td3JhcHBlcicpXCJcbiAgICAgICNwYWdpbmF0aW9uV3JhcHBlclxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJfc2hvd1BhZ2luYXRpb25Db250cm9sc1wiXG4gICAgICAgIChjbGljayk9XCJfc2Nyb2xsSGVhZGVyKCdiZWZvcmUnKVwiXG4gICAgICAgIFthdHRyLmRpc2FibGVkXT1cIl9kaXNhYmxlU2Nyb2xsQmVmb3JlID8gJycgOiBudWxsXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ3BhZ2luYXRpb24tYnV0dG9uJylcIlxuICAgICAgPlxuICAgICAgICA8YXVpLWljb24gaWNvbj1cImFuZ2xlX2xlZnRcIj48L2F1aS1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIFtuZ0NsYXNzXT1cImJlbS5lbGVtZW50KCd0YWItbGlzdC1jb250YWluZXInKVwiXG4gICAgICAgIChrZXlkb3duKT1cIl9oYW5kbGVLZXlkb3duKCRldmVudClcIlxuICAgICAgICAjdGFiTGlzdENvbnRhaW5lclxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgcm9sZT1cInRhYmxpc3RcIlxuICAgICAgICAgIChjZGtPYnNlcnZlQ29udGVudCk9XCJfb25Db250ZW50Q2hhbmdlcygpXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJiZW0uZWxlbWVudCgndGFiLWxpc3QnKVwiXG4gICAgICAgICAgI3RhYkxpc3RcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2xhYmVscycpXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvZGl2PlxuICAgICAgICAgIDxhdWktdGFiLWhlYWRlci1hY3RpdmUtaW5kaWNhdG9yXG4gICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICA+PC9hdWktdGFiLWhlYWRlci1hY3RpdmUtaW5kaWNhdG9yPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cIl9zaG93UGFnaW5hdGlvbkNvbnRyb2xzXCJcbiAgICAgICAgKGNsaWNrKT1cIl9zY3JvbGxIZWFkZXIoJ2FmdGVyJylcIlxuICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJfZGlzYWJsZVNjcm9sbEFmdGVyID8gJycgOiBudWxsXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ3BhZ2luYXRpb24tYnV0dG9uJylcIlxuICAgICAgPlxuICAgICAgICA8YXVpLWljb24gaWNvbj1cImFuZ2xlX3JpZ2h0XCI+PC9hdWktaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwhLS0gSWYgdGhlcmUgaXMgYWRkb24gdGVtcGxhdGUsIHVzZSBpdC4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9zaG93QWRkb25cIj5cbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2FkZG9uJylcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiX2hlYWRlckFkZG9uXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { TemplatePortal } from '@angular/cdk/portal';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { coerceAttrBoolean } from '../utils';
|
|
5
|
+
import { TabContentDirective, TabLabelDirective } from './tab-body.component';
|
|
6
|
+
import { TabContextService } from './tab-context.service';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "./tab-context.service";
|
|
9
|
+
export class TabComponent {
|
|
10
|
+
_viewContainerRef;
|
|
11
|
+
tabContext;
|
|
12
|
+
name;
|
|
13
|
+
textLabel = '';
|
|
14
|
+
closeable = false;
|
|
15
|
+
disabled;
|
|
16
|
+
close = new EventEmitter();
|
|
17
|
+
templateLabel;
|
|
18
|
+
_explicitContent;
|
|
19
|
+
_implicitContent;
|
|
20
|
+
get content() {
|
|
21
|
+
return this._contentPortal;
|
|
22
|
+
}
|
|
23
|
+
position = null;
|
|
24
|
+
origin = null;
|
|
25
|
+
_stateChanges = new Subject();
|
|
26
|
+
_contentPortal = null;
|
|
27
|
+
constructor(_viewContainerRef, tabContext) {
|
|
28
|
+
this._viewContainerRef = _viewContainerRef;
|
|
29
|
+
this.tabContext = tabContext;
|
|
30
|
+
}
|
|
31
|
+
ngAfterContentInit() {
|
|
32
|
+
this._contentPortal = new TemplatePortal(this._explicitContent || this._implicitContent, this._viewContainerRef);
|
|
33
|
+
}
|
|
34
|
+
ngOnDestroy() {
|
|
35
|
+
this._stateChanges.complete();
|
|
36
|
+
}
|
|
37
|
+
ngOnChanges(changes) {
|
|
38
|
+
if (changes.hasOwnProperty('textLabel') ||
|
|
39
|
+
changes.hasOwnProperty('disabled') ||
|
|
40
|
+
changes.hasOwnProperty('closeable')) {
|
|
41
|
+
this._stateChanges.next();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TabComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.TabContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: TabComponent, selector: "aui-tab", inputs: { name: "name", textLabel: ["label", "textLabel"], closeable: "closeable", disabled: ["disabled", "disabled", coerceAttrBoolean] }, 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 });
|
|
46
|
+
}
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TabComponent, decorators: [{
|
|
48
|
+
type: Component,
|
|
49
|
+
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" }]
|
|
50
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i1.TabContextService }]; }, propDecorators: { name: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], textLabel: [{
|
|
53
|
+
type: Input,
|
|
54
|
+
args: ['label']
|
|
55
|
+
}], closeable: [{
|
|
56
|
+
type: Input
|
|
57
|
+
}], disabled: [{
|
|
58
|
+
type: Input,
|
|
59
|
+
args: [{ transform: coerceAttrBoolean }]
|
|
60
|
+
}], close: [{
|
|
61
|
+
type: Output
|
|
62
|
+
}], templateLabel: [{
|
|
63
|
+
type: ContentChild,
|
|
64
|
+
args: [TabLabelDirective, { static: false }]
|
|
65
|
+
}], _explicitContent: [{
|
|
66
|
+
type: ContentChild,
|
|
67
|
+
args: [TabContentDirective, { read: TemplateRef, static: false }]
|
|
68
|
+
}], _implicitContent: [{
|
|
69
|
+
type: ViewChild,
|
|
70
|
+
args: [TemplateRef, { static: true }]
|
|
71
|
+
}] } });
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90YWJzL3RhYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi9zcmMvdGFicy90YWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxFQUVULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUU3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBVzFELE1BQU0sT0FBTyxZQUFZO0lBd0RKO0lBQ0Q7SUF2RGxCLElBQUksQ0FBUztJQUliLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFJZixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBSWxCLFFBQVEsQ0FBVTtJQUdsQixLQUFLLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUlqQyxhQUFhLENBQW9CO0lBTWpDLGdCQUFnQixDQUFtQjtJQUluQyxnQkFBZ0IsQ0FBbUI7SUFFbkMsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFNRCxRQUFRLEdBQWtCLElBQUksQ0FBQztJQU0vQixNQUFNLEdBQWtCLElBQUksQ0FBQztJQUdwQixhQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUdyQyxjQUFjLEdBQTBCLElBQUksQ0FBQztJQUVyRCxZQUNtQixpQkFBbUMsRUFDcEMsVUFBNkI7UUFENUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNwQyxlQUFVLEdBQVYsVUFBVSxDQUFtQjtJQUM1QyxDQUFDO0lBRUosa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQzlDLElBQUksQ0FBQyxpQkFBaUIsQ0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQ0UsT0FBTyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7WUFDbkMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7WUFDbEMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsRUFDbkM7WUFDQSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQzt1R0EvRVUsWUFBWTsyRkFBWixZQUFZLDZJQWFILGlCQUFpQiw2Q0FmMUIsQ0FBQyxpQkFBaUIsQ0FBQyxxRUFzQmhCLGlCQUFpQixtRkFNakIsbUJBQW1CLDJCQUFVLFdBQVcsK0VBSTNDLFdBQVcseUdDaEV4QiwrUUFNQTs7MkZENEJhLFlBQVk7a0JBVHhCLFNBQVM7K0JBQ0UsU0FBUyxZQUNULFFBQVEsaUJBRUgsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSx1QkFDMUIsS0FBSyxhQUNmLENBQUMsaUJBQWlCLENBQUM7dUlBSTlCLElBQUk7c0JBREgsS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7dUJBQUMsT0FBTztnQkFLZCxTQUFTO3NCQURSLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFO2dCQUl2QyxLQUFLO3NCQURKLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFPbEQsZ0JBQWdCO3NCQURmLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBS3ZFLGdCQUFnQjtzQkFEZixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90b3R5cGUtYnVpbHRpbnMgKi9cbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgY29lcmNlQXR0ckJvb2xlYW4gfSBmcm9tICcuLi91dGlscyc7XG5cbmltcG9ydCB7IFRhYkNvbnRlbnREaXJlY3RpdmUsIFRhYkxhYmVsRGlyZWN0aXZlIH0gZnJvbSAnLi90YWItYm9keS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuL3RhYi1jb250ZXh0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktdGFiJyxcbiAgZXhwb3J0QXM6ICdhdWlUYWInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFiLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBwcm92aWRlcnM6IFtUYWJDb250ZXh0U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFRhYkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKiBQbGFpbiB0ZXh0IGxhYmVsIGZvciB0aGUgdGFiLCB1c2VkIHdoZW4gdGhlcmUgaXMgbm8gdGVtcGxhdGUgbGFiZWwuICovXG4gIEBJbnB1dCgnbGFiZWwnKVxuICB0ZXh0TGFiZWwgPSAnJztcblxuICAvKiogV2hldGhlciBvciBub3QgdG8gc2hvdyB0aGUgY2xvc2UgYnV0dG9uIGluIHRoZSBoZWFkZXIgKi9cbiAgQElucHV0KClcbiAgY2xvc2VhYmxlID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgb3Igbm90IHRoZSB0YWIgaXMgZGlzYWJsZWQgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQXR0ckJvb2xlYW4gfSlcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpXG4gIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8qKiBDb250ZW50IGZvciB0aGUgdGFiIGxhYmVsIGdpdmVuIGJ5IGA8bmctdGVtcGxhdGUgW2F1aVRhYkxhYmVsXT5gLiAqL1xuICBAQ29udGVudENoaWxkKFRhYkxhYmVsRGlyZWN0aXZlLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgdGVtcGxhdGVMYWJlbDogVGFiTGFiZWxEaXJlY3RpdmU7XG5cbiAgLyoqXG4gICAqIFRlbXBsYXRlIHByb3ZpZGVkIGluIHRoZSB0YWIgY29udGVudCB0aGF0IHdpbGwgYmUgdXNlZCBpZiBwcmVzZW50LCB1c2VkIHRvIGVuYWJsZSBsYXp5LWxvYWRpbmdcbiAgICovXG4gIEBDb250ZW50Q2hpbGQoVGFiQ29udGVudERpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiBmYWxzZSB9KVxuICBfZXhwbGljaXRDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKiBUZW1wbGF0ZSBpbnNpZGUgdGhlIEF1aVRhYiB2aWV3IHRoYXQgY29udGFpbnMgYW4gYDxuZy1jb250ZW50PmAuICovXG4gIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYsIHsgc3RhdGljOiB0cnVlIH0pXG4gIF9pbXBsaWNpdENvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZ2V0IGNvbnRlbnQoKTogVGVtcGxhdGVQb3J0YWwgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGVudFBvcnRhbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcmVsYXRpdmVseSBpbmRleGVkIHBvc2l0aW9uIHdoZXJlIDAgcmVwcmVzZW50cyB0aGUgY2VudGVyLCBuZWdhdGl2ZSBpcyBsZWZ0LCBhbmQgcG9zaXRpdmVcbiAgICogcmVwcmVzZW50cyB0aGUgcmlnaHQuXG4gICAqL1xuICBwb3NpdGlvbjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBpbml0aWFsIHJlbGF0aXZlbHkgaW5kZXggb3JpZ2luIG9mIHRoZSB0YWIgaWYgaXQgd2FzIGNyZWF0ZWQgYW5kIHNlbGVjdGVkIGFmdGVyIHRoZXJlXG4gICAqIHdhcyBhbHJlYWR5IGEgc2VsZWN0ZWQgdGFiLiBQcm92aWRlcyBjb250ZXh0IG9mIHdoYXQgcG9zaXRpb24gdGhlIHRhYiBzaG91bGQgb3JpZ2luYXRlIGZyb20uXG4gICAqL1xuICBvcmlnaW46IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgaW50ZXJuYWwgc3RhdGUgb2YgdGhlIHRhYiBjaGFuZ2VzLiAqL1xuICByZWFkb25seSBfc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKiogUG9ydGFsIHRoYXQgd2lsbCBiZSB0aGUgaG9zdGVkIGNvbnRlbnQgb2YgdGhlIHRhYiAqL1xuICBwcml2YXRlIF9jb250ZW50UG9ydGFsOiBUZW1wbGF0ZVBvcnRhbCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHVibGljIHJlYWRvbmx5IHRhYkNvbnRleHQ6IFRhYkNvbnRleHRTZXJ2aWNlLFxuICApIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbnRlbnRQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwoXG4gICAgICB0aGlzLl9leHBsaWNpdENvbnRlbnQgfHwgdGhpcy5faW1wbGljaXRDb250ZW50LFxuICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZixcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eSgndGV4dExhYmVsJykgfHxcbiAgICAgIGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ2Rpc2FibGVkJykgfHxcbiAgICAgIGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ2Nsb3NlYWJsZScpXG4gICAgKSB7XG4gICAgICB0aGlzLl9zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cbiAgfVxufVxuIiwiPCEtLVxuICBDcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGNvbnRlbnQgb2YgdGhlIDxhdWktdGFiPiBzbyB0aGF0IHdlIGNhbiBncmFiIGEgcmVmZXJlbmNlIHRvIHRoaXNcbiAgVGVtcGxhdGVSZWYgYW5kIHVzZSBpdCBpbiBhIFBvcnRhbCB0byByZW5kZXIgdGhlIHRhYiBjb250ZW50IGluIHRoZSBhcHByb3ByaWF0ZSBwbGFjZSBpbiB0aGVcbiAgdGFiLWdyb3VwLlxuLS0+XG48bmctdGVtcGxhdGU+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { A11yModule } from '@angular/cdk/a11y';
|
|
2
|
+
import { ObserversModule } from '@angular/cdk/observers';
|
|
3
|
+
import { PortalModule } from '@angular/cdk/portal';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import { NgModule } from '@angular/core';
|
|
6
|
+
import { FormsModule } from '@angular/forms';
|
|
7
|
+
import { ButtonModule } from '../button';
|
|
8
|
+
import { IconModule } from '../icon';
|
|
9
|
+
import { TabBodyComponent, TabBodyPortalDirective, TabContentDirective, TabHeaderAddonDirective, TabLabelDirective, TabLabelWrapperDirective, TabTitleDirective, } from './tab-body.component';
|
|
10
|
+
import { TabGroupComponent } from './tab-group.component';
|
|
11
|
+
import { TabHeaderActiveIndicatorComponent } from './tab-header-active-indicator.component';
|
|
12
|
+
import { TabHeaderComponent } from './tab-header.component';
|
|
13
|
+
import { TabComponent } from './tab.component';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
export class TabsModule {
|
|
16
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
17
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: TabsModule, declarations: [TabGroupComponent,
|
|
18
|
+
TabComponent,
|
|
19
|
+
TabLabelDirective,
|
|
20
|
+
TabContentDirective,
|
|
21
|
+
TabHeaderAddonDirective,
|
|
22
|
+
TabTitleDirective,
|
|
23
|
+
TabHeaderComponent,
|
|
24
|
+
TabBodyComponent,
|
|
25
|
+
TabBodyPortalDirective,
|
|
26
|
+
TabLabelWrapperDirective,
|
|
27
|
+
TabHeaderActiveIndicatorComponent], imports: [CommonModule,
|
|
28
|
+
FormsModule,
|
|
29
|
+
PortalModule,
|
|
30
|
+
ButtonModule,
|
|
31
|
+
IconModule,
|
|
32
|
+
A11yModule,
|
|
33
|
+
ObserversModule], exports: [TabGroupComponent,
|
|
34
|
+
TabComponent,
|
|
35
|
+
TabLabelDirective,
|
|
36
|
+
TabContentDirective,
|
|
37
|
+
TabHeaderAddonDirective,
|
|
38
|
+
TabTitleDirective,
|
|
39
|
+
TabLabelWrapperDirective,
|
|
40
|
+
TabHeaderComponent] });
|
|
41
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TabsModule, imports: [CommonModule,
|
|
42
|
+
FormsModule,
|
|
43
|
+
PortalModule,
|
|
44
|
+
ButtonModule,
|
|
45
|
+
IconModule,
|
|
46
|
+
A11yModule,
|
|
47
|
+
ObserversModule] });
|
|
48
|
+
}
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TabsModule, decorators: [{
|
|
50
|
+
type: NgModule,
|
|
51
|
+
args: [{
|
|
52
|
+
imports: [
|
|
53
|
+
CommonModule,
|
|
54
|
+
FormsModule,
|
|
55
|
+
PortalModule,
|
|
56
|
+
ButtonModule,
|
|
57
|
+
IconModule,
|
|
58
|
+
A11yModule,
|
|
59
|
+
ObserversModule,
|
|
60
|
+
],
|
|
61
|
+
declarations: [
|
|
62
|
+
TabGroupComponent,
|
|
63
|
+
TabComponent,
|
|
64
|
+
TabLabelDirective,
|
|
65
|
+
TabContentDirective,
|
|
66
|
+
TabHeaderAddonDirective,
|
|
67
|
+
TabTitleDirective,
|
|
68
|
+
TabHeaderComponent,
|
|
69
|
+
TabBodyComponent,
|
|
70
|
+
TabBodyPortalDirective,
|
|
71
|
+
TabLabelWrapperDirective,
|
|
72
|
+
TabHeaderActiveIndicatorComponent,
|
|
73
|
+
],
|
|
74
|
+
exports: [
|
|
75
|
+
TabGroupComponent,
|
|
76
|
+
TabComponent,
|
|
77
|
+
TabLabelDirective,
|
|
78
|
+
TabContentDirective,
|
|
79
|
+
TabHeaderAddonDirective,
|
|
80
|
+
TabTitleDirective,
|
|
81
|
+
TabLabelWrapperDirective,
|
|
82
|
+
TabHeaderComponent,
|
|
83
|
+
],
|
|
84
|
+
}]
|
|
85
|
+
}] });
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFicy90YWJzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXJDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4QixpQkFBaUIsR0FDbEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBb0MvQyxNQUFNLE9BQU8sVUFBVTt1R0FBVixVQUFVO3dHQUFWLFVBQVUsaUJBdkJuQixpQkFBaUI7WUFDakIsWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIsdUJBQXVCO1lBQ3ZCLGlCQUFpQjtZQUNqQixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLHNCQUFzQjtZQUN0Qix3QkFBd0I7WUFDeEIsaUNBQWlDLGFBbkJqQyxZQUFZO1lBQ1osV0FBVztZQUNYLFlBQVk7WUFDWixZQUFZO1lBQ1osVUFBVTtZQUNWLFVBQVU7WUFDVixlQUFlLGFBZ0JmLGlCQUFpQjtZQUNqQixZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQix1QkFBdUI7WUFDdkIsaUJBQWlCO1lBQ2pCLHdCQUF3QjtZQUN4QixrQkFBa0I7d0dBR1QsVUFBVSxZQWhDbkIsWUFBWTtZQUNaLFdBQVc7WUFDWCxZQUFZO1lBQ1osWUFBWTtZQUNaLFVBQVU7WUFDVixVQUFVO1lBQ1YsZUFBZTs7MkZBMEJOLFVBQVU7a0JBbEN0QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixZQUFZO3dCQUNaLFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixlQUFlO3FCQUNoQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjt3QkFDdEIsd0JBQXdCO3dCQUN4QixpQ0FBaUM7cUJBQ2xDO29CQUNELE9BQU8sRUFBRTt3QkFDUCxpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsaUJBQWlCO3dCQUNqQix3QkFBd0I7d0JBQ3hCLGtCQUFrQjtxQkFDbkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgT2JzZXJ2ZXJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL29ic2VydmVycyc7XG5pbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbic7XG5pbXBvcnQgeyBJY29uTW9kdWxlIH0gZnJvbSAnLi4vaWNvbic7XG5cbmltcG9ydCB7XG4gIFRhYkJvZHlDb21wb25lbnQsXG4gIFRhYkJvZHlQb3J0YWxEaXJlY3RpdmUsXG4gIFRhYkNvbnRlbnREaXJlY3RpdmUsXG4gIFRhYkhlYWRlckFkZG9uRGlyZWN0aXZlLFxuICBUYWJMYWJlbERpcmVjdGl2ZSxcbiAgVGFiTGFiZWxXcmFwcGVyRGlyZWN0aXZlLFxuICBUYWJUaXRsZURpcmVjdGl2ZSxcbn0gZnJvbSAnLi90YWItYm9keS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL3RhYi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiSGVhZGVyQWN0aXZlSW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi90YWItaGVhZGVyLWFjdGl2ZS1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vdGFiLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiQ29tcG9uZW50IH0gZnJvbSAnLi90YWIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBQb3J0YWxNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgQTExeU1vZHVsZSxcbiAgICBPYnNlcnZlcnNNb2R1bGUsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFRhYkdyb3VwQ29tcG9uZW50LFxuICAgIFRhYkNvbXBvbmVudCxcbiAgICBUYWJMYWJlbERpcmVjdGl2ZSxcbiAgICBUYWJDb250ZW50RGlyZWN0aXZlLFxuICAgIFRhYkhlYWRlckFkZG9uRGlyZWN0aXZlLFxuICAgIFRhYlRpdGxlRGlyZWN0aXZlLFxuICAgIFRhYkhlYWRlckNvbXBvbmVudCxcbiAgICBUYWJCb2R5Q29tcG9uZW50LFxuICAgIFRhYkJvZHlQb3J0YWxEaXJlY3RpdmUsXG4gICAgVGFiTGFiZWxXcmFwcGVyRGlyZWN0aXZlLFxuICAgIFRhYkhlYWRlckFjdGl2ZUluZGljYXRvckNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFRhYkdyb3VwQ29tcG9uZW50LFxuICAgIFRhYkNvbXBvbmVudCxcbiAgICBUYWJMYWJlbERpcmVjdGl2ZSxcbiAgICBUYWJDb250ZW50RGlyZWN0aXZlLFxuICAgIFRhYkhlYWRlckFkZG9uRGlyZWN0aXZlLFxuICAgIFRhYlRpdGxlRGlyZWN0aXZlLFxuICAgIFRhYkxhYmVsV3JhcHBlckRpcmVjdGl2ZSxcbiAgICBUYWJIZWFkZXJDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRhYnNNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export const TabSize = {
|
|
2
|
+
Large: 'large',
|
|
3
|
+
Medium: 'medium',
|
|
4
|
+
Small: 'small',
|
|
5
|
+
};
|
|
6
|
+
export const TabType = {
|
|
7
|
+
Line: 'line',
|
|
8
|
+
Card: 'card',
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90YWJzL3RhYnMudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBRXJCLEtBQUssRUFBRSxPQUFPO0lBR2QsTUFBTSxFQUFFLFFBQVE7SUFHaEIsS0FBSyxFQUFFLE9BQU87Q0FDTixDQUFDO0FBSVgsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ3JCLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLE1BQU07Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsdWVPZiB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IFRhYlNpemUgPSB7XG4gIC8qKiDljaHniYfnuqflsLrlr7ggKi9cbiAgTGFyZ2U6ICdsYXJnZScsXG5cbiAgLyoqIOmhtemdoue6p+WwuuWvuCAqL1xuICBNZWRpdW06ICdtZWRpdW0nLFxuXG4gIC8qKiDlsI/lsLrlr7ggKi9cbiAgU21hbGw6ICdzbWFsbCcsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBUYWJTaXplID0gVmFsdWVPZjx0eXBlb2YgVGFiU2l6ZT47XG5cbmV4cG9ydCBjb25zdCBUYWJUeXBlID0ge1xuICBMaW5lOiAnbGluZScsXG4gIENhcmQ6ICdjYXJkJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFRhYlR5cGUgPSBWYWx1ZU9mPHR5cGVvZiBUYWJUeXBlPjtcbiJdfQ==
|