@ng-nest/ui 15.0.18 → 15.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/anchor/anchor.component.d.ts +1 -1
- package/avatar/avatar.component.d.ts +1 -1
- package/back-top/back-top.component.d.ts +5 -3
- package/button/button.component.d.ts +2 -0
- package/color/color.component.d.ts +2 -2
- package/core/config/config.service.d.ts +4 -3
- package/core/functions/resize.d.ts +4 -2
- package/core/services/storage.service.d.ts +3 -1
- package/core/theme/theme.service.d.ts +2 -2
- package/core/util/computed-style.d.ts +2 -1
- package/core/util/index.d.ts +1 -0
- package/esm2020/affix/affix.component.mjs +3 -3
- package/esm2020/affix/affix.module.mjs +4 -4
- package/esm2020/affix/affix.property.mjs +3 -3
- package/esm2020/alert/alert.component.mjs +3 -3
- package/esm2020/alert/alert.module.mjs +4 -4
- package/esm2020/alert/alert.property.mjs +3 -3
- package/esm2020/anchor/anchor-inner.component.mjs +3 -3
- package/esm2020/anchor/anchor.component.mjs +16 -19
- package/esm2020/anchor/anchor.module.mjs +4 -4
- package/esm2020/anchor/anchor.property.mjs +6 -6
- package/esm2020/api/api.component.mjs +3 -3
- package/esm2020/api/api.module.mjs +4 -4
- package/esm2020/auto-complete/auto-complete-portal.component.mjs +3 -3
- package/esm2020/auto-complete/auto-complete.component.mjs +3 -3
- package/esm2020/auto-complete/auto-complete.module.mjs +4 -4
- package/esm2020/auto-complete/auto-complete.property.mjs +3 -3
- package/esm2020/avatar/avatar-group.component.mjs +3 -3
- package/esm2020/avatar/avatar.component.mjs +8 -11
- package/esm2020/avatar/avatar.module.mjs +4 -4
- package/esm2020/avatar/avatar.property.mjs +6 -6
- package/esm2020/back-top/back-top.component.mjs +17 -16
- package/esm2020/back-top/back-top.module.mjs +4 -4
- package/esm2020/back-top/back-top.property.mjs +3 -3
- package/esm2020/badge/badge.component.mjs +3 -3
- package/esm2020/badge/badge.module.mjs +4 -4
- package/esm2020/badge/badge.property.mjs +3 -3
- package/esm2020/base-form/base-form.component.mjs +3 -3
- package/esm2020/base-form/base-form.module.mjs +4 -4
- package/esm2020/base-form/base-form.property.mjs +3 -3
- package/esm2020/border/border.component.mjs +3 -3
- package/esm2020/border/border.module.mjs +4 -4
- package/esm2020/button/button.component.mjs +22 -10
- package/esm2020/button/button.module.mjs +4 -4
- package/esm2020/button/button.property.mjs +6 -6
- package/esm2020/button/buttons.component.mjs +3 -3
- package/esm2020/calendar/calendar.component.mjs +3 -3
- package/esm2020/calendar/calendar.module.mjs +4 -4
- package/esm2020/calendar/calendar.property.mjs +3 -3
- package/esm2020/card/card.component.mjs +3 -3
- package/esm2020/card/card.module.mjs +4 -4
- package/esm2020/card/card.property.mjs +3 -3
- package/esm2020/carousel/carousel-panel.component.mjs +3 -3
- package/esm2020/carousel/carousel.component.mjs +4 -4
- package/esm2020/carousel/carousel.module.mjs +4 -4
- package/esm2020/carousel/carousel.property.mjs +6 -6
- package/esm2020/cascade/cascade-portal.component.mjs +3 -3
- package/esm2020/cascade/cascade.component.mjs +3 -3
- package/esm2020/cascade/cascade.module.mjs +4 -4
- package/esm2020/cascade/cascade.property.mjs +3 -3
- package/esm2020/checkbox/checkbox.component.mjs +3 -3
- package/esm2020/checkbox/checkbox.module.mjs +4 -4
- package/esm2020/checkbox/checkbox.property.mjs +3 -3
- package/esm2020/collapse/collapse-panel.component.mjs +3 -3
- package/esm2020/collapse/collapse.component.mjs +3 -3
- package/esm2020/collapse/collapse.module.mjs +4 -4
- package/esm2020/collapse/collapse.property.mjs +6 -6
- package/esm2020/color/color.component.mjs +10 -13
- package/esm2020/color/color.module.mjs +4 -4
- package/esm2020/color/color.property.mjs +3 -3
- package/esm2020/color-picker/color-picker-portal.component.mjs +6 -6
- package/esm2020/color-picker/color-picker.component.mjs +3 -3
- package/esm2020/color-picker/color-picker.module.mjs +4 -4
- package/esm2020/color-picker/color-picker.property.mjs +3 -3
- package/esm2020/comment/comment-reply.component.mjs +3 -3
- package/esm2020/comment/comment.component.mjs +3 -3
- package/esm2020/comment/comment.module.mjs +4 -4
- package/esm2020/comment/comment.property.mjs +6 -6
- package/esm2020/container/aside.component.mjs +3 -3
- package/esm2020/container/container.component.mjs +3 -3
- package/esm2020/container/container.module.mjs +4 -4
- package/esm2020/container/container.property.mjs +12 -12
- package/esm2020/container/footer.component.mjs +3 -3
- package/esm2020/container/header.component.mjs +3 -3
- package/esm2020/container/main.component.mjs +3 -3
- package/esm2020/core/config/config.service.mjs +11 -20
- package/esm2020/core/functions/resize.mjs +4 -1
- package/esm2020/core/services/http.service.mjs +3 -3
- package/esm2020/core/services/preloading-strategy.service.mjs +3 -3
- package/esm2020/core/services/storage.service.mjs +45 -12
- package/esm2020/core/theme/theme.service.mjs +10 -12
- package/esm2020/core/util/computed-style.mjs +9 -3
- package/esm2020/core/util/index.mjs +2 -0
- package/esm2020/crumb/crumb.component.mjs +3 -3
- package/esm2020/crumb/crumb.module.mjs +4 -4
- package/esm2020/crumb/crumb.property.mjs +3 -3
- package/esm2020/date-picker/date-picker-portal.component.mjs +3 -3
- package/esm2020/date-picker/date-picker.component.mjs +3 -3
- package/esm2020/date-picker/date-picker.module.mjs +4 -4
- package/esm2020/date-picker/date-picker.property.mjs +18 -18
- package/esm2020/date-picker/date-quarter.pipe.mjs +3 -3
- package/esm2020/date-picker/date-range-portal.component.mjs +3 -3
- package/esm2020/date-picker/date-range.component.mjs +3 -3
- package/esm2020/date-picker/picker-date.component.mjs +3 -3
- package/esm2020/date-picker/picker-month.component.mjs +3 -3
- package/esm2020/date-picker/picker-quarter.component.mjs +3 -3
- package/esm2020/date-picker/picker-year.component.mjs +3 -3
- package/esm2020/description/description-item.component.mjs +3 -3
- package/esm2020/description/description.component.mjs +3 -3
- package/esm2020/description/description.module.mjs +4 -4
- package/esm2020/description/description.property.mjs +6 -6
- package/esm2020/dialog/dialog-container.component.mjs +3 -3
- package/esm2020/dialog/dialog-portal.component.mjs +3 -3
- package/esm2020/dialog/dialog-portal.directives.mjs +18 -18
- package/esm2020/dialog/dialog.component.mjs +3 -3
- package/esm2020/dialog/dialog.module.mjs +4 -4
- package/esm2020/dialog/dialog.property.mjs +6 -6
- package/esm2020/dialog/dialog.service.mjs +3 -3
- package/esm2020/doc/doc.component.mjs +3 -3
- package/esm2020/doc/doc.module.mjs +4 -4
- package/esm2020/drawer/drawer-container.component.mjs +3 -3
- package/esm2020/drawer/drawer-portal.component.mjs +3 -3
- package/esm2020/drawer/drawer-portal.directives.mjs +9 -9
- package/esm2020/drawer/drawer.component.mjs +3 -3
- package/esm2020/drawer/drawer.module.mjs +4 -4
- package/esm2020/drawer/drawer.property.mjs +6 -6
- package/esm2020/drawer/drawer.service.mjs +3 -3
- package/esm2020/dropdown/dropdown-portal.component.mjs +3 -3
- package/esm2020/dropdown/dropdown.component.mjs +3 -3
- package/esm2020/dropdown/dropdown.module.mjs +4 -4
- package/esm2020/dropdown/dropdown.property.mjs +3 -3
- package/esm2020/empty/empty.component.mjs +3 -3
- package/esm2020/empty/empty.module.mjs +4 -4
- package/esm2020/empty/empty.property.mjs +3 -3
- package/esm2020/examples/examples.component.mjs +3 -3
- package/esm2020/examples/examples.module.mjs +4 -4
- package/esm2020/find/find.component.mjs +4 -4
- package/esm2020/find/find.module.mjs +4 -4
- package/esm2020/find/find.property.mjs +3 -3
- package/esm2020/form/control.component.mjs +3 -3
- package/esm2020/form/form.component.mjs +3 -3
- package/esm2020/form/form.module.mjs +4 -4
- package/esm2020/form/form.property.mjs +6 -6
- package/esm2020/highlight/highlight.component.mjs +9 -8
- package/esm2020/highlight/highlight.module.mjs +4 -4
- package/esm2020/highlight/highlight.property.mjs +3 -3
- package/esm2020/i18n/i18n.directive.mjs +3 -3
- package/esm2020/i18n/i18n.module.mjs +4 -4
- package/esm2020/i18n/i18n.pipe.mjs +3 -3
- package/esm2020/i18n/i18n.property.mjs +1 -1
- package/esm2020/i18n/i18n.service.mjs +3 -3
- package/esm2020/i18n/languages/en_GB.mjs +5 -2
- package/esm2020/i18n/languages/en_US.mjs +5 -2
- package/esm2020/i18n/languages/zh_CN.mjs +5 -2
- package/esm2020/i18n/languages/zh_TW.mjs +5 -2
- package/esm2020/icon/icon.component.mjs +9 -14
- package/esm2020/icon/icon.module.mjs +4 -4
- package/esm2020/icon/icon.property.mjs +3 -3
- package/esm2020/icon/icon.service.mjs +3 -3
- package/esm2020/image/image-group.component.mjs +3 -3
- package/esm2020/image/image-preview.component.mjs +14 -10
- package/esm2020/image/image.component.mjs +3 -3
- package/esm2020/image/image.module.mjs +4 -4
- package/esm2020/image/image.property.mjs +6 -6
- package/esm2020/inner/inner.component.mjs +3 -3
- package/esm2020/inner/inner.module.mjs +4 -4
- package/esm2020/inner/inner.property.mjs +3 -3
- package/esm2020/input/input-group.component.mjs +3 -3
- package/esm2020/input/input.component.mjs +3 -3
- package/esm2020/input/input.module.mjs +4 -4
- package/esm2020/input/input.property.mjs +6 -6
- package/esm2020/input-number/input-number.component.mjs +3 -3
- package/esm2020/input-number/input-number.module.mjs +4 -4
- package/esm2020/input-number/input-number.property.mjs +3 -3
- package/esm2020/keyword/keyword.directive.mjs +3 -3
- package/esm2020/keyword/keyword.module.mjs +4 -4
- package/esm2020/keyword/keyword.property.mjs +3 -3
- package/esm2020/layout/col.component.mjs +3 -3
- package/esm2020/layout/layout.module.mjs +4 -4
- package/esm2020/layout/layout.property.mjs +6 -6
- package/esm2020/layout/row.component.mjs +3 -3
- package/esm2020/link/link.component.mjs +3 -3
- package/esm2020/link/link.module.mjs +4 -4
- package/esm2020/link/link.property.mjs +3 -3
- package/esm2020/list/list-drop-group.directive.mjs +3 -3
- package/esm2020/list/list-option.component.mjs +3 -3
- package/esm2020/list/list.component.mjs +5 -5
- package/esm2020/list/list.module.mjs +4 -4
- package/esm2020/list/list.property.mjs +6 -6
- package/esm2020/loading/loading.component.mjs +3 -3
- package/esm2020/loading/loading.module.mjs +4 -4
- package/esm2020/loading/loading.property.mjs +3 -3
- package/esm2020/menu/menu-node.component.mjs +3 -3
- package/esm2020/menu/menu.component.mjs +12 -12
- package/esm2020/menu/menu.module.mjs +4 -4
- package/esm2020/menu/menu.property.mjs +6 -6
- package/esm2020/message/message.component.mjs +3 -3
- package/esm2020/message/message.module.mjs +4 -4
- package/esm2020/message/message.service.mjs +3 -3
- package/esm2020/message-box/message-box.component.mjs +3 -3
- package/esm2020/message-box/message-box.module.mjs +4 -4
- package/esm2020/message-box/message-box.service.mjs +3 -3
- package/esm2020/notification/notification.component.mjs +3 -3
- package/esm2020/notification/notification.module.mjs +4 -4
- package/esm2020/notification/notification.service.mjs +3 -3
- package/esm2020/outlet/outlet.directive.mjs +3 -3
- package/esm2020/outlet/outlet.module.mjs +4 -4
- package/esm2020/page-header/page-header.component.mjs +3 -3
- package/esm2020/page-header/page-header.module.mjs +4 -4
- package/esm2020/page-header/page-header.property.mjs +3 -3
- package/esm2020/pagination/pagination.component.mjs +3 -3
- package/esm2020/pagination/pagination.module.mjs +4 -4
- package/esm2020/pagination/pagination.property.mjs +3 -3
- package/esm2020/pattern/pattern.component.mjs +3 -3
- package/esm2020/pattern/pattern.module.mjs +4 -4
- package/esm2020/popconfirm/popconfirm.component.mjs +3 -3
- package/esm2020/popconfirm/popconfirm.module.mjs +4 -4
- package/esm2020/popconfirm/popconfirm.property.mjs +3 -3
- package/esm2020/popover/popover-portal.component.mjs +3 -3
- package/esm2020/popover/popover.directive.mjs +3 -3
- package/esm2020/popover/popover.module.mjs +4 -4
- package/esm2020/popover/popover.property.mjs +3 -3
- package/esm2020/portal/portal.module.mjs +4 -4
- package/esm2020/portal/portal.service.mjs +6 -5
- package/esm2020/progress/progress.component.mjs +3 -3
- package/esm2020/progress/progress.module.mjs +4 -4
- package/esm2020/progress/progress.property.mjs +3 -3
- package/esm2020/radio/radio.component.mjs +3 -3
- package/esm2020/radio/radio.module.mjs +4 -4
- package/esm2020/radio/radio.property.mjs +3 -3
- package/esm2020/rate/rate.component.mjs +3 -3
- package/esm2020/rate/rate.module.mjs +4 -4
- package/esm2020/rate/rate.property.mjs +3 -3
- package/esm2020/resizable/resizable.directive.mjs +10 -13
- package/esm2020/resizable/resizable.module.mjs +4 -4
- package/esm2020/resizable/resizable.property.mjs +3 -3
- package/esm2020/result/result.component.mjs +3 -3
- package/esm2020/result/result.module.mjs +4 -4
- package/esm2020/result/result.property.mjs +3 -3
- package/esm2020/ripple/ripple.directive.mjs +6 -5
- package/esm2020/ripple/ripple.module.mjs +4 -4
- package/esm2020/ripple/ripple.property.mjs +3 -3
- package/esm2020/select/select-portal.component.mjs +3 -3
- package/esm2020/select/select.component.mjs +6 -6
- package/esm2020/select/select.module.mjs +4 -4
- package/esm2020/select/select.property.mjs +3 -3
- package/esm2020/skeleton/skeleton.component.mjs +3 -3
- package/esm2020/skeleton/skeleton.module.mjs +4 -4
- package/esm2020/skeleton/skeleton.property.mjs +3 -3
- package/esm2020/slider/slider.component.mjs +7 -5
- package/esm2020/slider/slider.module.mjs +4 -4
- package/esm2020/slider/slider.property.mjs +3 -3
- package/esm2020/slider-select/slider-select.component.mjs +21 -14
- package/esm2020/slider-select/slider-select.module.mjs +4 -4
- package/esm2020/slider-select/slider-select.property.mjs +3 -3
- package/esm2020/statistic/countdown.component.mjs +3 -3
- package/esm2020/statistic/statistic.component.mjs +3 -3
- package/esm2020/statistic/statistic.module.mjs +4 -4
- package/esm2020/statistic/statistic.property.mjs +6 -6
- package/esm2020/steps/steps.component.mjs +3 -3
- package/esm2020/steps/steps.module.mjs +4 -4
- package/esm2020/steps/steps.property.mjs +3 -3
- package/esm2020/switch/switch.component.mjs +3 -3
- package/esm2020/switch/switch.module.mjs +4 -4
- package/esm2020/switch/switch.property.mjs +3 -3
- package/esm2020/table/drag.directive.mjs +8 -11
- package/esm2020/table/table-body.component.mjs +10 -13
- package/esm2020/table/table-foot.component.mjs +3 -3
- package/esm2020/table/table-head.component.mjs +3 -3
- package/esm2020/table/table.component.mjs +3 -3
- package/esm2020/table/table.module.mjs +4 -4
- package/esm2020/table/table.property.mjs +12 -12
- package/esm2020/tabs/tab-content.component.mjs +3 -3
- package/esm2020/tabs/tab-link.directive.mjs +6 -6
- package/esm2020/tabs/tab.component.mjs +3 -3
- package/esm2020/tabs/tabs.component.mjs +4 -4
- package/esm2020/tabs/tabs.module.mjs +4 -4
- package/esm2020/tabs/tabs.property.mjs +6 -6
- package/esm2020/tag/tag.component.mjs +3 -3
- package/esm2020/tag/tag.module.mjs +4 -4
- package/esm2020/tag/tag.property.mjs +3 -3
- package/esm2020/text-retract/text-retract.component.mjs +3 -3
- package/esm2020/text-retract/text-retract.module.mjs +4 -4
- package/esm2020/text-retract/text-retract.property.mjs +3 -3
- package/esm2020/textarea/textarea.component.mjs +3 -3
- package/esm2020/textarea/textarea.module.mjs +4 -4
- package/esm2020/textarea/textarea.property.mjs +3 -3
- package/esm2020/theme/theme.component.mjs +3 -3
- package/esm2020/theme/theme.module.mjs +4 -4
- package/esm2020/theme/theme.property.mjs +3 -3
- package/esm2020/time-ago/time-ago.module.mjs +4 -4
- package/esm2020/time-ago/time-ago.pipe.mjs +3 -3
- package/esm2020/time-picker/time-picker-frame.component.mjs +3 -3
- package/esm2020/time-picker/time-picker-portal.component.mjs +3 -3
- package/esm2020/time-picker/time-picker.component.mjs +21 -5
- package/esm2020/time-picker/time-picker.module.mjs +4 -4
- package/esm2020/time-picker/time-picker.property.mjs +3 -3
- package/esm2020/time-range/time-range.module.mjs +4 -4
- package/esm2020/time-range/time-range.pipe.mjs +3 -3
- package/esm2020/timeline/timeline.component.mjs +3 -3
- package/esm2020/timeline/timeline.module.mjs +4 -4
- package/esm2020/timeline/timeline.property.mjs +3 -3
- package/esm2020/tooltip/tooltip-portal.component.mjs +3 -3
- package/esm2020/tooltip/tooltip.directive.mjs +3 -3
- package/esm2020/tooltip/tooltip.module.mjs +4 -4
- package/esm2020/tooltip/tooltip.property.mjs +3 -3
- package/esm2020/transfer/transfer.component.mjs +3 -3
- package/esm2020/transfer/transfer.module.mjs +4 -4
- package/esm2020/transfer/transfer.property.mjs +3 -3
- package/esm2020/tree/tree-node.component.mjs +3 -3
- package/esm2020/tree/tree.component.mjs +4 -4
- package/esm2020/tree/tree.module.mjs +4 -4
- package/esm2020/tree/tree.property.mjs +6 -6
- package/esm2020/tree/tree.service.mjs +3 -3
- package/esm2020/tree-file/tree-file.component.mjs +9 -6
- package/esm2020/tree-file/tree-file.module.mjs +4 -4
- package/esm2020/tree-file/tree-file.property.mjs +5 -5
- package/esm2020/tree-select/tree-select-portal.component.mjs +3 -3
- package/esm2020/tree-select/tree-select.component.mjs +6 -6
- package/esm2020/tree-select/tree-select.module.mjs +4 -4
- package/esm2020/tree-select/tree-select.property.mjs +3 -3
- package/esm2020/typography/typography.component.mjs +3 -3
- package/esm2020/typography/typography.module.mjs +4 -4
- package/esm2020/typography/typography.property.mjs +3 -3
- package/esm2020/upload/upload-portal.component.mjs +8 -11
- package/esm2020/upload/upload.component.mjs +3 -3
- package/esm2020/upload/upload.module.mjs +4 -4
- package/esm2020/upload/upload.property.mjs +3 -3
- package/fesm2015/ng-nest-ui-affix.mjs +10 -10
- package/fesm2015/ng-nest-ui-alert.mjs +10 -10
- package/fesm2015/ng-nest-ui-anchor.mjs +28 -33
- package/fesm2015/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-api.mjs +7 -7
- package/fesm2015/ng-nest-ui-auto-complete.mjs +13 -13
- package/fesm2015/ng-nest-ui-avatar.mjs +20 -25
- package/fesm2015/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-back-top.mjs +23 -24
- package/fesm2015/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-badge.mjs +10 -10
- package/fesm2015/ng-nest-ui-base-form.mjs +10 -10
- package/fesm2015/ng-nest-ui-border.mjs +7 -7
- package/fesm2015/ng-nest-ui-button.mjs +35 -22
- package/fesm2015/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-calendar.mjs +10 -10
- package/fesm2015/ng-nest-ui-card.mjs +10 -10
- package/fesm2015/ng-nest-ui-carousel.mjs +16 -16
- package/fesm2015/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-cascade.mjs +13 -13
- package/fesm2015/ng-nest-ui-checkbox.mjs +10 -10
- package/fesm2015/ng-nest-ui-collapse.mjs +16 -16
- package/fesm2015/ng-nest-ui-color-picker.mjs +15 -15
- package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-color.mjs +16 -21
- package/fesm2015/ng-nest-ui-color.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-comment.mjs +16 -16
- package/fesm2015/ng-nest-ui-container.mjs +31 -31
- package/fesm2015/ng-nest-ui-core.mjs +78 -51
- package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-crumb.mjs +10 -10
- package/fesm2015/ng-nest-ui-date-picker.mjs +49 -49
- package/fesm2015/ng-nest-ui-description.mjs +16 -16
- package/fesm2015/ng-nest-ui-dialog.mjs +40 -40
- package/fesm2015/ng-nest-ui-doc.mjs +7 -7
- package/fesm2015/ng-nest-ui-drawer.mjs +31 -31
- package/fesm2015/ng-nest-ui-dropdown.mjs +13 -13
- package/fesm2015/ng-nest-ui-empty.mjs +10 -10
- package/fesm2015/ng-nest-ui-examples.mjs +7 -7
- package/fesm2015/ng-nest-ui-find.mjs +10 -10
- package/fesm2015/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-form.mjs +16 -16
- package/fesm2015/ng-nest-ui-highlight.mjs +15 -14
- package/fesm2015/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-i18n.mjs +29 -17
- package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-icon.mjs +18 -25
- package/fesm2015/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-image.mjs +30 -26
- package/fesm2015/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-inner.mjs +10 -10
- package/fesm2015/ng-nest-ui-input-number.mjs +10 -10
- package/fesm2015/ng-nest-ui-input.mjs +16 -16
- package/fesm2015/ng-nest-ui-keyword.mjs +10 -10
- package/fesm2015/ng-nest-ui-layout.mjs +16 -16
- package/fesm2015/ng-nest-ui-link.mjs +10 -10
- package/fesm2015/ng-nest-ui-list.mjs +20 -20
- package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-loading.mjs +10 -10
- package/fesm2015/ng-nest-ui-menu.mjs +24 -26
- package/fesm2015/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-message-box.mjs +10 -10
- package/fesm2015/ng-nest-ui-message.mjs +10 -10
- package/fesm2015/ng-nest-ui-notification.mjs +10 -10
- package/fesm2015/ng-nest-ui-outlet.mjs +7 -7
- package/fesm2015/ng-nest-ui-page-header.mjs +10 -10
- package/fesm2015/ng-nest-ui-pagination.mjs +10 -10
- package/fesm2015/ng-nest-ui-pattern.mjs +7 -7
- package/fesm2015/ng-nest-ui-popconfirm.mjs +10 -10
- package/fesm2015/ng-nest-ui-popover.mjs +13 -13
- package/fesm2015/ng-nest-ui-portal.mjs +9 -9
- package/fesm2015/ng-nest-ui-portal.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-progress.mjs +10 -10
- package/fesm2015/ng-nest-ui-radio.mjs +10 -10
- package/fesm2015/ng-nest-ui-rate.mjs +10 -10
- package/fesm2015/ng-nest-ui-resizable.mjs +16 -21
- package/fesm2015/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-result.mjs +10 -10
- package/fesm2015/ng-nest-ui-ripple.mjs +12 -12
- package/fesm2015/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-select.mjs +15 -15
- package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-skeleton.mjs +10 -10
- package/fesm2015/ng-nest-ui-slider-select.mjs +27 -20
- package/fesm2015/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-slider.mjs +13 -11
- package/fesm2015/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-statistic.mjs +16 -16
- package/fesm2015/ng-nest-ui-steps.mjs +10 -10
- package/fesm2015/ng-nest-ui-switch.mjs +10 -10
- package/fesm2015/ng-nest-ui-table.mjs +40 -50
- package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tabs.mjs +25 -25
- package/fesm2015/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tag.mjs +10 -10
- package/fesm2015/ng-nest-ui-text-retract.mjs +10 -10
- package/fesm2015/ng-nest-ui-textarea.mjs +10 -10
- package/fesm2015/ng-nest-ui-theme.mjs +10 -10
- package/fesm2015/ng-nest-ui-time-ago.mjs +7 -7
- package/fesm2015/ng-nest-ui-time-picker.mjs +33 -17
- package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-time-range.mjs +7 -7
- package/fesm2015/ng-nest-ui-timeline.mjs +10 -10
- package/fesm2015/ng-nest-ui-tooltip.mjs +13 -13
- package/fesm2015/ng-nest-ui-transfer.mjs +10 -10
- package/fesm2015/ng-nest-ui-tree-file.mjs +16 -13
- package/fesm2015/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tree-select.mjs +15 -15
- package/fesm2015/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tree.mjs +19 -19
- package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-typography.mjs +10 -10
- package/fesm2015/ng-nest-ui-upload.mjs +17 -22
- package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-affix.mjs +10 -10
- package/fesm2020/ng-nest-ui-alert.mjs +10 -10
- package/fesm2020/ng-nest-ui-anchor.mjs +28 -31
- package/fesm2020/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-api.mjs +7 -7
- package/fesm2020/ng-nest-ui-auto-complete.mjs +13 -13
- package/fesm2020/ng-nest-ui-avatar.mjs +20 -23
- package/fesm2020/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-back-top.mjs +23 -22
- package/fesm2020/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-badge.mjs +10 -10
- package/fesm2020/ng-nest-ui-base-form.mjs +10 -10
- package/fesm2020/ng-nest-ui-border.mjs +7 -7
- package/fesm2020/ng-nest-ui-button.mjs +34 -22
- package/fesm2020/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-calendar.mjs +10 -10
- package/fesm2020/ng-nest-ui-card.mjs +10 -10
- package/fesm2020/ng-nest-ui-carousel.mjs +16 -16
- package/fesm2020/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-cascade.mjs +13 -13
- package/fesm2020/ng-nest-ui-checkbox.mjs +10 -10
- package/fesm2020/ng-nest-ui-collapse.mjs +16 -16
- package/fesm2020/ng-nest-ui-color-picker.mjs +15 -15
- package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-color.mjs +16 -19
- package/fesm2020/ng-nest-ui-color.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-comment.mjs +16 -16
- package/fesm2020/ng-nest-ui-container.mjs +31 -31
- package/fesm2020/ng-nest-ui-core.mjs +78 -47
- package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-crumb.mjs +10 -10
- package/fesm2020/ng-nest-ui-date-picker.mjs +49 -49
- package/fesm2020/ng-nest-ui-description.mjs +16 -16
- package/fesm2020/ng-nest-ui-dialog.mjs +40 -40
- package/fesm2020/ng-nest-ui-doc.mjs +7 -7
- package/fesm2020/ng-nest-ui-drawer.mjs +31 -31
- package/fesm2020/ng-nest-ui-dropdown.mjs +13 -13
- package/fesm2020/ng-nest-ui-empty.mjs +10 -10
- package/fesm2020/ng-nest-ui-examples.mjs +7 -7
- package/fesm2020/ng-nest-ui-find.mjs +10 -10
- package/fesm2020/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-form.mjs +16 -16
- package/fesm2020/ng-nest-ui-highlight.mjs +15 -14
- package/fesm2020/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-i18n.mjs +29 -17
- package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-icon.mjs +18 -23
- package/fesm2020/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-image.mjs +29 -26
- package/fesm2020/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-inner.mjs +10 -10
- package/fesm2020/ng-nest-ui-input-number.mjs +10 -10
- package/fesm2020/ng-nest-ui-input.mjs +16 -16
- package/fesm2020/ng-nest-ui-keyword.mjs +10 -10
- package/fesm2020/ng-nest-ui-layout.mjs +16 -16
- package/fesm2020/ng-nest-ui-link.mjs +10 -10
- package/fesm2020/ng-nest-ui-list.mjs +20 -20
- package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-loading.mjs +10 -10
- package/fesm2020/ng-nest-ui-menu.mjs +24 -24
- package/fesm2020/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-message-box.mjs +10 -10
- package/fesm2020/ng-nest-ui-message.mjs +10 -10
- package/fesm2020/ng-nest-ui-notification.mjs +10 -10
- package/fesm2020/ng-nest-ui-outlet.mjs +7 -7
- package/fesm2020/ng-nest-ui-page-header.mjs +10 -10
- package/fesm2020/ng-nest-ui-pagination.mjs +10 -10
- package/fesm2020/ng-nest-ui-pattern.mjs +7 -7
- package/fesm2020/ng-nest-ui-popconfirm.mjs +10 -10
- package/fesm2020/ng-nest-ui-popover.mjs +13 -13
- package/fesm2020/ng-nest-ui-portal.mjs +9 -9
- package/fesm2020/ng-nest-ui-portal.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-progress.mjs +10 -10
- package/fesm2020/ng-nest-ui-radio.mjs +10 -10
- package/fesm2020/ng-nest-ui-rate.mjs +10 -10
- package/fesm2020/ng-nest-ui-resizable.mjs +16 -19
- package/fesm2020/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-result.mjs +10 -10
- package/fesm2020/ng-nest-ui-ripple.mjs +12 -12
- package/fesm2020/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-select.mjs +15 -15
- package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-skeleton.mjs +10 -10
- package/fesm2020/ng-nest-ui-slider-select.mjs +27 -20
- package/fesm2020/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-slider.mjs +13 -11
- package/fesm2020/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-statistic.mjs +16 -16
- package/fesm2020/ng-nest-ui-steps.mjs +10 -10
- package/fesm2020/ng-nest-ui-switch.mjs +10 -10
- package/fesm2020/ng-nest-ui-table.mjs +40 -46
- package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tabs.mjs +25 -25
- package/fesm2020/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tag.mjs +10 -10
- package/fesm2020/ng-nest-ui-text-retract.mjs +10 -10
- package/fesm2020/ng-nest-ui-textarea.mjs +10 -10
- package/fesm2020/ng-nest-ui-theme.mjs +10 -10
- package/fesm2020/ng-nest-ui-time-ago.mjs +7 -7
- package/fesm2020/ng-nest-ui-time-picker.mjs +33 -17
- package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-time-range.mjs +7 -7
- package/fesm2020/ng-nest-ui-timeline.mjs +10 -10
- package/fesm2020/ng-nest-ui-tooltip.mjs +13 -13
- package/fesm2020/ng-nest-ui-transfer.mjs +10 -10
- package/fesm2020/ng-nest-ui-tree-file.mjs +16 -13
- package/fesm2020/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tree-select.mjs +15 -15
- package/fesm2020/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tree.mjs +19 -19
- package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-typography.mjs +10 -10
- package/fesm2020/ng-nest-ui-upload.mjs +17 -20
- package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
- package/i18n/i18n.property.d.ts +3 -0
- package/i18n/languages/en_GB.d.ts +3 -0
- package/i18n/languages/en_US.d.ts +3 -0
- package/i18n/languages/zh_CN.d.ts +3 -0
- package/i18n/languages/zh_TW.d.ts +3 -0
- package/icon/icon.component.d.ts +4 -4
- package/image/image-preview.component.d.ts +1 -0
- package/menu/menu.component.d.ts +2 -2
- package/package.json +1 -1
- package/resizable/resizable.directive.d.ts +1 -1
- package/slider-select/slider-select.component.d.ts +1 -1
- package/table/drag.directive.d.ts +1 -1
- package/table/table-body.component.d.ts +2 -2
- package/time-picker/time-picker.component.d.ts +1 -0
- package/upload/upload-portal.component.d.ts +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ViewEncapsulation, ChangeDetectionStrategy,
|
|
1
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, inject } from '@angular/core';
|
|
2
2
|
import { DOCUMENT } from '@angular/common';
|
|
3
3
|
import { XIconPrefix, XIconProperty } from './icon.property';
|
|
4
4
|
import { warnIconTypeNotFound, warnSVGTagNotFound, XIsChange, XIsEmpty } from '@ng-nest/ui/core';
|
|
@@ -25,15 +25,15 @@ export const XViewBox = [
|
|
|
25
25
|
// { souces: ["fto"], value: "0 0 24 24" }
|
|
26
26
|
];
|
|
27
27
|
export class XIconComponent extends XIconProperty {
|
|
28
|
-
constructor(elementRef, renderer, iconService, cdr,
|
|
28
|
+
constructor(elementRef, renderer, iconService, cdr, configService) {
|
|
29
29
|
super();
|
|
30
30
|
this.elementRef = elementRef;
|
|
31
31
|
this.renderer = renderer;
|
|
32
32
|
this.iconService = iconService;
|
|
33
33
|
this.cdr = cdr;
|
|
34
|
-
this.document = document;
|
|
35
34
|
this.configService = configService;
|
|
36
35
|
this._loaded = false;
|
|
36
|
+
this.document = inject(DOCUMENT);
|
|
37
37
|
this.iconService.rootUrl = this.href;
|
|
38
38
|
this.renderer.addClass(this.elementRef.nativeElement, XIconPrefix);
|
|
39
39
|
}
|
|
@@ -160,7 +160,7 @@ export class XIconComponent extends XIconProperty {
|
|
|
160
160
|
let child = this._svgElement.children[i];
|
|
161
161
|
let toChild = svg?.children[i];
|
|
162
162
|
if (child?.nodeName === 'path' && toChild?.nodeName === 'path') {
|
|
163
|
-
let toAnimate = document.createElement('animate');
|
|
163
|
+
let toAnimate = this.document.createElement('animate');
|
|
164
164
|
toAnimate.setAttribute('dur', '500ms');
|
|
165
165
|
toAnimate.setAttribute('repeatCount', '1');
|
|
166
166
|
toAnimate.setAttribute('attributeName', 'd');
|
|
@@ -173,18 +173,13 @@ export class XIconComponent extends XIconProperty {
|
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
175
|
}
|
|
176
|
-
/** @nocollapse */ XIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
177
|
-
/** @nocollapse */ XIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
178
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
176
|
+
/** @nocollapse */ XIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XIconComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.XIconService }, { token: i0.ChangeDetectorRef }, { token: i2.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
177
|
+
/** @nocollapse */ XIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XIconComponent, selector: "x-icon", host: { properties: { "class.x-icon-spin": "this.getSpin" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "\r\n", styles: ["@keyframes x-icon-spin{to{transform:rotate(360deg)}}.x-icon{margin:0;padding:0;display:inline-block;line-height:0;text-align:center;vertical-align:-.125em}.x-icon-spin{animation:1s linear infinite x-icon-spin}.x-icon[left]{margin-right:.25rem}.x-icon[right]{margin-left:.25rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XIconComponent, decorators: [{
|
|
179
179
|
type: Component,
|
|
180
180
|
args: [{ selector: `${XIconPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "\r\n", styles: ["@keyframes x-icon-spin{to{transform:rotate(360deg)}}.x-icon{margin:0;padding:0;display:inline-block;line-height:0;text-align:center;vertical-align:-.125em}.x-icon-spin{animation:1s linear infinite x-icon-spin}.x-icon[left]{margin-right:.25rem}.x-icon[right]{margin-left:.25rem}\n"] }]
|
|
181
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.XIconService }, { type: i0.ChangeDetectorRef }, { type:
|
|
182
|
-
type: Optional
|
|
183
|
-
}, {
|
|
184
|
-
type: Inject,
|
|
185
|
-
args: [DOCUMENT]
|
|
186
|
-
}] }, { type: i2.XConfigService }]; }, propDecorators: { getSpin: [{
|
|
181
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.XIconService }, { type: i0.ChangeDetectorRef }, { type: i2.XConfigService }]; }, propDecorators: { getSpin: [{
|
|
187
182
|
type: HostBinding,
|
|
188
183
|
args: ['class.x-icon-spin']
|
|
189
184
|
}] } });
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9pY29uL2ljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvaWNvbi9pY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQU12QixNQUFNLEVBQ04sUUFBUSxFQUNSLFdBQVcsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBa0IsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQUVqSCxTQUFTO0FBQ1QsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFtQztJQUN2RCxHQUFHLEVBQUUsa0JBQWtCO0lBQ3ZCLEdBQUcsRUFBRSxxQkFBcUI7SUFDMUIsR0FBRyxFQUFFLHFCQUFxQjtJQUMxQixHQUFHLEVBQUUsV0FBVztJQUNoQixHQUFHLEVBQUUsY0FBYztJQUNuQixHQUFHLEVBQUUsVUFBVTtJQUNmLEdBQUcsRUFBRSxzQkFBc0I7SUFDM0IsR0FBRyxFQUFFLHVCQUF1QjtJQUM1QixHQUFHLEVBQUUscUJBQXFCO0lBQzFCLEdBQUcsRUFBRSx1QkFBdUI7SUFDNUIsR0FBRyxFQUFFLDBCQUEwQjtDQUNoQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHO0FBQ3RCLDZEQUE2RDtBQUM3RCxrREFBa0Q7QUFDbEQsMENBQTBDO0NBQzNDLENBQUM7QUFTRixNQUFNLE9BQU8sY0FBZSxTQUFRLGFBQWE7SUFRL0MsWUFDUyxVQUFt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R0FBRyxDQUFXLENBQUMsQ0FBQztvQkFDbEUsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQVcsQ0FBQyxDQUFDO29CQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7aUJBQzdDO2FBQ0Y7U0FDRjtJQUNILENBQUM7OzhIQTdKVSxjQUFjLGtJQWFILFFBQVE7a0hBYm5CLGNBQWMseUpDL0MzQixNQUNBOzJGRDhDYSxjQUFjO2tCQVAxQixTQUFTOytCQUNFLEdBQUcsV0FBVyxFQUFFLGlCQUdYLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07OzBCQWU1QyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFFBQVE7eUVBVFEsT0FBTztzQkFBNUMsV0FBVzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgRWxlbWVudFJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgSW5qZWN0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIEhvc3RCaW5kaW5nXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgWEljb25QcmVmaXgsIFhJY29uUHJvcGVydHkgfSBmcm9tICcuL2ljb24ucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSWNvblNlcnZpY2UgfSBmcm9tICcuL2ljb24uc2VydmljZSc7XHJcbmltcG9ydCB7IHdhcm5JY29uVHlwZU5vdEZvdW5kLCB3YXJuU1ZHVGFnTm90Rm91bmQsIFhJc0NoYW5nZSwgWElzRW1wdHksIFhDb25maWdTZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcblxyXG4vLyDmnaXmupDot6/lvoTlr7nlupRcclxuZXhwb3J0IGNvbnN0IFhTb3VjZVVybDogeyBbcHJvcGVydHk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xyXG4gIGFkZjogYGFudC1kZXNpZ24vZmlsbC9gLFxyXG4gIGFkbzogYGFudC1kZXNpZ24vb3V0bGluZS9gLFxyXG4gIGFkdDogYGFudC1kZXNpZ24vdHdvdG9uZS9gLFxyXG4gIGVhZjogYGV2YS9maWxsL2AsXHJcbiAgZWFvOiBgZXZhL291dGxpbmUvYCxcclxuICBmdG86IGBmZWF0aGVyL2AsXHJcbiAgZmFiOiBgZm9udC1hd2Vzb21lL2JyYW5kcy9gLFxyXG4gIGZhcjogYGZvbnQtYXdlc29tZS9yZWd1bGFyL2AsXHJcbiAgZmFzOiBgZm9udC1hd2Vzb21lL3NvbGlkL2AsXHJcbiAgbWRmOiBgbWF0ZXJpYWwtZGVzaWduL2ZpbGwvYCxcclxuICBtZG86IGBtYXRlcmlhbC1kZXNpZ24vb3V0bGluZS9gXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgWFZpZXdCb3ggPSBbXHJcbiAgLy8geyBzb3VjZXM6IFtcImFkZlwiLCBcImFkb1wiLCBcImFkdFwiXSwgdmFsdWU6IFwiMCAwIDEwMjQgMTAyNFwiIH0sXHJcbiAgLy8geyBzb3VjZXM6IFtcImVhZlwiLCBcImVhb1wiXSwgdmFsdWU6IFwiMCAwIDI0IDI0XCIgfSxcclxuICAvLyB7IHNvdWNlczogW1wiZnRvXCJdLCB2YWx1ZTogXCIwIDAgMjQgMjRcIiB9XHJcbl07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WEljb25QcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vaWNvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3R5bGUvaW5kZXguc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhJY29uQ29tcG9uZW50IGV4dGVuZHMgWEljb25Qcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBwcml2YXRlIF9zdmdFbGVtZW50ITogU1ZHRWxlbWVudDtcclxuICBwcml2YXRlIF9sb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy54LWljb24tc3BpbicpIGdldCBnZXRTcGluKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3BpbjtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGljb25TZXJ2aWNlOiBYSWNvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnksXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmljb25TZXJ2aWNlLnJvb3RVcmwgPSB0aGlzLmhyZWYgYXMgc3RyaW5nO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgWEljb25QcmVmaXgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IHR5cGUsIHNwaW4gfSA9IGNoYW5nZXM7XHJcbiAgICBpZiAoWElzQ2hhbmdlKHR5cGUpKSB7XHJcbiAgICAgIHRoaXMuc2V0U3ZnRWxlbWVudCgpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0eXBlLnByZXZpb3VzVmFsdWUpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBgJHt0aGlzLnR5cGV9YCk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIGlmIChYSXNDaGFuZ2Uoc3BpbikpIHtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0U3ZnKCkge1xyXG4gICAgaWYgKHRoaXMuX2xvYWRlZCkgcmV0dXJuO1xyXG4gICAgbGV0IGhlaWdodCA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgIGxldCB3aWR0aCA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xyXG4gICAgbGV0IGJveCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgaWYgKGJveC50b3AgPD0gaGVpZ2h0ICYmIGJveC5sZWZ0IDw9IHdpZHRoKSB7XHJcbiAgICAgIHRoaXMuc2V0U3ZnRWxlbWVudCgpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBgJHt0aGlzLnR5cGV9YCk7XHJcbiAgICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRTdmdFbGVtZW50KCkge1xyXG4gICAgY29uc3QgdHlwZUljb24gPSB0aGlzLnNldFNvdXJjZVVybCh0aGlzLnR5cGUpO1xyXG4gICAgY29uc3QgdG9JY29uID0gdGhpcy5zZXRTb3VyY2VVcmwodGhpcy50byk7XHJcbiAgICBsZXQgaWNvbnMgPSBbdHlwZUljb25dO1xyXG4gICAgaWYgKFhJc0VtcHR5KHR5cGVJY29uKSkgcmV0dXJuO1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0b0ljb24pKSB7XHJcbiAgICAgIGljb25zID0gWy4uLmljb25zLCB0b0ljb25dO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pY29uU2VydmljZS5nZXRTdmdzKC4uLmljb25zKS5zdWJzY3JpYmUoKHgpID0+IHRoaXMuc2V0U3Zncyh4KSk7XHJcbiAgfVxyXG5cclxuICBzZXRTdmdzKHN2Z3M6IHN0cmluZ1tdKSB7XHJcbiAgICBpZiAoc3Zncz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgZmlyc3RDaGlsZCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZpcnN0Q2hpbGQ7XHJcbiAgICAgIGlmIChmaXJzdENoaWxkKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgZmlyc3RDaGlsZCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fc3ZnRWxlbWVudCA9IHRoaXMuYnVpbGRTdmcoc3Zncy5zaGlmdCgpIGFzIHN0cmluZykgYXMgU1ZHQUVsZW1lbnQ7XHJcbiAgICAgIC8vIHRoaXMuc2V0QW5pbWF0ZXMoc3Zncyk7XHJcbiAgICAgIHRoaXMuc2V0QXR0cmlidXRlcyh0aGlzLl9zdmdFbGVtZW50KTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5fc3ZnRWxlbWVudCk7XHJcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0U291cmNlVXJsKHR5cGU/OiBzdHJpbmcpIHtcclxuICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiAnJztcclxuICAgIGNvbnN0IHNwbGl0ID0gdHlwZS5zcGxpdCgnLScpO1xyXG4gICAgY29uc3Qgc291Y2UgPSBzcGxpdC5zaGlmdCgpO1xyXG4gICAgaWYgKHR5cGVvZiBzb3VjZSA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiAnJztcclxuICAgIGNvbnN0IHNvdWNlVXJsID0gWFNvdWNlVXJsW3NvdWNlXTtcclxuICAgIGNvbnN0IGZpbGVOYW1lID0gc3BsaXQuam9pbignLScpO1xyXG4gICAgaWYgKCFzb3VjZVVybCB8fCAhZmlsZU5hbWUpIHtcclxuICAgICAgd2Fybkljb25UeXBlTm90Rm91bmQoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHtzb3VjZVVybH0ke2ZpbGVOYW1lfWA7XHJcbiAgfVxyXG5cclxuICBzZXRBdHRyaWJ1dGVzKHN2Z0VsZTogU1ZHRWxlbWVudCkge1xyXG4gICAgaWYgKHN2Z0VsZSkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzdmdFbGUsICd3aWR0aCcsICcxZW0nKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc3ZnRWxlLCAnaGVpZ2h0JywgJzFlbScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYnVpbGRTdmcoc3ZnU3RyOiBzdHJpbmcpOiBTVkdBRWxlbWVudCB8IHVuZGVmaW5lZCB7XHJcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCAnc3ZnJykgYXMgU1ZHQUVsZW1lbnQ7XHJcbiAgICBjb25zdCBzdmcgPSB0aGlzLmNyZWF0ZVN2ZyhzdmdTdHIpO1xyXG4gICAgaWYgKCFzdmcpIHJldHVybjtcclxuICAgIHN2Zy5jaGlsZHJlbi5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIHgucmVtb3ZlQXR0cmlidXRlKCdjbGFzcycpO1xyXG4gICAgICBpZiAoeC50YWdOYW1lID09PSAncmVjdCcpIHtcclxuICAgICAgICB4LnNldEF0dHJpYnV0ZSgnZmlsbCcsICdub25lJyk7XHJcbiAgICAgIH1cclxuICAgICAgcmVzdWx0LmFwcGVuZENoaWxkKHgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldEF0dHJpYnV0ZShyZXN1bHQsIHN2Zy5lbGUsICd2aWV3Qm94Jyk7XHJcbiAgICB0aGlzLnNldEF0dHJpYnV0ZShyZXN1bHQsIHN2Zy5lbGUsICdmaWxsJywgJ2N1cnJlbnRDb2xvcicpO1xyXG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUocmVzdWx0LCBzdmcuZWxlLCAnc3Ryb2tlJyk7XHJcbiAgICB0aGlzLnNldEF0dHJpYnV0ZShyZXN1bHQsIHN2Zy5lbGUsICdzdHJva2Utd2lkdGgnKTtcclxuICAgIHRoaXMuc2V0QXR0cmlidXRlKHJlc3VsdCwgc3ZnLmVsZSwgJ3N0cm9rZS1saW5lY2FwJyk7XHJcbiAgICB0aGlzLnNldEF0dHJpYnV0ZShyZXN1bHQsIHN2Zy5lbGUsICdzdHJva2UtbGluZWpvaW4nKTtcclxuICAgIGlmICghcmVzdWx0KSB7XHJcbiAgICAgIHdhcm5TVkdUYWdOb3RGb3VuZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVTdmcoc3ZnU3RyOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGRpdiA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBkaXYuaW5uZXJIVE1MID0gc3ZnU3RyO1xyXG4gICAgbGV0IHN2Z0VsZSA9IGRpdi5xdWVyeVNlbGVjdG9yKCdzdmcnKSBhcyBTVkdFbGVtZW50O1xyXG4gICAgaWYgKCFzdmdFbGUpIHJldHVybiBudWxsO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZWxlOiBzdmdFbGUsXHJcbiAgICAgIGNoaWxkcmVuOiBzdmdFbGUucXVlcnlTZWxlY3RvckFsbCgncGF0aCwgcG9seWxpbmUsIHBvbHlnb24sIGNpcmNsZSwgbGluZSwgcmVjdCcpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2V0QXR0cmlidXRlKHN2ZzogU1ZHRWxlbWVudCwgc3ZnRWxlOiBTVkdFbGVtZW50LCBhdHRyaWJ1dGU6IHN0cmluZywgZGVmPzogc3RyaW5nKSB7XHJcbiAgICBsZXQgYXR0ciA9IHN2Z0VsZS5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKTtcclxuICAgIGlmIChhdHRyKSB7XHJcbiAgICAgIHN2Zy5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLCBhdHRyKTtcclxuICAgIH0gZWxzZSBpZiAoZGVmKSB7XHJcbiAgICAgIHN2Zy5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLCBkZWYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy88YW5pbWF0ZSBiZWdpbj1cIm1vdXNlZW50ZXJcIiBkdXI9XCI1MDBtc1wiIHJlcGVhdENvdW50PVwiMVwiIGF0dHJpYnV0ZU5hbWU9XCJkXCIgZnJvbT1cIk04Ni40MjUsMTMuMjA0bDUuNjQ4LDEyLjc0MUgwLjU1ICAgbDAuMTI1LTEyLjYxNkwwLjU1LDAuNTQ0aDkxLjUyM0w4Ni40MjUsMTMuMjA0elwiIHRvPVwiTTkyLjcyNSwxMy41MjFsMC4wNDQsMTIuODg3SDEuMjQ1ICAgbDctMTIuNjE2bC03LTEyLjc4NWg5MS41MjNMOTIuNzI1LDEzLjUyMXpcIiBmaWxsPVwiZnJlZXplXCI+PC9hbmltYXRlPlxyXG5cclxuICBzZXRBbmltYXRlcyhzdmdzOiBzdHJpbmdbXSkge1xyXG4gICAgaWYgKHN2Z3M/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IHN2ZyA9IHRoaXMuY3JlYXRlU3ZnKHN2Z3Muc2hpZnQoKSBhcyBzdHJpbmcpO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3N2Z0VsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgY2hpbGQgPSB0aGlzLl9zdmdFbGVtZW50LmNoaWxkcmVuW2ldO1xyXG4gICAgICAgIGxldCB0b0NoaWxkID0gc3ZnPy5jaGlsZHJlbltpXTtcclxuICAgICAgICBpZiAoY2hpbGQ/Lm5vZGVOYW1lID09PSAncGF0aCcgJiYgdG9DaGlsZD8ubm9kZU5hbWUgPT09ICdwYXRoJykge1xyXG4gICAgICAgICAgbGV0IHRvQW5pbWF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2FuaW1hdGUnKTtcclxuICAgICAgICAgIHRvQW5pbWF0ZS5zZXRBdHRyaWJ1dGUoJ2R1cicsICc1MDBtcycpO1xyXG4gICAgICAgICAgdG9BbmltYXRlLnNldEF0dHJpYnV0ZSgncmVwZWF0Q291bnQnLCAnMScpO1xyXG4gICAgICAgICAgdG9BbmltYXRlLnNldEF0dHJpYnV0ZSgnYXR0cmlidXRlTmFtZScsICdkJyk7XHJcbiAgICAgICAgICB0b0FuaW1hdGUuc2V0QXR0cmlidXRlKCdmaWxsJywgJ2ZyZWV6ZScpO1xyXG4gICAgICAgICAgdG9BbmltYXRlLnNldEF0dHJpYnV0ZSgnZnJvbScsIGNoaWxkLmdldEF0dHJpYnV0ZSgnZCcpIGFzIHN0cmluZyk7XHJcbiAgICAgICAgICB0b0FuaW1hdGUuc2V0QXR0cmlidXRlKCd0bycsIHRvQ2hpbGQuZ2V0QXR0cmlidXRlKCdkJykgYXMgc3RyaW5nKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoY2hpbGQsIHRvQW5pbWF0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIlxyXG4iXX0=
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9pY29uL2ljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvaWNvbi9pY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQU12QixXQUFXLEVBQ1gsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFrQixNQUFNLGtCQUFrQixDQUFDOzs7O0FBRWpILFNBQVM7QUFDVCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQW1DO0lBQ3ZELEdBQUcsRUFBRSxrQkFBa0I7SUFDdkIsR0FBRyxFQUFFLHFCQUFxQjtJQUMxQixHQUFHLEVBQUUscUJBQXFCO0lBQzFCLEdBQUcsRUFBRSxXQUFXO0lBQ2hCLEdBQUcsRUFBRSxjQUFjO0lBQ25CLEdBQUcsRUFBRSxVQUFVO0lBQ2YsR0FBRyxFQUFFLHNCQUFzQjtJQUMzQixHQUFHLEVBQUUsdUJBQXVCO0lBQzVCLEdBQUcsRUFBRSxxQkFBcUI7SUFDMUIsR0FBRyxFQUFFLHVCQUF1QjtJQUM1QixHQUFHLEVBQUUsMEJBQTBCO0NBQ2hDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUc7QUFDdEIsNkRBQTZEO0FBQzdELGtEQUFrRDtBQUNsRCwwQ0FBMEM7Q0FDM0MsQ0FBQztBQVNGLE1BQU0sT0FBTyxjQUFlLFNBQVEsYUFBYTtJQVMvQyxZQUNTLFVBQW1DLEVBQ2xDLFFB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LENBQUMsR0FBRyxDQUFXLENBQUMsQ0FBQztvQkFDbEUsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQVcsQ0FBQyxDQUFDO29CQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7aUJBQzdDO2FBQ0Y7U0FDRjtJQUNILENBQUM7OzhIQTdKVSxjQUFjO2tIQUFkLGNBQWMseUpDOUMzQixNQUNBOzJGRDZDYSxjQUFjO2tCQVAxQixTQUFTOytCQUNFLEdBQUcsV0FBVyxFQUFFLGlCQUdYLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07aU5BT1QsT0FBTztzQkFBNUMsV0FBVzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgRWxlbWVudFJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgaW5qZWN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgWEljb25QcmVmaXgsIFhJY29uUHJvcGVydHkgfSBmcm9tICcuL2ljb24ucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSWNvblNlcnZpY2UgfSBmcm9tICcuL2ljb24uc2VydmljZSc7XHJcbmltcG9ydCB7IHdhcm5JY29uVHlwZU5vdEZvdW5kLCB3YXJuU1ZHVGFnTm90Rm91bmQsIFhJc0NoYW5nZSwgWElzRW1wdHksIFhDb25maWdTZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcblxyXG4vLyDmnaXmupDot6/lvoTlr7nlupRcclxuZXhwb3J0IGNvbnN0IFhTb3VjZVVybDogeyBbcHJvcGVydHk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xyXG4gIGFkZjogYGFudC1kZXNpZ24vZmlsbC9gLFxyXG4gIGFkbzogYGFudC1kZXNpZ24vb3V0bGluZS9gLFxyXG4gIGFkdDogYGFudC1kZXNpZ24vdHdvdG9uZS9gLFxyXG4gIGVhZjogYGV2YS9maWxsL2AsXHJcbiAgZWFvOiBgZXZhL291dGxpbmUvYCxcclxuICBmdG86IGBmZWF0aGVyL2AsXHJcbiAgZmFiOiBgZm9udC1hd2Vzb21lL2JyYW5kcy9gLFxyXG4gIGZhcjogYGZvbnQtYXdlc29tZS9yZWd1bGFyL2AsXHJcbiAgZmFzOiBgZm9udC1hd2Vzb21lL3NvbGlkL2AsXHJcbiAgbWRmOiBgbWF0ZXJpYWwtZGVzaWduL2ZpbGwvYCxcclxuICBtZG86IGBtYXRlcmlhbC1kZXNpZ24vb3V0bGluZS9gXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgWFZpZXdCb3ggPSBbXHJcbiAgLy8geyBzb3VjZXM6IFtcImFkZlwiLCBcImFkb1wiLCBcImFkdFwiXSwgdmFsdWU6IFwiMCAwIDEwMjQgMTAyNFwiIH0sXHJcbiAgLy8geyBzb3VjZXM6IFtcImVhZlwiLCBcImVhb1wiXSwgdmFsdWU6IFwiMCAwIDI0IDI0XCIgfSxcclxuICAvLyB7IHNvdWNlczogW1wiZnRvXCJdLCB2YWx1ZTogXCIwIDAgMjQgMjRcIiB9XHJcbl07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WEljb25QcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vaWNvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3R5bGUvaW5kZXguc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhJY29uQ29tcG9uZW50IGV4dGVuZHMgWEljb25Qcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBwcml2YXRlIF9zdmdFbGVtZW50ITogU1ZHRWxlbWVudDtcclxuICBwcml2YXRlIF9sb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy54LWljb24tc3BpbicpIGdldCBnZXRTcGluKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3BpbjtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGljb25TZXJ2aWNlOiBYSWNvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmljb25TZXJ2aWNlLnJvb3RVcmwgPSB0aGlzLmhyZWYgYXMgc3RyaW5nO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgWEljb25QcmVmaXgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IHR5cGUsIHNwaW4gfSA9IGNoYW5nZXM7XHJcbiAgICBpZiAoWElzQ2hhbmdlKHR5cGUpKSB7XHJcbiAgICAgIHRoaXMuc2V0U3ZnRWxlbWVudCgpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0eXBlLnByZXZpb3VzVmFsdWUpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBgJHt0aGlzLnR5cGV9YCk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIGlmIChYSXNDaGFuZ2Uoc3BpbikpIHtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0U3ZnKCkge1xyXG4gICAgaWYgKHRoaXMuX2xvYWRlZCkgcmV0dXJuO1xyXG4gICAgbGV0IGhlaWdodCA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgIGxldCB3aWR0aCA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xyXG4gICAgbGV0IGJveCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgaWYgKGJveC50b3AgPD0gaGVpZ2h0ICYmIGJveC5sZWZ0IDw9IHdpZHRoKSB7XHJcbiAgICAgIHRoaXMuc2V0U3ZnRWxlbWVudCgpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBgJHt0aGlzLnR5cGV9YCk7XHJcbiAgICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRTdmdFbGVtZW50KCkge1xyXG4gICAgY29uc3QgdHlwZUljb24gPSB0aGlzLnNldFNvdXJjZVVybCh0aGlzLnR5cGUpO1xyXG4gICAgY29uc3QgdG9JY29uID0gdGhpcy5zZXRTb3VyY2VVcmwodGhpcy50byk7XHJcbiAgICBsZXQgaWNvbnMgPSBbdHlwZUljb25dO1xyXG4gICAgaWYgKFhJc0VtcHR5KHR5cGVJY29uKSkgcmV0dXJuO1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0b0ljb24pKSB7XHJcbiAgICAgIGljb25zID0gWy4uLmljb25zLCB0b0ljb25dO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pY29uU2VydmljZS5nZXRTdmdzKC4uLmljb25zKS5zdWJzY3JpYmUoKHgpID0+IHRoaXMuc2V0U3Zncyh4KSk7XHJcbiAgfVxyXG5cclxuICBzZXRTdmdzKHN2Z3M6IHN0cmluZ1tdKSB7XHJcbiAgICBpZiAoc3Zncz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgZmlyc3RDaGlsZCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZpcnN0Q2hpbGQ7XHJcbiAgICAgIGlmIChmaXJzdENoaWxkKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgZmlyc3RDaGlsZCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fc3ZnRWxlbWVudCA9IHRoaXMuYnVpbGRTdmcoc3Zncy5zaGlmdCgpIGFzIHN0cmluZykgYXMgU1ZHU1ZHRWxlbWVudDtcclxuICAgICAgLy8gdGhpcy5zZXRBbmltYXRlcyhzdmdzKTtcclxuICAgICAgdGhpcy5zZXRBdHRyaWJ1dGVzKHRoaXMuX3N2Z0VsZW1lbnQpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLl9zdmdFbGVtZW50KTtcclxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRTb3VyY2VVcmwodHlwZT86IHN0cmluZykge1xyXG4gICAgaWYgKHR5cGVvZiB0eXBlID09PSAndW5kZWZpbmVkJykgcmV0dXJuICcnO1xyXG4gICAgY29uc3Qgc3BsaXQgPSB0eXBlLnNwbGl0KCctJyk7XHJcbiAgICBjb25zdCBzb3VjZSA9IHNwbGl0LnNoaWZ0KCk7XHJcbiAgICBpZiAodHlwZW9mIHNvdWNlID09PSAndW5kZWZpbmVkJykgcmV0dXJuICcnO1xyXG4gICAgY29uc3Qgc291Y2VVcmwgPSBYU291Y2VVcmxbc291Y2VdO1xyXG4gICAgY29uc3QgZmlsZU5hbWUgPSBzcGxpdC5qb2luKCctJyk7XHJcbiAgICBpZiAoIXNvdWNlVXJsIHx8ICFmaWxlTmFtZSkge1xyXG4gICAgICB3YXJuSWNvblR5cGVOb3RGb3VuZCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke3NvdWNlVXJsfSR7ZmlsZU5hbWV9YDtcclxuICB9XHJcblxyXG4gIHNldEF0dHJpYnV0ZXMoc3ZnRWxlOiBTVkdFbGVtZW50KSB7XHJcbiAgICBpZiAoc3ZnRWxlKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHN2Z0VsZSwgJ3dpZHRoJywgJzFlbScpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzdmdFbGUsICdoZWlnaHQnLCAnMWVtJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBidWlsZFN2ZyhzdmdTdHI6IHN0cmluZyk6IFNWR1NWR0VsZW1lbnQgfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywgJ3N2ZycpIGFzIFNWR1NWR0VsZW1lbnQ7XHJcbiAgICBjb25zdCBzdmcgPSB0aGlzLmNyZWF0ZVN2ZyhzdmdTdHIpO1xyXG4gICAgaWYgKCFzdmcpIHJldHVybjtcclxuICAgIHN2Zy5jaGlsZHJlbi5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIHgucmVtb3ZlQXR0cmlidXRlKCdjbGFzcycpO1xyXG4gICAgICBpZiAoeC50YWdOYW1lID09PSAncmVjdCcpIHtcclxuICAgICAgICB4LnNldEF0dHJpYnV0ZSgnZmlsbCcsICdub25lJyk7XHJcbiAgICAgIH1cclxuICAgICAgcmVzdWx0LmFwcGVuZENoaWxkKHgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldEF0dHJpYnV0ZShyZXN1bHQsIHN2Zy5lbGUsICd2aWV3Qm94Jyk7XHJcbiAgICB0aGlzLnNldEF0dHJpYnV0ZShyZXN1bHQsIHN2Zy5lbGUsICdmaWxsJywgJ2N1cnJlbnRDb2xvcicpO1xyXG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUocmVzdWx0LCBzdmcuZWxlLCAnc3Ryb2tlJyk7XHJcbiAgICB0aGlzLnNldEF0dHJpYnV0ZShyZXN1bHQsIHN2Zy5lbGUsICdzdHJva2Utd2lkdGgnKTtcclxuICAgIHRoaXMuc2V0QXR0cmlidXRlKHJlc3VsdCwgc3ZnLmVsZSwgJ3N0cm9rZS1saW5lY2FwJyk7XHJcbiAgICB0aGlzLnNldEF0dHJpYnV0ZShyZXN1bHQsIHN2Zy5lbGUsICdzdHJva2UtbGluZWpvaW4nKTtcclxuICAgIGlmICghcmVzdWx0KSB7XHJcbiAgICAgIHdhcm5TVkdUYWdOb3RGb3VuZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVTdmcoc3ZnU3RyOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGRpdiA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBkaXYuaW5uZXJIVE1MID0gc3ZnU3RyO1xyXG4gICAgbGV0IHN2Z0VsZSA9IGRpdi5xdWVyeVNlbGVjdG9yKCdzdmcnKSBhcyBTVkdFbGVtZW50O1xyXG4gICAgaWYgKCFzdmdFbGUpIHJldHVybiBudWxsO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZWxlOiBzdmdFbGUsXHJcbiAgICAgIGNoaWxkcmVuOiBzdmdFbGUucXVlcnlTZWxlY3RvckFsbCgncGF0aCwgcG9seWxpbmUsIHBvbHlnb24sIGNpcmNsZSwgbGluZSwgcmVjdCcpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2V0QXR0cmlidXRlKHN2ZzogU1ZHRWxlbWVudCwgc3ZnRWxlOiBTVkdFbGVtZW50LCBhdHRyaWJ1dGU6IHN0cmluZywgZGVmPzogc3RyaW5nKSB7XHJcbiAgICBsZXQgYXR0ciA9IHN2Z0VsZS5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKTtcclxuICAgIGlmIChhdHRyKSB7XHJcbiAgICAgIHN2Zy5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLCBhdHRyKTtcclxuICAgIH0gZWxzZSBpZiAoZGVmKSB7XHJcbiAgICAgIHN2Zy5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLCBkZWYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy88YW5pbWF0ZSBiZWdpbj1cIm1vdXNlZW50ZXJcIiBkdXI9XCI1MDBtc1wiIHJlcGVhdENvdW50PVwiMVwiIGF0dHJpYnV0ZU5hbWU9XCJkXCIgZnJvbT1cIk04Ni40MjUsMTMuMjA0bDUuNjQ4LDEyLjc0MUgwLjU1ICAgbDAuMTI1LTEyLjYxNkwwLjU1LDAuNTQ0aDkxLjUyM0w4Ni40MjUsMTMuMjA0elwiIHRvPVwiTTkyLjcyNSwxMy41MjFsMC4wNDQsMTIuODg3SDEuMjQ1ICAgbDctMTIuNjE2bC03LTEyLjc4NWg5MS41MjNMOTIuNzI1LDEzLjUyMXpcIiBmaWxsPVwiZnJlZXplXCI+PC9hbmltYXRlPlxyXG5cclxuICBzZXRBbmltYXRlcyhzdmdzOiBzdHJpbmdbXSkge1xyXG4gICAgaWYgKHN2Z3M/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IHN2ZyA9IHRoaXMuY3JlYXRlU3ZnKHN2Z3Muc2hpZnQoKSBhcyBzdHJpbmcpO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3N2Z0VsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgY2hpbGQgPSB0aGlzLl9zdmdFbGVtZW50LmNoaWxkcmVuW2ldO1xyXG4gICAgICAgIGxldCB0b0NoaWxkID0gc3ZnPy5jaGlsZHJlbltpXTtcclxuICAgICAgICBpZiAoY2hpbGQ/Lm5vZGVOYW1lID09PSAncGF0aCcgJiYgdG9DaGlsZD8ubm9kZU5hbWUgPT09ICdwYXRoJykge1xyXG4gICAgICAgICAgbGV0IHRvQW5pbWF0ZSA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYW5pbWF0ZScpO1xyXG4gICAgICAgICAgdG9BbmltYXRlLnNldEF0dHJpYnV0ZSgnZHVyJywgJzUwMG1zJyk7XHJcbiAgICAgICAgICB0b0FuaW1hdGUuc2V0QXR0cmlidXRlKCdyZXBlYXRDb3VudCcsICcxJyk7XHJcbiAgICAgICAgICB0b0FuaW1hdGUuc2V0QXR0cmlidXRlKCdhdHRyaWJ1dGVOYW1lJywgJ2QnKTtcclxuICAgICAgICAgIHRvQW5pbWF0ZS5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCAnZnJlZXplJyk7XHJcbiAgICAgICAgICB0b0FuaW1hdGUuc2V0QXR0cmlidXRlKCdmcm9tJywgY2hpbGQuZ2V0QXR0cmlidXRlKCdkJykgYXMgc3RyaW5nKTtcclxuICAgICAgICAgIHRvQW5pbWF0ZS5zZXRBdHRyaWJ1dGUoJ3RvJywgdG9DaGlsZC5nZXRBdHRyaWJ1dGUoJ2QnKSBhcyBzdHJpbmcpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChjaGlsZCwgdG9BbmltYXRlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiXHJcbiJdfQ==
|
|
@@ -6,10 +6,10 @@ import { XIconProperty } from './icon.property';
|
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export class XIconModule {
|
|
8
8
|
}
|
|
9
|
-
/** @nocollapse */ XIconModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
10
|
-
/** @nocollapse */ XIconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
11
|
-
/** @nocollapse */ XIconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
9
|
+
/** @nocollapse */ XIconModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
|
+
/** @nocollapse */ XIconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: XIconModule, declarations: [XIconComponent, XIconProperty], imports: [CommonModule], exports: [XIconComponent] });
|
|
11
|
+
/** @nocollapse */ XIconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XIconModule, providers: [XIconService], imports: [CommonModule] });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XIconModule, decorators: [{
|
|
13
13
|
type: NgModule,
|
|
14
14
|
args: [{
|
|
15
15
|
declarations: [XIconComponent, XIconProperty],
|
|
@@ -15,8 +15,8 @@ export const XIconHref = 'https://ngnest.com/static/icons/';
|
|
|
15
15
|
*/
|
|
16
16
|
export class XIconProperty extends XProperty {
|
|
17
17
|
}
|
|
18
|
-
/** @nocollapse */ XIconProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
19
|
-
/** @nocollapse */ XIconProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
18
|
+
/** @nocollapse */ XIconProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XIconProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
19
|
+
/** @nocollapse */ XIconProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XIconProperty, selector: "ng-component", inputs: { href: "href", type: "type", color: "color", rotate: "rotate", spin: "spin", to: "to" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
20
20
|
__decorate([
|
|
21
21
|
XWithConfig(X_CONFIG_NAME, XIconHref)
|
|
22
22
|
], XIconProperty.prototype, "href", void 0);
|
|
@@ -26,7 +26,7 @@ __decorate([
|
|
|
26
26
|
__decorate([
|
|
27
27
|
XInputBoolean()
|
|
28
28
|
], XIconProperty.prototype, "spin", void 0);
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XIconProperty, decorators: [{
|
|
30
30
|
type: Component,
|
|
31
31
|
args: [{ template: '' }]
|
|
32
32
|
}], propDecorators: { href: [{
|
|
@@ -77,9 +77,9 @@ export class XIconService {
|
|
|
77
77
|
return this.http.get(safeUrl, { responseType: 'text' });
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
|
-
/** @nocollapse */ XIconService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
81
|
-
/** @nocollapse */ XIconService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
80
|
+
/** @nocollapse */ XIconService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XIconService, deps: [{ token: i1.DomSanitizer }, { token: i2.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
81
|
+
/** @nocollapse */ XIconService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XIconService });
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XIconService, decorators: [{
|
|
83
83
|
type: Injectable
|
|
84
84
|
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i2.HttpClient, decorators: [{
|
|
85
85
|
type: Optional
|
|
@@ -12,9 +12,9 @@ export class XImageGroupComponent {
|
|
|
12
12
|
this.images.splice(this.images.indexOf(image), 1);
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
/** @nocollapse */ XImageGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
16
|
-
/** @nocollapse */ XImageGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
15
|
+
/** @nocollapse */ XImageGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImageGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
/** @nocollapse */ XImageGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XImageGroupComponent, selector: "x-image-group", ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: ["x-image-group{display:inline-flex;flex-wrap:wrap}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImageGroupComponent, decorators: [{
|
|
18
18
|
type: Component,
|
|
19
19
|
args: [{ selector: `${XImageGroupPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\r\n", styles: ["x-image-group{display:inline-flex;flex-wrap:wrap}\n"] }]
|
|
20
20
|
}] });
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, ViewChild } from '@angular/core';
|
|
1
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, ViewChild, inject } from '@angular/core';
|
|
2
2
|
import { XImagePreviewPrefix, XImagePreviewProperty } from './image.property';
|
|
3
3
|
import { X_DIALOG_DATA } from '@ng-nest/ui/dialog';
|
|
4
|
+
import { DOCUMENT } from '@angular/common';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "@ng-nest/ui/core";
|
|
6
7
|
import * as i2 from "@angular/common";
|
|
@@ -27,6 +28,7 @@ export class XImagePreviewComponent extends XImagePreviewProperty {
|
|
|
27
28
|
};
|
|
28
29
|
this.total = 1;
|
|
29
30
|
this.current = 1;
|
|
31
|
+
this.document = inject(DOCUMENT);
|
|
30
32
|
}
|
|
31
33
|
get getWrapperTransform() {
|
|
32
34
|
return `translate3d(${this.position.x}px, ${this.position.y}px, 0)`;
|
|
@@ -83,13 +85,15 @@ export class XImagePreviewComponent extends XImagePreviewProperty {
|
|
|
83
85
|
onDragReleased() {
|
|
84
86
|
let width = this.imageRef.nativeElement.offsetWidth * this.imgScale3d.x;
|
|
85
87
|
let height = this.imageRef.nativeElement.offsetHeight * this.imgScale3d.x;
|
|
86
|
-
const clientWidth = document.documentElement.clientWidth;
|
|
87
|
-
const clientHeight =
|
|
88
|
+
const clientWidth = this.document.documentElement.clientWidth;
|
|
89
|
+
const clientHeight = this.document.defaultView?.innerHeight || this.document.documentElement.clientHeight;
|
|
88
90
|
const isRotate = this.rotate % 180 !== 0;
|
|
89
91
|
const box = this.imageRef.nativeElement.getBoundingClientRect();
|
|
90
|
-
const docElem = document.documentElement;
|
|
91
|
-
const left = box.left +
|
|
92
|
-
|
|
92
|
+
const docElem = this.document.documentElement;
|
|
93
|
+
const left = box.left +
|
|
94
|
+
(this.document.defaultView?.pageXOffset || docElem.scrollLeft) -
|
|
95
|
+
(docElem.clientLeft || this.document.body.clientLeft || 0);
|
|
96
|
+
const top = box.top + (this.document.defaultView?.pageYOffset || docElem.scrollTop) - (docElem.clientTop || this.document.body.clientTop || 0);
|
|
93
97
|
width = isRotate ? height : width;
|
|
94
98
|
height = isRotate ? width : height;
|
|
95
99
|
let position = { x: 0, y: 0 };
|
|
@@ -121,9 +125,9 @@ export class XImagePreviewComponent extends XImagePreviewProperty {
|
|
|
121
125
|
return distance;
|
|
122
126
|
}
|
|
123
127
|
}
|
|
124
|
-
/** @nocollapse */ XImagePreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
125
|
-
/** @nocollapse */ XImagePreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
126
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
128
|
+
/** @nocollapse */ XImagePreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImagePreviewComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }, { token: X_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
129
|
+
/** @nocollapse */ XImagePreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XImagePreviewComponent, selector: "x-image-preview", viewQueries: [{ propertyName: "imageRef", first: true, predicate: ["imageRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-image-preview\" [ngClass]=\"classMap\">\r\n <div class=\"x-image-preview-header\">\r\n <div class=\"x-image-preview-header-left\">\r\n <span class=\"x-image-preview-current\" *ngIf=\"total != 1\">{{ current }} / {{ total }}</span>\r\n </div>\r\n <div class=\"x-image-preview-header-center\">\r\n <x-icon type=\"fto-corner-up-left\" (click)=\"onRotate(-90)\"></x-icon>\r\n <x-icon type=\"fto-corner-up-right\" (click)=\"onRotate(90)\"></x-icon>\r\n <x-icon type=\"fto-zoom-out\" [class.x-image-preview-disabled]=\"imgScale3d.x === 1\" (click)=\"imgScale3d.x > 1 && onScale(-1)\"></x-icon>\r\n <x-icon type=\"fto-zoom-in\" (click)=\"onScale(1)\"></x-icon>\r\n </div>\r\n <div class=\"x-image-preview-header-right\">\r\n <x-icon type=\"fto-x\" x-dialog-close></x-icon>\r\n </div>\r\n </div>\r\n <div\r\n class=\"x-image-preview-wrapper\"\r\n cdkDrag\r\n [style.transform]=\"getWrapperTransform\"\r\n [cdkDragFreeDragPosition]=\"position\"\r\n (cdkDragReleased)=\"onDragReleased()\"\r\n >\r\n <img #imageRef [src]=\"activated?.src\" [attr.alt]=\"activated?.alt\" cdkDragHandle [style.transform]=\"getImgTransform\" />\r\n </div>\r\n <div\r\n *ngIf=\"data && data.length > 1\"\r\n [class.x-image-preview-disabled]=\"current === 1\"\r\n class=\"x-image-preview-left\"\r\n (click)=\"current > 1 && onCurrentChange(-1)\"\r\n >\r\n <x-icon type=\"fto-chevron-left\"></x-icon>\r\n </div>\r\n <div\r\n *ngIf=\"data && data.length > 1\"\r\n [class.x-image-preview-disabled]=\"current === total\"\r\n class=\"x-image-preview-right\"\r\n (click)=\"current != total && onCurrentChange(1)\"\r\n >\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n </div>\r\n</div>\r\n", styles: ["x-image-preview{display:block;width:100%;height:100%}.x-image-preview{margin:0;padding:0;width:100%;height:100%}.x-image-preview-header{display:flex;align-items:center;justify-content:center;background-color:#0003;color:#fff;position:absolute;width:100%;z-index:1;height:2.75rem}.x-image-preview-header x-icon{font-size:1.25rem;padding:.75rem;cursor:pointer;transition:background-color var(--x-animation-duration-base)}.x-image-preview-header x-icon:hover:not(.x-image-preview-disabled){background-color:#0000001a}.x-image-preview-header x-icon.x-image-preview-disabled{color:#ffffff80;cursor:default}.x-image-preview-header-center{position:absolute}.x-image-preview-header-right{position:absolute;right:0}.x-image-preview-header-left{position:absolute;left:0}.x-image-preview-current{padding:.75rem}.x-image-preview-wrapper{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform var(--x-animation-duration-base) ease-out 0s}.x-image-preview-wrapper>img{max-width:100%;max-height:100%;vertical-align:middle;cursor:grab;transition:transform var(--x-animation-duration-base) ease-out 0s}.x-image-preview-left,.x-image-preview-right{position:absolute;top:50%;z-index:1;display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin-top:-1.375rem;color:#fff;background-color:#0003;border-radius:50%;transition:background-color var(--x-animation-duration-base);cursor:pointer;font-size:1.25rem}.x-image-preview-left:hover:not(.x-image-preview-disabled),.x-image-preview-right:hover:not(.x-image-preview-disabled){background-color:#0000001a}.x-image-preview-left.x-image-preview-disabled,.x-image-preview-right.x-image-preview-disabled{color:#ffffff80;cursor:default}.x-image-preview-left{left:1rem}.x-image-preview-right{right:1rem}.x-image-preview-portal .x-dialog-portal{background:transparent;box-shadow:none;padding:0}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i4.XDialogCloseDirective, selector: "[x-dialog-close]" }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i5.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImagePreviewComponent, decorators: [{
|
|
127
131
|
type: Component,
|
|
128
132
|
args: [{ selector: `${XImagePreviewPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-image-preview\" [ngClass]=\"classMap\">\r\n <div class=\"x-image-preview-header\">\r\n <div class=\"x-image-preview-header-left\">\r\n <span class=\"x-image-preview-current\" *ngIf=\"total != 1\">{{ current }} / {{ total }}</span>\r\n </div>\r\n <div class=\"x-image-preview-header-center\">\r\n <x-icon type=\"fto-corner-up-left\" (click)=\"onRotate(-90)\"></x-icon>\r\n <x-icon type=\"fto-corner-up-right\" (click)=\"onRotate(90)\"></x-icon>\r\n <x-icon type=\"fto-zoom-out\" [class.x-image-preview-disabled]=\"imgScale3d.x === 1\" (click)=\"imgScale3d.x > 1 && onScale(-1)\"></x-icon>\r\n <x-icon type=\"fto-zoom-in\" (click)=\"onScale(1)\"></x-icon>\r\n </div>\r\n <div class=\"x-image-preview-header-right\">\r\n <x-icon type=\"fto-x\" x-dialog-close></x-icon>\r\n </div>\r\n </div>\r\n <div\r\n class=\"x-image-preview-wrapper\"\r\n cdkDrag\r\n [style.transform]=\"getWrapperTransform\"\r\n [cdkDragFreeDragPosition]=\"position\"\r\n (cdkDragReleased)=\"onDragReleased()\"\r\n >\r\n <img #imageRef [src]=\"activated?.src\" [attr.alt]=\"activated?.alt\" cdkDragHandle [style.transform]=\"getImgTransform\" />\r\n </div>\r\n <div\r\n *ngIf=\"data && data.length > 1\"\r\n [class.x-image-preview-disabled]=\"current === 1\"\r\n class=\"x-image-preview-left\"\r\n (click)=\"current > 1 && onCurrentChange(-1)\"\r\n >\r\n <x-icon type=\"fto-chevron-left\"></x-icon>\r\n </div>\r\n <div\r\n *ngIf=\"data && data.length > 1\"\r\n [class.x-image-preview-disabled]=\"current === total\"\r\n class=\"x-image-preview-right\"\r\n (click)=\"current != total && onCurrentChange(1)\"\r\n >\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n </div>\r\n</div>\r\n", styles: ["x-image-preview{display:block;width:100%;height:100%}.x-image-preview{margin:0;padding:0;width:100%;height:100%}.x-image-preview-header{display:flex;align-items:center;justify-content:center;background-color:#0003;color:#fff;position:absolute;width:100%;z-index:1;height:2.75rem}.x-image-preview-header x-icon{font-size:1.25rem;padding:.75rem;cursor:pointer;transition:background-color var(--x-animation-duration-base)}.x-image-preview-header x-icon:hover:not(.x-image-preview-disabled){background-color:#0000001a}.x-image-preview-header x-icon.x-image-preview-disabled{color:#ffffff80;cursor:default}.x-image-preview-header-center{position:absolute}.x-image-preview-header-right{position:absolute;right:0}.x-image-preview-header-left{position:absolute;left:0}.x-image-preview-current{padding:.75rem}.x-image-preview-wrapper{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform var(--x-animation-duration-base) ease-out 0s}.x-image-preview-wrapper>img{max-width:100%;max-height:100%;vertical-align:middle;cursor:grab;transition:transform var(--x-animation-duration-base) ease-out 0s}.x-image-preview-left,.x-image-preview-right{position:absolute;top:50%;z-index:1;display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin-top:-1.375rem;color:#fff;background-color:#0003;border-radius:50%;transition:background-color var(--x-animation-duration-base);cursor:pointer;font-size:1.25rem}.x-image-preview-left:hover:not(.x-image-preview-disabled),.x-image-preview-right:hover:not(.x-image-preview-disabled){background-color:#0000001a}.x-image-preview-left.x-image-preview-disabled,.x-image-preview-right.x-image-preview-disabled{color:#ffffff80;cursor:default}.x-image-preview-left{left:1rem}.x-image-preview-right{right:1rem}.x-image-preview-portal .x-dialog-portal{background:transparent;box-shadow:none;padding:0}\n"] }]
|
|
129
133
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }, { type: undefined, decorators: [{
|
|
@@ -133,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImpor
|
|
|
133
137
|
type: ViewChild,
|
|
134
138
|
args: ['imageRef']
|
|
135
139
|
}] } });
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtcHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9pbWFnZS9pbWFnZS1wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2ltYWdlL2ltYWdlLXByZXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBRXZCLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFMUYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7O0FBU25ELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxxQkFBcUI7SUEwQi9ELFlBQ1MsUUFBbUIsRUFDbkIsVUFBbUMsRUFDbkMsR0FBc0IsRUFDdEIsYUFBNkIsRUFDTixJQUFrQjtRQUVoRCxLQUFLLEVBQUUsQ0FBQztRQU5ELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBQ04sU0FBSSxHQUFKLElBQUksQ0FBYztRQTlCbEQsZUFBVSxHQUFHO1lBQ1gsQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1NBQ0wsQ0FBQztRQUNGLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFFWCxhQUFRLEdBQUc7WUFDVCxDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1NBQ0wsQ0FBQztRQUdGLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVixZQUFPLEdBQUcsQ0FBQyxDQUFDO0lBbUJaLENBQUM7SUFqQkQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxlQUFlLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDdEUsQ0FBQztJQUNELElBQUksZUFBZTtRQUNqQixPQUFPLFdBQVcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLE1BQU0sTUFBTSxDQUFDO0lBQy9HLENBQUM7SUFjRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxXQUFXLEtBQUksQ0FBQztJQUVoQixjQUFjO1FBQ1osSUFBSSxDQUFDLFVBQVUsR0FBRztZQUNoQixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7U0FDTCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRztZQUNkLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7U0FDTCxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBQ3ZCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1NBQy9CO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRTtvQkFDZixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7b0JBQ3pCLE9BQU8sSUFBSSxDQUFDO2lCQUNiO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsR0FBVztRQUN6QixJQUFJLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFXO1FBQ2xCLElBQUksQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBWTtRQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUMxRSxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQztRQUN6RCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDO1FBQ2pGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUN6QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2hFLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUM7UUFDekMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzSCxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3RILEtBQUssR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2xDLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBRW5DLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDOUIsSUFBSSxLQUFLLEdBQUcsV0FBVyxJQUFJLE1BQU0sR0FBRyxZQUFZLEVBQUU7WUFDaEQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ2xELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztZQUNuRCxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hCO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYSxFQUFFLElBQVksRUFBRSxVQUFrQjtRQUN0RCxNQUFNLFlBQVksR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxJQUFJLFFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBRW5DLElBQUksSUFBSSxHQUFHLFVBQVUsRUFBRTtZQUNyQixJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7Z0JBQ2IsUUFBUSxHQUFHLFdBQVcsQ0FBQzthQUN4QjtZQUNELElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxZQUFZLEdBQUcsVUFBVSxFQUFFO2dCQUMxQyxRQUFRLEdBQUcsQ0FBQyxXQUFXLENBQUM7YUFDekI7U0FDRjthQUFNO1lBQ0wsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLFlBQVksR0FBRyxVQUFVLEVBQUU7Z0JBQzFDLFFBQVEsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO2FBQ25EO1NBQ0Y7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOztzSUFsSVUsc0JBQXNCLG9JQStCdkIsYUFBYTswSEEvQlosc0JBQXNCLHlNQ3RCbkMsa3ZEQXlDQTsyRkRuQmEsc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNFLEdBQUcsbUJBQW1CLEVBQUUsaUJBR25CLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07OzBCQWlDNUMsTUFBTTsyQkFBQyxhQUFhOzRDQVBBLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBJbmplY3QsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhJbWFnZU5vZGUsIFhJbWFnZVByZXZpZXdQcmVmaXgsIFhJbWFnZVByZXZpZXdQcm9wZXJ0eSB9IGZyb20gJy4vaW1hZ2UucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYQ29uZmlnU2VydmljZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYX0RJQUxPR19EQVRBIH0gZnJvbSAnQG5nLW5lc3QvdWkvZGlhbG9nJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYSW1hZ2VQcmV2aWV3UHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ltYWdlLXByZXZpZXcuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYSW1hZ2VQcmV2aWV3Q29tcG9uZW50IGV4dGVuZHMgWEltYWdlUHJldmlld1Byb3BlcnR5IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBpbWdTY2FsZTNkID0ge1xyXG4gICAgeDogMSxcclxuICAgIHk6IDEsXHJcbiAgICB6OiAxXHJcbiAgfTtcclxuICByb3RhdGUgPSAwO1xyXG5cclxuICBwb3NpdGlvbiA9IHtcclxuICAgIHg6IDAsXHJcbiAgICB5OiAwXHJcbiAgfTtcclxuXHJcbiAgYWN0aXZhdGVkPzogWEltYWdlTm9kZTtcclxuICB0b3RhbCA9IDE7XHJcbiAgY3VycmVudCA9IDE7XHJcblxyXG4gIGdldCBnZXRXcmFwcGVyVHJhbnNmb3JtKCkge1xyXG4gICAgcmV0dXJuIGB0cmFuc2xhdGUzZCgke3RoaXMucG9zaXRpb24ueH1weCwgJHt0aGlzLnBvc2l0aW9uLnl9cHgsIDApYDtcclxuICB9XHJcbiAgZ2V0IGdldEltZ1RyYW5zZm9ybSgpIHtcclxuICAgIHJldHVybiBgc2NhbGUzZCgke3RoaXMuaW1nU2NhbGUzZC54fSwgJHt0aGlzLmltZ1NjYWxlM2QueX0sICR7dGhpcy5pbWdTY2FsZTNkLnp9KSByb3RhdGUoJHt0aGlzLnJvdGF0ZX1kZWcpYDtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2ltYWdlUmVmJykgaW1hZ2VSZWYhOiBFbGVtZW50UmVmPEhUTUxJbWFnZUVsZW1lbnQ+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2UsXHJcbiAgICBASW5qZWN0KFhfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBYSW1hZ2VOb2RlW11cclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0QWN0aXZhdGVkKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHt9XHJcblxyXG4gIGluaXRpYWxpemF0aW9uKCkge1xyXG4gICAgdGhpcy5pbWdTY2FsZTNkID0ge1xyXG4gICAgICB4OiAxLFxyXG4gICAgICB5OiAxLFxyXG4gICAgICB6OiAxXHJcbiAgICB9O1xyXG4gICAgdGhpcy5yb3RhdGUgPSAwO1xyXG4gICAgdGhpcy5wb3NpdGlvbiA9IHtcclxuICAgICAgeDogMCxcclxuICAgICAgeTogMFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHNldEFjdGl2YXRlZCgpIHtcclxuICAgIGlmICghdGhpcy5kYXRhKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5kYXRhLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICB0aGlzLmFjdGl2YXRlZCA9IHRoaXMuZGF0YVswXTtcclxuICAgICAgdGhpcy50b3RhbCA9IHRoaXMuY3VycmVudCA9IDE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRvdGFsID0gdGhpcy5kYXRhLmxlbmd0aDtcclxuICAgICAgdGhpcy5hY3RpdmF0ZWQgPSB0aGlzLmRhdGEuZmluZCgoeCwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoeC5hY3RpdmF0ZWQpIHtcclxuICAgICAgICAgIHRoaXMuY3VycmVudCA9IGluZGV4ICsgMTtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DdXJyZW50Q2hhbmdlKG51bTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmN1cnJlbnQgKz0gbnVtO1xyXG4gICAgdGhpcy5hY3RpdmF0ZWQgPSB0aGlzLmRhdGFbdGhpcy5jdXJyZW50IC0gMV07XHJcbiAgICB0aGlzLmluaXRpYWxpemF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBvblJvdGF0ZShkZWc6IG51bWJlcikge1xyXG4gICAgdGhpcy5yb3RhdGUgKz0gZGVnO1xyXG4gIH1cclxuXHJcbiAgb25TY2FsZSh6b29tOiBudW1iZXIpIHtcclxuICAgIHRoaXMuaW1nU2NhbGUzZC54ICs9IHpvb207XHJcbiAgICB0aGlzLmltZ1NjYWxlM2QueSArPSB6b29tO1xyXG4gIH1cclxuXHJcbiAgb25EcmFnUmVsZWFzZWQoKSB7XHJcbiAgICBsZXQgd2lkdGggPSB0aGlzLmltYWdlUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKiB0aGlzLmltZ1NjYWxlM2QueDtcclxuICAgIGxldCBoZWlnaHQgPSB0aGlzLmltYWdlUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICogdGhpcy5pbWdTY2FsZTNkLng7XHJcbiAgICBjb25zdCBjbGllbnRXaWR0aCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDtcclxuICAgIGNvbnN0IGNsaWVudEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgY29uc3QgaXNSb3RhdGUgPSB0aGlzLnJvdGF0ZSAlIDE4MCAhPT0gMDtcclxuICAgIGNvbnN0IGJveCA9IHRoaXMuaW1hZ2VSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IGRvY0VsZW0gPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbiAgICBjb25zdCBsZWZ0ID0gYm94LmxlZnQgKyAod2luZG93LnBhZ2VYT2Zmc2V0IHx8IGRvY0VsZW0uc2Nyb2xsTGVmdCkgLSAoZG9jRWxlbS5jbGllbnRMZWZ0IHx8IGRvY3VtZW50LmJvZHkuY2xpZW50TGVmdCB8fCAwKTtcclxuICAgIGNvbnN0IHRvcCA9IGJveC50b3AgKyAod2luZG93LnBhZ2VZT2Zmc2V0IHx8IGRvY0VsZW0uc2Nyb2xsVG9wKSAtIChkb2NFbGVtLmNsaWVudFRvcCB8fCBkb2N1bWVudC5ib2R5LmNsaWVudFRvcCB8fCAwKTtcclxuICAgIHdpZHRoID0gaXNSb3RhdGUgPyBoZWlnaHQgOiB3aWR0aDtcclxuICAgIGhlaWdodCA9IGlzUm90YXRlID8gd2lkdGggOiBoZWlnaHQ7XHJcblxyXG4gICAgbGV0IHBvc2l0aW9uID0geyB4OiAwLCB5OiAwIH07XHJcbiAgICBpZiAod2lkdGggPiBjbGllbnRXaWR0aCB8fCBoZWlnaHQgPiBjbGllbnRIZWlnaHQpIHtcclxuICAgICAgY29uc3QgeCA9IHRoaXMuZml0UG9pbnQobGVmdCwgd2lkdGgsIGNsaWVudFdpZHRoKTtcclxuICAgICAgY29uc3QgeSA9IHRoaXMuZml0UG9pbnQodG9wLCBoZWlnaHQsIGNsaWVudEhlaWdodCk7XHJcbiAgICAgIHBvc2l0aW9uLnggPSB4ID8geCA6IDA7XHJcbiAgICAgIHBvc2l0aW9uLnkgPSB5ID8geSA6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5wb3NpdGlvbiA9IHsgLi4udGhpcy5wb3NpdGlvbiwgLi4ucG9zaXRpb24gfTtcclxuICB9XHJcblxyXG4gIGZpdFBvaW50KHN0YXJ0OiBudW1iZXIsIHNpemU6IG51bWJlciwgY2xpZW50U2l6ZTogbnVtYmVyKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgICBjb25zdCBzdGFydEFkZFNpemUgPSBzdGFydCArIHNpemU7XHJcbiAgICBjb25zdCBvZmZzZXRTdGFydCA9IChzaXplIC0gY2xpZW50U2l6ZSkgLyAyO1xyXG4gICAgbGV0IGRpc3RhbmNlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBpZiAoc2l6ZSA+IGNsaWVudFNpemUpIHtcclxuICAgICAgaWYgKHN0YXJ0ID4gMCkge1xyXG4gICAgICAgIGRpc3RhbmNlID0gb2Zmc2V0U3RhcnQ7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHN0YXJ0IDwgMCAmJiBzdGFydEFkZFNpemUgPCBjbGllbnRTaXplKSB7XHJcbiAgICAgICAgZGlzdGFuY2UgPSAtb2Zmc2V0U3RhcnQ7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChzdGFydCA8IDAgfHwgc3RhcnRBZGRTaXplID4gY2xpZW50U2l6ZSkge1xyXG4gICAgICAgIGRpc3RhbmNlID0gc3RhcnQgPCAwID8gb2Zmc2V0U3RhcnQgOiAtb2Zmc2V0U3RhcnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGlzdGFuY2U7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LWltYWdlLXByZXZpZXdcIiBbbmdDbGFzc109XCJjbGFzc01hcFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWltYWdlLXByZXZpZXctaGVhZGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1pbWFnZS1wcmV2aWV3LWhlYWRlci1sZWZ0XCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwieC1pbWFnZS1wcmV2aWV3LWN1cnJlbnRcIiAqbmdJZj1cInRvdGFsICE9IDFcIj57eyBjdXJyZW50IH19IC8ge3sgdG90YWwgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWltYWdlLXByZXZpZXctaGVhZGVyLWNlbnRlclwiPlxyXG4gICAgICA8eC1pY29uIHR5cGU9XCJmdG8tY29ybmVyLXVwLWxlZnRcIiAoY2xpY2spPVwib25Sb3RhdGUoLTkwKVwiPjwveC1pY29uPlxyXG4gICAgICA8eC1pY29uIHR5cGU9XCJmdG8tY29ybmVyLXVwLXJpZ2h0XCIgKGNsaWNrKT1cIm9uUm90YXRlKDkwKVwiPjwveC1pY29uPlxyXG4gICAgICA8eC1pY29uIHR5cGU9XCJmdG8tem9vbS1vdXRcIiBbY2xhc3MueC1pbWFnZS1wcmV2aWV3LWRpc2FibGVkXT1cImltZ1NjYWxlM2QueCA9PT0gMVwiIChjbGljayk9XCJpbWdTY2FsZTNkLnggPiAxICYmIG9uU2NhbGUoLTEpXCI+PC94LWljb24+XHJcbiAgICAgIDx4LWljb24gdHlwZT1cImZ0by16b29tLWluXCIgKGNsaWNrKT1cIm9uU2NhbGUoMSlcIj48L3gtaWNvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIngtaW1hZ2UtcHJldmlldy1oZWFkZXItcmlnaHRcIj5cclxuICAgICAgPHgtaWNvbiB0eXBlPVwiZnRvLXhcIiB4LWRpYWxvZy1jbG9zZT48L3gtaWNvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwieC1pbWFnZS1wcmV2aWV3LXdyYXBwZXJcIlxyXG4gICAgY2RrRHJhZ1xyXG4gICAgW3N0eWxlLnRyYW5zZm9ybV09XCJnZXRXcmFwcGVyVHJhbnNmb3JtXCJcclxuICAgIFtjZGtEcmFnRnJlZURyYWdQb3NpdGlvbl09XCJwb3NpdGlvblwiXHJcbiAgICAoY2RrRHJhZ1JlbGVhc2VkKT1cIm9uRHJhZ1JlbGVhc2VkKClcIlxyXG4gID5cclxuICAgIDxpbWcgI2ltYWdlUmVmIFtzcmNdPVwiYWN0aXZhdGVkPy5zcmNcIiBbYXR0ci5hbHRdPVwiYWN0aXZhdGVkPy5hbHRcIiBjZGtEcmFnSGFuZGxlIFtzdHlsZS50cmFuc2Zvcm1dPVwiZ2V0SW1nVHJhbnNmb3JtXCIgLz5cclxuICA8L2Rpdj5cclxuICA8ZGl2XHJcbiAgICAqbmdJZj1cImRhdGEgJiYgZGF0YS5sZW5ndGggPiAxXCJcclxuICAgIFtjbGFzcy54LWltYWdlLXByZXZpZXctZGlzYWJsZWRdPVwiY3VycmVudCA9PT0gMVwiXHJcbiAgICBjbGFzcz1cIngtaW1hZ2UtcHJldmlldy1sZWZ0XCJcclxuICAgIChjbGljayk9XCJjdXJyZW50ID4gMSAmJiBvbkN1cnJlbnRDaGFuZ2UoLTEpXCJcclxuICA+XHJcbiAgICA8eC1pY29uIHR5cGU9XCJmdG8tY2hldnJvbi1sZWZ0XCI+PC94LWljb24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgKm5nSWY9XCJkYXRhICYmIGRhdGEubGVuZ3RoID4gMVwiXHJcbiAgICBbY2xhc3MueC1pbWFnZS1wcmV2aWV3LWRpc2FibGVkXT1cImN1cnJlbnQgPT09IHRvdGFsXCJcclxuICAgIGNsYXNzPVwieC1pbWFnZS1wcmV2aWV3LXJpZ2h0XCJcclxuICAgIChjbGljayk9XCJjdXJyZW50ICE9IHRvdGFsICYmIG9uQ3VycmVudENoYW5nZSgxKVwiXHJcbiAgPlxyXG4gICAgPHgtaWNvbiB0eXBlPVwiZnRvLWNoZXZyb24tcmlnaHRcIj48L3gtaWNvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtcHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9pbWFnZS9pbWFnZS1wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2ltYWdlL2ltYWdlLXByZXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBRXZCLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYyxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7QUFTM0MsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHFCQUFxQjtJQTRCL0QsWUFDUyxRQUFtQixFQUNuQixVQUFtQyxFQUNuQyxHQUFzQixFQUN0QixhQUE2QixFQUNOLElBQWtCO1FBRWhELEtBQUssRUFBRSxDQUFDO1FBTkQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFDTixTQUFJLEdBQUosSUFBSSxDQUFjO1FBaENsRCxlQUFVLEdBQUc7WUFDWCxDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7U0FDTCxDQUFDO1FBQ0YsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUVYLGFBQVEsR0FBRztZQUNULENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7U0FD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LENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQzthQUNuRDtTQUNGO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs7c0lBeElVLHNCQUFzQixvSUFpQ3ZCLGFBQWE7MEhBakNaLHNCQUFzQix5TUN4Qm5DLGt2REF5Q0E7MkZEakJhLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDRSxHQUFHLG1CQUFtQixFQUFFLGlCQUduQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNOzswQkFtQzVDLE1BQU07MkJBQUMsYUFBYTs0Q0FQQSxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBPbkNoYW5nZXMsXHJcbiAgSW5qZWN0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBpbmplY3RcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWEltYWdlTm9kZSwgWEltYWdlUHJldmlld1ByZWZpeCwgWEltYWdlUHJldmlld1Byb3BlcnR5IH0gZnJvbSAnLi9pbWFnZS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhDb25maWdTZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFhfRElBTE9HX0RBVEEgfSBmcm9tICdAbmctbmVzdC91aS9kaWFsb2cnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WEltYWdlUHJldmlld1ByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1wcmV2aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbWFnZS1wcmV2aWV3LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWEltYWdlUHJldmlld0NvbXBvbmVudCBleHRlbmRzIFhJbWFnZVByZXZpZXdQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgaW1nU2NhbGUzZCA9IHtcclxuICAgIHg6IDEsXHJcbiAgICB5OiAxLFxyXG4gICAgejogMVxyXG4gIH07XHJcbiAgcm90YXRlID0gMDtcclxuXHJcbiAgcG9zaXRpb24gPSB7XHJcbiAgICB4OiAwLFxyXG4gICAgeTogMFxyXG4gIH07XHJcblxyXG4gIGFjdGl2YXRlZD86IFhJbWFnZU5vZGU7XHJcbiAgdG90YWwgPSAxO1xyXG4gIGN1cnJlbnQgPSAxO1xyXG5cclxuICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuXHJcbiAgZ2V0IGdldFdyYXBwZXJUcmFuc2Zvcm0oKSB7XHJcbiAgICByZXR1cm4gYHRyYW5zbGF0ZTNkKCR7dGhpcy5wb3NpdGlvbi54fXB4LCAke3RoaXMucG9zaXRpb24ueX1weCwgMClgO1xyXG4gIH1cclxuICBnZXQgZ2V0SW1nVHJhbnNmb3JtKCkge1xyXG4gICAgcmV0dXJuIGBzY2FsZTNkKCR7dGhpcy5pbWdTY2FsZTNkLnh9LCAke3RoaXMuaW1nU2NhbGUzZC55fSwgJHt0aGlzLmltZ1NjYWxlM2Quen0pIHJvdGF0ZSgke3RoaXMucm90YXRlfWRlZylgO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgnaW1hZ2VSZWYnKSBpbWFnZVJlZiE6IEVsZW1lbnRSZWY8SFRNTEltYWdlRWxlbWVudD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZSxcclxuICAgIEBJbmplY3QoWF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IFhJbWFnZU5vZGVbXVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRBY3RpdmF0ZWQoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge31cclxuXHJcbiAgaW5pdGlhbGl6YXRpb24oKSB7XHJcbiAgICB0aGlzLmltZ1NjYWxlM2QgPSB7XHJcbiAgICAgIHg6IDEsXHJcbiAgICAgIHk6IDEsXHJcbiAgICAgIHo6IDFcclxuICAgIH07XHJcbiAgICB0aGlzLnJvdGF0ZSA9IDA7XHJcbiAgICB0aGlzLnBvc2l0aW9uID0ge1xyXG4gICAgICB4OiAwLFxyXG4gICAgICB5OiAwXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2V0QWN0aXZhdGVkKCkge1xyXG4gICAgaWYgKCF0aGlzLmRhdGEpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmRhdGEubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGVkID0gdGhpcy5kYXRhWzBdO1xyXG4gICAgICB0aGlzLnRvdGFsID0gdGhpcy5jdXJyZW50ID0gMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudG90YWwgPSB0aGlzLmRhdGEubGVuZ3RoO1xyXG4gICAgICB0aGlzLmFjdGl2YXRlZCA9IHRoaXMuZGF0YS5maW5kKCh4LCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGlmICh4LmFjdGl2YXRlZCkge1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50ID0gaW5kZXggKyAxO1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkN1cnJlbnRDaGFuZ2UobnVtOiBudW1iZXIpIHtcclxuICAgIHRoaXMuY3VycmVudCArPSBudW07XHJcbiAgICB0aGlzLmFjdGl2YXRlZCA9IHRoaXMuZGF0YVt0aGlzLmN1cnJlbnQgLSAxXTtcclxuICAgIHRoaXMuaW5pdGlhbGl6YXRpb24oKTtcclxuICB9XHJcblxyXG4gIG9uUm90YXRlKGRlZzogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnJvdGF0ZSArPSBkZWc7XHJcbiAgfVxyXG5cclxuICBvblNjYWxlKHpvb206IG51bWJlcikge1xyXG4gICAgdGhpcy5pbWdTY2FsZTNkLnggKz0gem9vbTtcclxuICAgIHRoaXMuaW1nU2NhbGUzZC55ICs9IHpvb207XHJcbiAgfVxyXG5cclxuICBvbkRyYWdSZWxlYXNlZCgpIHtcclxuICAgIGxldCB3aWR0aCA9IHRoaXMuaW1hZ2VSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAqIHRoaXMuaW1nU2NhbGUzZC54O1xyXG4gICAgbGV0IGhlaWdodCA9IHRoaXMuaW1hZ2VSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKiB0aGlzLmltZ1NjYWxlM2QueDtcclxuICAgIGNvbnN0IGNsaWVudFdpZHRoID0gdGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7XHJcbiAgICBjb25zdCBjbGllbnRIZWlnaHQgPSB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3Py5pbm5lckhlaWdodCB8fCB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICBjb25zdCBpc1JvdGF0ZSA9IHRoaXMucm90YXRlICUgMTgwICE9PSAwO1xyXG4gICAgY29uc3QgYm94ID0gdGhpcy5pbWFnZVJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3QgZG9jRWxlbSA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xyXG4gICAgY29uc3QgbGVmdCA9XHJcbiAgICAgIGJveC5sZWZ0ICtcclxuICAgICAgKHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXc/LnBhZ2VYT2Zmc2V0IHx8IGRvY0VsZW0uc2Nyb2xsTGVmdCkgLVxyXG4gICAgICAoZG9jRWxlbS5jbGllbnRMZWZ0IHx8IHRoaXMuZG9jdW1lbnQuYm9keS5jbGllbnRMZWZ0IHx8IDApO1xyXG4gICAgY29uc3QgdG9wID1cclxuICAgICAgYm94LnRvcCArICh0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3Py5wYWdlWU9mZnNldCB8fCBkb2NFbGVtLnNjcm9sbFRvcCkgLSAoZG9jRWxlbS5jbGllbnRUb3AgfHwgdGhpcy5kb2N1bWVudC5ib2R5LmNsaWVudFRvcCB8fCAwKTtcclxuICAgIHdpZHRoID0gaXNSb3RhdGUgPyBoZWlnaHQgOiB3aWR0aDtcclxuICAgIGhlaWdodCA9IGlzUm90YXRlID8gd2lkdGggOiBoZWlnaHQ7XHJcblxyXG4gICAgbGV0IHBvc2l0aW9uID0geyB4OiAwLCB5OiAwIH07XHJcbiAgICBpZiAod2lkdGggPiBjbGllbnRXaWR0aCB8fCBoZWlnaHQgPiBjbGllbnRIZWlnaHQpIHtcclxuICAgICAgY29uc3QgeCA9IHRoaXMuZml0UG9pbnQobGVmdCwgd2lkdGgsIGNsaWVudFdpZHRoKTtcclxuICAgICAgY29uc3QgeSA9IHRoaXMuZml0UG9pbnQodG9wLCBoZWlnaHQsIGNsaWVudEhlaWdodCk7XHJcbiAgICAgIHBvc2l0aW9uLnggPSB4ID8geCA6IDA7XHJcbiAgICAgIHBvc2l0aW9uLnkgPSB5ID8geSA6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5wb3NpdGlvbiA9IHsgLi4udGhpcy5wb3NpdGlvbiwgLi4ucG9zaXRpb24gfTtcclxuICB9XHJcblxyXG4gIGZpdFBvaW50KHN0YXJ0OiBudW1iZXIsIHNpemU6IG51bWJlciwgY2xpZW50U2l6ZTogbnVtYmVyKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgICBjb25zdCBzdGFydEFkZFNpemUgPSBzdGFydCArIHNpemU7XHJcbiAgICBjb25zdCBvZmZzZXRTdGFydCA9IChzaXplIC0gY2xpZW50U2l6ZSkgLyAyO1xyXG4gICAgbGV0IGRpc3RhbmNlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBpZiAoc2l6ZSA+IGNsaWVudFNpemUpIHtcclxuICAgICAgaWYgKHN0YXJ0ID4gMCkge1xyXG4gICAgICAgIGRpc3RhbmNlID0gb2Zmc2V0U3RhcnQ7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHN0YXJ0IDwgMCAmJiBzdGFydEFkZFNpemUgPCBjbGllbnRTaXplKSB7XHJcbiAgICAgICAgZGlzdGFuY2UgPSAtb2Zmc2V0U3RhcnQ7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChzdGFydCA8IDAgfHwgc3RhcnRBZGRTaXplID4gY2xpZW50U2l6ZSkge1xyXG4gICAgICAgIGRpc3RhbmNlID0gc3RhcnQgPCAwID8gb2Zmc2V0U3RhcnQgOiAtb2Zmc2V0U3RhcnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGlzdGFuY2U7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LWltYWdlLXByZXZpZXdcIiBbbmdDbGFzc109XCJjbGFzc01hcFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWltYWdlLXByZXZpZXctaGVhZGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1pbWFnZS1wcmV2aWV3LWhlYWRlci1sZWZ0XCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwieC1pbWFnZS1wcmV2aWV3LWN1cnJlbnRcIiAqbmdJZj1cInRvdGFsICE9IDFcIj57eyBjdXJyZW50IH19IC8ge3sgdG90YWwgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWltYWdlLXByZXZpZXctaGVhZGVyLWNlbnRlclwiPlxyXG4gICAgICA8eC1pY29uIHR5cGU9XCJmdG8tY29ybmVyLXVwLWxlZnRcIiAoY2xpY2spPVwib25Sb3RhdGUoLTkwKVwiPjwveC1pY29uPlxyXG4gICAgICA8eC1pY29uIHR5cGU9XCJmdG8tY29ybmVyLXVwLXJpZ2h0XCIgKGNsaWNrKT1cIm9uUm90YXRlKDkwKVwiPjwveC1pY29uPlxyXG4gICAgICA8eC1pY29uIHR5cGU9XCJmdG8tem9vbS1vdXRcIiBbY2xhc3MueC1pbWFnZS1wcmV2aWV3LWRpc2FibGVkXT1cImltZ1NjYWxlM2QueCA9PT0gMVwiIChjbGljayk9XCJpbWdTY2FsZTNkLnggPiAxICYmIG9uU2NhbGUoLTEpXCI+PC94LWljb24+XHJcbiAgICAgIDx4LWljb24gdHlwZT1cImZ0by16b29tLWluXCIgKGNsaWNrKT1cIm9uU2NhbGUoMSlcIj48L3gtaWNvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIngtaW1hZ2UtcHJldmlldy1oZWFkZXItcmlnaHRcIj5cclxuICAgICAgPHgtaWNvbiB0eXBlPVwiZnRvLXhcIiB4LWRpYWxvZy1jbG9zZT48L3gtaWNvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwieC1pbWFnZS1wcmV2aWV3LXdyYXBwZXJcIlxyXG4gICAgY2RrRHJhZ1xyXG4gICAgW3N0eWxlLnRyYW5zZm9ybV09XCJnZXRXcmFwcGVyVHJhbnNmb3JtXCJcclxuICAgIFtjZGtEcmFnRnJlZURyYWdQb3NpdGlvbl09XCJwb3NpdGlvblwiXHJcbiAgICAoY2RrRHJhZ1JlbGVhc2VkKT1cIm9uRHJhZ1JlbGVhc2VkKClcIlxyXG4gID5cclxuICAgIDxpbWcgI2ltYWdlUmVmIFtzcmNdPVwiYWN0aXZhdGVkPy5zcmNcIiBbYXR0ci5hbHRdPVwiYWN0aXZhdGVkPy5hbHRcIiBjZGtEcmFnSGFuZGxlIFtzdHlsZS50cmFuc2Zvcm1dPVwiZ2V0SW1nVHJhbnNmb3JtXCIgLz5cclxuICA8L2Rpdj5cclxuICA8ZGl2XHJcbiAgICAqbmdJZj1cImRhdGEgJiYgZGF0YS5sZW5ndGggPiAxXCJcclxuICAgIFtjbGFzcy54LWltYWdlLXByZXZpZXctZGlzYWJsZWRdPVwiY3VycmVudCA9PT0gMVwiXHJcbiAgICBjbGFzcz1cIngtaW1hZ2UtcHJldmlldy1sZWZ0XCJcclxuICAgIChjbGljayk9XCJjdXJyZW50ID4gMSAmJiBvbkN1cnJlbnRDaGFuZ2UoLTEpXCJcclxuICA+XHJcbiAgICA8eC1pY29uIHR5cGU9XCJmdG8tY2hldnJvbi1sZWZ0XCI+PC94LWljb24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgKm5nSWY9XCJkYXRhICYmIGRhdGEubGVuZ3RoID4gMVwiXHJcbiAgICBbY2xhc3MueC1pbWFnZS1wcmV2aWV3LWRpc2FibGVkXT1cImN1cnJlbnQgPT09IHRvdGFsXCJcclxuICAgIGNsYXNzPVwieC1pbWFnZS1wcmV2aWV3LXJpZ2h0XCJcclxuICAgIChjbGljayk9XCJjdXJyZW50ICE9IHRvdGFsICYmIG9uQ3VycmVudENoYW5nZSgxKVwiXHJcbiAgPlxyXG4gICAgPHgtaWNvbiB0eXBlPVwiZnRvLWNoZXZyb24tcmlnaHRcIj48L3gtaWNvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -83,9 +83,9 @@ export class XImageComponent extends XImageProperty {
|
|
|
83
83
|
this.load.emit(event);
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
|
-
/** @nocollapse */ XImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
87
|
-
/** @nocollapse */ XImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
88
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
86
|
+
/** @nocollapse */ XImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImageComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }, { token: i2.XDialogService }, { token: i3.XI18nService }, { token: i4.XImageGroupComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
87
|
+
/** @nocollapse */ XImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XImageComponent, selector: "x-image", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-image\" [ngClass]=\"classMap\">\r\n <img\r\n *ngIf=\"!isError && !fallback\"\r\n [hidden]=\"placeholder && !isLoaded\"\r\n class=\"x-image-img\"\r\n [src]=\"src\"\r\n [style.width]=\"width\"\r\n [style.height]=\"height\"\r\n (error)=\"onError($event)\"\r\n (load)=\"onLoad($event)\"\r\n />\r\n <img *ngIf=\"placeholder && !isLoaded\" class=\"x-image-img\" [src]=\"placeholder\" [style.width]=\"width\" [style.height]=\"height\" />\r\n <div *ngIf=\"isError && !fallback\" class=\"x-image-error-icon\" [style.width]=\"width\" [style.height]=\"height\">\r\n <x-icon type=\"fto-image\"></x-icon>\r\n </div>\r\n <ng-container *xOutlet=\"previewTpl; context: { $image: this }\">\r\n <div class=\"x-image-overlay\" *ngIf=\"!isError\" (click)=\"onPreview()\">\r\n <div class=\"x-image-text\">\r\n <x-icon type=\"fto-eye\"></x-icon>\r\n <span>{{ getPreviewText }}</span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n", styles: ["x-image{display:inline-block}.x-image{margin:0;padding:0;position:relative;display:inline-block}.x-image-img{max-width:100%;max-height:100%;vertical-align:middle}.x-image-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(0,0,0,.5);cursor:pointer;opacity:0;transition:opacity var(--x-animation-duration-base)}.x-image-overlay:hover{opacity:1}.x-image-text>span{margin-left:.25rem}.x-image-error{display:none}.x-image-error-icon{font-size:2rem}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i7.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImageComponent, decorators: [{
|
|
89
89
|
type: Component,
|
|
90
90
|
args: [{ selector: `${XImagePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-image\" [ngClass]=\"classMap\">\r\n <img\r\n *ngIf=\"!isError && !fallback\"\r\n [hidden]=\"placeholder && !isLoaded\"\r\n class=\"x-image-img\"\r\n [src]=\"src\"\r\n [style.width]=\"width\"\r\n [style.height]=\"height\"\r\n (error)=\"onError($event)\"\r\n (load)=\"onLoad($event)\"\r\n />\r\n <img *ngIf=\"placeholder && !isLoaded\" class=\"x-image-img\" [src]=\"placeholder\" [style.width]=\"width\" [style.height]=\"height\" />\r\n <div *ngIf=\"isError && !fallback\" class=\"x-image-error-icon\" [style.width]=\"width\" [style.height]=\"height\">\r\n <x-icon type=\"fto-image\"></x-icon>\r\n </div>\r\n <ng-container *xOutlet=\"previewTpl; context: { $image: this }\">\r\n <div class=\"x-image-overlay\" *ngIf=\"!isError\" (click)=\"onPreview()\">\r\n <div class=\"x-image-text\">\r\n <x-icon type=\"fto-eye\"></x-icon>\r\n <span>{{ getPreviewText }}</span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n", styles: ["x-image{display:inline-block}.x-image{margin:0;padding:0;position:relative;display:inline-block}.x-image-img{max-width:100%;max-height:100%;vertical-align:middle}.x-image-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(0,0,0,.5);cursor:pointer;opacity:0;transition:opacity var(--x-animation-duration-base)}.x-image-overlay:hover{opacity:1}.x-image-text>span{margin-left:.25rem}.x-image-error{display:none}.x-image-error-icon{font-size:2rem}\n"] }]
|
|
91
91
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }, { type: i2.XDialogService }, { type: i3.XI18nService }, { type: i4.XImageGroupComponent, decorators: [{
|
|
@@ -13,10 +13,10 @@ import { XOutletModule } from '@ng-nest/ui/outlet';
|
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
export class XImageModule {
|
|
15
15
|
}
|
|
16
|
-
/** @nocollapse */ XImageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
17
|
-
/** @nocollapse */ XImageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
18
|
-
/** @nocollapse */ XImageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
16
|
+
/** @nocollapse */ XImageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
17
|
+
/** @nocollapse */ XImageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: XImageModule, declarations: [XImageComponent, XImageProperty, XImagePreviewComponent, XImagePreviewProperty, XImageGroupComponent], imports: [CommonModule, XIconModule, XDialogModule, XButtonModule, XI18nModule, XOutletModule, DragDropModule], exports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent] });
|
|
18
|
+
/** @nocollapse */ XImageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImageModule, imports: [CommonModule, XIconModule, XDialogModule, XButtonModule, XI18nModule, XOutletModule, DragDropModule] });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImageModule, decorators: [{
|
|
20
20
|
type: NgModule,
|
|
21
21
|
args: [{
|
|
22
22
|
declarations: [XImageComponent, XImageProperty, XImagePreviewComponent, XImagePreviewProperty, XImageGroupComponent],
|
|
@@ -27,12 +27,12 @@ export class XImageProperty extends XProperty {
|
|
|
27
27
|
this.load = new EventEmitter();
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
/** @nocollapse */ XImageProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
31
|
-
/** @nocollapse */ XImageProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
30
|
+
/** @nocollapse */ XImageProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImageProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
+
/** @nocollapse */ XImageProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XImageProperty, selector: "ng-component", inputs: { src: "src", width: "width", height: "height", alt: "alt", fallback: "fallback", previewText: "previewText", placeholder: "placeholder", previewTpl: "previewTpl" }, outputs: { error: "error", load: "load" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
32
32
|
__decorate([
|
|
33
33
|
XWithConfig(X_CONFIG_NAME)
|
|
34
34
|
], XImageProperty.prototype, "previewText", void 0);
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImageProperty, decorators: [{
|
|
36
36
|
type: Component,
|
|
37
37
|
args: [{ template: '' }]
|
|
38
38
|
}], propDecorators: { src: [{
|
|
@@ -67,9 +67,9 @@ export const XImagePreviewPrefix = 'x-image-preview';
|
|
|
67
67
|
*/
|
|
68
68
|
export class XImagePreviewProperty extends XProperty {
|
|
69
69
|
}
|
|
70
|
-
/** @nocollapse */ XImagePreviewProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
71
|
-
/** @nocollapse */ XImagePreviewProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
70
|
+
/** @nocollapse */ XImagePreviewProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImagePreviewProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
71
|
+
/** @nocollapse */ XImagePreviewProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XImagePreviewProperty, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImagePreviewProperty, decorators: [{
|
|
73
73
|
type: Component,
|
|
74
74
|
args: [{ template: '' }]
|
|
75
75
|
}] });
|
|
@@ -21,9 +21,9 @@ export class XInnerComponent extends XInnerProperty {
|
|
|
21
21
|
this.renderer.setStyle(this._ele, 'padding', this.padding);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
/** @nocollapse */ XInnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
25
|
-
/** @nocollapse */ XInnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
24
|
+
/** @nocollapse */ XInnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XInnerComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
+
/** @nocollapse */ XInnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XInnerComponent, selector: "x-inner", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: [".x-inner{margin:0;padding:0;display:block;width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XInnerComponent, decorators: [{
|
|
27
27
|
type: Component,
|
|
28
28
|
args: [{ selector: `${XInnerPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\r\n", styles: [".x-inner{margin:0;padding:0;display:block;width:100%;height:100%}\n"] }]
|
|
29
29
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.XConfigService }]; } });
|
|
@@ -5,10 +5,10 @@ import { XInnerProperty } from './inner.property';
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class XInnerModule {
|
|
7
7
|
}
|
|
8
|
-
/** @nocollapse */ XInnerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
9
|
-
/** @nocollapse */ XInnerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
10
|
-
/** @nocollapse */ XInnerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
8
|
+
/** @nocollapse */ XInnerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XInnerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
/** @nocollapse */ XInnerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: XInnerModule, declarations: [XInnerComponent, XInnerProperty], imports: [CommonModule], exports: [XInnerComponent] });
|
|
10
|
+
/** @nocollapse */ XInnerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XInnerModule, imports: [CommonModule] });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XInnerModule, decorators: [{
|
|
12
12
|
type: NgModule,
|
|
13
13
|
args: [{
|
|
14
14
|
declarations: [XInnerComponent, XInnerProperty],
|
|
@@ -14,12 +14,12 @@ const X_CONFIG_NAME = 'inner';
|
|
|
14
14
|
*/
|
|
15
15
|
export class XInnerProperty extends XProperty {
|
|
16
16
|
}
|
|
17
|
-
/** @nocollapse */ XInnerProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
18
|
-
/** @nocollapse */ XInnerProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
17
|
+
/** @nocollapse */ XInnerProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XInnerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
+
/** @nocollapse */ XInnerProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XInnerProperty, selector: "ng-component", inputs: { padding: "padding" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
19
19
|
__decorate([
|
|
20
20
|
XWithConfig(X_CONFIG_NAME, '1rem')
|
|
21
21
|
], XInnerProperty.prototype, "padding", void 0);
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XInnerProperty, decorators: [{
|
|
23
23
|
type: Component,
|
|
24
24
|
args: [{ template: '' }]
|
|
25
25
|
}], propDecorators: { padding: [{
|
|
@@ -11,9 +11,9 @@ export class XInputGroupComponent extends XInputGroupProperty {
|
|
|
11
11
|
this.configService = configService;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
/** @nocollapse */ XInputGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
15
|
-
/** @nocollapse */ XInputGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
14
|
+
/** @nocollapse */ XInputGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XInputGroupComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
+
/** @nocollapse */ XInputGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XInputGroupComponent, selector: "x-input-group", usesInheritance: true, ngImport: i0, template: "<div class=\"x-input-group\" [class.x-input-group-compact]=\"compact\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input-group{display:inline-block}.x-input-group{display:flex}.x-input-group-compact>*{display:inline-block}.x-input-group-compact>* input,.x-input-group-compact>* .x-button{border-radius:0!important}.x-input-group-compact>* input:hover,.x-input-group-compact>* input:focus,.x-input-group-compact>* .x-button:hover,.x-input-group-compact>* .x-button:focus{z-index:1}.x-input-group-compact>*:first-child input,.x-input-group-compact>*:first-child .x-button{border-top-left-radius:var(--x-border-radius)!important;border-bottom-left-radius:var(--x-border-radius)!important}.x-input-group-compact>*:last-child input,.x-input-group-compact>*:last-child .x-button{border-top-right-radius:var(--x-border-radius)!important;border-bottom-right-radius:var(--x-border-radius)!important}.x-input-group-compact>*:not(:last-child){margin-right:calc(var(--x-border-width) * -1)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XInputGroupComponent, decorators: [{
|
|
17
17
|
type: Component,
|
|
18
18
|
args: [{ selector: `${XInputGroupPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-input-group\" [class.x-input-group-compact]=\"compact\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input-group{display:inline-block}.x-input-group{display:flex}.x-input-group-compact>*{display:inline-block}.x-input-group-compact>* input,.x-input-group-compact>* .x-button{border-radius:0!important}.x-input-group-compact>* input:hover,.x-input-group-compact>* input:focus,.x-input-group-compact>* .x-button:hover,.x-input-group-compact>* .x-button:focus{z-index:1}.x-input-group-compact>*:first-child input,.x-input-group-compact>*:first-child .x-button{border-top-left-radius:var(--x-border-radius)!important;border-bottom-left-radius:var(--x-border-radius)!important}.x-input-group-compact>*:last-child input,.x-input-group-compact>*:last-child .x-button{border-top-right-radius:var(--x-border-radius)!important;border-bottom-right-radius:var(--x-border-radius)!important}.x-input-group-compact>*:not(:last-child){margin-right:calc(var(--x-border-width) * -1)}\n"] }]
|
|
19
19
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; } });
|