@ng-nest/ui 15.0.18 → 15.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/anchor/anchor.component.d.ts +1 -1
- package/avatar/avatar.component.d.ts +1 -1
- package/back-top/back-top.component.d.ts +5 -3
- package/button/button.component.d.ts +2 -0
- package/color/color.component.d.ts +2 -2
- package/core/config/config.service.d.ts +4 -3
- package/core/functions/resize.d.ts +4 -2
- package/core/services/storage.service.d.ts +3 -1
- package/core/theme/theme.service.d.ts +2 -2
- package/core/util/computed-style.d.ts +2 -1
- package/core/util/index.d.ts +1 -0
- package/esm2020/affix/affix.component.mjs +3 -3
- package/esm2020/affix/affix.module.mjs +4 -4
- package/esm2020/affix/affix.property.mjs +3 -3
- package/esm2020/alert/alert.component.mjs +3 -3
- package/esm2020/alert/alert.module.mjs +4 -4
- package/esm2020/alert/alert.property.mjs +3 -3
- package/esm2020/anchor/anchor-inner.component.mjs +3 -3
- package/esm2020/anchor/anchor.component.mjs +16 -19
- package/esm2020/anchor/anchor.module.mjs +4 -4
- package/esm2020/anchor/anchor.property.mjs +6 -6
- package/esm2020/api/api.component.mjs +3 -3
- package/esm2020/api/api.module.mjs +4 -4
- package/esm2020/auto-complete/auto-complete-portal.component.mjs +3 -3
- package/esm2020/auto-complete/auto-complete.component.mjs +3 -3
- package/esm2020/auto-complete/auto-complete.module.mjs +4 -4
- package/esm2020/auto-complete/auto-complete.property.mjs +3 -3
- package/esm2020/avatar/avatar-group.component.mjs +3 -3
- package/esm2020/avatar/avatar.component.mjs +8 -11
- package/esm2020/avatar/avatar.module.mjs +4 -4
- package/esm2020/avatar/avatar.property.mjs +6 -6
- package/esm2020/back-top/back-top.component.mjs +17 -16
- package/esm2020/back-top/back-top.module.mjs +4 -4
- package/esm2020/back-top/back-top.property.mjs +3 -3
- package/esm2020/badge/badge.component.mjs +3 -3
- package/esm2020/badge/badge.module.mjs +4 -4
- package/esm2020/badge/badge.property.mjs +3 -3
- package/esm2020/base-form/base-form.component.mjs +3 -3
- package/esm2020/base-form/base-form.module.mjs +4 -4
- package/esm2020/base-form/base-form.property.mjs +3 -3
- package/esm2020/border/border.component.mjs +3 -3
- package/esm2020/border/border.module.mjs +4 -4
- package/esm2020/button/button.component.mjs +22 -10
- package/esm2020/button/button.module.mjs +4 -4
- package/esm2020/button/button.property.mjs +6 -6
- package/esm2020/button/buttons.component.mjs +3 -3
- package/esm2020/calendar/calendar.component.mjs +3 -3
- package/esm2020/calendar/calendar.module.mjs +4 -4
- package/esm2020/calendar/calendar.property.mjs +3 -3
- package/esm2020/card/card.component.mjs +3 -3
- package/esm2020/card/card.module.mjs +4 -4
- package/esm2020/card/card.property.mjs +3 -3
- package/esm2020/carousel/carousel-panel.component.mjs +3 -3
- package/esm2020/carousel/carousel.component.mjs +4 -4
- package/esm2020/carousel/carousel.module.mjs +4 -4
- package/esm2020/carousel/carousel.property.mjs +6 -6
- package/esm2020/cascade/cascade-portal.component.mjs +3 -3
- package/esm2020/cascade/cascade.component.mjs +3 -3
- package/esm2020/cascade/cascade.module.mjs +4 -4
- package/esm2020/cascade/cascade.property.mjs +3 -3
- package/esm2020/checkbox/checkbox.component.mjs +3 -3
- package/esm2020/checkbox/checkbox.module.mjs +4 -4
- package/esm2020/checkbox/checkbox.property.mjs +3 -3
- package/esm2020/collapse/collapse-panel.component.mjs +3 -3
- package/esm2020/collapse/collapse.component.mjs +3 -3
- package/esm2020/collapse/collapse.module.mjs +4 -4
- package/esm2020/collapse/collapse.property.mjs +6 -6
- package/esm2020/color/color.component.mjs +10 -13
- package/esm2020/color/color.module.mjs +4 -4
- package/esm2020/color/color.property.mjs +3 -3
- package/esm2020/color-picker/color-picker-portal.component.mjs +6 -6
- package/esm2020/color-picker/color-picker.component.mjs +3 -3
- package/esm2020/color-picker/color-picker.module.mjs +4 -4
- package/esm2020/color-picker/color-picker.property.mjs +3 -3
- package/esm2020/comment/comment-reply.component.mjs +3 -3
- package/esm2020/comment/comment.component.mjs +3 -3
- package/esm2020/comment/comment.module.mjs +4 -4
- package/esm2020/comment/comment.property.mjs +6 -6
- package/esm2020/container/aside.component.mjs +3 -3
- package/esm2020/container/container.component.mjs +3 -3
- package/esm2020/container/container.module.mjs +4 -4
- package/esm2020/container/container.property.mjs +12 -12
- package/esm2020/container/footer.component.mjs +3 -3
- package/esm2020/container/header.component.mjs +3 -3
- package/esm2020/container/main.component.mjs +3 -3
- package/esm2020/core/config/config.service.mjs +11 -20
- package/esm2020/core/functions/resize.mjs +4 -1
- package/esm2020/core/services/http.service.mjs +3 -3
- package/esm2020/core/services/preloading-strategy.service.mjs +3 -3
- package/esm2020/core/services/storage.service.mjs +51 -12
- package/esm2020/core/theme/theme.service.mjs +10 -12
- package/esm2020/core/util/computed-style.mjs +9 -3
- package/esm2020/core/util/index.mjs +2 -0
- package/esm2020/crumb/crumb.component.mjs +3 -3
- package/esm2020/crumb/crumb.module.mjs +4 -4
- package/esm2020/crumb/crumb.property.mjs +3 -3
- package/esm2020/date-picker/date-picker-portal.component.mjs +3 -3
- package/esm2020/date-picker/date-picker.component.mjs +3 -3
- package/esm2020/date-picker/date-picker.module.mjs +4 -4
- package/esm2020/date-picker/date-picker.property.mjs +18 -18
- package/esm2020/date-picker/date-quarter.pipe.mjs +3 -3
- package/esm2020/date-picker/date-range-portal.component.mjs +3 -3
- package/esm2020/date-picker/date-range.component.mjs +3 -3
- package/esm2020/date-picker/picker-date.component.mjs +3 -3
- package/esm2020/date-picker/picker-month.component.mjs +3 -3
- package/esm2020/date-picker/picker-quarter.component.mjs +3 -3
- package/esm2020/date-picker/picker-year.component.mjs +3 -3
- package/esm2020/description/description-item.component.mjs +3 -3
- package/esm2020/description/description.component.mjs +3 -3
- package/esm2020/description/description.module.mjs +4 -4
- package/esm2020/description/description.property.mjs +6 -6
- package/esm2020/dialog/dialog-container.component.mjs +3 -3
- package/esm2020/dialog/dialog-portal.component.mjs +3 -3
- package/esm2020/dialog/dialog-portal.directives.mjs +18 -18
- package/esm2020/dialog/dialog.component.mjs +3 -3
- package/esm2020/dialog/dialog.module.mjs +4 -4
- package/esm2020/dialog/dialog.property.mjs +6 -6
- package/esm2020/dialog/dialog.service.mjs +3 -3
- package/esm2020/doc/doc.component.mjs +3 -3
- package/esm2020/doc/doc.module.mjs +4 -4
- package/esm2020/drawer/drawer-container.component.mjs +3 -3
- package/esm2020/drawer/drawer-portal.component.mjs +3 -3
- package/esm2020/drawer/drawer-portal.directives.mjs +9 -9
- package/esm2020/drawer/drawer.component.mjs +3 -3
- package/esm2020/drawer/drawer.module.mjs +4 -4
- package/esm2020/drawer/drawer.property.mjs +6 -6
- package/esm2020/drawer/drawer.service.mjs +3 -3
- package/esm2020/dropdown/dropdown-portal.component.mjs +3 -3
- package/esm2020/dropdown/dropdown.component.mjs +3 -3
- package/esm2020/dropdown/dropdown.module.mjs +4 -4
- package/esm2020/dropdown/dropdown.property.mjs +3 -3
- package/esm2020/empty/empty.component.mjs +3 -3
- package/esm2020/empty/empty.module.mjs +4 -4
- package/esm2020/empty/empty.property.mjs +3 -3
- package/esm2020/examples/examples.component.mjs +3 -3
- package/esm2020/examples/examples.module.mjs +4 -4
- package/esm2020/find/find.component.mjs +4 -4
- package/esm2020/find/find.module.mjs +4 -4
- package/esm2020/find/find.property.mjs +3 -3
- package/esm2020/form/control.component.mjs +3 -3
- package/esm2020/form/form.component.mjs +3 -3
- package/esm2020/form/form.module.mjs +4 -4
- package/esm2020/form/form.property.mjs +6 -6
- package/esm2020/highlight/highlight.component.mjs +9 -8
- package/esm2020/highlight/highlight.module.mjs +4 -4
- package/esm2020/highlight/highlight.property.mjs +3 -3
- package/esm2020/i18n/i18n.directive.mjs +3 -3
- package/esm2020/i18n/i18n.module.mjs +4 -4
- package/esm2020/i18n/i18n.pipe.mjs +3 -3
- package/esm2020/i18n/i18n.property.mjs +1 -1
- package/esm2020/i18n/i18n.service.mjs +3 -3
- package/esm2020/i18n/languages/en_GB.mjs +5 -2
- package/esm2020/i18n/languages/en_US.mjs +5 -2
- package/esm2020/i18n/languages/zh_CN.mjs +5 -2
- package/esm2020/i18n/languages/zh_TW.mjs +5 -2
- package/esm2020/icon/icon.component.mjs +9 -14
- package/esm2020/icon/icon.module.mjs +4 -4
- package/esm2020/icon/icon.property.mjs +3 -3
- package/esm2020/icon/icon.service.mjs +3 -3
- package/esm2020/image/image-group.component.mjs +3 -3
- package/esm2020/image/image-preview.component.mjs +14 -10
- package/esm2020/image/image.component.mjs +3 -3
- package/esm2020/image/image.module.mjs +4 -4
- package/esm2020/image/image.property.mjs +6 -6
- package/esm2020/inner/inner.component.mjs +3 -3
- package/esm2020/inner/inner.module.mjs +4 -4
- package/esm2020/inner/inner.property.mjs +3 -3
- package/esm2020/input/input-group.component.mjs +3 -3
- package/esm2020/input/input.component.mjs +3 -3
- package/esm2020/input/input.module.mjs +4 -4
- package/esm2020/input/input.property.mjs +6 -6
- package/esm2020/input-number/input-number.component.mjs +3 -3
- package/esm2020/input-number/input-number.module.mjs +4 -4
- package/esm2020/input-number/input-number.property.mjs +3 -3
- package/esm2020/keyword/keyword.directive.mjs +3 -3
- package/esm2020/keyword/keyword.module.mjs +4 -4
- package/esm2020/keyword/keyword.property.mjs +3 -3
- package/esm2020/layout/col.component.mjs +3 -3
- package/esm2020/layout/layout.module.mjs +4 -4
- package/esm2020/layout/layout.property.mjs +6 -6
- package/esm2020/layout/row.component.mjs +3 -3
- package/esm2020/link/link.component.mjs +3 -3
- package/esm2020/link/link.module.mjs +4 -4
- package/esm2020/link/link.property.mjs +3 -3
- package/esm2020/list/list-drop-group.directive.mjs +3 -3
- package/esm2020/list/list-option.component.mjs +3 -3
- package/esm2020/list/list.component.mjs +5 -5
- package/esm2020/list/list.module.mjs +4 -4
- package/esm2020/list/list.property.mjs +6 -6
- package/esm2020/loading/loading.component.mjs +3 -3
- package/esm2020/loading/loading.module.mjs +4 -4
- package/esm2020/loading/loading.property.mjs +3 -3
- package/esm2020/menu/menu-node.component.mjs +3 -3
- package/esm2020/menu/menu.component.mjs +12 -12
- package/esm2020/menu/menu.module.mjs +4 -4
- package/esm2020/menu/menu.property.mjs +6 -6
- package/esm2020/message/message.component.mjs +3 -3
- package/esm2020/message/message.module.mjs +4 -4
- package/esm2020/message/message.service.mjs +3 -3
- package/esm2020/message-box/message-box.component.mjs +3 -3
- package/esm2020/message-box/message-box.module.mjs +4 -4
- package/esm2020/message-box/message-box.service.mjs +3 -3
- package/esm2020/notification/notification.component.mjs +3 -3
- package/esm2020/notification/notification.module.mjs +4 -4
- package/esm2020/notification/notification.service.mjs +3 -3
- package/esm2020/outlet/outlet.directive.mjs +3 -3
- package/esm2020/outlet/outlet.module.mjs +4 -4
- package/esm2020/page-header/page-header.component.mjs +3 -3
- package/esm2020/page-header/page-header.module.mjs +4 -4
- package/esm2020/page-header/page-header.property.mjs +3 -3
- package/esm2020/pagination/pagination.component.mjs +3 -3
- package/esm2020/pagination/pagination.module.mjs +4 -4
- package/esm2020/pagination/pagination.property.mjs +3 -3
- package/esm2020/pattern/pattern.component.mjs +3 -3
- package/esm2020/pattern/pattern.module.mjs +4 -4
- package/esm2020/popconfirm/popconfirm.component.mjs +3 -3
- package/esm2020/popconfirm/popconfirm.module.mjs +4 -4
- package/esm2020/popconfirm/popconfirm.property.mjs +3 -3
- package/esm2020/popover/popover-portal.component.mjs +3 -3
- package/esm2020/popover/popover.directive.mjs +3 -3
- package/esm2020/popover/popover.module.mjs +4 -4
- package/esm2020/popover/popover.property.mjs +3 -3
- package/esm2020/portal/portal.module.mjs +4 -4
- package/esm2020/portal/portal.service.mjs +6 -5
- package/esm2020/progress/progress.component.mjs +3 -3
- package/esm2020/progress/progress.module.mjs +4 -4
- package/esm2020/progress/progress.property.mjs +3 -3
- package/esm2020/radio/radio.component.mjs +3 -3
- package/esm2020/radio/radio.module.mjs +4 -4
- package/esm2020/radio/radio.property.mjs +3 -3
- package/esm2020/rate/rate.component.mjs +3 -3
- package/esm2020/rate/rate.module.mjs +4 -4
- package/esm2020/rate/rate.property.mjs +3 -3
- package/esm2020/resizable/resizable.directive.mjs +10 -13
- package/esm2020/resizable/resizable.module.mjs +4 -4
- package/esm2020/resizable/resizable.property.mjs +3 -3
- package/esm2020/result/result.component.mjs +3 -3
- package/esm2020/result/result.module.mjs +4 -4
- package/esm2020/result/result.property.mjs +3 -3
- package/esm2020/ripple/ripple.directive.mjs +6 -5
- package/esm2020/ripple/ripple.module.mjs +4 -4
- package/esm2020/ripple/ripple.property.mjs +3 -3
- package/esm2020/select/select-portal.component.mjs +3 -3
- package/esm2020/select/select.component.mjs +6 -6
- package/esm2020/select/select.module.mjs +4 -4
- package/esm2020/select/select.property.mjs +3 -3
- package/esm2020/skeleton/skeleton.component.mjs +3 -3
- package/esm2020/skeleton/skeleton.module.mjs +4 -4
- package/esm2020/skeleton/skeleton.property.mjs +3 -3
- package/esm2020/slider/slider.component.mjs +7 -5
- package/esm2020/slider/slider.module.mjs +4 -4
- package/esm2020/slider/slider.property.mjs +3 -3
- package/esm2020/slider-select/slider-select.component.mjs +21 -14
- package/esm2020/slider-select/slider-select.module.mjs +4 -4
- package/esm2020/slider-select/slider-select.property.mjs +3 -3
- package/esm2020/statistic/countdown.component.mjs +3 -3
- package/esm2020/statistic/statistic.component.mjs +3 -3
- package/esm2020/statistic/statistic.module.mjs +4 -4
- package/esm2020/statistic/statistic.property.mjs +6 -6
- package/esm2020/steps/steps.component.mjs +3 -3
- package/esm2020/steps/steps.module.mjs +4 -4
- package/esm2020/steps/steps.property.mjs +3 -3
- package/esm2020/switch/switch.component.mjs +3 -3
- package/esm2020/switch/switch.module.mjs +4 -4
- package/esm2020/switch/switch.property.mjs +3 -3
- package/esm2020/table/drag.directive.mjs +8 -11
- package/esm2020/table/table-body.component.mjs +10 -13
- package/esm2020/table/table-foot.component.mjs +3 -3
- package/esm2020/table/table-head.component.mjs +3 -3
- package/esm2020/table/table.component.mjs +3 -3
- package/esm2020/table/table.module.mjs +4 -4
- package/esm2020/table/table.property.mjs +12 -12
- package/esm2020/tabs/tab-content.component.mjs +3 -3
- package/esm2020/tabs/tab-link.directive.mjs +6 -6
- package/esm2020/tabs/tab.component.mjs +3 -3
- package/esm2020/tabs/tabs.component.mjs +4 -4
- package/esm2020/tabs/tabs.module.mjs +4 -4
- package/esm2020/tabs/tabs.property.mjs +6 -6
- package/esm2020/tag/tag.component.mjs +3 -3
- package/esm2020/tag/tag.module.mjs +4 -4
- package/esm2020/tag/tag.property.mjs +3 -3
- package/esm2020/text-retract/text-retract.component.mjs +3 -3
- package/esm2020/text-retract/text-retract.module.mjs +4 -4
- package/esm2020/text-retract/text-retract.property.mjs +3 -3
- package/esm2020/textarea/textarea.component.mjs +3 -3
- package/esm2020/textarea/textarea.module.mjs +4 -4
- package/esm2020/textarea/textarea.property.mjs +3 -3
- package/esm2020/theme/theme.component.mjs +3 -3
- package/esm2020/theme/theme.module.mjs +4 -4
- package/esm2020/theme/theme.property.mjs +3 -3
- package/esm2020/time-ago/time-ago.module.mjs +4 -4
- package/esm2020/time-ago/time-ago.pipe.mjs +3 -3
- package/esm2020/time-picker/time-picker-frame.component.mjs +3 -3
- package/esm2020/time-picker/time-picker-portal.component.mjs +3 -3
- package/esm2020/time-picker/time-picker.component.mjs +21 -5
- package/esm2020/time-picker/time-picker.module.mjs +4 -4
- package/esm2020/time-picker/time-picker.property.mjs +3 -3
- package/esm2020/time-range/time-range.module.mjs +4 -4
- package/esm2020/time-range/time-range.pipe.mjs +3 -3
- package/esm2020/timeline/timeline.component.mjs +3 -3
- package/esm2020/timeline/timeline.module.mjs +4 -4
- package/esm2020/timeline/timeline.property.mjs +3 -3
- package/esm2020/tooltip/tooltip-portal.component.mjs +3 -3
- package/esm2020/tooltip/tooltip.directive.mjs +3 -3
- package/esm2020/tooltip/tooltip.module.mjs +4 -4
- package/esm2020/tooltip/tooltip.property.mjs +3 -3
- package/esm2020/transfer/transfer.component.mjs +3 -3
- package/esm2020/transfer/transfer.module.mjs +4 -4
- package/esm2020/transfer/transfer.property.mjs +3 -3
- package/esm2020/tree/tree-node.component.mjs +3 -3
- package/esm2020/tree/tree.component.mjs +6 -6
- package/esm2020/tree/tree.module.mjs +4 -4
- package/esm2020/tree/tree.property.mjs +6 -6
- package/esm2020/tree/tree.service.mjs +3 -3
- package/esm2020/tree-file/tree-file.component.mjs +9 -6
- package/esm2020/tree-file/tree-file.module.mjs +4 -4
- package/esm2020/tree-file/tree-file.property.mjs +5 -5
- package/esm2020/tree-select/tree-select-portal.component.mjs +3 -3
- package/esm2020/tree-select/tree-select.component.mjs +6 -6
- package/esm2020/tree-select/tree-select.module.mjs +4 -4
- package/esm2020/tree-select/tree-select.property.mjs +3 -3
- package/esm2020/typography/typography.component.mjs +3 -3
- package/esm2020/typography/typography.module.mjs +4 -4
- package/esm2020/typography/typography.property.mjs +3 -3
- package/esm2020/upload/upload-portal.component.mjs +8 -11
- package/esm2020/upload/upload.component.mjs +3 -3
- package/esm2020/upload/upload.module.mjs +4 -4
- package/esm2020/upload/upload.property.mjs +3 -3
- package/fesm2015/ng-nest-ui-affix.mjs +10 -10
- package/fesm2015/ng-nest-ui-alert.mjs +10 -10
- package/fesm2015/ng-nest-ui-anchor.mjs +28 -33
- package/fesm2015/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-api.mjs +7 -7
- package/fesm2015/ng-nest-ui-auto-complete.mjs +13 -13
- package/fesm2015/ng-nest-ui-avatar.mjs +20 -25
- package/fesm2015/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-back-top.mjs +23 -24
- package/fesm2015/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-badge.mjs +10 -10
- package/fesm2015/ng-nest-ui-base-form.mjs +10 -10
- package/fesm2015/ng-nest-ui-border.mjs +7 -7
- package/fesm2015/ng-nest-ui-button.mjs +35 -22
- package/fesm2015/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-calendar.mjs +10 -10
- package/fesm2015/ng-nest-ui-card.mjs +10 -10
- package/fesm2015/ng-nest-ui-carousel.mjs +16 -16
- package/fesm2015/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-cascade.mjs +13 -13
- package/fesm2015/ng-nest-ui-checkbox.mjs +10 -10
- package/fesm2015/ng-nest-ui-collapse.mjs +16 -16
- package/fesm2015/ng-nest-ui-color-picker.mjs +15 -15
- package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-color.mjs +16 -21
- package/fesm2015/ng-nest-ui-color.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-comment.mjs +16 -16
- package/fesm2015/ng-nest-ui-container.mjs +31 -31
- package/fesm2015/ng-nest-ui-core.mjs +83 -51
- package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-crumb.mjs +10 -10
- package/fesm2015/ng-nest-ui-date-picker.mjs +49 -49
- package/fesm2015/ng-nest-ui-description.mjs +16 -16
- package/fesm2015/ng-nest-ui-dialog.mjs +40 -40
- package/fesm2015/ng-nest-ui-doc.mjs +7 -7
- package/fesm2015/ng-nest-ui-drawer.mjs +31 -31
- package/fesm2015/ng-nest-ui-dropdown.mjs +13 -13
- package/fesm2015/ng-nest-ui-empty.mjs +10 -10
- package/fesm2015/ng-nest-ui-examples.mjs +7 -7
- package/fesm2015/ng-nest-ui-find.mjs +10 -10
- package/fesm2015/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-form.mjs +16 -16
- package/fesm2015/ng-nest-ui-highlight.mjs +15 -14
- package/fesm2015/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-i18n.mjs +29 -17
- package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-icon.mjs +18 -25
- package/fesm2015/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-image.mjs +30 -26
- package/fesm2015/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-inner.mjs +10 -10
- package/fesm2015/ng-nest-ui-input-number.mjs +10 -10
- package/fesm2015/ng-nest-ui-input.mjs +16 -16
- package/fesm2015/ng-nest-ui-keyword.mjs +10 -10
- package/fesm2015/ng-nest-ui-layout.mjs +16 -16
- package/fesm2015/ng-nest-ui-link.mjs +10 -10
- package/fesm2015/ng-nest-ui-list.mjs +20 -20
- package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-loading.mjs +10 -10
- package/fesm2015/ng-nest-ui-menu.mjs +24 -26
- package/fesm2015/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-message-box.mjs +10 -10
- package/fesm2015/ng-nest-ui-message.mjs +10 -10
- package/fesm2015/ng-nest-ui-notification.mjs +10 -10
- package/fesm2015/ng-nest-ui-outlet.mjs +7 -7
- package/fesm2015/ng-nest-ui-page-header.mjs +10 -10
- package/fesm2015/ng-nest-ui-pagination.mjs +10 -10
- package/fesm2015/ng-nest-ui-pattern.mjs +7 -7
- package/fesm2015/ng-nest-ui-popconfirm.mjs +10 -10
- package/fesm2015/ng-nest-ui-popover.mjs +13 -13
- package/fesm2015/ng-nest-ui-portal.mjs +9 -9
- package/fesm2015/ng-nest-ui-portal.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-progress.mjs +10 -10
- package/fesm2015/ng-nest-ui-radio.mjs +10 -10
- package/fesm2015/ng-nest-ui-rate.mjs +10 -10
- package/fesm2015/ng-nest-ui-resizable.mjs +16 -21
- package/fesm2015/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-result.mjs +10 -10
- package/fesm2015/ng-nest-ui-ripple.mjs +12 -12
- package/fesm2015/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-select.mjs +15 -15
- package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-skeleton.mjs +10 -10
- package/fesm2015/ng-nest-ui-slider-select.mjs +27 -20
- package/fesm2015/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-slider.mjs +13 -11
- package/fesm2015/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-statistic.mjs +16 -16
- package/fesm2015/ng-nest-ui-steps.mjs +10 -10
- package/fesm2015/ng-nest-ui-switch.mjs +10 -10
- package/fesm2015/ng-nest-ui-table.mjs +40 -50
- package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tabs.mjs +25 -25
- package/fesm2015/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tag.mjs +10 -10
- package/fesm2015/ng-nest-ui-text-retract.mjs +10 -10
- package/fesm2015/ng-nest-ui-textarea.mjs +10 -10
- package/fesm2015/ng-nest-ui-theme.mjs +10 -10
- package/fesm2015/ng-nest-ui-time-ago.mjs +7 -7
- package/fesm2015/ng-nest-ui-time-picker.mjs +33 -17
- package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-time-range.mjs +7 -7
- package/fesm2015/ng-nest-ui-timeline.mjs +10 -10
- package/fesm2015/ng-nest-ui-tooltip.mjs +13 -13
- package/fesm2015/ng-nest-ui-transfer.mjs +10 -10
- package/fesm2015/ng-nest-ui-tree-file.mjs +16 -13
- package/fesm2015/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tree-select.mjs +15 -15
- package/fesm2015/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tree.mjs +21 -21
- package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-typography.mjs +10 -10
- package/fesm2015/ng-nest-ui-upload.mjs +17 -22
- package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-affix.mjs +10 -10
- package/fesm2020/ng-nest-ui-alert.mjs +10 -10
- package/fesm2020/ng-nest-ui-anchor.mjs +28 -31
- package/fesm2020/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-api.mjs +7 -7
- package/fesm2020/ng-nest-ui-auto-complete.mjs +13 -13
- package/fesm2020/ng-nest-ui-avatar.mjs +20 -23
- package/fesm2020/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-back-top.mjs +23 -22
- package/fesm2020/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-badge.mjs +10 -10
- package/fesm2020/ng-nest-ui-base-form.mjs +10 -10
- package/fesm2020/ng-nest-ui-border.mjs +7 -7
- package/fesm2020/ng-nest-ui-button.mjs +34 -22
- package/fesm2020/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-calendar.mjs +10 -10
- package/fesm2020/ng-nest-ui-card.mjs +10 -10
- package/fesm2020/ng-nest-ui-carousel.mjs +16 -16
- package/fesm2020/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-cascade.mjs +13 -13
- package/fesm2020/ng-nest-ui-checkbox.mjs +10 -10
- package/fesm2020/ng-nest-ui-collapse.mjs +16 -16
- package/fesm2020/ng-nest-ui-color-picker.mjs +15 -15
- package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-color.mjs +16 -19
- package/fesm2020/ng-nest-ui-color.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-comment.mjs +16 -16
- package/fesm2020/ng-nest-ui-container.mjs +31 -31
- package/fesm2020/ng-nest-ui-core.mjs +83 -47
- package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-crumb.mjs +10 -10
- package/fesm2020/ng-nest-ui-date-picker.mjs +49 -49
- package/fesm2020/ng-nest-ui-description.mjs +16 -16
- package/fesm2020/ng-nest-ui-dialog.mjs +40 -40
- package/fesm2020/ng-nest-ui-doc.mjs +7 -7
- package/fesm2020/ng-nest-ui-drawer.mjs +31 -31
- package/fesm2020/ng-nest-ui-dropdown.mjs +13 -13
- package/fesm2020/ng-nest-ui-empty.mjs +10 -10
- package/fesm2020/ng-nest-ui-examples.mjs +7 -7
- package/fesm2020/ng-nest-ui-find.mjs +10 -10
- package/fesm2020/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-form.mjs +16 -16
- package/fesm2020/ng-nest-ui-highlight.mjs +15 -14
- package/fesm2020/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-i18n.mjs +29 -17
- package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-icon.mjs +18 -23
- package/fesm2020/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-image.mjs +29 -26
- package/fesm2020/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-inner.mjs +10 -10
- package/fesm2020/ng-nest-ui-input-number.mjs +10 -10
- package/fesm2020/ng-nest-ui-input.mjs +16 -16
- package/fesm2020/ng-nest-ui-keyword.mjs +10 -10
- package/fesm2020/ng-nest-ui-layout.mjs +16 -16
- package/fesm2020/ng-nest-ui-link.mjs +10 -10
- package/fesm2020/ng-nest-ui-list.mjs +20 -20
- package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-loading.mjs +10 -10
- package/fesm2020/ng-nest-ui-menu.mjs +24 -24
- package/fesm2020/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-message-box.mjs +10 -10
- package/fesm2020/ng-nest-ui-message.mjs +10 -10
- package/fesm2020/ng-nest-ui-notification.mjs +10 -10
- package/fesm2020/ng-nest-ui-outlet.mjs +7 -7
- package/fesm2020/ng-nest-ui-page-header.mjs +10 -10
- package/fesm2020/ng-nest-ui-pagination.mjs +10 -10
- package/fesm2020/ng-nest-ui-pattern.mjs +7 -7
- package/fesm2020/ng-nest-ui-popconfirm.mjs +10 -10
- package/fesm2020/ng-nest-ui-popover.mjs +13 -13
- package/fesm2020/ng-nest-ui-portal.mjs +9 -9
- package/fesm2020/ng-nest-ui-portal.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-progress.mjs +10 -10
- package/fesm2020/ng-nest-ui-radio.mjs +10 -10
- package/fesm2020/ng-nest-ui-rate.mjs +10 -10
- package/fesm2020/ng-nest-ui-resizable.mjs +16 -19
- package/fesm2020/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-result.mjs +10 -10
- package/fesm2020/ng-nest-ui-ripple.mjs +12 -12
- package/fesm2020/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-select.mjs +15 -15
- package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-skeleton.mjs +10 -10
- package/fesm2020/ng-nest-ui-slider-select.mjs +27 -20
- package/fesm2020/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-slider.mjs +13 -11
- package/fesm2020/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-statistic.mjs +16 -16
- package/fesm2020/ng-nest-ui-steps.mjs +10 -10
- package/fesm2020/ng-nest-ui-switch.mjs +10 -10
- package/fesm2020/ng-nest-ui-table.mjs +40 -46
- package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tabs.mjs +25 -25
- package/fesm2020/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tag.mjs +10 -10
- package/fesm2020/ng-nest-ui-text-retract.mjs +10 -10
- package/fesm2020/ng-nest-ui-textarea.mjs +10 -10
- package/fesm2020/ng-nest-ui-theme.mjs +10 -10
- package/fesm2020/ng-nest-ui-time-ago.mjs +7 -7
- package/fesm2020/ng-nest-ui-time-picker.mjs +33 -17
- package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-time-range.mjs +7 -7
- package/fesm2020/ng-nest-ui-timeline.mjs +10 -10
- package/fesm2020/ng-nest-ui-tooltip.mjs +13 -13
- package/fesm2020/ng-nest-ui-transfer.mjs +10 -10
- package/fesm2020/ng-nest-ui-tree-file.mjs +16 -13
- package/fesm2020/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tree-select.mjs +15 -15
- package/fesm2020/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tree.mjs +21 -21
- package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-typography.mjs +10 -10
- package/fesm2020/ng-nest-ui-upload.mjs +17 -20
- package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
- package/i18n/i18n.property.d.ts +3 -0
- package/i18n/languages/en_GB.d.ts +3 -0
- package/i18n/languages/en_US.d.ts +3 -0
- package/i18n/languages/zh_CN.d.ts +3 -0
- package/i18n/languages/zh_TW.d.ts +3 -0
- package/icon/icon.component.d.ts +4 -4
- package/image/image-preview.component.d.ts +1 -0
- package/menu/menu.component.d.ts +2 -2
- package/package.json +1 -1
- package/resizable/resizable.directive.d.ts +1 -1
- package/slider-select/slider-select.component.d.ts +1 -1
- package/table/drag.directive.d.ts +1 -1
- package/table/table-body.component.d.ts +2 -2
- package/time-picker/time-picker.component.d.ts +1 -0
- package/upload/upload-portal.component.d.ts +1 -1
|
@@ -8,10 +8,10 @@ import { XCollapseProperty, XCollapsePanelProperty } from './collapse.property';
|
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
export class XCollapseModule {
|
|
10
10
|
}
|
|
11
|
-
/** @nocollapse */ XCollapseModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
12
|
-
/** @nocollapse */ XCollapseModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
13
|
-
/** @nocollapse */ XCollapseModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
11
|
+
/** @nocollapse */ XCollapseModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XCollapseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
+
/** @nocollapse */ XCollapseModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: XCollapseModule, declarations: [XCollapseComponent, XCollapsePanelComponent, XCollapseProperty, XCollapsePanelProperty], imports: [CommonModule, XIconModule, XOutletModule], exports: [XCollapseComponent, XCollapsePanelComponent] });
|
|
13
|
+
/** @nocollapse */ XCollapseModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XCollapseModule, imports: [CommonModule, XIconModule, XOutletModule] });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XCollapseModule, decorators: [{
|
|
15
15
|
type: NgModule,
|
|
16
16
|
args: [{
|
|
17
17
|
declarations: [XCollapseComponent, XCollapsePanelComponent, XCollapseProperty, XCollapsePanelProperty],
|
|
@@ -27,8 +27,8 @@ export class XCollapseProperty extends XProperty {
|
|
|
27
27
|
this.activeChange = new EventEmitter();
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
/** @nocollapse */ XCollapseProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
31
|
-
/** @nocollapse */ XCollapseProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
30
|
+
/** @nocollapse */ XCollapseProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XCollapseProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
+
/** @nocollapse */ XCollapseProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XCollapseProperty, selector: "ng-component", inputs: { accordion: "accordion", icon: "icon", showIcon: "showIcon", iconPosition: "iconPosition", ghost: "ghost", bordered: "bordered", active: "active" }, outputs: { activeChange: "activeChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
32
32
|
__decorate([
|
|
33
33
|
XInputBoolean()
|
|
34
34
|
], XCollapseProperty.prototype, "accordion", void 0);
|
|
@@ -47,7 +47,7 @@ __decorate([
|
|
|
47
47
|
XInputBoolean(),
|
|
48
48
|
XWithConfig(X_CONFIG_NAME, false)
|
|
49
49
|
], XCollapseProperty.prototype, "bordered", void 0);
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XCollapseProperty, decorators: [{
|
|
51
51
|
type: Component,
|
|
52
52
|
args: [{ template: '' }]
|
|
53
53
|
}], propDecorators: { accordion: [{
|
|
@@ -78,15 +78,15 @@ export const XCollapsePanelPrefix = 'x-collapse-panel';
|
|
|
78
78
|
*/
|
|
79
79
|
export class XCollapsePanelProperty extends XProperty {
|
|
80
80
|
}
|
|
81
|
-
/** @nocollapse */ XCollapsePanelProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
82
|
-
/** @nocollapse */ XCollapsePanelProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
81
|
+
/** @nocollapse */ XCollapsePanelProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XCollapsePanelProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
+
/** @nocollapse */ XCollapsePanelProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XCollapsePanelProperty, selector: "ng-component", inputs: { label: "label", active: "active", disabled: "disabled" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
83
83
|
__decorate([
|
|
84
84
|
XInputBoolean()
|
|
85
85
|
], XCollapsePanelProperty.prototype, "active", void 0);
|
|
86
86
|
__decorate([
|
|
87
87
|
XInputBoolean()
|
|
88
88
|
], XCollapsePanelProperty.prototype, "disabled", void 0);
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XCollapsePanelProperty, decorators: [{
|
|
90
90
|
type: Component,
|
|
91
91
|
args: [{ template: '' }]
|
|
92
92
|
}], propDecorators: { label: [{
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { Component, ViewEncapsulation, ChangeDetectionStrategy,
|
|
1
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, inject } from '@angular/core';
|
|
2
2
|
import { DOCUMENT } from '@angular/common';
|
|
3
3
|
import { XColorPrefix, XColorProperty } from './color.property';
|
|
4
|
-
import { toHex, mixColors } from '@ng-nest/ui/core';
|
|
4
|
+
import { toHex, mixColors, XComputed } from '@ng-nest/ui/core';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@ng-nest/ui/core";
|
|
7
7
|
import * as i2 from "@angular/common";
|
|
8
8
|
export class XColorComponent extends XColorProperty {
|
|
9
|
-
constructor(
|
|
9
|
+
constructor(renderer, elementRef, configService) {
|
|
10
10
|
super();
|
|
11
|
-
this.doc = doc;
|
|
12
11
|
this.renderer = renderer;
|
|
13
12
|
this.elementRef = elementRef;
|
|
14
13
|
this.configService = configService;
|
|
15
14
|
this.colors = [];
|
|
15
|
+
this.doc = inject(DOCUMENT);
|
|
16
16
|
this.renderer.addClass(this.elementRef.nativeElement, XColorPrefix);
|
|
17
17
|
}
|
|
18
18
|
ngOnInit() {
|
|
19
19
|
if (!this.hex || this.hex === 'var(--x-primary)')
|
|
20
|
-
this.hex =
|
|
20
|
+
this.hex = XComputed(this.doc.documentElement).getPropertyValue('--x-primary');
|
|
21
21
|
if (this.hex)
|
|
22
22
|
this.setColors();
|
|
23
23
|
}
|
|
@@ -32,13 +32,10 @@ export class XColorComponent extends XColorProperty {
|
|
|
32
32
|
return item;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
/** @nocollapse */ XColorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
36
|
-
/** @nocollapse */ XColorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
35
|
+
/** @nocollapse */ XColorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XColorComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
+
/** @nocollapse */ XColorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XColorComponent, selector: "x-color", usesInheritance: true, ngImport: i0, template: "<div class=\"x-color-box\">\r\n <div class=\"x-color-primary\" [style.background-color]=\"hex\" [class.x-color-only]=\"colors.length === 0\">\r\n <span>{{ label }}</span>\r\n <span class=\"x-color-hex\">{{ hex }}</span>\r\n </div>\r\n <div class=\"x-color-gradual\">\r\n <div class=\"x-color-item\" *ngFor=\"let color of colors; index as i; trackBy: trackByColor\" [style.background-color]=\"color\"></div>\r\n </div>\r\n</div>\r\n", styles: [".x-color{margin:0;padding:0;display:block;color:var(--x-white)}.x-color-primary{padding:1rem;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.x-color-only{border-bottom-left-radius:.125rem;border-bottom-right-radius:.125rem}.x-color-hex{margin-top:.25rem;display:block;font-size:.75rem;opacity:.7}.x-color-gradual{display:flex}.x-color-item{flex:1;height:2.5rem}.x-color-item:first-child{border-bottom-left-radius:.125rem}.x-color-item:last-child{border-bottom-right-radius:.125rem}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XColorComponent, decorators: [{
|
|
38
38
|
type: Component,
|
|
39
39
|
args: [{ selector: 'x-color', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-color-box\">\r\n <div class=\"x-color-primary\" [style.background-color]=\"hex\" [class.x-color-only]=\"colors.length === 0\">\r\n <span>{{ label }}</span>\r\n <span class=\"x-color-hex\">{{ hex }}</span>\r\n </div>\r\n <div class=\"x-color-gradual\">\r\n <div class=\"x-color-item\" *ngFor=\"let color of colors; index as i; trackBy: trackByColor\" [style.background-color]=\"color\"></div>\r\n </div>\r\n</div>\r\n", styles: [".x-color{margin:0;padding:0;display:block;color:var(--x-white)}.x-color-primary{padding:1rem;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.x-color-only{border-bottom-left-radius:.125rem;border-bottom-right-radius:.125rem}.x-color-hex{margin-top:.25rem;display:block;font-size:.75rem;opacity:.7}.x-color-gradual{display:flex}.x-color-item{flex:1;height:2.5rem}.x-color-item:first-child{border-bottom-left-radius:.125rem}.x-color-item:last-child{border-bottom-right-radius:.125rem}\n"] }]
|
|
40
|
-
}], ctorParameters: function () { return [{ type:
|
|
41
|
-
|
|
42
|
-
args: [DOCUMENT]
|
|
43
|
-
}] }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.XConfigService }]; } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY29sb3IvY29sb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY29sb3IvY29sb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBeUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFrQixNQUFNLGtCQUFrQixDQUFDOzs7O0FBU3BFLE1BQU0sT0FBTyxlQUFnQixTQUFRLGNBQWM7SUFHakQsWUFDNEIsR0FBUSxFQUMxQixRQUFtQixFQUNuQixVQUFtQyxFQUNwQyxhQUE2QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUxrQixRQUFHLEdBQUgsR0FBRyxDQUFLO1FBQzFCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDcEMsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBTnRDLFdBQU0sR0FBYSxFQUFFLENBQUM7UUFTcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLGtCQUFrQjtZQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4SSxJQUFJLElBQUksQ0FBQyxHQUFHO1lBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLEtBQUssSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQXdCLEVBQUU7WUFDaEQsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFlLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hGO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFjLEVBQUUsSUFBWTtRQUN2QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OytIQTVCVSxlQUFlLGtCQUloQixRQUFRO21IQUpQLGVBQWUsc0VDWjVCLDhiQVNBOzJGREdhLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0UsU0FBUyxpQkFHSixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNOzswQkFNNUMsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgUmVuZGVyZXIyLCBFbGVtZW50UmVmLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBYQ29sb3JQcmVmaXgsIFhDb2xvclByb3BlcnR5IH0gZnJvbSAnLi9jb2xvci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IHRvSGV4LCBtaXhDb2xvcnMsIFhDb25maWdTZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3gtY29sb3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2xvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3R5bGUvaW5kZXguc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhDb2xvckNvbXBvbmVudCBleHRlbmRzIFhDb2xvclByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb2xvcnM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2M6IGFueSxcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBYQ29sb3JQcmVmaXgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuaGV4IHx8IHRoaXMuaGV4ID09PSAndmFyKC0teC1wcmltYXJ5KScpIHRoaXMuaGV4ID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmRvYy5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJy0teC1wcmltYXJ5Jyk7XHJcbiAgICBpZiAodGhpcy5oZXgpIHRoaXMuc2V0Q29sb3JzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRDb2xvcnMoKSB7XHJcbiAgICBsZXQgY29sb3JzID0gW107XHJcbiAgICBmb3IgKGxldCBhbW91bnQgb2YgdGhpcy5hbW91bnRzIGFzIEFycmF5PG51bWJlcj4pIHtcclxuICAgICAgY29sb3JzLnB1c2godG9IZXgobWl4Q29sb3JzKHRoaXMubWVyZ2UgYXMgc3RyaW5nLCB0aGlzLmhleC50cmltKCksIGFtb3VudCBhcyBudW1iZXIpKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbG9ycyA9IGNvbG9ycztcclxuICB9XHJcblxyXG4gIHRyYWNrQnlDb2xvcihfaW5kZXg6IG51bWJlciwgaXRlbTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIngtY29sb3ItYm94XCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtY29sb3ItcHJpbWFyeVwiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImhleFwiIFtjbGFzcy54LWNvbG9yLW9ubHldPVwiY29sb3JzLmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgPHNwYW4+e3sgbGFiZWwgfX08L3NwYW4+XHJcbiAgICA8c3BhbiBjbGFzcz1cIngtY29sb3ItaGV4XCI+e3sgaGV4IH19PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLWdyYWR1YWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLWl0ZW1cIiAqbmdGb3I9XCJsZXQgY29sb3Igb2YgY29sb3JzOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5Q29sb3JcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJjb2xvclwiPjwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
40
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.XConfigService }]; } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY29sb3IvY29sb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY29sb3IvY29sb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBeUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFrQixTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQVMvRSxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxjQUFjO0lBSWpELFlBQW9CLFFBQW1CLEVBQVUsVUFBbUMsRUFBUyxhQUE2QjtRQUN4SCxLQUFLLEVBQUUsQ0FBQztRQURVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUgxSCxXQUFNLEdBQWEsRUFBRSxDQUFDO1FBQ2QsUUFBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUk3QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssa0JBQWtCO1lBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqSSxJQUFJLElBQUksQ0FBQyxHQUFHO1lBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLEtBQUssSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQXdCLEVBQUU7WUFDaEQsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFlLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hGO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFjLEVBQUUsSUFBWTtRQUN2QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OytIQXhCVSxlQUFlO21IQUFmLGVBQWUsc0VDWjVCLDhiQVNBOzJGREdhLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0UsU0FBUyxpQkFHSixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgUmVuZGVyZXIyLCBFbGVtZW50UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBYQ29sb3JQcmVmaXgsIFhDb2xvclByb3BlcnR5IH0gZnJvbSAnLi9jb2xvci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IHRvSGV4LCBtaXhDb2xvcnMsIFhDb25maWdTZXJ2aWNlLCBYQ29tcHV0ZWQgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAneC1jb2xvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS9pbmRleC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWENvbG9yQ29tcG9uZW50IGV4dGVuZHMgWENvbG9yUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNvbG9yczogc3RyaW5nW10gPSBbXTtcclxuICBwcml2YXRlIGRvYyA9IGluamVjdChET0NVTUVOVCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiwgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgWENvbG9yUHJlZml4KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLmhleCB8fCB0aGlzLmhleCA9PT0gJ3ZhcigtLXgtcHJpbWFyeSknKSB0aGlzLmhleCA9IFhDb21wdXRlZCh0aGlzLmRvYy5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJy0teC1wcmltYXJ5Jyk7XHJcbiAgICBpZiAodGhpcy5oZXgpIHRoaXMuc2V0Q29sb3JzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRDb2xvcnMoKSB7XHJcbiAgICBsZXQgY29sb3JzID0gW107XHJcbiAgICBmb3IgKGxldCBhbW91bnQgb2YgdGhpcy5hbW91bnRzIGFzIEFycmF5PG51bWJlcj4pIHtcclxuICAgICAgY29sb3JzLnB1c2godG9IZXgobWl4Q29sb3JzKHRoaXMubWVyZ2UgYXMgc3RyaW5nLCB0aGlzLmhleC50cmltKCksIGFtb3VudCBhcyBudW1iZXIpKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbG9ycyA9IGNvbG9ycztcclxuICB9XHJcblxyXG4gIHRyYWNrQnlDb2xvcihfaW5kZXg6IG51bWJlciwgaXRlbTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIngtY29sb3ItYm94XCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtY29sb3ItcHJpbWFyeVwiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImhleFwiIFtjbGFzcy54LWNvbG9yLW9ubHldPVwiY29sb3JzLmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgPHNwYW4+e3sgbGFiZWwgfX08L3NwYW4+XHJcbiAgICA8c3BhbiBjbGFzcz1cIngtY29sb3ItaGV4XCI+e3sgaGV4IH19PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLWdyYWR1YWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLWl0ZW1cIiAqbmdGb3I9XCJsZXQgY29sb3Igb2YgY29sb3JzOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5Q29sb3JcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJjb2xvclwiPjwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -5,10 +5,10 @@ import { XColorProperty } from './color.property';
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class XColorModule {
|
|
7
7
|
}
|
|
8
|
-
/** @nocollapse */ XColorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
9
|
-
/** @nocollapse */ XColorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
10
|
-
/** @nocollapse */ XColorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
8
|
+
/** @nocollapse */ XColorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XColorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
/** @nocollapse */ XColorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: XColorModule, declarations: [XColorComponent, XColorProperty], imports: [CommonModule], exports: [XColorComponent] });
|
|
10
|
+
/** @nocollapse */ XColorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XColorModule, imports: [CommonModule] });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XColorModule, decorators: [{
|
|
12
12
|
type: NgModule,
|
|
13
13
|
args: [{
|
|
14
14
|
declarations: [XColorComponent, XColorProperty],
|
|
@@ -28,15 +28,15 @@ export class XColorProperty extends XProperty {
|
|
|
28
28
|
this.hex = 'var(--x-primary)';
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
/** @nocollapse */ XColorProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
32
|
-
/** @nocollapse */ XColorProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
31
|
+
/** @nocollapse */ XColorProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XColorProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
32
|
+
/** @nocollapse */ XColorProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XColorProperty, selector: "ng-component", inputs: { label: "label", hex: "hex", merge: "merge", amounts: "amounts" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
33
33
|
__decorate([
|
|
34
34
|
XWithConfig(X_CONFIG_NAME, '#ffffff')
|
|
35
35
|
], XColorProperty.prototype, "merge", void 0);
|
|
36
36
|
__decorate([
|
|
37
37
|
XWithConfig(X_CONFIG_NAME, XAmounts)
|
|
38
38
|
], XColorProperty.prototype, "amounts", void 0);
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XColorProperty, decorators: [{
|
|
40
40
|
type: Component,
|
|
41
41
|
args: [{ template: '' }]
|
|
42
42
|
}], propDecorators: { label: [{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, ViewChild, HostListener, HostBinding } from '@angular/core';
|
|
2
2
|
import { XColorPickerPortalPrefix } from './color-picker.property';
|
|
3
|
-
import { XIsEmpty, XConnectBaseAnimation } from '@ng-nest/ui/core';
|
|
3
|
+
import { XIsEmpty, XConnectBaseAnimation, XComputed } from '@ng-nest/ui/core';
|
|
4
4
|
import { Subject } from 'rxjs';
|
|
5
5
|
import { DOCUMENT, DecimalPipe, PercentPipe } from '@angular/common';
|
|
6
6
|
import { takeUntil } from 'rxjs/operators';
|
|
@@ -200,7 +200,7 @@ export class XColorPickerPortalComponent {
|
|
|
200
200
|
this.hsla.lp = this.hsla.l === 0 ? '0%' : this.percent.transform(this.hsla.l, '1.0-0');
|
|
201
201
|
}
|
|
202
202
|
getPrimary() {
|
|
203
|
-
return
|
|
203
|
+
return XComputed(this.doc.documentElement).getPropertyValue('--x-primary').trim();
|
|
204
204
|
}
|
|
205
205
|
hueChange() {
|
|
206
206
|
this.setPlateBackground();
|
|
@@ -359,9 +359,9 @@ export class XColorPickerPortalComponent {
|
|
|
359
359
|
return result;
|
|
360
360
|
}
|
|
361
361
|
}
|
|
362
|
-
/** @nocollapse */ XColorPickerPortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
363
|
-
/** @nocollapse */ XColorPickerPortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
364
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
362
|
+
/** @nocollapse */ XColorPickerPortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XColorPickerPortalComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DOCUMENT }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.DecimalPipe }, { token: i1.PercentPipe }], target: i0.ɵɵFactoryTarget.Component });
|
|
363
|
+
/** @nocollapse */ XColorPickerPortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XColorPickerPortalComponent, selector: "x-color-picker-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, providers: [DecimalPipe, PercentPipe], viewQueries: [{ propertyName: "panelRef", first: true, predicate: ["panelRef"], descendants: true, static: true }, { propertyName: "plateRef", first: true, predicate: ["plateRef"], descendants: true, static: true }, { propertyName: "transparentCom", first: true, predicate: ["transparentCom"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"x-color-picker-portal\" tabindex=\"-1\" (click)=\"stopPropagation($event)\">\r\n <div #panelRef class=\"x-color-picker-portal-panel\">\r\n <div #plateRef class=\"x-color-picker-portal-plate\" (click)=\"plateClick($event)\">\r\n <div class=\"x-color-picker-portal-white\"></div>\r\n <div class=\"x-color-picker-portal-black\"></div>\r\n <div\r\n #dragCom\r\n class=\"x-color-picker-portal-cursor\"\r\n [style.left.px]=\"transform.x\"\r\n [style.top.px]=\"transform.y\"\r\n cdkDrag\r\n [cdkDragBoundary]=\"panelRef\"\r\n (cdkDragStarted)=\"started()\"\r\n (cdkDragEnded)=\"ended()\"\r\n (cdkDragMoved)=\"moved($event)\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-tool\">\r\n <div class=\"x-color-picker-portal-operations\">\r\n <!-- <x-button icon=\"fto-edit-2\" onlyIcon></x-button> -->\r\n <div class=\"x-color-picker-portal-selected\">\r\n <div [style.background-color]=\"value\"></div>\r\n </div>\r\n <div class=\"x-color-picker-portal-area\">\r\n <div class=\"x-color-picker-portal-slider\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n [(ngModel)]=\"hsla.h\"\r\n min=\"0\"\r\n max=\"360\"\r\n step=\"1\"\r\n (dragStartEmit)=\"started()\"\r\n (dragEndEmit)=\"ended()\"\r\n (ngModelChange)=\"hueChange()\"\r\n ></x-slider-select>\r\n </div>\r\n <div class=\"x-color-picker-portal-transparent\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n #transparentCom\r\n [(ngModel)]=\"hsla.a\"\r\n min=\"0\"\r\n max=\"1\"\r\n step=\"0.01\"\r\n (dragStarted)=\"started()\"\r\n (dragEnded)=\"ended()\"\r\n (ngModelChange)=\"transparentChange()\"\r\n ></x-slider-select>\r\n <div class=\"x-color-picker-portal-alpha\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-type\">\r\n <x-tabs animated=\"false\" justify=\"center\">\r\n <x-tab label=\"HEX\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [style.width.%]=\"100\" [(ngModel)]=\"hex\" (ngModelChange)=\"hexChange()\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"RGBA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"rgba.r\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.g\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.b\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"HSLA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"hsla.h\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.sp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.lp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n </x-tabs>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-color-picker-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:15rem;overflow:hidden}.x-color-picker-portal:focus{outline:none}.x-color-picker-portal-panel{padding:.375rem;margin:-.375rem}.x-color-picker-portal-plate{width:100%;height:8rem;display:flex;border-radius:var(--x-border-radius);position:relative}.x-color-picker-portal-white,.x-color-picker-portal-black{position:absolute;inset:0}.x-color-picker-portal-white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.x-color-picker-portal-black{background:linear-gradient(0deg,#000,transparent)}.x-color-picker-portal-cursor{position:absolute;width:.75rem;height:.75rem;display:inline-block;border-radius:50%;border:.0625rem solid var(--x-background-100)}.x-color-picker-portal-tool{padding:.4rem}.x-color-picker-portal-operations{display:flex;align-items:center;padding:.4rem 0}.x-color-picker-portal-selected{margin-left:.4rem;width:2rem;height:2rem;border-radius:2rem;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-selected>div{width:2rem;height:2rem;border-radius:2rem}.x-color-picker-portal-area{margin-left:.4rem;position:relative;flex:1}.x-color-picker-portal-area .x-slider-select:hover:not(.x-disabled) .x-slider-select-track{background-color:transparent}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{height:.75rem}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-track>.x-slider-select-process{background-color:transparent}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-drags>.x-slider-select-drag>.x-slider-select-button{border-color:var(--x-border);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}.x-color-picker-portal-slider{position:relative;width:100%}.x-color-picker-portal-slider .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.x-color-picker-portal-transparent{margin-top:.4rem;position:relative;width:100%}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail:after{content:\"\";height:100%;display:block}.x-color-picker-portal-type{height:5rem}.x-color-picker-portal-type .x-tabs .x-tabs-list{display:flex;justify-content:center}.x-color-picker-portal-type-content{padding:.8rem .4rem;display:flex}.x-color-picker-portal-type-content .x-input .x-input-row input{text-align:center}\n"], dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.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: "component", type: i4.XSliderSelectComponent, selector: "x-slider-select" }, { kind: "component", type: i5.XTabsComponent, selector: "x-tabs" }, { kind: "component", type: i5.XTabComponent, selector: "x-tab" }, { kind: "component", type: i6.XInputComponent, selector: "x-input" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
364
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XColorPickerPortalComponent, decorators: [{
|
|
365
365
|
type: Component,
|
|
366
366
|
args: [{ selector: `${XColorPickerPortalPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DecimalPipe, PercentPipe], animations: [XConnectBaseAnimation], template: "<div class=\"x-color-picker-portal\" tabindex=\"-1\" (click)=\"stopPropagation($event)\">\r\n <div #panelRef class=\"x-color-picker-portal-panel\">\r\n <div #plateRef class=\"x-color-picker-portal-plate\" (click)=\"plateClick($event)\">\r\n <div class=\"x-color-picker-portal-white\"></div>\r\n <div class=\"x-color-picker-portal-black\"></div>\r\n <div\r\n #dragCom\r\n class=\"x-color-picker-portal-cursor\"\r\n [style.left.px]=\"transform.x\"\r\n [style.top.px]=\"transform.y\"\r\n cdkDrag\r\n [cdkDragBoundary]=\"panelRef\"\r\n (cdkDragStarted)=\"started()\"\r\n (cdkDragEnded)=\"ended()\"\r\n (cdkDragMoved)=\"moved($event)\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-tool\">\r\n <div class=\"x-color-picker-portal-operations\">\r\n <!-- <x-button icon=\"fto-edit-2\" onlyIcon></x-button> -->\r\n <div class=\"x-color-picker-portal-selected\">\r\n <div [style.background-color]=\"value\"></div>\r\n </div>\r\n <div class=\"x-color-picker-portal-area\">\r\n <div class=\"x-color-picker-portal-slider\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n [(ngModel)]=\"hsla.h\"\r\n min=\"0\"\r\n max=\"360\"\r\n step=\"1\"\r\n (dragStartEmit)=\"started()\"\r\n (dragEndEmit)=\"ended()\"\r\n (ngModelChange)=\"hueChange()\"\r\n ></x-slider-select>\r\n </div>\r\n <div class=\"x-color-picker-portal-transparent\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n #transparentCom\r\n [(ngModel)]=\"hsla.a\"\r\n min=\"0\"\r\n max=\"1\"\r\n step=\"0.01\"\r\n (dragStarted)=\"started()\"\r\n (dragEnded)=\"ended()\"\r\n (ngModelChange)=\"transparentChange()\"\r\n ></x-slider-select>\r\n <div class=\"x-color-picker-portal-alpha\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-type\">\r\n <x-tabs animated=\"false\" justify=\"center\">\r\n <x-tab label=\"HEX\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [style.width.%]=\"100\" [(ngModel)]=\"hex\" (ngModelChange)=\"hexChange()\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"RGBA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"rgba.r\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.g\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.b\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"HSLA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"hsla.h\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.sp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.lp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n </x-tabs>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-color-picker-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:15rem;overflow:hidden}.x-color-picker-portal:focus{outline:none}.x-color-picker-portal-panel{padding:.375rem;margin:-.375rem}.x-color-picker-portal-plate{width:100%;height:8rem;display:flex;border-radius:var(--x-border-radius);position:relative}.x-color-picker-portal-white,.x-color-picker-portal-black{position:absolute;inset:0}.x-color-picker-portal-white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.x-color-picker-portal-black{background:linear-gradient(0deg,#000,transparent)}.x-color-picker-portal-cursor{position:absolute;width:.75rem;height:.75rem;display:inline-block;border-radius:50%;border:.0625rem solid var(--x-background-100)}.x-color-picker-portal-tool{padding:.4rem}.x-color-picker-portal-operations{display:flex;align-items:center;padding:.4rem 0}.x-color-picker-portal-selected{margin-left:.4rem;width:2rem;height:2rem;border-radius:2rem;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-selected>div{width:2rem;height:2rem;border-radius:2rem}.x-color-picker-portal-area{margin-left:.4rem;position:relative;flex:1}.x-color-picker-portal-area .x-slider-select:hover:not(.x-disabled) .x-slider-select-track{background-color:transparent}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{height:.75rem}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-track>.x-slider-select-process{background-color:transparent}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-drags>.x-slider-select-drag>.x-slider-select-button{border-color:var(--x-border);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}.x-color-picker-portal-slider{position:relative;width:100%}.x-color-picker-portal-slider .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.x-color-picker-portal-transparent{margin-top:.4rem;position:relative;width:100%}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail:after{content:\"\";height:100%;display:block}.x-color-picker-portal-type{height:5rem}.x-color-picker-portal-type .x-tabs .x-tabs-list{display:flex;justify-content:center}.x-color-picker-portal-type-content{padding:.8rem .4rem;display:flex}.x-color-picker-portal-type-content .x-input .x-input-row input{text-align:center}\n"] }]
|
|
367
367
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
|
|
@@ -386,4 +386,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImpor
|
|
|
386
386
|
type: ViewChild,
|
|
387
387
|
args: ['transparentCom', { static: true }]
|
|
388
388
|
}] } });
|
|
389
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsTUFBTSxFQU9OLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBYyxNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQXNCLE1BQU0sa0JBQWtCLENBQUM7QUFFdkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBWTNDLE1BQU0sT0FBTywyQkFBMkI7SUFzQ3RDLFlBQ1MsVUFBbUMsRUFDbkMsUUFBbUIsRUFDRCxHQUFRLEVBQzFCLE1BQWMsRUFDZCxHQUFzQixFQUN0QixPQUFvQixFQUNwQixPQUFvQjtRQU5wQixlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ0QsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNwQixZQUFP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aUNBQWlDLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSWxCLFFBQVE7c0JBQWhELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRSxRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1EsY0FBYztzQkFBNUQsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBJbmplY3QsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT25Jbml0LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgTmdab25lLFxyXG4gIFJlbmRlcmVyMixcclxuICBPbkRlc3Ryb3ksXHJcbiAgVmlld0NoaWxkLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBIb3N0QmluZGluZ1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQ29sb3JQaWNrZXJQb3J0YWxQcmVmaXgsIFhDb2xvclR5cGUgfSBmcm9tICcuL2NvbG9yLXBpY2tlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYQ29ubmVjdEJhc2VBbmltYXRpb24sIFhQb3NpdGlvblRvcEJvdHRvbSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYU2xpZGVyU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvc2xpZGVyLXNlbGVjdCc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ2RrRHJhZ01vdmUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgRE9DVU1FTlQsIERlY2ltYWxQaXBlLCBQZXJjZW50UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hDb2xvclBpY2tlclBvcnRhbFByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2xvci1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb2xvci1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtEZWNpbWFsUGlwZSwgUGVyY2VudFBpcGVdLFxyXG4gIGFuaW1hdGlvbnM6IFtYQ29ubmVjdEJhc2VBbmltYXRpb25dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYQ29sb3JQaWNrZXJQb3J0YWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQEhvc3RCaW5kaW5nKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uJykgcHVibGljIHBsYWNlbWVudCE6IFhQb3NpdGlvblRvcEJvdHRvbTtcclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLmRvbmUnLCBbJyRldmVudCddKSBkb25lKGV2ZW50OiB7IHRvU3RhdGU6IGFueSB9KSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyhmYWxzZSk7XHJcbiAgICBldmVudC50b1N0YXRlID09PSAndm9pZCcgJiYgdGhpcy5kZXN0cm95UG9ydGFsKCk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24uc3RhcnQnLCBbJyRldmVudCddKSBzdGFydCgpIHtcclxuICAgIHRoaXMuYW5pbWF0aW5nKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgncGFuZWxSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwYW5lbFJlZiE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ3BsYXRlUmVmJywgeyBzdGF0aWM6IHRydWUgfSkgcGxhdGVSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCd0cmFuc3BhcmVudENvbScsIHsgc3RhdGljOiB0cnVlIH0pIHRyYW5zcGFyZW50Q29tITogWFNsaWRlclNlbGVjdENvbXBvbmVudDtcclxuICB2YWx1ZSE6IHN0cmluZztcclxuICB0cmFuc3BhcmVudFJhaWwhOiBIVE1MRWxlbWVudDtcclxuICB2YWx1ZUNoYW5nZSE6IFN1YmplY3Q8c3RyaW5nPjtcclxuICBwb3NpdGlvbkNoYW5nZSE6IFN1YmplY3Q8YW55PjtcclxuICBjbG9zZVBvcnRhbCE6IEZ1bmN0aW9uO1xyXG4gIGRlc3Ryb3lQb3J0YWwhOiBGdW5jdGlvbjtcclxuICBhbmltYXRpbmchOiBGdW5jdGlvbjtcclxuICBub2RlRW1pdCE6IEZ1bmN0aW9uO1xyXG4gIGlucHV0Q29tITogWElucHV0Q29tcG9uZW50O1xyXG5cclxuICBzbGlkZXJDb2xvck51bSA9IDA7XHJcbiAgdHlwZSE6IFhDb2xvclR5cGU7XHJcbiAgb2Zmc2V0ID0gMDtcclxuICBwYW5lbCE6IERPTVJlY3Q7XHJcbiAgcGxhdGUhOiBET01SZWN0O1xyXG4gIHRyYW5zZm9ybSA9IHsgeDogMCwgeTogMCB9O1xyXG4gIGluaXRUcmFuc2Zvcm0gPSB7IHg6IDAsIHk6IDAgfTtcclxuICBkcmFnID0gZmFsc2U7XHJcblxyXG4gIHJnYmE6IHsgcj86IG51bWJlcjsgZz86IG51bWJlcjsgYj86IG51bWJlcjsgYT86IG51bWJlciB9ID0geyBhOiAxIH07XHJcbiAgaHNsYTogeyBoPzogbnVtYmVyOyBzPzogbnVtYmVyOyBsPzogbnVtYmVyOyBhPzogbnVtYmVyOyBzcD86IHN0cmluZzsgbHA/OiBzdHJpbmcgfSA9IHsgaDogMCwgYTogMSB9O1xyXG4gIGhleCE6IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHB1YmxpYyBkb2M6IGFueSxcclxuICAgIHB1YmxpYyBuZ1pvbmU6IE5nWm9uZSxcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIGRlY2ltYWw6IERlY2ltYWxQaXBlLFxyXG4gICAgcHVibGljIHBlcmNlbnQ6IFBlcmNlbnRQaXBlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4OiBzdHJpbmcpID0+IHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHg7XHJcbiAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucG9zaXRpb25DaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMucGxhY2VtZW50ID0geDtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5wYW5lbCA9IHRoaXMucGFuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHRoaXMucGxhdGUgPSB0aGlzLnBsYXRlUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICB0aGlzLm9mZnNldCA9ICh0aGlzLnBhbmVsLndpZHRoIC0gdGhpcy5wbGF0ZS53aWR0aCkgLyAyO1xyXG4gICAgdGhpcy50cmFuc3BhcmVudFJhaWwgPSB0aGlzLnRyYW5zcGFyZW50Q29tLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcueC1zbGlkZXItc2VsZWN0LXJhaWwgZGl2JykhO1xyXG4gICAgdGhpcy5zZXRUcmFuc2Zvcm0oKTtcclxuICAgIHRoaXMuc2V0UGxhdGVCYWNrZ3JvdW5kKCk7XHJcbiAgICB0aGlzLnNldFJhaWxCYWNrZ3JvdW5kKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBoZXhDaGFuZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5kcmFnIHx8ICEvKF4jWzAtOUEtRl17Nn0kKS9pLnRlc3QodGhpcy5oZXgpKSByZXR1cm47XHJcbiAgICB0aGlzLnJnYmEgPSB0aGlzLmhleFRvUmdiYSh0aGlzLmhleCk7XHJcbiAgICB0aGlzLmhzbGEgPSB0aGlzLnJnYmFUb0hzbGEodGhpcy5yZ2JhKTtcclxuICAgIHRoaXMuc2V0SHNsYVBlcmNlbnQoKTtcclxuICAgIHRoaXMuc2V0VHJhbnNmb3JtKCk7XHJcbiAgICB0aGlzLnNldFBsYXRlQmFja2dyb3VuZCgpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgcmdiYUNoYW5nZSgpIHt9XHJcblxyXG4gIGluaXQoKSB7XHJcbiAgICBpZiAoIVhJc0VtcHR5KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0UHJpbWFyeSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb2xvckNvbnZlcnQoKTtcclxuICB9XHJcblxyXG4gIHN0b3BQcm9wYWdhdGlvbihldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGVmYXVsdCgpIHt9XHJcblxyXG4gIGNvbG9yQ29udmVydCgpIHtcclxuICAgIGlmICgvXiMvLnRlc3QodGhpcy52YWx1ZSkpIHtcclxuICAgICAgdGhpcy5oZXggPSB0aGlzLnZhbHVlO1xyXG4gICAgICB0aGlzLnJnYmEgPSB0aGlzLmhleFRvUmdiYSh0aGlzLmhleCk7XHJcbiAgICAgIHRoaXMuaHNsYSA9IHRoaXMucmdiYVRvSHNsYSh0aGlzLnJnYmEpO1xyXG4gICAgICB0aGlzLnNldEhzbGFQZXJjZW50KCk7XHJcbiAgICAgIHRoaXMudHlwZSA9ICdoZXgnO1xyXG4gICAgfSBlbHNlIGlmICgvcmdiLy50ZXN0KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMucmdiYUNvbnZlcnQodGhpcy52YWx1ZSk7XHJcbiAgICAgIHRoaXMuaGV4ID0gdGhpcy5yZ2JhVG9IZXgodGhpcy5yZ2JhKTtcclxuICAgICAgdGhpcy5oc2xhID0gdGhpcy5yZ2JhVG9Ic2xhKHRoaXMucmdiYSk7XHJcbiAgICAgIHRoaXMuc2V0SHNsYVBlcmNlbnQoKTtcclxuICAgICAgdGhpcy50eXBlID0gJ3JnYmEnO1xyXG4gICAgfSBlbHNlIGlmICgvaHNsLy50ZXN0KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuaHNsYUNvbnZlcnQodGhpcy52YWx1ZSk7XHJcbiAgICAgIHRoaXMucmdiYSA9IHRoaXMuaHNsYVRvUmdiYSh0aGlzLmhzbGEpO1xyXG4gICAgICB0aGlzLmhleCA9IHRoaXMucmdiYVRvSGV4KHRoaXMucmdiYSk7XHJcbiAgICAgIHRoaXMudHlwZSA9ICdoc2xhJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJnYmFDb252ZXJ0KHN0cjogc3RyaW5nKSB7XHJcbiAgICBsZXQgcmdiYSA9IHN0clxyXG4gICAgICAucmVwbGFjZSgvcmdiYT9cXCgvLCAnJylcclxuICAgICAgLnJlcGxhY2UoL3JnYj9cXCgvLCAnJylcclxuICAgICAgLnJlcGxhY2UoL1xcKS8sICcnKVxyXG4gICAgICAucmVwbGFjZSgvW1xccytdL2csICcnKVxyXG4gICAgICAuc3BsaXQoJywnKTtcclxuICAgIGlmIChyZ2JhLmxlbmd0aCA+IDIpIHtcclxuICAgICAgdGhpcy5yZ2JhID0ge1xyXG4gICAgICAgIHI6IE51bWJlcihyZ2JhWzBdKSxcclxuICAgICAgICBnOiBOdW1iZXIocmdiYVsxXSksXHJcbiAgICAgICAgYjogTnVtYmVyKHJnYmFbMl0pLFxyXG4gICAgICAgIGE6IE51bWJlcihyZ2JhLmxlbmd0aCA+IDMgPyByZ2JhWzNdIDogMSlcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhzbGFDb252ZXJ0KHN0cjogc3RyaW5nKSB7XHJcbiAgICBsZXQgaHNsYSA9IHN0clxyXG4gICAgICAucmVwbGFjZSgvaHNsYT9cXCgvLCAnJylcclxuICAgICAgLnJlcGxhY2UoL2hzbD9cXCgvLCAnJylcclxuICAgICAgLnJlcGxhY2UoL1xcKS8sICcnKVxyXG4gICAgICAucmVwbGFjZSgvW1xccytdL2csICcnKVxyXG4gICAgICAuc3BsaXQoJywnKTtcclxuICAgIGlmIChoc2xhLmxlbmd0aCA+IDIpIHtcclxuICAgICAgdGhpcy5oc2xhID0ge1xyXG4gICAgICAgIGg6IE51bWJlcihoc2xhWzBdKSxcclxuICAgICAgICBzOiBOdW1iZXIoaHNsYVsxXS5yZXBsYWNlKCclJywgJycpKSAvIDEwMCxcclxuICAgICAgICBsOiBOdW1iZXIoaHNsYVsyXS5yZXBsYWNlKCclJywgJycpKSAvIDEwMCxcclxuICAgICAgICBhOiBOdW1iZXIoaHNsYS5sZW5ndGggPiAzID8gaHNsYVszXSA6IDEpXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuc2V0SHNsYVBlcmNlbnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBsYXRlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmRyYWcpIHJldHVybjtcclxuICAgIGNvbnN0IHJlY3QgPSB0aGlzLnBsYXRlUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBsZXQgbGVmdCA9IGV2ZW50LmNsaWVudFggLSByZWN0LmxlZnQ7XHJcbiAgICBsZXQgdG9wID0gZXZlbnQuY2xpZW50WSAtIHJlY3QudG9wO1xyXG4gICAgdGhpcy50cmFuc2Zvcm0gPSB7IHg6IGxlZnQgLSB0aGlzLm9mZnNldCwgeTogdG9wIC0gdGhpcy5vZmZzZXQgfTtcclxuICAgIHRoaXMuaW5pdFRyYW5zZm9ybSA9IHsgeDogdGhpcy50cmFuc2Zvcm0ueCwgeTogdGhpcy50cmFuc2Zvcm0ueSB9O1xyXG4gICAgdGhpcy5zZXRMZXRmVG9wKGxlZnQsIHRvcCk7XHJcbiAgfVxyXG5cclxuICBzZXRUcmFuc2Zvcm0oKSB7XHJcbiAgICBsZXQgaHN2ID0gdGhpcy5oc2xUb0hzdih0aGlzLmhzbGEuaCBhcyBudW1iZXIsIHRoaXMuaHNsYS5zIGFzIG51bWJlciwgdGhpcy5oc2xhLmwgYXMgbnVtYmVyKTtcclxuICAgIHRoaXMudHJhbnNmb3JtLnggPSBoc3YucyAqIHRoaXMucGxhdGUud2lkdGggLSB0aGlzLm9mZnNldDtcclxuICAgIHRoaXMudHJhbnNmb3JtLnkgPSAoMSAtIGhzdi52KSAqIHRoaXMucGxhdGUuaGVpZ2h0IC0gdGhpcy5vZmZzZXQ7XHJcbiAgICB0aGlzLmluaXRUcmFuc2Zvcm0gPSB7IHg6IHRoaXMudHJhbnNmb3JtLngsIHk6IHRoaXMudHJhbnNmb3JtLnkgfTtcclxuICB9XHJcblxyXG4gIHN0YXJ0ZWQoKSB7XHJcbiAgICB0aGlzLmRyYWcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZW5kZWQoKSB7XHJcbiAgICB0aGlzLmluaXRUcmFuc2Zvcm0gPSB7IHg6IHRoaXMudHJhbnNmb3JtLngsIHk6IHRoaXMudHJhbnNmb3JtLnkgfTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmRyYWcgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbW92ZWQoZHJhZzogQ2RrRHJhZ01vdmUpIHtcclxuICAgIGNvbnN0IHRyYW5zZm9ybSA9IGRyYWcuc291cmNlLmdldEZyZWVEcmFnUG9zaXRpb24oKTtcclxuICAgIGRyYWcuc291cmNlLnJlc2V0KCk7XHJcbiAgICB0aGlzLnRyYW5zZm9ybSA9IHsgeDogdHJhbnNmb3JtLnggKyB0aGlzLmluaXRUcmFuc2Zvcm0ueCwgeTogdHJhbnNmb3JtLnkgKyB0aGlzLmluaXRUcmFuc2Zvcm0ueSB9O1xyXG4gICAgbGV0IGxlZnQgPSB0aGlzLnRyYW5zZm9ybS54ICsgdGhpcy5vZmZzZXQ7XHJcbiAgICBsZXQgdG9wID0gdGhpcy50cmFuc2Zvcm0ueSArIHRoaXMub2Zmc2V0O1xyXG4gICAgdGhpcy5zZXRMZXRmVG9wKGxlZnQsIHRvcCk7XHJcbiAgfVxyXG5cclxuICBzZXRMZXRmVG9wKGxlZnQ6IG51bWJlciwgdG9wOiBudW1iZXIpIHtcclxuICAgIGxldCBzID0gbGVmdCAvIHRoaXMucGxhdGUud2lkdGg7XHJcbiAgICBsZXQgdiA9IDEgLSB0b3AgLyB0aGlzLnBsYXRlLmhlaWdodDtcclxuICAgIGxldCBsID0gKCgyIC0gcykgKiB2KSAvIDI7XHJcbiAgICBpZiAobCAhPT0gMCkge1xyXG4gICAgICBpZiAobCA9PT0gMSkge1xyXG4gICAgICAgIHMgPSAwO1xyXG4gICAgICB9IGVsc2UgaWYgKGwgPCAwLjUpIHtcclxuICAgICAgICBzID0gKHMgKiB2KSAvIChsICogMik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcyA9IChzICogdikgLyAoMiAtIGwgKiAyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgW3RoaXMuaHNsYS5zLCB0aGlzLmhzbGEubF0gPSBbTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0ocywgJzEuMi0yJykpLCBOdW1iZXIodGhpcy5kZWNpbWFsLnRyYW5zZm9ybShsLCAnMS4yLTInKSldO1xyXG4gICAgdGhpcy5zZXRIc2xhUGVyY2VudCgpO1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnJnYmEsIHRoaXMuaHNsYVRvUmdiYSh0aGlzLmhzbGEpKTtcclxuICAgIHRoaXMuaGV4ID0gdGhpcy5yZ2JhVG9IZXgodGhpcy5yZ2JhKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHNldEhzbGFQZXJjZW50KCkge1xyXG4gICAgdGhpcy5oc2xhLnNwID0gdGhpcy5oc2xhLnMgPT09IDAgPyAnMCUnIDogKHRoaXMucGVyY2VudC50cmFuc2Zvcm0odGhpcy5oc2xhLnMsICcxLjAtMCcpIGFzIHN0cmluZyk7XHJcbiAgICB0aGlzLmhzbGEubHAgPSB0aGlzLmhzbGEubCA9PT0gMCA/ICcwJScgOiAodGhpcy5wZXJjZW50LnRyYW5zZm9ybSh0aGlzLmhzbGEubCwgJzEuMC0wJykgYXMgc3RyaW5nKTtcclxuICB9XHJcblxyXG4gIGdldFByaW1hcnkoKSB7XHJcbiAgICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmRvYy5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJy0teC1wcmltYXJ5JykudHJpbSgpO1xyXG4gIH1cclxuXHJcbiAgaHVlQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5zZXRQbGF0ZUJhY2tncm91bmQoKTtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5yZ2JhLCB0aGlzLmhzbGFUb1JnYmEodGhpcy5oc2xhKSk7XHJcbiAgICB0aGlzLmhleCA9IHRoaXMucmdiYVRvSGV4KHRoaXMucmdiYSk7XHJcbiAgICB0aGlzLnNldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQbGF0ZUJhY2tncm91bmQoKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucGxhdGVSZWYubmF0aXZlRWxlbWVudCwgJ2JhY2tncm91bmQtY29sb3InLCBgaHNsKCR7dGhpcy5oc2xhLmh9LCAxMDAlLCA1MCUpYCk7XHJcbiAgfVxyXG5cclxuICBzZXRSYWlsQmFja2dyb3VuZCgpIHtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXHJcbiAgICAgIHRoaXMudHJhbnNwYXJlbnRSYWlsLFxyXG4gICAgICAnYmFja2dyb3VuZCcsXHJcbiAgICAgIGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoJHt0aGlzLnJnYmEucn0sICR7dGhpcy5yZ2JhLmd9LCAke3RoaXMucmdiYS5ifSwgMCkgMCUsIHJnYmEoJHt0aGlzLnJnYmEucn0sICR7dGhpcy5yZ2JhLmd9LCAke3RoaXMucmdiYS5ifSwgMSkgMTAwJSlgXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdHJhbnNwYXJlbnRDaGFuZ2UoKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMucmdiYSwgdGhpcy5oc2xhVG9SZ2JhKHRoaXMuaHNsYSkpO1xyXG4gICAgdGhpcy5oZXggPSB0aGlzLnJnYmFUb0hleCh0aGlzLnJnYmEpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWUoKSB7XHJcbiAgICB0aGlzLnNldFZhbHVlQnlUeXBlKCk7XHJcbiAgICB0aGlzLnNldFJhaWxCYWNrZ3JvdW5kKCk7XHJcbiAgICB0aGlzLm5vZGVFbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWVCeVR5cGUoKSB7XHJcbiAgICBpZiAodGhpcy50eXBlID09PSAnaGV4Jykge1xyXG4gICAgICB0aGlzLnZhbHVlID0gYCR7dGhpcy5oZXh9YDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAncmdiYScpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IGByZ2JhKCR7dGhpcy5yZ2JhLnJ9LCAke3RoaXMucmdiYS5nfSwgJHt0aGlzLnJnYmEuYn0sICR7dGhpcy5yZ2JhLmF9KWA7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2hzbGEnKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBgaHNsYSgke3RoaXMuaHNsYS5ofSwgJHt0aGlzLmhzbGEuc3B9LCAke3RoaXMuaHNsYS5scH0sICR7dGhpcy5oc2xhLmF9KWA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoc2xhVG9SZ2JhKGhzbGE6IHsgaD86IG51bWJlcjsgcz86IG51bWJlcjsgbD86IG51bWJlcjsgYT86IG51bWJlciB9KSB7XHJcbiAgICBsZXQgciwgZywgYjtcclxuICAgIGxldCBbaCwgcywgbF0gPSBbaHNsYS5oIGFzIG51bWJlciwgaHNsYS5zIGFzIG51bWJlciwgaHNsYS5sIGFzIG51bWJlcl07XHJcbiAgICBpZiAocyA9PSAwKSB7XHJcbiAgICAgIHIgPSBnID0gYiA9IGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgaHVlMnJnYiA9IChwOiBudW1iZXIsIHE6IG51bWJlciwgdDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgaWYgKHQgPCAwKSB0ICs9IDE7XHJcbiAgICAgICAgaWYgKHQgPiAxKSB0IC09IDE7XHJcbiAgICAgICAgaWYgKHQgPCAxIC8gNikgcmV0dXJuIHAgKyAocSAtIHApICogNiAqIHQ7XHJcbiAgICAgICAgaWYgKHQgPCAxIC8gMikgcmV0dXJuIHE7XHJcbiAgICAgICAgaWYgKHQgPCAyIC8gMykgcmV0dXJuIHAgKyAocSAtIHApICogKDIgLyAzIC0gdCkgKiA2O1xyXG4gICAgICAgIHJldHVybiBwO1xyXG4gICAgICB9O1xyXG5cclxuICAgICAgbGV0IHEgPSBsIDwgMC41ID8gbCAqICgxICsgcykgOiBsICsgcyAtIGwgKiBzO1xyXG4gICAgICBsZXQgcCA9IDIgKiBsIC0gcTtcclxuICAgICAgciA9IGh1ZTJyZ2IocCwgcSwgaCAvIDM2MCArIDEgLyAzKTtcclxuICAgICAgZyA9IGh1ZTJyZ2IocCwgcSwgaCAvIDM2MCk7XHJcbiAgICAgIGIgPSBodWUycmdiKHAsIHEsIGggLyAzNjAgLSAxIC8gMyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4geyByOiBNYXRoLnJvdW5kKHIgKiAyNTUpLCBnOiBNYXRoLnJvdW5kKGcgKiAyNTUpLCBiOiBNYXRoLnJvdW5kKGIgKiAyNTUpLCBhOiBOdW1iZXIoaHNsYS5hKSB9O1xyXG4gIH1cclxuXHJcbiAgcmdiYVRvSGV4KHJnYmE6IHsgcj86IG51bWJlcjsgZz86IG51bWJlcjsgYj86IG51bWJlcjsgYT86IG51bWJlciB9KSB7XHJcbiAgICBsZXQgaGV4ID0gW1xyXG4gICAgICAocmdiYS5yIGFzIG51bWJlcikudG9TdHJpbmcoMTYpLFxyXG4gICAgICAocmdiYS5nIGFzIG51bWJlcikudG9TdHJpbmcoMTYpLFxyXG4gICAgICAocmdiYS5iIGFzIG51bWJlcikudG9TdHJpbmcoMTYpLFxyXG4gICAgICBNYXRoLnJvdW5kKDI1NSAqIChyZ2JhLmEgYXMgbnVtYmVyKSkudG9TdHJpbmcoMTYpXHJcbiAgICBdO1xyXG4gICAgaGV4LmZvckVhY2goKHgsIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmIChpbmRleCA9PT0gMyAmJiB4ID09PSAnZmYnKSB7XHJcbiAgICAgICAgaGV4W2luZGV4XSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh4Lmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIGhleFtpbmRleF0gPSAnMCcgKyB4O1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBgIyR7aGV4LmpvaW4oJycpfWA7XHJcbiAgfVxyXG5cclxuICByZ2JhVG9Ic2xhKHJnYmE6IHsgcj86IG51bWJlcjsgZz86IG51bWJlcjsgYj86IG51bWJlcjsgYT86IG51bWJlciB9KSB7XHJcbiAgICBsZXQgW3IsIGcsIGJdID0gWyhyZ2JhLnIgYXMgbnVtYmVyKSAvIDI1NSwgKHJnYmEuZyBhcyBudW1iZXIpIC8gMjU1LCAocmdiYS5iIGFzIG51bWJlcikgLyAyNTVdO1xyXG4gICAgbGV0IFttYXgsIG1pbl0gPSBbTWF0aC5tYXgociwgZywgYiksIE1hdGgubWluKHIsIGcsIGIpXTtcclxuICAgIGxldCBoID0gMDtcclxuICAgIGxldCBzID0gMDtcclxuICAgIGxldCBsID0gKG1heCArIG1pbikgLyAyO1xyXG5cclxuICAgIGlmIChtYXggPT09IG1pbikge1xyXG4gICAgICBoID0gcyA9IDA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgZCA9IG1heCAtIG1pbjtcclxuICAgICAgcyA9IGwgPiAwLjUgPyBkIC8gKDIgLSBtYXggLSBtaW4pIDogZCAvIChtYXggKyBtaW4pO1xyXG4gICAgICBzd2l0Y2ggKG1heCkge1xyXG4gICAgICAgIGNhc2UgcjpcclxuICAgICAgICAgIGggPSAoZyAtIGIpIC8gZCArIChnIDwgYiA/IDYgOiAwKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgZzpcclxuICAgICAgICAgIGggPSAoYiAtIHIpIC8gZCArIDI7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIGI6XHJcbiAgICAgICAgICBoID0gKHIgLSBnKSAvIGQgKyA0O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgaCAvPSA2O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGg6IE1hdGgucm91bmQoaCAqIDM2MCksXHJcbiAgICAgIHM6IE51bWJlcih0aGlzLmRlY2ltYWwudHJhbnNmb3JtKHMsICcxLjItMicpKSxcclxuICAgICAgbDogTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0obCwgJzEuMi0yJykpLFxyXG4gICAgICBhOiBOdW1iZXIocmdiYS5hKVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGhleFRvUmdiYShoZXg6IHN0cmluZykge1xyXG4gICAgbGV0IGhleE51bSA9IGhleC5zdWJzdHJpbmcoMSk7XHJcbiAgICBsZXQgYSA9IDE7XHJcbiAgICBpZiAoaGV4TnVtLmxlbmd0aCA9PT0gOCkge1xyXG4gICAgICBhID0gTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0oTnVtYmVyKCcweCcgKyBoZXhOdW0uc2xpY2UoLTIpKSAvIDI1NSwgJzEuMi0yJykpO1xyXG4gICAgICBoZXhOdW0gPSBoZXhOdW0uc3Vic3RyaW5nKDAsIGhleE51bS5sZW5ndGggLSAyKTtcclxuICAgIH1cclxuICAgIGxldCBudW0gPSBOdW1iZXIoJzB4JyArIChoZXhOdW0ubGVuZ3RoIDwgNiA/IHRoaXMucmVwZWF0TGV0dGVyKGhleE51bSwgMikgOiBoZXhOdW0pKTtcclxuICAgIHJldHVybiB7IHI6IG51bSA+PiAxNiwgZzogKG51bSA+PiA4KSAmIDB4ZmYsIGI6IG51bSAmIDB4ZmYsIGE6IGEgfTtcclxuICB9XHJcblxyXG4gIGhzbFRvSHN2KGg6IG51bWJlciwgczogbnVtYmVyLCBsOiBudW1iZXIpIHtcclxuICAgIGxldCBoSHN2LCBzSHN2LCB2O1xyXG5cclxuICAgIGhIc3YgPSBoO1xyXG5cclxuICAgIGlmIChsID09IDApIHtcclxuICAgICAgc0hzdiA9IDA7XHJcbiAgICAgIHYgPSAwO1xyXG4gICAgfSBlbHNlIGlmIChsID4gMCAmJiBsIDw9IDAuNSkge1xyXG4gICAgICBzSHN2ID0gKDIgKiBzKSAvICgxICsgcyk7XHJcbiAgICAgIHYgPSBsICogKDEgKyBzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNIc3YgPSAoMiAqIHMgLSAyICogcyAqIGwpIC8gKHMgLSBzICogbCArIGwpO1xyXG4gICAgICB2ID0gcyAtIHMgKiBsICsgbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBoOiBoSHN2LFxyXG4gICAgICBzOiBOdW1iZXIodGhpcy5kZWNpbWFsLnRyYW5zZm9ybShzSHN2LCAnMS4yLTInKSksXHJcbiAgICAgIHY6IE51bWJlcih0aGlzLmRlY2ltYWwudHJhbnNmb3JtKHYsICcxLjItMicpKVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHJlcGVhdFdvcmQod29yZDogc3RyaW5nLCBudW06IG51bWJlcikge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW07IGkrKykge1xyXG4gICAgICByZXN1bHQgKz0gd29yZDtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICByZXBlYXRMZXR0ZXIod29yZDogc3RyaW5nLCBudW06IG51bWJlcikge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgZm9yIChsZXQgbGV0dGVyIG9mIHdvcmQpIHtcclxuICAgICAgcmVzdWx0ICs9IHRoaXMucmVwZWF0V29yZChsZXR0ZXIsIG51bSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsXCIgdGFiaW5kZXg9XCItMVwiIChjbGljayk9XCJzdG9wUHJvcGFnYXRpb24oJGV2ZW50KVwiPlxyXG4gIDxkaXYgI3BhbmVsUmVmIGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXBhbmVsXCI+XHJcbiAgICA8ZGl2ICNwbGF0ZVJlZiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC1wbGF0ZVwiIChjbGljayk9XCJwbGF0ZUNsaWNrKCRldmVudClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC13aGl0ZVwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLWJsYWNrXCI+PC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAjZHJhZ0NvbVxyXG4gICAgICAgIGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLWN1cnNvclwiXHJcbiAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwidHJhbnNmb3JtLnhcIlxyXG4gICAgICAgIFtzdHlsZS50b3AucHhdPVwidHJhbnNmb3JtLnlcIlxyXG4gICAgICAgIGNka0RyYWdcclxuICAgICAgICBbY2RrRHJhZ0JvdW5kYXJ5XT1cInBhbmVsUmVmXCJcclxuICAgICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwic3RhcnRlZCgpXCJcclxuICAgICAgICAoY2RrRHJhZ0VuZGVkKT1cImVuZGVkKClcIlxyXG4gICAgICAgIChjZGtEcmFnTW92ZWQpPVwibW92ZWQoJGV2ZW50KVwiXHJcbiAgICAgID48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdG9vbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC1vcGVyYXRpb25zXCI+XHJcbiAgICAgIDwhLS0gPHgtYnV0dG9uIGljb249XCJmdG8tZWRpdC0yXCIgb25seUljb24+PC94LWJ1dHRvbj4gLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtc2VsZWN0ZWRcIj5cclxuICAgICAgICA8ZGl2IFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cInZhbHVlXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLWFyZWFcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXNsaWRlclwiPlxyXG4gICAgICAgICAgPHgtc2xpZGVyLXNlbGVjdFxyXG4gICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCIxMDBcIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImhzbGEuaFwiXHJcbiAgICAgICAgICAgIG1pbj1cIjBcIlxyXG4gICAgICAgICAgICBtYXg9XCIzNjBcIlxyXG4gICAgICAgICAgICBzdGVwPVwiMVwiXHJcbiAgICAgICAgICAgIChkcmFnU3RhcnRFbWl0KT1cInN0YXJ0ZWQoKVwiXHJcbiAgICAgICAgICAgIChkcmFnRW5kRW1pdCk9XCJlbmRlZCgpXCJcclxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiaHVlQ2hhbmdlKClcIlxyXG4gICAgICAgICAgPjwveC1zbGlkZXItc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdHJhbnNwYXJlbnRcIj5cclxuICAgICAgICAgIDx4LXNsaWRlci1zZWxlY3RcclxuICAgICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwiMTAwXCJcclxuICAgICAgICAgICAgI3RyYW5zcGFyZW50Q29tXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaHNsYS5hXCJcclxuICAgICAgICAgICAgbWluPVwiMFwiXHJcbiAgICAgICAgICAgIG1heD1cIjFcIlxyXG4gICAgICAgICAgICBzdGVwPVwiMC4wMVwiXHJcbiAgICAgICAgICAgIChkcmFnU3RhcnRlZCk9XCJzdGFydGVkKClcIlxyXG4gICAgICAgICAgICAoZHJhZ0VuZGVkKT1cImVuZGVkKClcIlxyXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0cmFuc3BhcmVudENoYW5nZSgpXCJcclxuICAgICAgICAgID48L3gtc2xpZGVyLXNlbGVjdD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtYWxwaGFcIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdHlwZVwiPlxyXG4gICAgICA8eC10YWJzIGFuaW1hdGVkPVwiZmFsc2VcIiBqdXN0aWZ5PVwiY2VudGVyXCI+XHJcbiAgICAgICAgPHgtdGFiIGxhYmVsPVwiSEVYXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXR5cGUtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbc3R5bGUud2lkdGguJV09XCIxMDBcIiBbKG5nTW9kZWwpXT1cImhleFwiIChuZ01vZGVsQ2hhbmdlKT1cImhleENoYW5nZSgpXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC94LXRhYj5cclxuICAgICAgICA8eC10YWIgbGFiZWw9XCJSR0JBXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXR5cGUtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cInJnYmEuclwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cInJnYmEuZ1wiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cInJnYmEuYlwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cInJnYmEuYVwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC94LXRhYj5cclxuICAgICAgICA8eC10YWIgbGFiZWw9XCJIU0xBXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXR5cGUtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cImhzbGEuaFwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cImhzbGEuc3BcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwveC1pbnB1dD5cclxuICAgICAgICAgICAgPHgtaW5wdXQgWyhuZ01vZGVsKV09XCJoc2xhLmxwXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwiaHNsYS5hXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3gtdGFiPlxyXG4gICAgICA8L3gtdGFicz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
389
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsTUFBTSxFQU9OLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBYyxNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQXNCLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWxHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQVkzQyxNQUFNLE9BQU8sMkJBQTJCO0lBc0N0QyxZQUNTLFVBQW1DLEVBQ25DLFFBQW1CLEVBQ0QsR0FBUSxFQUMxQixNQUFjLEVBQ2QsR0FBc0IsRUFDdEIsT0FBb0IsRUFDcEIsT0FBb0I7UUFOcEIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNELFFBQUcsR0FBSCxHQUFHLENBQUs7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLFlBQU8sR0FBUCxPQUFPLENBQWE7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WTt1QkFBQyxpQ0FBaUMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJbEIsUUFBUTtzQkFBaEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNFLFFBQVE7c0JBQWhELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDUSxjQUFjO3NCQUE1RCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEluamVjdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBPbkluaXQsXHJcbiAgRWxlbWVudFJlZixcclxuICBOZ1pvbmUsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIE9uRGVzdHJveSxcclxuICBWaWV3Q2hpbGQsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIEhvc3RCaW5kaW5nXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhDb2xvclBpY2tlclBvcnRhbFByZWZpeCwgWENvbG9yVHlwZSB9IGZyb20gJy4vY29sb3ItcGlja2VyLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWElzRW1wdHksIFhDb25uZWN0QmFzZUFuaW1hdGlvbiwgWFBvc2l0aW9uVG9wQm90dG9tLCBYQ29tcHV0ZWQgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWFNsaWRlclNlbGVjdENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3NsaWRlci1zZWxlY3QnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENka0RyYWdNb3ZlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IERPQ1VNRU5ULCBEZWNpbWFsUGlwZSwgUGVyY2VudFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYQ29sb3JQaWNrZXJQb3J0YWxQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbRGVjaW1hbFBpcGUsIFBlcmNlbnRQaXBlXSxcclxuICBhbmltYXRpb25zOiBbWENvbm5lY3RCYXNlQW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWENvbG9yUGlja2VyUG9ydGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBIb3N0QmluZGluZygnQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbicpIHB1YmxpYyBwbGFjZW1lbnQhOiBYUG9zaXRpb25Ub3BCb3R0b207XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5kb25lJywgWyckZXZlbnQnXSkgZG9uZShldmVudDogeyB0b1N0YXRlOiBhbnkgfSkge1xyXG4gICAgdGhpcy5hbmltYXRpbmcoZmFsc2UpO1xyXG4gICAgZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnICYmIHRoaXMuZGVzdHJveVBvcnRhbCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLnN0YXJ0JywgWyckZXZlbnQnXSkgc3RhcnQoKSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyh0cnVlKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3BhbmVsUmVmJywgeyBzdGF0aWM6IHRydWUgfSkgcGFuZWxSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdwbGF0ZVJlZicsIHsgc3RhdGljOiB0cnVlIH0pIHBsYXRlUmVmITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgndHJhbnNwYXJlbnRDb20nLCB7IHN0YXRpYzogdHJ1ZSB9KSB0cmFuc3BhcmVudENvbSE6IFhTbGlkZXJTZWxlY3RDb21wb25lbnQ7XHJcbiAgdmFsdWUhOiBzdHJpbmc7XHJcbiAgdHJhbnNwYXJlbnRSYWlsITogSFRNTEVsZW1lbnQ7XHJcbiAgdmFsdWVDaGFuZ2UhOiBTdWJqZWN0PHN0cmluZz47XHJcbiAgcG9zaXRpb25DaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgY2xvc2VQb3J0YWwhOiBGdW5jdGlvbjtcclxuICBkZXN0cm95UG9ydGFsITogRnVuY3Rpb247XHJcbiAgYW5pbWF0aW5nITogRnVuY3Rpb247XHJcbiAgbm9kZUVtaXQhOiBGdW5jdGlvbjtcclxuICBpbnB1dENvbSE6IFhJbnB1dENvbXBvbmVudDtcclxuXHJcbiAgc2xpZGVyQ29sb3JOdW0gPSAwO1xyXG4gIHR5cGUhOiBYQ29sb3JUeXBlO1xyXG4gIG9mZnNldCA9IDA7XHJcbiAgcGFuZWwhOiBET01SZWN0O1xyXG4gIHBsYXRlITogRE9NUmVjdDtcclxuICB0cmFuc2Zvcm0gPSB7IHg6IDAsIHk6IDAgfTtcclxuICBpbml0VHJhbnNmb3JtID0geyB4OiAwLCB5OiAwIH07XHJcbiAgZHJhZyA9IGZhbHNlO1xyXG5cclxuICByZ2JhOiB7IHI/OiBudW1iZXI7IGc/OiBudW1iZXI7IGI/OiBudW1iZXI7IGE/OiBudW1iZXIgfSA9IHsgYTogMSB9O1xyXG4gIGhzbGE6IHsgaD86IG51bWJlcjsgcz86IG51bWJlcjsgbD86IG51bWJlcjsgYT86IG51bWJlcjsgc3A/OiBzdHJpbmc7IGxwPzogc3RyaW5nIH0gPSB7IGg6IDAsIGE6IDEgfTtcclxuICBoZXghOiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwdWJsaWMgZG9jOiBhbnksXHJcbiAgICBwdWJsaWMgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBkZWNpbWFsOiBEZWNpbWFsUGlwZSxcclxuICAgIHB1YmxpYyBwZXJjZW50OiBQZXJjZW50UGlwZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeDogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB4O1xyXG4gICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnBsYWNlbWVudCA9IHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMucGFuZWwgPSB0aGlzLnBhbmVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICB0aGlzLnBsYXRlID0gdGhpcy5wbGF0ZVJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgdGhpcy5vZmZzZXQgPSAodGhpcy5wYW5lbC53aWR0aCAtIHRoaXMucGxhdGUud2lkdGgpIC8gMjtcclxuICAgIHRoaXMudHJhbnNwYXJlbnRSYWlsID0gdGhpcy50cmFuc3BhcmVudENvbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLngtc2xpZGVyLXNlbGVjdC1yYWlsIGRpdicpITtcclxuICAgIHRoaXMuc2V0VHJhbnNmb3JtKCk7XHJcbiAgICB0aGlzLnNldFBsYXRlQmFja2dyb3VuZCgpO1xyXG4gICAgdGhpcy5zZXRSYWlsQmFja2dyb3VuZCgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgaGV4Q2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMuZHJhZyB8fCAhLyheI1swLTlBLUZdezZ9JCkvaS50ZXN0KHRoaXMuaGV4KSkgcmV0dXJuO1xyXG4gICAgdGhpcy5yZ2JhID0gdGhpcy5oZXhUb1JnYmEodGhpcy5oZXgpO1xyXG4gICAgdGhpcy5oc2xhID0gdGhpcy5yZ2JhVG9Ic2xhKHRoaXMucmdiYSk7XHJcbiAgICB0aGlzLnNldEhzbGFQZXJjZW50KCk7XHJcbiAgICB0aGlzLnNldFRyYW5zZm9ybSgpO1xyXG4gICAgdGhpcy5zZXRQbGF0ZUJhY2tncm91bmQoKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHJnYmFDaGFuZ2UoKSB7fVxyXG5cclxuICBpbml0KCkge1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLnZhbHVlKSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmdldFByaW1hcnkoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY29sb3JDb252ZXJ0KCk7XHJcbiAgfVxyXG5cclxuICBzdG9wUHJvcGFnYXRpb24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHNldERlZmF1bHQoKSB7fVxyXG5cclxuICBjb2xvckNvbnZlcnQoKSB7XHJcbiAgICBpZiAoL14jLy50ZXN0KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuaGV4ID0gdGhpcy52YWx1ZTtcclxuICAgICAgdGhpcy5yZ2JhID0gdGhpcy5oZXhUb1JnYmEodGhpcy5oZXgpO1xyXG4gICAgICB0aGlzLmhzbGEgPSB0aGlzLnJnYmFUb0hzbGEodGhpcy5yZ2JhKTtcclxuICAgICAgdGhpcy5zZXRIc2xhUGVyY2VudCgpO1xyXG4gICAgICB0aGlzLnR5cGUgPSAnaGV4JztcclxuICAgIH0gZWxzZSBpZiAoL3JnYi8udGVzdCh0aGlzLnZhbHVlKSkge1xyXG4gICAgICB0aGlzLnJnYmFDb252ZXJ0KHRoaXMudmFsdWUpO1xyXG4gICAgICB0aGlzLmhleCA9IHRoaXMucmdiYVRvSGV4KHRoaXMucmdiYSk7XHJcbiAgICAgIHRoaXMuaHNsYSA9IHRoaXMucmdiYVRvSHNsYSh0aGlzLnJnYmEpO1xyXG4gICAgICB0aGlzLnNldEhzbGFQZXJjZW50KCk7XHJcbiAgICAgIHRoaXMudHlwZSA9ICdyZ2JhJztcclxuICAgIH0gZWxzZSBpZiAoL2hzbC8udGVzdCh0aGlzLnZhbHVlKSkge1xyXG4gICAgICB0aGlzLmhzbGFDb252ZXJ0KHRoaXMudmFsdWUpO1xyXG4gICAgICB0aGlzLnJnYmEgPSB0aGlzLmhzbGFUb1JnYmEodGhpcy5oc2xhKTtcclxuICAgICAgdGhpcy5oZXggPSB0aGlzLnJnYmFUb0hleCh0aGlzLnJnYmEpO1xyXG4gICAgICB0aGlzLnR5cGUgPSAnaHNsYSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZ2JhQ29udmVydChzdHI6IHN0cmluZykge1xyXG4gICAgbGV0IHJnYmEgPSBzdHJcclxuICAgICAgLnJlcGxhY2UoL3JnYmE/XFwoLywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9yZ2I/XFwoLywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9cXCkvLCAnJylcclxuICAgICAgLnJlcGxhY2UoL1tcXHMrXS9nLCAnJylcclxuICAgICAgLnNwbGl0KCcsJyk7XHJcbiAgICBpZiAocmdiYS5sZW5ndGggPiAyKSB7XHJcbiAgICAgIHRoaXMucmdiYSA9IHtcclxuICAgICAgICByOiBOdW1iZXIocmdiYVswXSksXHJcbiAgICAgICAgZzogTnVtYmVyKHJnYmFbMV0pLFxyXG4gICAgICAgIGI6IE51bWJlcihyZ2JhWzJdKSxcclxuICAgICAgICBhOiBOdW1iZXIocmdiYS5sZW5ndGggPiAzID8gcmdiYVszXSA6IDEpXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoc2xhQ29udmVydChzdHI6IHN0cmluZykge1xyXG4gICAgbGV0IGhzbGEgPSBzdHJcclxuICAgICAgLnJlcGxhY2UoL2hzbGE/XFwoLywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9oc2w/XFwoLywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9cXCkvLCAnJylcclxuICAgICAgLnJlcGxhY2UoL1tcXHMrXS9nLCAnJylcclxuICAgICAgLnNwbGl0KCcsJyk7XHJcbiAgICBpZiAoaHNsYS5sZW5ndGggPiAyKSB7XHJcbiAgICAgIHRoaXMuaHNsYSA9IHtcclxuICAgICAgICBoOiBOdW1iZXIoaHNsYVswXSksXHJcbiAgICAgICAgczogTnVtYmVyKGhzbGFbMV0ucmVwbGFjZSgnJScsICcnKSkgLyAxMDAsXHJcbiAgICAgICAgbDogTnVtYmVyKGhzbGFbMl0ucmVwbGFjZSgnJScsICcnKSkgLyAxMDAsXHJcbiAgICAgICAgYTogTnVtYmVyKGhzbGEubGVuZ3RoID4gMyA/IGhzbGFbM10gOiAxKVxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnNldEhzbGFQZXJjZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwbGF0ZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5kcmFnKSByZXR1cm47XHJcbiAgICBjb25zdCByZWN0ID0gdGhpcy5wbGF0ZVJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgbGV0IGxlZnQgPSBldmVudC5jbGllbnRYIC0gcmVjdC5sZWZ0O1xyXG4gICAgbGV0IHRvcCA9IGV2ZW50LmNsaWVudFkgLSByZWN0LnRvcDtcclxuICAgIHRoaXMudHJhbnNmb3JtID0geyB4OiBsZWZ0IC0gdGhpcy5vZmZzZXQsIHk6IHRvcCAtIHRoaXMub2Zmc2V0IH07XHJcbiAgICB0aGlzLmluaXRUcmFuc2Zvcm0gPSB7IHg6IHRoaXMudHJhbnNmb3JtLngsIHk6IHRoaXMudHJhbnNmb3JtLnkgfTtcclxuICAgIHRoaXMuc2V0TGV0ZlRvcChsZWZ0LCB0b3ApO1xyXG4gIH1cclxuXHJcbiAgc2V0VHJhbnNmb3JtKCkge1xyXG4gICAgbGV0IGhzdiA9IHRoaXMuaHNsVG9Ic3YodGhpcy5oc2xhLmggYXMgbnVtYmVyLCB0aGlzLmhzbGEucyBhcyBudW1iZXIsIHRoaXMuaHNsYS5sIGFzIG51bWJlcik7XHJcbiAgICB0aGlzLnRyYW5zZm9ybS54ID0gaHN2LnMgKiB0aGlzLnBsYXRlLndpZHRoIC0gdGhpcy5vZmZzZXQ7XHJcbiAgICB0aGlzLnRyYW5zZm9ybS55ID0gKDEgLSBoc3YudikgKiB0aGlzLnBsYXRlLmhlaWdodCAtIHRoaXMub2Zmc2V0O1xyXG4gICAgdGhpcy5pbml0VHJhbnNmb3JtID0geyB4OiB0aGlzLnRyYW5zZm9ybS54LCB5OiB0aGlzLnRyYW5zZm9ybS55IH07XHJcbiAgfVxyXG5cclxuICBzdGFydGVkKCkge1xyXG4gICAgdGhpcy5kcmFnID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGVuZGVkKCkge1xyXG4gICAgdGhpcy5pbml0VHJhbnNmb3JtID0geyB4OiB0aGlzLnRyYW5zZm9ybS54LCB5OiB0aGlzLnRyYW5zZm9ybS55IH07XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5kcmFnID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG1vdmVkKGRyYWc6IENka0RyYWdNb3ZlKSB7XHJcbiAgICBjb25zdCB0cmFuc2Zvcm0gPSBkcmFnLnNvdXJjZS5nZXRGcmVlRHJhZ1Bvc2l0aW9uKCk7XHJcbiAgICBkcmFnLnNvdXJjZS5yZXNldCgpO1xyXG4gICAgdGhpcy50cmFuc2Zvcm0gPSB7IHg6IHRyYW5zZm9ybS54ICsgdGhpcy5pbml0VHJhbnNmb3JtLngsIHk6IHRyYW5zZm9ybS55ICsgdGhpcy5pbml0VHJhbnNmb3JtLnkgfTtcclxuICAgIGxldCBsZWZ0ID0gdGhpcy50cmFuc2Zvcm0ueCArIHRoaXMub2Zmc2V0O1xyXG4gICAgbGV0IHRvcCA9IHRoaXMudHJhbnNmb3JtLnkgKyB0aGlzLm9mZnNldDtcclxuICAgIHRoaXMuc2V0TGV0ZlRvcChsZWZ0LCB0b3ApO1xyXG4gIH1cclxuXHJcbiAgc2V0TGV0ZlRvcChsZWZ0OiBudW1iZXIsIHRvcDogbnVtYmVyKSB7XHJcbiAgICBsZXQgcyA9IGxlZnQgLyB0aGlzLnBsYXRlLndpZHRoO1xyXG4gICAgbGV0IHYgPSAxIC0gdG9wIC8gdGhpcy5wbGF0ZS5oZWlnaHQ7XHJcbiAgICBsZXQgbCA9ICgoMiAtIHMpICogdikgLyAyO1xyXG4gICAgaWYgKGwgIT09IDApIHtcclxuICAgICAgaWYgKGwgPT09IDEpIHtcclxuICAgICAgICBzID0gMDtcclxuICAgICAgfSBlbHNlIGlmIChsIDwgMC41KSB7XHJcbiAgICAgICAgcyA9IChzICogdikgLyAobCAqIDIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHMgPSAocyAqIHYpIC8gKDIgLSBsICogMik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFt0aGlzLmhzbGEucywgdGhpcy5oc2xhLmxdID0gW051bWJlcih0aGlzLmRlY2ltYWwudHJhbnNmb3JtKHMsICcxLjItMicpKSwgTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0obCwgJzEuMi0yJykpXTtcclxuICAgIHRoaXMuc2V0SHNsYVBlcmNlbnQoKTtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5yZ2JhLCB0aGlzLmhzbGFUb1JnYmEodGhpcy5oc2xhKSk7XHJcbiAgICB0aGlzLmhleCA9IHRoaXMucmdiYVRvSGV4KHRoaXMucmdiYSk7XHJcbiAgICB0aGlzLnNldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRIc2xhUGVyY2VudCgpIHtcclxuICAgIHRoaXMuaHNsYS5zcCA9IHRoaXMuaHNsYS5zID09PSAwID8gJzAlJyA6ICh0aGlzLnBlcmNlbnQudHJhbnNmb3JtKHRoaXMuaHNsYS5zLCAnMS4wLTAnKSBhcyBzdHJpbmcpO1xyXG4gICAgdGhpcy5oc2xhLmxwID0gdGhpcy5oc2xhLmwgPT09IDAgPyAnMCUnIDogKHRoaXMucGVyY2VudC50cmFuc2Zvcm0odGhpcy5oc2xhLmwsICcxLjAtMCcpIGFzIHN0cmluZyk7XHJcbiAgfVxyXG5cclxuICBnZXRQcmltYXJ5KCkge1xyXG4gICAgcmV0dXJuIFhDb21wdXRlZCh0aGlzLmRvYy5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJy0teC1wcmltYXJ5JykudHJpbSgpO1xyXG4gIH1cclxuXHJcbiAgaHVlQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5zZXRQbGF0ZUJhY2tncm91bmQoKTtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5yZ2JhLCB0aGlzLmhzbGFUb1JnYmEodGhpcy5oc2xhKSk7XHJcbiAgICB0aGlzLmhleCA9IHRoaXMucmdiYVRvSGV4KHRoaXMucmdiYSk7XHJcbiAgICB0aGlzLnNldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQbGF0ZUJhY2tncm91bmQoKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucGxhdGVSZWYubmF0aXZlRWxlbWVudCwgJ2JhY2tncm91bmQtY29sb3InLCBgaHNsKCR7dGhpcy5oc2xhLmh9LCAxMDAlLCA1MCUpYCk7XHJcbiAgfVxyXG5cclxuICBzZXRSYWlsQmFja2dyb3VuZCgpIHtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXHJcbiAgICAgIHRoaXMudHJhbnNwYXJlbnRSYWlsLFxyXG4gICAgICAnYmFja2dyb3VuZCcsXHJcbiAgICAgIGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoJHt0aGlzLnJnYmEucn0sICR7dGhpcy5yZ2JhLmd9LCAke3RoaXMucmdiYS5ifSwgMCkgMCUsIHJnYmEoJHt0aGlzLnJnYmEucn0sICR7dGhpcy5yZ2JhLmd9LCAke3RoaXMucmdiYS5ifSwgMSkgMTAwJSlgXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdHJhbnNwYXJlbnRDaGFuZ2UoKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMucmdiYSwgdGhpcy5oc2xhVG9SZ2JhKHRoaXMuaHNsYSkpO1xyXG4gICAgdGhpcy5oZXggPSB0aGlzLnJnYmFUb0hleCh0aGlzLnJnYmEpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWUoKSB7XHJcbiAgICB0aGlzLnNldFZhbHVlQnlUeXBlKCk7XHJcbiAgICB0aGlzLnNldFJhaWxCYWNrZ3JvdW5kKCk7XHJcbiAgICB0aGlzLm5vZGVFbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWVCeVR5cGUoKSB7XHJcbiAgICBpZiAodGhpcy50eXBlID09PSAnaGV4Jykge1xyXG4gICAgICB0aGlzLnZhbHVlID0gYCR7dGhpcy5oZXh9YDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAncmdiYScpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IGByZ2JhKCR7dGhpcy5yZ2JhLnJ9LCAke3RoaXMucmdiYS5nfSwgJHt0aGlzLnJnYmEuYn0sICR7dGhpcy5yZ2JhLmF9KWA7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2hzbGEnKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBgaHNsYSgke3RoaXMuaHNsYS5ofSwgJHt0aGlzLmhzbGEuc3B9LCAke3RoaXMuaHNsYS5scH0sICR7dGhpcy5oc2xhLmF9KWA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoc2xhVG9SZ2JhKGhzbGE6IHsgaD86IG51bWJlcjsgcz86IG51bWJlcjsgbD86IG51bWJlcjsgYT86IG51bWJlciB9KSB7XHJcbiAgICBsZXQgciwgZywgYjtcclxuICAgIGxldCBbaCwgcywgbF0gPSBbaHNsYS5oIGFzIG51bWJlciwgaHNsYS5zIGFzIG51bWJlciwgaHNsYS5sIGFzIG51bWJlcl07XHJcbiAgICBpZiAocyA9PSAwKSB7XHJcbiAgICAgIHIgPSBnID0gYiA9IGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgaHVlMnJnYiA9IChwOiBudW1iZXIsIHE6IG51bWJlciwgdDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgaWYgKHQgPCAwKSB0ICs9IDE7XHJcbiAgICAgICAgaWYgKHQgPiAxKSB0IC09IDE7XHJcbiAgICAgICAgaWYgKHQgPCAxIC8gNikgcmV0dXJuIHAgKyAocSAtIHApICogNiAqIHQ7XHJcbiAgICAgICAgaWYgKHQgPCAxIC8gMikgcmV0dXJuIHE7XHJcbiAgICAgICAgaWYgKHQgPCAyIC8gMykgcmV0dXJuIHAgKyAocSAtIHApICogKDIgLyAzIC0gdCkgKiA2O1xyXG4gICAgICAgIHJldHVybiBwO1xyXG4gICAgICB9O1xyXG5cclxuICAgICAgbGV0IHEgPSBsIDwgMC41ID8gbCAqICgxICsgcykgOiBsICsgcyAtIGwgKiBzO1xyXG4gICAgICBsZXQgcCA9IDIgKiBsIC0gcTtcclxuICAgICAgciA9IGh1ZTJyZ2IocCwgcSwgaCAvIDM2MCArIDEgLyAzKTtcclxuICAgICAgZyA9IGh1ZTJyZ2IocCwgcSwgaCAvIDM2MCk7XHJcbiAgICAgIGIgPSBodWUycmdiKHAsIHEsIGggLyAzNjAgLSAxIC8gMyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4geyByOiBNYXRoLnJvdW5kKHIgKiAyNTUpLCBnOiBNYXRoLnJvdW5kKGcgKiAyNTUpLCBiOiBNYXRoLnJvdW5kKGIgKiAyNTUpLCBhOiBOdW1iZXIoaHNsYS5hKSB9O1xyXG4gIH1cclxuXHJcbiAgcmdiYVRvSGV4KHJnYmE6IHsgcj86IG51bWJlcjsgZz86IG51bWJlcjsgYj86IG51bWJlcjsgYT86IG51bWJlciB9KSB7XHJcbiAgICBsZXQgaGV4ID0gW1xyXG4gICAgICAocmdiYS5yIGFzIG51bWJlcikudG9TdHJpbmcoMTYpLFxyXG4gICAgICAocmdiYS5nIGFzIG51bWJlcikudG9TdHJpbmcoMTYpLFxyXG4gICAgICAocmdiYS5iIGFzIG51bWJlcikudG9TdHJpbmcoMTYpLFxyXG4gICAgICBNYXRoLnJvdW5kKDI1NSAqIChyZ2JhLmEgYXMgbnVtYmVyKSkudG9TdHJpbmcoMTYpXHJcbiAgICBdO1xyXG4gICAgaGV4LmZvckVhY2goKHgsIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmIChpbmRleCA9PT0gMyAmJiB4ID09PSAnZmYnKSB7XHJcbiAgICAgICAgaGV4W2luZGV4XSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh4Lmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIGhleFtpbmRleF0gPSAnMCcgKyB4O1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBgIyR7aGV4LmpvaW4oJycpfWA7XHJcbiAgfVxyXG5cclxuICByZ2JhVG9Ic2xhKHJnYmE6IHsgcj86IG51bWJlcjsgZz86IG51bWJlcjsgYj86IG51bWJlcjsgYT86IG51bWJlciB9KSB7XHJcbiAgICBsZXQgW3IsIGcsIGJdID0gWyhyZ2JhLnIgYXMgbnVtYmVyKSAvIDI1NSwgKHJnYmEuZyBhcyBudW1iZXIpIC8gMjU1LCAocmdiYS5iIGFzIG51bWJlcikgLyAyNTVdO1xyXG4gICAgbGV0IFttYXgsIG1pbl0gPSBbTWF0aC5tYXgociwgZywgYiksIE1hdGgubWluKHIsIGcsIGIpXTtcclxuICAgIGxldCBoID0gMDtcclxuICAgIGxldCBzID0gMDtcclxuICAgIGxldCBsID0gKG1heCArIG1pbikgLyAyO1xyXG5cclxuICAgIGlmIChtYXggPT09IG1pbikge1xyXG4gICAgICBoID0gcyA9IDA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgZCA9IG1heCAtIG1pbjtcclxuICAgICAgcyA9IGwgPiAwLjUgPyBkIC8gKDIgLSBtYXggLSBtaW4pIDogZCAvIChtYXggKyBtaW4pO1xyXG4gICAgICBzd2l0Y2ggKG1heCkge1xyXG4gICAgICAgIGNhc2UgcjpcclxuICAgICAgICAgIGggPSAoZyAtIGIpIC8gZCArIChnIDwgYiA/IDYgOiAwKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgZzpcclxuICAgICAgICAgIGggPSAoYiAtIHIpIC8gZCArIDI7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIGI6XHJcbiAgICAgICAgICBoID0gKHIgLSBnKSAvIGQgKyA0O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgaCAvPSA2O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGg6IE1hdGgucm91bmQoaCAqIDM2MCksXHJcbiAgICAgIHM6IE51bWJlcih0aGlzLmRlY2ltYWwudHJhbnNmb3JtKHMsICcxLjItMicpKSxcclxuICAgICAgbDogTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0obCwgJzEuMi0yJykpLFxyXG4gICAgICBhOiBOdW1iZXIocmdiYS5hKVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGhleFRvUmdiYShoZXg6IHN0cmluZykge1xyXG4gICAgbGV0IGhleE51bSA9IGhleC5zdWJzdHJpbmcoMSk7XHJcbiAgICBsZXQgYSA9IDE7XHJcbiAgICBpZiAoaGV4TnVtLmxlbmd0aCA9PT0gOCkge1xyXG4gICAgICBhID0gTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0oTnVtYmVyKCcweCcgKyBoZXhOdW0uc2xpY2UoLTIpKSAvIDI1NSwgJzEuMi0yJykpO1xyXG4gICAgICBoZXhOdW0gPSBoZXhOdW0uc3Vic3RyaW5nKDAsIGhleE51bS5sZW5ndGggLSAyKTtcclxuICAgIH1cclxuICAgIGxldCBudW0gPSBOdW1iZXIoJzB4JyArIChoZXhOdW0ubGVuZ3RoIDwgNiA/IHRoaXMucmVwZWF0TGV0dGVyKGhleE51bSwgMikgOiBoZXhOdW0pKTtcclxuICAgIHJldHVybiB7IHI6IG51bSA+PiAxNiwgZzogKG51bSA+PiA4KSAmIDB4ZmYsIGI6IG51bSAmIDB4ZmYsIGE6IGEgfTtcclxuICB9XHJcblxyXG4gIGhzbFRvSHN2KGg6IG51bWJlciwgczogbnVtYmVyLCBsOiBudW1iZXIpIHtcclxuICAgIGxldCBoSHN2LCBzSHN2LCB2O1xyXG5cclxuICAgIGhIc3YgPSBoO1xyXG5cclxuICAgIGlmIChsID09IDApIHtcclxuICAgICAgc0hzdiA9IDA7XHJcbiAgICAgIHYgPSAwO1xyXG4gICAgfSBlbHNlIGlmIChsID4gMCAmJiBsIDw9IDAuNSkge1xyXG4gICAgICBzSHN2ID0gKDIgKiBzKSAvICgxICsgcyk7XHJcbiAgICAgIHYgPSBsICogKDEgKyBzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNIc3YgPSAoMiAqIHMgLSAyICogcyAqIGwpIC8gKHMgLSBzICogbCArIGwpO1xyXG4gICAgICB2ID0gcyAtIHMgKiBsICsgbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBoOiBoSHN2LFxyXG4gICAgICBzOiBOdW1iZXIodGhpcy5kZWNpbWFsLnRyYW5zZm9ybShzSHN2LCAnMS4yLTInKSksXHJcbiAgICAgIHY6IE51bWJlcih0aGlzLmRlY2ltYWwudHJhbnNmb3JtKHYsICcxLjItMicpKVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHJlcGVhdFdvcmQod29yZDogc3RyaW5nLCBudW06IG51bWJlcikge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW07IGkrKykge1xyXG4gICAgICByZXN1bHQgKz0gd29yZDtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICByZXBlYXRMZXR0ZXIod29yZDogc3RyaW5nLCBudW06IG51bWJlcikge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgZm9yIChsZXQgbGV0dGVyIG9mIHdvcmQpIHtcclxuICAgICAgcmVzdWx0ICs9IHRoaXMucmVwZWF0V29yZChsZXR0ZXIsIG51bSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsXCIgdGFiaW5kZXg9XCItMVwiIChjbGljayk9XCJzdG9wUHJvcGFnYXRpb24oJGV2ZW50KVwiPlxyXG4gIDxkaXYgI3BhbmVsUmVmIGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXBhbmVsXCI+XHJcbiAgICA8ZGl2ICNwbGF0ZVJlZiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC1wbGF0ZVwiIChjbGljayk9XCJwbGF0ZUNsaWNrKCRldmVudClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC13aGl0ZVwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLWJsYWNrXCI+PC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAjZHJhZ0NvbVxyXG4gICAgICAgIGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLWN1cnNvclwiXHJcbiAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwidHJhbnNmb3JtLnhcIlxyXG4gICAgICAgIFtzdHlsZS50b3AucHhdPVwidHJhbnNmb3JtLnlcIlxyXG4gICAgICAgIGNka0RyYWdcclxuICAgICAgICBbY2RrRHJhZ0JvdW5kYXJ5XT1cInBhbmVsUmVmXCJcclxuICAgICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwic3RhcnRlZCgpXCJcclxuICAgICAgICAoY2RrRHJhZ0VuZGVkKT1cImVuZGVkKClcIlxyXG4gICAgICAgIChjZGtEcmFnTW92ZWQpPVwibW92ZWQoJGV2ZW50KVwiXHJcbiAgICAgID48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdG9vbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC1vcGVyYXRpb25zXCI+XHJcbiAgICAgIDwhLS0gPHgtYnV0dG9uIGljb249XCJmdG8tZWRpdC0yXCIgb25seUljb24+PC94LWJ1dHRvbj4gLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtc2VsZWN0ZWRcIj5cclxuICAgICAgICA8ZGl2IFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cInZhbHVlXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLWFyZWFcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXNsaWRlclwiPlxyXG4gICAgICAgICAgPHgtc2xpZGVyLXNlbGVjdFxyXG4gICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCIxMDBcIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImhzbGEuaFwiXHJcbiAgICAgICAgICAgIG1pbj1cIjBcIlxyXG4gICAgICAgICAgICBtYXg9XCIzNjBcIlxyXG4gICAgICAgICAgICBzdGVwPVwiMVwiXHJcbiAgICAgICAgICAgIChkcmFnU3RhcnRFbWl0KT1cInN0YXJ0ZWQoKVwiXHJcbiAgICAgICAgICAgIChkcmFnRW5kRW1pdCk9XCJlbmRlZCgpXCJcclxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiaHVlQ2hhbmdlKClcIlxyXG4gICAgICAgICAgPjwveC1zbGlkZXItc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdHJhbnNwYXJlbnRcIj5cclxuICAgICAgICAgIDx4LXNsaWRlci1zZWxlY3RcclxuICAgICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwiMTAwXCJcclxuICAgICAgICAgICAgI3RyYW5zcGFyZW50Q29tXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaHNsYS5hXCJcclxuICAgICAgICAgICAgbWluPVwiMFwiXHJcbiAgICAgICAgICAgIG1heD1cIjFcIlxyXG4gICAgICAgICAgICBzdGVwPVwiMC4wMVwiXHJcbiAgICAgICAgICAgIChkcmFnU3RhcnRlZCk9XCJzdGFydGVkKClcIlxyXG4gICAgICAgICAgICAoZHJhZ0VuZGVkKT1cImVuZGVkKClcIlxyXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0cmFuc3BhcmVudENoYW5nZSgpXCJcclxuICAgICAgICAgID48L3gtc2xpZGVyLXNlbGVjdD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtYWxwaGFcIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdHlwZVwiPlxyXG4gICAgICA8eC10YWJzIGFuaW1hdGVkPVwiZmFsc2VcIiBqdXN0aWZ5PVwiY2VudGVyXCI+XHJcbiAgICAgICAgPHgtdGFiIGxhYmVsPVwiSEVYXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXR5cGUtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbc3R5bGUud2lkdGguJV09XCIxMDBcIiBbKG5nTW9kZWwpXT1cImhleFwiIChuZ01vZGVsQ2hhbmdlKT1cImhleENoYW5nZSgpXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC94LXRhYj5cclxuICAgICAgICA8eC10YWIgbGFiZWw9XCJSR0JBXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXR5cGUtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cInJnYmEuclwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cInJnYmEuZ1wiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cInJnYmEuYlwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cInJnYmEuYVwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC94LXRhYj5cclxuICAgICAgICA8eC10YWIgbGFiZWw9XCJIU0xBXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXR5cGUtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cImhzbGEuaFwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cImhzbGEuc3BcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwveC1pbnB1dD5cclxuICAgICAgICAgICAgPHgtaW5wdXQgWyhuZ01vZGVsKV09XCJoc2xhLmxwXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwiaHNsYS5hXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3gtdGFiPlxyXG4gICAgICA8L3gtdGFicz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -194,9 +194,9 @@ export class XColorPickerComponent extends XColorPickerProperty {
|
|
|
194
194
|
this.cdr.detectChanges();
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
|
-
/** @nocollapse */ XColorPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
198
|
-
/** @nocollapse */ XColorPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
199
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
197
|
+
/** @nocollapse */ XColorPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XColorPickerComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.XPortalService }, { token: i0.ViewContainerRef }, { token: i2.Overlay }], target: i0.ɵɵFactoryTarget.Component });
|
|
198
|
+
/** @nocollapse */ XColorPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XColorPickerComponent, selector: "x-color-picker", providers: [XValueAccessor(XColorPickerComponent)], viewQueries: [{ propertyName: "colorPicker", first: true, predicate: ["colorPicker"], descendants: true, static: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div #colorPicker class=\"x-color-picker\">\r\n <div class=\"x-color-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [inputStyle]=\"inputStyle\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-color-picker{display:inline-block;width:12rem}.x-color-picker{margin:0;padding:0;width:100%}.x-color-picker x-input{width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
199
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XColorPickerComponent, decorators: [{
|
|
200
200
|
type: Component,
|
|
201
201
|
args: [{ selector: 'x-color-picker', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XColorPickerComponent)], template: "<div #colorPicker class=\"x-color-picker\">\r\n <div class=\"x-color-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [inputStyle]=\"inputStyle\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-color-picker{display:inline-block;width:12rem}.x-color-picker{margin:0;padding:0;width:100%}.x-color-picker x-input{width:100%}\n"] }]
|
|
202
202
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i1.XPortalService }, { type: i0.ViewContainerRef }, { type: i2.Overlay }]; }, propDecorators: { colorPicker: [{
|
|
@@ -13,8 +13,8 @@ import { XBaseFormModule } from '@ng-nest/ui/base-form';
|
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
export class XColorPickerModule {
|
|
15
15
|
}
|
|
16
|
-
/** @nocollapse */ XColorPickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
17
|
-
/** @nocollapse */ XColorPickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
16
|
+
/** @nocollapse */ XColorPickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XColorPickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
17
|
+
/** @nocollapse */ XColorPickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: XColorPickerModule, declarations: [XColorPickerComponent, XColorPickerPortalComponent, XColorPickerProperty], imports: [CommonModule,
|
|
18
18
|
FormsModule,
|
|
19
19
|
ReactiveFormsModule,
|
|
20
20
|
DragDropModule,
|
|
@@ -23,7 +23,7 @@ export class XColorPickerModule {
|
|
|
23
23
|
XTabsModule,
|
|
24
24
|
XInputModule,
|
|
25
25
|
XBaseFormModule], exports: [XColorPickerComponent, XColorPickerPortalComponent] });
|
|
26
|
-
/** @nocollapse */ XColorPickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
26
|
+
/** @nocollapse */ XColorPickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XColorPickerModule, imports: [CommonModule,
|
|
27
27
|
FormsModule,
|
|
28
28
|
ReactiveFormsModule,
|
|
29
29
|
DragDropModule,
|
|
@@ -32,7 +32,7 @@ export class XColorPickerModule {
|
|
|
32
32
|
XTabsModule,
|
|
33
33
|
XInputModule,
|
|
34
34
|
XBaseFormModule] });
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XColorPickerModule, decorators: [{
|
|
36
36
|
type: NgModule,
|
|
37
37
|
args: [{
|
|
38
38
|
declarations: [XColorPickerComponent, XColorPickerPortalComponent, XColorPickerProperty],
|
|
@@ -15,8 +15,8 @@ const X_CONFIG_NAME = 'colorPicker';
|
|
|
15
15
|
*/
|
|
16
16
|
export class XColorPickerProperty extends XControlValueAccessor {
|
|
17
17
|
}
|
|
18
|
-
/** @nocollapse */ XColorPickerProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
19
|
-
/** @nocollapse */ XColorPickerProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
18
|
+
/** @nocollapse */ XColorPickerProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XColorPickerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
19
|
+
/** @nocollapse */ XColorPickerProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XColorPickerProperty, selector: "ng-component", inputs: { placement: "placement", size: "size", bordered: "bordered" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
20
20
|
__decorate([
|
|
21
21
|
XWithConfig(X_CONFIG_NAME, 'bottom-start')
|
|
22
22
|
], XColorPickerProperty.prototype, "placement", void 0);
|
|
@@ -27,7 +27,7 @@ __decorate([
|
|
|
27
27
|
XInputBoolean(),
|
|
28
28
|
XWithConfig(X_CONFIG_NAME, true)
|
|
29
29
|
], XColorPickerProperty.prototype, "bordered", void 0);
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XColorPickerProperty, decorators: [{
|
|
31
31
|
type: Component,
|
|
32
32
|
args: [{ template: '' }]
|
|
33
33
|
}], propDecorators: { placement: [{
|