@ng-nest/ui 14.0.12 → 14.0.14
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/checkbox/checkbox.component.d.ts +2 -0
- package/checkbox/checkbox.property.d.ts +21 -1
- package/esm2020/affix/affix.component.mjs +4 -4
- package/esm2020/affix/affix.module.mjs +5 -5
- package/esm2020/affix/affix.property.mjs +4 -4
- package/esm2020/alert/alert.component.mjs +4 -4
- package/esm2020/alert/alert.module.mjs +5 -5
- package/esm2020/alert/alert.property.mjs +4 -4
- package/esm2020/anchor/anchor.component.mjs +4 -5
- package/esm2020/anchor/anchor.module.mjs +5 -5
- package/esm2020/anchor/anchor.property.mjs +4 -4
- package/esm2020/api/api.component.mjs +4 -4
- package/esm2020/api/api.module.mjs +5 -5
- package/esm2020/auto-complete/auto-complete-portal.component.mjs +4 -4
- package/esm2020/auto-complete/auto-complete.component.mjs +4 -4
- package/esm2020/auto-complete/auto-complete.module.mjs +5 -5
- package/esm2020/auto-complete/auto-complete.property.mjs +4 -4
- package/esm2020/avatar/avatar-group.component.mjs +4 -4
- package/esm2020/avatar/avatar.component.mjs +4 -4
- package/esm2020/avatar/avatar.module.mjs +5 -5
- package/esm2020/avatar/avatar.property.mjs +7 -7
- package/esm2020/back-top/back-top.component.mjs +4 -4
- package/esm2020/back-top/back-top.module.mjs +5 -5
- package/esm2020/back-top/back-top.property.mjs +4 -4
- package/esm2020/badge/badge.component.mjs +4 -4
- package/esm2020/badge/badge.module.mjs +5 -5
- package/esm2020/badge/badge.property.mjs +4 -4
- package/esm2020/base-form/base-form.component.mjs +4 -4
- package/esm2020/base-form/base-form.module.mjs +5 -5
- package/esm2020/base-form/base-form.property.mjs +4 -4
- package/esm2020/border/border.component.mjs +4 -4
- package/esm2020/border/border.module.mjs +5 -5
- package/esm2020/button/button.component.mjs +4 -4
- package/esm2020/button/button.module.mjs +5 -5
- package/esm2020/button/button.property.mjs +7 -7
- package/esm2020/button/buttons.component.mjs +4 -4
- package/esm2020/calendar/calendar.component.mjs +4 -4
- package/esm2020/calendar/calendar.module.mjs +5 -5
- package/esm2020/calendar/calendar.property.mjs +4 -4
- package/esm2020/card/card.component.mjs +4 -4
- package/esm2020/card/card.module.mjs +5 -5
- package/esm2020/card/card.property.mjs +4 -4
- package/esm2020/carousel/carousel-panel.component.mjs +4 -4
- package/esm2020/carousel/carousel.component.mjs +4 -4
- package/esm2020/carousel/carousel.module.mjs +5 -5
- package/esm2020/carousel/carousel.property.mjs +7 -7
- package/esm2020/cascade/cascade-portal.component.mjs +4 -4
- package/esm2020/cascade/cascade.component.mjs +4 -4
- package/esm2020/cascade/cascade.module.mjs +5 -5
- package/esm2020/cascade/cascade.property.mjs +4 -4
- package/esm2020/checkbox/checkbox.component.mjs +12 -6
- package/esm2020/checkbox/checkbox.module.mjs +5 -5
- package/esm2020/checkbox/checkbox.property.mjs +8 -4
- package/esm2020/collapse/collapse-panel.component.mjs +4 -4
- package/esm2020/collapse/collapse.component.mjs +4 -4
- package/esm2020/collapse/collapse.module.mjs +5 -5
- package/esm2020/collapse/collapse.property.mjs +7 -7
- package/esm2020/color/color.component.mjs +4 -4
- package/esm2020/color/color.module.mjs +5 -5
- package/esm2020/color/color.property.mjs +4 -4
- package/esm2020/color-picker/color-picker-portal.component.mjs +5 -5
- package/esm2020/color-picker/color-picker.component.mjs +4 -4
- package/esm2020/color-picker/color-picker.module.mjs +5 -5
- package/esm2020/color-picker/color-picker.property.mjs +4 -4
- package/esm2020/comment/comment-reply.component.mjs +4 -4
- package/esm2020/comment/comment.component.mjs +4 -4
- package/esm2020/comment/comment.module.mjs +5 -5
- package/esm2020/comment/comment.property.mjs +7 -7
- package/esm2020/container/aside.component.mjs +4 -4
- package/esm2020/container/container.component.mjs +4 -4
- package/esm2020/container/container.module.mjs +5 -5
- package/esm2020/container/container.property.mjs +13 -13
- package/esm2020/container/footer.component.mjs +4 -4
- package/esm2020/container/header.component.mjs +4 -4
- package/esm2020/container/main.component.mjs +4 -4
- package/esm2020/core/config/config.service.mjs +4 -4
- package/esm2020/core/services/http.service.mjs +4 -4
- package/esm2020/core/services/preloading-strategy.service.mjs +4 -4
- package/esm2020/core/services/storage.service.mjs +4 -4
- package/esm2020/core/theme/theme.service.mjs +4 -4
- package/esm2020/crumb/crumb.component.mjs +4 -4
- package/esm2020/crumb/crumb.module.mjs +5 -5
- package/esm2020/crumb/crumb.property.mjs +4 -4
- package/esm2020/date-picker/date-picker-portal.component.mjs +4 -4
- package/esm2020/date-picker/date-picker.component.mjs +4 -4
- package/esm2020/date-picker/date-picker.module.mjs +5 -5
- package/esm2020/date-picker/date-picker.property.mjs +16 -16
- package/esm2020/date-picker/date-range-portal.component.mjs +4 -4
- package/esm2020/date-picker/date-range.component.mjs +4 -4
- package/esm2020/date-picker/picker-date.component.mjs +4 -4
- package/esm2020/date-picker/picker-month.component.mjs +4 -4
- package/esm2020/date-picker/picker-year.component.mjs +4 -4
- package/esm2020/description/description-item.component.mjs +4 -4
- package/esm2020/description/description.component.mjs +4 -4
- package/esm2020/description/description.module.mjs +5 -5
- package/esm2020/description/description.property.mjs +7 -7
- package/esm2020/dialog/dialog-container.component.mjs +6 -6
- package/esm2020/dialog/dialog-portal.component.mjs +4 -4
- package/esm2020/dialog/dialog-portal.directives.mjs +19 -19
- package/esm2020/dialog/dialog.component.mjs +4 -4
- package/esm2020/dialog/dialog.module.mjs +5 -5
- package/esm2020/dialog/dialog.property.mjs +7 -7
- package/esm2020/dialog/dialog.service.mjs +4 -4
- package/esm2020/doc/doc.component.mjs +4 -4
- package/esm2020/doc/doc.module.mjs +5 -5
- package/esm2020/drawer/drawer-container.component.mjs +6 -6
- package/esm2020/drawer/drawer-portal.component.mjs +4 -4
- package/esm2020/drawer/drawer-portal.directives.mjs +10 -10
- package/esm2020/drawer/drawer.component.mjs +4 -4
- package/esm2020/drawer/drawer.module.mjs +5 -5
- package/esm2020/drawer/drawer.property.mjs +7 -7
- package/esm2020/drawer/drawer.service.mjs +4 -4
- package/esm2020/dropdown/dropdown-portal.component.mjs +4 -4
- package/esm2020/dropdown/dropdown.component.mjs +4 -4
- package/esm2020/dropdown/dropdown.module.mjs +5 -5
- package/esm2020/dropdown/dropdown.property.mjs +4 -4
- package/esm2020/empty/empty.component.mjs +4 -4
- package/esm2020/empty/empty.module.mjs +5 -5
- package/esm2020/empty/empty.property.mjs +4 -4
- package/esm2020/examples/examples.component.mjs +4 -4
- package/esm2020/examples/examples.module.mjs +5 -5
- package/esm2020/find/find.component.mjs +4 -4
- package/esm2020/find/find.module.mjs +5 -5
- package/esm2020/find/find.property.mjs +4 -4
- package/esm2020/form/control.component.mjs +4 -4
- package/esm2020/form/form.component.mjs +4 -4
- package/esm2020/form/form.module.mjs +5 -5
- package/esm2020/form/form.property.mjs +7 -7
- package/esm2020/highlight/highlight.component.mjs +4 -4
- package/esm2020/highlight/highlight.module.mjs +5 -5
- package/esm2020/highlight/highlight.property.mjs +4 -4
- package/esm2020/i18n/i18n.directive.mjs +4 -4
- package/esm2020/i18n/i18n.module.mjs +5 -5
- package/esm2020/i18n/i18n.pipe.mjs +4 -4
- package/esm2020/i18n/i18n.service.mjs +4 -4
- package/esm2020/icon/icon.component.mjs +4 -4
- package/esm2020/icon/icon.module.mjs +6 -7
- package/esm2020/icon/icon.property.mjs +4 -4
- package/esm2020/icon/icon.service.mjs +12 -6
- package/esm2020/image/image-group.component.mjs +4 -4
- package/esm2020/image/image-preview.component.mjs +4 -4
- package/esm2020/image/image.component.mjs +4 -4
- package/esm2020/image/image.module.mjs +5 -5
- package/esm2020/image/image.property.mjs +7 -7
- package/esm2020/inner/inner.component.mjs +4 -4
- package/esm2020/inner/inner.module.mjs +5 -5
- package/esm2020/inner/inner.property.mjs +4 -4
- package/esm2020/input/input-group.component.mjs +4 -4
- package/esm2020/input/input.component.mjs +4 -4
- package/esm2020/input/input.module.mjs +5 -5
- package/esm2020/input/input.property.mjs +11 -7
- package/esm2020/input-number/input-number.component.mjs +4 -4
- package/esm2020/input-number/input-number.module.mjs +5 -5
- package/esm2020/input-number/input-number.property.mjs +4 -4
- package/esm2020/keyword/keyword.directive.mjs +4 -4
- package/esm2020/keyword/keyword.module.mjs +5 -5
- package/esm2020/keyword/keyword.property.mjs +4 -4
- package/esm2020/layout/col.component.mjs +4 -4
- package/esm2020/layout/layout.module.mjs +5 -5
- package/esm2020/layout/layout.property.mjs +7 -7
- package/esm2020/layout/row.component.mjs +4 -4
- package/esm2020/link/link.component.mjs +4 -4
- package/esm2020/link/link.module.mjs +5 -5
- package/esm2020/link/link.property.mjs +4 -4
- package/esm2020/list/list-drop-group.directive.mjs +4 -4
- package/esm2020/list/list-option.component.mjs +4 -4
- package/esm2020/list/list.component.mjs +4 -4
- package/esm2020/list/list.module.mjs +5 -5
- package/esm2020/list/list.property.mjs +7 -7
- package/esm2020/loading/loading.component.mjs +5 -5
- package/esm2020/loading/loading.module.mjs +5 -5
- package/esm2020/loading/loading.property.mjs +4 -4
- package/esm2020/menu/menu-node.component.mjs +4 -4
- package/esm2020/menu/menu.component.mjs +4 -4
- package/esm2020/menu/menu.module.mjs +5 -5
- package/esm2020/menu/menu.property.mjs +7 -7
- package/esm2020/message/message.component.mjs +4 -4
- package/esm2020/message/message.module.mjs +5 -5
- package/esm2020/message/message.service.mjs +4 -4
- package/esm2020/message-box/message-box.component.mjs +4 -4
- package/esm2020/message-box/message-box.module.mjs +5 -5
- package/esm2020/message-box/message-box.service.mjs +4 -4
- package/esm2020/notification/notification.component.mjs +4 -4
- package/esm2020/notification/notification.module.mjs +5 -5
- package/esm2020/notification/notification.service.mjs +4 -4
- package/esm2020/outlet/outlet.directive.mjs +4 -4
- package/esm2020/outlet/outlet.module.mjs +5 -5
- package/esm2020/page-header/page-header.component.mjs +4 -4
- package/esm2020/page-header/page-header.module.mjs +5 -5
- package/esm2020/page-header/page-header.property.mjs +4 -4
- package/esm2020/pagination/pagination.component.mjs +4 -4
- package/esm2020/pagination/pagination.module.mjs +5 -5
- package/esm2020/pagination/pagination.property.mjs +4 -4
- package/esm2020/pattern/pattern.component.mjs +4 -4
- package/esm2020/pattern/pattern.module.mjs +5 -5
- package/esm2020/popconfirm/popconfirm.component.mjs +4 -4
- package/esm2020/popconfirm/popconfirm.module.mjs +5 -5
- package/esm2020/popconfirm/popconfirm.property.mjs +4 -4
- package/esm2020/popover/popover-portal.component.mjs +4 -4
- package/esm2020/popover/popover.directive.mjs +4 -4
- package/esm2020/popover/popover.module.mjs +5 -5
- package/esm2020/popover/popover.property.mjs +4 -4
- package/esm2020/portal/portal.module.mjs +5 -5
- package/esm2020/portal/portal.service.mjs +4 -4
- package/esm2020/progress/progress.component.mjs +5 -5
- package/esm2020/progress/progress.module.mjs +5 -5
- package/esm2020/progress/progress.property.mjs +4 -4
- package/esm2020/radio/radio.component.mjs +13 -6
- package/esm2020/radio/radio.module.mjs +7 -6
- package/esm2020/radio/radio.property.mjs +8 -4
- package/esm2020/rate/rate.component.mjs +4 -4
- package/esm2020/rate/rate.module.mjs +5 -5
- package/esm2020/rate/rate.property.mjs +4 -4
- package/esm2020/resizable/resizable.directive.mjs +4 -4
- package/esm2020/resizable/resizable.module.mjs +5 -5
- package/esm2020/resizable/resizable.property.mjs +4 -4
- package/esm2020/result/result.component.mjs +4 -4
- package/esm2020/result/result.module.mjs +5 -5
- package/esm2020/result/result.property.mjs +4 -4
- package/esm2020/ripple/ripple.directive.mjs +4 -4
- package/esm2020/ripple/ripple.module.mjs +5 -5
- package/esm2020/ripple/ripple.property.mjs +4 -4
- package/esm2020/select/select-portal.component.mjs +4 -4
- package/esm2020/select/select.component.mjs +4 -4
- package/esm2020/select/select.module.mjs +5 -5
- package/esm2020/select/select.property.mjs +4 -4
- package/esm2020/skeleton/skeleton.component.mjs +5 -5
- package/esm2020/skeleton/skeleton.module.mjs +5 -5
- package/esm2020/skeleton/skeleton.property.mjs +4 -4
- package/esm2020/slider/slider.component.mjs +4 -4
- package/esm2020/slider/slider.module.mjs +5 -5
- package/esm2020/slider/slider.property.mjs +4 -4
- package/esm2020/slider-select/slider-select.component.mjs +4 -4
- package/esm2020/slider-select/slider-select.module.mjs +5 -5
- package/esm2020/slider-select/slider-select.property.mjs +4 -4
- package/esm2020/statistic/countdown.component.mjs +4 -4
- package/esm2020/statistic/statistic.component.mjs +4 -4
- package/esm2020/statistic/statistic.module.mjs +5 -5
- package/esm2020/statistic/statistic.property.mjs +7 -7
- package/esm2020/steps/steps.component.mjs +4 -4
- package/esm2020/steps/steps.module.mjs +5 -5
- package/esm2020/steps/steps.property.mjs +4 -4
- package/esm2020/switch/switch.component.mjs +4 -4
- package/esm2020/switch/switch.module.mjs +5 -5
- package/esm2020/switch/switch.property.mjs +4 -4
- package/esm2020/table/drag.directive.mjs +4 -4
- package/esm2020/table/table-body.component.mjs +4 -4
- package/esm2020/table/table-foot.component.mjs +4 -4
- package/esm2020/table/table-head.component.mjs +4 -4
- package/esm2020/table/table.component.mjs +4 -4
- package/esm2020/table/table.module.mjs +5 -5
- package/esm2020/table/table.property.mjs +13 -13
- package/esm2020/tabs/tab-content.component.mjs +4 -4
- package/esm2020/tabs/tab-link.directive.mjs +8 -8
- package/esm2020/tabs/tab.component.mjs +4 -4
- package/esm2020/tabs/tabs.component.mjs +4 -4
- package/esm2020/tabs/tabs.module.mjs +5 -5
- package/esm2020/tabs/tabs.property.mjs +7 -7
- package/esm2020/tag/tag.component.mjs +4 -4
- package/esm2020/tag/tag.module.mjs +5 -5
- package/esm2020/tag/tag.property.mjs +4 -4
- package/esm2020/text-retract/text-retract.component.mjs +4 -4
- package/esm2020/text-retract/text-retract.module.mjs +5 -5
- package/esm2020/text-retract/text-retract.property.mjs +4 -4
- package/esm2020/textarea/textarea.component.mjs +4 -4
- package/esm2020/textarea/textarea.module.mjs +5 -5
- package/esm2020/textarea/textarea.property.mjs +4 -4
- package/esm2020/theme/theme.component.mjs +5 -5
- package/esm2020/theme/theme.module.mjs +5 -5
- package/esm2020/theme/theme.property.mjs +4 -4
- package/esm2020/time-ago/time-ago.module.mjs +5 -5
- package/esm2020/time-ago/time-ago.pipe.mjs +4 -4
- package/esm2020/time-picker/time-picker-frame.component.mjs +4 -4
- package/esm2020/time-picker/time-picker-portal.component.mjs +4 -4
- package/esm2020/time-picker/time-picker.component.mjs +4 -4
- package/esm2020/time-picker/time-picker.module.mjs +5 -5
- package/esm2020/time-picker/time-picker.property.mjs +4 -4
- package/esm2020/time-range/time-range.module.mjs +5 -5
- package/esm2020/time-range/time-range.pipe.mjs +4 -4
- package/esm2020/timeline/timeline.component.mjs +4 -4
- package/esm2020/timeline/timeline.module.mjs +5 -5
- package/esm2020/timeline/timeline.property.mjs +4 -4
- package/esm2020/tooltip/tooltip-portal.component.mjs +4 -4
- package/esm2020/tooltip/tooltip.directive.mjs +4 -4
- package/esm2020/tooltip/tooltip.module.mjs +5 -5
- package/esm2020/tooltip/tooltip.property.mjs +4 -4
- package/esm2020/transfer/transfer.component.mjs +4 -4
- package/esm2020/transfer/transfer.module.mjs +5 -5
- package/esm2020/transfer/transfer.property.mjs +4 -4
- package/esm2020/tree/tree-node.component.mjs +4 -4
- package/esm2020/tree/tree.component.mjs +4 -4
- package/esm2020/tree/tree.module.mjs +5 -5
- package/esm2020/tree/tree.property.mjs +7 -7
- package/esm2020/tree-file/tree-file.component.mjs +11 -6
- package/esm2020/tree-file/tree-file.module.mjs +6 -7
- package/esm2020/tree-file/tree-file.property.mjs +4 -4
- package/esm2020/tree-select/tree-select-portal.component.mjs +4 -4
- package/esm2020/tree-select/tree-select.component.mjs +4 -4
- package/esm2020/tree-select/tree-select.module.mjs +5 -5
- package/esm2020/tree-select/tree-select.property.mjs +4 -4
- package/esm2020/typography/typography.component.mjs +4 -4
- package/esm2020/typography/typography.module.mjs +5 -5
- package/esm2020/typography/typography.property.mjs +4 -4
- package/esm2020/upload/upload-portal.component.mjs +7 -7
- package/esm2020/upload/upload.component.mjs +11 -6
- package/esm2020/upload/upload.module.mjs +5 -5
- package/esm2020/upload/upload.property.mjs +4 -4
- package/fesm2015/ng-nest-ui-affix.mjs +10 -10
- package/fesm2015/ng-nest-ui-affix.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-alert.mjs +10 -10
- package/fesm2015/ng-nest-ui-alert.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-anchor.mjs +10 -11
- package/fesm2015/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-api.mjs +7 -7
- package/fesm2015/ng-nest-ui-api.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-auto-complete.mjs +13 -13
- package/fesm2015/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-avatar.mjs +16 -16
- package/fesm2015/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-back-top.mjs +10 -10
- 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-badge.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-base-form.mjs +10 -10
- package/fesm2015/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-border.mjs +7 -7
- package/fesm2015/ng-nest-ui-border.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-button.mjs +16 -16
- package/fesm2015/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-calendar.mjs +10 -10
- package/fesm2015/ng-nest-ui-calendar.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-card.mjs +10 -10
- package/fesm2015/ng-nest-ui-card.mjs.map +1 -1
- 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-cascade.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-checkbox.mjs +22 -12
- package/fesm2015/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-collapse.mjs +16 -16
- package/fesm2015/ng-nest-ui-collapse.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-color-picker.mjs +14 -14
- package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-color.mjs +10 -10
- package/fesm2015/ng-nest-ui-color.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-comment.mjs +16 -16
- package/fesm2015/ng-nest-ui-comment.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-container.mjs +31 -31
- package/fesm2015/ng-nest-ui-container.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-core.mjs +15 -15
- package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-crumb.mjs +10 -10
- package/fesm2015/ng-nest-ui-crumb.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-date-picker.mjs +40 -40
- package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-description.mjs +16 -16
- package/fesm2015/ng-nest-ui-description.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-dialog.mjs +42 -42
- package/fesm2015/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-doc.mjs +7 -7
- package/fesm2015/ng-nest-ui-doc.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-drawer.mjs +33 -33
- package/fesm2015/ng-nest-ui-drawer.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-dropdown.mjs +13 -13
- package/fesm2015/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-empty.mjs +10 -10
- package/fesm2015/ng-nest-ui-empty.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-examples.mjs +7 -7
- package/fesm2015/ng-nest-ui-examples.mjs.map +1 -1
- 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-form.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-highlight.mjs +10 -10
- package/fesm2015/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-i18n.mjs +13 -13
- package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-icon.mjs +23 -17
- package/fesm2015/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-image.mjs +19 -19
- package/fesm2015/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-inner.mjs +10 -10
- package/fesm2015/ng-nest-ui-inner.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-input-number.mjs +10 -10
- package/fesm2015/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-input.mjs +20 -16
- package/fesm2015/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-keyword.mjs +10 -10
- package/fesm2015/ng-nest-ui-keyword.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-layout.mjs +16 -16
- package/fesm2015/ng-nest-ui-layout.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-link.mjs +10 -10
- package/fesm2015/ng-nest-ui-link.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-list.mjs +19 -19
- package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-loading.mjs +11 -11
- package/fesm2015/ng-nest-ui-loading.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-menu.mjs +16 -16
- 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-box.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-message.mjs +10 -10
- package/fesm2015/ng-nest-ui-message.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-notification.mjs +10 -10
- package/fesm2015/ng-nest-ui-notification.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-outlet.mjs +7 -7
- package/fesm2015/ng-nest-ui-outlet.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-page-header.mjs +10 -10
- package/fesm2015/ng-nest-ui-page-header.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-pagination.mjs +10 -10
- package/fesm2015/ng-nest-ui-pagination.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-pattern.mjs +7 -7
- package/fesm2015/ng-nest-ui-pattern.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-popconfirm.mjs +10 -10
- package/fesm2015/ng-nest-ui-popconfirm.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-popover.mjs +13 -13
- package/fesm2015/ng-nest-ui-popover.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-portal.mjs +7 -7
- package/fesm2015/ng-nest-ui-portal.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-progress.mjs +11 -11
- package/fesm2015/ng-nest-ui-progress.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-radio.mjs +25 -13
- package/fesm2015/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-rate.mjs +10 -10
- package/fesm2015/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-resizable.mjs +10 -10
- package/fesm2015/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-result.mjs +10 -10
- package/fesm2015/ng-nest-ui-result.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-ripple.mjs +10 -10
- package/fesm2015/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-select.mjs +13 -13
- package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-skeleton.mjs +11 -11
- package/fesm2015/ng-nest-ui-skeleton.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-slider-select.mjs +10 -10
- package/fesm2015/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-slider.mjs +10 -10
- package/fesm2015/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-statistic.mjs +16 -16
- package/fesm2015/ng-nest-ui-statistic.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-steps.mjs +10 -10
- package/fesm2015/ng-nest-ui-steps.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-switch.mjs +10 -10
- package/fesm2015/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-table.mjs +31 -31
- package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tabs.mjs +26 -26
- package/fesm2015/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tag.mjs +10 -10
- package/fesm2015/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-text-retract.mjs +10 -10
- package/fesm2015/ng-nest-ui-text-retract.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-textarea.mjs +10 -10
- package/fesm2015/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-theme.mjs +11 -11
- package/fesm2015/ng-nest-ui-theme.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-time-ago.mjs +7 -7
- package/fesm2015/ng-nest-ui-time-ago.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-time-picker.mjs +16 -16
- 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-time-range.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-timeline.mjs +10 -10
- package/fesm2015/ng-nest-ui-timeline.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tooltip.mjs +13 -13
- package/fesm2015/ng-nest-ui-tooltip.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-transfer.mjs +10 -10
- package/fesm2015/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tree-file.mjs +20 -14
- package/fesm2015/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tree-select.mjs +13 -13
- package/fesm2015/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tree.mjs +16 -16
- package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-typography.mjs +10 -10
- package/fesm2015/ng-nest-ui-typography.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-upload.mjs +27 -18
- package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-affix.mjs +10 -10
- package/fesm2020/ng-nest-ui-affix.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-alert.mjs +10 -10
- package/fesm2020/ng-nest-ui-alert.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-anchor.mjs +10 -11
- package/fesm2020/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-api.mjs +7 -7
- package/fesm2020/ng-nest-ui-api.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-auto-complete.mjs +13 -13
- package/fesm2020/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-avatar.mjs +16 -16
- package/fesm2020/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-back-top.mjs +10 -10
- 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-badge.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-base-form.mjs +10 -10
- package/fesm2020/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-border.mjs +7 -7
- package/fesm2020/ng-nest-ui-border.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-button.mjs +16 -16
- package/fesm2020/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-calendar.mjs +10 -10
- package/fesm2020/ng-nest-ui-calendar.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-card.mjs +10 -10
- package/fesm2020/ng-nest-ui-card.mjs.map +1 -1
- 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-cascade.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-checkbox.mjs +22 -12
- package/fesm2020/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-collapse.mjs +16 -16
- package/fesm2020/ng-nest-ui-collapse.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-color-picker.mjs +14 -14
- package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-color.mjs +10 -10
- package/fesm2020/ng-nest-ui-color.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-comment.mjs +16 -16
- package/fesm2020/ng-nest-ui-comment.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-container.mjs +31 -31
- package/fesm2020/ng-nest-ui-container.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-core.mjs +15 -15
- package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-crumb.mjs +10 -10
- package/fesm2020/ng-nest-ui-crumb.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-date-picker.mjs +40 -40
- package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-description.mjs +16 -16
- package/fesm2020/ng-nest-ui-description.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-dialog.mjs +42 -42
- package/fesm2020/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-doc.mjs +7 -7
- package/fesm2020/ng-nest-ui-doc.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-drawer.mjs +33 -33
- package/fesm2020/ng-nest-ui-drawer.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-dropdown.mjs +13 -13
- package/fesm2020/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-empty.mjs +10 -10
- package/fesm2020/ng-nest-ui-empty.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-examples.mjs +7 -7
- package/fesm2020/ng-nest-ui-examples.mjs.map +1 -1
- 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-form.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-highlight.mjs +10 -10
- package/fesm2020/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-i18n.mjs +13 -13
- package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-icon.mjs +21 -17
- package/fesm2020/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-image.mjs +19 -19
- package/fesm2020/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-inner.mjs +10 -10
- package/fesm2020/ng-nest-ui-inner.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-input-number.mjs +10 -10
- package/fesm2020/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-input.mjs +20 -16
- package/fesm2020/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-keyword.mjs +10 -10
- package/fesm2020/ng-nest-ui-keyword.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-layout.mjs +16 -16
- package/fesm2020/ng-nest-ui-layout.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-link.mjs +10 -10
- package/fesm2020/ng-nest-ui-link.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-list.mjs +19 -19
- package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-loading.mjs +11 -11
- package/fesm2020/ng-nest-ui-loading.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-menu.mjs +16 -16
- 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-box.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-message.mjs +10 -10
- package/fesm2020/ng-nest-ui-message.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-notification.mjs +10 -10
- package/fesm2020/ng-nest-ui-notification.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-outlet.mjs +7 -7
- package/fesm2020/ng-nest-ui-outlet.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-page-header.mjs +10 -10
- package/fesm2020/ng-nest-ui-page-header.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-pagination.mjs +10 -10
- package/fesm2020/ng-nest-ui-pagination.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-pattern.mjs +7 -7
- package/fesm2020/ng-nest-ui-pattern.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-popconfirm.mjs +10 -10
- package/fesm2020/ng-nest-ui-popconfirm.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-popover.mjs +13 -13
- package/fesm2020/ng-nest-ui-popover.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-portal.mjs +7 -7
- package/fesm2020/ng-nest-ui-portal.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-progress.mjs +11 -11
- package/fesm2020/ng-nest-ui-progress.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-radio.mjs +25 -13
- package/fesm2020/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-rate.mjs +10 -10
- package/fesm2020/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-resizable.mjs +10 -10
- package/fesm2020/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-result.mjs +10 -10
- package/fesm2020/ng-nest-ui-result.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-ripple.mjs +10 -10
- package/fesm2020/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-select.mjs +13 -13
- package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-skeleton.mjs +11 -11
- package/fesm2020/ng-nest-ui-skeleton.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-slider-select.mjs +10 -10
- package/fesm2020/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-slider.mjs +10 -10
- package/fesm2020/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-statistic.mjs +16 -16
- package/fesm2020/ng-nest-ui-statistic.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-steps.mjs +10 -10
- package/fesm2020/ng-nest-ui-steps.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-switch.mjs +10 -10
- package/fesm2020/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-table.mjs +31 -31
- package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tabs.mjs +26 -26
- package/fesm2020/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tag.mjs +10 -10
- package/fesm2020/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-text-retract.mjs +10 -10
- package/fesm2020/ng-nest-ui-text-retract.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-textarea.mjs +10 -10
- package/fesm2020/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-theme.mjs +11 -11
- package/fesm2020/ng-nest-ui-theme.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-time-ago.mjs +7 -7
- package/fesm2020/ng-nest-ui-time-ago.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-time-picker.mjs +16 -16
- 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-time-range.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-timeline.mjs +10 -10
- package/fesm2020/ng-nest-ui-timeline.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tooltip.mjs +13 -13
- package/fesm2020/ng-nest-ui-tooltip.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-transfer.mjs +10 -10
- package/fesm2020/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tree-file.mjs +18 -14
- package/fesm2020/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tree-select.mjs +13 -13
- package/fesm2020/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tree.mjs +16 -16
- package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-typography.mjs +10 -10
- package/fesm2020/ng-nest-ui-typography.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-upload.mjs +23 -18
- package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
- package/icon/icon.module.d.ts +1 -2
- package/icon/icon.service.d.ts +1 -1
- package/input/input.property.d.ts +11 -1
- package/menu/menu.component.d.ts +1 -1
- package/package.json +1 -1
- package/radio/radio.component.d.ts +2 -0
- package/radio/radio.module.d.ts +3 -2
- package/radio/radio.property.d.ts +22 -2
- package/tabs/tab-link.directive.d.ts +3 -3
- package/tabs/tabs.component.d.ts +2 -2
- package/tree-file/tree-file.component.d.ts +2 -2
- package/tree-file/tree-file.module.d.ts +7 -8
- package/upload/upload-portal.component.d.ts +1 -1
- package/upload/upload.component.d.ts +1 -1
|
@@ -484,10 +484,10 @@ export class XTransferComponent extends XTransferProperty {
|
|
|
484
484
|
this.cdr.detectChanges();
|
|
485
485
|
}
|
|
486
486
|
}
|
|
487
|
-
/** @nocollapse */ XTransferComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
488
|
-
/** @nocollapse */ XTransferComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTransferComponent, selector: "x-transfer", providers: [XValueAccessor(XTransferComponent)], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #transfer class=\"x-transfer\" cdkDropListGroup [ngClass]=\"classMap\">\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: left }\"></ng-container>\r\n <div [ngStyle]=\"left.listStyle!\" class=\"x-transfer-list\">\r\n <ng-container [ngSwitch]=\"type\">\r\n <ul\r\n *ngSwitchCase=\"'list'\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"left.list\"\r\n [cdkDropListDisabled]=\"!drag && type === 'list'\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n class=\"x-transfer-droplist\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of left.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: left }\"></ng-container>\r\n </li>\r\n </ul>\r\n <x-tree\r\n *ngSwitchCase=\"'tree'\"\r\n [data]=\"left.list!\"\r\n multiple\r\n allowManyActivated\r\n [(activatedId)]=\"treeActivatedId\"\r\n (nodeClick)=\"onTreeNodeClick($event)\"\r\n ></x-tree>\r\n <x-table\r\n *ngSwitchCase=\"'table'\"\r\n [data]=\"tableData\"\r\n [columns]=\"tableColumns!\"\r\n [(size)]=\"tableSize\"\r\n [(index)]=\"tableIndex\"\r\n (indexChange)=\"getTableData()\"\r\n [query]=\"tableQuery\"\r\n [total]=\"tableTotal\"\r\n (activatedRowChange)=\"onTableCheckedRow($event, left)\"\r\n (headCheckboxChange)=\"onTableCheckedAll($event, left)\"\r\n hiddenWrapBorder\r\n hiddenPaginationBorder\r\n showEllipsis=\"false\"\r\n showTotal=\"false\"\r\n paginationPosition=\"bottom-center\"\r\n allowSelectRow=\"false\"\r\n ></x-table>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"x-transfer-buttons\">\r\n <x-button type=\"primary\" icon=\"fto-chevron-right\" [disabled]=\"left.disabledButton\" (click)=\"move(left, right)\"></x-button>\r\n <x-button type=\"primary\" icon=\"fto-chevron-left\" [disabled]=\"right.disabledButton\" (click)=\"move(right, left)\"></x-button>\r\n </div>\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: right }\"></ng-container>\r\n <div [ngSwitch]=\"type\" [ngStyle]=\"right.listStyle!\" class=\"x-transfer-list\">\r\n <x-table\r\n *ngSwitchCase=\"'table'\"\r\n [data]=\"right.list!\"\r\n [columns]=\"tableColumns!\"\r\n (activatedRowChange)=\"onTableCheckedRow($event, right)\"\r\n (headCheckboxChange)=\"onTableCheckedAll($event, right)\"\r\n hiddenWrapBorder\r\n hiddenPaginationBorder\r\n showPagination=\"false\"\r\n showEllipsis=\"false\"\r\n showTotal=\"false\"\r\n paginationPosition=\"bottom-center\"\r\n allowSelectRow=\"false\"\r\n ></x-table>\r\n <ul\r\n *ngSwitchDefault\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"right.list\"\r\n [cdkDropListDisabled]=\"!drag || (drag && type !== 'list')\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n class=\"x-transfer-droplist\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of right.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: right }\"></ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #sourceTitleTpl let-source=\"source\">\r\n <div class=\"x-transfer-title\">\r\n <x-checkbox\r\n *ngIf=\"source.title && !source.hiddenCheckAll\"\r\n [data]=\"[titleTpl ? '' : source.title]\"\r\n [(ngModel)]=\"source.checkedAll\"\r\n (ngModelChange)=\"checkedAllChange($event, source)\"\r\n [indeterminate]=\"source.indeterminate\"\r\n ></x-checkbox>\r\n <span *ngIf=\"source.title && source.hiddenCheckAll\">{{ source.title }}</span>\r\n <ng-container *xOutlet=\"titleTpl; context: { $title: source.title, $checkedCount: source.checkedCount, $count: source.count }\"\r\n ><span class=\"x-transfer-total\">{{ source.checkedCount }} / {{ source.count }}</span></ng-container\r\n >\r\n </div>\r\n <!-- <div class=\"x-transfer-search\" *ngIf=\"search\">\r\n <x-input\r\n icon=\"fto-search\"\r\n [(ngModel)]=\"source.searchInput\"\r\n (ngModelChange)=\"searchInputChange(source)\"\r\n clearable\r\n ></x-input>\r\n </div> -->\r\n</ng-template>\r\n\r\n<ng-template #sourceNodeTpl let-node=\"node\" let-source=\"source\">\r\n <x-checkbox\r\n [data]=\"[{ id: node.id, label: nodeTpl ? nodeTpl : node.label, node: node }]\"\r\n [disabled]=\"node.disabled\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"checkedChange($event, source)\"\r\n ></x-checkbox>\r\n</ng-template>\r\n", styles: [".x-transfer{margin:0;padding:0;display:inline-flex;align-items:center}.x-transfer-title{padding:.25rem .5625rem;display:flex;align-items:center;justify-content:space-between;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-top-left-radius:var(--x-border-radius);border-top-right-radius:var(--x-border-radius);border-bottom:none;background-color:var(--x-background);color:var(--x-text-300)}.x-transfer-total{margin-left:.325rem}.x-transfer-list{display:flex;flex-direction:column;height:18rem;width:12rem;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-bottom-left-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius);overflow:auto}.x-transfer-item{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;transition:border-color var(--x-animation-duration-base),background-color var(--x-animation-duration-base),color var(--x-animation-duration-base)}.x-transfer-droplist{height:100%;padding:.25rem}.x-transfer-droplist.cdk-drop-list-dragging .x-transfer-item:hover{background-color:transparent}.x-transfer-droplist.cdk-drop-list-dragging .x-transfer-item.cdk-drag-placeholder{border-color:var(--x-primary);color:var(--x-primary);background-color:var(--x-background);opacity:.8}.x-transfer-droplist.cdk-drop-list-dragging .x-transfer-item:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}.x-transfer-buttons{margin:0 1rem;display:flex;flex-direction:column}.x-transfer-buttons>x-button:not(:first-child){margin-top:.5rem}.x-transfer-search{padding:.5rem;border-bottom:.0625rem solid var(--x-border)}body>li.x-transfer-item.cdk-drag-preview{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;border-color:var(--x-border);color:var(--x-text-400);background-color:var(--x-background-a100);opacity:.9}body>li.x-transfer-item.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i7.XCheckboxComponent, selector: "x-checkbox" }, { kind: "component", type: i8.XButtonComponent, selector: "x-button" }, { kind: "component", type: i9.XTreeComponent, selector: "x-tree" }, { kind: "component", type: i10.XTableComponent, selector: "x-table" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
489
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
487
|
+
/** @nocollapse */ XTransferComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: XTransferComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }, { token: i2.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
488
|
+
/** @nocollapse */ XTransferComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: XTransferComponent, selector: "x-transfer", providers: [XValueAccessor(XTransferComponent)], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #transfer class=\"x-transfer\" cdkDropListGroup [ngClass]=\"classMap\">\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: left }\"></ng-container>\r\n <div [ngStyle]=\"left.listStyle!\" class=\"x-transfer-list\">\r\n <ng-container [ngSwitch]=\"type\">\r\n <ul\r\n *ngSwitchCase=\"'list'\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"left.list\"\r\n [cdkDropListDisabled]=\"!drag && type === 'list'\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n class=\"x-transfer-droplist\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of left.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: left }\"></ng-container>\r\n </li>\r\n </ul>\r\n <x-tree\r\n *ngSwitchCase=\"'tree'\"\r\n [data]=\"left.list!\"\r\n multiple\r\n allowManyActivated\r\n [(activatedId)]=\"treeActivatedId\"\r\n (nodeClick)=\"onTreeNodeClick($event)\"\r\n ></x-tree>\r\n <x-table\r\n *ngSwitchCase=\"'table'\"\r\n [data]=\"tableData\"\r\n [columns]=\"tableColumns!\"\r\n [(size)]=\"tableSize\"\r\n [(index)]=\"tableIndex\"\r\n (indexChange)=\"getTableData()\"\r\n [query]=\"tableQuery\"\r\n [total]=\"tableTotal\"\r\n (activatedRowChange)=\"onTableCheckedRow($event, left)\"\r\n (headCheckboxChange)=\"onTableCheckedAll($event, left)\"\r\n hiddenWrapBorder\r\n hiddenPaginationBorder\r\n showEllipsis=\"false\"\r\n showTotal=\"false\"\r\n paginationPosition=\"bottom-center\"\r\n allowSelectRow=\"false\"\r\n ></x-table>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"x-transfer-buttons\">\r\n <x-button type=\"primary\" icon=\"fto-chevron-right\" [disabled]=\"left.disabledButton\" (click)=\"move(left, right)\"></x-button>\r\n <x-button type=\"primary\" icon=\"fto-chevron-left\" [disabled]=\"right.disabledButton\" (click)=\"move(right, left)\"></x-button>\r\n </div>\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: right }\"></ng-container>\r\n <div [ngSwitch]=\"type\" [ngStyle]=\"right.listStyle!\" class=\"x-transfer-list\">\r\n <x-table\r\n *ngSwitchCase=\"'table'\"\r\n [data]=\"right.list!\"\r\n [columns]=\"tableColumns!\"\r\n (activatedRowChange)=\"onTableCheckedRow($event, right)\"\r\n (headCheckboxChange)=\"onTableCheckedAll($event, right)\"\r\n hiddenWrapBorder\r\n hiddenPaginationBorder\r\n showPagination=\"false\"\r\n showEllipsis=\"false\"\r\n showTotal=\"false\"\r\n paginationPosition=\"bottom-center\"\r\n allowSelectRow=\"false\"\r\n ></x-table>\r\n <ul\r\n *ngSwitchDefault\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"right.list\"\r\n [cdkDropListDisabled]=\"!drag || (drag && type !== 'list')\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n class=\"x-transfer-droplist\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of right.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: right }\"></ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #sourceTitleTpl let-source=\"source\">\r\n <div class=\"x-transfer-title\">\r\n <x-checkbox\r\n *ngIf=\"source.title && !source.hiddenCheckAll\"\r\n [data]=\"[titleTpl ? '' : source.title]\"\r\n [(ngModel)]=\"source.checkedAll\"\r\n (ngModelChange)=\"checkedAllChange($event, source)\"\r\n [indeterminate]=\"source.indeterminate\"\r\n ></x-checkbox>\r\n <span *ngIf=\"source.title && source.hiddenCheckAll\">{{ source.title }}</span>\r\n <ng-container *xOutlet=\"titleTpl; context: { $title: source.title, $checkedCount: source.checkedCount, $count: source.count }\"\r\n ><span class=\"x-transfer-total\">{{ source.checkedCount }} / {{ source.count }}</span></ng-container\r\n >\r\n </div>\r\n <!-- <div class=\"x-transfer-search\" *ngIf=\"search\">\r\n <x-input\r\n icon=\"fto-search\"\r\n [(ngModel)]=\"source.searchInput\"\r\n (ngModelChange)=\"searchInputChange(source)\"\r\n clearable\r\n ></x-input>\r\n </div> -->\r\n</ng-template>\r\n\r\n<ng-template #sourceNodeTpl let-node=\"node\" let-source=\"source\">\r\n <x-checkbox\r\n [data]=\"[{ id: node.id, label: nodeTpl ? nodeTpl : node.label, node: node }]\"\r\n [disabled]=\"node.disabled\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"checkedChange($event, source)\"\r\n ></x-checkbox>\r\n</ng-template>\r\n", styles: [".x-transfer{margin:0;padding:0;display:inline-flex;align-items:center}.x-transfer-title{padding:.25rem .5625rem;display:flex;align-items:center;justify-content:space-between;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-top-left-radius:var(--x-border-radius);border-top-right-radius:var(--x-border-radius);border-bottom:none;background-color:var(--x-background);color:var(--x-text-300)}.x-transfer-total{margin-left:.325rem}.x-transfer-list{display:flex;flex-direction:column;height:18rem;width:12rem;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-bottom-left-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius);overflow:auto}.x-transfer-item{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;transition:border-color var(--x-animation-duration-base),background-color var(--x-animation-duration-base),color var(--x-animation-duration-base)}.x-transfer-droplist{height:100%;padding:.25rem}.x-transfer-droplist.cdk-drop-list-dragging .x-transfer-item:hover{background-color:transparent}.x-transfer-droplist.cdk-drop-list-dragging .x-transfer-item.cdk-drag-placeholder{border-color:var(--x-primary);color:var(--x-primary);background-color:var(--x-background);opacity:.8}.x-transfer-droplist.cdk-drop-list-dragging .x-transfer-item:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}.x-transfer-buttons{margin:0 1rem;display:flex;flex-direction:column}.x-transfer-buttons>x-button:not(:first-child){margin-top:.5rem}.x-transfer-search{padding:.5rem;border-bottom:.0625rem solid var(--x-border)}body>li.x-transfer-item.cdk-drag-preview{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;border-color:var(--x-border);color:var(--x-text-400);background-color:var(--x-background-a100);opacity:.9}body>li.x-transfer-item.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i7.XCheckboxComponent, selector: "x-checkbox" }, { kind: "component", type: i8.XButtonComponent, selector: "x-button" }, { kind: "component", type: i9.XTreeComponent, selector: "x-tree" }, { kind: "component", type: i10.XTableComponent, selector: "x-table" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
489
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: XTransferComponent, decorators: [{
|
|
490
490
|
type: Component,
|
|
491
491
|
args: [{ selector: `${XTransferPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XTransferComponent)], template: "<div #transfer class=\"x-transfer\" cdkDropListGroup [ngClass]=\"classMap\">\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: left }\"></ng-container>\r\n <div [ngStyle]=\"left.listStyle!\" class=\"x-transfer-list\">\r\n <ng-container [ngSwitch]=\"type\">\r\n <ul\r\n *ngSwitchCase=\"'list'\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"left.list\"\r\n [cdkDropListDisabled]=\"!drag && type === 'list'\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n class=\"x-transfer-droplist\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of left.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: left }\"></ng-container>\r\n </li>\r\n </ul>\r\n <x-tree\r\n *ngSwitchCase=\"'tree'\"\r\n [data]=\"left.list!\"\r\n multiple\r\n allowManyActivated\r\n [(activatedId)]=\"treeActivatedId\"\r\n (nodeClick)=\"onTreeNodeClick($event)\"\r\n ></x-tree>\r\n <x-table\r\n *ngSwitchCase=\"'table'\"\r\n [data]=\"tableData\"\r\n [columns]=\"tableColumns!\"\r\n [(size)]=\"tableSize\"\r\n [(index)]=\"tableIndex\"\r\n (indexChange)=\"getTableData()\"\r\n [query]=\"tableQuery\"\r\n [total]=\"tableTotal\"\r\n (activatedRowChange)=\"onTableCheckedRow($event, left)\"\r\n (headCheckboxChange)=\"onTableCheckedAll($event, left)\"\r\n hiddenWrapBorder\r\n hiddenPaginationBorder\r\n showEllipsis=\"false\"\r\n showTotal=\"false\"\r\n paginationPosition=\"bottom-center\"\r\n allowSelectRow=\"false\"\r\n ></x-table>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"x-transfer-buttons\">\r\n <x-button type=\"primary\" icon=\"fto-chevron-right\" [disabled]=\"left.disabledButton\" (click)=\"move(left, right)\"></x-button>\r\n <x-button type=\"primary\" icon=\"fto-chevron-left\" [disabled]=\"right.disabledButton\" (click)=\"move(right, left)\"></x-button>\r\n </div>\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: right }\"></ng-container>\r\n <div [ngSwitch]=\"type\" [ngStyle]=\"right.listStyle!\" class=\"x-transfer-list\">\r\n <x-table\r\n *ngSwitchCase=\"'table'\"\r\n [data]=\"right.list!\"\r\n [columns]=\"tableColumns!\"\r\n (activatedRowChange)=\"onTableCheckedRow($event, right)\"\r\n (headCheckboxChange)=\"onTableCheckedAll($event, right)\"\r\n hiddenWrapBorder\r\n hiddenPaginationBorder\r\n showPagination=\"false\"\r\n showEllipsis=\"false\"\r\n showTotal=\"false\"\r\n paginationPosition=\"bottom-center\"\r\n allowSelectRow=\"false\"\r\n ></x-table>\r\n <ul\r\n *ngSwitchDefault\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"right.list\"\r\n [cdkDropListDisabled]=\"!drag || (drag && type !== 'list')\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n class=\"x-transfer-droplist\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of right.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: right }\"></ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #sourceTitleTpl let-source=\"source\">\r\n <div class=\"x-transfer-title\">\r\n <x-checkbox\r\n *ngIf=\"source.title && !source.hiddenCheckAll\"\r\n [data]=\"[titleTpl ? '' : source.title]\"\r\n [(ngModel)]=\"source.checkedAll\"\r\n (ngModelChange)=\"checkedAllChange($event, source)\"\r\n [indeterminate]=\"source.indeterminate\"\r\n ></x-checkbox>\r\n <span *ngIf=\"source.title && source.hiddenCheckAll\">{{ source.title }}</span>\r\n <ng-container *xOutlet=\"titleTpl; context: { $title: source.title, $checkedCount: source.checkedCount, $count: source.count }\"\r\n ><span class=\"x-transfer-total\">{{ source.checkedCount }} / {{ source.count }}</span></ng-container\r\n >\r\n </div>\r\n <!-- <div class=\"x-transfer-search\" *ngIf=\"search\">\r\n <x-input\r\n icon=\"fto-search\"\r\n [(ngModel)]=\"source.searchInput\"\r\n (ngModelChange)=\"searchInputChange(source)\"\r\n clearable\r\n ></x-input>\r\n </div> -->\r\n</ng-template>\r\n\r\n<ng-template #sourceNodeTpl let-node=\"node\" let-source=\"source\">\r\n <x-checkbox\r\n [data]=\"[{ id: node.id, label: nodeTpl ? nodeTpl : node.label, node: node }]\"\r\n [disabled]=\"node.disabled\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"checkedChange($event, source)\"\r\n ></x-checkbox>\r\n</ng-template>\r\n", styles: [".x-transfer{margin:0;padding:0;display:inline-flex;align-items:center}.x-transfer-title{padding:.25rem .5625rem;display:flex;align-items:center;justify-content:space-between;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-top-left-radius:var(--x-border-radius);border-top-right-radius:var(--x-border-radius);border-bottom:none;background-color:var(--x-background);color:var(--x-text-300)}.x-transfer-total{margin-left:.325rem}.x-transfer-list{display:flex;flex-direction:column;height:18rem;width:12rem;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-bottom-left-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius);overflow:auto}.x-transfer-item{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;transition:border-color var(--x-animation-duration-base),background-color var(--x-animation-duration-base),color var(--x-animation-duration-base)}.x-transfer-droplist{height:100%;padding:.25rem}.x-transfer-droplist.cdk-drop-list-dragging .x-transfer-item:hover{background-color:transparent}.x-transfer-droplist.cdk-drop-list-dragging .x-transfer-item.cdk-drag-placeholder{border-color:var(--x-primary);color:var(--x-primary);background-color:var(--x-background);opacity:.8}.x-transfer-droplist.cdk-drop-list-dragging .x-transfer-item:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}.x-transfer-buttons{margin:0 1rem;display:flex;flex-direction:column}.x-transfer-buttons>x-button:not(:first-child){margin-top:.5rem}.x-transfer-search{padding:.5rem;border-bottom:.0625rem solid var(--x-border)}body>li.x-transfer-item.cdk-drag-preview{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;border-color:var(--x-border);color:var(--x-text-400);background-color:var(--x-background-a100);opacity:.9}body>li.x-transfer-item.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"] }]
|
|
492
492
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }, { type: i2.XI18nService }]; } });
|
|
493
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJhbnNmZXIvdHJhbnNmZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJhbnNmZXIvdHJhbnNmZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBSXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQWtDLGlCQUFpQixFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBQ3hILE9BQU8sRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFFBQVEsRUFFUixPQUFPLEVBQ1AsUUFBUSxFQUNSLFNBQVMsRUFDVCxjQUFjLEVBQ2QsVUFBVSxFQUNWLFdBQVcsRUFFWixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUF3QixNQUFNLHdCQUF3QixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBYXZELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUFpRHZELFlBQ1MsUUFBbUIsRUFDbkIsVUFBc0IsRUFDYixHQUFzQixFQUMvQixhQUE2QixFQUM3QixJQUFrQjtRQUV6QixLQUFLLEVBQUUsQ0FBQztRQU5ELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNiLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQy9CLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtR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QUFFLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEksSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDOztrSUE3ZFUsa0JBQWtCO3NIQUFsQixrQkFBa0IscUNBRmxCLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUMsc0VDeENqRCx1Z0tBcUhBOzJGRDNFYSxrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0UsR0FBRyxlQUFlLEVBQUUsaUJBR2YsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhUcmFuc2ZlclByZWZpeCwgWFRyYW5zZmVyTm9kZSwgWFRyYW5zZmVyU291cmNlLCBYVHJhbnNmZXJQcm9wZXJ0eSwgWFRyYW5zZmVyVHlwZSB9IGZyb20gJy4vdHJhbnNmZXIucHJvcGVydHknO1xyXG5pbXBvcnQge1xyXG4gIFhJc0NoYW5nZSxcclxuICBYSXNFbXB0eSxcclxuICBYU2V0RGF0YSxcclxuICBYQ29uZmlnU2VydmljZSxcclxuICBYUmVtb3ZlLFxyXG4gIFhJc0FycmF5LFxyXG4gIFhJc09iamVjdCxcclxuICBYSXNPYmplY3RBcnJheSxcclxuICBYSXNCb29sZWFuLFxyXG4gIFhJc0Z1bmN0aW9uLFxyXG4gIFhSZXN1bHRMaXN0XHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IHRyYW5zZmVyQXJyYXlJdGVtLCBtb3ZlSXRlbUluQXJyYXksIENka0RyYWdEcm9wLCBDZGtEcmFnIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IFhWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuaW1wb3J0IHsgWEkxOG5TZXJ2aWNlLCBYSTE4blRyYW5zZmVyIH0gZnJvbSAnQG5nLW5lc3QvdWkvaTE4bic7XHJcbmltcG9ydCB7IFhUcmVlTm9kZSB9IGZyb20gJ0BuZy1uZXN0L3VpL3RyZWUnO1xyXG5pbXBvcnQgeyBYVGFibGVDb2x1bW4gfSBmcm9tICdAbmctbmVzdC91aS90YWJsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRyYW5zZmVyUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyYW5zZmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmFuc2Zlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWFRyYW5zZmVyQ29tcG9uZW50KV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhUcmFuc2ZlckNvbXBvbmVudCBleHRlbmRzIFhUcmFuc2ZlclByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgbm9kZXM6IFhUcmFuc2Zlck5vZGVbXSA9IFtdO1xyXG4gIGxlZnQ6IFhUcmFuc2ZlclNvdXJjZSA9IHtcclxuICAgIGxpc3Q6IFtdLFxyXG4gICAgc2VhcmNoTGlzdDogW10sXHJcbiAgICBjaGVja2VkQ291bnQ6IDAsXHJcbiAgICBkaXJlY3Rpb246ICdsZWZ0JyxcclxuICAgIGRpc2FibGVkQnV0dG9uOiB0cnVlXHJcbiAgfTtcclxuICByaWdodDogWFRyYW5zZmVyU291cmNlID0ge1xyXG4gICAgbGlzdDogW10sXHJcbiAgICBzZWFyY2hMaXN0OiBbXSxcclxuICAgIGNoZWNrZWRDb3VudDogMCxcclxuICAgIGRpcmVjdGlvbjogJ3JpZ2h0JyxcclxuICAgIGRpc2FibGVkQnV0dG9uOiB0cnVlXHJcbiAgfTtcclxuICBzZWFyY2hJbnB1dDogc3RyaW5nID0gJyc7XHJcbiAgbG9jYWxlOiBYSTE4blRyYW5zZmVyID0ge307XHJcbiAgcHJpdmF0ZSBnZXQgbG9jYWxUaXRsZSgpIHtcclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICd0cmVlJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUudHJlZVRpdGxlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlLmxpc3RUaXRsZTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICB0cmVlQWN0aXZhdGVkSWQ6IGFueVtdID0gW107XHJcbiAgdGFibGVEYXRhOiBYVHJhbnNmZXJOb2RlW10gPSBbXTtcclxuICB0YWJsZUNoZWNrYm94Q29sdW1uPzogWFRhYmxlQ29sdW1uO1xyXG4gIGlzT2JqZWN0QXJyYXkgPSBmYWxzZTtcclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgaWYgKFhJc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICB0aGlzLnRyZWVBY3RpdmF0ZWRJZCA9IFsuLi52YWx1ZV07XHJcbiAgICAgIGlmIChYSXNPYmplY3RBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLmlzT2JqZWN0QXJyYXkgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldExpc3QodGhpcy5ub2Rlcyk7XHJcbiAgfVxyXG5cclxuICBnZXQgdmFsdWVzKCkge1xyXG4gICAgaWYgKHRoaXMuaXNPYmplY3RBcnJheSkge1xyXG4gICAgICByZXR1cm4gdGhpcy52YWx1ZS5tYXAoKHgpID0+IHguaWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZSxcclxuICAgIHB1YmxpYyBpMThuOiBYSTE4blNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0VGl0bGVzKCk7XHJcbiAgICB0aGlzLnNldExpc3RTdHlsZSgpO1xyXG4gICAgdGhpcy5zZXRIaWRkZW5DaGVja0FsbCgpO1xyXG4gICAgdGhpcy5nZXRUYWJsZUNoZWNrQ29sdW1uKCk7XHJcbiAgICB0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeCkgPT4geC50cmFuc2ZlciBhcyBYSTE4blRyYW5zZmVyKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLmxvY2FsZSA9IHg7XHJcbiAgICAgICAgWElzRW1wdHkodGhpcy50aXRsZXMpICYmIHRoaXMuc2V0VGl0bGVzKCk7XHJcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3QgeyBkYXRhIH0gPSBjaGFuZ2VzO1xyXG4gICAgWElzQ2hhbmdlKGRhdGEpICYmIHRoaXMuc2V0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hJbnB1dENoYW5nZShzb3VyY2U6IFhUcmFuc2ZlclNvdXJjZSkge1xyXG4gICAgc291cmNlLmxpc3QgPSBzb3VyY2Uuc2VhcmNoTGlzdD8uZmlsdGVyKCh4KSA9PiB4LmxhYmVsLmluZGV4T2Yoc291cmNlLnNlYXJjaElucHV0KSA+PSAwKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGNoZWNrZWRBbGxDaGFuZ2UoJGV2ZW50OiBib29sZWFuLCBzb3VyY2U6IFhUcmFuc2ZlclNvdXJjZSkge1xyXG4gICAgbGV0IGxpc3Q6IFhUcmFuc2Zlck5vZGVbXSA9IChzb3VyY2UubGlzdD8uZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCkgYXMgWFRyYW5zZmVyTm9kZVtdKS5tYXAoKHgpID0+IHtcclxuICAgICAgeC5jaGVja2VkID0gJGV2ZW50O1xyXG4gICAgICByZXR1cm4geDtcclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3RyZWUnICYmIHNvdXJjZS5kaXJlY3Rpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICB0aGlzLnRyZWVBY3RpdmF0ZWRJZCA9ICRldmVudCA/IHNvdXJjZS5saXN0IS5tYXAoKHgpID0+IHguaWQpISA6IHNvdXJjZS5saXN0IS5maWx0ZXIoKHgpID0+IHguZGlzYWJsZWQpLm1hcCgoeCkgPT4geC5pZCk7XHJcbiAgICB9XHJcbiAgICBzb3VyY2UuY2hlY2tlZENvdW50ID0gJGV2ZW50ID8gbGlzdC5sZW5ndGggOiAwO1xyXG4gICAgc291cmNlLmluZGV0ZXJtaW5hdGUgPSAkZXZlbnQ7XHJcbiAgICB0aGlzLnNldEJ1dHRvbkRpc2FibGVkKHNvdXJjZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja2VkQ2hhbmdlKCRldmVudDogYm9vbGVhbiwgc291cmNlOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIGlmICghJGV2ZW50KSAoc291cmNlLmNoZWNrZWRDb3VudCBhcyBudW1iZXIpLS07XHJcbiAgICBlbHNlIChzb3VyY2UuY2hlY2tlZENvdW50IGFzIG51bWJlcikrKztcclxuICAgIHRoaXMuc2V0Q2hlY2tlZEFsbChzb3VyY2UpO1xyXG4gICAgdGhpcy5zZXRCdXR0b25EaXNhYmxlZChzb3VyY2UpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbW92ZShmcm9tOiBYVHJhbnNmZXJTb3VyY2UsIHRvOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIGlmIChmcm9tLmRpc2FibGVkQnV0dG9uKSByZXR1cm47XHJcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xyXG4gICAgICBjYXNlICdsaXN0JzpcclxuICAgICAgICB0aGlzLm1vdmVMaXN0KGZyb20sIHRvKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndHJlZSc6XHJcbiAgICAgICAgdGhpcy5tb3ZlVHJlZShmcm9tLCB0byk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RhYmxlJzpcclxuICAgICAgICB0aGlzLm1vdmVUYWJsZShmcm9tLCB0byk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1vdmVMaXN0KGZyb206IFhUcmFuc2ZlclNvdXJjZSwgdG86IFhUcmFuc2ZlclNvdXJjZSkge1xyXG4gICAgbGV0IGNoZWNrZWRJdGVtcyA9IGZyb20ubGlzdD8uZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCAmJiB4LmNoZWNrZWQpITtcclxuICAgIGxldCBqID0gMDtcclxuICAgIGNoZWNrZWRJdGVtcy5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gZnJvbS5saXN0Py5pbmRleE9mKHgpIGFzIG51bWJlcjtcclxuICAgICAgeC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgIHRyYW5zZmVyQXJyYXlJdGVtKGZyb20ubGlzdCEsIHRvLmxpc3QhLCBpbmRleCwgaik7XHJcbiAgICAgIGorKztcclxuICAgIH0pO1xyXG4gICAgZnJvbS5saXN0ID0gWy4uLmZyb20ubGlzdCFdO1xyXG4gICAgdG8ubGlzdCA9IFsuLi50by5saXN0IV07XHJcbiAgICB0aGlzLnNldENoZWNrZWRDb3VudCgnbGlzdCcsIGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0TGlzdENvdW50KCdsaXN0JywgZnJvbSwgdG8pO1xyXG4gICAgdGhpcy5zZXRDaGVja2VkQWxsKGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0QnV0dG9uRGlzYWJsZWQoZnJvbSwgdG8pO1xyXG4gICAgdGhpcy5zZXRTZWFyY2hMaXN0KGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbW92ZVRyZWUoZnJvbTogWFRyYW5zZmVyU291cmNlLCB0bzogWFRyYW5zZmVyU291cmNlKSB7XHJcbiAgICBsZXQgY2hlY2tlZEl0ZW1zOiBYVHJhbnNmZXJOb2RlW10gPSBbXTtcclxuICAgIGlmICh0by5kaXJlY3Rpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgY2hlY2tlZEl0ZW1zID0gZnJvbS5saXN0Py5maWx0ZXIoKHgpID0+ICF4LmRpc2FibGVkICYmICFYSXNFbXB0eSh0aGlzLnRyZWVBY3RpdmF0ZWRJZCkgJiYgdGhpcy50cmVlQWN0aXZhdGVkSWQuaW5jbHVkZXMoeC5pZCkpITtcclxuICAgICAgY2hlY2tlZEl0ZW1zLmZvckVhY2goKHg6IFhUcmVlTm9kZSkgPT4ge1xyXG4gICAgICAgIHguZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgIHguY2hhbmdlICYmIHguY2hhbmdlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0by5saXN0Py51bnNoaWZ0KFxyXG4gICAgICAgIC4uLmNoZWNrZWRJdGVtcy5tYXAoKHgpID0+IHtcclxuICAgICAgICAgIGxldCByZXMgPSB7IC4uLnggfTtcclxuICAgICAgICAgIHJlcy5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICByZXMuZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkQ291bnQoJ3RyZWUnLCBmcm9tKTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkQ291bnQoJ2xpc3QnLCB0byk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjaGVja2VkSXRlbXMgPSBYUmVtb3ZlKGZyb20ubGlzdCEsICh4KSA9PiAheC5kaXNhYmxlZCAmJiB4LmNoZWNrZWQhKTtcclxuICAgICAgZm9yIChsZXQgaXRlbSBvZiBjaGVja2VkSXRlbXMpIHtcclxuICAgICAgICBsZXQgbm9kZTogWFRyZWVOb2RlID0gdG8ubGlzdD8uZmluZCgoeCkgPT4geC5pZCA9PT0gaXRlbS5pZCkhO1xyXG4gICAgICAgIGlmIChub2RlKSB7XHJcbiAgICAgICAgICBub2RlLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIG5vZGUuZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIGNvbnN0IGlkeCA9IHRoaXMudHJlZUFjdGl2YXRlZElkLmZpbmRJbmRleCgoeCkgPT4geCA9PT0gbm9kZS5pZCk7XHJcbiAgICAgICAgICBpZiAoaWR4ID49IDApIHtcclxuICAgICAgICAgICAgdGhpcy50cmVlQWN0aXZhdGVkSWQuc3BsaWNlKGlkeCwgMSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBub2RlLmNoYW5nZSAmJiBub2RlLmNoYW5nZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldENoZWNrZWRDb3VudCgndHJlZScsIHRvKTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkQ291bnQoJ2xpc3QnLCBmcm9tKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0Q2hlY2tlZEFsbChmcm9tLCB0byk7XHJcbiAgICB0aGlzLnNldExpc3RDb3VudCgnbGlzdCcsIGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0QnV0dG9uRGlzYWJsZWQoZnJvbSwgdG8pO1xyXG4gICAgdGhpcy5zZXRTZWFyY2hMaXN0KGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbW92ZVRhYmxlKGZyb206IFhUcmFuc2ZlclNvdXJjZSwgdG86IFhUcmFuc2ZlclNvdXJjZSkge1xyXG4gICAgbGV0IGNoZWNrZWRJdGVtczogWFRyYW5zZmVyTm9kZVtdID0gW107XHJcbiAgICBpZiAodG8uZGlyZWN0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgIGNoZWNrZWRJdGVtcyA9IGZyb20ubGlzdD8uZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCAmJiB4LmNoZWNrZWQpITtcclxuICAgICAgdG8ubGlzdCA9IFtcclxuICAgICAgICAuLi5jaGVja2VkSXRlbXMubWFwKCh4KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCByZXMgPSB7IC4uLnggfTtcclxuICAgICAgICAgIHguZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgeC5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICAgIHJlcy5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgcmVzLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgLi4udG8ubGlzdCFcclxuICAgICAgXTtcclxuICAgICAgdGhpcy50YWJsZURhdGEgPSBbLi4uZnJvbS5saXN0IV07XHJcbiAgICAgIHRoaXMuc2V0Q2hlY2tlZENvdW50KCd0YWJsZScsIGZyb20pO1xyXG4gICAgICB0aGlzLnNldENoZWNrZWRDb3VudCgnbGlzdCcsIHRvKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNoZWNrZWRJdGVtcyA9IFhSZW1vdmUoZnJvbS5saXN0ISwgKHgpID0+ICF4LmRpc2FibGVkICYmIHguY2hlY2tlZCEpO1xyXG4gICAgICBjb25zdCBpZHMgPSBjaGVja2VkSXRlbXMubWFwKCh4KSA9PiB4LmlkKTtcclxuICAgICAgZm9yIChsZXQgaXRlbSBvZiB0by5saXN0ISkge1xyXG4gICAgICAgIGlmIChpZHMuaW5jbHVkZXMoaXRlbS5pZCkpIHtcclxuICAgICAgICAgIGl0ZW0uY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgaXRlbS5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBmcm9tLmxpc3QgPSBbLi4uZnJvbS5saXN0IV07XHJcbiAgICAgIHRoaXMudGFibGVEYXRhID0gWy4uLnRvLmxpc3QhXTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkQ291bnQoJ3RhYmxlJywgdG8pO1xyXG4gICAgICB0aGlzLnNldENoZWNrZWRDb3VudCgnbGlzdCcsIGZyb20pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRMaXN0Q291bnQoJ3RhYmxlJywgZnJvbSwgdG8pO1xyXG4gICAgdGhpcy5zZXRDaGVja2VkQWxsKGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0QnV0dG9uRGlzYWJsZWQoZnJvbSwgdG8pO1xyXG4gICAgdGhpcy5zZXRTZWFyY2hMaXN0KGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIGRyb3BDZGsoZXZlbnQ6IENka0RyYWdEcm9wPFhUcmFuc2Zlck5vZGVbXSB8IHVuZGVmaW5lZCwgYW55Pikge1xyXG4gICAgY29uc3QgZXYgPSBldmVudCBhcyBDZGtEcmFnRHJvcDxYVHJhbnNmZXJOb2RlW10+O1xyXG4gICAgaWYgKGV2LnByZXZpb3VzQ29udGFpbmVyID09PSBldi5jb250YWluZXIpIHtcclxuICAgICAgbW92ZUl0ZW1JbkFycmF5KGV2LmNvbnRhaW5lci5kYXRhLCBldi5wcmV2aW91c0luZGV4LCBldi5jdXJyZW50SW5kZXgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdHJhbnNmZXJBcnJheUl0ZW0oZXYucHJldmlvdXNDb250YWluZXIuZGF0YSwgZXYuY29udGFpbmVyLmRhdGEsIGV2LnByZXZpb3VzSW5kZXgsIGV2LmN1cnJlbnRJbmRleCk7XHJcbiAgICAgIHRoaXMuc2V0Q2hlY2tlZENvdW50KCdsaXN0JywgdGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkQWxsKHRoaXMubGVmdCwgdGhpcy5yaWdodCk7XHJcbiAgICAgIHRoaXMuc2V0TGlzdENvdW50KCdsaXN0JywgdGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgdGhpcy5zZXRCdXR0b25EaXNhYmxlZCh0aGlzLmxlZnQsIHRoaXMucmlnaHQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTZWFyY2hMaXN0KHRoaXMubGVmdCwgdGhpcy5yaWdodCk7XHJcbiAgICB0aGlzLnNldFZhbHVlKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcmVkaWNhdGUoaXRlbTogQ2RrRHJhZzxYVHJhbnNmZXJOb2RlPikge1xyXG4gICAgcmV0dXJuICFpdGVtLmRhdGEuZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5Tm9kZShfaW5kZXg6IG51bWJlciwgaXRlbTogWFRyYW5zZmVyTm9kZSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG5cclxuICBzZXRMaXN0Q291bnQodHlwZTogWFRyYW5zZmVyVHlwZSA9ICdsaXN0JywgLi4uc291cmNlczogWFRyYW5zZmVyU291cmNlW10pIHtcclxuICAgIGlmIChbJ2xpc3QnLCAndHJlZSddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XHJcbiAgICAgICAgc291cmNlLmNvdW50ID0gc291cmNlLmxpc3Q/LmZpbHRlcigoeCkgPT4gIXguZGlzYWJsZWQpLmxlbmd0aDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAndGFibGUnKSB7XHJcbiAgICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XHJcbiAgICAgICAgaWYgKHNvdXJjZS5kaXJlY3Rpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgc291cmNlLmNvdW50ID0gdGhpcy50YWJsZVRvdGFsIC0gdGhpcy5yaWdodC5saXN0IS5sZW5ndGggfHwgMDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgc291cmNlLmNvdW50ID0gc291cmNlLmxpc3Q/LmZpbHRlcigoeCkgPT4gIXguZGlzYWJsZWQpLmxlbmd0aDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uVHJlZU5vZGVDbGljayhfbm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICB0aGlzLnNldENoZWNrZWRDb3VudCgndHJlZScsIHRoaXMubGVmdCk7XHJcbiAgICB0aGlzLnNldENoZWNrZWRBbGwodGhpcy5sZWZ0KTtcclxuICAgIHRoaXMuc2V0QnV0dG9uRGlzYWJsZWQodGhpcy5sZWZ0KTtcclxuICB9XHJcblxyXG4gIG9uVGFibGVDaGVja2VkUm93KHJvdzogWFRyYW5zZmVyTm9kZSwgc291cmNlOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIGlmICghdGhpcy50YWJsZUNoZWNrYm94Q29sdW1uKSByZXR1cm47XHJcbiAgICBsZXQgY2hlY2tlZCA9IHJvd1t0aGlzLnRhYmxlQ2hlY2tib3hDb2x1bW4uaWRdO1xyXG4gICAgcm93LmNoZWNrZWQgPSBjaGVja2VkO1xyXG4gICAgdGhpcy5zZXRDaGVja2VkQ291bnQoJ3RhYmxlJywgc291cmNlKTtcclxuICAgIHRoaXMuc2V0Q2hlY2tlZEFsbChzb3VyY2UpO1xyXG4gICAgdGhpcy5zZXRCdXR0b25EaXNhYmxlZChzb3VyY2UpO1xyXG4gIH1cclxuXHJcbiAgb25UYWJsZUNoZWNrZWRBbGwocm93OiB7IFtwcm9wOiBzdHJpbmddOiBib29sZWFuIH0sIHNvdXJjZTogWFRyYW5zZmVyU291cmNlKSB7XHJcbiAgICBpZiAoIXRoaXMudGFibGVDaGVja2JveENvbHVtbikgcmV0dXJuO1xyXG4gICAgbGV0IGNoZWNrZWQgPSByb3dbdGhpcy50YWJsZUNoZWNrYm94Q29sdW1uLmlkXTtcclxuICAgIGZvciAobGV0IGl0ZW0gb2Ygc291cmNlLmxpc3QhKSB7XHJcbiAgICAgIGlmICghaXRlbS5kaXNhYmxlZCkge1xyXG4gICAgICAgIGl0ZW0uY2hlY2tlZCA9IGNoZWNrZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuc2V0Q2hlY2tlZENvdW50KCd0YWJsZScsIHNvdXJjZSk7XHJcbiAgICB0aGlzLnNldEJ1dHRvbkRpc2FibGVkKHNvdXJjZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFRhYmxlQ2hlY2tDb2x1bW4oKSB7XHJcbiAgICBpZiAodGhpcy50eXBlICE9PSAndGFibGUnIHx8IFhJc0VtcHR5KHRoaXMudGFibGVDb2x1bW5zKSkgcmV0dXJuO1xyXG4gICAgdGhpcy50YWJsZUNoZWNrYm94Q29sdW1uID0gdGhpcy50YWJsZUNvbHVtbnM/LmZpbmQoKHgpID0+IHgucm93Q2hlY2tlZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENoZWNrZWRBbGwoLi4uc291cmNlczogWFRyYW5zZmVyU291cmNlW10pIHtcclxuICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XHJcbiAgICAgIGlmICgoc291cmNlLmNoZWNrZWRDb3VudCBhcyBudW1iZXIpID4gMCkge1xyXG4gICAgICAgIGlmIChzb3VyY2UuY2hlY2tlZENvdW50ID09PSBzb3VyY2UubGlzdD8uZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICBzb3VyY2UuY2hlY2tlZEFsbCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHNvdXJjZS5jaGVja2VkQWxsID0gZmFsc2U7XHJcbiAgICAgICAgICBzb3VyY2UuaW5kZXRlcm1pbmF0ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNvdXJjZS5jaGVja2VkQWxsID0gZmFsc2U7XHJcbiAgICAgICAgc291cmNlLmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRDaGVja2VkQ291bnQodHlwZTogWFRyYW5zZmVyVHlwZSA9ICdsaXN0JywgLi4uc291cmNlczogWFRyYW5zZmVyU291cmNlW10pIHtcclxuICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XHJcbiAgICAgIGlmIChbJ3RhYmxlJywgJ2xpc3QnXS5pbmNsdWRlcyh0eXBlKSkge1xyXG4gICAgICAgIHNvdXJjZS5jaGVja2VkQ291bnQgPSBzb3VyY2UubGlzdD8uZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCAmJiB4LmNoZWNrZWQpLmxlbmd0aDtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAndHJlZScpIHtcclxuICAgICAgICBzb3VyY2UuY2hlY2tlZENvdW50ID0gc291cmNlLmxpc3Q/LmZpbHRlcihcclxuICAgICAgICAgICh4KSA9PiAheC5kaXNhYmxlZCAmJiAhWElzRW1wdHkodGhpcy50cmVlQWN0aXZhdGVkSWQpICYmIHRoaXMudHJlZUFjdGl2YXRlZElkLmluY2x1ZGVzKHguaWQpXHJcbiAgICAgICAgKS5sZW5ndGg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0QnV0dG9uRGlzYWJsZWQoLi4uc291cmNlczogWFRyYW5zZmVyU291cmNlW10pIHtcclxuICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSBzb3VyY2UuZGlzYWJsZWRCdXR0b24gPSBzb3VyY2UuY2hlY2tlZENvdW50ID09PSAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRWYWx1ZSgpIHtcclxuICAgIGlmICh0aGlzLmlzT2JqZWN0QXJyYXkpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMucmlnaHQubGlzdCE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5yaWdodC5saXN0Py5tYXAoKHgpID0+IHguaWQpITtcclxuICAgIH1cclxuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFNlYXJjaExpc3QoLi4uX3NvdXJjZXM6IFhUcmFuc2ZlclNvdXJjZVtdKSB7XHJcbiAgICAvLyBpZiAodGhpcy5zZWFyY2gpIHtcclxuICAgIC8vICAgZm9yIChsZXQgc291cmNlIG9mIHNvdXJjZXMpIHtcclxuICAgIC8vICAgICBpZiAoWElzRW1wdHkoc291cmNlLnNlYXJjaElucHV0KSkge1xyXG4gICAgLy8gICAgICAgc291cmNlLnNlYXJjaExpc3QgPSBbLi4uKHNvdXJjZS5saXN0IGFzIFhUcmFuc2Zlck5vZGVbXSldO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfVxyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXREYXRhKCkge1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3RhYmxlJykge1xyXG4gICAgICB0aGlzLmdldFRhYmxlRGF0YSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBYU2V0RGF0YTxYVHJhbnNmZXJOb2RlPih0aGlzLmRhdGEsIHRoaXMuX3VuU3ViamVjdCkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0TGlzdCh4KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRMaXN0KGRhdGE6IFhUcmFuc2Zlck5vZGVbXSkge1xyXG4gICAgaWYgKFhJc0VtcHR5KGRhdGEpKSByZXR1cm47XHJcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xyXG4gICAgICBjYXNlICdsaXN0JzpcclxuICAgICAgICB0aGlzLm5vZGVzID0gZGF0YTtcclxuICAgICAgICBpZiAoIVhJc0VtcHR5KHRoaXMudmFsdWVzKSkge1xyXG4gICAgICAgICAgdGhpcy5sZWZ0Lmxpc3QgPSB0aGlzLm5vZGVzLmZpbHRlcigoeCkgPT4gdGhpcy52YWx1ZXMuaW5kZXhPZih4LmlkKSA8IDApO1xyXG4gICAgICAgICAgdGhpcy5yaWdodC5saXN0ID0gdGhpcy5ub2Rlcy5maWx0ZXIoKHgpID0+IHRoaXMudmFsdWVzLmluZGV4T2YoeC5pZCkgPj0gMCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubGVmdC5saXN0ID0gWy4uLnRoaXMubm9kZXNdO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldFNlYXJjaExpc3QodGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgICB0aGlzLnNldExpc3RDb3VudCh0aGlzLnR5cGUsIHRoaXMubGVmdCwgdGhpcy5yaWdodCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RyZWUnOlxyXG4gICAgICAgIHRoaXMubm9kZXMgPSBkYXRhO1xyXG4gICAgICAgIHRoaXMuc2V0VHJlZU5vZGVEaXNhYmxlZCgpO1xyXG4gICAgICAgIHRoaXMubGVmdC5saXN0ID0gWy4uLnRoaXMubm9kZXNdO1xyXG4gICAgICAgIGlmICghWElzRW1wdHkodGhpcy52YWx1ZXMpKSB7XHJcbiAgICAgICAgICB0aGlzLnJpZ2h0Lmxpc3QgPSB0aGlzLm5vZGVzXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKHgpID0+IHRoaXMudmFsdWVzLmluZGV4T2YoeC5pZCkgPj0gMClcclxuICAgICAgICAgICAgLm1hcCgoeCkgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCByZXMgPSB7IC4uLnggfTtcclxuICAgICAgICAgICAgICByZXMuY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHJlcy5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldFNlYXJjaExpc3QodGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgICB0aGlzLnNldExpc3RDb3VudCh0aGlzLnR5cGUsIHRoaXMubGVmdCwgdGhpcy5yaWdodCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RhYmxlJzpcclxuICAgICAgICB0aGlzLm5vZGVzID0gZGF0YTtcclxuICAgICAgICB0aGlzLnNldFRhYmxlRGF0YURpc2FibGVkKCk7XHJcbiAgICAgICAgdGhpcy5sZWZ0Lmxpc3QgPSBbLi4udGhpcy5ub2Rlc107XHJcbiAgICAgICAgaWYgKCFYSXNFbXB0eSh0aGlzLnZhbHVlcykpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmlzT2JqZWN0QXJyYXkpIHtcclxuICAgICAgICAgICAgdGhpcy5yaWdodC5saXN0ID0gW1xyXG4gICAgICAgICAgICAgIC4uLnRoaXMudmFsdWUubWFwKCh4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzID0geyAuLi54IH07XHJcbiAgICAgICAgICAgICAgICByZXMuZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJlcy5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJpZ2h0Lmxpc3QgPSBbLi4udGhpcy52YWx1ZV07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0U2VhcmNoTGlzdCh0aGlzLmxlZnQsIHRoaXMucmlnaHQpO1xyXG4gICAgICAgIHRoaXMuc2V0TGlzdENvdW50KHRoaXMudHlwZSwgdGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGdldFRhYmxlRGF0YSgpIHtcclxuICAgIGlmIChYSXNGdW5jdGlvbih0aGlzLmRhdGEpKSB7XHJcbiAgICAgICh0aGlzLmRhdGEgYXMgRnVuY3Rpb24pKHRoaXMudGFibGVJbmRleCwgdGhpcy50YWJsZVNpemUsIHRoaXMudGFibGVRdWVyeSkuc3Vic2NyaWJlKCh4OiBYUmVzdWx0TGlzdDxYVHJhbnNmZXJOb2RlPikgPT4ge1xyXG4gICAgICAgIHRoaXMudGFibGVUb3RhbCA9IHgudG90YWwhO1xyXG4gICAgICAgIHRoaXMudGFibGVEYXRhID0geC5saXN0ITtcclxuICAgICAgICB0aGlzLnNldExpc3QoeC5saXN0ISk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRUaXRsZXMoKSB7XHJcbiAgICBsZXQgdGl0bGVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMudGl0bGVzKSkge1xyXG4gICAgICB0aXRsZXMgPSBbdGhpcy5sb2NhbFRpdGxlISwgdGhpcy5sb2NhbGUuc2VsZWN0ZWRUaXRsZSFdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGl0bGVzID0gdGhpcy50aXRsZXM7XHJcbiAgICB9XHJcbiAgICBpZiAodGl0bGVzLmxlbmd0aCA+IDApIHRoaXMubGVmdC50aXRsZSA9IHRpdGxlc1swXTtcclxuICAgIGlmICh0aXRsZXMubGVuZ3RoID4gMSkgdGhpcy5yaWdodC50aXRsZSA9IHRpdGxlc1sxXTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0TGlzdFN0eWxlKCkge1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMubGlzdFN0eWxlKSkgcmV0dXJuO1xyXG4gICAgbGV0IHN0eWxlczogb2JqZWN0W10gPSBbXTtcclxuICAgIGlmIChYSXNPYmplY3QodGhpcy5saXN0U3R5bGUpKSB7XHJcbiAgICAgIHN0eWxlcyA9IFt0aGlzLmxpc3RTdHlsZSwgdGhpcy5saXN0U3R5bGVdO1xyXG4gICAgfSBlbHNlIGlmIChYSXNPYmplY3RBcnJheSh0aGlzLmxpc3RTdHlsZSkpIHtcclxuICAgICAgc3R5bGVzID0gdGhpcy5saXN0U3R5bGUgYXMgb2JqZWN0W107XHJcbiAgICB9XHJcbiAgICBpZiAoc3R5bGVzLmxlbmd0aCA+IDApIHRoaXMubGVmdC5saXN0U3R5bGUgPSBzdHlsZXNbMF07XHJcbiAgICBpZiAoc3R5bGVzLmxlbmd0aCA+IDEpIHRoaXMucmlnaHQubGlzdFN0eWxlID0gc3R5bGVzWzFdO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRUcmVlTm9kZURpc2FibGVkKCkge1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLnZhbHVlcykgJiYgdGhpcy5ub2Rlcykge1xyXG4gICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMubm9kZXMpIHtcclxuICAgICAgICBsZXQgaGFzSW4gPSB0aGlzLnZhbHVlcy5pbmRleE9mKGl0ZW0uaWQpID49IDA7XHJcbiAgICAgICAgaXRlbS5kaXNhYmxlZCA9IGhhc0luO1xyXG4gICAgICAgIGl0ZW0uY2hlY2tlZCA9IGhhc0luO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFRhYmxlRGF0YURpc2FibGVkKCkge1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLnZhbHVlcykgJiYgdGhpcy5ub2Rlcykge1xyXG4gICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMubm9kZXMpIHtcclxuICAgICAgICBsZXQgaGFzSW4gPSB0aGlzLnZhbHVlcy5pbmRleE9mKGl0ZW0uaWQpID49IDA7XHJcbiAgICAgICAgaXRlbS5kaXNhYmxlZCA9IGhhc0luO1xyXG4gICAgICAgIGl0ZW0uY2hlY2tlZCA9IGhhc0luO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEhpZGRlbkNoZWNrQWxsKCkge1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMuaGlkZGVuQ2hlY2tBbGwpKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5oaWRkZW5DaGVja0FsbCEubGVuZ3RoID4gMCAmJiBYSXNCb29sZWFuKHRoaXMuaGlkZGVuQ2hlY2tBbGwhWzBdKSkgdGhpcy5sZWZ0LmhpZGRlbkNoZWNrQWxsID0gdGhpcy5oaWRkZW5DaGVja0FsbCFbMF07XHJcbiAgICBpZiAodGhpcy5oaWRkZW5DaGVja0FsbCEubGVuZ3RoID4gMSAmJiBYSXNCb29sZWFuKHRoaXMuaGlkZGVuQ2hlY2tBbGwhWzFdKSkgdGhpcy5yaWdodC5oaWRkZW5DaGVja0FsbCA9IHRoaXMuaGlkZGVuQ2hlY2tBbGwhWzFdO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICN0cmFuc2ZlciBjbGFzcz1cIngtdHJhbnNmZXJcIiBjZGtEcm9wTGlzdEdyb3VwIFtuZ0NsYXNzXT1cImNsYXNzTWFwXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtdHJhbnNmZXItYm94XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic291cmNlVGl0bGVUcGw7IGNvbnRleHQ6IHsgc291cmNlOiBsZWZ0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgW25nU3R5bGVdPVwibGVmdC5saXN0U3R5bGUhXCIgY2xhc3M9XCJ4LXRyYW5zZmVyLWxpc3RcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidHlwZVwiPlxyXG4gICAgICAgIDx1bFxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidsaXN0J1wiXHJcbiAgICAgICAgICBjZGtEcm9wTGlzdFxyXG4gICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wQ2RrKCRldmVudClcIlxyXG4gICAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJsZWZ0Lmxpc3RcIlxyXG4gICAgICAgICAgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiIWRyYWcgJiYgdHlwZSA9PT0gJ2xpc3QnXCJcclxuICAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cInByZWRpY2F0ZVwiXHJcbiAgICAgICAgICBjbGFzcz1cIngtdHJhbnNmZXItZHJvcGxpc3RcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxsaSBjbGFzcz1cIngtdHJhbnNmZXItaXRlbVwiICpuZ0Zvcj1cImxldCBub2RlIG9mIGxlZnQubGlzdDsgdHJhY2tCeTogdHJhY2tCeU5vZGVcIiBjZGtEcmFnIFtjZGtEcmFnRGF0YV09XCJub2RlXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb3VyY2VOb2RlVHBsOyBjb250ZXh0OiB7IG5vZGU6IG5vZGUsIHNvdXJjZTogbGVmdCB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICAgICAgPHgtdHJlZVxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIid0cmVlJ1wiXHJcbiAgICAgICAgICBbZGF0YV09XCJsZWZ0Lmxpc3QhXCJcclxuICAgICAgICAgIG11bHRpcGxlXHJcbiAgICAgICAgICBhbGxvd01hbnlBY3RpdmF0ZWRcclxuICAgICAgICAgIFsoYWN0aXZhdGVkSWQpXT1cInRyZWVBY3RpdmF0ZWRJZFwiXHJcbiAgICAgICAgICAobm9kZUNsaWNrKT1cIm9uVHJlZU5vZGVDbGljaygkZXZlbnQpXCJcclxuICAgICAgICA+PC94LXRyZWU+XHJcbiAgICAgICAgPHgtdGFibGVcclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCIndGFibGUnXCJcclxuICAgICAgICAgIFtkYXRhXT1cInRhYmxlRGF0YVwiXHJcbiAgICAgICAgICBbY29sdW1uc109XCJ0YWJsZUNvbHVtbnMhXCJcclxuICAgICAgICAgIFsoc2l6ZSldPVwidGFibGVTaXplXCJcclxuICAgICAgICAgIFsoaW5kZXgpXT1cInRhYmxlSW5kZXhcIlxyXG4gICAgICAgICAgKGluZGV4Q2hhbmdlKT1cImdldFRhYmxlRGF0YSgpXCJcclxuICAgICAgICAgIFtxdWVyeV09XCJ0YWJsZVF1ZXJ5XCJcclxuICAgICAgICAgIFt0b3RhbF09XCJ0YWJsZVRvdGFsXCJcclxuICAgICAgICAgIChhY3RpdmF0ZWRSb3dDaGFuZ2UpPVwib25UYWJsZUNoZWNrZWRSb3coJGV2ZW50LCBsZWZ0KVwiXHJcbiAgICAgICAgICAoaGVhZENoZWNrYm94Q2hhbmdlKT1cIm9uVGFibGVDaGVja2VkQWxsKCRldmVudCwgbGVmdClcIlxyXG4gICAgICAgICAgaGlkZGVuV3JhcEJvcmRlclxyXG4gICAgICAgICAgaGlkZGVuUGFnaW5hdGlvbkJvcmRlclxyXG4gICAgICAgICAgc2hvd0VsbGlwc2lzPVwiZmFsc2VcIlxyXG4gICAgICAgICAgc2hvd1RvdGFsPVwiZmFsc2VcIlxyXG4gICAgICAgICAgcGFnaW5hdGlvblBvc2l0aW9uPVwiYm90dG9tLWNlbnRlclwiXHJcbiAgICAgICAgICBhbGxvd1NlbGVjdFJvdz1cImZhbHNlXCJcclxuICAgICAgICA+PC94LXRhYmxlPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXRyYW5zZmVyLWJ1dHRvbnNcIj5cclxuICAgIDx4LWJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGljb249XCJmdG8tY2hldnJvbi1yaWdodFwiIFtkaXNhYmxlZF09XCJsZWZ0LmRpc2FibGVkQnV0dG9uXCIgKGNsaWNrKT1cIm1vdmUobGVmdCwgcmlnaHQpXCI+PC94LWJ1dHRvbj5cclxuICAgIDx4LWJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGljb249XCJmdG8tY2hldnJvbi1sZWZ0XCIgW2Rpc2FibGVkXT1cInJpZ2h0LmRpc2FibGVkQnV0dG9uXCIgKGNsaWNrKT1cIm1vdmUocmlnaHQsIGxlZnQpXCI+PC94LWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwieC10cmFuc2Zlci1ib3hcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb3VyY2VUaXRsZVRwbDsgY29udGV4dDogeyBzb3VyY2U6IHJpZ2h0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgW25nU3dpdGNoXT1cInR5cGVcIiBbbmdTdHlsZV09XCJyaWdodC5saXN0U3R5bGUhXCIgY2xhc3M9XCJ4LXRyYW5zZmVyLWxpc3RcIj5cclxuICAgICAgPHgtdGFibGVcclxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3RhYmxlJ1wiXHJcbiAgICAgICAgW2RhdGFdPVwicmlnaHQubGlzdCFcIlxyXG4gICAgICAgIFtjb2x1bW5zXT1cInRhYmxlQ29sdW1ucyFcIlxyXG4gICAgICAgIChhY3RpdmF0ZWRSb3dDaGFuZ2UpPVwib25UYWJsZUNoZWNrZWRSb3coJGV2ZW50LCByaWdodClcIlxyXG4gICAgICAgIChoZWFkQ2hlY2tib3hDaGFuZ2UpPVwib25UYWJsZUNoZWNrZWRBbGwoJGV2ZW50LCByaWdodClcIlxyXG4gICAgICAgIGhpZGRlbldyYXBCb3JkZXJcclxuICAgICAgICBoaWRkZW5QYWdpbmF0aW9uQm9yZGVyXHJcbiAgICAgICAgc2hvd1BhZ2luYXRpb249XCJmYWxzZVwiXHJcbiAgICAgICAgc2hvd0VsbGlwc2lzPVwiZmFsc2VcIlxyXG4gICAgICAgIHNob3dUb3RhbD1cImZhbHNlXCJcclxuICAgICAgICBwYWdpbmF0aW9uUG9zaXRpb249XCJib3R0b20tY2VudGVyXCJcclxuICAgICAgICBhbGxvd1NlbGVjdFJvdz1cImZhbHNlXCJcclxuICAgICAgPjwveC10YWJsZT5cclxuICAgICAgPHVsXHJcbiAgICAgICAgKm5nU3dpdGNoRGVmYXVsdFxyXG4gICAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wQ2RrKCRldmVudClcIlxyXG4gICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwicmlnaHQubGlzdFwiXHJcbiAgICAgICAgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiIWRyYWcgfHwgKGRyYWcgJiYgdHlwZSAhPT0gJ2xpc3QnKVwiXHJcbiAgICAgICAgW2Nka0Ryb3BMaXN0RW50ZXJQcmVkaWNhdGVdPVwicHJlZGljYXRlXCJcclxuICAgICAgICBjbGFzcz1cIngtdHJhbnNmZXItZHJvcGxpc3RcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGxpIGNsYXNzPVwieC10cmFuc2Zlci1pdGVtXCIgKm5nRm9yPVwibGV0IG5vZGUgb2YgcmlnaHQubGlzdDsgdHJhY2tCeTogdHJhY2tCeU5vZGVcIiBjZGtEcmFnIFtjZGtEcmFnRGF0YV09XCJub2RlXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic291cmNlTm9kZVRwbDsgY29udGV4dDogeyBub2RlOiBub2RlLCBzb3VyY2U6IHJpZ2h0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNzb3VyY2VUaXRsZVRwbCBsZXQtc291cmNlPVwic291cmNlXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtdHJhbnNmZXItdGl0bGVcIj5cclxuICAgIDx4LWNoZWNrYm94XHJcbiAgICAgICpuZ0lmPVwic291cmNlLnRpdGxlICYmICFzb3VyY2UuaGlkZGVuQ2hlY2tBbGxcIlxyXG4gICAgICBbZGF0YV09XCJbdGl0bGVUcGwgPyAnJyA6IHNvdXJjZS50aXRsZV1cIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInNvdXJjZS5jaGVja2VkQWxsXCJcclxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hlY2tlZEFsbENoYW5nZSgkZXZlbnQsIHNvdXJjZSlcIlxyXG4gICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzb3VyY2UuaW5kZXRlcm1pbmF0ZVwiXHJcbiAgICA+PC94LWNoZWNrYm94PlxyXG4gICAgPHNwYW4gKm5nSWY9XCJzb3VyY2UudGl0bGUgJiYgc291cmNlLmhpZGRlbkNoZWNrQWxsXCI+e3sgc291cmNlLnRpdGxlIH19PC9zcGFuPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cInRpdGxlVHBsOyBjb250ZXh0OiB7ICR0aXRsZTogc291cmNlLnRpdGxlLCAkY2hlY2tlZENvdW50OiBzb3VyY2UuY2hlY2tlZENvdW50LCAkY291bnQ6IHNvdXJjZS5jb3VudCB9XCJcclxuICAgICAgPjxzcGFuIGNsYXNzPVwieC10cmFuc2Zlci10b3RhbFwiPnt7IHNvdXJjZS5jaGVja2VkQ291bnQgfX0gLyB7eyBzb3VyY2UuY291bnQgfX08L3NwYW4+PC9uZy1jb250YWluZXJcclxuICAgID5cclxuICA8L2Rpdj5cclxuICA8IS0tIDxkaXYgY2xhc3M9XCJ4LXRyYW5zZmVyLXNlYXJjaFwiICpuZ0lmPVwic2VhcmNoXCI+XHJcbiAgICA8eC1pbnB1dFxyXG4gICAgICBpY29uPVwiZnRvLXNlYXJjaFwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwic291cmNlLnNlYXJjaElucHV0XCJcclxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VhcmNoSW5wdXRDaGFuZ2Uoc291cmNlKVwiXHJcbiAgICAgIGNsZWFyYWJsZVxyXG4gICAgPjwveC1pbnB1dD5cclxuICA8L2Rpdj4gLS0+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3NvdXJjZU5vZGVUcGwgbGV0LW5vZGU9XCJub2RlXCIgbGV0LXNvdXJjZT1cInNvdXJjZVwiPlxyXG4gIDx4LWNoZWNrYm94XHJcbiAgICBbZGF0YV09XCJbeyBpZDogbm9kZS5pZCwgbGFiZWw6IG5vZGVUcGwgPyBub2RlVHBsIDogbm9kZS5sYWJlbCwgbm9kZTogbm9kZSB9XVwiXHJcbiAgICBbZGlzYWJsZWRdPVwibm9kZS5kaXNhYmxlZFwiXHJcbiAgICBbKG5nTW9kZWwpXT1cIm5vZGUuY2hlY2tlZFwiXHJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJjaGVja2VkQ2hhbmdlKCRldmVudCwgc291cmNlKVwiXHJcbiAgPjwveC1jaGVja2JveD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
493
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJhbnNmZXIvdHJhbnNmZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJhbnNmZXIvdHJhbnNmZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBSXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQWtDLGlCQUFpQixFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBQ3hILE9BQU8sRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFFBQVEsRUFFUixPQUFPLEVBQ1AsUUFBUSxFQUNSLFNBQVMsRUFDVCxjQUFjLEVBQ2QsVUFBVSxFQUNWLFdBQVcsRUFFWixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUF3QixNQUFNLHdCQUF3QixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBYXZELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUFpRHZELFlBQ1MsUUFBbUIsRUFDbkIsVUFBc0IsRUFDYixHQUFzQixFQUMvQixhQUE2QixFQUM3QixJQUFrQjtRQUV6QixLQUFLLEVBQUUsQ0FBQztRQU5ELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNiLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQy9CLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtR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QUFFLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEksSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDOzttSUE3ZFUsa0JBQWtCO3VIQUFsQixrQkFBa0IscUNBRmxCLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUMsc0VDeENqRCx1Z0tBcUhBOzRGRDNFYSxrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0UsR0FBRyxlQUFlLEVBQUUsaUJBR2YsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhUcmFuc2ZlclByZWZpeCwgWFRyYW5zZmVyTm9kZSwgWFRyYW5zZmVyU291cmNlLCBYVHJhbnNmZXJQcm9wZXJ0eSwgWFRyYW5zZmVyVHlwZSB9IGZyb20gJy4vdHJhbnNmZXIucHJvcGVydHknO1xyXG5pbXBvcnQge1xyXG4gIFhJc0NoYW5nZSxcclxuICBYSXNFbXB0eSxcclxuICBYU2V0RGF0YSxcclxuICBYQ29uZmlnU2VydmljZSxcclxuICBYUmVtb3ZlLFxyXG4gIFhJc0FycmF5LFxyXG4gIFhJc09iamVjdCxcclxuICBYSXNPYmplY3RBcnJheSxcclxuICBYSXNCb29sZWFuLFxyXG4gIFhJc0Z1bmN0aW9uLFxyXG4gIFhSZXN1bHRMaXN0XHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IHRyYW5zZmVyQXJyYXlJdGVtLCBtb3ZlSXRlbUluQXJyYXksIENka0RyYWdEcm9wLCBDZGtEcmFnIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IFhWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuaW1wb3J0IHsgWEkxOG5TZXJ2aWNlLCBYSTE4blRyYW5zZmVyIH0gZnJvbSAnQG5nLW5lc3QvdWkvaTE4bic7XHJcbmltcG9ydCB7IFhUcmVlTm9kZSB9IGZyb20gJ0BuZy1uZXN0L3VpL3RyZWUnO1xyXG5pbXBvcnQgeyBYVGFibGVDb2x1bW4gfSBmcm9tICdAbmctbmVzdC91aS90YWJsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRyYW5zZmVyUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyYW5zZmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmFuc2Zlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWFRyYW5zZmVyQ29tcG9uZW50KV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhUcmFuc2ZlckNvbXBvbmVudCBleHRlbmRzIFhUcmFuc2ZlclByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgbm9kZXM6IFhUcmFuc2Zlck5vZGVbXSA9IFtdO1xyXG4gIGxlZnQ6IFhUcmFuc2ZlclNvdXJjZSA9IHtcclxuICAgIGxpc3Q6IFtdLFxyXG4gICAgc2VhcmNoTGlzdDogW10sXHJcbiAgICBjaGVja2VkQ291bnQ6IDAsXHJcbiAgICBkaXJlY3Rpb246ICdsZWZ0JyxcclxuICAgIGRpc2FibGVkQnV0dG9uOiB0cnVlXHJcbiAgfTtcclxuICByaWdodDogWFRyYW5zZmVyU291cmNlID0ge1xyXG4gICAgbGlzdDogW10sXHJcbiAgICBzZWFyY2hMaXN0OiBbXSxcclxuICAgIGNoZWNrZWRDb3VudDogMCxcclxuICAgIGRpcmVjdGlvbjogJ3JpZ2h0JyxcclxuICAgIGRpc2FibGVkQnV0dG9uOiB0cnVlXHJcbiAgfTtcclxuICBzZWFyY2hJbnB1dDogc3RyaW5nID0gJyc7XHJcbiAgbG9jYWxlOiBYSTE4blRyYW5zZmVyID0ge307XHJcbiAgcHJpdmF0ZSBnZXQgbG9jYWxUaXRsZSgpIHtcclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICd0cmVlJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUudHJlZVRpdGxlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlLmxpc3RUaXRsZTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICB0cmVlQWN0aXZhdGVkSWQ6IGFueVtdID0gW107XHJcbiAgdGFibGVEYXRhOiBYVHJhbnNmZXJOb2RlW10gPSBbXTtcclxuICB0YWJsZUNoZWNrYm94Q29sdW1uPzogWFRhYmxlQ29sdW1uO1xyXG4gIGlzT2JqZWN0QXJyYXkgPSBmYWxzZTtcclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgaWYgKFhJc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICB0aGlzLnRyZWVBY3RpdmF0ZWRJZCA9IFsuLi52YWx1ZV07XHJcbiAgICAgIGlmIChYSXNPYmplY3RBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLmlzT2JqZWN0QXJyYXkgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldExpc3QodGhpcy5ub2Rlcyk7XHJcbiAgfVxyXG5cclxuICBnZXQgdmFsdWVzKCkge1xyXG4gICAgaWYgKHRoaXMuaXNPYmplY3RBcnJheSkge1xyXG4gICAgICByZXR1cm4gdGhpcy52YWx1ZS5tYXAoKHgpID0+IHguaWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZSxcclxuICAgIHB1YmxpYyBpMThuOiBYSTE4blNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0VGl0bGVzKCk7XHJcbiAgICB0aGlzLnNldExpc3RTdHlsZSgpO1xyXG4gICAgdGhpcy5zZXRIaWRkZW5DaGVja0FsbCgpO1xyXG4gICAgdGhpcy5nZXRUYWJsZUNoZWNrQ29sdW1uKCk7XHJcbiAgICB0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeCkgPT4geC50cmFuc2ZlciBhcyBYSTE4blRyYW5zZmVyKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLmxvY2FsZSA9IHg7XHJcbiAgICAgICAgWElzRW1wdHkodGhpcy50aXRsZXMpICYmIHRoaXMuc2V0VGl0bGVzKCk7XHJcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3QgeyBkYXRhIH0gPSBjaGFuZ2VzO1xyXG4gICAgWElzQ2hhbmdlKGRhdGEpICYmIHRoaXMuc2V0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hJbnB1dENoYW5nZShzb3VyY2U6IFhUcmFuc2ZlclNvdXJjZSkge1xyXG4gICAgc291cmNlLmxpc3QgPSBzb3VyY2Uuc2VhcmNoTGlzdD8uZmlsdGVyKCh4KSA9PiB4LmxhYmVsLmluZGV4T2Yoc291cmNlLnNlYXJjaElucHV0KSA+PSAwKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGNoZWNrZWRBbGxDaGFuZ2UoJGV2ZW50OiBib29sZWFuLCBzb3VyY2U6IFhUcmFuc2ZlclNvdXJjZSkge1xyXG4gICAgbGV0IGxpc3Q6IFhUcmFuc2Zlck5vZGVbXSA9IChzb3VyY2UubGlzdD8uZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCkgYXMgWFRyYW5zZmVyTm9kZVtdKS5tYXAoKHgpID0+IHtcclxuICAgICAgeC5jaGVja2VkID0gJGV2ZW50O1xyXG4gICAgICByZXR1cm4geDtcclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3RyZWUnICYmIHNvdXJjZS5kaXJlY3Rpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICB0aGlzLnRyZWVBY3RpdmF0ZWRJZCA9ICRldmVudCA/IHNvdXJjZS5saXN0IS5tYXAoKHgpID0+IHguaWQpISA6IHNvdXJjZS5saXN0IS5maWx0ZXIoKHgpID0+IHguZGlzYWJsZWQpLm1hcCgoeCkgPT4geC5pZCk7XHJcbiAgICB9XHJcbiAgICBzb3VyY2UuY2hlY2tlZENvdW50ID0gJGV2ZW50ID8gbGlzdC5sZW5ndGggOiAwO1xyXG4gICAgc291cmNlLmluZGV0ZXJtaW5hdGUgPSAkZXZlbnQ7XHJcbiAgICB0aGlzLnNldEJ1dHRvbkRpc2FibGVkKHNvdXJjZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja2VkQ2hhbmdlKCRldmVudDogYm9vbGVhbiwgc291cmNlOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIGlmICghJGV2ZW50KSAoc291cmNlLmNoZWNrZWRDb3VudCBhcyBudW1iZXIpLS07XHJcbiAgICBlbHNlIChzb3VyY2UuY2hlY2tlZENvdW50IGFzIG51bWJlcikrKztcclxuICAgIHRoaXMuc2V0Q2hlY2tlZEFsbChzb3VyY2UpO1xyXG4gICAgdGhpcy5zZXRCdXR0b25EaXNhYmxlZChzb3VyY2UpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbW92ZShmcm9tOiBYVHJhbnNmZXJTb3VyY2UsIHRvOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIGlmIChmcm9tLmRpc2FibGVkQnV0dG9uKSByZXR1cm47XHJcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xyXG4gICAgICBjYXNlICdsaXN0JzpcclxuICAgICAgICB0aGlzLm1vdmVMaXN0KGZyb20sIHRvKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndHJlZSc6XHJcbiAgICAgICAgdGhpcy5tb3ZlVHJlZShmcm9tLCB0byk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RhYmxlJzpcclxuICAgICAgICB0aGlzLm1vdmVUYWJsZShmcm9tLCB0byk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1vdmVMaXN0KGZyb206IFhUcmFuc2ZlclNvdXJjZSwgdG86IFhUcmFuc2ZlclNvdXJjZSkge1xyXG4gICAgbGV0IGNoZWNrZWRJdGVtcyA9IGZyb20ubGlzdD8uZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCAmJiB4LmNoZWNrZWQpITtcclxuICAgIGxldCBqID0gMDtcclxuICAgIGNoZWNrZWRJdGVtcy5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gZnJvbS5saXN0Py5pbmRleE9mKHgpIGFzIG51bWJlcjtcclxuICAgICAgeC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgIHRyYW5zZmVyQXJyYXlJdGVtKGZyb20ubGlzdCEsIHRvLmxpc3QhLCBpbmRleCwgaik7XHJcbiAgICAgIGorKztcclxuICAgIH0pO1xyXG4gICAgZnJvbS5saXN0ID0gWy4uLmZyb20ubGlzdCFdO1xyXG4gICAgdG8ubGlzdCA9IFsuLi50by5saXN0IV07XHJcbiAgICB0aGlzLnNldENoZWNrZWRDb3VudCgnbGlzdCcsIGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0TGlzdENvdW50KCdsaXN0JywgZnJvbSwgdG8pO1xyXG4gICAgdGhpcy5zZXRDaGVja2VkQWxsKGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0QnV0dG9uRGlzYWJsZWQoZnJvbSwgdG8pO1xyXG4gICAgdGhpcy5zZXRTZWFyY2hMaXN0KGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbW92ZVRyZWUoZnJvbTogWFRyYW5zZmVyU291cmNlLCB0bzogWFRyYW5zZmVyU291cmNlKSB7XHJcbiAgICBsZXQgY2hlY2tlZEl0ZW1zOiBYVHJhbnNmZXJOb2RlW10gPSBbXTtcclxuICAgIGlmICh0by5kaXJlY3Rpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgY2hlY2tlZEl0ZW1zID0gZnJvbS5saXN0Py5maWx0ZXIoKHgpID0+ICF4LmRpc2FibGVkICYmICFYSXNFbXB0eSh0aGlzLnRyZWVBY3RpdmF0ZWRJZCkgJiYgdGhpcy50cmVlQWN0aXZhdGVkSWQuaW5jbHVkZXMoeC5pZCkpITtcclxuICAgICAgY2hlY2tlZEl0ZW1zLmZvckVhY2goKHg6IFhUcmVlTm9kZSkgPT4ge1xyXG4gICAgICAgIHguZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgIHguY2hhbmdlICYmIHguY2hhbmdlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0by5saXN0Py51bnNoaWZ0KFxyXG4gICAgICAgIC4uLmNoZWNrZWRJdGVtcy5tYXAoKHgpID0+IHtcclxuICAgICAgICAgIGxldCByZXMgPSB7IC4uLnggfTtcclxuICAgICAgICAgIHJlcy5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICByZXMuZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkQ291bnQoJ3RyZWUnLCBmcm9tKTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkQ291bnQoJ2xpc3QnLCB0byk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjaGVja2VkSXRlbXMgPSBYUmVtb3ZlKGZyb20ubGlzdCEsICh4KSA9PiAheC5kaXNhYmxlZCAmJiB4LmNoZWNrZWQhKTtcclxuICAgICAgZm9yIChsZXQgaXRlbSBvZiBjaGVja2VkSXRlbXMpIHtcclxuICAgICAgICBsZXQgbm9kZTogWFRyZWVOb2RlID0gdG8ubGlzdD8uZmluZCgoeCkgPT4geC5pZCA9PT0gaXRlbS5pZCkhO1xyXG4gICAgICAgIGlmIChub2RlKSB7XHJcbiAgICAgICAgICBub2RlLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIG5vZGUuZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIGNvbnN0IGlkeCA9IHRoaXMudHJlZUFjdGl2YXRlZElkLmZpbmRJbmRleCgoeCkgPT4geCA9PT0gbm9kZS5pZCk7XHJcbiAgICAgICAgICBpZiAoaWR4ID49IDApIHtcclxuICAgICAgICAgICAgdGhpcy50cmVlQWN0aXZhdGVkSWQuc3BsaWNlKGlkeCwgMSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBub2RlLmNoYW5nZSAmJiBub2RlLmNoYW5nZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldENoZWNrZWRDb3VudCgndHJlZScsIHRvKTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkQ291bnQoJ2xpc3QnLCBmcm9tKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0Q2hlY2tlZEFsbChmcm9tLCB0byk7XHJcbiAgICB0aGlzLnNldExpc3RDb3VudCgnbGlzdCcsIGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0QnV0dG9uRGlzYWJsZWQoZnJvbSwgdG8pO1xyXG4gICAgdGhpcy5zZXRTZWFyY2hMaXN0KGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbW92ZVRhYmxlKGZyb206IFhUcmFuc2ZlclNvdXJjZSwgdG86IFhUcmFuc2ZlclNvdXJjZSkge1xyXG4gICAgbGV0IGNoZWNrZWRJdGVtczogWFRyYW5zZmVyTm9kZVtdID0gW107XHJcbiAgICBpZiAodG8uZGlyZWN0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgIGNoZWNrZWRJdGVtcyA9IGZyb20ubGlzdD8uZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCAmJiB4LmNoZWNrZWQpITtcclxuICAgICAgdG8ubGlzdCA9IFtcclxuICAgICAgICAuLi5jaGVja2VkSXRlbXMubWFwKCh4KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCByZXMgPSB7IC4uLnggfTtcclxuICAgICAgICAgIHguZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgeC5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICAgIHJlcy5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgcmVzLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgLi4udG8ubGlzdCFcclxuICAgICAgXTtcclxuICAgICAgdGhpcy50YWJsZURhdGEgPSBbLi4uZnJvbS5saXN0IV07XHJcbiAgICAgIHRoaXMuc2V0Q2hlY2tlZENvdW50KCd0YWJsZScsIGZyb20pO1xyXG4gICAgICB0aGlzLnNldENoZWNrZWRDb3VudCgnbGlzdCcsIHRvKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNoZWNrZWRJdGVtcyA9IFhSZW1vdmUoZnJvbS5saXN0ISwgKHgpID0+ICF4LmRpc2FibGVkICYmIHguY2hlY2tlZCEpO1xyXG4gICAgICBjb25zdCBpZHMgPSBjaGVja2VkSXRlbXMubWFwKCh4KSA9PiB4LmlkKTtcclxuICAgICAgZm9yIChsZXQgaXRlbSBvZiB0by5saXN0ISkge1xyXG4gICAgICAgIGlmIChpZHMuaW5jbHVkZXMoaXRlbS5pZCkpIHtcclxuICAgICAgICAgIGl0ZW0uY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgaXRlbS5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBmcm9tLmxpc3QgPSBbLi4uZnJvbS5saXN0IV07XHJcbiAgICAgIHRoaXMudGFibGVEYXRhID0gWy4uLnRvLmxpc3QhXTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkQ291bnQoJ3RhYmxlJywgdG8pO1xyXG4gICAgICB0aGlzLnNldENoZWNrZWRDb3VudCgnbGlzdCcsIGZyb20pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRMaXN0Q291bnQoJ3RhYmxlJywgZnJvbSwgdG8pO1xyXG4gICAgdGhpcy5zZXRDaGVja2VkQWxsKGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0QnV0dG9uRGlzYWJsZWQoZnJvbSwgdG8pO1xyXG4gICAgdGhpcy5zZXRTZWFyY2hMaXN0KGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIGRyb3BDZGsoZXZlbnQ6IENka0RyYWdEcm9wPFhUcmFuc2Zlck5vZGVbXSB8IHVuZGVmaW5lZCwgYW55Pikge1xyXG4gICAgY29uc3QgZXYgPSBldmVudCBhcyBDZGtEcmFnRHJvcDxYVHJhbnNmZXJOb2RlW10+O1xyXG4gICAgaWYgKGV2LnByZXZpb3VzQ29udGFpbmVyID09PSBldi5jb250YWluZXIpIHtcclxuICAgICAgbW92ZUl0ZW1JbkFycmF5KGV2LmNvbnRhaW5lci5kYXRhLCBldi5wcmV2aW91c0luZGV4LCBldi5jdXJyZW50SW5kZXgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdHJhbnNmZXJBcnJheUl0ZW0oZXYucHJldmlvdXNDb250YWluZXIuZGF0YSwgZXYuY29udGFpbmVyLmRhdGEsIGV2LnByZXZpb3VzSW5kZXgsIGV2LmN1cnJlbnRJbmRleCk7XHJcbiAgICAgIHRoaXMuc2V0Q2hlY2tlZENvdW50KCdsaXN0JywgdGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkQWxsKHRoaXMubGVmdCwgdGhpcy5yaWdodCk7XHJcbiAgICAgIHRoaXMuc2V0TGlzdENvdW50KCdsaXN0JywgdGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgdGhpcy5zZXRCdXR0b25EaXNhYmxlZCh0aGlzLmxlZnQsIHRoaXMucmlnaHQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTZWFyY2hMaXN0KHRoaXMubGVmdCwgdGhpcy5yaWdodCk7XHJcbiAgICB0aGlzLnNldFZhbHVlKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcmVkaWNhdGUoaXRlbTogQ2RrRHJhZzxYVHJhbnNmZXJOb2RlPikge1xyXG4gICAgcmV0dXJuICFpdGVtLmRhdGEuZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5Tm9kZShfaW5kZXg6IG51bWJlciwgaXRlbTogWFRyYW5zZmVyTm9kZSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG5cclxuICBzZXRMaXN0Q291bnQodHlwZTogWFRyYW5zZmVyVHlwZSA9ICdsaXN0JywgLi4uc291cmNlczogWFRyYW5zZmVyU291cmNlW10pIHtcclxuICAgIGlmIChbJ2xpc3QnLCAndHJlZSddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XHJcbiAgICAgICAgc291cmNlLmNvdW50ID0gc291cmNlLmxpc3Q/LmZpbHRlcigoeCkgPT4gIXguZGlzYWJsZWQpLmxlbmd0aDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAndGFibGUnKSB7XHJcbiAgICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XHJcbiAgICAgICAgaWYgKHNvdXJjZS5kaXJlY3Rpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgc291cmNlLmNvdW50ID0gdGhpcy50YWJsZVRvdGFsIC0gdGhpcy5yaWdodC5saXN0IS5sZW5ndGggfHwgMDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgc291cmNlLmNvdW50ID0gc291cmNlLmxpc3Q/LmZpbHRlcigoeCkgPT4gIXguZGlzYWJsZWQpLmxlbmd0aDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uVHJlZU5vZGVDbGljayhfbm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICB0aGlzLnNldENoZWNrZWRDb3VudCgndHJlZScsIHRoaXMubGVmdCk7XHJcbiAgICB0aGlzLnNldENoZWNrZWRBbGwodGhpcy5sZWZ0KTtcclxuICAgIHRoaXMuc2V0QnV0dG9uRGlzYWJsZWQodGhpcy5sZWZ0KTtcclxuICB9XHJcblxyXG4gIG9uVGFibGVDaGVja2VkUm93KHJvdzogWFRyYW5zZmVyTm9kZSwgc291cmNlOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIGlmICghdGhpcy50YWJsZUNoZWNrYm94Q29sdW1uKSByZXR1cm47XHJcbiAgICBsZXQgY2hlY2tlZCA9IHJvd1t0aGlzLnRhYmxlQ2hlY2tib3hDb2x1bW4uaWRdO1xyXG4gICAgcm93LmNoZWNrZWQgPSBjaGVja2VkO1xyXG4gICAgdGhpcy5zZXRDaGVja2VkQ291bnQoJ3RhYmxlJywgc291cmNlKTtcclxuICAgIHRoaXMuc2V0Q2hlY2tlZEFsbChzb3VyY2UpO1xyXG4gICAgdGhpcy5zZXRCdXR0b25EaXNhYmxlZChzb3VyY2UpO1xyXG4gIH1cclxuXHJcbiAgb25UYWJsZUNoZWNrZWRBbGwocm93OiB7IFtwcm9wOiBzdHJpbmddOiBib29sZWFuIH0sIHNvdXJjZTogWFRyYW5zZmVyU291cmNlKSB7XHJcbiAgICBpZiAoIXRoaXMudGFibGVDaGVja2JveENvbHVtbikgcmV0dXJuO1xyXG4gICAgbGV0IGNoZWNrZWQgPSByb3dbdGhpcy50YWJsZUNoZWNrYm94Q29sdW1uLmlkXTtcclxuICAgIGZvciAobGV0IGl0ZW0gb2Ygc291cmNlLmxpc3QhKSB7XHJcbiAgICAgIGlmICghaXRlbS5kaXNhYmxlZCkge1xyXG4gICAgICAgIGl0ZW0uY2hlY2tlZCA9IGNoZWNrZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuc2V0Q2hlY2tlZENvdW50KCd0YWJsZScsIHNvdXJjZSk7XHJcbiAgICB0aGlzLnNldEJ1dHRvbkRpc2FibGVkKHNvdXJjZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFRhYmxlQ2hlY2tDb2x1bW4oKSB7XHJcbiAgICBpZiAodGhpcy50eXBlICE9PSAndGFibGUnIHx8IFhJc0VtcHR5KHRoaXMudGFibGVDb2x1bW5zKSkgcmV0dXJuO1xyXG4gICAgdGhpcy50YWJsZUNoZWNrYm94Q29sdW1uID0gdGhpcy50YWJsZUNvbHVtbnM/LmZpbmQoKHgpID0+IHgucm93Q2hlY2tlZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENoZWNrZWRBbGwoLi4uc291cmNlczogWFRyYW5zZmVyU291cmNlW10pIHtcclxuICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XHJcbiAgICAgIGlmICgoc291cmNlLmNoZWNrZWRDb3VudCBhcyBudW1iZXIpID4gMCkge1xyXG4gICAgICAgIGlmIChzb3VyY2UuY2hlY2tlZENvdW50ID09PSBzb3VyY2UubGlzdD8uZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICBzb3VyY2UuY2hlY2tlZEFsbCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHNvdXJjZS5jaGVja2VkQWxsID0gZmFsc2U7XHJcbiAgICAgICAgICBzb3VyY2UuaW5kZXRlcm1pbmF0ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNvdXJjZS5jaGVja2VkQWxsID0gZmFsc2U7XHJcbiAgICAgICAgc291cmNlLmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRDaGVja2VkQ291bnQodHlwZTogWFRyYW5zZmVyVHlwZSA9ICdsaXN0JywgLi4uc291cmNlczogWFRyYW5zZmVyU291cmNlW10pIHtcclxuICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XHJcbiAgICAgIGlmIChbJ3RhYmxlJywgJ2xpc3QnXS5pbmNsdWRlcyh0eXBlKSkge1xyXG4gICAgICAgIHNvdXJjZS5jaGVja2VkQ291bnQgPSBzb3VyY2UubGlzdD8uZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCAmJiB4LmNoZWNrZWQpLmxlbmd0aDtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAndHJlZScpIHtcclxuICAgICAgICBzb3VyY2UuY2hlY2tlZENvdW50ID0gc291cmNlLmxpc3Q/LmZpbHRlcihcclxuICAgICAgICAgICh4KSA9PiAheC5kaXNhYmxlZCAmJiAhWElzRW1wdHkodGhpcy50cmVlQWN0aXZhdGVkSWQpICYmIHRoaXMudHJlZUFjdGl2YXRlZElkLmluY2x1ZGVzKHguaWQpXHJcbiAgICAgICAgKS5sZW5ndGg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0QnV0dG9uRGlzYWJsZWQoLi4uc291cmNlczogWFRyYW5zZmVyU291cmNlW10pIHtcclxuICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSBzb3VyY2UuZGlzYWJsZWRCdXR0b24gPSBzb3VyY2UuY2hlY2tlZENvdW50ID09PSAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRWYWx1ZSgpIHtcclxuICAgIGlmICh0aGlzLmlzT2JqZWN0QXJyYXkpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMucmlnaHQubGlzdCE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5yaWdodC5saXN0Py5tYXAoKHgpID0+IHguaWQpITtcclxuICAgIH1cclxuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFNlYXJjaExpc3QoLi4uX3NvdXJjZXM6IFhUcmFuc2ZlclNvdXJjZVtdKSB7XHJcbiAgICAvLyBpZiAodGhpcy5zZWFyY2gpIHtcclxuICAgIC8vICAgZm9yIChsZXQgc291cmNlIG9mIHNvdXJjZXMpIHtcclxuICAgIC8vICAgICBpZiAoWElzRW1wdHkoc291cmNlLnNlYXJjaElucHV0KSkge1xyXG4gICAgLy8gICAgICAgc291cmNlLnNlYXJjaExpc3QgPSBbLi4uKHNvdXJjZS5saXN0IGFzIFhUcmFuc2Zlck5vZGVbXSldO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfVxyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXREYXRhKCkge1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3RhYmxlJykge1xyXG4gICAgICB0aGlzLmdldFRhYmxlRGF0YSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBYU2V0RGF0YTxYVHJhbnNmZXJOb2RlPih0aGlzLmRhdGEsIHRoaXMuX3VuU3ViamVjdCkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0TGlzdCh4KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRMaXN0KGRhdGE6IFhUcmFuc2Zlck5vZGVbXSkge1xyXG4gICAgaWYgKFhJc0VtcHR5KGRhdGEpKSByZXR1cm47XHJcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xyXG4gICAgICBjYXNlICdsaXN0JzpcclxuICAgICAgICB0aGlzLm5vZGVzID0gZGF0YTtcclxuICAgICAgICBpZiAoIVhJc0VtcHR5KHRoaXMudmFsdWVzKSkge1xyXG4gICAgICAgICAgdGhpcy5sZWZ0Lmxpc3QgPSB0aGlzLm5vZGVzLmZpbHRlcigoeCkgPT4gdGhpcy52YWx1ZXMuaW5kZXhPZih4LmlkKSA8IDApO1xyXG4gICAgICAgICAgdGhpcy5yaWdodC5saXN0ID0gdGhpcy5ub2Rlcy5maWx0ZXIoKHgpID0+IHRoaXMudmFsdWVzLmluZGV4T2YoeC5pZCkgPj0gMCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubGVmdC5saXN0ID0gWy4uLnRoaXMubm9kZXNdO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldFNlYXJjaExpc3QodGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgICB0aGlzLnNldExpc3RDb3VudCh0aGlzLnR5cGUsIHRoaXMubGVmdCwgdGhpcy5yaWdodCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RyZWUnOlxyXG4gICAgICAgIHRoaXMubm9kZXMgPSBkYXRhO1xyXG4gICAgICAgIHRoaXMuc2V0VHJlZU5vZGVEaXNhYmxlZCgpO1xyXG4gICAgICAgIHRoaXMubGVmdC5saXN0ID0gWy4uLnRoaXMubm9kZXNdO1xyXG4gICAgICAgIGlmICghWElzRW1wdHkodGhpcy52YWx1ZXMpKSB7XHJcbiAgICAgICAgICB0aGlzLnJpZ2h0Lmxpc3QgPSB0aGlzLm5vZGVzXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKHgpID0+IHRoaXMudmFsdWVzLmluZGV4T2YoeC5pZCkgPj0gMClcclxuICAgICAgICAgICAgLm1hcCgoeCkgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCByZXMgPSB7IC4uLnggfTtcclxuICAgICAgICAgICAgICByZXMuY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHJlcy5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldFNlYXJjaExpc3QodGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgICB0aGlzLnNldExpc3RDb3VudCh0aGlzLnR5cGUsIHRoaXMubGVmdCwgdGhpcy5yaWdodCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RhYmxlJzpcclxuICAgICAgICB0aGlzLm5vZGVzID0gZGF0YTtcclxuICAgICAgICB0aGlzLnNldFRhYmxlRGF0YURpc2FibGVkKCk7XHJcbiAgICAgICAgdGhpcy5sZWZ0Lmxpc3QgPSBbLi4udGhpcy5ub2Rlc107XHJcbiAgICAgICAgaWYgKCFYSXNFbXB0eSh0aGlzLnZhbHVlcykpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmlzT2JqZWN0QXJyYXkpIHtcclxuICAgICAgICAgICAgdGhpcy5yaWdodC5saXN0ID0gW1xyXG4gICAgICAgICAgICAgIC4uLnRoaXMudmFsdWUubWFwKCh4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzID0geyAuLi54IH07XHJcbiAgICAgICAgICAgICAgICByZXMuZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJlcy5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJpZ2h0Lmxpc3QgPSBbLi4udGhpcy52YWx1ZV07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0U2VhcmNoTGlzdCh0aGlzLmxlZnQsIHRoaXMucmlnaHQpO1xyXG4gICAgICAgIHRoaXMuc2V0TGlzdENvdW50KHRoaXMudHlwZSwgdGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGdldFRhYmxlRGF0YSgpIHtcclxuICAgIGlmIChYSXNGdW5jdGlvbih0aGlzLmRhdGEpKSB7XHJcbiAgICAgICh0aGlzLmRhdGEgYXMgRnVuY3Rpb24pKHRoaXMudGFibGVJbmRleCwgdGhpcy50YWJsZVNpemUsIHRoaXMudGFibGVRdWVyeSkuc3Vic2NyaWJlKCh4OiBYUmVzdWx0TGlzdDxYVHJhbnNmZXJOb2RlPikgPT4ge1xyXG4gICAgICAgIHRoaXMudGFibGVUb3RhbCA9IHgudG90YWwhO1xyXG4gICAgICAgIHRoaXMudGFibGVEYXRhID0geC5saXN0ITtcclxuICAgICAgICB0aGlzLnNldExpc3QoeC5saXN0ISk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRUaXRsZXMoKSB7XHJcbiAgICBsZXQgdGl0bGVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMudGl0bGVzKSkge1xyXG4gICAgICB0aXRsZXMgPSBbdGhpcy5sb2NhbFRpdGxlISwgdGhpcy5sb2NhbGUuc2VsZWN0ZWRUaXRsZSFdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGl0bGVzID0gdGhpcy50aXRsZXM7XHJcbiAgICB9XHJcbiAgICBpZiAodGl0bGVzLmxlbmd0aCA+IDApIHRoaXMubGVmdC50aXRsZSA9IHRpdGxlc1swXTtcclxuICAgIGlmICh0aXRsZXMubGVuZ3RoID4gMSkgdGhpcy5yaWdodC50aXRsZSA9IHRpdGxlc1sxXTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0TGlzdFN0eWxlKCkge1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMubGlzdFN0eWxlKSkgcmV0dXJuO1xyXG4gICAgbGV0IHN0eWxlczogb2JqZWN0W10gPSBbXTtcclxuICAgIGlmIChYSXNPYmplY3QodGhpcy5saXN0U3R5bGUpKSB7XHJcbiAgICAgIHN0eWxlcyA9IFt0aGlzLmxpc3RTdHlsZSwgdGhpcy5saXN0U3R5bGVdO1xyXG4gICAgfSBlbHNlIGlmIChYSXNPYmplY3RBcnJheSh0aGlzLmxpc3RTdHlsZSkpIHtcclxuICAgICAgc3R5bGVzID0gdGhpcy5saXN0U3R5bGUgYXMgb2JqZWN0W107XHJcbiAgICB9XHJcbiAgICBpZiAoc3R5bGVzLmxlbmd0aCA+IDApIHRoaXMubGVmdC5saXN0U3R5bGUgPSBzdHlsZXNbMF07XHJcbiAgICBpZiAoc3R5bGVzLmxlbmd0aCA+IDEpIHRoaXMucmlnaHQubGlzdFN0eWxlID0gc3R5bGVzWzFdO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRUcmVlTm9kZURpc2FibGVkKCkge1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLnZhbHVlcykgJiYgdGhpcy5ub2Rlcykge1xyXG4gICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMubm9kZXMpIHtcclxuICAgICAgICBsZXQgaGFzSW4gPSB0aGlzLnZhbHVlcy5pbmRleE9mKGl0ZW0uaWQpID49IDA7XHJcbiAgICAgICAgaXRlbS5kaXNhYmxlZCA9IGhhc0luO1xyXG4gICAgICAgIGl0ZW0uY2hlY2tlZCA9IGhhc0luO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFRhYmxlRGF0YURpc2FibGVkKCkge1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLnZhbHVlcykgJiYgdGhpcy5ub2Rlcykge1xyXG4gICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMubm9kZXMpIHtcclxuICAgICAgICBsZXQgaGFzSW4gPSB0aGlzLnZhbHVlcy5pbmRleE9mKGl0ZW0uaWQpID49IDA7XHJcbiAgICAgICAgaXRlbS5kaXNhYmxlZCA9IGhhc0luO1xyXG4gICAgICAgIGl0ZW0uY2hlY2tlZCA9IGhhc0luO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEhpZGRlbkNoZWNrQWxsKCkge1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMuaGlkZGVuQ2hlY2tBbGwpKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5oaWRkZW5DaGVja0FsbCEubGVuZ3RoID4gMCAmJiBYSXNCb29sZWFuKHRoaXMuaGlkZGVuQ2hlY2tBbGwhWzBdKSkgdGhpcy5sZWZ0LmhpZGRlbkNoZWNrQWxsID0gdGhpcy5oaWRkZW5DaGVja0FsbCFbMF07XHJcbiAgICBpZiAodGhpcy5oaWRkZW5DaGVja0FsbCEubGVuZ3RoID4gMSAmJiBYSXNCb29sZWFuKHRoaXMuaGlkZGVuQ2hlY2tBbGwhWzFdKSkgdGhpcy5yaWdodC5oaWRkZW5DaGVja0FsbCA9IHRoaXMuaGlkZGVuQ2hlY2tBbGwhWzFdO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICN0cmFuc2ZlciBjbGFzcz1cIngtdHJhbnNmZXJcIiBjZGtEcm9wTGlzdEdyb3VwIFtuZ0NsYXNzXT1cImNsYXNzTWFwXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtdHJhbnNmZXItYm94XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic291cmNlVGl0bGVUcGw7IGNvbnRleHQ6IHsgc291cmNlOiBsZWZ0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgW25nU3R5bGVdPVwibGVmdC5saXN0U3R5bGUhXCIgY2xhc3M9XCJ4LXRyYW5zZmVyLWxpc3RcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidHlwZVwiPlxyXG4gICAgICAgIDx1bFxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidsaXN0J1wiXHJcbiAgICAgICAgICBjZGtEcm9wTGlzdFxyXG4gICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wQ2RrKCRldmVudClcIlxyXG4gICAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJsZWZ0Lmxpc3RcIlxyXG4gICAgICAgICAgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiIWRyYWcgJiYgdHlwZSA9PT0gJ2xpc3QnXCJcclxuICAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cInByZWRpY2F0ZVwiXHJcbiAgICAgICAgICBjbGFzcz1cIngtdHJhbnNmZXItZHJvcGxpc3RcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxsaSBjbGFzcz1cIngtdHJhbnNmZXItaXRlbVwiICpuZ0Zvcj1cImxldCBub2RlIG9mIGxlZnQubGlzdDsgdHJhY2tCeTogdHJhY2tCeU5vZGVcIiBjZGtEcmFnIFtjZGtEcmFnRGF0YV09XCJub2RlXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb3VyY2VOb2RlVHBsOyBjb250ZXh0OiB7IG5vZGU6IG5vZGUsIHNvdXJjZTogbGVmdCB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICAgICAgPHgtdHJlZVxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIid0cmVlJ1wiXHJcbiAgICAgICAgICBbZGF0YV09XCJsZWZ0Lmxpc3QhXCJcclxuICAgICAgICAgIG11bHRpcGxlXHJcbiAgICAgICAgICBhbGxvd01hbnlBY3RpdmF0ZWRcclxuICAgICAgICAgIFsoYWN0aXZhdGVkSWQpXT1cInRyZWVBY3RpdmF0ZWRJZFwiXHJcbiAgICAgICAgICAobm9kZUNsaWNrKT1cIm9uVHJlZU5vZGVDbGljaygkZXZlbnQpXCJcclxuICAgICAgICA+PC94LXRyZWU+XHJcbiAgICAgICAgPHgtdGFibGVcclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCIndGFibGUnXCJcclxuICAgICAgICAgIFtkYXRhXT1cInRhYmxlRGF0YVwiXHJcbiAgICAgICAgICBbY29sdW1uc109XCJ0YWJsZUNvbHVtbnMhXCJcclxuICAgICAgICAgIFsoc2l6ZSldPVwidGFibGVTaXplXCJcclxuICAgICAgICAgIFsoaW5kZXgpXT1cInRhYmxlSW5kZXhcIlxyXG4gICAgICAgICAgKGluZGV4Q2hhbmdlKT1cImdldFRhYmxlRGF0YSgpXCJcclxuICAgICAgICAgIFtxdWVyeV09XCJ0YWJsZVF1ZXJ5XCJcclxuICAgICAgICAgIFt0b3RhbF09XCJ0YWJsZVRvdGFsXCJcclxuICAgICAgICAgIChhY3RpdmF0ZWRSb3dDaGFuZ2UpPVwib25UYWJsZUNoZWNrZWRSb3coJGV2ZW50LCBsZWZ0KVwiXHJcbiAgICAgICAgICAoaGVhZENoZWNrYm94Q2hhbmdlKT1cIm9uVGFibGVDaGVja2VkQWxsKCRldmVudCwgbGVmdClcIlxyXG4gICAgICAgICAgaGlkZGVuV3JhcEJvcmRlclxyXG4gICAgICAgICAgaGlkZGVuUGFnaW5hdGlvbkJvcmRlclxyXG4gICAgICAgICAgc2hvd0VsbGlwc2lzPVwiZmFsc2VcIlxyXG4gICAgICAgICAgc2hvd1RvdGFsPVwiZmFsc2VcIlxyXG4gICAgICAgICAgcGFnaW5hdGlvblBvc2l0aW9uPVwiYm90dG9tLWNlbnRlclwiXHJcbiAgICAgICAgICBhbGxvd1NlbGVjdFJvdz1cImZhbHNlXCJcclxuICAgICAgICA+PC94LXRhYmxlPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXRyYW5zZmVyLWJ1dHRvbnNcIj5cclxuICAgIDx4LWJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGljb249XCJmdG8tY2hldnJvbi1yaWdodFwiIFtkaXNhYmxlZF09XCJsZWZ0LmRpc2FibGVkQnV0dG9uXCIgKGNsaWNrKT1cIm1vdmUobGVmdCwgcmlnaHQpXCI+PC94LWJ1dHRvbj5cclxuICAgIDx4LWJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGljb249XCJmdG8tY2hldnJvbi1sZWZ0XCIgW2Rpc2FibGVkXT1cInJpZ2h0LmRpc2FibGVkQnV0dG9uXCIgKGNsaWNrKT1cIm1vdmUocmlnaHQsIGxlZnQpXCI+PC94LWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwieC10cmFuc2Zlci1ib3hcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb3VyY2VUaXRsZVRwbDsgY29udGV4dDogeyBzb3VyY2U6IHJpZ2h0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgW25nU3dpdGNoXT1cInR5cGVcIiBbbmdTdHlsZV09XCJyaWdodC5saXN0U3R5bGUhXCIgY2xhc3M9XCJ4LXRyYW5zZmVyLWxpc3RcIj5cclxuICAgICAgPHgtdGFibGVcclxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3RhYmxlJ1wiXHJcbiAgICAgICAgW2RhdGFdPVwicmlnaHQubGlzdCFcIlxyXG4gICAgICAgIFtjb2x1bW5zXT1cInRhYmxlQ29sdW1ucyFcIlxyXG4gICAgICAgIChhY3RpdmF0ZWRSb3dDaGFuZ2UpPVwib25UYWJsZUNoZWNrZWRSb3coJGV2ZW50LCByaWdodClcIlxyXG4gICAgICAgIChoZWFkQ2hlY2tib3hDaGFuZ2UpPVwib25UYWJsZUNoZWNrZWRBbGwoJGV2ZW50LCByaWdodClcIlxyXG4gICAgICAgIGhpZGRlbldyYXBCb3JkZXJcclxuICAgICAgICBoaWRkZW5QYWdpbmF0aW9uQm9yZGVyXHJcbiAgICAgICAgc2hvd1BhZ2luYXRpb249XCJmYWxzZVwiXHJcbiAgICAgICAgc2hvd0VsbGlwc2lzPVwiZmFsc2VcIlxyXG4gICAgICAgIHNob3dUb3RhbD1cImZhbHNlXCJcclxuICAgICAgICBwYWdpbmF0aW9uUG9zaXRpb249XCJib3R0b20tY2VudGVyXCJcclxuICAgICAgICBhbGxvd1NlbGVjdFJvdz1cImZhbHNlXCJcclxuICAgICAgPjwveC10YWJsZT5cclxuICAgICAgPHVsXHJcbiAgICAgICAgKm5nU3dpdGNoRGVmYXVsdFxyXG4gICAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wQ2RrKCRldmVudClcIlxyXG4gICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwicmlnaHQubGlzdFwiXHJcbiAgICAgICAgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiIWRyYWcgfHwgKGRyYWcgJiYgdHlwZSAhPT0gJ2xpc3QnKVwiXHJcbiAgICAgICAgW2Nka0Ryb3BMaXN0RW50ZXJQcmVkaWNhdGVdPVwicHJlZGljYXRlXCJcclxuICAgICAgICBjbGFzcz1cIngtdHJhbnNmZXItZHJvcGxpc3RcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGxpIGNsYXNzPVwieC10cmFuc2Zlci1pdGVtXCIgKm5nRm9yPVwibGV0IG5vZGUgb2YgcmlnaHQubGlzdDsgdHJhY2tCeTogdHJhY2tCeU5vZGVcIiBjZGtEcmFnIFtjZGtEcmFnRGF0YV09XCJub2RlXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic291cmNlTm9kZVRwbDsgY29udGV4dDogeyBub2RlOiBub2RlLCBzb3VyY2U6IHJpZ2h0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNzb3VyY2VUaXRsZVRwbCBsZXQtc291cmNlPVwic291cmNlXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtdHJhbnNmZXItdGl0bGVcIj5cclxuICAgIDx4LWNoZWNrYm94XHJcbiAgICAgICpuZ0lmPVwic291cmNlLnRpdGxlICYmICFzb3VyY2UuaGlkZGVuQ2hlY2tBbGxcIlxyXG4gICAgICBbZGF0YV09XCJbdGl0bGVUcGwgPyAnJyA6IHNvdXJjZS50aXRsZV1cIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInNvdXJjZS5jaGVja2VkQWxsXCJcclxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hlY2tlZEFsbENoYW5nZSgkZXZlbnQsIHNvdXJjZSlcIlxyXG4gICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzb3VyY2UuaW5kZXRlcm1pbmF0ZVwiXHJcbiAgICA+PC94LWNoZWNrYm94PlxyXG4gICAgPHNwYW4gKm5nSWY9XCJzb3VyY2UudGl0bGUgJiYgc291cmNlLmhpZGRlbkNoZWNrQWxsXCI+e3sgc291cmNlLnRpdGxlIH19PC9zcGFuPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cInRpdGxlVHBsOyBjb250ZXh0OiB7ICR0aXRsZTogc291cmNlLnRpdGxlLCAkY2hlY2tlZENvdW50OiBzb3VyY2UuY2hlY2tlZENvdW50LCAkY291bnQ6IHNvdXJjZS5jb3VudCB9XCJcclxuICAgICAgPjxzcGFuIGNsYXNzPVwieC10cmFuc2Zlci10b3RhbFwiPnt7IHNvdXJjZS5jaGVja2VkQ291bnQgfX0gLyB7eyBzb3VyY2UuY291bnQgfX08L3NwYW4+PC9uZy1jb250YWluZXJcclxuICAgID5cclxuICA8L2Rpdj5cclxuICA8IS0tIDxkaXYgY2xhc3M9XCJ4LXRyYW5zZmVyLXNlYXJjaFwiICpuZ0lmPVwic2VhcmNoXCI+XHJcbiAgICA8eC1pbnB1dFxyXG4gICAgICBpY29uPVwiZnRvLXNlYXJjaFwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwic291cmNlLnNlYXJjaElucHV0XCJcclxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VhcmNoSW5wdXRDaGFuZ2Uoc291cmNlKVwiXHJcbiAgICAgIGNsZWFyYWJsZVxyXG4gICAgPjwveC1pbnB1dD5cclxuICA8L2Rpdj4gLS0+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3NvdXJjZU5vZGVUcGwgbGV0LW5vZGU9XCJub2RlXCIgbGV0LXNvdXJjZT1cInNvdXJjZVwiPlxyXG4gIDx4LWNoZWNrYm94XHJcbiAgICBbZGF0YV09XCJbeyBpZDogbm9kZS5pZCwgbGFiZWw6IG5vZGVUcGwgPyBub2RlVHBsIDogbm9kZS5sYWJlbCwgbm9kZTogbm9kZSB9XVwiXHJcbiAgICBbZGlzYWJsZWRdPVwibm9kZS5kaXNhYmxlZFwiXHJcbiAgICBbKG5nTW9kZWwpXT1cIm5vZGUuY2hlY2tlZFwiXHJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJjaGVja2VkQ2hhbmdlKCRldmVudCwgc291cmNlKVwiXHJcbiAgPjwveC1jaGVja2JveD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -14,8 +14,8 @@ import { XTableModule } from '@ng-nest/ui/table';
|
|
|
14
14
|
import * as i0 from "@angular/core";
|
|
15
15
|
export class XTransferModule {
|
|
16
16
|
}
|
|
17
|
-
/** @nocollapse */ XTransferModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
18
|
-
/** @nocollapse */ XTransferModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.
|
|
17
|
+
/** @nocollapse */ XTransferModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: XTransferModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
18
|
+
/** @nocollapse */ XTransferModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: XTransferModule, declarations: [XTransferComponent, XTransferProperty], imports: [CommonModule,
|
|
19
19
|
FormsModule,
|
|
20
20
|
DragDropModule,
|
|
21
21
|
XOutletModule,
|
|
@@ -25,7 +25,7 @@ export class XTransferModule {
|
|
|
25
25
|
XBaseFormModule,
|
|
26
26
|
XTreeModule,
|
|
27
27
|
XTableModule], exports: [XTransferComponent] });
|
|
28
|
-
/** @nocollapse */ XTransferModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.
|
|
28
|
+
/** @nocollapse */ XTransferModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: XTransferModule, imports: [CommonModule,
|
|
29
29
|
FormsModule,
|
|
30
30
|
DragDropModule,
|
|
31
31
|
XOutletModule,
|
|
@@ -35,7 +35,7 @@ export class XTransferModule {
|
|
|
35
35
|
XBaseFormModule,
|
|
36
36
|
XTreeModule,
|
|
37
37
|
XTableModule] });
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: XTransferModule, decorators: [{
|
|
39
39
|
type: NgModule,
|
|
40
40
|
args: [{
|
|
41
41
|
declarations: [XTransferComponent, XTransferProperty],
|
|
@@ -54,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
54
54
|
]
|
|
55
55
|
}]
|
|
56
56
|
}] });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJhbnNmZXIvdHJhbnNmZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQWtCakQsTUFBTSxPQUFPLGVBQWU7O2dJQUFmLGVBQWU7aUlBQWYsZUFBZSxpQkFmWCxrQkFBa0IsRUFBRSxpQkFBaUIsYUFHbEQsWUFBWTtRQUNaLFdBQVc7UUFDWCxjQUFjO1FBQ2QsYUFBYTtRQUNiLGVBQWU7UUFDZixhQUFhO1FBQ2IsWUFBWTtRQUNaLGVBQWU7UUFDZixXQUFXO1FBQ1gsWUFBWSxhQVhKLGtCQUFrQjtpSUFjakIsZUFBZSxZQVp4QixZQUFZO1FBQ1osV0FBVztRQUNYLGNBQWM7UUFDZCxhQUFhO1FBQ2IsZUFBZTtRQUNmLGFBQWE7UUFDYixZQUFZO1FBQ1osZUFBZTtRQUNmLFdBQVc7UUFDWCxZQUFZOzRGQUdILGVBQWU7a0JBaEIzQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGtCQUFrQixFQUFFLGlCQUFpQixDQUFDO29CQUNyRCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDN0IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixXQUFXO3dCQUNYLFlBQVk7cUJBQ2I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBYVHJhbnNmZXJDb21wb25lbnQgfSBmcm9tICcuL3RyYW5zZmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBYQ2hlY2tib3hNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9jaGVja2JveCc7XHJcbmltcG9ydCB7IFhCdXR0b25Nb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9idXR0b24nO1xyXG5pbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBYSW5wdXRNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9pbnB1dCc7XHJcbmltcG9ydCB7IFhPdXRsZXRNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9vdXRsZXQnO1xyXG5pbXBvcnQgeyBYVHJhbnNmZXJQcm9wZXJ0eSB9IGZyb20gJy4vdHJhbnNmZXIucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYQmFzZUZvcm1Nb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5pbXBvcnQgeyBYVHJlZU1vZHVsZSB9IGZyb20gJ0BuZy1uZXN0L3VpL3RyZWUnO1xyXG5pbXBvcnQgeyBYVGFibGVNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS90YWJsZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1hUcmFuc2ZlckNvbXBvbmVudCwgWFRyYW5zZmVyUHJvcGVydHldLFxyXG4gIGV4cG9ydHM6IFtYVHJhbnNmZXJDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICBYT3V0bGV0TW9kdWxlLFxyXG4gICAgWENoZWNrYm94TW9kdWxlLFxyXG4gICAgWEJ1dHRvbk1vZHVsZSxcclxuICAgIFhJbnB1dE1vZHVsZSxcclxuICAgIFhCYXNlRm9ybU1vZHVsZSxcclxuICAgIFhUcmVlTW9kdWxlLFxyXG4gICAgWFRhYmxlTW9kdWxlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFRyYW5zZmVyTW9kdWxlIHt9XHJcbiJdfQ==
|
|
@@ -33,8 +33,8 @@ export class XTransferProperty extends XControlValueAccessor {
|
|
|
33
33
|
this.tableTotal = 0;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
/** @nocollapse */ XTransferProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
37
|
-
/** @nocollapse */ XTransferProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
36
|
+
/** @nocollapse */ XTransferProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: XTransferProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
37
|
+
/** @nocollapse */ XTransferProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: XTransferProperty, selector: "ng-component", inputs: { data: "data", type: "type", titles: "titles", listStyle: "listStyle", hiddenCheckAll: "hiddenCheckAll", drag: "drag", search: "search", nodeTpl: "nodeTpl", titleTpl: "titleTpl", tableColumns: "tableColumns", tableIndex: "tableIndex", tableSize: "tableSize", tableQuery: "tableQuery", tableTotal: "tableTotal" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
38
38
|
__decorate([
|
|
39
39
|
XDataConvert()
|
|
40
40
|
], XTransferProperty.prototype, "data", void 0);
|
|
@@ -60,7 +60,7 @@ __decorate([
|
|
|
60
60
|
__decorate([
|
|
61
61
|
XWithConfig(X_CONFIG_NAME, 10)
|
|
62
62
|
], XTransferProperty.prototype, "tableSize", void 0);
|
|
63
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: XTransferProperty, decorators: [{
|
|
64
64
|
type: Component,
|
|
65
65
|
args: [{ template: '' }]
|
|
66
66
|
}], propDecorators: { data: [{
|
|
@@ -92,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
92
92
|
}], tableTotal: [{
|
|
93
93
|
type: Input
|
|
94
94
|
}] } });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90cmFuc2Zlci90cmFuc2Zlci5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFTLFlBQVksRUFBRSxhQUFhLEVBQXFDLFdBQVcsRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQUN6SSxPQUFPLEVBQWUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFHOUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUM7QUFFNUMsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDO0FBRWpDOztHQUVHO0FBRUgsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHFCQUE0QjtJQURuRTs7UUFFRTs7O1dBR0c7UUFDc0IsU0FBSSxHQUF5QixFQUFFLENBQUM7UUF5RHpEOzs7V0FHRztRQUNNLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDakM7OztXQUdHO1FBQ00sZUFBVSxHQUFXLENBQUMsQ0FBQztLQUNqQzs7a0lBeEVZLGlCQUFpQjtzSEFBakIsaUJBQWlCLDZZQURQLEVBQUU7O0lBTWIsWUFBWSxFQUFFOytDQUFpQzs7SUFLL0MsV0FBVyxDQUFnQixhQUFhLEVBQUUsTUFBTSxDQUFDOytDQUFzQjs7SUFNdkUsV0FBVyxDQUFXLGFBQWEsQ0FBQztpREFBbUI7O0lBS3ZELFdBQVcsQ0FBcUIsYUFBYSxDQUFDO29EQUFnQzs7SUFVOUUsV0FBVyxDQUFXLGFBQWEsRUFBRSxLQUFLLENBQUM7SUFBRSxhQUFhLEVBQUU7K0NBQWlCOztJQUs3RSxhQUFhLEVBQUU7aURBQW1COztJQW9CbEMsV0FBVyxDQUFTLGFBQWEsRUFBRSxDQUFDLENBQUM7cURBQXFCOztJQUsxRCxXQUFXLENBQVMsYUFBYSxFQUFFLEVBQUUsQ0FBQztvREFBb0I7NEZBN0R6RCxpQkFBaUI7a0JBRDdCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFOzhCQU1BLElBQUk7c0JBQTVCLEtBQUs7Z0JBS3NELElBQUk7c0JBQS9ELEtBQUs7Z0JBTXlDLE1BQU07c0JBQXBELEtBQUs7Z0JBS21ELFNBQVM7c0JBQWpFLEtBQUs7Z0JBS0csY0FBYztzQkFBdEIsS0FBSztnQkFLaUUsSUFBSTtzQkFBMUUsS0FBSztnQkFLb0IsTUFBTTtzQkFBL0IsS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxZQUFZO3NCQUFwQixLQUFLO2dCQUswQyxVQUFVO3NCQUF6RCxLQUFLO2dCQUsyQyxTQUFTO3NCQUF6RCxLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFhEYXRhLCBYRGF0YUNvbnZlcnQsIFhJbnB1dEJvb2xlYW4sIFhQYXJlbnRJZGVudGl0eVByb3BlcnR5LCBYQm9vbGVhbiwgWFdpdGhDb25maWcsIFhRdWVyeSwgWFN0eWxlTWFwIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFRlbXBsYXRlUmVmLCBJbnB1dCwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcbmltcG9ydCB7IFhUYWJsZUNvbHVtbiB9IGZyb20gJ0BuZy1uZXN0L3VpL3RhYmxlJztcclxuXHJcbi8qKlxyXG4gKiBUcmFuc2ZlclxyXG4gKiBAc2VsZWN0b3IgeC10cmFuc2ZlclxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhUcmFuc2ZlclByZWZpeCA9ICd4LXRyYW5zZmVyJztcclxuXHJcbmNvbnN0IFhfQ09ORklHX05BTUUgPSAndHJhbnNmZXInO1xyXG5cclxuLyoqXHJcbiAqIFRyYW5zZmVyIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYVHJhbnNmZXJQcm9wZXJ0eSBleHRlbmRzIFhDb250cm9sVmFsdWVBY2Nlc3NvcjxhbnlbXT4ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmlbDmja7lr7nosaFcclxuICAgKiBAZW5fVVMgRGF0YSBvYmplY3RcclxuICAgKi9cclxuICBASW5wdXQoKSBAWERhdGFDb252ZXJ0KCkgZGF0YTogWERhdGE8WFRyYW5zZmVyTm9kZT4gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup55qE57G75Z6LXHJcbiAgICogQGVuX1VTIFR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WFRyYW5zZmVyVHlwZT4oWF9DT05GSUdfTkFNRSwgJ2xpc3QnKSB0eXBlITogWFRyYW5zZmVyVHlwZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCH6aKYXHJcbiAgICogQGVuX1VTIFRpdGxlXHJcbiAgICogQGRlZmF1bHQgWydMaXN0JywgJ1NlbGVjdGVkJ11cclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8c3RyaW5nW10+KFhfQ09ORklHX05BTUUpIHRpdGxlcyE6IHN0cmluZ1tdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnqb/moq3moYbmoLflvI/vvIzkvb/nlKjmlrnlvI/kuo4gbmdTdHlsZSDnm7jlkIxcclxuICAgKiBAZW5fVVMgc2h1dHRsZSBib3ggc3R5bGUsIHNhbWUgYXMgbmdTdHlsZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYVHJhbnNmZXJMaXN0U3R5bGU+KFhfQ09ORklHX05BTUUpIGxpc3RTdHlsZSE6IFhUcmFuc2Zlckxpc3RTdHlsZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6ZqQ6JeP5YWo6YCJ5aSN6YCJ5qGGXHJcbiAgICogQGVuX1VTIEhpZGRlbiBjaGVjayBhbGxcclxuICAgKi9cclxuICBASW5wdXQoKSBoaWRkZW5DaGVja0FsbD86IGJvb2xlYW5bXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5piv5ZCm6IO95ouW5YqoLCB0eXBlXHJcbiAgICogQGVuX1VTIENhbiBkcmFnXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCBmYWxzZSkgQFhJbnB1dEJvb2xlYW4oKSBkcmFnPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuaYvuekuuaQnOe0ou+8iOaaguacquWunueOsO+8iVxyXG4gICAqIEBlbl9VUyBXaGV0aGVyIHRvIGRpc3BsYXkgc2VhcmNoIChub3QgaW1wbGVtZW50ZWQgeWV0KVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgc2VhcmNoPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihjOaVsOaNruiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBEYXRhIGN1c3RvbWl6YXRpb24gdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBub2RlVHBsPzogVGVtcGxhdGVSZWY8dm9pZD47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagh+mimOiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBUaXRsZSBjdXN0b20gdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0aXRsZVRwbD86IFRlbXBsYXRlUmVmPHZvaWQ+O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLzliJfpm4blkIhcclxuICAgKiBAZW5fVVMgVGFibGUgY29sdW1uIHNldFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRhYmxlQ29sdW1ucz86IFhUYWJsZUNvbHVtbltdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLzpobXnoIFcclxuICAgKiBAZW5fVVMgVGFibGUgcGFnZSBudW1iZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8bnVtYmVyPihYX0NPTkZJR19OQU1FLCAxKSB0YWJsZUluZGV4ITogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmr4/pobXmlbDmja7mnaHmlbBcclxuICAgKiBAZW5fVVMgTnVtYmVyIG9mIGRhdGEgaXRlbXMgcGVyIHBhZ2VcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8bnVtYmVyPihYX0NPTkZJR19OQU1FLCAxMCkgdGFibGVTaXplITogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLzmn6Xor6LmnaHku7ZcclxuICAgKiBAZW5fVVMgTnVtYmVyIG9mIGRhdGEgaXRlbXMgcGVyIHBhZ2VcclxuICAgKi9cclxuICBASW5wdXQoKSB0YWJsZVF1ZXJ5OiBYUXVlcnkgPSB7fTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC85pWw5o2u5oC75p2h5pWwXHJcbiAgICogQGVuX1VTIFRvdGFsIG51bWJlciBvZiB0YWJsZSBkYXRhXHJcbiAgICovXHJcbiAgQElucHV0KCkgdGFibGVUb3RhbDogbnVtYmVyID0gMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRyYW5zZmVyIE5vZGVcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRyYW5zZmVyTm9kZSBleHRlbmRzIFhQYXJlbnRJZGVudGl0eVByb3BlcnR5PFhUcmFuc2Zlck5vZGU+IHtcclxuICAvKipcclxuICAgKiBAemhfQ04gY2hlY2tib3gg5piv5ZCm6YCJ5LitXHJcbiAgICogQGVuX1VTIHdoZXRoZXIgY2hlY2tib3ggaXMgc2VsZWN0ZWRcclxuICAgKi9cclxuICBjaGVja2VkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bqP5Y+3XHJcbiAgICogQGVuX1VTIFNlcmlhbCBudW1iZXJcclxuICAgKi9cclxuICBpbmRleD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq5a6a5LmJ5bGe5oCnXHJcbiAgICogQGVuX1VTIEN1c3RvbSBwcm9wZXJ0eVxyXG4gICAqL1xyXG4gIFtwcm9wZXJ0eTogc3RyaW5nXTogYW55O1xyXG59XHJcblxyXG4vKipcclxuICogVHJhbnNmZXIgU291cmNlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhUcmFuc2ZlclNvdXJjZSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagh+mimFxyXG4gICAqIEBlbl9VUyBUaXRsZVxyXG4gICAqL1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmkJzntKLnmoTmlbDmja5cclxuICAgKiBAZW5fVVMgU2VhcmNoZWQgZGF0YVxyXG4gICAqL1xyXG4gIHNlYXJjaElucHV0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlhajpgIlcclxuICAgKiBAZW5fVVMgU2VsZWN0IGFsbFxyXG4gICAqL1xyXG4gIGNoZWNrZWRBbGw/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTmlbDph49cclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgcXVhbnRpdHlcclxuICAgKi9cclxuICBjaGVja2VkQ291bnQ/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWPr+mAieaLqeeahOaVsOaNruaAu+aVsFxyXG4gICAqIEBlbl9VUyBUb3RhbCBudW1iZXIgb2Ygc2VsZWN0YWJsZSBkYXRhXHJcbiAgICovXHJcbiAgY291bnQ/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOS4jeehruWumueKtuaAgeeahOagt+W8j1xyXG4gICAqIEBlbl9VUyBVbmNlcnRhaW4gc3RhdGUgc3R5bGVcclxuICAgKi9cclxuICBpbmRldGVybWluYXRlPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX6KGo5pWw5o2uXHJcbiAgICogQGVuX1VTIExpc3QgZGF0YVxyXG4gICAqL1xyXG4gIGxpc3Q/OiBYVHJhbnNmZXJOb2RlW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaQnOe0ouaVsOaNru+8jOeUqOadpei/mOWOn1xyXG4gICAqIEBlbl9VUyBTZWFyY2ggZGF0YSB0byByZXN0b3JlXHJcbiAgICovXHJcbiAgc2VhcmNoTGlzdD86IFhUcmFuc2Zlck5vZGVbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5oyJ6ZKu56aB55SoXHJcbiAgICogQGVuX1VTIEJ1dHRvbiBkaXNhYmxlZFxyXG4gICAqL1xyXG4gIGRpc2FibGVkQnV0dG9uPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6ZqQ6JeP5YWo6YCJ5aSN6YCJ5qGGXHJcbiAgICogQGVuX1VTIEhpZGRlbiBjaGVjayBhbGxcclxuICAgKi9cclxuICBoaWRkZW5DaGVja0FsbD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+ihqOagt+W8j1xyXG4gICAqIEBlbl9VUyBMaXN0IHN0eWxlXHJcbiAgICovXHJcbiAgbGlzdFN0eWxlPzogWFN0eWxlTWFwO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmlbDmja7mlrnlkJFcclxuICAgKiBAZW5fVVMgRGF0YSBkaXJlY3Rpb25cclxuICAgKi9cclxuICBkaXJlY3Rpb24/OiBYVHJhbnNmZXJEaXJlY3Rpb247XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUcmFuc2ZlciBkaXJlY3Rpb25cclxuICovXHJcbmV4cG9ydCB0eXBlIFhUcmFuc2ZlckRpcmVjdGlvbiA9ICdsZWZ0JyB8ICdyaWdodCc7XHJcblxyXG4vKipcclxuICogVHJhbnNmZXIgdHlwZVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgWFRyYW5zZmVyVHlwZSA9ICdsaXN0JyB8ICd0cmVlJyB8ICd0YWJsZSc7XHJcblxyXG4vKipcclxuICogVHJhbnNmZXIgbGlzdCBzdHlsZVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgWFRyYW5zZmVyTGlzdFN0eWxlID0gWFN0eWxlTWFwIHwgWFN0eWxlTWFwW107XHJcbiJdfQ==
|