@koobiq/components 17.0.0-rc.1 → 17.0.0-rc.11
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/README.md +1 -2
- package/alert/_alert-theme.scss +48 -24
- package/alert/alert.component.d.ts +23 -3
- package/alert/alert.component.scss +91 -59
- package/alert/public-api.d.ts +1 -1
- package/autocomplete/_autocomplete-theme.scss +3 -3
- package/autocomplete/autocomplete.scss +8 -18
- package/autocomplete/public-api.d.ts +2 -2
- package/badge/_badge-theme.scss +30 -45
- package/badge/badge.component.scss +18 -39
- package/badge/public-api.d.ts +1 -1
- package/button/_button-base.scss +7 -14
- package/button/_button-theme.scss +30 -86
- package/button/button.component.d.ts +4 -3
- package/button/button.scss +7 -17
- package/button/public-api.d.ts +1 -1
- package/button-toggle/_button-toggle-theme.scss +19 -20
- package/button-toggle/button-toggle.scss +17 -44
- package/button-toggle/public-api.d.ts +1 -1
- package/card/_card-theme.scss +18 -17
- package/card/card.component.d.ts +1 -1
- package/card/card.component.scss +3 -6
- package/card/public-api.d.ts +1 -1
- package/checkbox/_checkbox-theme.scss +50 -50
- package/checkbox/checkbox.scss +31 -35
- package/code-block/README.md +18 -14
- package/code-block/_code-block-theme.scss +53 -23
- package/code-block/actionbar.component.scss +11 -25
- package/code-block/code-block.component.d.ts +12 -4
- package/code-block/code-block.scss +62 -77
- package/code-block/public-api.d.ts +1 -1
- package/core/animation/index.d.ts +1 -1
- package/core/common-behaviors/index.d.ts +3 -3
- package/core/datetime/index.d.ts +1 -1
- package/core/form-field/form-field-ref.d.ts +2 -0
- package/core/formatters/index.d.ts +1 -1
- package/core/forms/_forms-theme.scss +4 -8
- package/core/forms/_forms.scss +13 -43
- package/core/forms/index.d.ts +1 -1
- package/core/locales/formatters.d.ts +96 -0
- package/core/locales/index.d.ts +1 -1
- package/core/locales/locale-service.d.ts +97 -0
- package/core/option/_optgroup-theme.scss +4 -6
- package/core/option/_option-action-theme.scss +8 -11
- package/core/option/_option-theme.scss +15 -20
- package/core/option/index.d.ts +2 -2
- package/core/option/optgroup.scss +2 -3
- package/core/option/option.scss +0 -1
- package/core/pop-up/_pop-up.scss +0 -1
- package/core/pop-up/pop-up-trigger.d.ts +4 -2
- package/core/public-api.d.ts +3 -3
- package/core/select/common.d.ts +35 -0
- package/core/select/constants.d.ts +1 -1
- package/core/select/index.d.ts +3 -2
- package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +15 -19
- package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +9 -9
- package/core/services/theme.service.d.ts +3 -2
- package/core/styles/_core.scss +0 -1
- package/core/styles/_koobiq-theme.scss +5 -3
- package/core/styles/common/_animation.scss +9 -8
- package/core/styles/common/_button.scss +0 -2
- package/core/styles/common/_clearfix.scss +1 -1
- package/core/styles/common/_groups.scss +3 -9
- package/core/styles/common/_list.scss +24 -66
- package/core/styles/common/_overlay.scss +4 -3
- package/core/styles/common/_popup.scss +5 -5
- package/core/styles/common/_rtl.scss +4 -4
- package/core/styles/common/_select.scss +48 -42
- package/core/styles/common/_tokens.scss +47 -0
- package/core/styles/functions/_number.scss +14 -19
- package/core/styles/functions/_string.scss +18 -19
- package/core/styles/functions/_timing.scss +24 -24
- package/core/styles/theming/_components-theming.scss +1322 -1326
- package/core/styles/theming/_scrollbar-theme.scss +8 -5
- package/core/styles/theming/_theming.scss +26 -29
- package/core/styles/typography/_typography-utils.scss +1 -2
- package/core/styles/typography/_typography.scss +138 -85
- package/core/styles/visual/_body.scss +0 -2
- package/core/styles/visual/_layout.scss +44 -38
- package/core/utils/data-size/config.d.ts +20 -2
- package/core/utils/data-size/data-size.pipe.d.ts +10 -9
- package/core/utils/data-size/index.d.ts +1 -1
- package/core/utils/data-size/size.d.ts +3 -4
- package/core/utils/public-api.d.ts +1 -1
- package/datepicker/_datepicker-theme.scss +38 -40
- package/datepicker/calendar-body.scss +3 -11
- package/datepicker/calendar-header.scss +4 -10
- package/datepicker/calendar.scss +5 -17
- package/datepicker/datepicker-content.scss +5 -15
- package/datepicker/datepicker-input.directive.d.ts +1 -0
- package/datepicker/datepicker-input.scss +0 -5
- package/datepicker/datepicker-toggle.scss +3 -3
- package/datepicker/public-api.d.ts +4 -4
- package/divider/_divider-theme.scss +2 -1
- package/divider/divider.scss +9 -26
- package/dl/_dl-theme.scss +5 -8
- package/dl/dl.scss +5 -20
- package/dl/public-api.d.ts +1 -1
- package/dropdown/_dropdown-theme.scss +30 -22
- package/dropdown/dropdown-content.directive.d.ts +1 -1
- package/dropdown/dropdown-item.component.d.ts +1 -1
- package/dropdown/dropdown-item.scss +12 -16
- package/dropdown/dropdown-trigger.directive.d.ts +2 -2
- package/dropdown/dropdown.component.d.ts +1 -1
- package/dropdown/dropdown.scss +6 -15
- package/dropdown/public-api.d.ts +5 -5
- package/ellipsis-center/ellipsis-center.directive.d.ts +4 -3
- package/empty-state/README.md +0 -0
- package/empty-state/_empty-state-theme.scss +56 -0
- package/empty-state/empty-state.component.d.ts +31 -0
- package/empty-state/empty-state.module.d.ts +10 -0
- package/empty-state/empty-state.scss +81 -0
- package/empty-state/index.d.ts +1 -0
- package/empty-state/public-api.d.ts +2 -0
- package/esm2022/alert/alert.component.mjs +52 -5
- package/esm2022/alert/alert.module.mjs +1 -1
- package/esm2022/alert/public-api.mjs +2 -2
- package/esm2022/autocomplete/autocomplete-origin.directive.mjs +1 -1
- package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +23 -31
- package/esm2022/autocomplete/autocomplete.component.mjs +14 -9
- package/esm2022/autocomplete/autocomplete.module.mjs +3 -3
- package/esm2022/autocomplete/public-api.mjs +3 -3
- package/esm2022/badge/badge.component.mjs +8 -6
- package/esm2022/badge/badge.module.mjs +1 -1
- package/esm2022/badge/public-api.mjs +2 -2
- package/esm2022/button/button.component.mjs +20 -10
- package/esm2022/button/button.module.mjs +1 -1
- package/esm2022/button/public-api.mjs +2 -2
- package/esm2022/button-toggle/button-toggle.component.mjs +24 -16
- package/esm2022/button-toggle/button-toggle.module.mjs +1 -1
- package/esm2022/button-toggle/public-api.mjs +2 -2
- package/esm2022/card/card.component.mjs +2 -2
- package/esm2022/card/card.module.mjs +1 -1
- package/esm2022/card/public-api.mjs +2 -2
- package/esm2022/checkbox/checkbox-config.mjs +1 -1
- package/esm2022/checkbox/checkbox-module.mjs +1 -1
- package/esm2022/checkbox/checkbox-required-validator.mjs +1 -1
- package/esm2022/checkbox/checkbox.mjs +6 -6
- package/esm2022/checkbox/public-api.mjs +1 -1
- package/esm2022/code-block/actionbar.component.mjs +4 -6
- package/esm2022/code-block/code-block.component.mjs +64 -17
- package/esm2022/code-block/code-block.module.mjs +9 -5
- package/esm2022/code-block/public-api.mjs +2 -2
- package/esm2022/core/animation/fade-animations.mjs +1 -1
- package/esm2022/core/animation/index.mjs +2 -2
- package/esm2022/core/animation/select-animations.mjs +5 -5
- package/esm2022/core/common-behaviors/color.mjs +4 -2
- package/esm2022/core/common-behaviors/common-module.mjs +2 -2
- package/esm2022/core/common-behaviors/constructor.mjs +1 -1
- package/esm2022/core/common-behaviors/disabled.mjs +1 -1
- package/esm2022/core/common-behaviors/error-state.mjs +1 -1
- package/esm2022/core/common-behaviors/index.mjs +4 -4
- package/esm2022/core/common-behaviors/tabindex.mjs +1 -1
- package/esm2022/core/datetime/date-adapter.mjs +1 -1
- package/esm2022/core/datetime/date-formats.mjs +1 -1
- package/esm2022/core/datetime/index.mjs +2 -2
- package/esm2022/core/error/error-options.mjs +1 -1
- package/esm2022/core/form-field/form-field-ref.mjs +1 -1
- package/esm2022/core/formatters/date/formatter.mjs +1 -1
- package/esm2022/core/formatters/date/formatter.pipe.mjs +1 -1
- package/esm2022/core/formatters/index.mjs +2 -2
- package/esm2022/core/formatters/number/formatter.mjs +19 -20
- package/esm2022/core/forms/forms-module.mjs +1 -1
- package/esm2022/core/forms/forms.directive.mjs +1 -1
- package/esm2022/core/forms/index.mjs +2 -2
- package/esm2022/core/highlight/highlight.pipe.mjs +1 -1
- package/esm2022/core/highlight/index.mjs +1 -1
- package/esm2022/core/label/label-options.mjs +1 -1
- package/esm2022/core/line/line.mjs +2 -2
- package/esm2022/core/locales/en-US.mjs +1 -1
- package/esm2022/core/locales/es-LA.mjs +1 -1
- package/esm2022/core/locales/fa-IR.mjs +1 -1
- package/esm2022/core/locales/formatters.mjs +97 -1
- package/esm2022/core/locales/index.mjs +2 -2
- package/esm2022/core/locales/locale-service.mjs +10 -4
- package/esm2022/core/locales/locale-service.module.mjs +1 -1
- package/esm2022/core/locales/pt-BR.mjs +1 -1
- package/esm2022/core/locales/ru-RU.mjs +3 -3
- package/esm2022/core/locales/zh-CN.mjs +1 -1
- package/esm2022/core/option/action.mjs +20 -12
- package/esm2022/core/option/index.mjs +3 -3
- package/esm2022/core/option/optgroup.mjs +4 -4
- package/esm2022/core/option/option-module.mjs +1 -1
- package/esm2022/core/option/option.mjs +13 -7
- package/esm2022/core/overlay/overlay-position-map.mjs +1 -1
- package/esm2022/core/pop-up/pop-up-trigger.mjs +29 -30
- package/esm2022/core/pop-up/pop-up.mjs +1 -1
- package/esm2022/core/public-api.mjs +4 -4
- package/esm2022/core/select/common.mjs +120 -0
- package/esm2022/core/select/constants.mjs +1 -1
- package/esm2022/core/select/index.mjs +4 -3
- package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +3 -3
- package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +1 -1
- package/esm2022/core/services/measure-scrollbar.service.mjs +1 -1
- package/esm2022/core/services/theme.service.mjs +5 -4
- package/esm2022/core/title/title-text-ref.mjs +1 -1
- package/esm2022/core/utils/data-size/config.mjs +5 -17
- package/esm2022/core/utils/data-size/data-size.pipe.mjs +35 -22
- package/esm2022/core/utils/data-size/index.mjs +2 -2
- package/esm2022/core/utils/data-size/size.mjs +7 -14
- package/esm2022/core/utils/public-api.mjs +2 -2
- package/esm2022/core/utils/utils.mjs +4 -2
- package/esm2022/core/validation/validation.mjs +4 -2
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/datepicker/calendar-body.component.mjs +3 -3
- package/esm2022/datepicker/calendar-header.component.mjs +8 -7
- package/esm2022/datepicker/calendar.component.mjs +6 -6
- package/esm2022/datepicker/datepicker-animations.mjs +2 -2
- package/esm2022/datepicker/datepicker-errors.mjs +1 -1
- package/esm2022/datepicker/datepicker-input.directive.mjs +42 -34
- package/esm2022/datepicker/datepicker-intl.mjs +1 -1
- package/esm2022/datepicker/datepicker-module.mjs +2 -2
- package/esm2022/datepicker/datepicker-toggle.component.mjs +11 -10
- package/esm2022/datepicker/datepicker.component.mjs +15 -15
- package/esm2022/datepicker/month-view.component.mjs +14 -13
- package/esm2022/datepicker/public-api.mjs +5 -5
- package/esm2022/divider/divider.component.mjs +1 -1
- package/esm2022/divider/divider.module.mjs +1 -1
- package/esm2022/dl/dl.component.mjs +1 -1
- package/esm2022/dl/dl.module.mjs +2 -2
- package/esm2022/dl/public-api.mjs +2 -2
- package/esm2022/dropdown/dropdown-animations.mjs +5 -5
- package/esm2022/dropdown/dropdown-content.directive.mjs +3 -3
- package/esm2022/dropdown/dropdown-item.component.mjs +5 -5
- package/esm2022/dropdown/dropdown-trigger.directive.mjs +25 -31
- package/esm2022/dropdown/dropdown.component.mjs +10 -18
- package/esm2022/dropdown/dropdown.module.mjs +1 -1
- package/esm2022/dropdown/dropdown.types.mjs +1 -1
- package/esm2022/dropdown/public-api.mjs +6 -6
- package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +9 -7
- package/esm2022/empty-state/empty-state.component.mjs +104 -0
- package/esm2022/empty-state/empty-state.module.mjs +50 -0
- package/esm2022/empty-state/index.mjs +2 -0
- package/esm2022/empty-state/koobiq-components-empty-state.mjs +5 -0
- package/esm2022/empty-state/public-api.mjs +3 -0
- package/esm2022/file-upload/file-drop.mjs +2 -2
- package/esm2022/file-upload/file-upload.mjs +1 -1
- package/esm2022/file-upload/file-upload.module.mjs +12 -6
- package/esm2022/file-upload/index.mjs +1 -1
- package/esm2022/file-upload/multiple-file-upload.component.mjs +96 -29
- package/esm2022/file-upload/public-api.mjs +2 -2
- package/esm2022/file-upload/single-file-upload.component.mjs +100 -25
- package/esm2022/form-field/cleaner.mjs +13 -3
- package/esm2022/form-field/form-field-control.mjs +1 -1
- package/esm2022/form-field/form-field-errors.mjs +1 -1
- package/esm2022/form-field/form-field.mjs +8 -13
- package/esm2022/form-field/form-field.module.mjs +1 -1
- package/esm2022/form-field/hint.mjs +4 -4
- package/esm2022/form-field/password-hint.mjs +15 -15
- package/esm2022/form-field/password-toggle.mjs +14 -15
- package/esm2022/form-field/prefix.mjs +1 -1
- package/esm2022/form-field/public-api.mjs +4 -4
- package/esm2022/form-field/stepper.mjs +33 -29
- package/esm2022/form-field/suffix.mjs +1 -1
- package/esm2022/form-field/validate.directive.mjs +6 -5
- package/esm2022/icon/icon-button.component.mjs +2 -2
- package/esm2022/icon/icon-item.component.mjs +16 -6
- package/esm2022/icon/icon.component.mjs +3 -4
- package/esm2022/icon/icon.module.mjs +1 -1
- package/esm2022/icon/public-api.mjs +3 -3
- package/esm2022/input/input-number-validators.mjs +1 -1
- package/esm2022/input/input-number.mjs +35 -36
- package/esm2022/input/input-password.mjs +13 -7
- package/esm2022/input/input-value-accessor.mjs +1 -1
- package/esm2022/input/input.mjs +13 -7
- package/esm2022/input/input.module.mjs +1 -1
- package/esm2022/input/public-api.mjs +3 -3
- package/esm2022/link/link.component.mjs +2 -2
- package/esm2022/link/link.module.mjs +1 -1
- package/esm2022/link/public-api.mjs +2 -2
- package/esm2022/list/list-selection.component.mjs +34 -36
- package/esm2022/list/list.component.mjs +3 -3
- package/esm2022/list/list.module.mjs +2 -2
- package/esm2022/list/public-api.mjs +3 -3
- package/esm2022/loader-overlay/loader-overlay.component.mjs +4 -4
- package/esm2022/loader-overlay/loader-overlay.module.mjs +1 -1
- package/esm2022/loader-overlay/public-api.mjs +2 -2
- package/esm2022/markdown/markdown.component.mjs +22 -8
- package/esm2022/markdown/markdown.module.mjs +1 -1
- package/esm2022/markdown/markdown.service.mjs +1 -1
- package/esm2022/modal/css-unit.pipe.mjs +1 -1
- package/esm2022/modal/modal-control.service.mjs +3 -2
- package/esm2022/modal/modal-ref.class.mjs +1 -1
- package/esm2022/modal/modal-util.mjs +1 -1
- package/esm2022/modal/modal.component.mjs +54 -32
- package/esm2022/modal/modal.directive.mjs +27 -11
- package/esm2022/modal/modal.module.mjs +2 -2
- package/esm2022/modal/modal.service.mjs +3 -2
- package/esm2022/modal/modal.type.mjs +1 -1
- package/esm2022/modal/public-api.mjs +3 -3
- package/esm2022/navbar/index.mjs +1 -1
- package/esm2022/navbar/navbar-item.component.mjs +47 -38
- package/esm2022/navbar/navbar.component.mjs +19 -28
- package/esm2022/navbar/navbar.module.mjs +2 -2
- package/esm2022/navbar/public-api.mjs +3 -3
- package/esm2022/navbar/vertical-navbar.component.mjs +17 -18
- package/esm2022/popover/popover-animations.mjs +1 -1
- package/esm2022/popover/popover-confirm.component.mjs +3 -3
- package/esm2022/popover/popover.component.mjs +5 -5
- package/esm2022/popover/popover.module.mjs +1 -1
- package/esm2022/popover/public-api.mjs +3 -3
- package/esm2022/progress-bar/progress-bar.component.mjs +4 -4
- package/esm2022/progress-bar/progress-bar.module.mjs +2 -2
- package/esm2022/progress-bar/public-api.mjs +2 -2
- package/esm2022/progress-spinner/progress-spinner.component.mjs +4 -4
- package/esm2022/progress-spinner/progress-spinner.module.mjs +1 -1
- package/esm2022/progress-spinner/public-api.mjs +2 -2
- package/esm2022/radio/public-api.mjs +2 -2
- package/esm2022/radio/radio.component.mjs +9 -10
- package/esm2022/radio/radio.module.mjs +1 -1
- package/esm2022/risk-level/public-api.mjs +2 -2
- package/esm2022/risk-level/risk-level.component.mjs +1 -1
- package/esm2022/risk-level/risk-level.module.mjs +1 -1
- package/esm2022/scrollbar/public-api.mjs +2 -2
- package/esm2022/scrollbar/scrollbar.component.mjs +15 -13
- package/esm2022/scrollbar/scrollbar.directive.mjs +3 -3
- package/esm2022/scrollbar/scrollbar.module.mjs +2 -2
- package/esm2022/scrollbar/scrollbar.types.mjs +3 -2
- package/esm2022/select/public-api.mjs +3 -3
- package/esm2022/select/select-option.directive.mjs +14 -9
- package/esm2022/select/select.component.mjs +92 -172
- package/esm2022/select/select.module.mjs +28 -28
- package/esm2022/sidebar/public-api.mjs +2 -2
- package/esm2022/sidebar/sidebar-animations.mjs +1 -1
- package/esm2022/sidebar/sidebar.component.mjs +3 -3
- package/esm2022/sidebar/sidebar.module.mjs +1 -1
- package/esm2022/sidepanel/public-api.mjs +4 -4
- package/esm2022/sidepanel/sidepanel-animations.mjs +7 -3
- package/esm2022/sidepanel/sidepanel-config.mjs +1 -1
- package/esm2022/sidepanel/sidepanel-container.component.mjs +4 -4
- package/esm2022/sidepanel/sidepanel-directives.mjs +30 -16
- package/esm2022/sidepanel/sidepanel-ref.mjs +10 -4
- package/esm2022/sidepanel/sidepanel.module.mjs +1 -1
- package/esm2022/sidepanel/sidepanel.service.mjs +11 -14
- package/esm2022/splitter/public-api.mjs +2 -2
- package/esm2022/splitter/splitter.component.mjs +45 -35
- package/esm2022/splitter/splitter.module.mjs +1 -1
- package/esm2022/table/public-api.mjs +2 -2
- package/esm2022/table/table.component.mjs +29 -6
- package/esm2022/table/table.module.mjs +14 -6
- package/esm2022/tabs/paginated-tab-header.mjs +8 -11
- package/esm2022/tabs/public-api.mjs +6 -6
- package/esm2022/tabs/tab-body.component.mjs +9 -9
- package/esm2022/tabs/tab-content.directive.mjs +1 -1
- package/esm2022/tabs/tab-group.component.mjs +61 -21
- package/esm2022/tabs/tab-header.component.mjs +4 -4
- package/esm2022/tabs/tab-label-wrapper.directive.mjs +1 -1
- package/esm2022/tabs/tab-label.directive.mjs +1 -1
- package/esm2022/tabs/tab-nav-bar/index.mjs +1 -1
- package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +4 -4
- package/esm2022/tabs/tab.component.mjs +4 -6
- package/esm2022/tabs/tabs-animations.mjs +1 -1
- package/esm2022/tabs/tabs.module.mjs +2 -2
- package/esm2022/tags/public-api.mjs +5 -5
- package/esm2022/tags/tag-default-options.mjs +1 -1
- package/esm2022/tags/tag-input.mjs +26 -14
- package/esm2022/tags/tag-list.component.mjs +14 -20
- package/esm2022/tags/tag-text-control.mjs +1 -1
- package/esm2022/tags/tag.component.mjs +6 -8
- package/esm2022/tags/tag.module.mjs +9 -5
- package/esm2022/textarea/index.mjs +1 -1
- package/esm2022/textarea/textarea.component.mjs +15 -15
- package/esm2022/textarea/textarea.module.mjs +1 -1
- package/esm2022/timepicker/public-api.mjs +2 -2
- package/esm2022/timepicker/timepicker.constants.mjs +6 -1
- package/esm2022/timepicker/timepicker.directive.mjs +72 -28
- package/esm2022/timepicker/timepicker.module.mjs +1 -1
- package/esm2022/timezone/cities-by-filter.pipe.mjs +1 -1
- package/esm2022/timezone/timezone-option.component.mjs +12 -11
- package/esm2022/timezone/timezone-option.directive.mjs +9 -7
- package/esm2022/timezone/timezone-select.component.mjs +7 -7
- package/esm2022/timezone/timezone.module.mjs +1 -1
- package/esm2022/timezone/timezone.utils.mjs +5 -9
- package/esm2022/timezone/utc-offset.pipe.mjs +1 -1
- package/esm2022/title/public-api.mjs +2 -2
- package/esm2022/title/title.directive.mjs +11 -8
- package/esm2022/title/title.module.mjs +1 -1
- package/esm2022/toast/public-api.mjs +4 -4
- package/esm2022/toast/toast-animations.mjs +2 -2
- package/esm2022/toast/toast-container.component.mjs +5 -6
- package/esm2022/toast/toast.component.mjs +6 -6
- package/esm2022/toast/toast.module.mjs +1 -1
- package/esm2022/toast/toast.service.mjs +26 -37
- package/esm2022/toast/toast.type.mjs +3 -1
- package/esm2022/toggle/public-api.mjs +2 -2
- package/esm2022/toggle/toggle.component.mjs +17 -9
- package/esm2022/toggle/toggle.module.mjs +1 -1
- package/esm2022/tooltip/public-api.mjs +2 -2
- package/esm2022/tooltip/tooltip.animations.mjs +1 -1
- package/esm2022/tooltip/tooltip.component.mjs +32 -16
- package/esm2022/tooltip/tooltip.module.mjs +2 -2
- package/esm2022/tree/control/base-tree-control.mjs +1 -1
- package/esm2022/tree/control/flat-tree-control.filters.mjs +4 -7
- package/esm2022/tree/control/flat-tree-control.mjs +4 -7
- package/esm2022/tree/control/nested-tree-control.mjs +1 -1
- package/esm2022/tree/control/tree-control.mjs +1 -1
- package/esm2022/tree/data-source/flat-data-source.mjs +3 -8
- package/esm2022/tree/data-source/nested-data-source.mjs +2 -3
- package/esm2022/tree/node.mjs +1 -1
- package/esm2022/tree/outlet.mjs +1 -1
- package/esm2022/tree/padding.directive.mjs +5 -6
- package/esm2022/tree/public-api.mjs +11 -11
- package/esm2022/tree/toggle.mjs +8 -5
- package/esm2022/tree/tree-base.mjs +4 -4
- package/esm2022/tree/tree-errors.mjs +1 -1
- package/esm2022/tree/tree-option.component.mjs +9 -13
- package/esm2022/tree/tree-selection.component.mjs +19 -33
- package/esm2022/tree/tree.mjs +7 -3
- package/esm2022/tree/tree.module.mjs +4 -4
- package/esm2022/tree-select/public-api.mjs +2 -2
- package/esm2022/tree-select/tree-select.component.mjs +73 -98
- package/esm2022/tree-select/tree-select.module.mjs +31 -11
- package/fesm2022/koobiq-components-alert.mjs +55 -8
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +58 -61
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +10 -8
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +28 -20
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +22 -12
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-card.mjs +2 -2
- package/fesm2022/koobiq-components-card.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +3 -3
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +75 -27
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +623 -397
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +101 -90
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-divider.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +3 -3
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +127 -141
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-ellipsis-center.mjs +5 -4
- package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-empty-state.mjs +157 -0
- package/fesm2022/koobiq-components-empty-state.mjs.map +1 -0
- package/fesm2022/koobiq-components-file-upload.mjs +207 -62
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +88 -81
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +17 -8
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +62 -51
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-link.mjs +1 -1
- package/fesm2022/koobiq-components-link.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +39 -41
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +7 -7
- package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
- package/fesm2022/koobiq-components-markdown.mjs +20 -6
- package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +88 -49
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +84 -85
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +12 -12
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +5 -5
- package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-spinner.mjs +5 -5
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +11 -12
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-risk-level.mjs +2 -2
- package/fesm2022/koobiq-components-risk-level.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar.mjs +17 -14
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +136 -212
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +3 -3
- package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +108 -87
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs +46 -36
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-table.mjs +42 -11
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +87 -52
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +53 -46
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +13 -13
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +79 -30
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +23 -25
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +13 -10
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +86 -95
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +17 -9
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +33 -18
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +110 -114
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +509 -533
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/file-upload/_file-upload-theme.scss +124 -73
- package/file-upload/file-upload.module.d.ts +11 -10
- package/file-upload/file-upload.scss +0 -6
- package/file-upload/multiple-file-upload.component.d.ts +37 -7
- package/file-upload/multiple-file-upload.component.scss +50 -120
- package/file-upload/public-api.d.ts +1 -1
- package/file-upload/single-file-upload.component.d.ts +37 -7
- package/file-upload/single-file-upload.component.scss +12 -33
- package/form-field/_form-field-theme.scss +46 -36
- package/form-field/_hint-theme.scss +15 -20
- package/form-field/cleaner.scss +3 -9
- package/form-field/form-field.scss +23 -26
- package/form-field/hint.scss +5 -8
- package/form-field/password-toggle.d.ts +3 -2
- package/form-field/password-toggle.scss +3 -10
- package/form-field/public-api.d.ts +3 -3
- package/form-field/stepper.scss +4 -11
- package/icon/_icon-button-theme.scss +47 -36
- package/icon/_icon-item-theme.scss +47 -26
- package/icon/_icon-theme.scss +12 -14
- package/icon/icon-button.scss +5 -20
- package/icon/icon-item.component.d.ts +3 -1
- package/icon/icon-item.scss +10 -8
- package/icon/icon.scss +0 -6
- package/icon/public-api.d.ts +2 -2
- package/input/_input-theme.scss +6 -4
- package/input/input.scss +11 -10
- package/input/public-api.d.ts +2 -2
- package/link/_link-theme.scss +32 -49
- package/link/link.component.d.ts +1 -1
- package/link/public-api.d.ts +1 -1
- package/list/_list-theme.scss +21 -19
- package/list/list-selection.component.d.ts +2 -2
- package/list/list.scss +2 -6
- package/list/public-api.d.ts +2 -2
- package/loader-overlay/_loader-overlay-theme.scss +17 -18
- package/loader-overlay/loader-overlay.scss +9 -33
- package/loader-overlay/public-api.d.ts +1 -1
- package/markdown/_markdown-theme.scss +47 -47
- package/markdown/markdown.scss +41 -91
- package/modal/README.md +4 -3
- package/modal/_modal-animation.scss +0 -1
- package/modal/_modal-confirm.scss +2 -7
- package/modal/_modal-theme.scss +11 -13
- package/modal/modal.component.d.ts +1 -1
- package/modal/modal.directive.d.ts +3 -3
- package/modal/modal.scss +15 -31
- package/modal/modal.type.d.ts +2 -2
- package/modal/public-api.d.ts +2 -2
- package/navbar/README.md +21 -20
- package/navbar/_navbar-item_horizontal.scss +40 -33
- package/navbar/_navbar-item_vertical.scss +31 -33
- package/navbar/_navbar-theme.scss +20 -24
- package/navbar/navbar-brand.scss +24 -27
- package/navbar/navbar-divider.scss +4 -8
- package/navbar/navbar-item.component.d.ts +4 -4
- package/navbar/navbar-item.scss +20 -15
- package/navbar/navbar.scss +2 -6
- package/navbar/public-api.d.ts +2 -2
- package/navbar/vertical-navbar.scss +4 -6
- package/package.json +17 -10
- package/popover/README.md +18 -14
- package/popover/_popover-theme.scss +9 -17
- package/popover/popover.component.d.ts +1 -1
- package/popover/popover.scss +15 -29
- package/popover/public-api.d.ts +2 -2
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/progress-bar/_progress-bar-theme.scss +7 -11
- package/progress-bar/progress-bar.scss +6 -19
- package/progress-bar/public-api.d.ts +1 -1
- package/progress-spinner/_progress-spinner-theme.scss +6 -8
- package/progress-spinner/progress-spinner.scss +8 -18
- package/progress-spinner/public-api.d.ts +1 -1
- package/radio/_radio-theme.scss +37 -37
- package/radio/public-api.d.ts +1 -1
- package/radio/radio.scss +35 -40
- package/risk-level/_risk-level-theme.scss +25 -31
- package/risk-level/public-api.d.ts +1 -1
- package/risk-level/risk-level.component.scss +4 -10
- package/schematics/collection.json +11 -0
- package/schematics/ng-add/index.js +70 -0
- package/schematics/ng-add/schema.json +15 -0
- package/scrollbar/_scrollbar-component-theme.scss +15 -19
- package/scrollbar/public-api.d.ts +1 -1
- package/scrollbar/scrollbar.component.scss +68 -63
- package/scrollbar/scrollbar.directive.d.ts +1 -1
- package/scrollbar/scrollbar.types.d.ts +1 -1
- package/select/_select-theme.scss +14 -16
- package/select/public-api.d.ts +2 -2
- package/select/select-option.directive.d.ts +3 -2
- package/select/select.component.d.ts +12 -33
- package/select/select.module.d.ts +1 -1
- package/select/select.scss +3 -11
- package/sidebar/public-api.d.ts +1 -1
- package/sidepanel/_sidepanel-theme.scss +8 -10
- package/sidepanel/public-api.d.ts +3 -3
- package/sidepanel/sidepanel.scss +20 -37
- package/splitter/_splitter-theme.scss +5 -6
- package/splitter/public-api.d.ts +1 -1
- package/splitter/splitter.component.d.ts +10 -5
- package/splitter/splitter.scss +0 -1
- package/table/_table-theme.scss +16 -15
- package/table/public-api.d.ts +1 -1
- package/table/table.component.d.ts +8 -1
- package/table/table.module.d.ts +1 -1
- package/table/table.scss +41 -42
- package/tabs/_tabs-common.scss +13 -15
- package/tabs/_tabs-theme.scss +76 -44
- package/tabs/paginated-tab-header.d.ts +1 -1
- package/tabs/public-api.d.ts +5 -5
- package/tabs/tab-body.component.d.ts +4 -4
- package/tabs/tab-group.component.d.ts +10 -4
- package/tabs/tab-group.scss +2 -8
- package/tabs/tab-header.scss +0 -10
- package/tabs/tab-nav-bar/tab-nav-bar.scss +2 -9
- package/tags/_tag-theme.scss +22 -27
- package/tags/public-api.d.ts +4 -4
- package/tags/tag-default-options.d.ts +1 -0
- package/tags/tag-input.d.ts +8 -2
- package/tags/tag-list.scss +15 -12
- package/tags/tag.component.d.ts +1 -1
- package/tags/tag.scss +5 -11
- package/textarea/_textarea-theme.scss +2 -5
- package/textarea/textarea.component.d.ts +1 -1
- package/textarea/textarea.scss +5 -10
- package/timepicker/public-api.d.ts +1 -1
- package/timepicker/timepicker.constants.d.ts +2 -0
- package/timepicker/timepicker.directive.d.ts +11 -4
- package/timepicker/timepicker.scss +2 -8
- package/timezone/_timezone-option-theme.scss +8 -10
- package/timezone/timezone-option.component.scss +5 -8
- package/timezone/timezone-option.directive.d.ts +4 -3
- package/timezone/timezone-select.component.d.ts +2 -1
- package/timezone/timezone-select.component.scss +2 -4
- package/timezone/timezone.utils.d.ts +1 -1
- package/title/public-api.d.ts +1 -1
- package/title/title.directive.d.ts +0 -1
- package/toast/_toast-theme.scss +20 -16
- package/toast/public-api.d.ts +3 -3
- package/toast/toast-container.component.scss +5 -6
- package/toast/toast.component.scss +28 -29
- package/toast/toast.service.d.ts +9 -5
- package/toast/toast.type.d.ts +3 -1
- package/toggle/_toggle-theme.scss +49 -42
- package/toggle/public-api.d.ts +1 -1
- package/toggle/toggle.scss +9 -22
- package/tooltip/_tooltip-theme.scss +12 -16
- package/tooltip/public-api.d.ts +1 -1
- package/tooltip/tooltip.component.d.ts +14 -10
- package/tooltip/tooltip.scss +7 -13
- package/tree/_tree-theme.scss +20 -23
- package/tree/public-api.d.ts +10 -10
- package/tree/toggle.scss +3 -6
- package/tree/tree-base.d.ts +2 -2
- package/tree/tree-option.component.d.ts +1 -1
- package/tree/tree-option.scss +17 -14
- package/tree/tree-selection.component.d.ts +2 -1
- package/tree-select/_tree-select-theme.scss +12 -15
- package/tree-select/public-api.d.ts +1 -1
- package/tree-select/tree-select.component.d.ts +13 -20
- package/tree-select/tree-select.module.d.ts +1 -2
- package/tree-select/tree-select.scss +1 -6
- package/core/styles/_variables.scss +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { coerceBooleanProperty, coerceCssPixelValue, coerceNumberProperty } from '@angular/cdk/coercion';
|
|
2
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, ElementRef, EventEmitter, Input, NgZone, Output, QueryList, Renderer2, ViewChild, ViewChildren, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, Directive, ElementRef, EventEmitter, Inject, Input, NgZone, Output, QueryList, Renderer2, ViewChild, ViewChildren, ViewEncapsulation, forwardRef } from '@angular/core';
|
|
3
|
+
import { Subscription } from 'rxjs';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
import * as i1 from "@angular/common";
|
|
5
6
|
export var Direction;
|
|
@@ -44,7 +45,7 @@ export class KbqGutterDirective {
|
|
|
44
45
|
if (!this.isVertical) {
|
|
45
46
|
this.setStyle("height" /* StyleProperty.Height */, '100%');
|
|
46
47
|
}
|
|
47
|
-
// fix IE issue with gutter icon. flex-direction is
|
|
48
|
+
// fix IE issue with gutter icon. flex-direction is required for flex alignment options
|
|
48
49
|
this.setStyle("flex-direction" /* StyleProperty.FlexDirection */, this.isVertical ? 'row' : 'column');
|
|
49
50
|
}
|
|
50
51
|
getPosition() {
|
|
@@ -196,23 +197,26 @@ export class KbqSplitterComponent {
|
|
|
196
197
|
this._isDragging = false;
|
|
197
198
|
this.areaPositionDivider = 2;
|
|
198
199
|
this.listeners = [];
|
|
200
|
+
this.areasChangeSubscription = Subscription.EMPTY;
|
|
199
201
|
this._hideGutters = false;
|
|
200
202
|
this._disabled = false;
|
|
201
203
|
this._useGhost = false;
|
|
202
204
|
this._gutterSize = 6;
|
|
203
205
|
this._resizing = false;
|
|
206
|
+
this.mapAndOrderArea = (area, index) => {
|
|
207
|
+
const order = index * this.areaPositionDivider;
|
|
208
|
+
area.setOrder(order);
|
|
209
|
+
return {
|
|
210
|
+
area,
|
|
211
|
+
index,
|
|
212
|
+
order,
|
|
213
|
+
initialSize: area.getSize()
|
|
214
|
+
};
|
|
215
|
+
};
|
|
204
216
|
}
|
|
205
217
|
addArea(area) {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
const size = area.getSize();
|
|
209
|
-
area.setOrder(order);
|
|
210
|
-
this.areas.push({
|
|
211
|
-
area,
|
|
212
|
-
index,
|
|
213
|
-
order,
|
|
214
|
-
initialSize: size
|
|
215
|
-
});
|
|
218
|
+
this.areas.push(this.mapAndOrderArea(area, this.areas.length));
|
|
219
|
+
this.changeDetectorRef.detectChanges();
|
|
216
220
|
}
|
|
217
221
|
ngOnInit() {
|
|
218
222
|
if (!this.direction) {
|
|
@@ -220,6 +224,15 @@ export class KbqSplitterComponent {
|
|
|
220
224
|
}
|
|
221
225
|
this.setStyle("flex-direction" /* StyleProperty.FlexDirection */, this.isVertical() ? 'column' : 'row');
|
|
222
226
|
}
|
|
227
|
+
ngAfterContentInit() {
|
|
228
|
+
this.areasChangeSubscription = this.areaRefs.changes.subscribe((data) => {
|
|
229
|
+
this.areas = data.map(this.mapAndOrderArea);
|
|
230
|
+
this.changeDetectorRef.markForCheck();
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
ngOnDestroy() {
|
|
234
|
+
this.areasChangeSubscription.unsubscribe();
|
|
235
|
+
}
|
|
223
236
|
onMouseDown(event, leftAreaIndex, rightAreaIndex) {
|
|
224
237
|
if (this.disabled) {
|
|
225
238
|
return;
|
|
@@ -294,9 +307,7 @@ export class KbqSplitterComponent {
|
|
|
294
307
|
x: event.screenX,
|
|
295
308
|
y: event.screenY
|
|
296
309
|
};
|
|
297
|
-
const offset = this.isVertical()
|
|
298
|
-
? startPoint.y - endPoint.y
|
|
299
|
-
: startPoint.x - endPoint.x;
|
|
310
|
+
const offset = this.isVertical() ? startPoint.y - endPoint.y : startPoint.x - endPoint.x;
|
|
300
311
|
if (this.useGhost && currentGutter) {
|
|
301
312
|
const gutterPosition = currentGutter.getPosition();
|
|
302
313
|
const leftPos = leftArea.area.getPosition();
|
|
@@ -343,9 +354,9 @@ export class KbqSplitterComponent {
|
|
|
343
354
|
}
|
|
344
355
|
if (this.useGhost && currentGutter) {
|
|
345
356
|
const gutterPosition = currentGutter.getPosition();
|
|
346
|
-
const offset = this.ghost.direction === Direction.Vertical
|
|
347
|
-
gutterPosition.y - this.ghost.y
|
|
348
|
-
gutterPosition.x - this.ghost.x;
|
|
357
|
+
const offset = this.ghost.direction === Direction.Vertical
|
|
358
|
+
? gutterPosition.y - this.ghost.y
|
|
359
|
+
: gutterPosition.x - this.ghost.x;
|
|
349
360
|
this.resizeAreas(leftArea, rightArea, offset);
|
|
350
361
|
this.ghost.visible = false;
|
|
351
362
|
this.setStyle("cursor" /* StyleProperty.Cursor */, 'unset');
|
|
@@ -359,13 +370,13 @@ export class KbqSplitterComponent {
|
|
|
359
370
|
this.renderer.setStyle(this.elementRef.nativeElement, property, value);
|
|
360
371
|
}
|
|
361
372
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqSplitterComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
362
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqSplitterComponent, selector: "kbq-splitter", inputs: { hideGutters: "hideGutters", direction: "direction", disabled: "disabled", useGhost: "useGhost", gutterSize: "gutterSize" }, outputs: { gutterPositionChange: "gutterPositionChange" }, host: { classAttribute: "kbq-splitter" }, viewQueries: [{ propertyName: "ghost", first: true, predicate: KbqGutterGhostDirective, descendants: true }, { propertyName: "gutters", predicate: KbqGutterDirective, descendants: true }], exportAs: ["kbqSplitter"], ngImport: i0, template: "<ng-content></ng-content>\n\n<ng-template
|
|
373
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqSplitterComponent, selector: "kbq-splitter", inputs: { hideGutters: "hideGutters", direction: "direction", disabled: "disabled", useGhost: "useGhost", gutterSize: "gutterSize" }, outputs: { gutterPositionChange: "gutterPositionChange" }, host: { classAttribute: "kbq-splitter" }, queries: [{ propertyName: "areaRefs", predicate: i0.forwardRef(() => KbqSplitterAreaDirective) }], viewQueries: [{ propertyName: "ghost", first: true, predicate: KbqGutterGhostDirective, descendants: true }, { propertyName: "gutters", predicate: KbqGutterDirective, descendants: true }], exportAs: ["kbqSplitter"], ngImport: i0, template: "<ng-content></ng-content>\n\n<ng-template\n let-area\n let-index=\"index\"\n let-last=\"last\"\n ngFor\n [ngForOf]=\"areas\"\n>\n <kbq-gutter\n *ngIf=\"last === false\"\n [attr.disabled]=\"disabled || null\"\n [direction]=\"direction\"\n [order]=\"index * 2 + 1\"\n [size]=\"gutterSize\"\n [style.display]=\"hideGutters ? 'none' : 'flex'\"\n (mousedown)=\"onMouseDown($event, index, index + 1)\"\n ></kbq-gutter>\n</ng-template>\n\n<kbq-gutter-ghost *ngIf=\"useGhost\"></kbq-gutter-ghost>\n", styles: [".kbq-splitter{display:flex;position:relative;flex-wrap:nowrap;align-items:stretch;overflow:hidden}.kbq-splitter .kbq-splitter-area{overflow:hidden}.kbq-splitter .kbq-splitter-area_resizing{pointer-events:none}.kbq-gutter{display:flex;flex-grow:0;flex-shrink:0;justify-content:center;align-items:center;overflow:hidden}.kbq-gutter.kbq-gutter_vertical>.kbq-icon{transform:rotate(90deg)}.kbq-gutter-ghost{position:absolute;z-index:999;display:none;overflow:hidden}.kbq-gutter-ghost.kbq-gutter-ghost_vertical>.kbq-icon{transform:rotate(90deg)}.kbq-gutter-ghost.kbq-gutter-ghost_visible{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: KbqGutterDirective, selector: "kbq-gutter", inputs: ["direction", "order", "size"] }, { kind: "directive", type: KbqGutterGhostDirective, selector: "kbq-gutter-ghost", inputs: ["visible", "x", "y", "direction", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
363
374
|
}
|
|
364
375
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqSplitterComponent, decorators: [{
|
|
365
376
|
type: Component,
|
|
366
377
|
args: [{ selector: 'kbq-splitter', exportAs: 'kbqSplitter', host: {
|
|
367
378
|
class: 'kbq-splitter'
|
|
368
|
-
}, preserveWhitespaces: false, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n\n<ng-template
|
|
379
|
+
}, preserveWhitespaces: false, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n\n<ng-template\n let-area\n let-index=\"index\"\n let-last=\"last\"\n ngFor\n [ngForOf]=\"areas\"\n>\n <kbq-gutter\n *ngIf=\"last === false\"\n [attr.disabled]=\"disabled || null\"\n [direction]=\"direction\"\n [order]=\"index * 2 + 1\"\n [size]=\"gutterSize\"\n [style.display]=\"hideGutters ? 'none' : 'flex'\"\n (mousedown)=\"onMouseDown($event, index, index + 1)\"\n ></kbq-gutter>\n</ng-template>\n\n<kbq-gutter-ghost *ngIf=\"useGhost\"></kbq-gutter-ghost>\n", styles: [".kbq-splitter{display:flex;position:relative;flex-wrap:nowrap;align-items:stretch;overflow:hidden}.kbq-splitter .kbq-splitter-area{overflow:hidden}.kbq-splitter .kbq-splitter-area_resizing{pointer-events:none}.kbq-gutter{display:flex;flex-grow:0;flex-shrink:0;justify-content:center;align-items:center;overflow:hidden}.kbq-gutter.kbq-gutter_vertical>.kbq-icon{transform:rotate(90deg)}.kbq-gutter-ghost{position:absolute;z-index:999;display:none;overflow:hidden}.kbq-gutter-ghost.kbq-gutter-ghost_vertical>.kbq-icon{transform:rotate(90deg)}.kbq-gutter-ghost.kbq-gutter-ghost_visible{display:block}\n"] }]
|
|
369
380
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Renderer2 }], propDecorators: { gutterPositionChange: [{
|
|
370
381
|
type: Output
|
|
371
382
|
}], gutters: [{
|
|
@@ -374,6 +385,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
|
|
|
374
385
|
}], ghost: [{
|
|
375
386
|
type: ViewChild,
|
|
376
387
|
args: [KbqGutterGhostDirective]
|
|
388
|
+
}], areaRefs: [{
|
|
389
|
+
type: ContentChildren,
|
|
390
|
+
args: [forwardRef(() => KbqSplitterAreaDirective)]
|
|
377
391
|
}], hideGutters: [{
|
|
378
392
|
type: Input
|
|
379
393
|
}], direction: [{
|
|
@@ -401,7 +415,7 @@ export class KbqSplitterAreaDirective {
|
|
|
401
415
|
disableFlex() {
|
|
402
416
|
this.renderer.removeStyle(this.elementRef.nativeElement, 'flex');
|
|
403
417
|
}
|
|
404
|
-
|
|
418
|
+
ngAfterViewInit() {
|
|
405
419
|
this.splitter.addArea(this);
|
|
406
420
|
this.removeStyle("max-width" /* StyleProperty.MaxWidth */);
|
|
407
421
|
if (this.splitter.direction === Direction.Vertical) {
|
|
@@ -412,8 +426,7 @@ export class KbqSplitterAreaDirective {
|
|
|
412
426
|
this.setStyle("height" /* StyleProperty.Height */, '100%');
|
|
413
427
|
this.removeStyle("width" /* StyleProperty.Width */);
|
|
414
428
|
}
|
|
415
|
-
this.splitter.gutterPositionChange
|
|
416
|
-
.subscribe(this.emitSizeChange);
|
|
429
|
+
this.splitter.gutterPositionChange.subscribe(this.emitSizeChange);
|
|
417
430
|
}
|
|
418
431
|
ngOnDestroy() {
|
|
419
432
|
this.splitter.removeArea(this);
|
|
@@ -444,19 +457,13 @@ export class KbqSplitterAreaDirective {
|
|
|
444
457
|
return this.splitter.direction === Direction.Vertical;
|
|
445
458
|
}
|
|
446
459
|
getMinSizeProperty() {
|
|
447
|
-
return this.isVertical()
|
|
448
|
-
? "min-height" /* StyleProperty.MinHeight */
|
|
449
|
-
: "minWidth" /* StyleProperty.MinWidth */;
|
|
460
|
+
return this.isVertical() ? "min-height" /* StyleProperty.MinHeight */ : "minWidth" /* StyleProperty.MinWidth */;
|
|
450
461
|
}
|
|
451
462
|
getOffsetSizeProperty() {
|
|
452
|
-
return this.isVertical()
|
|
453
|
-
? "offsetHeight" /* StyleProperty.OffsetHeight */
|
|
454
|
-
: "offsetWidth" /* StyleProperty.OffsetWidth */;
|
|
463
|
+
return this.isVertical() ? "offsetHeight" /* StyleProperty.OffsetHeight */ : "offsetWidth" /* StyleProperty.OffsetWidth */;
|
|
455
464
|
}
|
|
456
465
|
getSizeProperty() {
|
|
457
|
-
return this.isVertical()
|
|
458
|
-
? "height" /* StyleProperty.Height */
|
|
459
|
-
: "width" /* StyleProperty.Width */;
|
|
466
|
+
return this.isVertical() ? "height" /* StyleProperty.Height */ : "width" /* StyleProperty.Width */;
|
|
460
467
|
}
|
|
461
468
|
setStyle(style, value) {
|
|
462
469
|
this.renderer.setStyle(this.elementRef.nativeElement, style, value);
|
|
@@ -464,7 +471,7 @@ export class KbqSplitterAreaDirective {
|
|
|
464
471
|
removeStyle(style) {
|
|
465
472
|
this.renderer.removeStyle(this.elementRef.nativeElement, style);
|
|
466
473
|
}
|
|
467
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqSplitterAreaDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: KbqSplitterComponent }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
474
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqSplitterAreaDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: forwardRef(() => KbqSplitterComponent) }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
468
475
|
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.0", type: KbqSplitterAreaDirective, selector: "[kbq-splitter-area]", outputs: { sizeChange: "sizeChange" }, host: { properties: { "class.kbq-splitter-area_resizing": "isResizing()" }, classAttribute: "kbq-splitter-area" }, ngImport: i0 }); }
|
|
469
476
|
}
|
|
470
477
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqSplitterAreaDirective, decorators: [{
|
|
@@ -476,7 +483,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
|
|
|
476
483
|
'[class.kbq-splitter-area_resizing]': 'isResizing()'
|
|
477
484
|
}
|
|
478
485
|
}]
|
|
479
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: KbqSplitterComponent
|
|
486
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: KbqSplitterComponent, decorators: [{
|
|
487
|
+
type: Inject,
|
|
488
|
+
args: [forwardRef(() => KbqSplitterComponent)]
|
|
489
|
+
}] }], propDecorators: { sizeChange: [{
|
|
480
490
|
type: Output
|
|
481
491
|
}] } });
|
|
482
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9zcGxpdHRlci9zcGxpdHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3NwbGl0dGVyL3NwbGl0dGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pHLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUdOLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDOzs7QUFnQ3ZCLE1BQU0sQ0FBTixJQUFZLFNBR1g7QUFIRCxXQUFZLFNBQVM7SUFDakIsc0NBQXlCLENBQUE7SUFDekIsa0NBQXFCLENBQUE7QUFDekIsQ0FBQyxFQUhXLFNBQVMsS0FBVCxTQUFTLFFBR3BCO0FBV0QsTUFBTSxPQUFPLGtCQUFrQjtJQUUzQixJQUNJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLFNBQW9CO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLENBQUM7SUFLRCxJQUNJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLEtBQWE7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBS0QsSUFDSSxJ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QixvQ0FBb0MsRUFBRSxjQUFjO3FCQUN2RDtpQkFDSjt1SUFFYSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VDc3NQaXhlbFZhbHVlLCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5pbnRlcmZhY2UgSUFyZWEge1xuICAgIGFyZWE6IEticVNwbGl0dGVyQXJlYURpcmVjdGl2ZTtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIG9yZGVyOiBudW1iZXI7XG4gICAgaW5pdGlhbFNpemU6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIElQb2ludCB7XG4gICAgeDogbnVtYmVyO1xuICAgIHk6IG51bWJlcjtcbn1cblxuY29uc3QgZW51bSBTdHlsZVByb3BlcnR5IHtcbiAgICBGbGV4ID0gJ2ZsZXgnLFxuICAgIEZsZXhCYXNpcyA9ICdmbGV4LWJhc2lzJyxcbiAgICBGbGV4RGlyZWN0aW9uID0gJ2ZsZXgtZGlyZWN0aW9uJyxcbiAgICBIZWlnaHQgPSAnaGVpZ2h0JyxcbiAgICBNYXhXaWR0aCA9ICdtYXgtd2lkdGgnLFxuICAgIE1pbkhlaWdodCA9ICdtaW4taGVpZ2h0JyxcbiAgICBNaW5XaWR0aCA9ICdtaW5XaWR0aCcsXG4gICAgT2Zmc2V0SGVpZ2h0ID0gJ29mZnNldEhlaWdodCcsXG4gICAgT2Zmc2V0V2lkdGggPSAnb2Zmc2V0V2lkdGgnLFxuICAgIE9yZGVyID0gJ29yZGVyJyxcbiAgICBXaWR0aCA9ICd3aWR0aCcsXG4gICAgVG9wID0gJ3RvcCcsXG4gICAgTGVmdCA9ICdsZWZ0JyxcbiAgICBDdXJzb3IgPSAnY3Vyc29yJ1xufVxuXG5leHBvcnQgZW51bSBEaXJlY3Rpb24ge1xuICAgIEhvcml6b250YWwgPSAnaG9yaXpvbnRhbCcsXG4gICAgVmVydGljYWwgPSAndmVydGljYWwnXG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAna2JxLWd1dHRlcicsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1ndXR0ZXInLFxuICAgICAgICAnW2NsYXNzLmticS1ndXR0ZXJfdmVydGljYWxdJzogJ2lzVmVydGljYWwnLFxuICAgICAgICAnW2NsYXNzLmticS1ndXR0ZXJfZHJhZ2dlZF0nOiAnZHJhZ2dlZCcsXG4gICAgICAgICcobW91c2Vkb3duKSc6ICdkcmFnZ2VkID0gdHJ1ZSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticUd1dHRlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBkaXJlY3Rpb24oKTogRGlyZWN0aW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpcmVjdGlvbjtcbiAgICB9XG5cbiAgICBzZXQgZGlyZWN0aW9uKGRpcmVjdGlvbjogRGlyZWN0aW9uKSB7XG4gICAgICAgIHRoaXMuX2RpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kaXJlY3Rpb246IERpcmVjdGlvbiA9IERpcmVjdGlvbi5WZXJ0aWNhbDtcblxuXG4gICAgQElucHV0KClcbiAgICBnZXQgb3JkZXIoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29yZGVyO1xuICAgIH1cblxuICAgIHNldCBvcmRlcihvcmRlcjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX29yZGVyID0gY29lcmNlTnVtYmVyUHJvcGVydHkob3JkZXIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX29yZGVyOiBudW1iZXIgPSAwO1xuXG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBzaXplKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaXplO1xuICAgIH1cblxuICAgIHNldCBzaXplKHNpemU6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9zaXplID0gY29lcmNlTnVtYmVyUHJvcGVydHkoc2l6ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2l6ZTogbnVtYmVyID0gNjtcblxuICAgIGdldCBpc1ZlcnRpY2FsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlyZWN0aW9uID09PSBEaXJlY3Rpb24uVmVydGljYWw7XG4gICAgfVxuXG4gICAgZHJhZ2dlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0U3R5bGUoU3R5bGVQcm9wZXJ0eS5GbGV4QmFzaXMsIGNvZXJjZUNzc1BpeGVsVmFsdWUodGhpcy5zaXplKSk7XG4gICAgICAgIHRoaXMuc2V0U3R5bGUodGhpcy5pc1ZlcnRpY2FsID8gU3R5bGVQcm9wZXJ0eS5IZWlnaHQgOiBTdHlsZVByb3BlcnR5LldpZHRoLCBjb2VyY2VDc3NQaXhlbFZhbHVlKHRoaXMuc2l6ZSkpO1xuICAgICAgICB0aGlzLnNldFN0eWxlKFN0eWxlUHJvcGVydHkuT3JkZXIsIHRoaXMub3JkZXIpO1xuXG4gICAgICAgIGlmICghdGhpcy5pc1ZlcnRpY2FsKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0eWxlKFN0eWxlUHJvcGVydHkuSGVpZ2h0LCAnMTAwJScpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZml4IElFIGlzc3VlIHdpdGggZ3V0dGVyIGljb24uIGZsZXgtZGlyZWN0aW9uIGlzIHJlcXVpZWQgZm9yIGZsZXggYWxpZ25tZW50IG9wdGlvbnNcbiAgICAgICAgdGhpcy5zZXRTdHlsZShTdHlsZVByb3BlcnR5LkZsZXhEaXJlY3Rpb24sIHRoaXMuaXNWZXJ0aWNhbCA/ICdyb3cnIDogJ2NvbHVtbicpO1xuICAgIH1cblxuICAgIGdldFBvc2l0aW9uKCk6IElQb2ludCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0LFxuICAgICAgICAgICAgeTogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0VG9wXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTdHlsZShwcm9wZXJ0eTogU3R5bGVQcm9wZXJ0eSwgdmFsdWU6IHN0cmluZyB8IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBwcm9wZXJ0eSwgdmFsdWUpO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdrYnEtZ3V0dGVyLWdob3N0JyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLWd1dHRlci1naG9zdCcsXG4gICAgICAgICdbY2xhc3Mua2JxLWd1dHRlci1naG9zdF92ZXJ0aWNhbF0nOiAnaXNWZXJ0aWNhbCcsXG4gICAgICAgICdbY2xhc3Mua2JxLWd1dHRlci1naG9zdF92aXNpYmxlXSc6ICd2aXNpYmxlJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxR3V0dGVyR2hvc3REaXJlY3RpdmUge1xuICAgIEBJbnB1dCgpIHZpc2libGU6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCB4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl94O1xuICAgIH1cblxuICAgIHNldCB4KHg6IG51bWJlcikge1xuICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgdGhpcy5zZXRTdHlsZShTdHlsZVByb3BlcnR5LkxlZnQsIGNvZXJjZUNzc1BpeGVsVmFsdWUoeCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3g6IG51bWJlciA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCB5KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl95O1xuICAgIH1cblxuICAgIHNldCB5KHk6IG51bWJlcikge1xuICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgdGhpcy5zZXRTdHlsZShTdHlsZVByb3BlcnR5LlRvcCwgY29lcmNlQ3NzUGl4ZWxWYWx1ZSh5KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfeTogbnVtYmVyID0gMDtcblxuXG4gICAgQElucHV0KClcbiAgICBnZXQgZGlyZWN0aW9uKCk6IERpcmVjdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXJlY3Rpb247XG4gICAgfVxuXG4gICAgc2V0IGRpcmVjdGlvbihkaXJlY3Rpb246IERpcmVjdGlvbikge1xuICAgICAgICB0aGlzLl9kaXJlY3Rpb24gPSBkaXJlY3Rpb247XG4gICAgICAgIHRoaXMudXBkYXRlRGltZW5zaW9ucygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2RpcmVjdGlvbjogRGlyZWN0aW9uID0gRGlyZWN0aW9uLlZlcnRpY2FsO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgc2l6ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2l6ZTtcbiAgICB9XG5cbiAgICBzZXQgc2l6ZShzaXplOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fc2l6ZSA9IGNvZXJjZU51bWJlclByb3BlcnR5KHNpemUpO1xuICAgICAgICB0aGlzLnVwZGF0ZURpbWVuc2lvbnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zaXplOiBudW1iZXIgPSA2O1xuXG4gICAgZ2V0IGlzVmVydGljYWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpcmVjdGlvbiA9PT0gRGlyZWN0aW9uLlZlcnRpY2FsO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICAgICkge31cblxuICAgIHByaXZhdGUgdXBkYXRlRGltZW5zaW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRTdHlsZSh0aGlzLmlzVmVydGljYWwgPyBTdHlsZVByb3BlcnR5LldpZHRoIDogU3R5bGVQcm9wZXJ0eS5IZWlnaHQsICcxMDAlJyk7XG4gICAgICAgIHRoaXMuc2V0U3R5bGUodGhpcy5pc1ZlcnRpY2FsID8gU3R5bGVQcm9wZXJ0eS5IZWlnaHQgOiBTdHlsZVByb3BlcnR5LldpZHRoLCBjb2VyY2VDc3NQaXhlbFZhbHVlKHRoaXMuc2l6ZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U3R5bGUocHJvcGVydHk6IFN0eWxlUHJvcGVydHksIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgcHJvcGVydHksIHZhbHVlKTtcbiAgICB9XG59XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrYnEtc3BsaXR0ZXInLFxuICAgIGV4cG9ydEFzOiAna2JxU3BsaXR0ZXInLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtc3BsaXR0ZXInXG4gICAgfSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBzdHlsZVVybHM6IFsnc3BsaXR0ZXIuc2NzcyddLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zcGxpdHRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBLYnFTcGxpdHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQE91dHB1dCgpIGd1dHRlclBvc2l0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICByZWFkb25seSBhcmVhczogSUFyZWFbXSA9IFtdO1xuXG4gICAgQFZpZXdDaGlsZHJlbihLYnFHdXR0ZXJEaXJlY3RpdmUpIGd1dHRlcnM6IFF1ZXJ5TGlzdDxLYnFHdXR0ZXJEaXJlY3RpdmU+O1xuICAgIEBWaWV3Q2hpbGQoS2JxR3V0dGVyR2hvc3REaXJlY3RpdmUpIGdob3N0OiBLYnFHdXR0ZXJHaG9zdERpcmVjdGl2ZTtcblxuICAgIGdldCBpc0RyYWdnaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNEcmFnZ2luZztcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNEcmFnZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcmVhUG9zaXRpb25EaXZpZGVyOiBudW1iZXIgPSAyO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlzdGVuZXJzOiAoKCkgPT4gdm9pZClbXSA9IFtdO1xuXG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBoaWRlR3V0dGVycygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZGVHdXR0ZXJzO1xuICAgIH1cblxuICAgIHNldCBoaWRlR3V0dGVycyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9oaWRlR3V0dGVycyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGlkZUd1dHRlcnM6IGJvb2xlYW4gPSBmYWxzZTtcblxuXG4gICAgQElucHV0KClcbiAgICBnZXQgZGlyZWN0aW9uKCk6IERpcmVjdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXJlY3Rpb247XG4gICAgfVxuXG4gICAgc2V0IGRpcmVjdGlvbihkaXJlY3Rpb246IERpcmVjdGlvbikge1xuICAgICAgICB0aGlzLl9kaXJlY3Rpb24gPSBkaXJlY3Rpb247XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlyZWN0aW9uOiBEaXJlY3Rpb247XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cblxuICAgIHNldCBkaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShkaXNhYmxlZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuXG4gICAgQElucHV0KClcbiAgICBnZXQgdXNlR2hvc3QoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl91c2VHaG9zdDtcbiAgICB9XG5cbiAgICBzZXQgdXNlR2hvc3QodXNlR2hvc3Q6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fdXNlR2hvc3QgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodXNlR2hvc3QpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3VzZUdob3N0OiBib29sZWFuID0gZmFsc2U7XG5cblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGd1dHRlclNpemUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2d1dHRlclNpemU7XG4gICAgfVxuXG4gICAgc2V0IGd1dHRlclNpemUoZ3V0dGVyU2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHNpemUgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eShndXR0ZXJTaXplKTtcbiAgICAgICAgdGhpcy5fZ3V0dGVyU2l6ZSA9IHNpemUgPiAwID8gc2l6ZSA6IHRoaXMuZ3V0dGVyU2l6ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9ndXR0ZXJTaXplOiBudW1iZXIgPSA2O1xuXG4gICAgZ2V0IHJlc2l6aW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzaXppbmc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVzaXppbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHVibGljIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7fVxuXG4gICAgYWRkQXJlYShhcmVhOiBLYnFTcGxpdHRlckFyZWFEaXJlY3RpdmUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMuYXJlYXMubGVuZ3RoO1xuICAgICAgICBjb25zdCBvcmRlcjogbnVtYmVyID0gaW5kZXggKiB0aGlzLmFyZWFQb3NpdGlvbkRpdmlkZXI7XG4gICAgICAgIGNvbnN0IHNpemU6IG51bWJlciA9IGFyZWEuZ2V0U2l6ZSgpO1xuXG4gICAgICAgIGFyZWEuc2V0T3JkZXIob3JkZXIpO1xuXG4gICAgICAgIHRoaXMuYXJlYXMucHVzaCh7XG4gICAgICAgICAgICBhcmVhLFxuICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICBvcmRlcixcbiAgICAgICAgICAgIGluaXRpYWxTaXplOiBzaXplXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGlyZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmRpcmVjdGlvbiA9IERpcmVjdGlvbi5Ib3Jpem9udGFsO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRTdHlsZShTdHlsZVByb3BlcnR5LkZsZXhEaXJlY3Rpb24sIHRoaXMuaXNWZXJ0aWNhbCgpID8gJ2NvbHVtbicgOiAncm93Jyk7XG4gICAgfVxuXG4gICAgb25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQsIGxlZnRBcmVhSW5kZXg6IG51bWJlciwgcmlnaHRBcmVhSW5kZXg6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkgeyByZXR1cm47IH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGNvbnN0IHN0YXJ0UG9pbnQ6IElQb2ludCA9IHtcbiAgICAgICAgICAgIHg6IGV2ZW50LnNjcmVlblgsXG4gICAgICAgICAgICB5OiBldmVudC5zY3JlZW5ZXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgbGVmdEFyZWEgPSB0aGlzLmFyZWFzW2xlZnRBcmVhSW5kZXhdO1xuICAgICAgICBjb25zdCByaWdodEFyZWEgPSB0aGlzLmFyZWFzW3JpZ2h0QXJlYUluZGV4XTtcblxuICAgICAgICBsZWZ0QXJlYS5pbml0aWFsU2l6ZSA9IGxlZnRBcmVhLmFyZWEuZ2V0U2l6ZSgpO1xuICAgICAgICByaWdodEFyZWEuaW5pdGlhbFNpemUgPSByaWdodEFyZWEuYXJlYS5nZXRTaXplKCk7XG5cbiAgICAgICAgbGV0IGN1cnJlbnRHdXR0ZXI6IEticUd1dHRlckRpcmVjdGl2ZSB8IHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAodGhpcy51c2VHaG9zdCkge1xuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW1hZ2ljLW51bWJlcnNcbiAgICAgICAgICAgIGNvbnN0IGd1dHRlck9yZGVyID0gbGVmdEFyZWFJbmRleCAqIDIgKyAxO1xuICAgICAgICAgICAgY3VycmVudEd1dHRlciA9IHRoaXMuZ3V0dGVycy5maW5kKChndXR0ZXI6IEticUd1dHRlckRpcmVjdGl2ZSkgPT4gZ3V0dGVyLm9yZGVyID09PSBndXR0ZXJPcmRlcik7XG5cbiAgICAgICAgICAgIGlmIChjdXJyZW50R3V0dGVyKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZ3V0dGVyUG9zaXRpb24gPSBjdXJyZW50R3V0dGVyLmdldFBvc2l0aW9uKCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmdob3N0LmRpcmVjdGlvbiA9IGN1cnJlbnRHdXR0ZXIuZGlyZWN0aW9uO1xuICAgICAgICAgICAgICAgIHRoaXMuZ2hvc3Quc2l6ZSA9IGN1cnJlbnRHdXR0ZXIuc2l6ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmdob3N0LnggPSBndXR0ZXJQb3NpdGlvbi54O1xuICAgICAgICAgICAgICAgIHRoaXMuZ2hvc3QueSA9IGd1dHRlclBvc2l0aW9uLnk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmdob3N0LnZpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3R5bGUoU3R5bGVQcm9wZXJ0eS5DdXJzb3IsIGN1cnJlbnRHdXR0ZXIuZGlyZWN0aW9uID09PSBEaXJlY3Rpb24uVmVydGljYWwgPyAncm93LXJlc2l6ZScgOiAnY29sLXJlc2l6ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5hcmVhcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2l6ZSA9IGl0ZW0uYXJlYS5nZXRTaXplKCk7XG5cbiAgICAgICAgICAgICAgICBpdGVtLmFyZWEuZGlzYWJsZUZsZXgoKTtcbiAgICAgICAgICAgICAgICBpdGVtLmFyZWEuc2V0U2l6ZShzaXplKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cblxuICAgICAgICB0aGlzLmxpc3RlbmVycy5wdXNoKFxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICAgICAgICAgJ2RvY3VtZW50JyxcbiAgICAgICAgICAgICAgICAnbW91c2V1cCcsXG4gICAgICAgICAgICAgICAgKCkgPT4gdGhpcy5vbk1vdXNlVXAobGVmdEFyZWEsIHJpZ2h0QXJlYSwgY3VycmVudEd1dHRlcilcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxpc3RlbmVycy5wdXNoKFxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICAgICAgICAgICAgICAnZG9jdW1lbnQnLFxuICAgICAgICAgICAgICAgICAgICAnbW91c2Vtb3ZlJyxcbiAgICAgICAgICAgICAgICAgICAgKGU6IE1vdXNlRXZlbnQpID0+IHRoaXMub25Nb3VzZU1vdmUoZSwgc3RhcnRQb2ludCwgbGVmdEFyZWEsIHJpZ2h0QXJlYSwgY3VycmVudEd1dHRlcilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9pc0RyYWdnaW5nID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZW1vdmVBcmVhKGFyZWE6IEticVNwbGl0dGVyQXJlYURpcmVjdGl2ZSk6IHZvaWQge1xuICAgICAgICBsZXQgaW5kZXhUb1JlbW92ZTogbnVtYmVyID0gLTE7XG5cbiAgICAgICAgdGhpcy5hcmVhcy5zb21lKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0uYXJlYSA9PT0gYXJlYSkge1xuICAgICAgICAgICAgICAgIGluZGV4VG9SZW1vdmUgPSBpbmRleDtcblxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChpbmRleFRvUmVtb3ZlID09PSAtMSkgeyByZXR1cm47IH1cblxuICAgICAgICB0aGlzLmFyZWFzLnNwbGljZShpbmRleFRvUmVtb3ZlLCAxKTtcbiAgICB9XG5cbiAgICBpc1ZlcnRpY2FsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXJlY3Rpb24gPT09IERpcmVjdGlvbi5WZXJ0aWNhbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUd1dHRlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ndXR0ZXJzLmZvckVhY2goKGd1dHRlcikgPT4ge1xuICAgICAgICAgICAgaWYgKGd1dHRlci5kcmFnZ2VkKSB7XG4gICAgICAgICAgICAgICAgZ3V0dGVyLmRyYWdnZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTW91c2VNb3ZlKFxuICAgICAgICBldmVudDogTW91c2VFdmVudCxcbiAgICAgICAgc3RhcnRQb2ludDogSVBvaW50LFxuICAgICAgICBsZWZ0QXJlYTogSUFyZWEsXG4gICAgICAgIHJpZ2h0QXJlYTogSUFyZWEsXG4gICAgICAgIGN1cnJlbnRHdXR0ZXI6IEticUd1dHRlckRpcmVjdGl2ZSB8IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgICBpZiAoIXRoaXMuaXNEcmFnZ2luZyB8fCB0aGlzLmRpc2FibGVkKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGNvbnN0IGVuZFBvaW50OiBJUG9pbnQgPSB7XG4gICAgICAgICAgICB4OiBldmVudC5zY3JlZW5YLFxuICAgICAgICAgICAgeTogZXZlbnQuc2NyZWVuWVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuaXNWZXJ0aWNhbCgpXG4gICAgICAgICAgICA/IHN0YXJ0UG9pbnQueSAtIGVuZFBvaW50LnlcbiAgICAgICAgICAgIDogc3RhcnRQb2ludC54IC0gZW5kUG9pbnQueDtcblxuICAgICAgICBpZiAodGhpcy51c2VHaG9zdCAmJiBjdXJyZW50R3V0dGVyKSB7XG4gICAgICAgICAgICBjb25zdCBndXR0ZXJQb3NpdGlvbiA9IGN1cnJlbnRHdXR0ZXIuZ2V0UG9zaXRpb24oKTtcbiAgICAgICAgICAgIGNvbnN0IGxlZnRQb3MgPSBsZWZ0QXJlYS5hcmVhLmdldFBvc2l0aW9uKCk7XG4gICAgICAgICAgICBjb25zdCByaWdodFBvcyA9IHJpZ2h0QXJlYS5hcmVhLmdldFBvc2l0aW9uKCk7XG4gICAgICAgICAgICBjb25zdCByaWdodE1pbiA9IHJpZ2h0QXJlYS5hcmVhLmdldE1pblNpemUoKSB8fCAwO1xuICAgICAgICAgICAgY29uc3QgbGVmdE1pbiA9IGxlZnRBcmVhLmFyZWEuZ2V0TWluU2l6ZSgpIHx8IDA7XG5cbiAgICAgICAgICAgIGNvbnN0IGtleSA9IHRoaXMuaXNWZXJ0aWNhbCgpID8gJ3knIDogJ3gnO1xuXG4gICAgICAgICAgICBjb25zdCBtaW5Qb3MgPSBsZWZ0UG9zW2tleV0gLSBsZWZ0TWluO1xuICAgICAgICAgICAgY29uc3QgbWF4UG9zID0gcmlnaHRQb3Nba2V5XSArIChyaWdodEFyZWEuYXJlYS5nZXRTaXplKCkgfHwgMCkgLSByaWdodE1pbiAtIGN1cnJlbnRHdXR0ZXIuc2l6ZTtcbiAgICAgICAgICAgIGNvbnN0IG5ld1BvcyA9IGd1dHRlclBvc2l0aW9uW2tleV0gLSBvZmZzZXQ7XG5cbiAgICAgICAgICAgIHRoaXMuZ2hvc3Rba2V5XSA9IG5ld1BvcyA8IG1pblBvcyA/IG1pblBvcyA6IE1hdGgubWluKG5ld1BvcywgbWF4UG9zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgdGhpcy5yZXNpemVBcmVhcyhsZWZ0QXJlYSwgcmlnaHRBcmVhLCBvZmZzZXQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNpemVBcmVhcyhsZWZ0QXJlYTogSUFyZWEsIHJpZ2h0QXJlYTogSUFyZWEsIHNpemVPZmZzZXQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBuZXdMZWZ0QXJlYVNpemUgPSBsZWZ0QXJlYS5pbml0aWFsU2l6ZSAtIHNpemVPZmZzZXQ7XG4gICAgICAgIGNvbnN0IG5ld1JpZ2h0QXJlYVNpemUgPSByaWdodEFyZWEuaW5pdGlhbFNpemUgKyBzaXplT2Zmc2V0O1xuXG4gICAgICAgIGNvbnN0IG1pbkxlZnRBcmVhU2l6ZSA9IGxlZnRBcmVhLmFyZWEuZ2V0TWluU2l6ZSgpO1xuICAgICAgICBjb25zdCBtaW5SaWdodEFyZWFTaXplID0gcmlnaHRBcmVhLmFyZWEuZ2V0TWluU2l6ZSgpO1xuXG4gICAgICAgIGlmIChuZXdMZWZ0QXJlYVNpemUgPCBtaW5MZWZ0QXJlYVNpemUgfHwgbmV3UmlnaHRBcmVhU2l6ZSA8IG1pblJpZ2h0QXJlYVNpemUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChuZXdMZWZ0QXJlYVNpemUgPD0gMCkge1xuICAgICAgICAgICAgbGVmdEFyZWEuYXJlYS5zZXRTaXplKDApO1xuICAgICAgICAgICAgcmlnaHRBcmVhLmFyZWEuc2V0U2l6ZShyaWdodEFyZWEuaW5pdGlhbFNpemUgKyBsZWZ0QXJlYS5pbml0aWFsU2l6ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAobmV3UmlnaHRBcmVhU2l6ZSA8PSAwKSB7XG4gICAgICAgICAgICBsZWZ0QXJlYS5hcmVhLnNldFNpemUocmlnaHRBcmVhLmluaXRpYWxTaXplICsgbGVmdEFyZWEuaW5pdGlhbFNpemUpO1xuICAgICAgICAgICAgcmlnaHRBcmVhLmFyZWEuc2V0U2l6ZSgwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxlZnRBcmVhLmFyZWEuc2V0U2l6ZShuZXdMZWZ0QXJlYVNpemUpO1xuICAgICAgICAgICAgcmlnaHRBcmVhLmFyZWEuc2V0U2l6ZShuZXdSaWdodEFyZWFTaXplKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25Nb3VzZVVwKFxuICAgICAgICBsZWZ0QXJlYTogSUFyZWEsXG4gICAgICAgIHJpZ2h0QXJlYTogSUFyZWEsXG4gICAgICAgIGN1cnJlbnRHdXR0ZXI6IEticUd1dHRlckRpcmVjdGl2ZSB8IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgICB3aGlsZSAodGhpcy5saXN0ZW5lcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgdW5zdWJzY3JpYmUgPSB0aGlzLmxpc3RlbmVycy5wb3AoKTtcblxuICAgICAgICAgICAgaWYgKHVuc3Vic2NyaWJlKSB7XG4gICAgICAgICAgICAgICAgdW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnVzZUdob3N0ICYmIGN1cnJlbnRHdXR0ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGd1dHRlclBvc2l0aW9uID0gY3VycmVudEd1dHRlci5nZXRQb3NpdGlvbigpO1xuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy5naG9zdC5kaXJlY3Rpb24gPT09IERpcmVjdGlvbi5WZXJ0aWNhbCA/XG4gICAgICAgICAgICAgICAgZ3V0dGVyUG9zaXRpb24ueSAtIHRoaXMuZ2hvc3QueSA6XG4gICAgICAgICAgICAgICAgZ3V0dGVyUG9zaXRpb24ueCAtIHRoaXMuZ2hvc3QueDtcbiAgICAgICAgICAgIHRoaXMucmVzaXplQXJlYXMobGVmdEFyZWEsIHJpZ2h0QXJlYSwgb2Zmc2V0KTtcbiAgICAgICAgICAgIHRoaXMuZ2hvc3QudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zZXRTdHlsZShTdHlsZVByb3BlcnR5LkN1cnNvciwgJ3Vuc2V0Jyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faXNEcmFnZ2luZyA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMudXBkYXRlR3V0dGVyKCk7XG5cbiAgICAgICAgdGhpcy5ndXR0ZXJQb3NpdGlvbkNoYW5nZS5lbWl0KCk7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFN0eWxlKHByb3BlcnR5OiBTdHlsZVByb3BlcnR5LCB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHByb3BlcnR5LCB2YWx1ZSk7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1trYnEtc3BsaXR0ZXItYXJlYV0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtc3BsaXR0ZXItYXJlYScsXG4gICAgICAgICdbY2xhc3Mua2JxLXNwbGl0dGVyLWFyZWFfcmVzaXppbmddJzogJ2lzUmVzaXppbmcoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticVNwbGl0dGVyQXJlYURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBAT3V0cHV0KCkgc2l6ZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBzcGxpdHRlcjogS2JxU3BsaXR0ZXJDb21wb25lbnRcbiAgICApIHt9XG5cbiAgICBpc1Jlc2l6aW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zcGxpdHRlci5pc0RyYWdnaW5nO1xuICAgIH1cblxuICAgIGRpc2FibGVGbGV4KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZmxleCcpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNwbGl0dGVyLmFkZEFyZWEodGhpcyk7XG5cbiAgICAgICAgdGhpcy5yZW1vdmVTdHlsZShTdHlsZVByb3BlcnR5Lk1heFdpZHRoKTtcblxuICAgICAgICBpZiAodGhpcy5zcGxpdHRlci5kaXJlY3Rpb24gPT09IERpcmVjdGlvbi5WZXJ0aWNhbCkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdHlsZShTdHlsZVByb3BlcnR5LldpZHRoLCAnMTAwJScpO1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVTdHlsZShTdHlsZVByb3BlcnR5LkhlaWdodCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0eWxlKFN0eWxlUHJvcGVydHkuSGVpZ2h0LCAnMTAwJScpO1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVTdHlsZShTdHlsZVByb3BlcnR5LldpZHRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3BsaXR0ZXIuZ3V0dGVyUG9zaXRpb25DaGFuZ2VcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy5lbWl0U2l6ZUNoYW5nZSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3BsaXR0ZXIucmVtb3ZlQXJlYSh0aGlzKTtcbiAgICB9XG5cbiAgICBzZXRPcmRlcihvcmRlcjogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0U3R5bGUoU3R5bGVQcm9wZXJ0eS5PcmRlciwgb3JkZXIpO1xuICAgIH1cblxuICAgIHNldFNpemUoc2l6ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChpc05hTihzaXplKSkgeyByZXR1cm47IH1cblxuICAgICAgICB0aGlzLnNldFN0eWxlKHRoaXMuZ2V0U2l6ZVByb3BlcnR5KCksIGNvZXJjZUNzc1BpeGVsVmFsdWUoY29lcmNlTnVtYmVyUHJvcGVydHkoc2l6ZSkpKTtcbiAgICB9XG5cbiAgICBnZXRTaXplKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFt0aGlzLmdldE9mZnNldFNpemVQcm9wZXJ0eSgpXTtcbiAgICB9XG5cbiAgICBnZXRQb3NpdGlvbigpOiBJUG9pbnQge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdCxcbiAgICAgICAgICAgIHk6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldE1pblNpemUoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3Qgc3R5bGVzID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoc3R5bGVzW3RoaXMuZ2V0TWluU2l6ZVByb3BlcnR5KCldKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmVydGljYWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNwbGl0dGVyLmRpcmVjdGlvbiA9PT0gRGlyZWN0aW9uLlZlcnRpY2FsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TWluU2l6ZVByb3BlcnR5KCk6IFN0eWxlUHJvcGVydHkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ZlcnRpY2FsKClcbiAgICAgICAgICAgID8gU3R5bGVQcm9wZXJ0eS5NaW5IZWlnaHRcbiAgICAgICAgICAgIDogU3R5bGVQcm9wZXJ0eS5NaW5XaWR0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9mZnNldFNpemVQcm9wZXJ0eSgpOiBTdHlsZVByb3BlcnR5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWZXJ0aWNhbCgpXG4gICAgICAgICAgICA/IFN0eWxlUHJvcGVydHkuT2Zmc2V0SGVpZ2h0XG4gICAgICAgICAgICA6IFN0eWxlUHJvcGVydHkuT2Zmc2V0V2lkdGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTaXplUHJvcGVydHkoKTogU3R5bGVQcm9wZXJ0eSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmVydGljYWwoKVxuICAgICAgICAgICAgPyBTdHlsZVByb3BlcnR5LkhlaWdodFxuICAgICAgICAgICAgOiBTdHlsZVByb3BlcnR5LldpZHRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U3R5bGUoc3R5bGU6IFN0eWxlUHJvcGVydHksIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgc3R5bGUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZVN0eWxlKHN0eWxlOiBTdHlsZVByb3BlcnR5KSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHN0eWxlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGVtaXRTaXplQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnNpemVDaGFuZ2UuZW1pdCh0aGlzLmdldFNpemUoKSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG48bmctdGVtcGxhdGUgbmdGb3IgbGV0LWFyZWEgW25nRm9yT2ZdPVwiYXJlYXNcIiBsZXQtaW5kZXg9XCJpbmRleFwiIGxldC1sYXN0PVwibGFzdFwiPlxuICAgIDxrYnEtZ3V0dGVyICpuZ0lmPVwibGFzdCA9PT0gZmFsc2VcIlxuICAgICAgICAgICAgICAgW2RpcmVjdGlvbl09XCJkaXJlY3Rpb25cIlxuICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbnVsbFwiXG4gICAgICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJoaWRlR3V0dGVycyA/ICdub25lJyA6ICdmbGV4J1wiXG4gICAgICAgICAgICAgICBbc2l6ZV09XCJndXR0ZXJTaXplXCJcbiAgICAgICAgICAgICAgIFtvcmRlcl09XCJpbmRleCAqIDIgKyAxXCJcbiAgICAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25Nb3VzZURvd24oJGV2ZW50LCBpbmRleCwgaW5kZXggKyAxKVwiPlxuICAgIDwva2JxLWd1dHRlcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxrYnEtZ3V0dGVyLWdob3N0ICpuZ0lmPVwidXNlR2hvc3RcIj48L2ticS1ndXR0ZXItZ2hvc3Q+XG4iXX0=
|
|
492
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9zcGxpdHRlci9zcGxpdHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3NwbGl0dGVyL3NwbGl0dGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pHLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBR04sTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDakIsVUFBVSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQStCcEMsTUFBTSxDQUFOLElBQVksU0FHWDtBQUhELFdBQVksU0FBUztJQUNqQixzQ0FBeUIsQ0FBQTtJQUN6QixrQ0FBcUIsQ0FBQTtBQUN6QixDQUFDLEVBSFcsU0FBUyxLQUFULFNBQVMsUUFHcEI7QUFXRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzNCLElBQ0ksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxTQUFTLENBQUMsU0FBb0I7UUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUlELElBQ0ksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsS0FBYTtRQUNu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RUFBRSxDQUFDLENBQUMsNENBQXlCLENBQUMsd0NBQXVCLENBQUM7SUFDaEYsQ0FBQztJQUVPLHFCQUFxQjtRQUN6QixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLGlEQUE0QixDQUFDLDhDQUEwQixDQUFDO0lBQ3RGLENBQUM7SUFFTyxlQUFlO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMscUNBQXNCLENBQUMsa0NBQW9CLENBQUM7SUFDMUUsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFvQixFQUFFLEtBQXNCO1FBQ3pELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQW9CO1FBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BFLENBQUM7aUlBeEZRLHdCQUF3QixxRUFNckIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO3FIQU56Qyx3QkFBd0I7OzJGQUF4Qix3QkFBd0I7a0JBUHBDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxtQkFBbUI7d0JBQzFCLG9DQUFvQyxFQUFFLGNBQWM7cUJBQ3ZEO2lCQUNKOzswQkFPUSxNQUFNOzJCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzt5Q0FMeEMsVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlQ3NzUGl4ZWxWYWx1ZSwgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGZvcndhcmRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW50ZXJmYWNlIElBcmVhIHtcbiAgICBhcmVhOiBLYnFTcGxpdHRlckFyZWFEaXJlY3RpdmU7XG4gICAgaW5kZXg6IG51bWJlcjtcbiAgICBvcmRlcjogbnVtYmVyO1xuICAgIGluaXRpYWxTaXplOiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBJUG9pbnQge1xuICAgIHg6IG51bWJlcjtcbiAgICB5OiBudW1iZXI7XG59XG5cbmNvbnN0IGVudW0gU3R5bGVQcm9wZXJ0eSB7XG4gICAgRmxleCA9ICdmbGV4JyxcbiAgICBGbGV4QmFzaXMgPSAnZmxleC1iYXNpcycsXG4gICAgRmxleERpcmVjdGlvbiA9ICdmbGV4LWRpcmVjdGlvbicsXG4gICAgSGVpZ2h0ID0gJ2hlaWdodCcsXG4gICAgTWF4V2lkdGggPSAnbWF4LXdpZHRoJyxcbiAgICBNaW5IZWlnaHQgPSAnbWluLWhlaWdodCcsXG4gICAgTWluV2lkdGggPSAnbWluV2lkdGgnLFxuICAgIE9mZnNldEhlaWdodCA9ICdvZmZzZXRIZWlnaHQnLFxuICAgIE9mZnNldFdpZHRoID0gJ29mZnNldFdpZHRoJyxcbiAgICBPcmRlciA9ICdvcmRlcicsXG4gICAgV2lkdGggPSAnd2lkdGgnLFxuICAgIFRvcCA9ICd0b3AnLFxuICAgIExlZnQgPSAnbGVmdCcsXG4gICAgQ3Vyc29yID0gJ2N1cnNvcidcbn1cblxuZXhwb3J0IGVudW0gRGlyZWN0aW9uIHtcbiAgICBIb3Jpem9udGFsID0gJ2hvcml6b250YWwnLFxuICAgIFZlcnRpY2FsID0gJ3ZlcnRpY2FsJ1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2ticS1ndXR0ZXInLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtZ3V0dGVyJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtZ3V0dGVyX3ZlcnRpY2FsXSc6ICdpc1ZlcnRpY2FsJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtZ3V0dGVyX2RyYWdnZWRdJzogJ2RyYWdnZWQnLFxuICAgICAgICAnKG1vdXNlZG93biknOiAnZHJhZ2dlZCA9IHRydWUnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFHdXR0ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGRpcmVjdGlvbigpOiBEaXJlY3Rpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlyZWN0aW9uO1xuICAgIH1cblxuICAgIHNldCBkaXJlY3Rpb24oZGlyZWN0aW9uOiBEaXJlY3Rpb24pIHtcbiAgICAgICAgdGhpcy5fZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2RpcmVjdGlvbjogRGlyZWN0aW9uID0gRGlyZWN0aW9uLlZlcnRpY2FsO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgb3JkZXIoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29yZGVyO1xuICAgIH1cblxuICAgIHNldCBvcmRlcihvcmRlcjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX29yZGVyID0gY29lcmNlTnVtYmVyUHJvcGVydHkob3JkZXIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX29yZGVyOiBudW1iZXIgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgc2l6ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2l6ZTtcbiAgICB9XG5cbiAgICBzZXQgc2l6ZShzaXplOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fc2l6ZSA9IGNvZXJjZU51bWJlclByb3BlcnR5KHNpemUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NpemU6IG51bWJlciA9IDY7XG5cbiAgICBnZXQgaXNWZXJ0aWNhbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpcmVjdGlvbiA9PT0gRGlyZWN0aW9uLlZlcnRpY2FsO1xuICAgIH1cblxuICAgIGRyYWdnZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFN0eWxlKFN0eWxlUHJvcGVydHkuRmxleEJhc2lzLCBjb2VyY2VDc3NQaXhlbFZhbHVlKHRoaXMuc2l6ZSkpO1xuICAgICAgICB0aGlzLnNldFN0eWxlKHRoaXMuaXNWZXJ0aWNhbCA/IFN0eWxlUHJvcGVydHkuSGVpZ2h0IDogU3R5bGVQcm9wZXJ0eS5XaWR0aCwgY29lcmNlQ3NzUGl4ZWxWYWx1ZSh0aGlzLnNpemUpKTtcbiAgICAgICAgdGhpcy5zZXRTdHlsZShTdHlsZVByb3BlcnR5Lk9yZGVyLCB0aGlzLm9yZGVyKTtcblxuICAgICAgICBpZiAoIXRoaXMuaXNWZXJ0aWNhbCkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdHlsZShTdHlsZVByb3BlcnR5LkhlaWdodCwgJzEwMCUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGZpeCBJRSBpc3N1ZSB3aXRoIGd1dHRlciBpY29uLiBmbGV4LWRpcmVjdGlvbiBpcyByZXF1aXJlZCBmb3IgZmxleCBhbGlnbm1lbnQgb3B0aW9uc1xuICAgICAgICB0aGlzLnNldFN0eWxlKFN0eWxlUHJvcGVydHkuRmxleERpcmVjdGlvbiwgdGhpcy5pc1ZlcnRpY2FsID8gJ3JvdycgOiAnY29sdW1uJyk7XG4gICAgfVxuXG4gICAgZ2V0UG9zaXRpb24oKTogSVBvaW50IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHg6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQsXG4gICAgICAgICAgICB5OiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRUb3BcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFN0eWxlKHByb3BlcnR5OiBTdHlsZVByb3BlcnR5LCB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHByb3BlcnR5LCB2YWx1ZSk7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2ticS1ndXR0ZXItZ2hvc3QnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtZ3V0dGVyLWdob3N0JyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtZ3V0dGVyLWdob3N0X3ZlcnRpY2FsXSc6ICdpc1ZlcnRpY2FsJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtZ3V0dGVyLWdob3N0X3Zpc2libGVdJzogJ3Zpc2libGUnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFHdXR0ZXJHaG9zdERpcmVjdGl2ZSB7XG4gICAgQElucHV0KCkgdmlzaWJsZTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3g7XG4gICAgfVxuXG4gICAgc2V0IHgoeDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX3ggPSB4O1xuICAgICAgICB0aGlzLnNldFN0eWxlKFN0eWxlUHJvcGVydHkuTGVmdCwgY29lcmNlQ3NzUGl4ZWxWYWx1ZSh4KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfeDogbnVtYmVyID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHkoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3k7XG4gICAgfVxuXG4gICAgc2V0IHkoeTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICB0aGlzLnNldFN0eWxlKFN0eWxlUHJvcGVydHkuVG9wLCBjb2VyY2VDc3NQaXhlbFZhbHVlKHkpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF95OiBudW1iZXIgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgZGlyZWN0aW9uKCk6IERpcmVjdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXJlY3Rpb247XG4gICAgfVxuXG4gICAgc2V0IGRpcmVjdGlvbihkaXJlY3Rpb246IERpcmVjdGlvbikge1xuICAgICAgICB0aGlzLl9kaXJlY3Rpb24gPSBkaXJlY3Rpb247XG4gICAgICAgIHRoaXMudXBkYXRlRGltZW5zaW9ucygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2RpcmVjdGlvbjogRGlyZWN0aW9uID0gRGlyZWN0aW9uLlZlcnRpY2FsO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgc2l6ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2l6ZTtcbiAgICB9XG5cbiAgICBzZXQgc2l6ZShzaXplOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fc2l6ZSA9IGNvZXJjZU51bWJlclByb3BlcnR5KHNpemUpO1xuICAgICAgICB0aGlzLnVwZGF0ZURpbWVuc2lvbnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zaXplOiBudW1iZXIgPSA2O1xuXG4gICAgZ2V0IGlzVmVydGljYWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpcmVjdGlvbiA9PT0gRGlyZWN0aW9uLlZlcnRpY2FsO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICAgICkge31cblxuICAgIHByaXZhdGUgdXBkYXRlRGltZW5zaW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRTdHlsZSh0aGlzLmlzVmVydGljYWwgPyBTdHlsZVByb3BlcnR5LldpZHRoIDogU3R5bGVQcm9wZXJ0eS5IZWlnaHQsICcxMDAlJyk7XG4gICAgICAgIHRoaXMuc2V0U3R5bGUodGhpcy5pc1ZlcnRpY2FsID8gU3R5bGVQcm9wZXJ0eS5IZWlnaHQgOiBTdHlsZVByb3BlcnR5LldpZHRoLCBjb2VyY2VDc3NQaXhlbFZhbHVlKHRoaXMuc2l6ZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U3R5bGUocHJvcGVydHk6IFN0eWxlUHJvcGVydHksIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgcHJvcGVydHksIHZhbHVlKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2JxLXNwbGl0dGVyJyxcbiAgICBleHBvcnRBczogJ2ticVNwbGl0dGVyJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLXNwbGl0dGVyJ1xuICAgIH0sXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgc3R5bGVVcmxzOiBbJ3NwbGl0dGVyLnNjc3MnXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3BsaXR0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgS2JxU3BsaXR0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBPdXRwdXQoKSBndXR0ZXJQb3NpdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgYXJlYXM6IElBcmVhW10gPSBbXTtcblxuICAgIEBWaWV3Q2hpbGRyZW4oS2JxR3V0dGVyRGlyZWN0aXZlKSBndXR0ZXJzOiBRdWVyeUxpc3Q8S2JxR3V0dGVyRGlyZWN0aXZlPjtcbiAgICBAVmlld0NoaWxkKEticUd1dHRlckdob3N0RGlyZWN0aXZlKSBnaG9zdDogS2JxR3V0dGVyR2hvc3REaXJlY3RpdmU7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gS2JxU3BsaXR0ZXJBcmVhRGlyZWN0aXZlKSkgYXJlYVJlZnM6IFF1ZXJ5TGlzdDxLYnFTcGxpdHRlckFyZWFEaXJlY3RpdmU+O1xuXG4gICAgZ2V0IGlzRHJhZ2dpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0RyYWdnaW5nO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0RyYWdnaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGFyZWFQb3NpdGlvbkRpdmlkZXI6IG51bWJlciA9IDI7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsaXN0ZW5lcnM6ICgoKSA9PiB2b2lkKVtdID0gW107XG5cbiAgICBwcml2YXRlIGFyZWFzQ2hhbmdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb24uRU1QVFk7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBoaWRlR3V0dGVycygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZGVHdXR0ZXJzO1xuICAgIH1cblxuICAgIHNldCBoaWRlR3V0dGVycyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9oaWRlR3V0dGVycyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGlkZUd1dHRlcnM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGRpcmVjdGlvbigpOiBEaXJlY3Rpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlyZWN0aW9uO1xuICAgIH1cblxuICAgIHNldCBkaXJlY3Rpb24oZGlyZWN0aW9uOiBEaXJlY3Rpb24pIHtcbiAgICAgICAgdGhpcy5fZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2RpcmVjdGlvbjogRGlyZWN0aW9uO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBzZXQgZGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoZGlzYWJsZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCB1c2VHaG9zdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZUdob3N0O1xuICAgIH1cblxuICAgIHNldCB1c2VHaG9zdCh1c2VHaG9zdDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl91c2VHaG9zdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh1c2VHaG9zdCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXNlR2hvc3Q6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGd1dHRlclNpemUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2d1dHRlclNpemU7XG4gICAgfVxuXG4gICAgc2V0IGd1dHRlclNpemUoZ3V0dGVyU2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHNpemUgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eShndXR0ZXJTaXplKTtcbiAgICAgICAgdGhpcy5fZ3V0dGVyU2l6ZSA9IHNpemUgPiAwID8gc2l6ZSA6IHRoaXMuZ3V0dGVyU2l6ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9ndXR0ZXJTaXplOiBudW1iZXIgPSA2O1xuXG4gICAgZ2V0IHJlc2l6aW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzaXppbmc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVzaXppbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHVibGljIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7fVxuXG4gICAgYWRkQXJlYShhcmVhOiBLYnFTcGxpdHRlckFyZWFEaXJlY3RpdmUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hcmVhcy5wdXNoKHRoaXMubWFwQW5kT3JkZXJBcmVhKGFyZWEsIHRoaXMuYXJlYXMubGVuZ3RoKSk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGlyZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmRpcmVjdGlvbiA9IERpcmVjdGlvbi5Ib3Jpem9udGFsO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRTdHlsZShTdHlsZVByb3BlcnR5LkZsZXhEaXJlY3Rpb24sIHRoaXMuaXNWZXJ0aWNhbCgpID8gJ2NvbHVtbicgOiAncm93Jyk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLmFyZWFzQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5hcmVhUmVmcy5jaGFuZ2VzLnN1YnNjcmliZSgoZGF0YTogUXVlcnlMaXN0PEticVNwbGl0dGVyQXJlYURpcmVjdGl2ZT4pID0+IHtcbiAgICAgICAgICAgIHRoaXMuYXJlYXMgPSBkYXRhLm1hcCh0aGlzLm1hcEFuZE9yZGVyQXJlYSk7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5hcmVhc0NoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50LCBsZWZ0QXJlYUluZGV4OiBudW1iZXIsIHJpZ2h0QXJlYUluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgY29uc3Qgc3RhcnRQb2ludDogSVBvaW50ID0ge1xuICAgICAgICAgICAgeDogZXZlbnQuc2NyZWVuWCxcbiAgICAgICAgICAgIHk6IGV2ZW50LnNjcmVlbllcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBsZWZ0QXJlYSA9IHRoaXMuYXJlYXNbbGVmdEFyZWFJbmRleF07XG4gICAgICAgIGNvbnN0IHJpZ2h0QXJlYSA9IHRoaXMuYXJlYXNbcmlnaHRBcmVhSW5kZXhdO1xuXG4gICAgICAgIGxlZnRBcmVhLmluaXRpYWxTaXplID0gbGVmdEFyZWEuYXJlYS5nZXRTaXplKCk7XG4gICAgICAgIHJpZ2h0QXJlYS5pbml0aWFsU2l6ZSA9IHJpZ2h0QXJlYS5hcmVhLmdldFNpemUoKTtcblxuICAgICAgICBsZXQgY3VycmVudEd1dHRlcjogS2JxR3V0dGVyRGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmICh0aGlzLnVzZUdob3N0KSB7XG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tbWFnaWMtbnVtYmVyc1xuICAgICAgICAgICAgY29uc3QgZ3V0dGVyT3JkZXIgPSBsZWZ0QXJlYUluZGV4ICogMiArIDE7XG4gICAgICAgICAgICBjdXJyZW50R3V0dGVyID0gdGhpcy5ndXR0ZXJzLmZpbmQoKGd1dHRlcjogS2JxR3V0dGVyRGlyZWN0aXZlKSA9PiBndXR0ZXIub3JkZXIgPT09IGd1dHRlck9yZGVyKTtcblxuICAgICAgICAgICAgaWYgKGN1cnJlbnRHdXR0ZXIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBndXR0ZXJQb3NpdGlvbiA9IGN1cnJlbnRHdXR0ZXIuZ2V0UG9zaXRpb24oKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZ2hvc3QuZGlyZWN0aW9uID0gY3VycmVudEd1dHRlci5kaXJlY3Rpb247XG4gICAgICAgICAgICAgICAgdGhpcy5naG9zdC5zaXplID0gY3VycmVudEd1dHRlci5zaXplO1xuICAgICAgICAgICAgICAgIHRoaXMuZ2hvc3QueCA9IGd1dHRlclBvc2l0aW9uLng7XG4gICAgICAgICAgICAgICAgdGhpcy5naG9zdC55ID0gZ3V0dGVyUG9zaXRpb24ueTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZ2hvc3QudmlzaWJsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdHlsZShcbiAgICAgICAgICAgICAgICAgICAgU3R5bGVQcm9wZXJ0eS5DdXJzb3IsXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRHdXR0ZXIuZGlyZWN0aW9uID09PSBEaXJlY3Rpb24uVmVydGljYWwgPyAncm93LXJlc2l6ZScgOiAnY29sLXJlc2l6ZSdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5hcmVhcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2l6ZSA9IGl0ZW0uYXJlYS5nZXRTaXplKCk7XG5cbiAgICAgICAgICAgICAgICBpdGVtLmFyZWEuZGlzYWJsZUZsZXgoKTtcbiAgICAgICAgICAgICAgICBpdGVtLmFyZWEuc2V0U2l6ZShzaXplKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaChcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdtb3VzZXVwJywgKCkgPT4gdGhpcy5vbk1vdXNlVXAobGVmdEFyZWEsIHJpZ2h0QXJlYSwgY3VycmVudEd1dHRlcikpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaChcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnbW91c2Vtb3ZlJywgKGU6IE1vdXNlRXZlbnQpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25Nb3VzZU1vdmUoZSwgc3RhcnRQb2ludCwgbGVmdEFyZWEsIHJpZ2h0QXJlYSwgY3VycmVudEd1dHRlcilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9pc0RyYWdnaW5nID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZW1vdmVBcmVhKGFyZWE6IEticVNwbGl0dGVyQXJlYURpcmVjdGl2ZSk6IHZvaWQge1xuICAgICAgICBsZXQgaW5kZXhUb1JlbW92ZTogbnVtYmVyID0gLTE7XG5cbiAgICAgICAgdGhpcy5hcmVhcy5zb21lKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0uYXJlYSA9PT0gYXJlYSkge1xuICAgICAgICAgICAgICAgIGluZGV4VG9SZW1vdmUgPSBpbmRleDtcblxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChpbmRleFRvUmVtb3ZlID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hcmVhcy5zcGxpY2UoaW5kZXhUb1JlbW92ZSwgMSk7XG4gICAgfVxuXG4gICAgaXNWZXJ0aWNhbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlyZWN0aW9uID09PSBEaXJlY3Rpb24uVmVydGljYWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYXBBbmRPcmRlckFyZWEgPSAoYXJlYTogS2JxU3BsaXR0ZXJBcmVhRGlyZWN0aXZlLCBpbmRleDogbnVtYmVyKTogSUFyZWEgPT4ge1xuICAgICAgICBjb25zdCBvcmRlciA9IGluZGV4ICogdGhpcy5hcmVhUG9zaXRpb25EaXZpZGVyO1xuICAgICAgICBhcmVhLnNldE9yZGVyKG9yZGVyKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYXJlYSxcbiAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgb3JkZXIsXG4gICAgICAgICAgICBpbml0aWFsU2l6ZTogYXJlYS5nZXRTaXplKClcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSB1cGRhdGVHdXR0ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ3V0dGVycy5mb3JFYWNoKChndXR0ZXIpID0+IHtcbiAgICAgICAgICAgIGlmIChndXR0ZXIuZHJhZ2dlZCkge1xuICAgICAgICAgICAgICAgIGd1dHRlci5kcmFnZ2VkID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbk1vdXNlTW92ZShcbiAgICAgICAgZXZlbnQ6IE1vdXNlRXZlbnQsXG4gICAgICAgIHN0YXJ0UG9pbnQ6IElQb2ludCxcbiAgICAgICAgbGVmdEFyZWE6IElBcmVhLFxuICAgICAgICByaWdodEFyZWE6IElBcmVhLFxuICAgICAgICBjdXJyZW50R3V0dGVyOiBLYnFHdXR0ZXJEaXJlY3RpdmUgfCB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRHJhZ2dpbmcgfHwgdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZW5kUG9pbnQ6IElQb2ludCA9IHtcbiAgICAgICAgICAgIHg6IGV2ZW50LnNjcmVlblgsXG4gICAgICAgICAgICB5OiBldmVudC5zY3JlZW5ZXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy5pc1ZlcnRpY2FsKCkgPyBzdGFydFBvaW50LnkgLSBlbmRQb2ludC55IDogc3RhcnRQb2ludC54IC0gZW5kUG9pbnQueDtcblxuICAgICAgICBpZiAodGhpcy51c2VHaG9zdCAmJiBjdXJyZW50R3V0dGVyKSB7XG4gICAgICAgICAgICBjb25zdCBndXR0ZXJQb3NpdGlvbiA9IGN1cnJlbnRHdXR0ZXIuZ2V0UG9zaXRpb24oKTtcbiAgICAgICAgICAgIGNvbnN0IGxlZnRQb3MgPSBsZWZ0QXJlYS5hcmVhLmdldFBvc2l0aW9uKCk7XG4gICAgICAgICAgICBjb25zdCByaWdodFBvcyA9IHJpZ2h0QXJlYS5hcmVhLmdldFBvc2l0aW9uKCk7XG4gICAgICAgICAgICBjb25zdCByaWdodE1pbiA9IHJpZ2h0QXJlYS5hcmVhLmdldE1pblNpemUoKSB8fCAwO1xuICAgICAgICAgICAgY29uc3QgbGVmdE1pbiA9IGxlZnRBcmVhLmFyZWEuZ2V0TWluU2l6ZSgpIHx8IDA7XG5cbiAgICAgICAgICAgIGNvbnN0IGtleSA9IHRoaXMuaXNWZXJ0aWNhbCgpID8gJ3knIDogJ3gnO1xuXG4gICAgICAgICAgICBjb25zdCBtaW5Qb3MgPSBsZWZ0UG9zW2tleV0gLSBsZWZ0TWluO1xuICAgICAgICAgICAgY29uc3QgbWF4UG9zID0gcmlnaHRQb3Nba2V5XSArIChyaWdodEFyZWEuYXJlYS5nZXRTaXplKCkgfHwgMCkgLSByaWdodE1pbiAtIGN1cnJlbnRHdXR0ZXIuc2l6ZTtcbiAgICAgICAgICAgIGNvbnN0IG5ld1BvcyA9IGd1dHRlclBvc2l0aW9uW2tleV0gLSBvZmZzZXQ7XG5cbiAgICAgICAgICAgIHRoaXMuZ2hvc3Rba2V5XSA9IG5ld1BvcyA8IG1pblBvcyA/IG1pblBvcyA6IE1hdGgubWluKG5ld1BvcywgbWF4UG9zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVzaXplQXJlYXMobGVmdEFyZWEsIHJpZ2h0QXJlYSwgb2Zmc2V0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzaXplQXJlYXMobGVmdEFyZWE6IElBcmVhLCByaWdodEFyZWE6IElBcmVhLCBzaXplT2Zmc2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV3TGVmdEFyZWFTaXplID0gbGVmdEFyZWEuaW5pdGlhbFNpemUgLSBzaXplT2Zmc2V0O1xuICAgICAgICBjb25zdCBuZXdSaWdodEFyZWFTaXplID0gcmlnaHRBcmVhLmluaXRpYWxTaXplICsgc2l6ZU9mZnNldDtcblxuICAgICAgICBjb25zdCBtaW5MZWZ0QXJlYVNpemUgPSBsZWZ0QXJlYS5hcmVhLmdldE1pblNpemUoKTtcbiAgICAgICAgY29uc3QgbWluUmlnaHRBcmVhU2l6ZSA9IHJpZ2h0QXJlYS5hcmVhLmdldE1pblNpemUoKTtcblxuICAgICAgICBpZiAobmV3TGVmdEFyZWFTaXplIDwgbWluTGVmdEFyZWFTaXplIHx8IG5ld1JpZ2h0QXJlYVNpemUgPCBtaW5SaWdodEFyZWFTaXplKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZiAobmV3TGVmdEFyZWFTaXplIDw9IDApIHtcbiAgICAgICAgICAgIGxlZnRBcmVhLmFyZWEuc2V0U2l6ZSgwKTtcbiAgICAgICAgICAgIHJpZ2h0QXJlYS5hcmVhLnNldFNpemUocmlnaHRBcmVhLmluaXRpYWxTaXplICsgbGVmdEFyZWEuaW5pdGlhbFNpemUpO1xuICAgICAgICB9IGVsc2UgaWYgKG5ld1JpZ2h0QXJlYVNpemUgPD0gMCkge1xuICAgICAgICAgICAgbGVmdEFyZWEuYXJlYS5zZXRTaXplKHJpZ2h0QXJlYS5pbml0aWFsU2l6ZSArIGxlZnRBcmVhLmluaXRpYWxTaXplKTtcbiAgICAgICAgICAgIHJpZ2h0QXJlYS5hcmVhLnNldFNpemUoMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZWZ0QXJlYS5hcmVhLnNldFNpemUobmV3TGVmdEFyZWFTaXplKTtcbiAgICAgICAgICAgIHJpZ2h0QXJlYS5hcmVhLnNldFNpemUobmV3UmlnaHRBcmVhU2l6ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTW91c2VVcChsZWZ0QXJlYTogSUFyZWEsIHJpZ2h0QXJlYTogSUFyZWEsIGN1cnJlbnRHdXR0ZXI6IEticUd1dHRlckRpcmVjdGl2ZSB8IHVuZGVmaW5lZCkge1xuICAgICAgICB3aGlsZSAodGhpcy5saXN0ZW5lcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgdW5zdWJzY3JpYmUgPSB0aGlzLmxpc3RlbmVycy5wb3AoKTtcblxuICAgICAgICAgICAgaWYgKHVuc3Vic2NyaWJlKSB7XG4gICAgICAgICAgICAgICAgdW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnVzZUdob3N0ICYmIGN1cnJlbnRHdXR0ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGd1dHRlclBvc2l0aW9uID0gY3VycmVudEd1dHRlci5nZXRQb3NpdGlvbigpO1xuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID1cbiAgICAgICAgICAgICAgICB0aGlzLmdob3N0LmRpcmVjdGlvbiA9PT0gRGlyZWN0aW9uLlZlcnRpY2FsXG4gICAgICAgICAgICAgICAgICAgID8gZ3V0dGVyUG9zaXRpb24ueSAtIHRoaXMuZ2hvc3QueVxuICAgICAgICAgICAgICAgICAgICA6IGd1dHRlclBvc2l0aW9uLnggLSB0aGlzLmdob3N0Lng7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUFyZWFzKGxlZnRBcmVhLCByaWdodEFyZWEsIG9mZnNldCk7XG4gICAgICAgICAgICB0aGlzLmdob3N0LnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc2V0U3R5bGUoU3R5bGVQcm9wZXJ0eS5DdXJzb3IsICd1bnNldCcpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzRHJhZ2dpbmcgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLnVwZGF0ZUd1dHRlcigpO1xuXG4gICAgICAgIHRoaXMuZ3V0dGVyUG9zaXRpb25DaGFuZ2UuZW1pdCgpO1xuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTdHlsZShwcm9wZXJ0eTogU3R5bGVQcm9wZXJ0eSwgdmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBwcm9wZXJ0eSwgdmFsdWUpO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdba2JxLXNwbGl0dGVyLWFyZWFdJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLXNwbGl0dGVyLWFyZWEnLFxuICAgICAgICAnW2NsYXNzLmticS1zcGxpdHRlci1hcmVhX3Jlc2l6aW5nXSc6ICdpc1Jlc2l6aW5nKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFTcGxpdHRlckFyZWFEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBPdXRwdXQoKSBzaXplQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gS2JxU3BsaXR0ZXJDb21wb25lbnQpKSBwcml2YXRlIHNwbGl0dGVyOiBLYnFTcGxpdHRlckNvbXBvbmVudFxuICAgICkge31cblxuICAgIGlzUmVzaXppbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNwbGl0dGVyLmlzRHJhZ2dpbmc7XG4gICAgfVxuXG4gICAgZGlzYWJsZUZsZXgoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdmbGV4Jyk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLnNwbGl0dGVyLmFkZEFyZWEodGhpcyk7XG5cbiAgICAgICAgdGhpcy5yZW1vdmVTdHlsZShTdHlsZVByb3BlcnR5Lk1heFdpZHRoKTtcblxuICAgICAgICBpZiAodGhpcy5zcGxpdHRlci5kaXJlY3Rpb24gPT09IERpcmVjdGlvbi5WZXJ0aWNhbCkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdHlsZShTdHlsZVByb3BlcnR5LldpZHRoLCAnMTAwJScpO1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVTdHlsZShTdHlsZVByb3BlcnR5LkhlaWdodCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0eWxlKFN0eWxlUHJvcGVydHkuSGVpZ2h0LCAnMTAwJScpO1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVTdHlsZShTdHlsZVByb3BlcnR5LldpZHRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3BsaXR0ZXIuZ3V0dGVyUG9zaXRpb25DaGFuZ2Uuc3Vic2NyaWJlKHRoaXMuZW1pdFNpemVDaGFuZ2UpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNwbGl0dGVyLnJlbW92ZUFyZWEodGhpcyk7XG4gICAgfVxuXG4gICAgc2V0T3JkZXIob3JkZXI6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFN0eWxlKFN0eWxlUHJvcGVydHkuT3JkZXIsIG9yZGVyKTtcbiAgICB9XG5cbiAgICBzZXRTaXplKHNpemU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoaXNOYU4oc2l6ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0U3R5bGUodGhpcy5nZXRTaXplUHJvcGVydHkoKSwgY29lcmNlQ3NzUGl4ZWxWYWx1ZShjb2VyY2VOdW1iZXJQcm9wZXJ0eShzaXplKSkpO1xuICAgIH1cblxuICAgIGdldFNpemUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50W3RoaXMuZ2V0T2Zmc2V0U2l6ZVByb3BlcnR5KCldO1xuICAgIH1cblxuICAgIGdldFBvc2l0aW9uKCk6IElQb2ludCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0LFxuICAgICAgICAgICAgeTogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0VG9wXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ2V0TWluU2l6ZSgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBzdHlsZXMgPSBnZXRDb21wdXRlZFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChzdHlsZXNbdGhpcy5nZXRNaW5TaXplUHJvcGVydHkoKV0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNWZXJ0aWNhbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3BsaXR0ZXIuZGlyZWN0aW9uID09PSBEaXJlY3Rpb24uVmVydGljYWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNaW5TaXplUHJvcGVydHkoKTogU3R5bGVQcm9wZXJ0eSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmVydGljYWwoKSA/IFN0eWxlUHJvcGVydHkuTWluSGVpZ2h0IDogU3R5bGVQcm9wZXJ0eS5NaW5XaWR0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9mZnNldFNpemVQcm9wZXJ0eSgpOiBTdHlsZVByb3BlcnR5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWZXJ0aWNhbCgpID8gU3R5bGVQcm9wZXJ0eS5PZmZzZXRIZWlnaHQgOiBTdHlsZVByb3BlcnR5Lk9mZnNldFdpZHRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2l6ZVByb3BlcnR5KCk6IFN0eWxlUHJvcGVydHkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ZlcnRpY2FsKCkgPyBTdHlsZVByb3BlcnR5LkhlaWdodCA6IFN0eWxlUHJvcGVydHkuV2lkdGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTdHlsZShzdHlsZTogU3R5bGVQcm9wZXJ0eSwgdmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBzdHlsZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlU3R5bGUoc3R5bGU6IFN0eWxlUHJvcGVydHkpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgc3R5bGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW1pdFNpemVDaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2l6ZUNoYW5nZS5lbWl0KHRoaXMuZ2V0U2l6ZSgpKTtcbiAgICB9O1xufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG48bmctdGVtcGxhdGVcbiAgICBsZXQtYXJlYVxuICAgIGxldC1pbmRleD1cImluZGV4XCJcbiAgICBsZXQtbGFzdD1cImxhc3RcIlxuICAgIG5nRm9yXG4gICAgW25nRm9yT2ZdPVwiYXJlYXNcIlxuPlxuICAgIDxrYnEtZ3V0dGVyXG4gICAgICAgICpuZ0lmPVwibGFzdCA9PT0gZmFsc2VcIlxuICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBudWxsXCJcbiAgICAgICAgW2RpcmVjdGlvbl09XCJkaXJlY3Rpb25cIlxuICAgICAgICBbb3JkZXJdPVwiaW5kZXggKiAyICsgMVwiXG4gICAgICAgIFtzaXplXT1cImd1dHRlclNpemVcIlxuICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJoaWRlR3V0dGVycyA/ICdub25lJyA6ICdmbGV4J1wiXG4gICAgICAgIChtb3VzZWRvd24pPVwib25Nb3VzZURvd24oJGV2ZW50LCBpbmRleCwgaW5kZXggKyAxKVwiXG4gICAgPjwva2JxLWd1dHRlcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxrYnEtZ3V0dGVyLWdob3N0ICpuZ0lmPVwidXNlR2hvc3RcIj48L2ticS1ndXR0ZXItZ2hvc3Q+XG4iXX0=
|
|
@@ -35,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
|
|
|
35
35
|
]
|
|
36
36
|
}]
|
|
37
37
|
}] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR0ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9zcGxpdHRlci9zcGxpdHRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4QixvQkFBb0IsRUFDdkIsTUFBTSxzQkFBc0IsQ0FBQzs7QUFtQjlCLE1BQU0sT0FBTyxpQkFBaUI7aUlBQWpCLGlCQUFpQjtrSUFBakIsaUJBQWlCLGlCQU50QixrQkFBa0I7WUFDbEIsdUJBQXVCO1lBQ3ZCLHdCQUF3QjtZQUN4QixvQkFBb0IsYUFacEIsWUFBWTtZQUNaLGFBQWEsYUFHYixrQkFBa0I7WUFDbEIsd0JBQXdCO1lBQ3hCLG9CQUFvQjtrSUFTZixpQkFBaUIsWUFmdEIsWUFBWTtZQUNaLGFBQWE7OzJGQWNSLGlCQUFpQjtrQkFqQjdCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osYUFBYTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4QixvQkFBb0I7cUJBQ3ZCO29CQUNELFlBQVksRUFBRTt3QkFDVixrQkFBa0I7d0JBQ2xCLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3dCQUN4QixvQkFBb0I7cUJBQ3ZCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLYnFJY29uTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHtcbiAgICBLYnFHdXR0ZXJEaXJlY3RpdmUsXG4gICAgS2JxR3V0dGVyR2hvc3REaXJlY3RpdmUsXG4gICAgS2JxU3BsaXR0ZXJBcmVhRGlyZWN0aXZlLFxuICAgIEticVNwbGl0dGVyQ29tcG9uZW50XG59IGZyb20gJy4vc3BsaXR0ZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgS2JxSWNvbk1vZHVsZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBLYnFHdXR0ZXJEaXJlY3RpdmUsXG4gICAgICAgIEticVNwbGl0dGVyQXJlYURpcmVjdGl2ZSxcbiAgICAgICAgS2JxU3BsaXR0ZXJDb21wb25lbnRcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBLYnFHdXR0ZXJEaXJlY3RpdmUsXG4gICAgICAgIEticUd1dHRlckdob3N0RGlyZWN0aXZlLFxuICAgICAgICBLYnFTcGxpdHRlckFyZWFEaXJlY3RpdmUsXG4gICAgICAgIEticVNwbGl0dGVyQ29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBLYnFTcGxpdHRlck1vZHVsZSB7fVxuIl19
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './table.module';
|
|
2
1
|
export * from './table.component';
|
|
3
|
-
|
|
2
|
+
export * from './table.module';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvdGFibGUvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLm1vZHVsZSc7XG4iXX0=
|
|
@@ -1,13 +1,36 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChild, Directive, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { KbqButton } from '@koobiq/components/button';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export class KbqTable {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.border = false;
|
|
7
|
+
}
|
|
4
8
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqTable, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqTable, selector: "table[kbq-table]", host: { classAttribute: "kbq-table" }, exportAs: ["kbqTable"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".kbq-table{border-spacing:0}.kbq-table>thead>tr>th,.kbq-table>thead>tr>td,.kbq-table>tbody>tr>th,.kbq-table>tbody>tr>td,.kbq-table>tfoot>tr>th,.kbq-table>tfoot>tr>td{padding-top:var(--kbq-table-size-row-padding-vertical,
|
|
9
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqTable, selector: "table[kbq-table]", inputs: { border: "border" }, host: { properties: { "class.kbq-table_bordered": "border" }, classAttribute: "kbq-table" }, exportAs: ["kbqTable"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".kbq-table{border-spacing:0}.kbq-table>thead>tr>th,.kbq-table>thead>tr>td,.kbq-table>tbody>tr>th,.kbq-table>tbody>tr>td,.kbq-table>tfoot>tr>th,.kbq-table>tfoot>tr>td{padding-top:var(--kbq-table-size-row-padding-vertical, 10px);padding-right:var(--kbq-table-size-row-padding-horizontal, 8px);padding-bottom:var(--kbq-table-size-row-padding-vertical, 10px);padding-left:var(--kbq-table-size-row-padding-horizontal, 8px);vertical-align:baseline;text-align:left}.kbq-table>thead>tr>th{border-bottom-width:var(--kbq-table-size-border-width, 1px);border-bottom-style:solid}.kbq-table .kbq-table-cell_has-button{padding-top:var(--kbq-size-xxs, 4px);padding-bottom:var(--kbq-size-xxs, 4px)}.kbq-table.kbq-table_bordered>tbody>tr th,.kbq-table.kbq-table_bordered>tbody>tr td{border-bottom-width:var(--kbq-table-size-border-width, 1px);border-bottom-style:solid}.kbq-table:not(.kbq-table_bordered)>tbody>tr>td:first-child{border-top-left-radius:var(--kbq-size-m, 12px);border-bottom-left-radius:var(--kbq-size-m, 12px)}.kbq-table:not(.kbq-table_bordered)>tbody>tr>td:last-child{border-top-right-radius:var(--kbq-size-m, 12px);border-bottom-right-radius:var(--kbq-size-m, 12px)}.kbq-table:not(.kbq-table_bordered)>tbody>tr:first-child>td:first-child{border-top-left-radius:0}.kbq-table:not(.kbq-table_bordered)>tbody>tr:first-child>td:last-child{border-top-right-radius:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
6
10
|
}
|
|
7
11
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqTable, decorators: [{
|
|
8
12
|
type: Component,
|
|
9
13
|
args: [{ selector: 'table[kbq-table]', exportAs: 'kbqTable', template: '<ng-content></ng-content>', host: {
|
|
10
|
-
class: 'kbq-table'
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
class: 'kbq-table',
|
|
15
|
+
'[class.kbq-table_bordered]': 'border'
|
|
16
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".kbq-table{border-spacing:0}.kbq-table>thead>tr>th,.kbq-table>thead>tr>td,.kbq-table>tbody>tr>th,.kbq-table>tbody>tr>td,.kbq-table>tfoot>tr>th,.kbq-table>tfoot>tr>td{padding-top:var(--kbq-table-size-row-padding-vertical, 10px);padding-right:var(--kbq-table-size-row-padding-horizontal, 8px);padding-bottom:var(--kbq-table-size-row-padding-vertical, 10px);padding-left:var(--kbq-table-size-row-padding-horizontal, 8px);vertical-align:baseline;text-align:left}.kbq-table>thead>tr>th{border-bottom-width:var(--kbq-table-size-border-width, 1px);border-bottom-style:solid}.kbq-table .kbq-table-cell_has-button{padding-top:var(--kbq-size-xxs, 4px);padding-bottom:var(--kbq-size-xxs, 4px)}.kbq-table.kbq-table_bordered>tbody>tr th,.kbq-table.kbq-table_bordered>tbody>tr td{border-bottom-width:var(--kbq-table-size-border-width, 1px);border-bottom-style:solid}.kbq-table:not(.kbq-table_bordered)>tbody>tr>td:first-child{border-top-left-radius:var(--kbq-size-m, 12px);border-bottom-left-radius:var(--kbq-size-m, 12px)}.kbq-table:not(.kbq-table_bordered)>tbody>tr>td:last-child{border-top-right-radius:var(--kbq-size-m, 12px);border-bottom-right-radius:var(--kbq-size-m, 12px)}.kbq-table:not(.kbq-table_bordered)>tbody>tr:first-child>td:first-child{border-top-left-radius:0}.kbq-table:not(.kbq-table_bordered)>tbody>tr:first-child>td:last-child{border-top-right-radius:0}\n"] }]
|
|
17
|
+
}], propDecorators: { border: [{
|
|
18
|
+
type: Input
|
|
19
|
+
}] } });
|
|
20
|
+
export class KbqTableCellContent {
|
|
21
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqTableCellContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
22
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.0", type: KbqTableCellContent, selector: "kbq-table td", host: { properties: { "class.kbq-table-cell_has-button": "!!button" } }, queries: [{ propertyName: "button", first: true, predicate: KbqButton, descendants: true }], ngImport: i0 }); }
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqTableCellContent, decorators: [{
|
|
25
|
+
type: Directive,
|
|
26
|
+
args: [{
|
|
27
|
+
selector: 'kbq-table td',
|
|
28
|
+
host: {
|
|
29
|
+
'[class.kbq-table-cell_has-button]': '!!button'
|
|
30
|
+
}
|
|
31
|
+
}]
|
|
32
|
+
}], propDecorators: { button: [{
|
|
33
|
+
type: ContentChild,
|
|
34
|
+
args: [KbqButton]
|
|
35
|
+
}] } });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBY3RELE1BQU0sT0FBTyxRQUFRO0lBWnJCO1FBYWEsV0FBTSxHQUFZLEtBQUssQ0FBQztLQUNwQztpSUFGWSxRQUFRO3FIQUFSLFFBQVEsMk1BUlAsMkJBQTJCOzsyRkFRNUIsUUFBUTtrQkFacEIsU0FBUzsrQkFDSSxrQkFBa0IsWUFDbEIsVUFBVSxZQUVWLDJCQUEyQixRQUMvQjt3QkFDRixLQUFLLEVBQUUsV0FBVzt3QkFDbEIsNEJBQTRCLEVBQUUsUUFBUTtxQkFDekMsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsTUFBTTtzQkFBZCxLQUFLOztBQVNWLE1BQU0sT0FBTyxtQkFBbUI7aUlBQW5CLG1CQUFtQjtxSEFBbkIsbUJBQW1CLGlLQUNkLFNBQVM7OzJGQURkLG1CQUFtQjtrQkFOL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsSUFBSSxFQUFFO3dCQUNGLG1DQUFtQyxFQUFFLFVBQVU7cUJBQ2xEO2lCQUNKOzhCQUU0QixNQUFNO3NCQUE5QixZQUFZO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIERpcmVjdGl2ZSwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLYnFCdXR0b24gfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvYnV0dG9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0YWJsZVtrYnEtdGFibGVdJyxcbiAgICBleHBvcnRBczogJ2ticVRhYmxlJyxcbiAgICBzdHlsZVVybHM6IFsndGFibGUuc2NzcyddLFxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS10YWJsZScsXG4gICAgICAgICdbY2xhc3Mua2JxLXRhYmxlX2JvcmRlcmVkXSc6ICdib3JkZXInXG4gICAgfSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEticVRhYmxlIHtcbiAgICBASW5wdXQoKSBib3JkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdrYnEtdGFibGUgdGQnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5rYnEtdGFibGUtY2VsbF9oYXMtYnV0dG9uXSc6ICchIWJ1dHRvbidcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticVRhYmxlQ2VsbENvbnRlbnQge1xuICAgIEBDb250ZW50Q2hpbGQoS2JxQnV0dG9uKSBidXR0b246IEticUJ1dHRvbjtcbn1cbiJdfQ==
|
|
@@ -2,13 +2,15 @@ import { A11yModule } from '@angular/cdk/a11y';
|
|
|
2
2
|
import { PlatformModule } from '@angular/cdk/platform';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import { NgModule } from '@angular/core';
|
|
5
|
-
import { KbqTable } from './table.component';
|
|
5
|
+
import { KbqTable, KbqTableCellContent } from './table.component';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export class KbqTableModule {
|
|
8
8
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.0", ngImport: i0, type: KbqTableModule, declarations: [KbqTable
|
|
9
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.0", ngImport: i0, type: KbqTableModule, declarations: [KbqTable,
|
|
10
|
+
KbqTableCellContent], imports: [CommonModule,
|
|
10
11
|
A11yModule,
|
|
11
|
-
PlatformModule], exports: [KbqTable
|
|
12
|
+
PlatformModule], exports: [KbqTable,
|
|
13
|
+
KbqTableCellContent] }); }
|
|
12
14
|
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqTableModule, imports: [CommonModule,
|
|
13
15
|
A11yModule,
|
|
14
16
|
PlatformModule] }); }
|
|
@@ -21,8 +23,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
|
|
|
21
23
|
A11yModule,
|
|
22
24
|
PlatformModule
|
|
23
25
|
],
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
declarations: [
|
|
27
|
+
KbqTable,
|
|
28
|
+
KbqTableCellContent
|
|
29
|
+
],
|
|
30
|
+
exports: [
|
|
31
|
+
KbqTable,
|
|
32
|
+
KbqTableCellContent
|
|
33
|
+
]
|
|
26
34
|
}]
|
|
27
35
|
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90YWJsZS90YWJsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBaUJsRSxNQUFNLE9BQU8sY0FBYztpSUFBZCxjQUFjO2tJQUFkLGNBQWMsaUJBUm5CLFFBQVE7WUFDUixtQkFBbUIsYUFObkIsWUFBWTtZQUNaLFVBQVU7WUFDVixjQUFjLGFBT2QsUUFBUTtZQUNSLG1CQUFtQjtrSUFHZCxjQUFjLFlBYm5CLFlBQVk7WUFDWixVQUFVO1lBQ1YsY0FBYzs7MkZBV1QsY0FBYztrQkFmMUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixVQUFVO3dCQUNWLGNBQWM7cUJBQ2pCO29CQUNELFlBQVksRUFBRTt3QkFDVixRQUFRO3dCQUNSLG1CQUFtQjtxQkFDdEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFFBQVE7d0JBQ1IsbUJBQW1CO3FCQUN0QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBQbGF0Zm9ybU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEticVRhYmxlLCBLYnFUYWJsZUNlbGxDb250ZW50IH0gZnJvbSAnLi90YWJsZS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBBMTF5TW9kdWxlLFxuICAgICAgICBQbGF0Zm9ybU1vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIEticVRhYmxlLFxuICAgICAgICBLYnFUYWJsZUNlbGxDb250ZW50XG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEticVRhYmxlLFxuICAgICAgICBLYnFUYWJsZUNlbGxDb250ZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBLYnFUYWJsZU1vZHVsZSB7fVxuIl19
|