@ng-nest/ui 15.0.18 → 15.0.19
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/anchor/anchor.component.d.ts +1 -1
- package/avatar/avatar.component.d.ts +1 -1
- package/back-top/back-top.component.d.ts +5 -3
- package/button/button.component.d.ts +2 -0
- package/color/color.component.d.ts +2 -2
- package/core/config/config.service.d.ts +4 -3
- package/core/functions/resize.d.ts +4 -2
- package/core/services/storage.service.d.ts +3 -1
- package/core/theme/theme.service.d.ts +2 -2
- package/core/util/computed-style.d.ts +2 -1
- package/core/util/index.d.ts +1 -0
- package/esm2020/affix/affix.component.mjs +3 -3
- package/esm2020/affix/affix.module.mjs +4 -4
- package/esm2020/affix/affix.property.mjs +3 -3
- package/esm2020/alert/alert.component.mjs +3 -3
- package/esm2020/alert/alert.module.mjs +4 -4
- package/esm2020/alert/alert.property.mjs +3 -3
- package/esm2020/anchor/anchor-inner.component.mjs +3 -3
- package/esm2020/anchor/anchor.component.mjs +16 -19
- package/esm2020/anchor/anchor.module.mjs +4 -4
- package/esm2020/anchor/anchor.property.mjs +6 -6
- package/esm2020/api/api.component.mjs +3 -3
- package/esm2020/api/api.module.mjs +4 -4
- package/esm2020/auto-complete/auto-complete-portal.component.mjs +3 -3
- package/esm2020/auto-complete/auto-complete.component.mjs +3 -3
- package/esm2020/auto-complete/auto-complete.module.mjs +4 -4
- package/esm2020/auto-complete/auto-complete.property.mjs +3 -3
- package/esm2020/avatar/avatar-group.component.mjs +3 -3
- package/esm2020/avatar/avatar.component.mjs +8 -11
- package/esm2020/avatar/avatar.module.mjs +4 -4
- package/esm2020/avatar/avatar.property.mjs +6 -6
- package/esm2020/back-top/back-top.component.mjs +17 -16
- package/esm2020/back-top/back-top.module.mjs +4 -4
- package/esm2020/back-top/back-top.property.mjs +3 -3
- package/esm2020/badge/badge.component.mjs +3 -3
- package/esm2020/badge/badge.module.mjs +4 -4
- package/esm2020/badge/badge.property.mjs +3 -3
- package/esm2020/base-form/base-form.component.mjs +3 -3
- package/esm2020/base-form/base-form.module.mjs +4 -4
- package/esm2020/base-form/base-form.property.mjs +3 -3
- package/esm2020/border/border.component.mjs +3 -3
- package/esm2020/border/border.module.mjs +4 -4
- package/esm2020/button/button.component.mjs +22 -10
- package/esm2020/button/button.module.mjs +4 -4
- package/esm2020/button/button.property.mjs +6 -6
- package/esm2020/button/buttons.component.mjs +3 -3
- package/esm2020/calendar/calendar.component.mjs +3 -3
- package/esm2020/calendar/calendar.module.mjs +4 -4
- package/esm2020/calendar/calendar.property.mjs +3 -3
- package/esm2020/card/card.component.mjs +3 -3
- package/esm2020/card/card.module.mjs +4 -4
- package/esm2020/card/card.property.mjs +3 -3
- package/esm2020/carousel/carousel-panel.component.mjs +3 -3
- package/esm2020/carousel/carousel.component.mjs +4 -4
- package/esm2020/carousel/carousel.module.mjs +4 -4
- package/esm2020/carousel/carousel.property.mjs +6 -6
- package/esm2020/cascade/cascade-portal.component.mjs +3 -3
- package/esm2020/cascade/cascade.component.mjs +3 -3
- package/esm2020/cascade/cascade.module.mjs +4 -4
- package/esm2020/cascade/cascade.property.mjs +3 -3
- package/esm2020/checkbox/checkbox.component.mjs +3 -3
- package/esm2020/checkbox/checkbox.module.mjs +4 -4
- package/esm2020/checkbox/checkbox.property.mjs +3 -3
- package/esm2020/collapse/collapse-panel.component.mjs +3 -3
- package/esm2020/collapse/collapse.component.mjs +3 -3
- package/esm2020/collapse/collapse.module.mjs +4 -4
- package/esm2020/collapse/collapse.property.mjs +6 -6
- package/esm2020/color/color.component.mjs +10 -13
- package/esm2020/color/color.module.mjs +4 -4
- package/esm2020/color/color.property.mjs +3 -3
- package/esm2020/color-picker/color-picker-portal.component.mjs +6 -6
- package/esm2020/color-picker/color-picker.component.mjs +3 -3
- package/esm2020/color-picker/color-picker.module.mjs +4 -4
- package/esm2020/color-picker/color-picker.property.mjs +3 -3
- package/esm2020/comment/comment-reply.component.mjs +3 -3
- package/esm2020/comment/comment.component.mjs +3 -3
- package/esm2020/comment/comment.module.mjs +4 -4
- package/esm2020/comment/comment.property.mjs +6 -6
- package/esm2020/container/aside.component.mjs +3 -3
- package/esm2020/container/container.component.mjs +3 -3
- package/esm2020/container/container.module.mjs +4 -4
- package/esm2020/container/container.property.mjs +12 -12
- package/esm2020/container/footer.component.mjs +3 -3
- package/esm2020/container/header.component.mjs +3 -3
- package/esm2020/container/main.component.mjs +3 -3
- package/esm2020/core/config/config.service.mjs +11 -20
- package/esm2020/core/functions/resize.mjs +4 -1
- package/esm2020/core/services/http.service.mjs +3 -3
- package/esm2020/core/services/preloading-strategy.service.mjs +3 -3
- package/esm2020/core/services/storage.service.mjs +45 -12
- package/esm2020/core/theme/theme.service.mjs +10 -12
- package/esm2020/core/util/computed-style.mjs +9 -3
- package/esm2020/core/util/index.mjs +2 -0
- package/esm2020/crumb/crumb.component.mjs +3 -3
- package/esm2020/crumb/crumb.module.mjs +4 -4
- package/esm2020/crumb/crumb.property.mjs +3 -3
- package/esm2020/date-picker/date-picker-portal.component.mjs +3 -3
- package/esm2020/date-picker/date-picker.component.mjs +3 -3
- package/esm2020/date-picker/date-picker.module.mjs +4 -4
- package/esm2020/date-picker/date-picker.property.mjs +18 -18
- package/esm2020/date-picker/date-quarter.pipe.mjs +3 -3
- package/esm2020/date-picker/date-range-portal.component.mjs +3 -3
- package/esm2020/date-picker/date-range.component.mjs +3 -3
- package/esm2020/date-picker/picker-date.component.mjs +3 -3
- package/esm2020/date-picker/picker-month.component.mjs +3 -3
- package/esm2020/date-picker/picker-quarter.component.mjs +3 -3
- package/esm2020/date-picker/picker-year.component.mjs +3 -3
- package/esm2020/description/description-item.component.mjs +3 -3
- package/esm2020/description/description.component.mjs +3 -3
- package/esm2020/description/description.module.mjs +4 -4
- package/esm2020/description/description.property.mjs +6 -6
- package/esm2020/dialog/dialog-container.component.mjs +3 -3
- package/esm2020/dialog/dialog-portal.component.mjs +3 -3
- package/esm2020/dialog/dialog-portal.directives.mjs +18 -18
- package/esm2020/dialog/dialog.component.mjs +3 -3
- package/esm2020/dialog/dialog.module.mjs +4 -4
- package/esm2020/dialog/dialog.property.mjs +6 -6
- package/esm2020/dialog/dialog.service.mjs +3 -3
- package/esm2020/doc/doc.component.mjs +3 -3
- package/esm2020/doc/doc.module.mjs +4 -4
- package/esm2020/drawer/drawer-container.component.mjs +3 -3
- package/esm2020/drawer/drawer-portal.component.mjs +3 -3
- package/esm2020/drawer/drawer-portal.directives.mjs +9 -9
- package/esm2020/drawer/drawer.component.mjs +3 -3
- package/esm2020/drawer/drawer.module.mjs +4 -4
- package/esm2020/drawer/drawer.property.mjs +6 -6
- package/esm2020/drawer/drawer.service.mjs +3 -3
- package/esm2020/dropdown/dropdown-portal.component.mjs +3 -3
- package/esm2020/dropdown/dropdown.component.mjs +3 -3
- package/esm2020/dropdown/dropdown.module.mjs +4 -4
- package/esm2020/dropdown/dropdown.property.mjs +3 -3
- package/esm2020/empty/empty.component.mjs +3 -3
- package/esm2020/empty/empty.module.mjs +4 -4
- package/esm2020/empty/empty.property.mjs +3 -3
- package/esm2020/examples/examples.component.mjs +3 -3
- package/esm2020/examples/examples.module.mjs +4 -4
- package/esm2020/find/find.component.mjs +4 -4
- package/esm2020/find/find.module.mjs +4 -4
- package/esm2020/find/find.property.mjs +3 -3
- package/esm2020/form/control.component.mjs +3 -3
- package/esm2020/form/form.component.mjs +3 -3
- package/esm2020/form/form.module.mjs +4 -4
- package/esm2020/form/form.property.mjs +6 -6
- package/esm2020/highlight/highlight.component.mjs +9 -8
- package/esm2020/highlight/highlight.module.mjs +4 -4
- package/esm2020/highlight/highlight.property.mjs +3 -3
- package/esm2020/i18n/i18n.directive.mjs +3 -3
- package/esm2020/i18n/i18n.module.mjs +4 -4
- package/esm2020/i18n/i18n.pipe.mjs +3 -3
- package/esm2020/i18n/i18n.property.mjs +1 -1
- package/esm2020/i18n/i18n.service.mjs +3 -3
- package/esm2020/i18n/languages/en_GB.mjs +5 -2
- package/esm2020/i18n/languages/en_US.mjs +5 -2
- package/esm2020/i18n/languages/zh_CN.mjs +5 -2
- package/esm2020/i18n/languages/zh_TW.mjs +5 -2
- package/esm2020/icon/icon.component.mjs +9 -14
- package/esm2020/icon/icon.module.mjs +4 -4
- package/esm2020/icon/icon.property.mjs +3 -3
- package/esm2020/icon/icon.service.mjs +3 -3
- package/esm2020/image/image-group.component.mjs +3 -3
- package/esm2020/image/image-preview.component.mjs +14 -10
- package/esm2020/image/image.component.mjs +3 -3
- package/esm2020/image/image.module.mjs +4 -4
- package/esm2020/image/image.property.mjs +6 -6
- package/esm2020/inner/inner.component.mjs +3 -3
- package/esm2020/inner/inner.module.mjs +4 -4
- package/esm2020/inner/inner.property.mjs +3 -3
- package/esm2020/input/input-group.component.mjs +3 -3
- package/esm2020/input/input.component.mjs +3 -3
- package/esm2020/input/input.module.mjs +4 -4
- package/esm2020/input/input.property.mjs +6 -6
- package/esm2020/input-number/input-number.component.mjs +3 -3
- package/esm2020/input-number/input-number.module.mjs +4 -4
- package/esm2020/input-number/input-number.property.mjs +3 -3
- package/esm2020/keyword/keyword.directive.mjs +3 -3
- package/esm2020/keyword/keyword.module.mjs +4 -4
- package/esm2020/keyword/keyword.property.mjs +3 -3
- package/esm2020/layout/col.component.mjs +3 -3
- package/esm2020/layout/layout.module.mjs +4 -4
- package/esm2020/layout/layout.property.mjs +6 -6
- package/esm2020/layout/row.component.mjs +3 -3
- package/esm2020/link/link.component.mjs +3 -3
- package/esm2020/link/link.module.mjs +4 -4
- package/esm2020/link/link.property.mjs +3 -3
- package/esm2020/list/list-drop-group.directive.mjs +3 -3
- package/esm2020/list/list-option.component.mjs +3 -3
- package/esm2020/list/list.component.mjs +5 -5
- package/esm2020/list/list.module.mjs +4 -4
- package/esm2020/list/list.property.mjs +6 -6
- package/esm2020/loading/loading.component.mjs +3 -3
- package/esm2020/loading/loading.module.mjs +4 -4
- package/esm2020/loading/loading.property.mjs +3 -3
- package/esm2020/menu/menu-node.component.mjs +3 -3
- package/esm2020/menu/menu.component.mjs +12 -12
- package/esm2020/menu/menu.module.mjs +4 -4
- package/esm2020/menu/menu.property.mjs +6 -6
- package/esm2020/message/message.component.mjs +3 -3
- package/esm2020/message/message.module.mjs +4 -4
- package/esm2020/message/message.service.mjs +3 -3
- package/esm2020/message-box/message-box.component.mjs +3 -3
- package/esm2020/message-box/message-box.module.mjs +4 -4
- package/esm2020/message-box/message-box.service.mjs +3 -3
- package/esm2020/notification/notification.component.mjs +3 -3
- package/esm2020/notification/notification.module.mjs +4 -4
- package/esm2020/notification/notification.service.mjs +3 -3
- package/esm2020/outlet/outlet.directive.mjs +3 -3
- package/esm2020/outlet/outlet.module.mjs +4 -4
- package/esm2020/page-header/page-header.component.mjs +3 -3
- package/esm2020/page-header/page-header.module.mjs +4 -4
- package/esm2020/page-header/page-header.property.mjs +3 -3
- package/esm2020/pagination/pagination.component.mjs +3 -3
- package/esm2020/pagination/pagination.module.mjs +4 -4
- package/esm2020/pagination/pagination.property.mjs +3 -3
- package/esm2020/pattern/pattern.component.mjs +3 -3
- package/esm2020/pattern/pattern.module.mjs +4 -4
- package/esm2020/popconfirm/popconfirm.component.mjs +3 -3
- package/esm2020/popconfirm/popconfirm.module.mjs +4 -4
- package/esm2020/popconfirm/popconfirm.property.mjs +3 -3
- package/esm2020/popover/popover-portal.component.mjs +3 -3
- package/esm2020/popover/popover.directive.mjs +3 -3
- package/esm2020/popover/popover.module.mjs +4 -4
- package/esm2020/popover/popover.property.mjs +3 -3
- package/esm2020/portal/portal.module.mjs +4 -4
- package/esm2020/portal/portal.service.mjs +6 -5
- package/esm2020/progress/progress.component.mjs +3 -3
- package/esm2020/progress/progress.module.mjs +4 -4
- package/esm2020/progress/progress.property.mjs +3 -3
- package/esm2020/radio/radio.component.mjs +3 -3
- package/esm2020/radio/radio.module.mjs +4 -4
- package/esm2020/radio/radio.property.mjs +3 -3
- package/esm2020/rate/rate.component.mjs +3 -3
- package/esm2020/rate/rate.module.mjs +4 -4
- package/esm2020/rate/rate.property.mjs +3 -3
- package/esm2020/resizable/resizable.directive.mjs +10 -13
- package/esm2020/resizable/resizable.module.mjs +4 -4
- package/esm2020/resizable/resizable.property.mjs +3 -3
- package/esm2020/result/result.component.mjs +3 -3
- package/esm2020/result/result.module.mjs +4 -4
- package/esm2020/result/result.property.mjs +3 -3
- package/esm2020/ripple/ripple.directive.mjs +6 -5
- package/esm2020/ripple/ripple.module.mjs +4 -4
- package/esm2020/ripple/ripple.property.mjs +3 -3
- package/esm2020/select/select-portal.component.mjs +3 -3
- package/esm2020/select/select.component.mjs +6 -6
- package/esm2020/select/select.module.mjs +4 -4
- package/esm2020/select/select.property.mjs +3 -3
- package/esm2020/skeleton/skeleton.component.mjs +3 -3
- package/esm2020/skeleton/skeleton.module.mjs +4 -4
- package/esm2020/skeleton/skeleton.property.mjs +3 -3
- package/esm2020/slider/slider.component.mjs +7 -5
- package/esm2020/slider/slider.module.mjs +4 -4
- package/esm2020/slider/slider.property.mjs +3 -3
- package/esm2020/slider-select/slider-select.component.mjs +21 -14
- package/esm2020/slider-select/slider-select.module.mjs +4 -4
- package/esm2020/slider-select/slider-select.property.mjs +3 -3
- package/esm2020/statistic/countdown.component.mjs +3 -3
- package/esm2020/statistic/statistic.component.mjs +3 -3
- package/esm2020/statistic/statistic.module.mjs +4 -4
- package/esm2020/statistic/statistic.property.mjs +6 -6
- package/esm2020/steps/steps.component.mjs +3 -3
- package/esm2020/steps/steps.module.mjs +4 -4
- package/esm2020/steps/steps.property.mjs +3 -3
- package/esm2020/switch/switch.component.mjs +3 -3
- package/esm2020/switch/switch.module.mjs +4 -4
- package/esm2020/switch/switch.property.mjs +3 -3
- package/esm2020/table/drag.directive.mjs +8 -11
- package/esm2020/table/table-body.component.mjs +10 -13
- package/esm2020/table/table-foot.component.mjs +3 -3
- package/esm2020/table/table-head.component.mjs +3 -3
- package/esm2020/table/table.component.mjs +3 -3
- package/esm2020/table/table.module.mjs +4 -4
- package/esm2020/table/table.property.mjs +12 -12
- package/esm2020/tabs/tab-content.component.mjs +3 -3
- package/esm2020/tabs/tab-link.directive.mjs +6 -6
- package/esm2020/tabs/tab.component.mjs +3 -3
- package/esm2020/tabs/tabs.component.mjs +4 -4
- package/esm2020/tabs/tabs.module.mjs +4 -4
- package/esm2020/tabs/tabs.property.mjs +6 -6
- package/esm2020/tag/tag.component.mjs +3 -3
- package/esm2020/tag/tag.module.mjs +4 -4
- package/esm2020/tag/tag.property.mjs +3 -3
- package/esm2020/text-retract/text-retract.component.mjs +3 -3
- package/esm2020/text-retract/text-retract.module.mjs +4 -4
- package/esm2020/text-retract/text-retract.property.mjs +3 -3
- package/esm2020/textarea/textarea.component.mjs +3 -3
- package/esm2020/textarea/textarea.module.mjs +4 -4
- package/esm2020/textarea/textarea.property.mjs +3 -3
- package/esm2020/theme/theme.component.mjs +3 -3
- package/esm2020/theme/theme.module.mjs +4 -4
- package/esm2020/theme/theme.property.mjs +3 -3
- package/esm2020/time-ago/time-ago.module.mjs +4 -4
- package/esm2020/time-ago/time-ago.pipe.mjs +3 -3
- package/esm2020/time-picker/time-picker-frame.component.mjs +3 -3
- package/esm2020/time-picker/time-picker-portal.component.mjs +3 -3
- package/esm2020/time-picker/time-picker.component.mjs +21 -5
- package/esm2020/time-picker/time-picker.module.mjs +4 -4
- package/esm2020/time-picker/time-picker.property.mjs +3 -3
- package/esm2020/time-range/time-range.module.mjs +4 -4
- package/esm2020/time-range/time-range.pipe.mjs +3 -3
- package/esm2020/timeline/timeline.component.mjs +3 -3
- package/esm2020/timeline/timeline.module.mjs +4 -4
- package/esm2020/timeline/timeline.property.mjs +3 -3
- package/esm2020/tooltip/tooltip-portal.component.mjs +3 -3
- package/esm2020/tooltip/tooltip.directive.mjs +3 -3
- package/esm2020/tooltip/tooltip.module.mjs +4 -4
- package/esm2020/tooltip/tooltip.property.mjs +3 -3
- package/esm2020/transfer/transfer.component.mjs +3 -3
- package/esm2020/transfer/transfer.module.mjs +4 -4
- package/esm2020/transfer/transfer.property.mjs +3 -3
- package/esm2020/tree/tree-node.component.mjs +3 -3
- package/esm2020/tree/tree.component.mjs +4 -4
- package/esm2020/tree/tree.module.mjs +4 -4
- package/esm2020/tree/tree.property.mjs +6 -6
- package/esm2020/tree/tree.service.mjs +3 -3
- package/esm2020/tree-file/tree-file.component.mjs +9 -6
- package/esm2020/tree-file/tree-file.module.mjs +4 -4
- package/esm2020/tree-file/tree-file.property.mjs +5 -5
- package/esm2020/tree-select/tree-select-portal.component.mjs +3 -3
- package/esm2020/tree-select/tree-select.component.mjs +6 -6
- package/esm2020/tree-select/tree-select.module.mjs +4 -4
- package/esm2020/tree-select/tree-select.property.mjs +3 -3
- package/esm2020/typography/typography.component.mjs +3 -3
- package/esm2020/typography/typography.module.mjs +4 -4
- package/esm2020/typography/typography.property.mjs +3 -3
- package/esm2020/upload/upload-portal.component.mjs +8 -11
- package/esm2020/upload/upload.component.mjs +3 -3
- package/esm2020/upload/upload.module.mjs +4 -4
- package/esm2020/upload/upload.property.mjs +3 -3
- package/fesm2015/ng-nest-ui-affix.mjs +10 -10
- package/fesm2015/ng-nest-ui-alert.mjs +10 -10
- package/fesm2015/ng-nest-ui-anchor.mjs +28 -33
- package/fesm2015/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-api.mjs +7 -7
- package/fesm2015/ng-nest-ui-auto-complete.mjs +13 -13
- package/fesm2015/ng-nest-ui-avatar.mjs +20 -25
- package/fesm2015/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-back-top.mjs +23 -24
- package/fesm2015/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-badge.mjs +10 -10
- package/fesm2015/ng-nest-ui-base-form.mjs +10 -10
- package/fesm2015/ng-nest-ui-border.mjs +7 -7
- package/fesm2015/ng-nest-ui-button.mjs +35 -22
- package/fesm2015/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-calendar.mjs +10 -10
- package/fesm2015/ng-nest-ui-card.mjs +10 -10
- package/fesm2015/ng-nest-ui-carousel.mjs +16 -16
- package/fesm2015/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-cascade.mjs +13 -13
- package/fesm2015/ng-nest-ui-checkbox.mjs +10 -10
- package/fesm2015/ng-nest-ui-collapse.mjs +16 -16
- package/fesm2015/ng-nest-ui-color-picker.mjs +15 -15
- package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-color.mjs +16 -21
- package/fesm2015/ng-nest-ui-color.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-comment.mjs +16 -16
- package/fesm2015/ng-nest-ui-container.mjs +31 -31
- package/fesm2015/ng-nest-ui-core.mjs +78 -51
- package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-crumb.mjs +10 -10
- package/fesm2015/ng-nest-ui-date-picker.mjs +49 -49
- package/fesm2015/ng-nest-ui-description.mjs +16 -16
- package/fesm2015/ng-nest-ui-dialog.mjs +40 -40
- package/fesm2015/ng-nest-ui-doc.mjs +7 -7
- package/fesm2015/ng-nest-ui-drawer.mjs +31 -31
- package/fesm2015/ng-nest-ui-dropdown.mjs +13 -13
- package/fesm2015/ng-nest-ui-empty.mjs +10 -10
- package/fesm2015/ng-nest-ui-examples.mjs +7 -7
- package/fesm2015/ng-nest-ui-find.mjs +10 -10
- package/fesm2015/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-form.mjs +16 -16
- package/fesm2015/ng-nest-ui-highlight.mjs +15 -14
- package/fesm2015/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-i18n.mjs +29 -17
- package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-icon.mjs +18 -25
- package/fesm2015/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-image.mjs +30 -26
- package/fesm2015/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-inner.mjs +10 -10
- package/fesm2015/ng-nest-ui-input-number.mjs +10 -10
- package/fesm2015/ng-nest-ui-input.mjs +16 -16
- package/fesm2015/ng-nest-ui-keyword.mjs +10 -10
- package/fesm2015/ng-nest-ui-layout.mjs +16 -16
- package/fesm2015/ng-nest-ui-link.mjs +10 -10
- package/fesm2015/ng-nest-ui-list.mjs +20 -20
- package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-loading.mjs +10 -10
- package/fesm2015/ng-nest-ui-menu.mjs +24 -26
- package/fesm2015/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-message-box.mjs +10 -10
- package/fesm2015/ng-nest-ui-message.mjs +10 -10
- package/fesm2015/ng-nest-ui-notification.mjs +10 -10
- package/fesm2015/ng-nest-ui-outlet.mjs +7 -7
- package/fesm2015/ng-nest-ui-page-header.mjs +10 -10
- package/fesm2015/ng-nest-ui-pagination.mjs +10 -10
- package/fesm2015/ng-nest-ui-pattern.mjs +7 -7
- package/fesm2015/ng-nest-ui-popconfirm.mjs +10 -10
- package/fesm2015/ng-nest-ui-popover.mjs +13 -13
- package/fesm2015/ng-nest-ui-portal.mjs +9 -9
- package/fesm2015/ng-nest-ui-portal.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-progress.mjs +10 -10
- package/fesm2015/ng-nest-ui-radio.mjs +10 -10
- package/fesm2015/ng-nest-ui-rate.mjs +10 -10
- package/fesm2015/ng-nest-ui-resizable.mjs +16 -21
- package/fesm2015/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-result.mjs +10 -10
- package/fesm2015/ng-nest-ui-ripple.mjs +12 -12
- package/fesm2015/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-select.mjs +15 -15
- package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-skeleton.mjs +10 -10
- package/fesm2015/ng-nest-ui-slider-select.mjs +27 -20
- package/fesm2015/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-slider.mjs +13 -11
- package/fesm2015/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-statistic.mjs +16 -16
- package/fesm2015/ng-nest-ui-steps.mjs +10 -10
- package/fesm2015/ng-nest-ui-switch.mjs +10 -10
- package/fesm2015/ng-nest-ui-table.mjs +40 -50
- package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tabs.mjs +25 -25
- package/fesm2015/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tag.mjs +10 -10
- package/fesm2015/ng-nest-ui-text-retract.mjs +10 -10
- package/fesm2015/ng-nest-ui-textarea.mjs +10 -10
- package/fesm2015/ng-nest-ui-theme.mjs +10 -10
- package/fesm2015/ng-nest-ui-time-ago.mjs +7 -7
- package/fesm2015/ng-nest-ui-time-picker.mjs +33 -17
- package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-time-range.mjs +7 -7
- package/fesm2015/ng-nest-ui-timeline.mjs +10 -10
- package/fesm2015/ng-nest-ui-tooltip.mjs +13 -13
- package/fesm2015/ng-nest-ui-transfer.mjs +10 -10
- package/fesm2015/ng-nest-ui-tree-file.mjs +16 -13
- package/fesm2015/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tree-select.mjs +15 -15
- package/fesm2015/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tree.mjs +19 -19
- package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-typography.mjs +10 -10
- package/fesm2015/ng-nest-ui-upload.mjs +17 -22
- package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-affix.mjs +10 -10
- package/fesm2020/ng-nest-ui-alert.mjs +10 -10
- package/fesm2020/ng-nest-ui-anchor.mjs +28 -31
- package/fesm2020/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-api.mjs +7 -7
- package/fesm2020/ng-nest-ui-auto-complete.mjs +13 -13
- package/fesm2020/ng-nest-ui-avatar.mjs +20 -23
- package/fesm2020/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-back-top.mjs +23 -22
- package/fesm2020/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-badge.mjs +10 -10
- package/fesm2020/ng-nest-ui-base-form.mjs +10 -10
- package/fesm2020/ng-nest-ui-border.mjs +7 -7
- package/fesm2020/ng-nest-ui-button.mjs +34 -22
- package/fesm2020/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-calendar.mjs +10 -10
- package/fesm2020/ng-nest-ui-card.mjs +10 -10
- package/fesm2020/ng-nest-ui-carousel.mjs +16 -16
- package/fesm2020/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-cascade.mjs +13 -13
- package/fesm2020/ng-nest-ui-checkbox.mjs +10 -10
- package/fesm2020/ng-nest-ui-collapse.mjs +16 -16
- package/fesm2020/ng-nest-ui-color-picker.mjs +15 -15
- package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-color.mjs +16 -19
- package/fesm2020/ng-nest-ui-color.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-comment.mjs +16 -16
- package/fesm2020/ng-nest-ui-container.mjs +31 -31
- package/fesm2020/ng-nest-ui-core.mjs +78 -47
- package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-crumb.mjs +10 -10
- package/fesm2020/ng-nest-ui-date-picker.mjs +49 -49
- package/fesm2020/ng-nest-ui-description.mjs +16 -16
- package/fesm2020/ng-nest-ui-dialog.mjs +40 -40
- package/fesm2020/ng-nest-ui-doc.mjs +7 -7
- package/fesm2020/ng-nest-ui-drawer.mjs +31 -31
- package/fesm2020/ng-nest-ui-dropdown.mjs +13 -13
- package/fesm2020/ng-nest-ui-empty.mjs +10 -10
- package/fesm2020/ng-nest-ui-examples.mjs +7 -7
- package/fesm2020/ng-nest-ui-find.mjs +10 -10
- package/fesm2020/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-form.mjs +16 -16
- package/fesm2020/ng-nest-ui-highlight.mjs +15 -14
- package/fesm2020/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-i18n.mjs +29 -17
- package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-icon.mjs +18 -23
- package/fesm2020/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-image.mjs +29 -26
- package/fesm2020/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-inner.mjs +10 -10
- package/fesm2020/ng-nest-ui-input-number.mjs +10 -10
- package/fesm2020/ng-nest-ui-input.mjs +16 -16
- package/fesm2020/ng-nest-ui-keyword.mjs +10 -10
- package/fesm2020/ng-nest-ui-layout.mjs +16 -16
- package/fesm2020/ng-nest-ui-link.mjs +10 -10
- package/fesm2020/ng-nest-ui-list.mjs +20 -20
- package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-loading.mjs +10 -10
- package/fesm2020/ng-nest-ui-menu.mjs +24 -24
- package/fesm2020/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-message-box.mjs +10 -10
- package/fesm2020/ng-nest-ui-message.mjs +10 -10
- package/fesm2020/ng-nest-ui-notification.mjs +10 -10
- package/fesm2020/ng-nest-ui-outlet.mjs +7 -7
- package/fesm2020/ng-nest-ui-page-header.mjs +10 -10
- package/fesm2020/ng-nest-ui-pagination.mjs +10 -10
- package/fesm2020/ng-nest-ui-pattern.mjs +7 -7
- package/fesm2020/ng-nest-ui-popconfirm.mjs +10 -10
- package/fesm2020/ng-nest-ui-popover.mjs +13 -13
- package/fesm2020/ng-nest-ui-portal.mjs +9 -9
- package/fesm2020/ng-nest-ui-portal.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-progress.mjs +10 -10
- package/fesm2020/ng-nest-ui-radio.mjs +10 -10
- package/fesm2020/ng-nest-ui-rate.mjs +10 -10
- package/fesm2020/ng-nest-ui-resizable.mjs +16 -19
- package/fesm2020/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-result.mjs +10 -10
- package/fesm2020/ng-nest-ui-ripple.mjs +12 -12
- package/fesm2020/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-select.mjs +15 -15
- package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-skeleton.mjs +10 -10
- package/fesm2020/ng-nest-ui-slider-select.mjs +27 -20
- package/fesm2020/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-slider.mjs +13 -11
- package/fesm2020/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-statistic.mjs +16 -16
- package/fesm2020/ng-nest-ui-steps.mjs +10 -10
- package/fesm2020/ng-nest-ui-switch.mjs +10 -10
- package/fesm2020/ng-nest-ui-table.mjs +40 -46
- package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tabs.mjs +25 -25
- package/fesm2020/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tag.mjs +10 -10
- package/fesm2020/ng-nest-ui-text-retract.mjs +10 -10
- package/fesm2020/ng-nest-ui-textarea.mjs +10 -10
- package/fesm2020/ng-nest-ui-theme.mjs +10 -10
- package/fesm2020/ng-nest-ui-time-ago.mjs +7 -7
- package/fesm2020/ng-nest-ui-time-picker.mjs +33 -17
- package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-time-range.mjs +7 -7
- package/fesm2020/ng-nest-ui-timeline.mjs +10 -10
- package/fesm2020/ng-nest-ui-tooltip.mjs +13 -13
- package/fesm2020/ng-nest-ui-transfer.mjs +10 -10
- package/fesm2020/ng-nest-ui-tree-file.mjs +16 -13
- package/fesm2020/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tree-select.mjs +15 -15
- package/fesm2020/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tree.mjs +19 -19
- package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-typography.mjs +10 -10
- package/fesm2020/ng-nest-ui-upload.mjs +17 -20
- package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
- package/i18n/i18n.property.d.ts +3 -0
- package/i18n/languages/en_GB.d.ts +3 -0
- package/i18n/languages/en_US.d.ts +3 -0
- package/i18n/languages/zh_CN.d.ts +3 -0
- package/i18n/languages/zh_TW.d.ts +3 -0
- package/icon/icon.component.d.ts +4 -4
- package/image/image-preview.component.d.ts +1 -0
- package/menu/menu.component.d.ts +2 -2
- package/package.json +1 -1
- package/resizable/resizable.directive.d.ts +1 -1
- package/slider-select/slider-select.component.d.ts +1 -1
- package/table/drag.directive.d.ts +1 -1
- package/table/table-body.component.d.ts +2 -2
- package/time-picker/time-picker.component.d.ts +1 -0
- package/upload/upload-portal.component.d.ts +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BehaviorSubject, Subject } from 'rxjs';
|
|
2
2
|
import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild } from '@angular/core';
|
|
3
3
|
import { XSelectProperty, XSelectPrefix } from './select.property';
|
|
4
|
-
import { XIsEmpty, XIsObservable, XIsChange, XSetData, XClearClass, XIsObjectArray, XIsFunction, XIsArray, XIsString, XRemove, XResize } from '@ng-nest/ui/core';
|
|
4
|
+
import { XIsEmpty, XIsObservable, XIsChange, XSetData, XClearClass, XIsObjectArray, XIsFunction, XIsArray, XIsString, XRemove, XResize, XComputed } from '@ng-nest/ui/core';
|
|
5
5
|
import { XPortalConnectedPosition } from '@ng-nest/ui/portal';
|
|
6
6
|
import { XSelectPortalComponent } from './select-portal.component';
|
|
7
7
|
import { takeUntil, throttleTime, debounceTime, distinctUntilChanged, map } from 'rxjs/operators';
|
|
@@ -179,7 +179,7 @@ export class XSelectComponent extends XSelectProperty {
|
|
|
179
179
|
const ele = ivf.children[i];
|
|
180
180
|
if (ele.tagName === 'X-TAG') {
|
|
181
181
|
const { offsetTop, offsetWidth } = ele;
|
|
182
|
-
const style =
|
|
182
|
+
const style = XComputed(ele);
|
|
183
183
|
marginLeft = Number(style.marginLeft.replace('px', ''));
|
|
184
184
|
marginTop = Number(style.marginTop.replace('px', ''));
|
|
185
185
|
if (rowTagTop === -1) {
|
|
@@ -582,9 +582,9 @@ export class XSelectComponent extends XSelectProperty {
|
|
|
582
582
|
setTimeout(() => this.inputChange.next(this.multiple ? this.multipleSearchValue : this.displayValue));
|
|
583
583
|
}
|
|
584
584
|
}
|
|
585
|
-
/** @nocollapse */ XSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
586
|
-
/** @nocollapse */ XSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XSelectComponent, selector: "x-select", providers: [XValueAccessor(XSelectComponent)], viewQueries: [{ propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }, { propertyName: "select", first: true, predicate: ["select"], descendants: true, static: true }, { propertyName: "multipleValueTpl", first: true, predicate: ["multipleValueTpl"], descendants: true, static: true }, { propertyName: "multipleInput", first: true, predicate: ["multipleInput"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #select class=\"x-select\" [class.x-select-multiple]=\"multiple\">\r\n <div class=\"x-select-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [iconSpin]=\"iconSpin\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"getReadonly\"\r\n [clearable]=\"showClearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl ? valueTpl : nodeTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"true\"\r\n [inputPadding]=\"inputPadding\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n (xInput)=\"onInput($event)\"\r\n (xFocus)=\"onFocus($event)\"\r\n (xClick)=\"showPortal(true)\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n (xComposition)=\"composition = $event\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n\r\n<ng-template #multipleValueTpl>\r\n <x-tag\r\n [@.disabled]=\"true\"\r\n *ngFor=\"let node of displayNodes; index as i\"\r\n [closable]=\"!disabled\"\r\n (close)=\"closeNode($event, node, i)\"\r\n [size]=\"size\"\r\n >{{ node.label }}</x-tag\r\n >\r\n <x-tag [@.disabled]=\"true\" *ngIf=\"showDisplayMore\" [size]=\"size\">\r\n <ng-container *xOutlet=\"getMaxTagContent; context: { $surplus: selectedSurplus, $total: selectedTotal }\">{{\r\n displayMore\r\n }}</ng-container>\r\n </x-tag>\r\n <x-input\r\n #multipleInput\r\n *ngIf=\"search\"\r\n bordered=\"false\"\r\n [size]=\"size\"\r\n inputPadding=\"0.275\"\r\n [(ngModel)]=\"multipleSearchValue\"\r\n (xInput)=\"onInput($event)\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n ></x-input>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";x-select{display:inline-block;width:12rem}.x-select{margin:0;padding:0;width:100%}.x-select x-input{width:100%}.x-select-multiple .x-input-value-template-value{display:flex;align-items:center;margin-bottom:.125rem;flex-wrap:wrap;width:initial;height:initial!important}.x-select-multiple .x-input-value-template-value>x-tag{display:inline-flex;margin-left:.0625rem;margin-top:.125rem}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-big{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-big>.x-icon{right:calc(-var(--x-padding-large)/2)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-large{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-large>.x-icon{right:calc(-var(--x-padding-medium)/2)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-medium{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-medium>.x-icon{right:calc(-var(--x-padding-small)/2)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-small{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-small>.x-icon{right:calc(-var(--x-padding-mini)/2)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-mini{height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-mini>.x-icon{right:-.0625rem}.x-select-multiple .x-input-value-template-value>x-input{margin-top:.125rem;width:5rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-large);line-height:var(--x-height-large)}.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-select-multiple .x-input-value-template-value>x-input .x-input-big>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-select-multiple .x-input-value-template-value>x-input .x-input-large>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-small);line-height:var(--x-height-small)}.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-select-multiple .x-input-value-template-value>x-input .x-input-small>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-value-template-value{height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-max-length{height:1.125rem;line-height:1.125rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>label{height:1.125rem;line-height:1.125rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-row>.x-input-input>input{background-color:transparent}.x-select-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);width:100%;border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);position:relative;display:flex;background-color:var(--x-background);overflow:hidden auto;max-height:calc((calc(var(--x-font-size) + .875rem) * 6) + (var(--x-border-width) * 7))}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.XInputComponent, selector: "x-input" }, { kind: "component", type: i8.XTagComponent, selector: "x-tag" }, { kind: "directive", type: i9.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
587
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
585
|
+
/** @nocollapse */ XSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XSelectComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.XPortalService }, { token: i0.ViewContainerRef }, { token: i2.Overlay }, { token: i3.XI18nService }, { token: i4.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
586
|
+
/** @nocollapse */ XSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XSelectComponent, selector: "x-select", providers: [XValueAccessor(XSelectComponent)], viewQueries: [{ propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }, { propertyName: "select", first: true, predicate: ["select"], descendants: true, static: true }, { propertyName: "multipleValueTpl", first: true, predicate: ["multipleValueTpl"], descendants: true, static: true }, { propertyName: "multipleInput", first: true, predicate: ["multipleInput"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #select class=\"x-select\" [class.x-select-multiple]=\"multiple\">\r\n <div class=\"x-select-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [iconSpin]=\"iconSpin\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"getReadonly\"\r\n [clearable]=\"showClearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl ? valueTpl : nodeTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"true\"\r\n [inputPadding]=\"inputPadding\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n (xInput)=\"onInput($event)\"\r\n (xFocus)=\"onFocus($event)\"\r\n (xClick)=\"showPortal(true)\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n (xComposition)=\"composition = $event\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n\r\n<ng-template #multipleValueTpl>\r\n <x-tag\r\n [@.disabled]=\"true\"\r\n *ngFor=\"let node of displayNodes; index as i\"\r\n [closable]=\"!disabled\"\r\n (close)=\"closeNode($event, node, i)\"\r\n [size]=\"size\"\r\n >{{ node.label }}</x-tag\r\n >\r\n <x-tag [@.disabled]=\"true\" *ngIf=\"showDisplayMore\" [size]=\"size\">\r\n <ng-container *xOutlet=\"getMaxTagContent; context: { $surplus: selectedSurplus, $total: selectedTotal }\">{{\r\n displayMore\r\n }}</ng-container>\r\n </x-tag>\r\n <x-input\r\n #multipleInput\r\n *ngIf=\"search\"\r\n bordered=\"false\"\r\n [size]=\"size\"\r\n inputPadding=\"0.275\"\r\n [(ngModel)]=\"multipleSearchValue\"\r\n (xInput)=\"onInput($event)\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n ></x-input>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";x-select{display:inline-block;width:12rem}.x-select{margin:0;padding:0;width:100%}.x-select x-input{width:100%}.x-select-multiple .x-input-value-template-value{display:flex;align-items:center;margin-bottom:.125rem;flex-wrap:wrap;width:initial;height:initial!important}.x-select-multiple .x-input-value-template-value>x-tag{display:inline-flex;margin-left:.0625rem;margin-top:.125rem}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-big{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-big>.x-icon{right:calc(-var(--x-padding-large)/2)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-large{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-large>.x-icon{right:calc(-var(--x-padding-medium)/2)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-medium{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-medium>.x-icon{right:calc(-var(--x-padding-small)/2)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-small{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-small>.x-icon{right:calc(-var(--x-padding-mini)/2)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-mini{height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-mini>.x-icon{right:-.0625rem}.x-select-multiple .x-input-value-template-value>x-input{margin-top:.125rem;width:5rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-large);line-height:var(--x-height-large)}.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-select-multiple .x-input-value-template-value>x-input .x-input-big>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-select-multiple .x-input-value-template-value>x-input .x-input-large>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-small);line-height:var(--x-height-small)}.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-select-multiple .x-input-value-template-value>x-input .x-input-small>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-value-template-value{height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-max-length{height:1.125rem;line-height:1.125rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>label{height:1.125rem;line-height:1.125rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-row>.x-input-input>input{background-color:transparent}.x-select-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);width:100%;border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);position:relative;display:flex;background-color:var(--x-background);overflow:hidden auto;max-height:calc((calc(var(--x-font-size) + .875rem) * 6) + (var(--x-border-width) * 7))}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.XInputComponent, selector: "x-input" }, { kind: "component", type: i8.XTagComponent, selector: "x-tag" }, { kind: "directive", type: i9.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
587
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XSelectComponent, decorators: [{
|
|
588
588
|
type: Component,
|
|
589
589
|
args: [{ selector: `${XSelectPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XSelectComponent)], template: "<div #select class=\"x-select\" [class.x-select-multiple]=\"multiple\">\r\n <div class=\"x-select-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [iconSpin]=\"iconSpin\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"getReadonly\"\r\n [clearable]=\"showClearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl ? valueTpl : nodeTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"true\"\r\n [inputPadding]=\"inputPadding\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n (xInput)=\"onInput($event)\"\r\n (xFocus)=\"onFocus($event)\"\r\n (xClick)=\"showPortal(true)\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n (xComposition)=\"composition = $event\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n\r\n<ng-template #multipleValueTpl>\r\n <x-tag\r\n [@.disabled]=\"true\"\r\n *ngFor=\"let node of displayNodes; index as i\"\r\n [closable]=\"!disabled\"\r\n (close)=\"closeNode($event, node, i)\"\r\n [size]=\"size\"\r\n >{{ node.label }}</x-tag\r\n >\r\n <x-tag [@.disabled]=\"true\" *ngIf=\"showDisplayMore\" [size]=\"size\">\r\n <ng-container *xOutlet=\"getMaxTagContent; context: { $surplus: selectedSurplus, $total: selectedTotal }\">{{\r\n displayMore\r\n }}</ng-container>\r\n </x-tag>\r\n <x-input\r\n #multipleInput\r\n *ngIf=\"search\"\r\n bordered=\"false\"\r\n [size]=\"size\"\r\n inputPadding=\"0.275\"\r\n [(ngModel)]=\"multipleSearchValue\"\r\n (xInput)=\"onInput($event)\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n ></x-input>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";x-select{display:inline-block;width:12rem}.x-select{margin:0;padding:0;width:100%}.x-select x-input{width:100%}.x-select-multiple .x-input-value-template-value{display:flex;align-items:center;margin-bottom:.125rem;flex-wrap:wrap;width:initial;height:initial!important}.x-select-multiple .x-input-value-template-value>x-tag{display:inline-flex;margin-left:.0625rem;margin-top:.125rem}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-big{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-big>.x-icon{right:calc(-var(--x-padding-large)/2)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-large{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-large>.x-icon{right:calc(-var(--x-padding-medium)/2)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-medium{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-medium>.x-icon{right:calc(-var(--x-padding-small)/2)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-small{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-small>.x-icon{right:calc(-var(--x-padding-mini)/2)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-mini{height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-mini>.x-icon{right:-.0625rem}.x-select-multiple .x-input-value-template-value>x-input{margin-top:.125rem;width:5rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-large);line-height:var(--x-height-large)}.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-select-multiple .x-input-value-template-value>x-input .x-input-big>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-select-multiple .x-input-value-template-value>x-input .x-input-large>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-small);line-height:var(--x-height-small)}.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-select-multiple .x-input-value-template-value>x-input .x-input-small>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-value-template-value{height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-max-length{height:1.125rem;line-height:1.125rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>label{height:1.125rem;line-height:1.125rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-row>.x-input-input>input{background-color:transparent}.x-select-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);width:100%;border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);position:relative;display:flex;background-color:var(--x-background);overflow:hidden auto;max-height:calc((calc(var(--x-font-size) + .875rem) * 6) + (var(--x-border-width) * 7))}\n"] }]
|
|
590
590
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i1.XPortalService }, { type: i0.ViewContainerRef }, { type: i2.Overlay }, { type: i3.XI18nService }, { type: i4.XConfigService }]; }, propDecorators: { inputCom: [{
|
|
@@ -600,4 +600,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImpor
|
|
|
600
600
|
type: ViewChild,
|
|
601
601
|
args: ['multipleInput']
|
|
602
602
|
}] } });
|
|
603
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQ0wsU0FBUyxFQUVULGlCQUFpQixFQUNqQix1QkFBdUIsRUFPdkIsU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEYsT0FBTyxFQUNMLFFBQVEsRUFDUixhQUFhLEVBQ2IsU0FBUyxFQUNULFFBQVEsRUFDUixXQUFXLEVBR1gsY0FBYyxFQUNkLFdBQVcsRUFDWCxRQUFRLEVBQ1IsU0FBUyxFQUNULE9BQU8sRUFDUCxPQUFPLEVBRVIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQXFDLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hJLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFXdkQsTUFBTSxP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LENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ2pDO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFrQjtRQUN4QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUN4RyxDQUFDOztnSUFwa0JVLGdCQUFnQjtvSEFBaEIsZ0JBQWdCLG1DQUZoQixDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGlmQy9DL0MscXJFQW9FQTsyRkRuQmEsZ0JBQWdCO2tCQVI1QixTQUFTOytCQUNFLEdBQUcsYUFBYSxFQUFFLGlCQUdiLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLGtCQUFrQixDQUFDOzBRQUdKLFFBQVE7c0JBQWhELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDQSxNQUFNO3NCQUE1QyxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1ksZ0JBQWdCO3NCQUFoRSxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDbkIsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBUZW1wbGF0ZVJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYU2VsZWN0Tm9kZSwgWFNlbGVjdFByb3BlcnR5LCBYU2VsZWN0UHJlZml4IH0gZnJvbSAnLi9zZWxlY3QucHJvcGVydHknO1xyXG5pbXBvcnQge1xyXG4gIFhJc0VtcHR5LFxyXG4gIFhJc09ic2VydmFibGUsXHJcbiAgWElzQ2hhbmdlLFxyXG4gIFhTZXREYXRhLFxyXG4gIFhDbGVhckNsYXNzLFxyXG4gIFhDb25maWdTZXJ2aWNlLFxyXG4gIFhQb3NpdGlvblRvcEJvdHRvbSxcclxuICBYSXNPYmplY3RBcnJheSxcclxuICBYSXNGdW5jdGlvbixcclxuICBYSXNBcnJheSxcclxuICBYSXNTdHJpbmcsXHJcbiAgWFJlbW92ZSxcclxuICBYUmVzaXplLFxyXG4gIFhQbGFjZW1lbnRcclxufSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWFBvcnRhbFNlcnZpY2UsIFhQb3J0YWxPdmVybGF5UmVmLCBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24gfSBmcm9tICdAbmctbmVzdC91aS9wb3J0YWwnO1xyXG5pbXBvcnQgeyBYSW5wdXRDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9pbnB1dCc7XHJcbmltcG9ydCB7IFhTZWxlY3RQb3J0YWxDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC1wb3J0YWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT3ZlcmxheSwgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LCBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UsIE92ZXJsYXlDb25maWcgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCwgdGhyb3R0bGVUaW1lLCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IERPV05fQVJST1csIFVQX0FSUk9XLCBFTlRFUiwgTUFDX0VOVEVSLCBFU0NBUEUsIExFRlRfQVJST1csIFJJR0hUX0FSUk9XLCBUQUIsIEJBQ0tTUEFDRSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcbmltcG9ydCB7IFhWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuaW1wb3J0IHsgWEkxOG5TZWxlY3QsIFhJMThuU2VydmljZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hTZWxlY3RQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1hWYWx1ZUFjY2Vzc29yKFhTZWxlY3RDb21wb25lbnQpXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFNlbGVjdENvbXBvbmVudCBleHRlbmRzIFhTZWxlY3RQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBAVmlld0NoaWxkKCdpbnB1dENvbScsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0Q29tITogWElucHV0Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdCcsIHsgc3RhdGljOiB0cnVlIH0pIHNlbGVjdCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ211bHRpcGxlVmFsdWVUcGwnLCB7IHN0YXRpYzogdHJ1ZSB9KSBtdWx0aXBsZVZhbHVlVHBsITogVGVtcGxhdGVSZWY8dm9pZD47XHJcbiAgQFZpZXdDaGlsZCgnbXVsdGlwbGVJbnB1dCcpIG11bHRpcGxlSW5wdXQhOiBYSW5wdXRDb21wb25lbnQ7XHJcblxyXG4gIGdldCBnZXRSZWFkb25seSgpIHtcclxuICAgIHJldHVybiAodGhpcy5yZWFkb25seSAmJiAhdGhpcy5zZWFyY2gpIHx8IChCb29sZWFuKHRoaXMuc2VhcmNoKSAmJiBCb29sZWFuKHRoaXMubXVsdGlwbGUpKTtcclxuICB9XHJcblxyXG4gIGdldCBnZXRNYXhUYWdDb250ZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMubWF4VGFnQ29udGVudCB8fCB0aGlzLmxvY2FsZS5tYXhUYWdDb250ZW50O1xyXG4gIH1cclxuXHJcbiAgbm9Qb3J0YWxXaWR0aFBsYWNlbWVudHM6IFhQbGFjZW1lbnRbXSA9IFsnYm90dG9tJywgJ3RvcCddO1xyXG4gIGhhc1BvcnRhbFdpZHRoUGxhY2VtZW50czogWFBsYWNlbWVudFtdID0gWydib3R0b20tc3RhcnQnLCAnYm90dG9tLWVuZCcsICd0b3Atc3RhcnQnLCAndG9wLWVuZCddO1xyXG4gIHBsYWNlbWVudHM6IFhQbGFjZW1lbnRbXSA9IFtdO1xyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIGlmIChYSXNFbXB0eSh2YWx1ZSkpIHtcclxuICAgICAgICB2YWx1ZSA9IFtdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghWElzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgdmFsdWUgPSBbdmFsdWVdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLnNldERpc3BsYXlWYWx1ZSgpO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5uZXh0KHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgPSB0cnVlO1xyXG4gIGVudGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0NsZWFyYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRpc3BsYXlWYWx1ZTogYW55ID0gJyc7XHJcbiAgbXVsdGlwbGVTZWFyY2hWYWx1ZSA9ICcnO1xyXG4gIG5vZGVzOiBYU2VsZWN0Tm9kZVtdID0gW107XHJcbiAgc2VsZWN0ZWROb2RlczogWFNlbGVjdE5vZGVbXSA9IFtdO1xyXG4gIGRpc3BsYXlOb2RlczogWFNlbGVjdE5vZGVbXSA9IFtdO1xyXG4gIGRpc3BsYXlNb3JlID0gJyc7XHJcbiAgc2hvd0Rpc3BsYXlNb3JlID0gZmFsc2U7XHJcbiAgc2VhcmNoTm9kZXM6IFhTZWxlY3ROb2RlW10gPSBbXTtcclxuICBjbG9uZU5vZGVzITogWFNlbGVjdE5vZGVbXTtcclxuICBwb3J0YWwhOiBYUG9ydGFsT3ZlcmxheVJlZjxYU2VsZWN0UG9ydGFsQ29tcG9uZW50PjtcclxuICBpY29uOiBzdHJpbmcgPSAnZnRvLWNoZXZyb24tZG93bic7XHJcbiAgaWNvblNwaW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBib3ghOiBET01SZWN0O1xyXG4gIHByb3RhbEhlaWdodCE6IG51bWJlcjtcclxuICBtYXhOb2RlczogbnVtYmVyID0gNjtcclxuICBpbnB1dFBhZGRpbmcgPSAwLjQ7XHJcbiAgcHJvdGFsVG9ib3R0b206IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGFzeW5jTG9hZGluZyA9IGZhbHNlO1xyXG4gIGFuaW1hdGluZyA9IGZhbHNlO1xyXG4gIG9iamVjdEFycmF5ID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRTdXJwbHVzID0gMDtcclxuICBzZWxlY3RlZFRvdGFsID0gMDtcclxuICBsb2NhbGU6IFhJMThuU2VsZWN0ID0ge307XHJcbiAgb3ZlcnJpZGUgdmFsdWVUcGxDb250ZXh0OiB7ICRub2RlOiBhbnk7ICRpc1ZhbHVlOiBib29sZWFuIH0gPSB7ICRub2RlOiBudWxsLCAkaXNWYWx1ZTogdHJ1ZSB9O1xyXG4gIHZhbHVlQ2hhbmdlOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIHBvc2l0aW9uQ2hhbmdlOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIGNsb3NlU3ViamVjdDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgZGF0YUNoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8WFNlbGVjdE5vZGVbXT4oW10pO1xyXG4gIGtleWRvd25TdWJqZWN0OiBTdWJqZWN0PEtleWJvYXJkRXZlbnQ+ID0gbmV3IFN1YmplY3QoKTtcclxuICBpbnB1dENoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBjb21wb3NpdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG11bHRpcGxlSW5wdXRTaXplQ2hhbmdlID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXIhOiBSZXNpemVPYnNlcnZlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBvdmVycmlkZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBwb3J0YWxTZXJ2aWNlOiBYUG9ydGFsU2VydmljZSxcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcclxuICAgIHB1YmxpYyBpMThuOiBYSTE4blNlcnZpY2UsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0RmxleCh0aGlzLnNlbGVjdC5uYXRpdmVFbGVtZW50LCB0aGlzLnJlbmRlcmVyLCB0aGlzLmp1c3RpZnksIHRoaXMuYWxpZ24sIHRoaXMuZGlyZWN0aW9uKTtcclxuICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuICAgIHRoaXMuc2V0U3ViamVjdCgpO1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy52YWx1ZVRwbCA9IHRoaXMubXVsdGlwbGVWYWx1ZVRwbDtcclxuICAgICAgdGhpcy5pbnB1dFBhZGRpbmcgPSAwLjEyNTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnBvcnRhbFdpZHRoKSB7XHJcbiAgICAgIGlmICh0aGlzLnBsYWNlbWVudCA9PT0gJ2JvdHRvbScpIHtcclxuICAgICAgICB0aGlzLnBsYWNlbWVudCA9ICdib3R0b20tc3RhcnQnO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucGxhY2VtZW50cyA9IFt0aGlzLnBsYWNlbWVudCwgLi4udGhpcy5oYXNQb3J0YWxXaWR0aFBsYWNlbWVudHNdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wbGFjZW1lbnRzID0gW3RoaXMucGxhY2VtZW50LCAuLi50aGlzLm5vUG9ydGFsV2lkdGhQbGFjZW1lbnRzXTtcclxuICAgIH1cclxuICAgIHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2VcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKCh4KSA9PiB4LnNlbGVjdCBhcyBYSTE4blNlbGVjdCksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2NhbGUgPSB4O1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgZGF0YSB9ID0gY2hhbmdlcztcclxuICAgIFhJc0NoYW5nZShkYXRhKSAmJiB0aGlzLnNldERhdGEoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuc2V0UG9ydGFsKCk7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiB0aGlzLmlucHV0Q29tLmlucHV0VmFsdWVSZWYpIHtcclxuICAgICAgWFJlc2l6ZSh0aGlzLmlucHV0Q29tLmlucHV0VmFsdWVSZWYubmF0aXZlRWxlbWVudClcclxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMzApLCB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlciA9IHgucmVzaXplT2JzZXJ2ZXI7XHJcbiAgICAgICAgICB0aGlzLnNldE11dGlwbGVJbnB1dFNpemUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcblxyXG4gIHNldENsYXNzTWFwKCkge1xyXG4gICAgWENsZWFyQ2xhc3ModGhpcy5sYWJlbE1hcCk7XHJcbiAgICB0aGlzLmxhYmVsTWFwW2B4LXRleHQtYWxpZ24tJHt0aGlzLmxhYmVsQWxpZ259YF0gPSB0aGlzLmxhYmVsQWxpZ24gPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZXREYXRhKCkge1xyXG4gICAgaWYgKHRoaXMuYXN5bmMpIHJldHVybjtcclxuICAgIFhTZXREYXRhPFhTZWxlY3ROb2RlPih0aGlzLmRhdGEsIHRoaXMuX3VuU3ViamVjdCkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMubm9kZXMgPSB4O1xyXG4gICAgICB0aGlzLmRhdGFDaGFuZ2UubmV4dCh0aGlzLm5vZGVzKTtcclxuICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUoKTtcclxuICAgICAgdGhpcy5zZXRQb3J0YWwoKTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRTdWJqZWN0KCkge1xyXG4gICAgdGhpcy5jbG9zZVN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZVBvcnRhbCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmlucHV0Q2hhbmdlLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2VUaW1lIGFzIG51bWJlciksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZSh4KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5rZXlkb3duU3ViamVjdC5waXBlKHRocm90dGxlVGltZSgxMCksIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgY29uc3Qga2V5Q29kZSA9IHgua2V5Q29kZTtcclxuICAgICAgaWYgKCF0aGlzLnBvcnRhbEF0dGFjaGVkKCkgJiYgW0RPV05fQVJST1csIFVQX0FSUk9XLCBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPVywgRU5URVIsIE1BQ19FTlRFUiwgQkFDS1NQQUNFXS5pbmNsdWRlcyhrZXlDb2RlKSkge1xyXG4gICAgICAgIHRoaXMuaW5wdXRDaGFuZ2UubmV4dCh0aGlzLmRpc3BsYXlWYWx1ZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMucG9ydGFsQXR0YWNoZWQoKSAmJiBbRVNDQVBFXS5pbmNsdWRlcyhrZXlDb2RlKSkge1xyXG4gICAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLm11bHRpcGxlSW5wdXRTaXplQ2hhbmdlLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZUlucHV0KSB7XHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLm11bHRpcGxlSW5wdXQ/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGlucHV0LCAnd2lkdGgnLCBgJHt4fXB4YCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0TXV0aXBsZUlucHV0U2l6ZSgpIHtcclxuICAgIGNvbnN0IGl2ZiA9IHRoaXMuaW5wdXRDb20uaW5wdXRWYWx1ZVJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxEaXZFbGVtZW50O1xyXG4gICAgbGV0IHsgY2xpZW50V2lkdGgsIHNjcm9sbEhlaWdodCB9ID0gaXZmO1xyXG4gICAgY29uc3QgbGVuID0gaXZmLmNoaWxkcmVuLmxlbmd0aDtcclxuICAgIGxldCBsYXN0Um93VGFnVG9wID0gLTE7XHJcbiAgICBsZXQgbGluZXMgPSAxO1xyXG4gICAgbGV0IHJvd1RhZ1RvcCA9IC0xO1xyXG4gICAgbGV0IGxhc3RSb3dUYWdzV2lkdGggPSAwO1xyXG4gICAgbGV0IG1hcmdpbkxlZnQgPSAwO1xyXG4gICAgbGV0IG1hcmdpblRvcCA9IDA7XHJcbiAgICBmb3IgKGxldCBpID0gbGVuIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgY29uc3QgZWxlID0gaXZmLmNoaWxkcmVuW2ldIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICBpZiAoZWxlLnRhZ05hbWUgPT09ICdYLVRBRycpIHtcclxuICAgICAgICBjb25zdCB7IG9mZnNldFRvcCwgb2Zmc2V0V2lkdGggfSA9IGVsZTtcclxuICAgICAgICBjb25zdCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlKTtcclxuICAgICAgICBtYXJnaW5MZWZ0ID0gTnVtYmVyKHN0eWxlLm1hcmdpbkxlZnQucmVwbGFjZSgncHgnLCAnJykpO1xyXG4gICAgICAgIG1hcmdpblRvcCA9IE51bWJlcihzdHlsZS5tYXJnaW5Ub3AucmVwbGFjZSgncHgnLCAnJykpO1xyXG4gICAgICAgIGlmIChyb3dUYWdUb3AgPT09IC0xKSB7XHJcbiAgICAgICAgICByb3dUYWdUb3AgPSBvZmZzZXRUb3A7XHJcbiAgICAgICAgfSBlbHNlIGlmIChyb3dUYWdUb3AgIT09IG9mZnNldFRvcCkge1xyXG4gICAgICAgICAgbGluZXMrKztcclxuICAgICAgICAgIHJvd1RhZ1RvcCA9IG9mZnNldFRvcDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxhc3RSb3dUYWdUb3AgPT09IC0xKSB7XHJcbiAgICAgICAgICBsYXN0Um93VGFnVG9wID0gb2Zmc2V0VG9wO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGFzdFJvd1RhZ1RvcCA9PT0gb2Zmc2V0VG9wKSB7XHJcbiAgICAgICAgICBsYXN0Um93VGFnc1dpZHRoICs9IG9mZnNldFdpZHRoICsgbWFyZ2luTGVmdDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IGhlaWdodCA9IHNjcm9sbEhlaWdodCArIChsaW5lcyA+IDEgPyBtYXJnaW5Ub3AgOiAwKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5pbnB1dENvbS5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgYCR7aGVpZ2h0fXB4YCk7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZUlucHV0KSB7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVJbnB1dFNpemVDaGFuZ2UubmV4dChjbGllbnRXaWR0aCAtIGxhc3RSb3dUYWdzV2lkdGggLSBtYXJnaW5MZWZ0KTtcclxuICAgIH1cclxuICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy51cGRhdGVQb3NpdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgbWVudGVyKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgIXRoaXMuY2xlYXJhYmxlIHx8IHRoaXMuaWNvblNwaW4pIHJldHVybjtcclxuICAgIHRoaXMuZW50ZXIgPSB0cnVlO1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLmRpc3BsYXlWYWx1ZSkpIHtcclxuICAgICAgdGhpcy5pY29uID0gJyc7XHJcbiAgICAgIHRoaXMuc2hvd0NsZWFyYWJsZSA9IHRydWU7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1sZWF2ZSgpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8ICF0aGlzLmNsZWFyYWJsZSB8fCB0aGlzLmljb25TcGluKSByZXR1cm47XHJcbiAgICB0aGlzLmVudGVyID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5jbGVhcmFibGUpIHtcclxuICAgICAgdGhpcy5pY29uID0gJ2Z0by1jaGV2cm9uLWRvd24nO1xyXG4gICAgICB0aGlzLnNob3dDbGVhcmFibGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xyXG4gICAgaWYgKFhJc0Z1bmN0aW9uKHRoaXMuZGF0YSkpIHtcclxuICAgICAgaWYgKCF0aGlzLnBvcnRhbEF0dGFjaGVkKCkpIHtcclxuICAgICAgICB0aGlzLnNob3dQb3J0YWwoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmljb24gPSAnZnRvLWxvYWRlcic7XHJcbiAgICAgIHRoaXMuaWNvblNwaW4gPSB0cnVlO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIFhTZXREYXRhPFhTZWxlY3ROb2RlPih0aGlzLmRhdGEsIHRoaXMuX3VuU3ViamVjdCwgdHJ1ZSwgdmFsdWUgYXMgYW55KS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLmljb24gPSAnJztcclxuICAgICAgICB0aGlzLmljb25TcGluID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKCF0aGlzLmVudGVyICYmIHRoaXMuY2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dDbGVhcmFibGUgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5ub2RlcyA9IHg7XHJcbiAgICAgICAgdGhpcy5kYXRhQ2hhbmdlLm5leHQodGhpcy5ub2Rlcyk7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubm9kZXMpIHtcclxuICAgICAgaWYgKCF0aGlzLnBvcnRhbEF0dGFjaGVkKCkpIHtcclxuICAgICAgICB0aGlzLnNob3dQb3J0YWwoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoWElzRW1wdHkodmFsdWUpKSB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hOb2RlcyA9IFsuLi50aGlzLm5vZGVzXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldFNlYXJjaE5vZGVzKHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRhdGFDaGFuZ2UubmV4dCh0aGlzLnNlYXJjaE5vZGVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFNlYXJjaE5vZGVzKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLmNhc2VTZW5zaXRpdmUpIHtcclxuICAgICAgdGhpcy5zZWFyY2hOb2RlcyA9IHRoaXMubm9kZXMuZmlsdGVyKCh4KSA9PiB4LmxhYmVsLmluZGV4T2YodmFsdWUpID49IDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWFyY2hOb2RlcyA9IHRoaXMubm9kZXMuZmlsdGVyKCh4KSA9PiAoeC5sYWJlbCBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigodmFsdWUgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpKSA+PSAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyRW1pdCgpIHtcclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLm11bHRpcGxlID8gW10gOiAnJztcclxuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gJyc7XHJcbiAgICB0aGlzLm11bHRpcGxlU2VhcmNoVmFsdWUgPSAnJztcclxuICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IFtdO1xyXG4gICAgdGhpcy5zZXREaXNwbGF5Tm9kZXMoKTtcclxuICAgIHRoaXMudmFsdWVUcGxDb250ZXh0LiRub2RlID0gbnVsbDtcclxuICAgIHRoaXMubWxlYXZlKCk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLmlucHV0Q2hhbmdlLm5leHQoJycpO1xyXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBzZXREaXNwbGF5VmFsdWUoY2xpY2tOb2RlPzogWFNlbGVjdE5vZGUpIHtcclxuICAgIGlmICh0aGlzLm5vZGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICBpZiAoWElzRW1wdHkodGhpcy52YWx1ZSkpIHtcclxuICAgICAgICAgIHRoaXMudmFsdWUgPSBbXTtcclxuICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gJyc7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBbXTtcclxuICAgICAgICAgIHRoaXMuZGlzcGxheU5vZGVzID0gW107XHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXlNb3JlID0gJyc7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlVHBsQ29udGV4dC4kbm9kZSA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLnNldERpc3BsYXlOb2RlcygpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgaWRzID0gW107XHJcbiAgICAgICAgICBsZXQgc2VsZWN0ZWQgPSBbXTtcclxuICAgICAgICAgIGlmIChYSXNPYmplY3RBcnJheSh0aGlzLnZhbHVlKSkge1xyXG4gICAgICAgICAgICB0aGlzLm9iamVjdEFycmF5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWRzID0gdGhpcy52YWx1ZS5tYXAoKHg6IFhTZWxlY3ROb2RlKSA9PiB4LmlkKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMub2JqZWN0QXJyYXkgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWRzID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChjbGlja05vZGUpIHtcclxuICAgICAgICAgICAgaWYgKGNsaWNrTm9kZS5zZWxlY3RlZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2Rlcy5wdXNoKGNsaWNrTm9kZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgWFJlbW92ZSh0aGlzLnNlbGVjdGVkTm9kZXMsICh4KSA9PiB4LmlkID09PSBjbGlja05vZGUuaWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpZCBvZiBpZHMpIHtcclxuICAgICAgICAgICAgICBsZXQgbm9kZSA9IHRoaXMubm9kZXMuZmluZCgoeCkgPT4geC5pZCA9PT0gaWQpO1xyXG4gICAgICAgICAgICAgIGlmIChub2RlKSBzZWxlY3RlZC5wdXNoKG5vZGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IHNlbGVjdGVkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zZXREaXNwbGF5Tm9kZXMoKTtcclxuICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5zZWxlY3RlZE5vZGVzLm1hcCgoeCkgPT4geC5sYWJlbCkuam9pbignLCcpO1xyXG4gICAgICAgICAgdGhpcy52YWx1ZVRwbENvbnRleHQuJG5vZGUgPSBbLi4udGhpcy5zZWxlY3RlZE5vZGVzXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbGV0IG5vZGUgPSB0aGlzLm5vZGVzLmZpbmQoKHgpID0+IHguaWQgPT09IHRoaXMudmFsdWUpO1xyXG4gICAgICAgIGlmIChub2RlKSB7XHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IG5vZGUubGFiZWw7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlVHBsQ29udGV4dC4kbm9kZSA9IG5vZGU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gJyc7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlVHBsQ29udGV4dC4kbm9kZSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlTm9kZShldmVudDogRXZlbnQsIG5vZGU6IFhTZWxlY3ROb2RlLCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBsZXQgaW54ID0gLTE7XHJcbiAgICBpZiAoWElzT2JqZWN0QXJyYXkodGhpcy52YWx1ZSkpIHtcclxuICAgICAgaW54ID0gdGhpcy52YWx1ZS5maW5kSW5kZXgoKHk6IFhTZWxlY3ROb2RlKSA9PiB5LmlkID09PSBub2RlLmlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlueCA9IHRoaXMudmFsdWUuZmluZEluZGV4KCh5OiBudW1iZXIgfCBzdHJpbmcpID0+IHkgPT09IG5vZGUuaWQpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlueCA+PSAwKSB7XHJcbiAgICAgIHRoaXMudmFsdWUuc3BsaWNlKGlueCwgMSk7XHJcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UubmV4dCh0aGlzLnZhbHVlKTtcclxuICAgICAgaWYgKHRoaXMub25DaGFuZ2UpIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWROb2Rlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB0aGlzLnNldERpc3BsYXlOb2RlcygpO1xyXG4gICAgfVxyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzZXREaXNwbGF5Tm9kZXMoKSB7XHJcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHJldHVybjtcclxuICAgIGNvbnN0IG1heGxlbiA9IHRoaXMuc2VsZWN0ZWROb2Rlcy5sZW5ndGg7XHJcbiAgICBsZXQgbGVuID0gMDtcclxuICAgIGlmICghdGhpcy5tYXhUYWdDb3VudCkge1xyXG4gICAgICBsZW4gPSBtYXhsZW47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZW4gPSBtYXhsZW4gPiBOdW1iZXIodGhpcy5tYXhUYWdDb3VudCkgPyBOdW1iZXIodGhpcy5tYXhUYWdDb3VudCkgOiBtYXhsZW47XHJcbiAgICB9XHJcbiAgICBsZXQgbW9yZSA9IG1heGxlbiAtIGxlbjtcclxuICAgIG1vcmUgPSBtb3JlIDwgMCA/IDAgOiBtb3JlO1xyXG4gICAgdGhpcy5kaXNwbGF5Tm9kZXMgPSB0aGlzLnNlbGVjdGVkTm9kZXMuc2xpY2UoMCwgbGVuKTtcclxuICAgIHRoaXMuc2hvd0Rpc3BsYXlNb3JlID0gbW9yZSA+IDA7XHJcbiAgICBpZiAoWElzU3RyaW5nKHRoaXMuZ2V0TWF4VGFnQ29udGVudCkpIHtcclxuICAgICAgdGhpcy5kaXNwbGF5TW9yZSA9IG1vcmUgPiAwID8gKHRoaXMuZ2V0TWF4VGFnQ29udGVudCBhcyBzdHJpbmcpLnJlcGxhY2UoL1xce1xce3N1cnBsdXNcXH1cXH0vZywgYCR7bW9yZX1gKSA6ICcnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFN1cnBsdXMgPSBtb3JlO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVG90YWwgPSBtYXhsZW47XHJcbiAgICB9XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2V0TXV0aXBsZUlucHV0U2l6ZSgpKTtcclxuICB9XHJcblxyXG4gIHBvcnRhbEF0dGFjaGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VQb3J0YWwoKSB7XHJcbiAgICBpZiAodGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kZXRhY2goKTtcclxuICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5tdWx0aXBsZVNlYXJjaFZhbHVlID0gJyc7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBkZXN0cm95UG9ydGFsKCkge1xyXG4gICAgdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcclxuICB9XHJcblxyXG4gIHNob3dQb3J0YWwoY2xpY2sgPSBmYWxzZSkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5pY29uU3BpbiB8fCB0aGlzLmFuaW1hdGluZykgcmV0dXJuO1xyXG4gICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xyXG4gICAgaWYgKCh0aGlzLmFzeW5jICYmIFhJc09ic2VydmFibGUodGhpcy5kYXRhKSAmJiB0aGlzLm5vZGVzLmxlbmd0aCA9PT0gMCkgfHwgWElzRnVuY3Rpb24odGhpcy5kYXRhKSkge1xyXG4gICAgICB0aGlzLmljb24gPSAnZnRvLWxvYWRlcic7XHJcbiAgICAgIHRoaXMuaWNvblNwaW4gPSB0cnVlO1xyXG4gICAgICB0aGlzLmlucHV0Q29tLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIFhTZXREYXRhPFhTZWxlY3ROb2RlPih0aGlzLmRhdGEsIHRoaXMuX3VuU3ViamVjdCwgdHJ1ZSwgY2xpY2sgPyAnJyA6IHRoaXMuZGlzcGxheVZhbHVlKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLmljb24gPSAnZnRvLWNoZXZyb24tZG93bic7XHJcbiAgICAgICAgdGhpcy5pY29uU3BpbiA9IGZhbHNlO1xyXG4gICAgICAgIGlmICghdGhpcy5lbnRlciAmJiB0aGlzLmNsZWFyYWJsZSkge1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2xlYXJhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaW5wdXRDb20uY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB0aGlzLm5vZGVzID0geDtcclxuICAgICAgICB0aGlzLmRhdGFDaGFuZ2UubmV4dCh0aGlzLm5vZGVzKTtcclxuICAgICAgICBpZiAoIXRoaXMuc2VhcmNoKSB0aGlzLnNldERpc3BsYXlWYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMuY3JlYXRlUG9ydGFsKCk7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGF0YUNoYW5nZS5uZXh0KHRoaXMubm9kZXMpO1xyXG4gICAgICB0aGlzLmNyZWF0ZVBvcnRhbCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2VhcmNoICYmIHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5tdWx0aXBsZUlucHV0LmlucHV0Rm9jdXMoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW5wdXRDb20uaW5wdXRGb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlUG9ydGFsKCkge1xyXG4gICAgdGhpcy5ub2Rlcy5maWx0ZXIoKHgpID0+IHguc2VsZWN0ZWQpLm1hcCgoeCkgPT4gKHguc2VsZWN0ZWQgPSBmYWxzZSkpO1xyXG4gICAgdGhpcy5ib3ggPSB0aGlzLmlucHV0Q29tLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCBjb25maWc6IE92ZXJsYXlDb25maWcgPSB7XHJcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICcnLFxyXG4gICAgICB3aWR0aDogdGhpcy5wb3J0YWxXaWR0aCB8fCB0aGlzLmJveC53aWR0aCxcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5zZXRQbGFjZW1lbnQoKSxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxyXG4gICAgfTtcclxuICAgIHRoaXMuc2V0UG9zaXRpb24oY29uZmlnKTtcclxuICAgIHRoaXMucG9ydGFsID0gdGhpcy5wb3J0YWxTZXJ2aWNlLmF0dGFjaCh7XHJcbiAgICAgIGNvbnRlbnQ6IFhTZWxlY3RQb3J0YWxDb21wb25lbnQsXHJcbiAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudmlld0NvbnRhaW5lclJlZixcclxuICAgICAgb3ZlcmxheUNvbmZpZzogY29uZmlnXHJcbiAgICB9KTtcclxuICAgIHRoaXMucG9ydGFsLm92ZXJsYXlSZWZcclxuICAgICAgPy5vdXRzaWRlUG9pbnRlckV2ZW50cygpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnNldERpc3BsYXlWYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnNldEluc3RhbmNlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQb3NpdGlvbihjb25maWc6IE92ZXJsYXlDb25maWcpIHtcclxuICAgIGxldCBwb3NpdGlvbiA9IGNvbmZpZy5wb3NpdGlvblN0cmF0ZWd5IGFzIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneTtcclxuICAgIHBvc2l0aW9uLnBvc2l0aW9uQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHBvczogQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlKSA9PiB7XHJcbiAgICAgIGNvbnN0IHBsYWNlID0gWFBvcnRhbENvbm5lY3RlZFBvc2l0aW9uLmdldChwb3MuY29ubmVjdGlvblBhaXIpIGFzIFhQb3NpdGlvblRvcEJvdHRvbTtcclxuICAgICAgcGxhY2UgIT09IHRoaXMucGxhY2VtZW50ICYmIHRoaXMucG9zaXRpb25DaGFuZ2UubmV4dChwbGFjZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldEluc3RhbmNlKCkge1xyXG4gICAgbGV0IGNvbXBvbmVudFJlZiA9IHRoaXMucG9ydGFsLmNvbXBvbmVudFJlZjtcclxuICAgIGlmICghY29tcG9uZW50UmVmKSByZXR1cm47XHJcbiAgICBPYmplY3QuYXNzaWduKGNvbXBvbmVudFJlZi5pbnN0YW5jZSwge1xyXG4gICAgICBkYXRhOiB0aGlzLm5vZGVzLFxyXG4gICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcclxuICAgICAgcGxhY2VtZW50OiB0aGlzLnBsYWNlbWVudCxcclxuICAgICAgbXVsdGlwbGU6IHRoaXMubXVsdGlwbGUgPT09IHRydWUgPyAwIDogMSxcclxuICAgICAgc2VsZWN0QWxsOiB0aGlzLnNlbGVjdEFsbCxcclxuICAgICAgbm9kZVRwbDogdGhpcy5ub2RlVHBsLFxyXG4gICAgICB2YWx1ZUNoYW5nZTogdGhpcy52YWx1ZUNoYW5nZSxcclxuICAgICAgcG9zaXRpb25DaGFuZ2U6IHRoaXMucG9zaXRpb25DaGFuZ2UsXHJcbiAgICAgIGNsb3NlU3ViamVjdDogdGhpcy5jbG9zZVN1YmplY3QsXHJcbiAgICAgIGtleWRvd25TdWJqZWN0OiB0aGlzLmtleWRvd25TdWJqZWN0LFxyXG4gICAgICBkYXRhQ2hhbmdlOiB0aGlzLmRhdGFDaGFuZ2UsXHJcbiAgICAgIGlucHV0Q29tOiB0aGlzLmlucHV0Q29tLFxyXG4gICAgICBwb3J0YWxNYXhIZWlnaHQ6IHRoaXMucG9ydGFsTWF4SGVpZ2h0LFxyXG4gICAgICBvYmplY3RBcnJheTogdGhpcy5vYmplY3RBcnJheSxcclxuICAgICAgc2VsZWN0QWxsVGV4dDogdGhpcy5zZWxlY3RBbGxUZXh0LFxyXG4gICAgICBjYXNlU2Vuc2l0aXZlOiB0aGlzLmNhc2VTZW5zaXRpdmUsXHJcbiAgICAgIHNlYXJjaDogdGhpcy5zZWFyY2gsXHJcbiAgICAgIHZpcnR1YWxTY3JvbGw6IHRoaXMudmlydHVhbFNjcm9sbCxcclxuICAgICAgc2l6ZTogdGhpcy5zaXplLFxyXG4gICAgICBpbnB1dENoYW5nZTogdGhpcy5pbnB1dENoYW5nZSxcclxuICAgICAgZGVzdHJveVBvcnRhbDogKCkgPT4gdGhpcy5kZXN0cm95UG9ydGFsKCksXHJcbiAgICAgIG5vZGVFbWl0OiAobm9kZTogWFNlbGVjdE5vZGUsIHZhbHVlOiBYU2VsZWN0Tm9kZVtdIHwgKHN0cmluZyB8IG51bWJlcilbXSkgPT4gdGhpcy5ub2RlQ2xpY2sobm9kZSwgdmFsdWUpLFxyXG4gICAgICBhbmltYXRpbmc6IChpbmc6IGJvb2xlYW4pID0+ICh0aGlzLmFuaW1hdGluZyA9IGluZylcclxuICAgIH0pO1xyXG4gICAgY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5vZGVDbGljayhub2RlOiBYU2VsZWN0Tm9kZSwgdmFsdWU/OiBYU2VsZWN0Tm9kZVtdIHwgKHN0cmluZyB8IG51bWJlcilbXSkge1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgaWYgKG5vZGUpIHtcclxuICAgICAgICBpZiAoWElzT2JqZWN0QXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgICBpZiAobm9kZS5zZWxlY3RlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlLnB1c2gobm9kZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgaW54ID0gdGhpcy52YWx1ZS5maW5kSW5kZXgoKHg6IFhTZWxlY3ROb2RlKSA9PiB4LmlkID09PSBub2RlLmlkKTtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZS5zcGxpY2UoaW54LCAxKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKFhJc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgICAgaWYgKG5vZGUuc2VsZWN0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZS5wdXNoKG5vZGUuaWQpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZS5zcGxpY2UodGhpcy52YWx1ZS5pbmRleE9mKG5vZGUuaWQpLCAxKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlSW5wdXQpIHtcclxuICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMubXVsdGlwbGVJbnB1dC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShpbnB1dCwgJ3dpZHRoJywgJzJyZW0nKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5zZWFyY2ggJiYgdGhpcy5tdWx0aXBsZVNlYXJjaFZhbHVlICE9PSAnJykge1xyXG4gICAgICAgIHRoaXMubXVsdGlwbGVTZWFyY2hWYWx1ZSA9ICcnO1xyXG4gICAgICAgIHRoaXMuaW5wdXRDaGFuZ2UubmV4dCgnJyk7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5uZXh0KFsuLi50aGlzLnZhbHVlXSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUobm9kZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBub2RlID0gbm9kZSBhcyBYU2VsZWN0Tm9kZTtcclxuICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSBub2RlLmxhYmVsO1xyXG4gICAgICB0aGlzLnZhbHVlVHBsQ29udGV4dC4kbm9kZSA9IG5vZGU7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBub2RlLmlkO1xyXG4gICAgICB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWFyY2ggJiYgdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLm11bHRpcGxlSW5wdXQuaW5wdXRGb2N1cygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbnB1dENvbS5pbnB1dEZvY3VzKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vbkNoYW5nZSkgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2xWYWxpZGF0b3IoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEFsbE5vZGVzKHZhbHVlOiBYU2VsZWN0Tm9kZVtdIHwgKHN0cmluZyB8IG51bWJlcilbXSkge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc2V0UGxhY2VtZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMucG9ydGFsU2VydmljZS5zZXRQbGFjZW1lbnQoe1xyXG4gICAgICBlbGVtZW50UmVmOiB0aGlzLmlucHV0Q29tLmlucHV0UmVmLFxyXG4gICAgICBwbGFjZW1lbnQ6IHRoaXMucGxhY2VtZW50cyxcclxuICAgICAgdHJhbnNmb3JtT3JpZ2luT246ICd4LXNlbGVjdC1wb3J0YWwnXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFBvcnRhbCgpIHtcclxuICAgIHRoaXMucG9ydGFsQXR0YWNoZWQoKSAmJiB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb25TdHJhdGVneSh0aGlzLnNldFBsYWNlbWVudCgpKTtcclxuICB9XHJcblxyXG4gIGZvcm1Db250cm9sQ2hhbmdlcygpIHtcclxuICAgIHRoaXMuc2V0RGF0YSgpO1xyXG4gICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5uZ0FmdGVyVmlld0luaXQoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uS2V5ZG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIHRoaXMua2V5ZG93blN1YmplY3QubmV4dCgkZXZlbnQpO1xyXG4gICAgaWYgKCRldmVudC5rZXlDb2RlICE9PSBUQUIgJiYgIXRoaXMuc2VhcmNoKSB7XHJcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Gb2N1cyhfZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5zZWFyY2ggJiYgdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLm11bHRpcGxlSW5wdXQuaW5wdXRGb2N1cygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbnB1dENvbS5pbnB1dEZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbklucHV0KF9ldmVudDogSW5wdXRFdmVudCkge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbFZhbGlkYXRvcigpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmlucHV0Q2hhbmdlLm5leHQodGhpcy5tdWx0aXBsZSA/IHRoaXMubXVsdGlwbGVTZWFyY2hWYWx1ZSA6IHRoaXMuZGlzcGxheVZhbHVlKSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI3NlbGVjdCBjbGFzcz1cIngtc2VsZWN0XCIgW2NsYXNzLngtc2VsZWN0LW11bHRpcGxlXT1cIm11bHRpcGxlXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtc2VsZWN0LXJvd1wiPlxyXG4gICAgPHgtaW5wdXRcclxuICAgICAgI2lucHV0Q29tXHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgW2xhYmVsXT1cImxhYmVsXCJcclxuICAgICAgW2xhYmVsV2lkdGhdPVwibGFiZWxXaWR0aFwiXHJcbiAgICAgIFtsYWJlbEFsaWduXT1cImxhYmVsQWxpZ25cIlxyXG4gICAgICBbanVzdGlmeV09XCJqdXN0aWZ5XCJcclxuICAgICAgW2FsaWduXT1cImFsaWduXCJcclxuICAgICAgW2RpcmVjdGlvbl09XCJkaXJlY3Rpb25cIlxyXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICBbdmFsaWRhdG9yXT1cInZhbGlkYXRvclwiXHJcbiAgICAgIFtpY29uXT1cImljb25cIlxyXG4gICAgICBbaWNvblNwaW5dPVwiaWNvblNwaW5cIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbcmVhZG9ubHldPVwiZ2V0UmVhZG9ubHlcIlxyXG4gICAgICBbY2xlYXJhYmxlXT1cInNob3dDbGVhcmFibGVcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cImRpc3BsYXlWYWx1ZVwiXHJcbiAgICAgIFt2YWx1ZVRwbF09XCJ2YWx1ZVRwbCA/IHZhbHVlVHBsIDogbm9kZVRwbFwiXHJcbiAgICAgIFt2YWx1ZVRwbENvbnRleHRdPVwidmFsdWVUcGxDb250ZXh0XCJcclxuICAgICAgW3NpemVdPVwic2l6ZVwiXHJcbiAgICAgIFtib3JkZXJlZF09XCJib3JkZXJlZFwiXHJcbiAgICAgIFtiZWZvcmVdPVwiYmVmb3JlXCJcclxuICAgICAgW2FmdGVyXT1cImFmdGVyXCJcclxuICAgICAgW3BhdHRlcm5dPVwicGF0dGVyblwiXHJcbiAgICAgIFttZXNzYWdlXT1cIm1lc3NhZ2VcIlxyXG4gICAgICBbcG9pbnRlcl09XCJ0cnVlXCJcclxuICAgICAgW2lucHV0UGFkZGluZ109XCJpbnB1dFBhZGRpbmdcIlxyXG4gICAgICBbKGFjdGl2ZSldPVwiYWN0aXZlXCJcclxuICAgICAgKGNsZWFyRW1pdCk9XCJjbGVhckVtaXQoKVwiXHJcbiAgICAgICh4S2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXHJcbiAgICAgICh4SW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcclxuICAgICAgKHhGb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxyXG4gICAgICAoeENsaWNrKT1cInNob3dQb3J0YWwodHJ1ZSlcIlxyXG4gICAgICAoeE1vdXNlZW50ZXIpPVwibWVudGVyKClcIlxyXG4gICAgICAoeE1vdXNlbGVhdmUpPVwibWxlYXZlKClcIlxyXG4gICAgICAoeENvbXBvc2l0aW9uKT1cImNvbXBvc2l0aW9uID0gJGV2ZW50XCJcclxuICAgID48L3gtaW5wdXQ+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNtdWx0aXBsZVZhbHVlVHBsPlxyXG4gIDx4LXRhZ1xyXG4gICAgW0AuZGlzYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAqbmdGb3I9XCJsZXQgbm9kZSBvZiBkaXNwbGF5Tm9kZXM7IGluZGV4IGFzIGlcIlxyXG4gICAgW2Nsb3NhYmxlXT1cIiFkaXNhYmxlZFwiXHJcbiAgICAoY2xvc2UpPVwiY2xvc2VOb2RlKCRldmVudCwgbm9kZSwgaSlcIlxyXG4gICAgW3NpemVdPVwic2l6ZVwiXHJcbiAgICA+e3sgbm9kZS5sYWJlbCB9fTwveC10YWdcclxuICA+XHJcbiAgPHgtdGFnIFtALmRpc2FibGVkXT1cInRydWVcIiAqbmdJZj1cInNob3dEaXNwbGF5TW9yZVwiIFtzaXplXT1cInNpemVcIj5cclxuICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJnZXRNYXhUYWdDb250ZW50OyBjb250ZXh0OiB7ICRzdXJwbHVzOiBzZWxlY3RlZFN1cnBsdXMsICR0b3RhbDogc2VsZWN0ZWRUb3RhbCB9XCI+e3tcclxuICAgICAgZGlzcGxheU1vcmVcclxuICAgIH19PC9uZy1jb250YWluZXI+XHJcbiAgPC94LXRhZz5cclxuICA8eC1pbnB1dFxyXG4gICAgI211bHRpcGxlSW5wdXRcclxuICAgICpuZ0lmPVwic2VhcmNoXCJcclxuICAgIGJvcmRlcmVkPVwiZmFsc2VcIlxyXG4gICAgW3NpemVdPVwic2l6ZVwiXHJcbiAgICBpbnB1dFBhZGRpbmc9XCIwLjI3NVwiXHJcbiAgICBbKG5nTW9kZWwpXT1cIm11bHRpcGxlU2VhcmNoVmFsdWVcIlxyXG4gICAgKHhJbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxyXG4gICAgKHhLZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcclxuICA+PC94LWlucHV0PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
603
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQ0wsU0FBUyxFQUVULGlCQUFpQixFQUNqQix1QkFBdUIsRUFPdkIsU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEYsT0FBTyxFQUNMLFFBQVEsRUFDUixhQUFhLEVBQ2IsU0FBUyxFQUNULFFBQVEsRUFDUixXQUFXLEVBR1gsY0FBYyxFQUNkLFdBQVcsRUFDWCxRQUFRLEVBQ1IsU0FBUyxFQUNULE9BQU8sRUFDUCxPQUFPLEVBRVAsU0FBUyxFQUVWLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFxQyx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRW5FLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoSSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7O0FB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Q2hDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDakM7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQWtCO1FBQ3hCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7O2dJQXBrQlUsZ0JBQWdCO29IQUFoQixnQkFBZ0IsbUNBRmhCLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsaWZDakQvQyxxckVBb0VBOzJGRGpCYSxnQkFBZ0I7a0JBUjVCLFNBQVM7K0JBQ0UsR0FBRyxhQUFhLEVBQUUsaUJBR2IsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGNBQWMsa0JBQWtCLENBQUM7MFFBR0osUUFBUTtzQkFBaEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNBLE1BQU07c0JBQTVDLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDWSxnQkFBZ0I7c0JBQWhFLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNuQixhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFRlbXBsYXRlUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhTZWxlY3ROb2RlLCBYU2VsZWN0UHJvcGVydHksIFhTZWxlY3RQcmVmaXggfSBmcm9tICcuL3NlbGVjdC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7XHJcbiAgWElzRW1wdHksXHJcbiAgWElzT2JzZXJ2YWJsZSxcclxuICBYSXNDaGFuZ2UsXHJcbiAgWFNldERhdGEsXHJcbiAgWENsZWFyQ2xhc3MsXHJcbiAgWENvbmZpZ1NlcnZpY2UsXHJcbiAgWFBvc2l0aW9uVG9wQm90dG9tLFxyXG4gIFhJc09iamVjdEFycmF5LFxyXG4gIFhJc0Z1bmN0aW9uLFxyXG4gIFhJc0FycmF5LFxyXG4gIFhJc1N0cmluZyxcclxuICBYUmVtb3ZlLFxyXG4gIFhSZXNpemUsXHJcbiAgWFBsYWNlbWVudCxcclxuICBYQ29tcHV0ZWQsXHJcbiAgWFJlc2l6ZU9ic2VydmVyXHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFhQb3J0YWxTZXJ2aWNlLCBYUG9ydGFsT3ZlcmxheVJlZiwgWFBvcnRhbENvbm5lY3RlZFBvc2l0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBYU2VsZWN0UG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QtcG9ydGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE92ZXJsYXksIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSwgQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlLCBPdmVybGF5Q29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIHRocm90dGxlVGltZSwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBET1dOX0FSUk9XLCBVUF9BUlJPVywgRU5URVIsIE1BQ19FTlRFUiwgRVNDQVBFLCBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPVywgVEFCLCBCQUNLU1BBQ0UgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcbmltcG9ydCB7IFhJMThuU2VsZWN0LCBYSTE4blNlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYU2VsZWN0UHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtYVmFsdWVBY2Nlc3NvcihYU2VsZWN0Q29tcG9uZW50KV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBYU2VsZWN0UHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRDb20nLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dENvbSE6IFhJbnB1dENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdzZWxlY3QnLCB7IHN0YXRpYzogdHJ1ZSB9KSBzZWxlY3QhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdtdWx0aXBsZVZhbHVlVHBsJywgeyBzdGF0aWM6IHRydWUgfSkgbXVsdGlwbGVWYWx1ZVRwbCE6IFRlbXBsYXRlUmVmPHZvaWQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ211bHRpcGxlSW5wdXQnKSBtdWx0aXBsZUlucHV0ITogWElucHV0Q29tcG9uZW50O1xyXG5cclxuICBnZXQgZ2V0UmVhZG9ubHkoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMucmVhZG9ubHkgJiYgIXRoaXMuc2VhcmNoKSB8fCAoQm9vbGVhbih0aGlzLnNlYXJjaCkgJiYgQm9vbGVhbih0aGlzLm11bHRpcGxlKSk7XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0TWF4VGFnQ29udGVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLm1heFRhZ0NvbnRlbnQgfHwgdGhpcy5sb2NhbGUubWF4VGFnQ29udGVudDtcclxuICB9XHJcblxyXG4gIG5vUG9ydGFsV2lkdGhQbGFjZW1lbnRzOiBYUGxhY2VtZW50W10gPSBbJ2JvdHRvbScsICd0b3AnXTtcclxuICBoYXNQb3J0YWxXaWR0aFBsYWNlbWVudHM6IFhQbGFjZW1lbnRbXSA9IFsnYm90dG9tLXN0YXJ0JywgJ2JvdHRvbS1lbmQnLCAndG9wLXN0YXJ0JywgJ3RvcC1lbmQnXTtcclxuICBwbGFjZW1lbnRzOiBYUGxhY2VtZW50W10gPSBbXTtcclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICBpZiAoWElzRW1wdHkodmFsdWUpKSB7XHJcbiAgICAgICAgdmFsdWUgPSBbXTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIVhJc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgIHZhbHVlID0gW3ZhbHVlXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5zZXREaXNwbGF5VmFsdWUoKTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UubmV4dCh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIHJlYWRvbmx5ID0gdHJ1ZTtcclxuICBlbnRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dDbGVhcmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkaXNwbGF5VmFsdWU6IGFueSA9ICcnO1xyXG4gIG11bHRpcGxlU2VhcmNoVmFsdWUgPSAnJztcclxuICBub2RlczogWFNlbGVjdE5vZGVbXSA9IFtdO1xyXG4gIHNlbGVjdGVkTm9kZXM6IFhTZWxlY3ROb2RlW10gPSBbXTtcclxuICBkaXNwbGF5Tm9kZXM6IFhTZWxlY3ROb2RlW10gPSBbXTtcclxuICBkaXNwbGF5TW9yZSA9ICcnO1xyXG4gIHNob3dEaXNwbGF5TW9yZSA9IGZhbHNlO1xyXG4gIHNlYXJjaE5vZGVzOiBYU2VsZWN0Tm9kZVtdID0gW107XHJcbiAgY2xvbmVOb2RlcyE6IFhTZWxlY3ROb2RlW107XHJcbiAgcG9ydGFsITogWFBvcnRhbE92ZXJsYXlSZWY8WFNlbGVjdFBvcnRhbENvbXBvbmVudD47XHJcbiAgaWNvbjogc3RyaW5nID0gJ2Z0by1jaGV2cm9uLWRvd24nO1xyXG4gIGljb25TcGluOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYm94ITogRE9NUmVjdDtcclxuICBwcm90YWxIZWlnaHQhOiBudW1iZXI7XHJcbiAgbWF4Tm9kZXM6IG51bWJlciA9IDY7XHJcbiAgaW5wdXRQYWRkaW5nID0gMC40O1xyXG4gIHByb3RhbFRvYm90dG9tOiBib29sZWFuID0gdHJ1ZTtcclxuICBhc3luY0xvYWRpbmcgPSBmYWxzZTtcclxuICBhbmltYXRpbmcgPSBmYWxzZTtcclxuICBvYmplY3RBcnJheSA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkU3VycGx1cyA9IDA7XHJcbiAgc2VsZWN0ZWRUb3RhbCA9IDA7XHJcbiAgbG9jYWxlOiBYSTE4blNlbGVjdCA9IHt9O1xyXG4gIG92ZXJyaWRlIHZhbHVlVHBsQ29udGV4dDogeyAkbm9kZTogYW55OyAkaXNWYWx1ZTogYm9vbGVhbiB9ID0geyAkbm9kZTogbnVsbCwgJGlzVmFsdWU6IHRydWUgfTtcclxuICB2YWx1ZUNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBwb3NpdGlvbkNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBjbG9zZVN1YmplY3Q6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIGRhdGFDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFhTZWxlY3ROb2RlW10+KFtdKTtcclxuICBrZXlkb3duU3ViamVjdDogU3ViamVjdDxLZXlib2FyZEV2ZW50PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgaW5wdXRDaGFuZ2U6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgY29tcG9zaXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBtdWx0aXBsZUlucHV0U2l6ZUNoYW5nZSA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgX3Jlc2l6ZU9ic2VydmVyITogWFJlc2l6ZU9ic2VydmVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHBvcnRhbFNlcnZpY2U6IFhQb3J0YWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxyXG4gICAgcHVibGljIGkxOG46IFhJMThuU2VydmljZSxcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRGbGV4KHRoaXMuc2VsZWN0Lm5hdGl2ZUVsZW1lbnQsIHRoaXMucmVuZGVyZXIsIHRoaXMuanVzdGlmeSwgdGhpcy5hbGlnbiwgdGhpcy5kaXJlY3Rpb24pO1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gICAgdGhpcy5zZXRTdWJqZWN0KCk7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLnZhbHVlVHBsID0gdGhpcy5tdWx0aXBsZVZhbHVlVHBsO1xyXG4gICAgICB0aGlzLmlucHV0UGFkZGluZyA9IDAuMTI1O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucG9ydGFsV2lkdGgpIHtcclxuICAgICAgaWYgKHRoaXMucGxhY2VtZW50ID09PSAnYm90dG9tJykge1xyXG4gICAgICAgIHRoaXMucGxhY2VtZW50ID0gJ2JvdHRvbS1zdGFydCc7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5wbGFjZW1lbnRzID0gW3RoaXMucGxhY2VtZW50LCAuLi50aGlzLmhhc1BvcnRhbFdpZHRoUGxhY2VtZW50c107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBsYWNlbWVudHMgPSBbdGhpcy5wbGFjZW1lbnQsIC4uLnRoaXMubm9Qb3J0YWxXaWR0aFBsYWNlbWVudHNdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pMThuLmxvY2FsZUNoYW5nZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHgpID0+IHguc2VsZWN0IGFzIFhJMThuU2VsZWN0KSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLmxvY2FsZSA9IHg7XHJcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBkYXRhIH0gPSBjaGFuZ2VzO1xyXG4gICAgWElzQ2hhbmdlKGRhdGEpICYmIHRoaXMuc2V0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zZXRQb3J0YWwoKTtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlICYmIHRoaXMuaW5wdXRDb20uaW5wdXRWYWx1ZVJlZikge1xyXG4gICAgICBYUmVzaXplKHRoaXMuaW5wdXRDb20uaW5wdXRWYWx1ZVJlZi5uYXRpdmVFbGVtZW50KVxyXG4gICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgzMCksIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyID0geC5yZXNpemVPYnNlcnZlcjtcclxuICAgICAgICAgIHRoaXMuc2V0TXV0aXBsZUlucHV0U2l6ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2xhc3NNYXAoKSB7XHJcbiAgICBYQ2xlYXJDbGFzcyh0aGlzLmxhYmVsTWFwKTtcclxuICAgIHRoaXMubGFiZWxNYXBbYHgtdGV4dC1hbGlnbi0ke3RoaXMubGFiZWxBbGlnbn1gXSA9IHRoaXMubGFiZWxBbGlnbiA/IHRydWUgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNldERhdGEoKSB7XHJcbiAgICBpZiAodGhpcy5hc3luYykgcmV0dXJuO1xyXG4gICAgWFNldERhdGE8WFNlbGVjdE5vZGU+KHRoaXMuZGF0YSwgdGhpcy5fdW5TdWJqZWN0KS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5ub2RlcyA9IHg7XHJcbiAgICAgIHRoaXMuZGF0YUNoYW5nZS5uZXh0KHRoaXMubm9kZXMpO1xyXG4gICAgICB0aGlzLnNldERpc3BsYXlWYWx1ZSgpO1xyXG4gICAgICB0aGlzLnNldFBvcnRhbCgpO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFN1YmplY3QoKSB7XHJcbiAgICB0aGlzLmNsb3NlU3ViamVjdC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNsb3NlUG9ydGFsKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuaW5wdXRDaGFuZ2UucGlwZShkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWUgYXMgbnVtYmVyKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlKHgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmtleWRvd25TdWJqZWN0LnBpcGUodGhyb3R0bGVUaW1lKDEwKSwgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICBjb25zdCBrZXlDb2RlID0geC5rZXlDb2RlO1xyXG4gICAgICBpZiAoIXRoaXMucG9ydGFsQXR0YWNoZWQoKSAmJiBbRE9XTl9BUlJPVywgVVBfQVJST1csIExFRlRfQVJST1csIFJJR0hUX0FSUk9XLCBFTlRFUiwgTUFDX0VOVEVSLCBCQUNLU1BBQ0VdLmluY2x1ZGVzKGtleUNvZGUpKSB7XHJcbiAgICAgICAgdGhpcy5pbnB1dENoYW5nZS5uZXh0KHRoaXMuZGlzcGxheVZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5wb3J0YWxBdHRhY2hlZCgpICYmIFtFU0NBUEVdLmluY2x1ZGVzKGtleUNvZGUpKSB7XHJcbiAgICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMubXVsdGlwbGVJbnB1dFNpemVDaGFuZ2UucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlSW5wdXQpIHtcclxuICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMubXVsdGlwbGVJbnB1dD8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaW5wdXQsICd3aWR0aCcsIGAke3h9cHhgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRNdXRpcGxlSW5wdXRTaXplKCkge1xyXG4gICAgY29uc3QgaXZmID0gdGhpcy5pbnB1dENvbS5pbnB1dFZhbHVlUmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTERpdkVsZW1lbnQ7XHJcbiAgICBsZXQgeyBjbGllbnRXaWR0aCwgc2Nyb2xsSGVpZ2h0IH0gPSBpdmY7XHJcbiAgICBjb25zdCBsZW4gPSBpdmYuY2hpbGRyZW4ubGVuZ3RoO1xyXG4gICAgbGV0IGxhc3RSb3dUYWdUb3AgPSAtMTtcclxuICAgIGxldCBsaW5lcyA9IDE7XHJcbiAgICBsZXQgcm93VGFnVG9wID0gLTE7XHJcbiAgICBsZXQgbGFzdFJvd1RhZ3NXaWR0aCA9IDA7XHJcbiAgICBsZXQgbWFyZ2luTGVmdCA9IDA7XHJcbiAgICBsZXQgbWFyZ2luVG9wID0gMDtcclxuICAgIGZvciAobGV0IGkgPSBsZW4gLSAxOyBpID49IDA7IGktLSkge1xyXG4gICAgICBjb25zdCBlbGUgPSBpdmYuY2hpbGRyZW5baV0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgIGlmIChlbGUudGFnTmFtZSA9PT0gJ1gtVEFHJykge1xyXG4gICAgICAgIGNvbnN0IHsgb2Zmc2V0VG9wLCBvZmZzZXRXaWR0aCB9ID0gZWxlO1xyXG4gICAgICAgIGNvbnN0IHN0eWxlID0gWENvbXB1dGVkKGVsZSk7XHJcbiAgICAgICAgbWFyZ2luTGVmdCA9IE51bWJlcihzdHlsZS5tYXJnaW5MZWZ0LnJlcGxhY2UoJ3B4JywgJycpKTtcclxuICAgICAgICBtYXJnaW5Ub3AgPSBOdW1iZXIoc3R5bGUubWFyZ2luVG9wLnJlcGxhY2UoJ3B4JywgJycpKTtcclxuICAgICAgICBpZiAocm93VGFnVG9wID09PSAtMSkge1xyXG4gICAgICAgICAgcm93VGFnVG9wID0gb2Zmc2V0VG9wO1xyXG4gICAgICAgIH0gZWxzZSBpZiAocm93VGFnVG9wICE9PSBvZmZzZXRUb3ApIHtcclxuICAgICAgICAgIGxpbmVzKys7XHJcbiAgICAgICAgICByb3dUYWdUb3AgPSBvZmZzZXRUb3A7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChsYXN0Um93VGFnVG9wID09PSAtMSkge1xyXG4gICAgICAgICAgbGFzdFJvd1RhZ1RvcCA9IG9mZnNldFRvcDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxhc3RSb3dUYWdUb3AgPT09IG9mZnNldFRvcCkge1xyXG4gICAgICAgICAgbGFzdFJvd1RhZ3NXaWR0aCArPSBvZmZzZXRXaWR0aCArIG1hcmdpbkxlZnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBoZWlnaHQgPSBzY3JvbGxIZWlnaHQgKyAobGluZXMgPiAxID8gbWFyZ2luVG9wIDogMCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaW5wdXRDb20uaW5wdXRSZWYubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGVJbnB1dCkge1xyXG4gICAgICB0aGlzLm11bHRpcGxlSW5wdXRTaXplQ2hhbmdlLm5leHQoY2xpZW50V2lkdGggLSBsYXN0Um93VGFnc1dpZHRoIC0gbWFyZ2luTGVmdCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb24oKTtcclxuICB9XHJcblxyXG4gIG1lbnRlcigpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8ICF0aGlzLmNsZWFyYWJsZSB8fCB0aGlzLmljb25TcGluKSByZXR1cm47XHJcbiAgICB0aGlzLmVudGVyID0gdHJ1ZTtcclxuICAgIGlmICghWElzRW1wdHkodGhpcy5kaXNwbGF5VmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuaWNvbiA9ICcnO1xyXG4gICAgICB0aGlzLnNob3dDbGVhcmFibGUgPSB0cnVlO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtbGVhdmUoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCAhdGhpcy5jbGVhcmFibGUgfHwgdGhpcy5pY29uU3BpbikgcmV0dXJuO1xyXG4gICAgdGhpcy5lbnRlciA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuY2xlYXJhYmxlKSB7XHJcbiAgICAgIHRoaXMuaWNvbiA9ICdmdG8tY2hldnJvbi1kb3duJztcclxuICAgICAgdGhpcy5zaG93Q2xlYXJhYmxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcclxuICAgIGlmIChYSXNGdW5jdGlvbih0aGlzLmRhdGEpKSB7XHJcbiAgICAgIGlmICghdGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgICAgdGhpcy5zaG93UG9ydGFsKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pY29uID0gJ2Z0by1sb2FkZXInO1xyXG4gICAgICB0aGlzLmljb25TcGluID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICBYU2V0RGF0YTxYU2VsZWN0Tm9kZT4odGhpcy5kYXRhLCB0aGlzLl91blN1YmplY3QsIHRydWUsIHZhbHVlIGFzIGFueSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pY29uID0gJyc7XHJcbiAgICAgICAgdGhpcy5pY29uU3BpbiA9IGZhbHNlO1xyXG4gICAgICAgIGlmICghdGhpcy5lbnRlciAmJiB0aGlzLmNsZWFyYWJsZSkge1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2xlYXJhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZXMgPSB4O1xyXG4gICAgICAgIHRoaXMuZGF0YUNoYW5nZS5uZXh0KHRoaXMubm9kZXMpO1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vZGVzKSB7XHJcbiAgICAgIGlmICghdGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgICAgdGhpcy5zaG93UG9ydGFsKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKFhJc0VtcHR5KHZhbHVlKSkge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoTm9kZXMgPSBbLi4udGhpcy5ub2Rlc107XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZXRTZWFyY2hOb2Rlcyh2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5kYXRhQ2hhbmdlLm5leHQodGhpcy5zZWFyY2hOb2Rlcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRTZWFyY2hOb2Rlcyh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5jYXNlU2Vuc2l0aXZlKSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoTm9kZXMgPSB0aGlzLm5vZGVzLmZpbHRlcigoeCkgPT4geC5sYWJlbC5pbmRleE9mKHZhbHVlKSA+PSAwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoTm9kZXMgPSB0aGlzLm5vZGVzLmZpbHRlcigoeCkgPT4gKHgubGFiZWwgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoKHZhbHVlIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKSkgPj0gMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhckVtaXQoKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5tdWx0aXBsZSA/IFtdIDogJyc7XHJcbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5tdWx0aXBsZVNlYXJjaFZhbHVlID0gJyc7XHJcbiAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBbXTtcclxuICAgIHRoaXMuc2V0RGlzcGxheU5vZGVzKCk7XHJcbiAgICB0aGlzLnZhbHVlVHBsQ29udGV4dC4kbm9kZSA9IG51bGw7XHJcbiAgICB0aGlzLm1sZWF2ZSgpO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5uZXh0KHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5pbnB1dENoYW5nZS5uZXh0KCcnKTtcclxuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzcGxheVZhbHVlKGNsaWNrTm9kZT86IFhTZWxlY3ROb2RlKSB7XHJcbiAgICBpZiAodGhpcy5ub2Rlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgICAgaWYgKFhJc0VtcHR5KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlID0gW107XHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9ICcnO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGVzID0gW107XHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXlOb2RlcyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5kaXNwbGF5TW9yZSA9ICcnO1xyXG4gICAgICAgICAgdGhpcy52YWx1ZVRwbENvbnRleHQuJG5vZGUgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5zZXREaXNwbGF5Tm9kZXMoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IGlkcyA9IFtdO1xyXG4gICAgICAgICAgbGV0IHNlbGVjdGVkID0gW107XHJcbiAgICAgICAgICBpZiAoWElzT2JqZWN0QXJyYXkodGhpcy52YWx1ZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5vYmplY3RBcnJheSA9IHRydWU7XHJcbiAgICAgICAgICAgIGlkcyA9IHRoaXMudmFsdWUubWFwKCh4OiBYU2VsZWN0Tm9kZSkgPT4geC5pZCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm9iamVjdEFycmF5ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlkcyA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoY2xpY2tOb2RlKSB7XHJcbiAgICAgICAgICAgIGlmIChjbGlja05vZGUuc2VsZWN0ZWQpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMucHVzaChjbGlja05vZGUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIFhSZW1vdmUodGhpcy5zZWxlY3RlZE5vZGVzLCAoeCkgPT4geC5pZCA9PT0gY2xpY2tOb2RlLmlkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaWQgb2YgaWRzKSB7XHJcbiAgICAgICAgICAgICAgbGV0IG5vZGUgPSB0aGlzLm5vZGVzLmZpbmQoKHgpID0+IHguaWQgPT09IGlkKTtcclxuICAgICAgICAgICAgICBpZiAobm9kZSkgc2VsZWN0ZWQucHVzaChub2RlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBzZWxlY3RlZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc2V0RGlzcGxheU5vZGVzKCk7XHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuc2VsZWN0ZWROb2Rlcy5tYXAoKHgpID0+IHgubGFiZWwpLmpvaW4oJywnKTtcclxuICAgICAgICAgIHRoaXMudmFsdWVUcGxDb250ZXh0LiRub2RlID0gWy4uLnRoaXMuc2VsZWN0ZWROb2Rlc107XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBub2RlID0gdGhpcy5ub2Rlcy5maW5kKCh4KSA9PiB4LmlkID09PSB0aGlzLnZhbHVlKTtcclxuICAgICAgICBpZiAobm9kZSkge1xyXG4gICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSBub2RlLmxhYmVsO1xyXG4gICAgICAgICAgdGhpcy52YWx1ZVRwbENvbnRleHQuJG5vZGUgPSBub2RlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9ICcnO1xyXG4gICAgICAgICAgdGhpcy52YWx1ZVRwbENvbnRleHQuJG5vZGUgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZU5vZGUoZXZlbnQ6IEV2ZW50LCBub2RlOiBYU2VsZWN0Tm9kZSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgbGV0IGlueCA9IC0xO1xyXG4gICAgaWYgKFhJc09iamVjdEFycmF5KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIGlueCA9IHRoaXMudmFsdWUuZmluZEluZGV4KCh5OiBYU2VsZWN0Tm9kZSkgPT4geS5pZCA9PT0gbm9kZS5pZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpbnggPSB0aGlzLnZhbHVlLmZpbmRJbmRleCgoeTogbnVtYmVyIHwgc3RyaW5nKSA9PiB5ID09PSBub2RlLmlkKTtcclxuICAgIH1cclxuICAgIGlmIChpbnggPj0gMCkge1xyXG4gICAgICB0aGlzLnZhbHVlLnNwbGljZShpbngsIDEpO1xyXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy52YWx1ZSk7XHJcbiAgICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkTm9kZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgdGhpcy5zZXREaXNwbGF5Tm9kZXMoKTtcclxuICAgIH1cclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzcGxheU5vZGVzKCkge1xyXG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSByZXR1cm47XHJcbiAgICBjb25zdCBtYXhsZW4gPSB0aGlzLnNlbGVjdGVkTm9kZXMubGVuZ3RoO1xyXG4gICAgbGV0IGxlbiA9IDA7XHJcbiAgICBpZiAoIXRoaXMubWF4VGFnQ291bnQpIHtcclxuICAgICAgbGVuID0gbWF4bGVuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGVuID0gbWF4bGVuID4gTnVtYmVyKHRoaXMubWF4VGFnQ291bnQpID8gTnVtYmVyKHRoaXMubWF4VGFnQ291bnQpIDogbWF4bGVuO1xyXG4gICAgfVxyXG4gICAgbGV0IG1vcmUgPSBtYXhsZW4gLSBsZW47XHJcbiAgICBtb3JlID0gbW9yZSA8IDAgPyAwIDogbW9yZTtcclxuICAgIHRoaXMuZGlzcGxheU5vZGVzID0gdGhpcy5zZWxlY3RlZE5vZGVzLnNsaWNlKDAsIGxlbik7XHJcbiAgICB0aGlzLnNob3dEaXNwbGF5TW9yZSA9IG1vcmUgPiAwO1xyXG4gICAgaWYgKFhJc1N0cmluZyh0aGlzLmdldE1heFRhZ0NvbnRlbnQpKSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheU1vcmUgPSBtb3JlID4gMCA/ICh0aGlzLmdldE1heFRhZ0NvbnRlbnQgYXMgc3RyaW5nKS5yZXBsYWNlKC9cXHtcXHtzdXJwbHVzXFx9XFx9L2csIGAke21vcmV9YCkgOiAnJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRTdXJwbHVzID0gbW9yZTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRvdGFsID0gbWF4bGVuO1xyXG4gICAgfVxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNldE11dGlwbGVJbnB1dFNpemUoKSk7XHJcbiAgfVxyXG5cclxuICBwb3J0YWxBdHRhY2hlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlUG9ydGFsKCkge1xyXG4gICAgaWYgKHRoaXMucG9ydGFsQXR0YWNoZWQoKSkge1xyXG4gICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGV0YWNoKCk7XHJcbiAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVTZWFyY2hWYWx1ZSA9ICcnO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZGVzdHJveVBvcnRhbCgpIHtcclxuICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgfVxyXG5cclxuICBzaG93UG9ydGFsKGNsaWNrID0gZmFsc2UpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuaWNvblNwaW4gfHwgdGhpcy5hbmltYXRpbmcpIHJldHVybjtcclxuICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcclxuICAgIGlmICgodGhpcy5hc3luYyAmJiBYSXNPYnNlcnZhYmxlKHRoaXMuZGF0YSkgJiYgdGhpcy5ub2Rlcy5sZW5ndGggPT09IDApIHx8IFhJc0Z1bmN0aW9uKHRoaXMuZGF0YSkpIHtcclxuICAgICAgdGhpcy5pY29uID0gJ2Z0by1sb2FkZXInO1xyXG4gICAgICB0aGlzLmljb25TcGluID0gdHJ1ZTtcclxuICAgICAgdGhpcy5pbnB1dENvbS5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICBYU2V0RGF0YTxYU2VsZWN0Tm9kZT4odGhpcy5kYXRhLCB0aGlzLl91blN1YmplY3QsIHRydWUsIGNsaWNrID8gJycgOiB0aGlzLmRpc3BsYXlWYWx1ZSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pY29uID0gJ2Z0by1jaGV2cm9uLWRvd24nO1xyXG4gICAgICAgIHRoaXMuaWNvblNwaW4gPSBmYWxzZTtcclxuICAgICAgICBpZiAoIXRoaXMuZW50ZXIgJiYgdGhpcy5jbGVhcmFibGUpIHtcclxuICAgICAgICAgIHRoaXMuc2hvd0NsZWFyYWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlucHV0Q29tLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgdGhpcy5ub2RlcyA9IHg7XHJcbiAgICAgICAgdGhpcy5kYXRhQ2hhbmdlLm5leHQodGhpcy5ub2Rlcyk7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaCkgdGhpcy5zZXREaXNwbGF5VmFsdWUoKTtcclxuICAgICAgICB0aGlzLmNyZWF0ZVBvcnRhbCgpO1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGFDaGFuZ2UubmV4dCh0aGlzLm5vZGVzKTtcclxuICAgICAgdGhpcy5jcmVhdGVQb3J0YWwoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlYXJjaCAmJiB0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVJbnB1dC5pbnB1dEZvY3VzKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlucHV0Q29tLmlucHV0Rm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZVBvcnRhbCgpIHtcclxuICAgIHRoaXMubm9kZXMuZmlsdGVyKCh4KSA9PiB4LnNlbGVjdGVkKS5tYXAoKHgpID0+ICh4LnNlbGVjdGVkID0gZmFsc2UpKTtcclxuICAgIHRoaXMuYm94ID0gdGhpcy5pbnB1dENvbS5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3QgY29uZmlnOiBPdmVybGF5Q29uZmlnID0ge1xyXG4gICAgICBiYWNrZHJvcENsYXNzOiAnJyxcclxuICAgICAgd2lkdGg6IHRoaXMucG9ydGFsV2lkdGggfHwgdGhpcy5ib3gud2lkdGgsXHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuc2V0UGxhY2VtZW50KCksXHJcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKClcclxuICAgIH07XHJcbiAgICB0aGlzLnNldFBvc2l0aW9uKGNvbmZpZyk7XHJcbiAgICB0aGlzLnBvcnRhbCA9IHRoaXMucG9ydGFsU2VydmljZS5hdHRhY2goe1xyXG4gICAgICBjb250ZW50OiBYU2VsZWN0UG9ydGFsQ29tcG9uZW50LFxyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIG92ZXJsYXlDb25maWc6IGNvbmZpZ1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBvcnRhbC5vdmVybGF5UmVmXHJcbiAgICAgID8ub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUoKTtcclxuICAgICAgICB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5zZXRJbnN0YW5jZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0UG9zaXRpb24oY29uZmlnOiBPdmVybGF5Q29uZmlnKSB7XHJcbiAgICBsZXQgcG9zaXRpb24gPSBjb25maWcucG9zaXRpb25TdHJhdGVneSBhcyBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3k7XHJcbiAgICBwb3NpdGlvbi5wb3NpdGlvbkNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKChwb3M6IENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSkgPT4ge1xyXG4gICAgICBjb25zdCBwbGFjZSA9IFhQb3J0YWxDb25uZWN0ZWRQb3NpdGlvbi5nZXQocG9zLmNvbm5lY3Rpb25QYWlyKSBhcyBYUG9zaXRpb25Ub3BCb3R0b207XHJcbiAgICAgIHBsYWNlICE9PSB0aGlzLnBsYWNlbWVudCAmJiB0aGlzLnBvc2l0aW9uQ2hhbmdlLm5leHQocGxhY2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRJbnN0YW5jZSgpIHtcclxuICAgIGxldCBjb21wb25lbnRSZWYgPSB0aGlzLnBvcnRhbC5jb21wb25lbnRSZWY7XHJcbiAgICBpZiAoIWNvbXBvbmVudFJlZikgcmV0dXJuO1xyXG4gICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRSZWYuaW5zdGFuY2UsIHtcclxuICAgICAgZGF0YTogdGhpcy5ub2RlcyxcclxuICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXHJcbiAgICAgIHBsYWNlbWVudDogdGhpcy5wbGFjZW1lbnQsXHJcbiAgICAgIG11bHRpcGxlOiB0aGlzLm11bHRpcGxlID09PSB0cnVlID8gMCA6IDEsXHJcbiAgICAgIHNlbGVjdEFsbDogdGhpcy5zZWxlY3RBbGwsXHJcbiAgICAgIG5vZGVUcGw6IHRoaXMubm9kZVRwbCxcclxuICAgICAgdmFsdWVDaGFuZ2U6IHRoaXMudmFsdWVDaGFuZ2UsXHJcbiAgICAgIHBvc2l0aW9uQ2hhbmdlOiB0aGlzLnBvc2l0aW9uQ2hhbmdlLFxyXG4gICAgICBjbG9zZVN1YmplY3Q6IHRoaXMuY2xvc2VTdWJqZWN0LFxyXG4gICAgICBrZXlkb3duU3ViamVjdDogdGhpcy5rZXlkb3duU3ViamVjdCxcclxuICAgICAgZGF0YUNoYW5nZTogdGhpcy5kYXRhQ2hhbmdlLFxyXG4gICAgICBpbnB1dENvbTogdGhpcy5pbnB1dENvbSxcclxuICAgICAgcG9ydGFsTWF4SGVpZ2h0OiB0aGlzLnBvcnRhbE1heEhlaWdodCxcclxuICAgICAgb2JqZWN0QXJyYXk6IHRoaXMub2JqZWN0QXJyYXksXHJcbiAgICAgIHNlbGVjdEFsbFRleHQ6IHRoaXMuc2VsZWN0QWxsVGV4dCxcclxuICAgICAgY2FzZVNlbnNpdGl2ZTogdGhpcy5jYXNlU2Vuc2l0aXZlLFxyXG4gICAgICBzZWFyY2g6IHRoaXMuc2VhcmNoLFxyXG4gICAgICB2aXJ0dWFsU2Nyb2xsOiB0aGlzLnZpcnR1YWxTY3JvbGwsXHJcbiAgICAgIHNpemU6IHRoaXMuc2l6ZSxcclxuICAgICAgaW5wdXRDaGFuZ2U6IHRoaXMuaW5wdXRDaGFuZ2UsXHJcbiAgICAgIGRlc3Ryb3lQb3J0YWw6ICgpID0+IHRoaXMuZGVzdHJveVBvcnRhbCgpLFxyXG4gICAgICBub2RlRW1pdDogKG5vZGU6IFhTZWxlY3ROb2RlLCB2YWx1ZTogWFNlbGVjdE5vZGVbXSB8IChzdHJpbmcgfCBudW1iZXIpW10pID0+IHRoaXMubm9kZUNsaWNrKG5vZGUsIHZhbHVlKSxcclxuICAgICAgYW5pbWF0aW5nOiAoaW5nOiBib29sZWFuKSA9PiAodGhpcy5hbmltYXRpbmcgPSBpbmcpXHJcbiAgICB9KTtcclxuICAgIGNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBub2RlQ2xpY2sobm9kZTogWFNlbGVjdE5vZGUsIHZhbHVlPzogWFNlbGVjdE5vZGVbXSB8IChzdHJpbmcgfCBudW1iZXIpW10pIHtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIGlmIChub2RlKSB7XHJcbiAgICAgICAgaWYgKFhJc09iamVjdEFycmF5KHZhbHVlKSkge1xyXG4gICAgICAgICAgaWYgKG5vZGUuc2VsZWN0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZS5wdXNoKG5vZGUpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IGlueCA9IHRoaXMudmFsdWUuZmluZEluZGV4KCh4OiBYU2VsZWN0Tm9kZSkgPT4geC5pZCA9PT0gbm9kZS5pZCk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUuc3BsaWNlKGlueCwgMSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmIChYSXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICAgIGlmIChub2RlLnNlbGVjdGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUucHVzaChub2RlLmlkKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUuc3BsaWNlKHRoaXMudmFsdWUuaW5kZXhPZihub2RlLmlkKSwgMSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZUlucHV0KSB7XHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLm11bHRpcGxlSW5wdXQuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaW5wdXQsICd3aWR0aCcsICcycmVtJyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuc2VhcmNoICYmIHRoaXMubXVsdGlwbGVTZWFyY2hWYWx1ZSAhPT0gJycpIHtcclxuICAgICAgICB0aGlzLm11bHRpcGxlU2VhcmNoVmFsdWUgPSAnJztcclxuICAgICAgICB0aGlzLmlucHV0Q2hhbmdlLm5leHQoJycpO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UubmV4dChbLi4udGhpcy52YWx1ZV0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKG5vZGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbm9kZSA9IG5vZGUgYXMgWFNlbGVjdE5vZGU7XHJcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gbm9kZS5sYWJlbDtcclxuICAgICAgdGhpcy52YWx1ZVRwbENvbnRleHQuJG5vZGUgPSBub2RlO1xyXG4gICAgICB0aGlzLnZhbHVlID0gbm9kZS5pZDtcclxuICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2VhcmNoICYmIHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5tdWx0aXBsZUlucHV0LmlucHV0Rm9jdXMoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW5wdXRDb20uaW5wdXRGb2N1cygpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sVmFsaWRhdG9yKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RBbGxOb2Rlcyh2YWx1ZTogWFNlbGVjdE5vZGVbXSB8IChzdHJpbmcgfCBudW1iZXIpW10pIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHNldFBsYWNlbWVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbFNlcnZpY2Uuc2V0UGxhY2VtZW50KHtcclxuICAgICAgZWxlbWVudFJlZjogdGhpcy5pbnB1dENvbS5pbnB1dFJlZixcclxuICAgICAgcGxhY2VtZW50OiB0aGlzLnBsYWNlbWVudHMsXHJcbiAgICAgIHRyYW5zZm9ybU9yaWdpbk9uOiAneC1zZWxlY3QtcG9ydGFsJ1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQb3J0YWwoKSB7XHJcbiAgICB0aGlzLnBvcnRhbEF0dGFjaGVkKCkgJiYgdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5zZXRQbGFjZW1lbnQoKSk7XHJcbiAgfVxyXG5cclxuICBmb3JtQ29udHJvbENoYW5nZXMoKSB7XHJcbiAgICB0aGlzLnNldERhdGEoKTtcclxuICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMubmdBZnRlclZpZXdJbml0KCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBvbktleWRvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICB0aGlzLmtleWRvd25TdWJqZWN0Lm5leHQoJGV2ZW50KTtcclxuICAgIGlmICgkZXZlbnQua2V5Q29kZSAhPT0gVEFCICYmICF0aGlzLnNlYXJjaCkge1xyXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRm9jdXMoX2V2ZW50OiBFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoICYmIHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5tdWx0aXBsZUlucHV0LmlucHV0Rm9jdXMoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW5wdXRDb20uaW5wdXRGb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25JbnB1dChfZXZlbnQ6IElucHV0RXZlbnQpIHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2xWYWxpZGF0b3IoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5pbnB1dENoYW5nZS5uZXh0KHRoaXMubXVsdGlwbGUgPyB0aGlzLm11bHRpcGxlU2VhcmNoVmFsdWUgOiB0aGlzLmRpc3BsYXlWYWx1ZSkpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICNzZWxlY3QgY2xhc3M9XCJ4LXNlbGVjdFwiIFtjbGFzcy54LXNlbGVjdC1tdWx0aXBsZV09XCJtdWx0aXBsZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXNlbGVjdC1yb3dcIj5cclxuICAgIDx4LWlucHV0XHJcbiAgICAgICNpbnB1dENvbVxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIFtsYWJlbF09XCJsYWJlbFwiXHJcbiAgICAgIFtsYWJlbFdpZHRoXT1cImxhYmVsV2lkdGhcIlxyXG4gICAgICBbbGFiZWxBbGlnbl09XCJsYWJlbEFsaWduXCJcclxuICAgICAgW2p1c3RpZnldPVwianVzdGlmeVwiXHJcbiAgICAgIFthbGlnbl09XCJhbGlnblwiXHJcbiAgICAgIFtkaXJlY3Rpb25dPVwiZGlyZWN0aW9uXCJcclxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgW3ZhbGlkYXRvcl09XCJ2YWxpZGF0b3JcIlxyXG4gICAgICBbaWNvbl09XCJpY29uXCJcclxuICAgICAgW2ljb25TcGluXT1cImljb25TcGluXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgW3JlYWRvbmx5XT1cImdldFJlYWRvbmx5XCJcclxuICAgICAgW2NsZWFyYWJsZV09XCJzaG93Q2xlYXJhYmxlXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJkaXNwbGF5VmFsdWVcIlxyXG4gICAgICBbdmFsdWVUcGxdPVwidmFsdWVUcGwgPyB2YWx1ZVRwbCA6IG5vZGVUcGxcIlxyXG4gICAgICBbdmFsdWVUcGxDb250ZXh0XT1cInZhbHVlVHBsQ29udGV4dFwiXHJcbiAgICAgIFtzaXplXT1cInNpemVcIlxyXG4gICAgICBbYm9yZGVyZWRdPVwiYm9yZGVyZWRcIlxyXG4gICAgICBbYmVmb3JlXT1cImJlZm9yZVwiXHJcbiAgICAgIFthZnRlcl09XCJhZnRlclwiXHJcbiAgICAgIFtwYXR0ZXJuXT1cInBhdHRlcm5cIlxyXG4gICAgICBbbWVzc2FnZV09XCJtZXNzYWdlXCJcclxuICAgICAgW3BvaW50ZXJdPVwidHJ1ZVwiXHJcbiAgICAgIFtpbnB1dFBhZGRpbmddPVwiaW5wdXRQYWRkaW5nXCJcclxuICAgICAgWyhhY3RpdmUpXT1cImFjdGl2ZVwiXHJcbiAgICAgIChjbGVhckVtaXQpPVwiY2xlYXJFbWl0KClcIlxyXG4gICAgICAoeEtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIlxyXG4gICAgICAoeElucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXHJcbiAgICAgICh4Rm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgICAgKHhDbGljayk9XCJzaG93UG9ydGFsKHRydWUpXCJcclxuICAgICAgKHhNb3VzZWVudGVyKT1cIm1lbnRlcigpXCJcclxuICAgICAgKHhNb3VzZWxlYXZlKT1cIm1sZWF2ZSgpXCJcclxuICAgICAgKHhDb21wb3NpdGlvbik9XCJjb21wb3NpdGlvbiA9ICRldmVudFwiXHJcbiAgICA+PC94LWlucHV0PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbXVsdGlwbGVWYWx1ZVRwbD5cclxuICA8eC10YWdcclxuICAgIFtALmRpc2FibGVkXT1cInRydWVcIlxyXG4gICAgKm5nRm9yPVwibGV0IG5vZGUgb2YgZGlzcGxheU5vZGVzOyBpbmRleCBhcyBpXCJcclxuICAgIFtjbG9zYWJsZV09XCIhZGlzYWJsZWRcIlxyXG4gICAgKGNsb3NlKT1cImNsb3NlTm9kZSgkZXZlbnQsIG5vZGUsIGkpXCJcclxuICAgIFtzaXplXT1cInNpemVcIlxyXG4gICAgPnt7IG5vZGUubGFiZWwgfX08L3gtdGFnXHJcbiAgPlxyXG4gIDx4LXRhZyBbQC5kaXNhYmxlZF09XCJ0cnVlXCIgKm5nSWY9XCJzaG93RGlzcGxheU1vcmVcIiBbc2l6ZV09XCJzaXplXCI+XHJcbiAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiZ2V0TWF4VGFnQ29udGVudDsgY29udGV4dDogeyAkc3VycGx1czogc2VsZWN0ZWRTdXJwbHVzLCAkdG90YWw6IHNlbGVjdGVkVG90YWwgfVwiPnt7XHJcbiAgICAgIGRpc3BsYXlNb3JlXHJcbiAgICB9fTwvbmctY29udGFpbmVyPlxyXG4gIDwveC10YWc+XHJcbiAgPHgtaW5wdXRcclxuICAgICNtdWx0aXBsZUlucHV0XHJcbiAgICAqbmdJZj1cInNlYXJjaFwiXHJcbiAgICBib3JkZXJlZD1cImZhbHNlXCJcclxuICAgIFtzaXplXT1cInNpemVcIlxyXG4gICAgaW5wdXRQYWRkaW5nPVwiMC4yNzVcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJtdWx0aXBsZVNlYXJjaFZhbHVlXCJcclxuICAgICh4SW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcclxuICAgICh4S2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXHJcbiAgPjwveC1pbnB1dD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -14,8 +14,8 @@ import { XOutletModule } from '@ng-nest/ui/outlet';
|
|
|
14
14
|
import * as i0 from "@angular/core";
|
|
15
15
|
export class XSelectModule {
|
|
16
16
|
}
|
|
17
|
-
/** @nocollapse */ XSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
18
|
-
/** @nocollapse */ XSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
17
|
+
/** @nocollapse */ XSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
18
|
+
/** @nocollapse */ XSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: XSelectModule, declarations: [XSelectComponent, XSelectPortalComponent, XSelectProperty], imports: [CommonModule,
|
|
19
19
|
FormsModule,
|
|
20
20
|
ReactiveFormsModule,
|
|
21
21
|
XPortalModule,
|
|
@@ -25,7 +25,7 @@ export class XSelectModule {
|
|
|
25
25
|
XTagModule,
|
|
26
26
|
XI18nModule,
|
|
27
27
|
XOutletModule], exports: [XSelectComponent, XSelectPortalComponent] });
|
|
28
|
-
/** @nocollapse */ XSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
28
|
+
/** @nocollapse */ XSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XSelectModule, imports: [CommonModule,
|
|
29
29
|
FormsModule,
|
|
30
30
|
ReactiveFormsModule,
|
|
31
31
|
XPortalModule,
|
|
@@ -35,7 +35,7 @@ export class XSelectModule {
|
|
|
35
35
|
XTagModule,
|
|
36
36
|
XI18nModule,
|
|
37
37
|
XOutletModule] });
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XSelectModule, decorators: [{
|
|
39
39
|
type: NgModule,
|
|
40
40
|
args: [{
|
|
41
41
|
declarations: [XSelectComponent, XSelectPortalComponent, XSelectProperty],
|
|
@@ -23,8 +23,8 @@ export class XSelectProperty extends XControlValueAccessor {
|
|
|
23
23
|
this.data = [];
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
/** @nocollapse */ XSelectProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
27
|
-
/** @nocollapse */ XSelectProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
26
|
+
/** @nocollapse */ XSelectProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XSelectProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
+
/** @nocollapse */ XSelectProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XSelectProperty, selector: "ng-component", inputs: { data: "data", clearable: "clearable", async: "async", placement: "placement", multiple: "multiple", selectAll: "selectAll", selectAllText: "selectAllText", nodeTpl: "nodeTpl", size: "size", bordered: "bordered", portalMaxHeight: "portalMaxHeight", portalWidth: "portalWidth", search: "search", caseSensitive: "caseSensitive", debounceTime: "debounceTime", maxTagCount: "maxTagCount", maxTagContent: "maxTagContent", virtualScroll: "virtualScroll" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
28
28
|
__decorate([
|
|
29
29
|
XDataConvert()
|
|
30
30
|
], XSelectProperty.prototype, "data", void 0);
|
|
@@ -79,7 +79,7 @@ __decorate([
|
|
|
79
79
|
XWithConfig(X_CONFIG_NAME),
|
|
80
80
|
XInputBoolean()
|
|
81
81
|
], XSelectProperty.prototype, "virtualScroll", void 0);
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XSelectProperty, decorators: [{
|
|
83
83
|
type: Component,
|
|
84
84
|
args: [{ template: '' }]
|
|
85
85
|
}], propDecorators: { data: [{
|
|
@@ -28,9 +28,9 @@ export class XSkeletonComponent extends XSkeletonProperty {
|
|
|
28
28
|
this.cdr.markForCheck();
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
/** @nocollapse */ XSkeletonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
32
|
-
/** @nocollapse */ XSkeletonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
31
|
+
/** @nocollapse */ XSkeletonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XSkeletonComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
32
|
+
/** @nocollapse */ XSkeletonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XSkeletonComponent, selector: "x-skeleton", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!loading\">\r\n <ng-content></ng-content>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loading\">\r\n <div #skeleton class=\"x-skeleton\" [ngClass]=\"classMap\">\r\n <ng-container *ngTemplateOutlet=\"rowsTpl; context: { rows: data }\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #rowsTpl let-rows=\"rows\">\r\n <x-row *ngFor=\"let row of rows\" [space]=\"row.space\" [justify]=\"row.flex ? 'start' : undefined\" [ngStyle]=\"row.style\">\r\n <x-col\r\n *ngFor=\"let col of row.cols\"\r\n [span]=\"col.span\"\r\n [inherit]=\"col.width || col.height ? true : false\"\r\n [ngStyle]=\"col.style\"\r\n [style.padding-top.rem]=\"border && row.space / 2\"\r\n [style.padding-bottom.rem]=\"border && row.space / 2\"\r\n [ngClass]=\"{\r\n title: col.type === 'title',\r\n img: col.type === 'img',\r\n avatar: col.type === 'avatar',\r\n transparent: col.type === 'transparent',\r\n 'has-child': col.rows\r\n }\"\r\n >\r\n <div [style.width]=\"col.width\" [style.height]=\"col.height\">\r\n <ng-container *ngIf=\"col.rows\">\r\n <ng-container *ngTemplateOutlet=\"rowsTpl; context: { rows: col.rows }\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </x-col>\r\n </x-row>\r\n</ng-template>\r\n", styles: ["@keyframes skeleton-active{0%{width:0;opacity:.1}20%{width:0;opacity:.5}to{width:100%;opacity:0}}.x-skeleton{margin:0;padding:0}.x-skeleton x-row,.x-skeleton x-col{min-height:1rem}.x-skeleton x-row{background-color:var(--x-background)}.x-skeleton x-row:not(:first-child){margin-top:1rem}.x-skeleton x-col>div{width:100%;height:1rem;background-color:var(--x-info-800);border-radius:var(--x-border-radius);position:relative}.x-skeleton x-col.has-child>div{background-color:transparent}.x-skeleton x-col.has-size{width:inherit}.x-skeleton x-col.avatar>div{border-radius:50%}.x-skeleton x-col.title>div,.x-skeleton x-col.avatar>div,.x-skeleton x-col.img>div{background-color:var(--x-info-700)}.x-skeleton x-col.transparent{padding:0!important}.x-skeleton x-col.transparent>div{background-color:transparent}.x-skeleton-border x-row{margin:0!important}.x-skeleton-border x-row x-col{border-left:.0625rem solid var(--x-border);border-bottom:.0625rem solid var(--x-border)}.x-skeleton-border x-row x-col:last-child{border-right:.0625rem solid var(--x-border)}.x-skeleton-border x-row:first-child x-col{border-top:.0625rem solid var(--x-border)}.x-skeleton-active x-col:not(.has-child):not(.transparent)>div:before{position:absolute;inset:0;background:var(--x-background-100);border-radius:var(--x-border-radius);opacity:0;animation:skeleton-active 1.4s cubic-bezier(.23,1,.32,1) infinite;content:\"\"}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.XRowComponent, selector: "x-row" }, { kind: "component", type: i3.XColComponent, selector: "x-col" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XSkeletonComponent, decorators: [{
|
|
34
34
|
type: Component,
|
|
35
35
|
args: [{ selector: `${XSkeletonPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"!loading\">\r\n <ng-content></ng-content>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loading\">\r\n <div #skeleton class=\"x-skeleton\" [ngClass]=\"classMap\">\r\n <ng-container *ngTemplateOutlet=\"rowsTpl; context: { rows: data }\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #rowsTpl let-rows=\"rows\">\r\n <x-row *ngFor=\"let row of rows\" [space]=\"row.space\" [justify]=\"row.flex ? 'start' : undefined\" [ngStyle]=\"row.style\">\r\n <x-col\r\n *ngFor=\"let col of row.cols\"\r\n [span]=\"col.span\"\r\n [inherit]=\"col.width || col.height ? true : false\"\r\n [ngStyle]=\"col.style\"\r\n [style.padding-top.rem]=\"border && row.space / 2\"\r\n [style.padding-bottom.rem]=\"border && row.space / 2\"\r\n [ngClass]=\"{\r\n title: col.type === 'title',\r\n img: col.type === 'img',\r\n avatar: col.type === 'avatar',\r\n transparent: col.type === 'transparent',\r\n 'has-child': col.rows\r\n }\"\r\n >\r\n <div [style.width]=\"col.width\" [style.height]=\"col.height\">\r\n <ng-container *ngIf=\"col.rows\">\r\n <ng-container *ngTemplateOutlet=\"rowsTpl; context: { rows: col.rows }\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </x-col>\r\n </x-row>\r\n</ng-template>\r\n", styles: ["@keyframes skeleton-active{0%{width:0;opacity:.1}20%{width:0;opacity:.5}to{width:100%;opacity:0}}.x-skeleton{margin:0;padding:0}.x-skeleton x-row,.x-skeleton x-col{min-height:1rem}.x-skeleton x-row{background-color:var(--x-background)}.x-skeleton x-row:not(:first-child){margin-top:1rem}.x-skeleton x-col>div{width:100%;height:1rem;background-color:var(--x-info-800);border-radius:var(--x-border-radius);position:relative}.x-skeleton x-col.has-child>div{background-color:transparent}.x-skeleton x-col.has-size{width:inherit}.x-skeleton x-col.avatar>div{border-radius:50%}.x-skeleton x-col.title>div,.x-skeleton x-col.avatar>div,.x-skeleton x-col.img>div{background-color:var(--x-info-700)}.x-skeleton x-col.transparent{padding:0!important}.x-skeleton x-col.transparent>div{background-color:transparent}.x-skeleton-border x-row{margin:0!important}.x-skeleton-border x-row x-col{border-left:.0625rem solid var(--x-border);border-bottom:.0625rem solid var(--x-border)}.x-skeleton-border x-row x-col:last-child{border-right:.0625rem solid var(--x-border)}.x-skeleton-border x-row:first-child x-col{border-top:.0625rem solid var(--x-border)}.x-skeleton-active x-col:not(.has-child):not(.transparent)>div:before{position:absolute;inset:0;background:var(--x-background-100);border-radius:var(--x-border-radius);opacity:0;animation:skeleton-active 1.4s cubic-bezier(.23,1,.32,1) infinite;content:\"\"}\n"] }]
|
|
36
36
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; } });
|
|
@@ -6,10 +6,10 @@ import { XSkeletonProperty } from './skeleton.property';
|
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export class XSkeletonModule {
|
|
8
8
|
}
|
|
9
|
-
/** @nocollapse */ XSkeletonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
10
|
-
/** @nocollapse */ XSkeletonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
11
|
-
/** @nocollapse */ XSkeletonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
9
|
+
/** @nocollapse */ XSkeletonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XSkeletonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
|
+
/** @nocollapse */ XSkeletonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: XSkeletonModule, declarations: [XSkeletonComponent, XSkeletonProperty], imports: [CommonModule, XLayoutModule], exports: [XSkeletonComponent] });
|
|
11
|
+
/** @nocollapse */ XSkeletonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XSkeletonModule, imports: [CommonModule, XLayoutModule] });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XSkeletonModule, decorators: [{
|
|
13
13
|
type: NgModule,
|
|
14
14
|
args: [{
|
|
15
15
|
declarations: [XSkeletonComponent, XSkeletonProperty],
|
|
@@ -26,8 +26,8 @@ export class XSkeletonProperty extends XProperty {
|
|
|
26
26
|
this.loading = true;
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
/** @nocollapse */ XSkeletonProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
30
|
-
/** @nocollapse */ XSkeletonProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
29
|
+
/** @nocollapse */ XSkeletonProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XSkeletonProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
+
/** @nocollapse */ XSkeletonProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XSkeletonProperty, selector: "ng-component", inputs: { data: "data", loading: "loading", active: "active", border: "border" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
31
31
|
__decorate([
|
|
32
32
|
XInputBoolean()
|
|
33
33
|
], XSkeletonProperty.prototype, "loading", void 0);
|
|
@@ -37,7 +37,7 @@ __decorate([
|
|
|
37
37
|
__decorate([
|
|
38
38
|
XInputBoolean()
|
|
39
39
|
], XSkeletonProperty.prototype, "border", void 0);
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XSkeletonProperty, decorators: [{
|
|
41
41
|
type: Component,
|
|
42
42
|
args: [{ template: '' }]
|
|
43
43
|
}], propDecorators: { data: [{
|