@ng-nest/ui 18.0.13 → 19.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/affix/affix.property.d.ts +1 -1
- package/alert/alert.property.d.ts +1 -1
- package/anchor/anchor.component.d.ts +3 -1
- package/anchor/anchor.property.d.ts +2 -2
- package/api/api.component.d.ts +1 -1
- package/auto-complete/auto-complete.component.d.ts +1 -3
- package/auto-complete/auto-complete.property.d.ts +17 -20
- package/avatar/avatar.property.d.ts +2 -2
- package/back-top/back-top.property.d.ts +1 -1
- package/badge/badge.property.d.ts +1 -1
- package/base-form/base-form.component.d.ts +1 -1
- package/base-form/base-form.property.d.ts +1 -105
- package/button/button.property.d.ts +2 -2
- package/calendar/calendar.property.d.ts +1 -1
- package/card/card.property.d.ts +1 -1
- package/carousel/carousel-panel.component.d.ts +1 -1
- package/carousel/carousel.property.d.ts +2 -2
- package/cascade/cascade.component.d.ts +1 -2
- package/cascade/cascade.property.d.ts +17 -28
- package/checkbox/checkbox.property.d.ts +22 -23
- package/collapse/collapse.component.d.ts +1 -3
- package/collapse/collapse.property.d.ts +2 -16
- package/color/color.property.d.ts +1 -1
- package/color-picker/color-picker-portal.component.d.ts +10 -10
- package/color-picker/color-picker.component.d.ts +0 -1
- package/color-picker/color-picker.property.d.ts +16 -16
- package/comment/comment.property.d.ts +2 -2
- package/container/container.property.d.ts +4 -4
- package/crumb/crumb.property.d.ts +1 -1
- package/date-picker/date-picker-portal.component.d.ts +1 -1
- package/date-picker/date-picker.component.d.ts +0 -1
- package/date-picker/date-picker.property.d.ts +36 -36
- package/date-picker/date-range-portal.component.d.ts +5 -5
- package/description/description.property.d.ts +2 -2
- package/dialog/dialog-portal.component.d.ts +5 -5
- package/dialog/dialog-portal.directives.d.ts +2 -3
- package/dialog/dialog-ref.d.ts +4 -2
- package/dialog/dialog.component.d.ts +0 -5
- package/dialog/dialog.property.d.ts +14 -10
- package/drag/drag.property.d.ts +1 -1
- package/drawer/drawer.property.d.ts +2 -2
- package/dropdown/dropdown.component.d.ts +0 -1
- package/dropdown/dropdown.property.d.ts +1 -1
- package/empty/empty.property.d.ts +1 -1
- package/fesm2022/ng-nest-ui-affix.mjs +14 -12
- package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-alert.mjs +14 -12
- package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-anchor.mjs +33 -26
- package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-api.mjs +11 -11
- package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-auto-complete.mjs +29 -38
- package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-avatar.mjs +18 -18
- package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-back-top.mjs +14 -13
- package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-badge.mjs +11 -11
- package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-base-form.mjs +30 -127
- package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-button.mjs +18 -18
- package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-calendar.mjs +15 -21
- package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-card.mjs +11 -12
- package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-carousel.mjs +23 -30
- package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-cascade.mjs +17 -23
- package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-checkbox.mjs +12 -12
- package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-collapse.mjs +22 -44
- package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color-picker.mjs +15 -18
- package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color.mjs +11 -11
- package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-comment.mjs +18 -18
- package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-container.mjs +36 -36
- package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-core.mjs +15 -15
- package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-crumb.mjs +11 -11
- package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-date-picker.mjs +57 -60
- package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-description.mjs +18 -18
- package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dialog.mjs +79 -147
- package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-doc.mjs +8 -8
- package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-drag.mjs +11 -11
- package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-drawer.mjs +38 -41
- package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dropdown.mjs +15 -19
- package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-empty.mjs +11 -11
- package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-examples.mjs +8 -8
- package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-find.mjs +11 -11
- package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-form.mjs +21 -40
- package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-highlight.mjs +14 -14
- package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-i18n.mjs +15 -17
- package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-icon.mjs +14 -14
- package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-image.mjs +24 -24
- package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-inner.mjs +11 -11
- package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input-number.mjs +11 -11
- package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input.mjs +19 -19
- package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-keyword.mjs +12 -13
- package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-layout.mjs +18 -18
- package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-link.mjs +11 -11
- package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-list.mjs +22 -23
- package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-loading.mjs +12 -12
- package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-menu.mjs +19 -20
- package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message-box.mjs +11 -13
- package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message.mjs +11 -11
- package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-notification.mjs +11 -11
- package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-outlet.mjs +8 -8
- package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-page-header.mjs +11 -11
- package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pagination.mjs +11 -11
- package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pattern.mjs +8 -8
- package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popconfirm.mjs +11 -11
- package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popover.mjs +15 -15
- package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-portal.mjs +7 -7
- package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-progress.mjs +11 -11
- package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-radio.mjs +11 -11
- package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-rate.mjs +11 -12
- package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-resizable.mjs +12 -12
- package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-result.mjs +11 -11
- package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-ripple.mjs +11 -12
- package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-select.mjs +19 -21
- package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-skeleton.mjs +11 -11
- package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider-select.mjs +11 -22
- package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider.mjs +11 -11
- package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-statistic.mjs +18 -18
- package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-steps.mjs +11 -11
- package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-switch.mjs +11 -11
- package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-table.mjs +43 -36
- package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tabs.mjs +30 -32
- package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tag.mjs +11 -11
- package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-text-retract.mjs +11 -11
- package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-textarea.mjs +11 -11
- package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-theme.mjs +13 -14
- package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-ago.mjs +8 -8
- package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-picker.mjs +19 -22
- package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-range.mjs +8 -8
- package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-timeline.mjs +11 -21
- package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tooltip.mjs +44 -33
- package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-transfer.mjs +19 -15
- package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-file.mjs +12 -20
- package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-select.mjs +104 -64
- package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree.mjs +27 -22
- package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-typography.mjs +11 -11
- package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-upload.mjs +17 -20
- package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
- package/find/find.property.d.ts +13 -19
- package/form/form.property.d.ts +11 -22
- package/highlight/highlight.property.d.ts +1 -1
- package/icon/icon.property.d.ts +1 -1
- package/image/image.property.d.ts +2 -2
- package/inner/inner.property.d.ts +1 -1
- package/input/input.property.d.ts +18 -21
- package/input-number/input-number.property.d.ts +14 -14
- package/layout/layout.property.d.ts +2 -2
- package/link/link.property.d.ts +1 -1
- package/list/list.property.d.ts +13 -13
- package/loading/loading.property.d.ts +1 -1
- package/menu/menu.property.d.ts +2 -2
- package/package.json +42 -216
- package/page-header/page-header.property.d.ts +1 -1
- package/pagination/pagination.property.d.ts +1 -1
- package/popconfirm/popconfirm.property.d.ts +1 -1
- package/popover/popover.property.d.ts +1 -1
- package/progress/progress.property.d.ts +1 -1
- package/radio/radio.property.d.ts +14 -17
- package/rate/rate.property.d.ts +15 -23
- package/result/result.property.d.ts +1 -1
- package/ripple/ripple.property.d.ts +1 -1
- package/select/select-portal.component.d.ts +1 -1
- package/select/select.component.d.ts +0 -1
- package/select/select.property.d.ts +16 -16
- package/skeleton/skeleton.property.d.ts +1 -1
- package/slider/slider.property.d.ts +1 -1
- package/slider-select/slider-select.property.d.ts +14 -18
- package/statistic/statistic.property.d.ts +2 -2
- package/steps/steps.property.d.ts +1 -1
- package/style/core/index.css +87 -174
- package/style/core/index.css.map +1 -1
- package/style/core/index.scss +32 -5
- package/style/directives/index.scss +3 -3
- package/style/directives/keyword/index.scss +3 -2
- package/style/directives/keyword/mixin.scss +9 -11
- package/style/directives/keyword/param.scss +2 -1
- package/style/directives/resizable/index.scss +3 -2
- package/style/directives/resizable/mixin.scss +122 -16
- package/style/directives/resizable/param.scss +2 -1
- package/style/directives/ripple/index.scss +3 -2
- package/style/directives/ripple/mixin.scss +12 -12
- package/style/directives/ripple/param.scss +2 -1
- package/style/mixins/compatibility.scss +7 -5
- package/style/mixins/form.scss +6 -4
- package/style/mixins/hidden.scss +5 -2
- package/style/params/index.scss +282 -3
- package/switch/switch.property.d.ts +15 -15
- package/table/table.component.d.ts +2 -2
- package/table/table.property.d.ts +5 -4
- package/tabs/tabs.property.d.ts +2 -2
- package/tag/tag.property.d.ts +1 -1
- package/text-retract/text-retract.property.d.ts +1 -1
- package/textarea/textarea.property.d.ts +15 -18
- package/theme/theme.property.d.ts +7 -11
- package/time-picker/time-picker.component.d.ts +0 -1
- package/time-picker/time-picker.property.d.ts +18 -24
- package/timeline/timeline.property.d.ts +1 -11
- package/tooltip/tooltip.directive.d.ts +5 -3
- package/tooltip/tooltip.property.d.ts +1 -1
- package/transfer/transfer.property.d.ts +10 -14
- package/tree/tree.property.d.ts +7 -2
- package/tree-file/tree-file.property.d.ts +1 -1
- package/tree-select/tree-select-portal.component.d.ts +2 -5
- package/tree-select/tree-select.component.d.ts +13 -6
- package/tree-select/tree-select.property.d.ts +16 -26
- package/typography/typography.property.d.ts +1 -1
- package/upload/upload.component.d.ts +0 -1
- package/upload/upload.property.d.ts +10 -10
- package/esm2022/affix/affix.component.mjs +0 -12
- package/esm2022/affix/affix.module.mjs +0 -16
- package/esm2022/affix/affix.property.mjs +0 -51
- package/esm2022/affix/ng-nest-ui-affix.mjs +0 -5
- package/esm2022/affix/public-api.mjs +0 -4
- package/esm2022/alert/alert.component.mjs +0 -73
- package/esm2022/alert/alert.module.mjs +0 -16
- package/esm2022/alert/alert.property.mjs +0 -313
- package/esm2022/alert/ng-nest-ui-alert.mjs +0 -5
- package/esm2022/alert/public-api.mjs +0 -4
- package/esm2022/anchor/anchor-inner.component.mjs +0 -18
- package/esm2022/anchor/anchor.component.mjs +0 -160
- package/esm2022/anchor/anchor.module.mjs +0 -17
- package/esm2022/anchor/anchor.property.mjs +0 -121
- package/esm2022/anchor/ng-nest-ui-anchor.mjs +0 -5
- package/esm2022/anchor/public-api.mjs +0 -5
- package/esm2022/api/api.component.mjs +0 -18
- package/esm2022/api/api.module.mjs +0 -16
- package/esm2022/api/api.property.mjs +0 -7
- package/esm2022/api/ng-nest-ui-api.mjs +0 -5
- package/esm2022/api/public-api.mjs +0 -4
- package/esm2022/auto-complete/auto-complete-portal.component.mjs +0 -80
- package/esm2022/auto-complete/auto-complete.component.mjs +0 -306
- package/esm2022/auto-complete/auto-complete.module.mjs +0 -16
- package/esm2022/auto-complete/auto-complete.property.mjs +0 -172
- package/esm2022/auto-complete/ng-nest-ui-auto-complete.mjs +0 -5
- package/esm2022/auto-complete/public-api.mjs +0 -5
- package/esm2022/avatar/avatar-group.component.mjs +0 -19
- package/esm2022/avatar/avatar.component.mjs +0 -109
- package/esm2022/avatar/avatar.module.mjs +0 -17
- package/esm2022/avatar/avatar.property.mjs +0 -143
- package/esm2022/avatar/ng-nest-ui-avatar.mjs +0 -5
- package/esm2022/avatar/public-api.mjs +0 -5
- package/esm2022/back-top/back-top.component.mjs +0 -104
- package/esm2022/back-top/back-top.module.mjs +0 -16
- package/esm2022/back-top/back-top.property.mjs +0 -50
- package/esm2022/back-top/ng-nest-ui-back-top.mjs +0 -5
- package/esm2022/back-top/public-api.mjs +0 -4
- package/esm2022/badge/badge.component.mjs +0 -63
- package/esm2022/badge/badge.module.mjs +0 -16
- package/esm2022/badge/badge.property.mjs +0 -133
- package/esm2022/badge/ng-nest-ui-badge.mjs +0 -5
- package/esm2022/badge/public-api.mjs +0 -4
- package/esm2022/base-form/base-form.component.mjs +0 -101
- package/esm2022/base-form/base-form.module.mjs +0 -15
- package/esm2022/base-form/base-form.property.mjs +0 -237
- package/esm2022/base-form/ng-nest-ui-base-form.mjs +0 -5
- package/esm2022/base-form/public-api.mjs +0 -4
- package/esm2022/button/button.component.mjs +0 -71
- package/esm2022/button/button.module.mjs +0 -17
- package/esm2022/button/button.property.mjs +0 -331
- package/esm2022/button/buttons.component.mjs +0 -55
- package/esm2022/button/ng-nest-ui-button.mjs +0 -5
- package/esm2022/button/public-api.mjs +0 -5
- package/esm2022/calendar/calendar.component.mjs +0 -117
- package/esm2022/calendar/calendar.module.mjs +0 -16
- package/esm2022/calendar/calendar.property.mjs +0 -110
- package/esm2022/calendar/ng-nest-ui-calendar.mjs +0 -5
- package/esm2022/calendar/public-api.mjs +0 -4
- package/esm2022/card/card.component.mjs +0 -22
- package/esm2022/card/card.module.mjs +0 -16
- package/esm2022/card/card.property.mjs +0 -77
- package/esm2022/card/ng-nest-ui-card.mjs +0 -5
- package/esm2022/card/public-api.mjs +0 -4
- package/esm2022/carousel/carousel-panel.component.mjs +0 -157
- package/esm2022/carousel/carousel.component.mjs +0 -95
- package/esm2022/carousel/carousel.module.mjs +0 -17
- package/esm2022/carousel/carousel.property.mjs +0 -256
- package/esm2022/carousel/ng-nest-ui-carousel.mjs +0 -5
- package/esm2022/carousel/public-api.mjs +0 -5
- package/esm2022/cascade/cascade-portal.component.mjs +0 -141
- package/esm2022/cascade/cascade.component.mjs +0 -238
- package/esm2022/cascade/cascade.module.mjs +0 -16
- package/esm2022/cascade/cascade.property.mjs +0 -167
- package/esm2022/cascade/ng-nest-ui-cascade.mjs +0 -5
- package/esm2022/cascade/public-api.mjs +0 -5
- package/esm2022/checkbox/checkbox.component.mjs +0 -102
- package/esm2022/checkbox/checkbox.module.mjs +0 -16
- package/esm2022/checkbox/checkbox.property.mjs +0 -136
- package/esm2022/checkbox/ng-nest-ui-checkbox.mjs +0 -5
- package/esm2022/checkbox/public-api.mjs +0 -4
- package/esm2022/collapse/collapse-panel.component.mjs +0 -55
- package/esm2022/collapse/collapse.component.mjs +0 -49
- package/esm2022/collapse/collapse.module.mjs +0 -17
- package/esm2022/collapse/collapse.property.mjs +0 -189
- package/esm2022/collapse/ng-nest-ui-collapse.mjs +0 -5
- package/esm2022/collapse/public-api.mjs +0 -5
- package/esm2022/color/color.component.mjs +0 -35
- package/esm2022/color/color.module.mjs +0 -16
- package/esm2022/color/color.property.mjs +0 -71
- package/esm2022/color/ng-nest-ui-color.mjs +0 -5
- package/esm2022/color/public-api.mjs +0 -4
- package/esm2022/color-picker/color-picker-portal.component.mjs +0 -396
- package/esm2022/color-picker/color-picker.component.mjs +0 -191
- package/esm2022/color-picker/color-picker.module.mjs +0 -16
- package/esm2022/color-picker/color-picker.property.mjs +0 -142
- package/esm2022/color-picker/ng-nest-ui-color-picker.mjs +0 -5
- package/esm2022/color-picker/public-api.mjs +0 -5
- package/esm2022/comment/comment-reply.component.mjs +0 -24
- package/esm2022/comment/comment.component.mjs +0 -55
- package/esm2022/comment/comment.module.mjs +0 -17
- package/esm2022/comment/comment.property.mjs +0 -90
- package/esm2022/comment/ng-nest-ui-comment.mjs +0 -5
- package/esm2022/comment/public-api.mjs +0 -5
- package/esm2022/container/aside.component.mjs +0 -25
- package/esm2022/container/container.component.mjs +0 -31
- package/esm2022/container/container.module.mjs +0 -20
- package/esm2022/container/container.property.mjs +0 -115
- package/esm2022/container/footer.component.mjs +0 -35
- package/esm2022/container/header.component.mjs +0 -35
- package/esm2022/container/main.component.mjs +0 -18
- package/esm2022/container/ng-nest-ui-container.mjs +0 -5
- package/esm2022/container/public-api.mjs +0 -8
- package/esm2022/core/animation/badge.mjs +0 -53
- package/esm2022/core/animation/connect.mjs +0 -31
- package/esm2022/core/animation/consts.mjs +0 -11
- package/esm2022/core/animation/drop.mjs +0 -13
- package/esm2022/core/animation/fade.mjs +0 -24
- package/esm2022/core/animation/move.mjs +0 -179
- package/esm2022/core/animation/opacity.mjs +0 -13
- package/esm2022/core/animation/public-api.mjs +0 -9
- package/esm2022/core/animation/slide.mjs +0 -17
- package/esm2022/core/config/config.mjs +0 -3
- package/esm2022/core/config/config.service.mjs +0 -54
- package/esm2022/core/config/index.mjs +0 -2
- package/esm2022/core/config/public-api.mjs +0 -3
- package/esm2022/core/functions/chunk.mjs +0 -25
- package/esm2022/core/functions/clone-deep.mjs +0 -28
- package/esm2022/core/functions/convert.mjs +0 -230
- package/esm2022/core/functions/csspx.mjs +0 -17
- package/esm2022/core/functions/date.mjs +0 -223
- package/esm2022/core/functions/drop.mjs +0 -20
- package/esm2022/core/functions/flex.mjs +0 -25
- package/esm2022/core/functions/group-by.mjs +0 -14
- package/esm2022/core/functions/guid.mjs +0 -11
- package/esm2022/core/functions/has-in.mjs +0 -8
- package/esm2022/core/functions/order-by.mjs +0 -56
- package/esm2022/core/functions/parent-path.mjs +0 -27
- package/esm2022/core/functions/property.mjs +0 -20
- package/esm2022/core/functions/public-api.mjs +0 -16
- package/esm2022/core/functions/remove.mjs +0 -19
- package/esm2022/core/functions/resize.mjs +0 -22
- package/esm2022/core/interfaces/data.type.mjs +0 -164
- package/esm2022/core/interfaces/identify.type.mjs +0 -7
- package/esm2022/core/interfaces/index.mjs +0 -2
- package/esm2022/core/interfaces/layout.type.mjs +0 -2
- package/esm2022/core/interfaces/public-api.mjs +0 -5
- package/esm2022/core/interfaces/result-list.type.mjs +0 -2
- package/esm2022/core/ng-nest-ui-core.mjs +0 -5
- package/esm2022/core/public-api.mjs +0 -8
- package/esm2022/core/services/http.service.mjs +0 -58
- package/esm2022/core/services/preloading-strategy.service.mjs +0 -24
- package/esm2022/core/services/public-api.mjs +0 -6
- package/esm2022/core/services/repository.service.mjs +0 -29
- package/esm2022/core/services/reuse-strategy.service.mjs +0 -47
- package/esm2022/core/services/storage.service.mjs +0 -75
- package/esm2022/core/theme/index.mjs +0 -2
- package/esm2022/core/theme/public-api.mjs +0 -3
- package/esm2022/core/theme/theme.mjs +0 -89
- package/esm2022/core/theme/theme.service.mjs +0 -270
- package/esm2022/core/util/animation.mjs +0 -26
- package/esm2022/core/util/camel-to-kebab.mjs +0 -16
- package/esm2022/core/util/check.mjs +0 -15
- package/esm2022/core/util/computed-style.mjs +0 -20
- package/esm2022/core/util/host.mjs +0 -14
- package/esm2022/core/util/html.mjs +0 -12
- package/esm2022/core/util/index.mjs +0 -2
- package/esm2022/core/util/kebab-to-camel.mjs +0 -16
- package/esm2022/core/util/log.mjs +0 -15
- package/esm2022/core/util/option.mjs +0 -14
- package/esm2022/core/util/public-api.mjs +0 -11
- package/esm2022/core/util/sleep.mjs +0 -8
- package/esm2022/crumb/crumb.component.mjs +0 -25
- package/esm2022/crumb/crumb.module.mjs +0 -16
- package/esm2022/crumb/crumb.property.mjs +0 -45
- package/esm2022/crumb/ng-nest-ui-crumb.mjs +0 -5
- package/esm2022/crumb/public-api.mjs +0 -4
- package/esm2022/date-picker/date-picker-portal.component.mjs +0 -196
- package/esm2022/date-picker/date-picker.component.mjs +0 -320
- package/esm2022/date-picker/date-picker.module.mjs +0 -17
- package/esm2022/date-picker/date-picker.property.mjs +0 -770
- package/esm2022/date-picker/date-quarter.pipe.mjs +0 -19
- package/esm2022/date-picker/date-range-portal.component.mjs +0 -349
- package/esm2022/date-picker/date-range.component.mjs +0 -432
- package/esm2022/date-picker/ng-nest-ui-date-picker.mjs +0 -5
- package/esm2022/date-picker/picker-date.component.mjs +0 -334
- package/esm2022/date-picker/picker-month.component.mjs +0 -232
- package/esm2022/date-picker/picker-quarter.component.mjs +0 -237
- package/esm2022/date-picker/picker-year.component.mjs +0 -233
- package/esm2022/date-picker/public-api.mjs +0 -12
- package/esm2022/description/description-item.component.mjs +0 -24
- package/esm2022/description/description.component.mjs +0 -48
- package/esm2022/description/description.module.mjs +0 -17
- package/esm2022/description/description.property.mjs +0 -219
- package/esm2022/description/ng-nest-ui-description.mjs +0 -5
- package/esm2022/description/public-api.mjs +0 -5
- package/esm2022/dialog/dialog-container.component.mjs +0 -29
- package/esm2022/dialog/dialog-portal.component.mjs +0 -97
- package/esm2022/dialog/dialog-portal.directives.mjs +0 -119
- package/esm2022/dialog/dialog-ref.mjs +0 -100
- package/esm2022/dialog/dialog.component.mjs +0 -282
- package/esm2022/dialog/dialog.module.mjs +0 -50
- package/esm2022/dialog/dialog.property.mjs +0 -207
- package/esm2022/dialog/dialog.service.mjs +0 -122
- package/esm2022/dialog/ng-nest-ui-dialog.mjs +0 -5
- package/esm2022/dialog/public-api.mjs +0 -9
- package/esm2022/doc/doc.component.mjs +0 -18
- package/esm2022/doc/doc.module.mjs +0 -16
- package/esm2022/doc/doc.property.mjs +0 -7
- package/esm2022/doc/ng-nest-ui-doc.mjs +0 -5
- package/esm2022/doc/public-api.mjs +0 -4
- package/esm2022/drag/drag.directive.mjs +0 -57
- package/esm2022/drag/drag.module.mjs +0 -16
- package/esm2022/drag/drag.property.mjs +0 -25
- package/esm2022/drag/ng-nest-ui-drag.mjs +0 -5
- package/esm2022/drag/public-api.mjs +0 -4
- package/esm2022/drawer/drawer-container.component.mjs +0 -29
- package/esm2022/drawer/drawer-portal.component.mjs +0 -50
- package/esm2022/drawer/drawer-portal.directives.mjs +0 -58
- package/esm2022/drawer/drawer-ref.mjs +0 -17
- package/esm2022/drawer/drawer.component.mjs +0 -95
- package/esm2022/drawer/drawer.module.mjs +0 -38
- package/esm2022/drawer/drawer.property.mjs +0 -84
- package/esm2022/drawer/drawer.service.mjs +0 -65
- package/esm2022/drawer/ng-nest-ui-drawer.mjs +0 -5
- package/esm2022/drawer/public-api.mjs +0 -10
- package/esm2022/dropdown/dropdown-portal.component.mjs +0 -204
- package/esm2022/dropdown/dropdown.component.mjs +0 -179
- package/esm2022/dropdown/dropdown.module.mjs +0 -16
- package/esm2022/dropdown/dropdown.property.mjs +0 -96
- package/esm2022/dropdown/ng-nest-ui-dropdown.mjs +0 -5
- package/esm2022/dropdown/public-api.mjs +0 -5
- package/esm2022/empty/empty.component.mjs +0 -15
- package/esm2022/empty/empty.module.mjs +0 -16
- package/esm2022/empty/empty.property.mjs +0 -54
- package/esm2022/empty/ng-nest-ui-empty.mjs +0 -5
- package/esm2022/empty/public-api.mjs +0 -4
- package/esm2022/examples/examples.component.mjs +0 -18
- package/esm2022/examples/examples.module.mjs +0 -16
- package/esm2022/examples/examples.property.mjs +0 -7
- package/esm2022/examples/ng-nest-ui-examples.mjs +0 -5
- package/esm2022/examples/public-api.mjs +0 -4
- package/esm2022/find/find.component.mjs +0 -331
- package/esm2022/find/find.module.mjs +0 -16
- package/esm2022/find/find.property.mjs +0 -260
- package/esm2022/find/ng-nest-ui-find.mjs +0 -5
- package/esm2022/find/public-api.mjs +0 -4
- package/esm2022/form/control.component.mjs +0 -249
- package/esm2022/form/form.component.mjs +0 -116
- package/esm2022/form/form.module.mjs +0 -17
- package/esm2022/form/form.property.mjs +0 -202
- package/esm2022/form/ng-nest-ui-form.mjs +0 -5
- package/esm2022/form/public-api.mjs +0 -5
- package/esm2022/highlight/highlight.component.mjs +0 -85
- package/esm2022/highlight/highlight.module.mjs +0 -16
- package/esm2022/highlight/highlight.property.mjs +0 -45
- package/esm2022/highlight/highlight.service.mjs +0 -17
- package/esm2022/highlight/ng-nest-ui-highlight.mjs +0 -5
- package/esm2022/highlight/public-api.mjs +0 -5
- package/esm2022/i18n/i18n.directive.mjs +0 -29
- package/esm2022/i18n/i18n.module.mjs +0 -17
- package/esm2022/i18n/i18n.pipe.mjs +0 -28
- package/esm2022/i18n/i18n.property.mjs +0 -9
- package/esm2022/i18n/i18n.service.mjs +0 -57
- package/esm2022/i18n/languages/ar_EG.mjs +0 -169
- package/esm2022/i18n/languages/bg_BG.mjs +0 -172
- package/esm2022/i18n/languages/ca_ES.mjs +0 -172
- package/esm2022/i18n/languages/cs_CZ.mjs +0 -172
- package/esm2022/i18n/languages/da_DK.mjs +0 -172
- package/esm2022/i18n/languages/de_DE.mjs +0 -172
- package/esm2022/i18n/languages/el_GR.mjs +0 -172
- package/esm2022/i18n/languages/en_GB.mjs +0 -181
- package/esm2022/i18n/languages/en_US.mjs +0 -181
- package/esm2022/i18n/languages/es_ES.mjs +0 -172
- package/esm2022/i18n/languages/et_EE.mjs +0 -172
- package/esm2022/i18n/languages/fa_IR.mjs +0 -172
- package/esm2022/i18n/languages/fi_FI.mjs +0 -172
- package/esm2022/i18n/languages/fr_BE.mjs +0 -172
- package/esm2022/i18n/languages/fr_FR.mjs +0 -172
- package/esm2022/i18n/languages/he_IL.mjs +0 -169
- package/esm2022/i18n/languages/hi_IN.mjs +0 -172
- package/esm2022/i18n/languages/hr_HR.mjs +0 -172
- package/esm2022/i18n/languages/hu_HU.mjs +0 -172
- package/esm2022/i18n/languages/hy_AM.mjs +0 -172
- package/esm2022/i18n/languages/id_ID.mjs +0 -172
- package/esm2022/i18n/languages/is_IS.mjs +0 -172
- package/esm2022/i18n/languages/it_IT.mjs +0 -172
- package/esm2022/i18n/languages/ja_JP.mjs +0 -172
- package/esm2022/i18n/languages/ka_GE.mjs +0 -172
- package/esm2022/i18n/languages/kn_IN.mjs +0 -172
- package/esm2022/i18n/languages/ko_KR.mjs +0 -180
- package/esm2022/i18n/languages/ku_IQ.mjs +0 -156
- package/esm2022/i18n/languages/lv_LV.mjs +0 -180
- package/esm2022/i18n/languages/mn_MN.mjs +0 -180
- package/esm2022/i18n/languages/ms_MY.mjs +0 -180
- package/esm2022/i18n/languages/nb_NO.mjs +0 -180
- package/esm2022/i18n/languages/ne_NP.mjs +0 -180
- package/esm2022/i18n/languages/nl_BE.mjs +0 -180
- package/esm2022/i18n/languages/nl_NL.mjs +0 -180
- package/esm2022/i18n/languages/pl_PL.mjs +0 -180
- package/esm2022/i18n/languages/pt_BR.mjs +0 -180
- package/esm2022/i18n/languages/pt_PT.mjs +0 -180
- package/esm2022/i18n/languages/ro_RO.mjs +0 -180
- package/esm2022/i18n/languages/ru_RU.mjs +0 -180
- package/esm2022/i18n/languages/sk_SK.mjs +0 -171
- package/esm2022/i18n/languages/sl_SI.mjs +0 -172
- package/esm2022/i18n/languages/sr_RS.mjs +0 -172
- package/esm2022/i18n/languages/sv_SE.mjs +0 -172
- package/esm2022/i18n/languages/ta_IN.mjs +0 -180
- package/esm2022/i18n/languages/th_TH.mjs +0 -180
- package/esm2022/i18n/languages/tr_TR.mjs +0 -180
- package/esm2022/i18n/languages/uk_UA.mjs +0 -180
- package/esm2022/i18n/languages/vi_VN.mjs +0 -180
- package/esm2022/i18n/languages/zh_CN.mjs +0 -180
- package/esm2022/i18n/languages/zh_TW.mjs +0 -180
- package/esm2022/i18n/ng-nest-ui-i18n.mjs +0 -5
- package/esm2022/i18n/public-api.mjs +0 -57
- package/esm2022/icon/icon.component.mjs +0 -158
- package/esm2022/icon/icon.module.mjs +0 -16
- package/esm2022/icon/icon.property.mjs +0 -65
- package/esm2022/icon/icon.service.mjs +0 -89
- package/esm2022/icon/ng-nest-ui-icon.mjs +0 -5
- package/esm2022/icon/public-api.mjs +0 -5
- package/esm2022/image/image-group.component.mjs +0 -27
- package/esm2022/image/image-preview.component.mjs +0 -135
- package/esm2022/image/image.component.mjs +0 -75
- package/esm2022/image/image.module.mjs +0 -18
- package/esm2022/image/image.property.mjs +0 -196
- package/esm2022/image/ng-nest-ui-image.mjs +0 -5
- package/esm2022/image/public-api.mjs +0 -6
- package/esm2022/index.mjs +0 -106
- package/esm2022/inner/inner.component.mjs +0 -25
- package/esm2022/inner/inner.module.mjs +0 -16
- package/esm2022/inner/inner.property.mjs +0 -30
- package/esm2022/inner/ng-nest-ui-inner.mjs +0 -5
- package/esm2022/inner/public-api.mjs +0 -4
- package/esm2022/input/input-group.component.mjs +0 -16
- package/esm2022/input/input.component.mjs +0 -224
- package/esm2022/input/input.module.mjs +0 -17
- package/esm2022/input/input.property.mjs +0 -281
- package/esm2022/input/ng-nest-ui-input.mjs +0 -5
- package/esm2022/input/public-api.mjs +0 -5
- package/esm2022/input-number/input-number.component.mjs +0 -131
- package/esm2022/input-number/input-number.module.mjs +0 -16
- package/esm2022/input-number/input-number.property.mjs +0 -146
- package/esm2022/input-number/ng-nest-ui-input-number.mjs +0 -5
- package/esm2022/input-number/public-api.mjs +0 -4
- package/esm2022/keyword/keyword.directive.mjs +0 -61
- package/esm2022/keyword/keyword.module.mjs +0 -16
- package/esm2022/keyword/keyword.property.mjs +0 -45
- package/esm2022/keyword/ng-nest-ui-keyword.mjs +0 -5
- package/esm2022/keyword/public-api.mjs +0 -4
- package/esm2022/layout/col.component.mjs +0 -68
- package/esm2022/layout/layout.module.mjs +0 -17
- package/esm2022/layout/layout.property.mjs +0 -150
- package/esm2022/layout/ng-nest-ui-layout.mjs +0 -5
- package/esm2022/layout/public-api.mjs +0 -5
- package/esm2022/layout/row.component.mjs +0 -54
- package/esm2022/link/link.component.mjs +0 -28
- package/esm2022/link/link.module.mjs +0 -16
- package/esm2022/link/link.property.mjs +0 -109
- package/esm2022/link/ng-nest-ui-link.mjs +0 -5
- package/esm2022/link/public-api.mjs +0 -4
- package/esm2022/list/list-drop-group.directive.mjs +0 -39
- package/esm2022/list/list-option.component.mjs +0 -37
- package/esm2022/list/list.component.mjs +0 -409
- package/esm2022/list/list.module.mjs +0 -18
- package/esm2022/list/list.property.mjs +0 -273
- package/esm2022/list/ng-nest-ui-list.mjs +0 -5
- package/esm2022/list/public-api.mjs +0 -6
- package/esm2022/loading/loading.component.mjs +0 -77
- package/esm2022/loading/loading.module.mjs +0 -16
- package/esm2022/loading/loading.property.mjs +0 -70
- package/esm2022/loading/ng-nest-ui-loading.mjs +0 -5
- package/esm2022/loading/public-api.mjs +0 -4
- package/esm2022/menu/menu-node.component.mjs +0 -36
- package/esm2022/menu/menu.component.mjs +0 -171
- package/esm2022/menu/menu.module.mjs +0 -17
- package/esm2022/menu/menu.property.mjs +0 -107
- package/esm2022/menu/ng-nest-ui-menu.mjs +0 -5
- package/esm2022/menu/public-api.mjs +0 -5
- package/esm2022/message/message-ref.mjs +0 -13
- package/esm2022/message/message.component.mjs +0 -40
- package/esm2022/message/message.module.mjs +0 -15
- package/esm2022/message/message.property.mjs +0 -9
- package/esm2022/message/message.service.mjs +0 -146
- package/esm2022/message/ng-nest-ui-message.mjs +0 -5
- package/esm2022/message/public-api.mjs +0 -6
- package/esm2022/message-box/message-box.component.mjs +0 -122
- package/esm2022/message-box/message-box.module.mjs +0 -15
- package/esm2022/message-box/message-box.property.mjs +0 -8
- package/esm2022/message-box/message-box.service.mjs +0 -97
- package/esm2022/message-box/ng-nest-ui-message-box.mjs +0 -5
- package/esm2022/message-box/public-api.mjs +0 -5
- package/esm2022/ng-nest-ui.mjs +0 -5
- package/esm2022/notification/ng-nest-ui-notification.mjs +0 -5
- package/esm2022/notification/notification.component.mjs +0 -42
- package/esm2022/notification/notification.module.mjs +0 -15
- package/esm2022/notification/notification.property.mjs +0 -8
- package/esm2022/notification/notification.service.mjs +0 -107
- package/esm2022/notification/public-api.mjs +0 -5
- package/esm2022/outlet/ng-nest-ui-outlet.mjs +0 -5
- package/esm2022/outlet/outlet.directive.mjs +0 -72
- package/esm2022/outlet/outlet.module.mjs +0 -16
- package/esm2022/outlet/outlet.property.mjs +0 -7
- package/esm2022/outlet/public-api.mjs +0 -4
- package/esm2022/page-header/ng-nest-ui-page-header.mjs +0 -5
- package/esm2022/page-header/page-header.component.mjs +0 -24
- package/esm2022/page-header/page-header.module.mjs +0 -16
- package/esm2022/page-header/page-header.property.mjs +0 -50
- package/esm2022/page-header/public-api.mjs +0 -4
- package/esm2022/pagination/ng-nest-ui-pagination.mjs +0 -5
- package/esm2022/pagination/pagination.component.mjs +0 -205
- package/esm2022/pagination/pagination.module.mjs +0 -16
- package/esm2022/pagination/pagination.property.mjs +0 -149
- package/esm2022/pagination/public-api.mjs +0 -4
- package/esm2022/pattern/ng-nest-ui-pattern.mjs +0 -5
- package/esm2022/pattern/pattern.component.mjs +0 -18
- package/esm2022/pattern/pattern.module.mjs +0 -16
- package/esm2022/pattern/pattern.property.mjs +0 -7
- package/esm2022/pattern/public-api.mjs +0 -4
- package/esm2022/popconfirm/ng-nest-ui-popconfirm.mjs +0 -5
- package/esm2022/popconfirm/popconfirm.component.mjs +0 -59
- package/esm2022/popconfirm/popconfirm.module.mjs +0 -16
- package/esm2022/popconfirm/popconfirm.property.mjs +0 -100
- package/esm2022/popconfirm/public-api.mjs +0 -4
- package/esm2022/popover/ng-nest-ui-popover.mjs +0 -5
- package/esm2022/popover/popover-portal.component.mjs +0 -52
- package/esm2022/popover/popover.directive.mjs +0 -186
- package/esm2022/popover/popover.module.mjs +0 -16
- package/esm2022/popover/popover.property.mjs +0 -101
- package/esm2022/popover/public-api.mjs +0 -5
- package/esm2022/portal/ng-nest-ui-portal.mjs +0 -5
- package/esm2022/portal/portal.module.mjs +0 -16
- package/esm2022/portal/portal.property.mjs +0 -24
- package/esm2022/portal/portal.service.mjs +0 -190
- package/esm2022/portal/public-api.mjs +0 -4
- package/esm2022/progress/ng-nest-ui-progress.mjs +0 -5
- package/esm2022/progress/progress.component.mjs +0 -224
- package/esm2022/progress/progress.module.mjs +0 -16
- package/esm2022/progress/progress.property.mjs +0 -110
- package/esm2022/progress/public-api.mjs +0 -4
- package/esm2022/radio/ng-nest-ui-radio.mjs +0 -5
- package/esm2022/radio/public-api.mjs +0 -4
- package/esm2022/radio/radio.component.mjs +0 -77
- package/esm2022/radio/radio.module.mjs +0 -16
- package/esm2022/radio/radio.property.mjs +0 -121
- package/esm2022/rate/ng-nest-ui-rate.mjs +0 -5
- package/esm2022/rate/public-api.mjs +0 -4
- package/esm2022/rate/rate.component.mjs +0 -99
- package/esm2022/rate/rate.module.mjs +0 -16
- package/esm2022/rate/rate.property.mjs +0 -86
- package/esm2022/resizable/ng-nest-ui-resizable.mjs +0 -5
- package/esm2022/resizable/public-api.mjs +0 -4
- package/esm2022/resizable/resizable.directive.mjs +0 -264
- package/esm2022/resizable/resizable.module.mjs +0 -16
- package/esm2022/resizable/resizable.property.mjs +0 -64
- package/esm2022/result/ng-nest-ui-result.mjs +0 -5
- package/esm2022/result/public-api.mjs +0 -4
- package/esm2022/result/result.component.mjs +0 -25
- package/esm2022/result/result.module.mjs +0 -16
- package/esm2022/result/result.property.mjs +0 -45
- package/esm2022/ripple/ng-nest-ui-ripple.mjs +0 -5
- package/esm2022/ripple/public-api.mjs +0 -4
- package/esm2022/ripple/ripple.directive.mjs +0 -94
- package/esm2022/ripple/ripple.module.mjs +0 -16
- package/esm2022/ripple/ripple.property.mjs +0 -40
- package/esm2022/select/ng-nest-ui-select.mjs +0 -5
- package/esm2022/select/public-api.mjs +0 -5
- package/esm2022/select/select-portal.component.mjs +0 -103
- package/esm2022/select/select.component.mjs +0 -687
- package/esm2022/select/select.module.mjs +0 -16
- package/esm2022/select/select.property.mjs +0 -238
- package/esm2022/skeleton/ng-nest-ui-skeleton.mjs +0 -5
- package/esm2022/skeleton/public-api.mjs +0 -4
- package/esm2022/skeleton/skeleton.component.mjs +0 -25
- package/esm2022/skeleton/skeleton.module.mjs +0 -16
- package/esm2022/skeleton/skeleton.property.mjs +0 -55
- package/esm2022/slider/ng-nest-ui-slider.mjs +0 -5
- package/esm2022/slider/public-api.mjs +0 -4
- package/esm2022/slider/slider.component.mjs +0 -222
- package/esm2022/slider/slider.module.mjs +0 -17
- package/esm2022/slider/slider.property.mjs +0 -102
- package/esm2022/slider-select/ng-nest-ui-slider-select.mjs +0 -5
- package/esm2022/slider-select/public-api.mjs +0 -4
- package/esm2022/slider-select/slider-select.component.mjs +0 -368
- package/esm2022/slider-select/slider-select.module.mjs +0 -16
- package/esm2022/slider-select/slider-select.property.mjs +0 -136
- package/esm2022/statistic/countdown.component.mjs +0 -70
- package/esm2022/statistic/ng-nest-ui-statistic.mjs +0 -5
- package/esm2022/statistic/public-api.mjs +0 -5
- package/esm2022/statistic/statistic.component.mjs +0 -34
- package/esm2022/statistic/statistic.module.mjs +0 -17
- package/esm2022/statistic/statistic.property.mjs +0 -106
- package/esm2022/steps/ng-nest-ui-steps.mjs +0 -5
- package/esm2022/steps/public-api.mjs +0 -4
- package/esm2022/steps/steps.component.mjs +0 -49
- package/esm2022/steps/steps.module.mjs +0 -16
- package/esm2022/steps/steps.property.mjs +0 -60
- package/esm2022/switch/ng-nest-ui-switch.mjs +0 -5
- package/esm2022/switch/public-api.mjs +0 -4
- package/esm2022/switch/switch.component.mjs +0 -37
- package/esm2022/switch/switch.module.mjs +0 -16
- package/esm2022/switch/switch.property.mjs +0 -91
- package/esm2022/table/ng-nest-ui-table.mjs +0 -5
- package/esm2022/table/public-api.mjs +0 -7
- package/esm2022/table/table-body.component.mjs +0 -241
- package/esm2022/table/table-foot.component.mjs +0 -29
- package/esm2022/table/table-head.component.mjs +0 -169
- package/esm2022/table/table.component.mjs +0 -372
- package/esm2022/table/table.module.mjs +0 -19
- package/esm2022/table/table.property.mjs +0 -629
- package/esm2022/tabs/ng-nest-ui-tabs.mjs +0 -5
- package/esm2022/tabs/public-api.mjs +0 -7
- package/esm2022/tabs/tab-content.component.mjs +0 -21
- package/esm2022/tabs/tab-link.directive.mjs +0 -46
- package/esm2022/tabs/tab.component.mjs +0 -19
- package/esm2022/tabs/tabs.component.mjs +0 -143
- package/esm2022/tabs/tabs.module.mjs +0 -18
- package/esm2022/tabs/tabs.property.mjs +0 -141
- package/esm2022/tag/ng-nest-ui-tag.mjs +0 -5
- package/esm2022/tag/public-api.mjs +0 -4
- package/esm2022/tag/tag.component.mjs +0 -51
- package/esm2022/tag/tag.module.mjs +0 -16
- package/esm2022/tag/tag.property.mjs +0 -80
- package/esm2022/text-retract/ng-nest-ui-text-retract.mjs +0 -5
- package/esm2022/text-retract/public-api.mjs +0 -4
- package/esm2022/text-retract/text-retract.component.mjs +0 -42
- package/esm2022/text-retract/text-retract.module.mjs +0 -16
- package/esm2022/text-retract/text-retract.property.mjs +0 -35
- package/esm2022/textarea/ng-nest-ui-textarea.mjs +0 -5
- package/esm2022/textarea/public-api.mjs +0 -4
- package/esm2022/textarea/textarea.component.mjs +0 -68
- package/esm2022/textarea/textarea.module.mjs +0 -16
- package/esm2022/textarea/textarea.property.mjs +0 -126
- package/esm2022/theme/ng-nest-ui-theme.mjs +0 -5
- package/esm2022/theme/public-api.mjs +0 -4
- package/esm2022/theme/theme.component.mjs +0 -179
- package/esm2022/theme/theme.module.mjs +0 -16
- package/esm2022/theme/theme.property.mjs +0 -63
- package/esm2022/time-ago/ng-nest-ui-time-ago.mjs +0 -5
- package/esm2022/time-ago/public-api.mjs +0 -4
- package/esm2022/time-ago/time-ago.module.mjs +0 -16
- package/esm2022/time-ago/time-ago.pipe.mjs +0 -70
- package/esm2022/time-ago/time-ago.property.mjs +0 -7
- package/esm2022/time-picker/ng-nest-ui-time-picker.mjs +0 -5
- package/esm2022/time-picker/public-api.mjs +0 -6
- package/esm2022/time-picker/time-picker-frame.component.mjs +0 -312
- package/esm2022/time-picker/time-picker-portal.component.mjs +0 -78
- package/esm2022/time-picker/time-picker.component.mjs +0 -266
- package/esm2022/time-picker/time-picker.module.mjs +0 -17
- package/esm2022/time-picker/time-picker.property.mjs +0 -198
- package/esm2022/time-range/ng-nest-ui-time-range.mjs +0 -5
- package/esm2022/time-range/public-api.mjs +0 -4
- package/esm2022/time-range/time-range.module.mjs +0 -16
- package/esm2022/time-range/time-range.pipe.mjs +0 -44
- package/esm2022/time-range/time-range.property.mjs +0 -7
- package/esm2022/timeline/ng-nest-ui-timeline.mjs +0 -5
- package/esm2022/timeline/public-api.mjs +0 -4
- package/esm2022/timeline/timeline.component.mjs +0 -45
- package/esm2022/timeline/timeline.module.mjs +0 -16
- package/esm2022/timeline/timeline.property.mjs +0 -50
- package/esm2022/tooltip/ng-nest-ui-tooltip.mjs +0 -5
- package/esm2022/tooltip/public-api.mjs +0 -5
- package/esm2022/tooltip/tooltip-portal.component.mjs +0 -103
- package/esm2022/tooltip/tooltip.directive.mjs +0 -143
- package/esm2022/tooltip/tooltip.module.mjs +0 -16
- package/esm2022/tooltip/tooltip.property.mjs +0 -86
- package/esm2022/transfer/ng-nest-ui-transfer.mjs +0 -5
- package/esm2022/transfer/public-api.mjs +0 -4
- package/esm2022/transfer/transfer.component.mjs +0 -659
- package/esm2022/transfer/transfer.module.mjs +0 -16
- package/esm2022/transfer/transfer.property.mjs +0 -112
- package/esm2022/tree/ng-nest-ui-tree.mjs +0 -5
- package/esm2022/tree/public-api.mjs +0 -5
- package/esm2022/tree/tree-node.component.mjs +0 -297
- package/esm2022/tree/tree.component.mjs +0 -579
- package/esm2022/tree/tree.module.mjs +0 -17
- package/esm2022/tree/tree.property.mjs +0 -337
- package/esm2022/tree/tree.service.mjs +0 -102
- package/esm2022/tree-file/ng-nest-ui-tree-file.mjs +0 -5
- package/esm2022/tree-file/public-api.mjs +0 -4
- package/esm2022/tree-file/tree-file.component.mjs +0 -118
- package/esm2022/tree-file/tree-file.module.mjs +0 -16
- package/esm2022/tree-file/tree-file.property.mjs +0 -90
- package/esm2022/tree-select/ng-nest-ui-tree-select.mjs +0 -5
- package/esm2022/tree-select/public-api.mjs +0 -5
- package/esm2022/tree-select/tree-select-portal.component.mjs +0 -86
- package/esm2022/tree-select/tree-select.component.mjs +0 -659
- package/esm2022/tree-select/tree-select.module.mjs +0 -17
- package/esm2022/tree-select/tree-select.property.mjs +0 -237
- package/esm2022/typography/ng-nest-ui-typography.mjs +0 -5
- package/esm2022/typography/public-api.mjs +0 -4
- package/esm2022/typography/typography.component.mjs +0 -27
- package/esm2022/typography/typography.module.mjs +0 -16
- package/esm2022/typography/typography.property.mjs +0 -34
- package/esm2022/upload/ng-nest-ui-upload.mjs +0 -5
- package/esm2022/upload/public-api.mjs +0 -5
- package/esm2022/upload/upload-portal.component.mjs +0 -196
- package/esm2022/upload/upload.component.mjs +0 -233
- package/esm2022/upload/upload.module.mjs +0 -16
- package/esm2022/upload/upload.property.mjs +0 -118
- package/style/core/base.scss +0 -20
- package/style/core/cdk.scss +0 -72
- package/style/core/portal.scss +0 -5
- package/style/core/var.scss +0 -4
- package/style/mixins/index.scss +0 -9
- package/style/params/layout.scss +0 -73
- package/style/params/primary.scss +0 -208
- package/style/themes/default.scss +0 -1
|
@@ -1,659 +0,0 @@
|
|
|
1
|
-
import { Subject, fromEvent } from 'rxjs';
|
|
2
|
-
import { Component, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, Renderer2, ElementRef, ViewContainerRef, inject, viewChild, computed, signal, effect } from '@angular/core';
|
|
3
|
-
import { XTreeSelectProperty, XTreeSelectPrefix } from './tree-select.property';
|
|
4
|
-
import { XIsEmpty, XIsObservable, XIsChange, XSetData, XIsObjectArray, XIsFunction, XIsArray, XIsString, XRemove, XResize, XComputed, XParents } from '@ng-nest/ui/core';
|
|
5
|
-
import { XPortalService, XPortalConnectedPosition } from '@ng-nest/ui/portal';
|
|
6
|
-
import { XInputComponent } from '@ng-nest/ui/input';
|
|
7
|
-
import { XTreeSelectPortalComponent } from './tree-select-portal.component';
|
|
8
|
-
import { Overlay } from '@angular/cdk/overlay';
|
|
9
|
-
import { takeUntil, throttleTime, debounceTime, distinctUntilChanged, map, filter } from 'rxjs/operators';
|
|
10
|
-
import { DOWN_ARROW, UP_ARROW, ENTER, MAC_ENTER, LEFT_ARROW, RIGHT_ARROW, TAB, BACKSPACE } from '@angular/cdk/keycodes';
|
|
11
|
-
import { XValueAccessor } from '@ng-nest/ui/base-form';
|
|
12
|
-
import { XI18nService, zh_CN } from '@ng-nest/ui/i18n';
|
|
13
|
-
import { DOCUMENT } from '@angular/common';
|
|
14
|
-
import { XTagComponent } from '@ng-nest/ui/tag';
|
|
15
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
16
|
-
import { XOutletDirective } from '@ng-nest/ui/outlet';
|
|
17
|
-
import { toSignal } from '@angular/core/rxjs-interop';
|
|
18
|
-
import * as i0 from "@angular/core";
|
|
19
|
-
import * as i1 from "@angular/forms";
|
|
20
|
-
export class XTreeSelectComponent extends XTreeSelectProperty {
|
|
21
|
-
writeValue(value) {
|
|
22
|
-
if (this.multiple()) {
|
|
23
|
-
if (XIsEmpty(value)) {
|
|
24
|
-
value = [];
|
|
25
|
-
}
|
|
26
|
-
if (!XIsArray(value)) {
|
|
27
|
-
value = [value];
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
this.value.set(value);
|
|
31
|
-
this.setDisplayValue();
|
|
32
|
-
}
|
|
33
|
-
constructor() {
|
|
34
|
-
super();
|
|
35
|
-
this.unSubject = new Subject();
|
|
36
|
-
this.document = inject(DOCUMENT);
|
|
37
|
-
this.renderer = inject(Renderer2);
|
|
38
|
-
this.cdr = inject(ChangeDetectorRef);
|
|
39
|
-
this.portalService = inject(XPortalService);
|
|
40
|
-
this.viewContainerRef = inject(ViewContainerRef);
|
|
41
|
-
this.overlay = inject(Overlay);
|
|
42
|
-
this.i18n = inject(XI18nService);
|
|
43
|
-
this.elementRef = inject(ElementRef);
|
|
44
|
-
this.locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.treeSelect)), {
|
|
45
|
-
initialValue: zh_CN.treeSelect
|
|
46
|
-
});
|
|
47
|
-
this.inputCom = viewChild.required('inputCom');
|
|
48
|
-
this.treeSelect = viewChild.required('treeSelect');
|
|
49
|
-
this.multipleValueTpl = viewChild.required('multipleValueTpl');
|
|
50
|
-
this.multipleInput = viewChild('multipleInput');
|
|
51
|
-
this.getReadonly = computed(() => (this.readonly() && !this.search()) || (this.search() && Boolean(this.multiple())));
|
|
52
|
-
this.getMaxTagContent = computed(() => this.maxTagContent() || this.locale().maxTagContent);
|
|
53
|
-
this.objectArray = computed(() => XIsObjectArray(this.value()));
|
|
54
|
-
this.enter = signal(false);
|
|
55
|
-
this.showClearable = signal(false);
|
|
56
|
-
this.displayValue = signal('');
|
|
57
|
-
this.multipleSearchValue = signal('');
|
|
58
|
-
this.nodes = signal([]);
|
|
59
|
-
this.selectedNodes = signal([]);
|
|
60
|
-
this.displayNodes = signal([]);
|
|
61
|
-
this.displayMore = signal('');
|
|
62
|
-
this.showDisplayMore = signal(false);
|
|
63
|
-
this.searchNodes = signal([]);
|
|
64
|
-
this.cloneNodes = signal([]);
|
|
65
|
-
this.icon = signal('fto-chevron-down');
|
|
66
|
-
this.iconSpin = signal(false);
|
|
67
|
-
this.animating = signal(false);
|
|
68
|
-
this.selectedSurplus = signal(0);
|
|
69
|
-
this.selectedTotal = signal(0);
|
|
70
|
-
this.closeSubject = new Subject();
|
|
71
|
-
this.keydownSubject = new Subject();
|
|
72
|
-
this.inputChange = new Subject();
|
|
73
|
-
this.composition = signal(false);
|
|
74
|
-
this.multipleInputSizeChange = new Subject();
|
|
75
|
-
this.valueTemplate = viewChild.required('valueTemplate');
|
|
76
|
-
this.valueTplComputed = computed(() => {
|
|
77
|
-
if (this.nodeTpl()) {
|
|
78
|
-
return this.nodeTpl();
|
|
79
|
-
}
|
|
80
|
-
if (this.valueTpl()) {
|
|
81
|
-
return this.valueTpl();
|
|
82
|
-
}
|
|
83
|
-
if (this.multiple()) {
|
|
84
|
-
return this.multipleValueTpl();
|
|
85
|
-
}
|
|
86
|
-
return this.valueTemplate();
|
|
87
|
-
});
|
|
88
|
-
this.valueTplContextSignal = signal({ $node: null, $isValue: true });
|
|
89
|
-
this.valueTplContextComputed = computed(() => {
|
|
90
|
-
return this.valueTplContext() ? this.valueTplContext() : this.valueTplContextSignal();
|
|
91
|
-
});
|
|
92
|
-
this.valueTplSignal = computed(() => {
|
|
93
|
-
if (this.multiple()) {
|
|
94
|
-
return this.multipleValueTpl();
|
|
95
|
-
}
|
|
96
|
-
return this.valueTpl();
|
|
97
|
-
});
|
|
98
|
-
this.realPlacement = signal(null);
|
|
99
|
-
this.portalComponent = signal(null);
|
|
100
|
-
this.portalOverlayRef = signal(null);
|
|
101
|
-
this.inputChanged = toSignal(this.inputChange);
|
|
102
|
-
this.portalData = computed(() => {
|
|
103
|
-
const nodes = this.nodes();
|
|
104
|
-
if (XIsFunction(this.data()))
|
|
105
|
-
return nodes;
|
|
106
|
-
if (XIsEmpty(this.inputChanged()))
|
|
107
|
-
return nodes;
|
|
108
|
-
return this.searchNodes();
|
|
109
|
-
});
|
|
110
|
-
effect(() => this.portalComponent()?.setInput('data', this.portalData()));
|
|
111
|
-
effect(() => this.portalComponent()?.setInput('value', this.value()));
|
|
112
|
-
effect(() => this.portalComponent()?.setInput('placement', this.realPlacement()));
|
|
113
|
-
effect(() => this.portalComponent()?.setInput('multiple', this.multiple()));
|
|
114
|
-
effect(() => this.portalComponent()?.setInput('nodeTpl', this.nodeTpl()));
|
|
115
|
-
effect(() => this.portalComponent()?.setInput('inputCom', this.inputCom()));
|
|
116
|
-
effect(() => this.portalComponent()?.setInput('portalMaxHeight', this.portalMaxHeight()));
|
|
117
|
-
effect(() => this.portalComponent()?.setInput('objectArray', this.objectArray()));
|
|
118
|
-
effect(() => this.portalComponent()?.setInput('selectAll', this.selectAll()));
|
|
119
|
-
effect(() => this.portalComponent()?.setInput('selectAllText', this.selectAllText()));
|
|
120
|
-
effect(() => this.portalComponent()?.setInput('caseSensitive', this.caseSensitive()));
|
|
121
|
-
effect(() => this.portalComponent()?.setInput('search', this.search()));
|
|
122
|
-
effect(() => this.portalComponent()?.setInput('virtualScroll', this.virtualScroll()));
|
|
123
|
-
effect(() => this.portalComponent()?.setInput('size', this.size()));
|
|
124
|
-
effect(() => this.portalComponent()?.setInput('keywordText', this.inputChanged()));
|
|
125
|
-
effect(() => this.portalComponent()?.setInput('onlyLeaf', this.onlyLeaf()));
|
|
126
|
-
effect(() => this.portalComponent()?.setInput('expandedLevel', this.expandedLevel()));
|
|
127
|
-
}
|
|
128
|
-
ngOnInit() {
|
|
129
|
-
this.setSubject();
|
|
130
|
-
this.setParantScroll();
|
|
131
|
-
}
|
|
132
|
-
ngOnChanges(changes) {
|
|
133
|
-
const { data } = changes;
|
|
134
|
-
XIsChange(data) && this.setData();
|
|
135
|
-
}
|
|
136
|
-
ngAfterViewInit() {
|
|
137
|
-
this.setPortal();
|
|
138
|
-
if (this.multiple() && this.inputCom().inputValueRef()) {
|
|
139
|
-
XResize(this.inputCom().inputValueRef()?.nativeElement)
|
|
140
|
-
.pipe(debounceTime(30), takeUntil(this.unSubject))
|
|
141
|
-
.subscribe((x) => {
|
|
142
|
-
this.resizeObserver = x.resizeObserver;
|
|
143
|
-
this.setMutipleInputSize();
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
ngOnDestroy() {
|
|
148
|
-
this.unSubject.next();
|
|
149
|
-
this.unSubject.complete();
|
|
150
|
-
this.resizeObserver?.disconnect();
|
|
151
|
-
}
|
|
152
|
-
setData() {
|
|
153
|
-
if (this.async())
|
|
154
|
-
return;
|
|
155
|
-
XSetData(this.data(), this.unSubject).subscribe((x) => {
|
|
156
|
-
this.nodes.set(x);
|
|
157
|
-
this.setDisplayValue();
|
|
158
|
-
this.setPortal();
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
setSubject() {
|
|
162
|
-
this.closeSubject.pipe(takeUntil(this.unSubject)).subscribe(() => {
|
|
163
|
-
this.closePortal();
|
|
164
|
-
});
|
|
165
|
-
this.inputChange
|
|
166
|
-
.pipe(debounceTime(this.debounceTime()), distinctUntilChanged(), takeUntil(this.unSubject))
|
|
167
|
-
.subscribe((x) => {
|
|
168
|
-
this.modelChange(x);
|
|
169
|
-
});
|
|
170
|
-
this.keydownSubject.pipe(throttleTime(10), takeUntil(this.unSubject)).subscribe((x) => {
|
|
171
|
-
const keyCode = x.keyCode;
|
|
172
|
-
if (!this.portalAttached() &&
|
|
173
|
-
[DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW, ENTER, MAC_ENTER, BACKSPACE].includes(keyCode)) {
|
|
174
|
-
this.inputChange.next(this.displayValue());
|
|
175
|
-
}
|
|
176
|
-
});
|
|
177
|
-
this.multipleInputSizeChange.pipe(distinctUntilChanged(), takeUntil(this.unSubject)).subscribe((x) => {
|
|
178
|
-
if (this.multipleInput()) {
|
|
179
|
-
const input = this.multipleInput().elementRef.nativeElement;
|
|
180
|
-
this.renderer.setStyle(input, 'width', `${x}px`);
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
setParantScroll() {
|
|
185
|
-
if (!this.document)
|
|
186
|
-
return;
|
|
187
|
-
const parents = XParents(this.elementRef.nativeElement);
|
|
188
|
-
let firstScroll = null;
|
|
189
|
-
for (let item of parents) {
|
|
190
|
-
if (item.clientHeight < item.scrollHeight) {
|
|
191
|
-
firstScroll = item;
|
|
192
|
-
break;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
if (firstScroll && firstScroll.tagName !== 'BODY') {
|
|
196
|
-
fromEvent(firstScroll, 'scroll')
|
|
197
|
-
.pipe(filter(() => this.portalAttached()), takeUntil(this.unSubject))
|
|
198
|
-
.subscribe(() => {
|
|
199
|
-
this.portal?.overlayRef?.updatePosition();
|
|
200
|
-
const eract = this.elementRef.nativeElement.getBoundingClientRect();
|
|
201
|
-
const frect = firstScroll.getBoundingClientRect();
|
|
202
|
-
if (eract.top + eract.height - frect.top < 0 || eract.bottom > frect.bottom) {
|
|
203
|
-
this.closeSubject.next();
|
|
204
|
-
}
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
setMutipleInputSize() {
|
|
209
|
-
const ivf = this.inputCom().inputValueRef()?.nativeElement;
|
|
210
|
-
let { clientWidth, scrollHeight } = ivf;
|
|
211
|
-
const len = ivf.children.length;
|
|
212
|
-
let lastRowTagTop = -1;
|
|
213
|
-
let lines = 1;
|
|
214
|
-
let rowTagTop = -1;
|
|
215
|
-
let lastRowTagsWidth = 0;
|
|
216
|
-
let marginLeft = 0;
|
|
217
|
-
let marginTop = 0;
|
|
218
|
-
for (let i = len - 1; i >= 0; i--) {
|
|
219
|
-
const ele = ivf.children[i];
|
|
220
|
-
if (ele.tagName === 'X-TAG') {
|
|
221
|
-
const { offsetTop, offsetWidth } = ele;
|
|
222
|
-
const style = XComputed(ele);
|
|
223
|
-
marginLeft = Number(style.marginLeft.replace('px', ''));
|
|
224
|
-
marginTop = Number(style.marginTop.replace('px', ''));
|
|
225
|
-
if (rowTagTop === -1) {
|
|
226
|
-
rowTagTop = offsetTop;
|
|
227
|
-
}
|
|
228
|
-
else if (rowTagTop !== offsetTop) {
|
|
229
|
-
lines++;
|
|
230
|
-
rowTagTop = offsetTop;
|
|
231
|
-
}
|
|
232
|
-
if (lastRowTagTop === -1) {
|
|
233
|
-
lastRowTagTop = offsetTop;
|
|
234
|
-
}
|
|
235
|
-
if (lastRowTagTop === offsetTop) {
|
|
236
|
-
lastRowTagsWidth += offsetWidth + marginLeft;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
const height = scrollHeight + (lines > 1 ? marginTop : 0);
|
|
241
|
-
this.renderer.setStyle(this.inputCom().inputRef().nativeElement, 'height', `${height}px`);
|
|
242
|
-
if (this.multipleInput()) {
|
|
243
|
-
this.multipleInputSizeChange.next(clientWidth - lastRowTagsWidth - marginLeft);
|
|
244
|
-
}
|
|
245
|
-
this.portal?.overlayRef?.updatePosition();
|
|
246
|
-
}
|
|
247
|
-
menter() {
|
|
248
|
-
this.enter.set(true);
|
|
249
|
-
if (this.disabledComputed() || !this.clearable() || this.iconSpin())
|
|
250
|
-
return;
|
|
251
|
-
if (!XIsEmpty(this.displayValue())) {
|
|
252
|
-
this.icon.set('');
|
|
253
|
-
this.showClearable.set(true);
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
mleave() {
|
|
257
|
-
this.enter.set(false);
|
|
258
|
-
if (this.disabledComputed() || !this.clearable() || this.iconSpin())
|
|
259
|
-
return;
|
|
260
|
-
if (this.clearable()) {
|
|
261
|
-
this.icon.set('fto-chevron-down');
|
|
262
|
-
this.showClearable.set(false);
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
modelChange(value) {
|
|
266
|
-
if (XIsFunction(this.data())) {
|
|
267
|
-
if (!this.portalAttached()) {
|
|
268
|
-
this.showPortal();
|
|
269
|
-
}
|
|
270
|
-
this.icon.set('fto-loader');
|
|
271
|
-
this.iconSpin.set(true);
|
|
272
|
-
XSetData(this.data(), this.unSubject, true, value).subscribe((x) => {
|
|
273
|
-
this.icon.set('');
|
|
274
|
-
this.iconSpin.set(false);
|
|
275
|
-
if (!this.enter() && this.clearable()) {
|
|
276
|
-
this.showClearable.set(false);
|
|
277
|
-
}
|
|
278
|
-
this.nodes.set(x);
|
|
279
|
-
});
|
|
280
|
-
return;
|
|
281
|
-
}
|
|
282
|
-
if (this.nodes()) {
|
|
283
|
-
if (!this.portalAttached()) {
|
|
284
|
-
this.showPortal();
|
|
285
|
-
}
|
|
286
|
-
if (XIsEmpty(value)) {
|
|
287
|
-
this.searchNodes.set([
|
|
288
|
-
...this.nodes().map((x) => {
|
|
289
|
-
let res = { ...x };
|
|
290
|
-
delete res.children;
|
|
291
|
-
delete res.childrenLoaded;
|
|
292
|
-
delete res.leaf;
|
|
293
|
-
return res;
|
|
294
|
-
})
|
|
295
|
-
]);
|
|
296
|
-
}
|
|
297
|
-
else {
|
|
298
|
-
this.setSearchNodes(value);
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
setSearchNodes(value) {
|
|
303
|
-
let nodes = [];
|
|
304
|
-
const getParent = (node) => {
|
|
305
|
-
if (XIsEmpty(node.pid))
|
|
306
|
-
return;
|
|
307
|
-
const parent = this.nodes().find((x) => x.id === node.pid);
|
|
308
|
-
parent.open = true;
|
|
309
|
-
if (!XIsEmpty(parent)) {
|
|
310
|
-
if (nodes.every((x) => x.id !== parent.id)) {
|
|
311
|
-
nodes.push(parent);
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
};
|
|
315
|
-
if (this.caseSensitive()) {
|
|
316
|
-
nodes = this.nodes().filter((x) => x.label.indexOf(value) >= 0);
|
|
317
|
-
}
|
|
318
|
-
else {
|
|
319
|
-
nodes = this.nodes().filter((x) => x.label.toLowerCase().indexOf(value.toLowerCase()) >= 0);
|
|
320
|
-
}
|
|
321
|
-
for (let node of nodes) {
|
|
322
|
-
getParent(node);
|
|
323
|
-
}
|
|
324
|
-
this.searchNodes.set(nodes.map((x) => {
|
|
325
|
-
let res = { ...x };
|
|
326
|
-
delete res.children;
|
|
327
|
-
delete res.childrenLoaded;
|
|
328
|
-
delete res.leaf;
|
|
329
|
-
return res;
|
|
330
|
-
}));
|
|
331
|
-
}
|
|
332
|
-
clearEmit() {
|
|
333
|
-
this.value.set(this.multiple() ? [] : '');
|
|
334
|
-
this.displayValue.set('');
|
|
335
|
-
this.multipleSearchValue.set('');
|
|
336
|
-
this.selectedNodes.set([]);
|
|
337
|
-
this.setDisplayNodes();
|
|
338
|
-
this.valueTplContextSignal.update((x) => {
|
|
339
|
-
x.$node = null;
|
|
340
|
-
return { ...x };
|
|
341
|
-
});
|
|
342
|
-
this.mleave();
|
|
343
|
-
this.inputChange.next('');
|
|
344
|
-
if (this.onChange)
|
|
345
|
-
this.onChange(this.value());
|
|
346
|
-
}
|
|
347
|
-
setDisplayValue(clickNode) {
|
|
348
|
-
if (this.nodes().length > 0) {
|
|
349
|
-
if (this.multiple()) {
|
|
350
|
-
if (XIsEmpty(this.value())) {
|
|
351
|
-
this.value.set([]);
|
|
352
|
-
this.displayValue.set('');
|
|
353
|
-
this.selectedNodes.set([]);
|
|
354
|
-
this.displayNodes.set([]);
|
|
355
|
-
this.displayMore.set('');
|
|
356
|
-
this.valueTplContextSignal.update((x) => {
|
|
357
|
-
x.$node = null;
|
|
358
|
-
return { ...x };
|
|
359
|
-
});
|
|
360
|
-
this.setDisplayNodes();
|
|
361
|
-
}
|
|
362
|
-
else {
|
|
363
|
-
let ids = [];
|
|
364
|
-
let selected = [];
|
|
365
|
-
if (this.objectArray()) {
|
|
366
|
-
ids = this.value().map((x) => x.id);
|
|
367
|
-
}
|
|
368
|
-
else {
|
|
369
|
-
ids = this.value();
|
|
370
|
-
}
|
|
371
|
-
if (clickNode) {
|
|
372
|
-
let inx = this.selectedNodes().findIndex((x) => x.id === clickNode.id);
|
|
373
|
-
if (inx >= 0) {
|
|
374
|
-
this.selectedNodes.update((x) => {
|
|
375
|
-
XRemove(x, (y) => y.id === clickNode.id);
|
|
376
|
-
return [...x];
|
|
377
|
-
});
|
|
378
|
-
}
|
|
379
|
-
else {
|
|
380
|
-
this.selectedNodes.update((x) => {
|
|
381
|
-
x.push(clickNode);
|
|
382
|
-
return [...x];
|
|
383
|
-
});
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
else {
|
|
387
|
-
for (let id of ids) {
|
|
388
|
-
let node = this.nodes().find((x) => x.id === id);
|
|
389
|
-
if (node)
|
|
390
|
-
selected.push(node);
|
|
391
|
-
}
|
|
392
|
-
this.selectedNodes.set(selected);
|
|
393
|
-
}
|
|
394
|
-
if (this.showPath()) {
|
|
395
|
-
for (let node of this.selectedNodes()) {
|
|
396
|
-
const parents = this.getParentPath(node);
|
|
397
|
-
node.path = parents.map((x) => x.label).join(this.separator());
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
this.setDisplayNodes();
|
|
401
|
-
this.displayValue.set(this.selectedNodes()
|
|
402
|
-
.map((x) => x.label)
|
|
403
|
-
.join(this.separator()));
|
|
404
|
-
this.valueTplContextSignal.update((x) => {
|
|
405
|
-
x.$node = [...this.selectedNodes()];
|
|
406
|
-
return { ...x };
|
|
407
|
-
});
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
else {
|
|
411
|
-
let node = this.nodes().find((x) => x.id === this.value());
|
|
412
|
-
if (node) {
|
|
413
|
-
if (this.showPath()) {
|
|
414
|
-
const parents = this.getParentPath(node);
|
|
415
|
-
this.displayValue.set(parents.map((x) => x.label).join(this.separator()));
|
|
416
|
-
}
|
|
417
|
-
else {
|
|
418
|
-
this.displayValue.set(node.label);
|
|
419
|
-
}
|
|
420
|
-
this.valueTplContextSignal.update((x) => {
|
|
421
|
-
x.$node = node;
|
|
422
|
-
return { ...x };
|
|
423
|
-
});
|
|
424
|
-
}
|
|
425
|
-
else {
|
|
426
|
-
this.displayValue.set('');
|
|
427
|
-
this.valueTplContextSignal.update((x) => {
|
|
428
|
-
x.$node = null;
|
|
429
|
-
return { ...x };
|
|
430
|
-
});
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
getParentPath(node) {
|
|
436
|
-
let res = [node];
|
|
437
|
-
const getParent = (nd) => {
|
|
438
|
-
let parent = this.nodes().find((x) => nd.pid && x.id === nd.pid);
|
|
439
|
-
if (parent) {
|
|
440
|
-
res = [parent, ...res];
|
|
441
|
-
getParent(parent);
|
|
442
|
-
}
|
|
443
|
-
};
|
|
444
|
-
getParent(node);
|
|
445
|
-
return res;
|
|
446
|
-
}
|
|
447
|
-
closeNode(event, node, index) {
|
|
448
|
-
let inx = -1;
|
|
449
|
-
if (this.objectArray()) {
|
|
450
|
-
inx = this.value().findIndex((y) => y.id === node.id);
|
|
451
|
-
}
|
|
452
|
-
else {
|
|
453
|
-
inx = this.value().findIndex((y) => y === node.id);
|
|
454
|
-
}
|
|
455
|
-
if (inx >= 0) {
|
|
456
|
-
this.value.update((x) => {
|
|
457
|
-
x.splice(inx, 1);
|
|
458
|
-
return [...x];
|
|
459
|
-
});
|
|
460
|
-
if (this.onChange)
|
|
461
|
-
this.onChange(this.value());
|
|
462
|
-
this.selectedNodes.update((x) => {
|
|
463
|
-
x.splice(index, 1);
|
|
464
|
-
return [...x];
|
|
465
|
-
});
|
|
466
|
-
this.setDisplayNodes();
|
|
467
|
-
}
|
|
468
|
-
event.stopPropagation();
|
|
469
|
-
}
|
|
470
|
-
setDisplayNodes() {
|
|
471
|
-
if (!this.multiple())
|
|
472
|
-
return;
|
|
473
|
-
const maxlen = this.selectedNodes().length;
|
|
474
|
-
let len = 0;
|
|
475
|
-
if (this.maxTagCount() >= 0) {
|
|
476
|
-
len = maxlen > this.maxTagCount() ? this.maxTagCount() : maxlen;
|
|
477
|
-
}
|
|
478
|
-
else {
|
|
479
|
-
len = maxlen;
|
|
480
|
-
}
|
|
481
|
-
let more = maxlen - len;
|
|
482
|
-
more = more < 0 ? 0 : more;
|
|
483
|
-
this.displayNodes.set(this.selectedNodes().slice(0, len));
|
|
484
|
-
this.showDisplayMore.set(more > 0);
|
|
485
|
-
if (XIsString(this.getMaxTagContent())) {
|
|
486
|
-
this.displayMore.set(more > 0 ? this.getMaxTagContent().replace(/\{\{surplus\}\}/g, `${more}`) : '');
|
|
487
|
-
}
|
|
488
|
-
else {
|
|
489
|
-
this.selectedSurplus.set(more);
|
|
490
|
-
this.selectedTotal.set(maxlen);
|
|
491
|
-
}
|
|
492
|
-
setTimeout(() => this.setMutipleInputSize());
|
|
493
|
-
}
|
|
494
|
-
portalAttached() {
|
|
495
|
-
return this.portal?.overlayRef?.hasAttached();
|
|
496
|
-
}
|
|
497
|
-
closePortal() {
|
|
498
|
-
if (this.portalAttached()) {
|
|
499
|
-
this.portal?.overlayRef?.detach();
|
|
500
|
-
this.active.set(false);
|
|
501
|
-
this.multipleSearchValue.set('');
|
|
502
|
-
return true;
|
|
503
|
-
}
|
|
504
|
-
return false;
|
|
505
|
-
}
|
|
506
|
-
destroyPortal() {
|
|
507
|
-
this.portal?.overlayRef?.dispose();
|
|
508
|
-
}
|
|
509
|
-
showPortal(click = false) {
|
|
510
|
-
if (this.disabledComputed() || this.iconSpin() || this.animating())
|
|
511
|
-
return;
|
|
512
|
-
this.active.set(true);
|
|
513
|
-
if ((this.async() && XIsObservable(this.data()) && this.nodes().length === 0) || XIsFunction(this.data())) {
|
|
514
|
-
this.icon.set('fto-loader');
|
|
515
|
-
this.iconSpin.set(true);
|
|
516
|
-
XSetData(this.data(), this.unSubject, true, click ? '' : this.displayValue()).subscribe((x) => {
|
|
517
|
-
this.icon.set('fto-chevron-down');
|
|
518
|
-
this.iconSpin.set(false);
|
|
519
|
-
if (!this.enter() && this.clearable()) {
|
|
520
|
-
this.showClearable.set(false);
|
|
521
|
-
}
|
|
522
|
-
this.nodes.set(x);
|
|
523
|
-
if (!this.search())
|
|
524
|
-
this.setDisplayValue();
|
|
525
|
-
this.createPortal();
|
|
526
|
-
});
|
|
527
|
-
}
|
|
528
|
-
else {
|
|
529
|
-
this.createPortal();
|
|
530
|
-
}
|
|
531
|
-
if (this.search() && this.multiple() && this.multipleInput()) {
|
|
532
|
-
this.multipleInput().inputFocus('focus');
|
|
533
|
-
}
|
|
534
|
-
else {
|
|
535
|
-
this.inputCom().inputFocus('focus');
|
|
536
|
-
}
|
|
537
|
-
}
|
|
538
|
-
createPortal() {
|
|
539
|
-
const box = this.inputCom().inputRef().nativeElement.getBoundingClientRect();
|
|
540
|
-
const config = {
|
|
541
|
-
backdropClass: '',
|
|
542
|
-
width: box.width,
|
|
543
|
-
positionStrategy: this.setPlacement(),
|
|
544
|
-
scrollStrategy: this.overlay.scrollStrategies.reposition()
|
|
545
|
-
};
|
|
546
|
-
this.setPosition(config);
|
|
547
|
-
this.portal = this.portalService.attach({
|
|
548
|
-
content: XTreeSelectPortalComponent,
|
|
549
|
-
viewContainerRef: this.viewContainerRef,
|
|
550
|
-
overlayConfig: config
|
|
551
|
-
});
|
|
552
|
-
this.portal.overlayRef
|
|
553
|
-
?.outsidePointerEvents()
|
|
554
|
-
.pipe(takeUntil(this.unSubject))
|
|
555
|
-
.subscribe(() => {
|
|
556
|
-
this.setDisplayValue();
|
|
557
|
-
this.closeSubject.next();
|
|
558
|
-
});
|
|
559
|
-
this.setInstance();
|
|
560
|
-
}
|
|
561
|
-
setPosition(config) {
|
|
562
|
-
let position = config.positionStrategy;
|
|
563
|
-
position.positionChanges.pipe(takeUntil(this.unSubject)).subscribe((pos) => {
|
|
564
|
-
const place = XPortalConnectedPosition.get(pos.connectionPair);
|
|
565
|
-
if (place !== this.realPlacement()) {
|
|
566
|
-
this.realPlacement.set(place);
|
|
567
|
-
this.portalOverlayRef()?.updatePosition();
|
|
568
|
-
}
|
|
569
|
-
});
|
|
570
|
-
}
|
|
571
|
-
setInstance() {
|
|
572
|
-
let { componentRef, overlayRef } = this.portal;
|
|
573
|
-
if (!componentRef || !overlayRef)
|
|
574
|
-
return;
|
|
575
|
-
this.portalComponent.set(componentRef);
|
|
576
|
-
this.portalOverlayRef.set(overlayRef);
|
|
577
|
-
this.realPlacement.set(this.placement());
|
|
578
|
-
const { nodeClick, animating } = componentRef.instance;
|
|
579
|
-
nodeClick.subscribe((x) => this.nodeClick(x.node, x.value));
|
|
580
|
-
animating.subscribe((ing) => this.animating.set(ing));
|
|
581
|
-
}
|
|
582
|
-
nodeClick(node, value) {
|
|
583
|
-
if (this.multiple()) {
|
|
584
|
-
this.value.set(value);
|
|
585
|
-
if (this.multipleInput()) {
|
|
586
|
-
const input = this.multipleInput().elementRef.nativeElement;
|
|
587
|
-
this.renderer.setStyle(input, 'width', '2rem');
|
|
588
|
-
}
|
|
589
|
-
if (this.search() && this.multipleSearchValue() !== '') {
|
|
590
|
-
this.multipleSearchValue.set('');
|
|
591
|
-
this.inputChange.next('');
|
|
592
|
-
}
|
|
593
|
-
this.setDisplayValue(node);
|
|
594
|
-
}
|
|
595
|
-
else {
|
|
596
|
-
node = node;
|
|
597
|
-
if (this.showPath()) {
|
|
598
|
-
const parents = this.getParentPath(node);
|
|
599
|
-
this.displayValue.set(parents.map((x) => x.label).join(this.separator()));
|
|
600
|
-
}
|
|
601
|
-
else {
|
|
602
|
-
this.displayValue.set(node.label);
|
|
603
|
-
}
|
|
604
|
-
this.valueTplContextSignal.update((x) => {
|
|
605
|
-
x.$node = node;
|
|
606
|
-
return { ...x };
|
|
607
|
-
});
|
|
608
|
-
this.value.set(node.id);
|
|
609
|
-
this.closeSubject.next();
|
|
610
|
-
}
|
|
611
|
-
if (this.search() && this.multiple() && this.multipleInput()) {
|
|
612
|
-
this.multipleInput().inputFocus('focus');
|
|
613
|
-
}
|
|
614
|
-
else {
|
|
615
|
-
this.inputCom().inputFocus('focus');
|
|
616
|
-
}
|
|
617
|
-
if (this.onChange)
|
|
618
|
-
this.onChange(this.value());
|
|
619
|
-
this.formControlValidator();
|
|
620
|
-
}
|
|
621
|
-
selectAllNodes(value) {
|
|
622
|
-
this.value.set(value);
|
|
623
|
-
}
|
|
624
|
-
setPlacement() {
|
|
625
|
-
return this.portalService.setPlacement({
|
|
626
|
-
elementRef: this.inputCom().inputRef(),
|
|
627
|
-
placement: [this.placement(), 'bottom', 'top'],
|
|
628
|
-
transformOriginOn: 'x-tree-select-portal'
|
|
629
|
-
});
|
|
630
|
-
}
|
|
631
|
-
setPortal() {
|
|
632
|
-
this.portalAttached() && this.portal?.overlayRef?.updatePositionStrategy(this.setPlacement());
|
|
633
|
-
}
|
|
634
|
-
onKeydown($event) {
|
|
635
|
-
this.keydownSubject.next($event);
|
|
636
|
-
if ($event.keyCode !== TAB && !this.search()) {
|
|
637
|
-
$event.preventDefault();
|
|
638
|
-
}
|
|
639
|
-
}
|
|
640
|
-
onFocus(_event) {
|
|
641
|
-
if (this.search() && this.multiple() && this.multipleInput()) {
|
|
642
|
-
this.multipleInput().inputFocus();
|
|
643
|
-
}
|
|
644
|
-
else {
|
|
645
|
-
this.inputCom().inputFocus('focus');
|
|
646
|
-
}
|
|
647
|
-
}
|
|
648
|
-
onInput(_event) {
|
|
649
|
-
this.formControlValidator();
|
|
650
|
-
setTimeout(() => this.inputChange.next(this.multiple() ? this.multipleSearchValue() : this.displayValue()));
|
|
651
|
-
}
|
|
652
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XTreeSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
653
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: XTreeSelectComponent, isStandalone: true, selector: "x-tree-select", providers: [XValueAccessor(XTreeSelectComponent)], viewQueries: [{ propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, isSignal: true }, { propertyName: "treeSelect", first: true, predicate: ["treeSelect"], descendants: true, isSignal: true }, { propertyName: "multipleValueTpl", first: true, predicate: ["multipleValueTpl"], descendants: true, isSignal: true }, { propertyName: "multipleInput", first: true, predicate: ["multipleInput"], descendants: true, isSignal: true }, { propertyName: "valueTemplate", first: true, predicate: ["valueTemplate"], descendants: true, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #treeSelect class=\"x-tree-select\" [class.x-tree-select-multiple]=\"multiple()\">\r\n <div class=\"x-tree-select-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [icon]=\"icon()\"\r\n [iconSpin]=\"iconSpin()\"\r\n [placeholder]=\"placeholder()\"\r\n [readonly]=\"getReadonly()\"\r\n [clearable]=\"showClearable()\"\r\n [(ngModel)]=\"value\"\r\n [valueTpl]=\"valueTplComputed()\"\r\n [valueTplContext]=\"valueTplContextComputed()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n (xInput)=\"onInput($event)\"\r\n (xFocus)=\"onFocus($event)\"\r\n (xClick)=\"showPortal(true)\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n (xComposition)=\"composition.set($event)\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n\r\n<ng-template #valueTemplate>{{ displayValue() }}</ng-template>\r\n\r\n<ng-template #multipleValueTpl>\r\n @for (node of displayNodes(); track node.id; let i = $index) {\r\n <x-tag\r\n [@.disabled]=\"true\"\r\n [bordered]=\"false\"\r\n [closable]=\"!disabled()\"\r\n [type]=\"'info'\"\r\n (close)=\"closeNode($event, node, i)\"\r\n [size]=\"size()\"\r\n >{{ showPath() ? node.path : node.label }}</x-tag\r\n >\r\n }\r\n @if (showDisplayMore()) {\r\n <x-tag [@.disabled]=\"true\" [bordered]=\"false\" [type]=\"'info'\" [size]=\"size()\">\r\n <ng-container *xOutlet=\"getMaxTagContent(); context: { $surplus: selectedSurplus(), $total: selectedTotal() }\">{{\r\n displayMore()\r\n }}</ng-container>\r\n </x-tag>\r\n }\r\n @if (search()) {\r\n <x-input\r\n #multipleInput\r\n [bordered]=\"false\"\r\n [size]=\"size()\"\r\n [(ngModel)]=\"multipleSearchValue\"\r\n (xInput)=\"onInput($event)\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n ></x-input>\r\n }\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";x-tree-select{display:inline-block;width:12rem}.x-tree-select{margin:0;padding:0}.x-tree-select{width:100%}.x-tree-select x-input{width:100%;color:#252022}.x-tree-select-multiple .x-input-value-template-value{display:flex;align-items:center;margin-bottom:.125rem;flex-wrap:wrap;width:initial;height:initial!important;left:.125rem!important}.x-tree-select-multiple .x-input-value-template-value>x-tag{display:inline-flex;margin-left:.0625rem;margin-top:.125rem}.x-tree-select-multiple .x-input-value-template-value>x-tag .x-tag-big{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-tree-select-multiple .x-input-value-template-value>x-tag .x-tag-big>.x-icon{right:calc(-var(--x-padding-large)/2)}.x-tree-select-multiple .x-input-value-template-value>x-tag .x-tag-large{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-tree-select-multiple .x-input-value-template-value>x-tag .x-tag-large>.x-icon{right:calc(-var(--x-padding-medium)/2)}.x-tree-select-multiple .x-input-value-template-value>x-tag .x-tag-medium{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-tree-select-multiple .x-input-value-template-value>x-tag .x-tag-medium>.x-icon{right:calc(-var(--x-padding-small)/2)}.x-tree-select-multiple .x-input-value-template-value>x-tag .x-tag-small{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-tree-select-multiple .x-input-value-template-value>x-tag .x-tag-small>.x-icon{right:calc(-var(--x-padding-mini)/2)}.x-tree-select-multiple .x-input-value-template-value>x-tag .x-tag-mini{height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-tree-select-multiple .x-input-value-template-value>x-tag .x-tag-mini>.x-icon{right:-.0625rem}.x-tree-select-multiple .x-input-value-template-value>x-input{margin-top:.125rem;width:5rem}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>input,.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-large);line-height:var(--x-height-large)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-big>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>input,.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-large>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>input,.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-small);line-height:var(--x-height-small)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-medium>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>input,.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-small>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>input,.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-value-template-value{height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-max-length{height:1.125rem;line-height:1.125rem}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-mini>label{height:1.125rem;line-height:1.125rem}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-row>.x-input-input>input{background-color:transparent}.x-tree-select-portal{padding:.25rem;color:var(--x-text);width:100%;border-radius:var(--x-border-small-radius);box-shadow:var(--x-box-shadow);position:relative;display:flex;flex-direction:column;background-color:var(--x-background-100);overflow:hidden auto;max-height:calc(calc(var(--x-font-size) + .875rem) * 6 + var(--x-border-width) * 7)}.x-tree-select-portal x-tree{width:100%}.x-tree-select-portal x-empty{margin:1rem;display:block}.x-tree-select-portal-virtual-scroll{padding:0;overflow:hidden}.x-tree-select-portal-virtual-scroll .x-tree-content{padding:.25rem}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: XInputComponent, selector: "x-input" }, { kind: "component", type: XTagComponent, selector: "x-tag" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
654
|
-
}
|
|
655
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XTreeSelectComponent, decorators: [{
|
|
656
|
-
type: Component,
|
|
657
|
-
args: [{ selector: `${XTreeSelectPrefix}`, standalone: true, imports: [FormsModule, ReactiveFormsModule, XInputComponent, XTagComponent, XOutletDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XTreeSelectComponent)], template: "<div #treeSelect class=\"x-tree-select\" [class.x-tree-select-multiple]=\"multiple()\">\r\n <div class=\"x-tree-select-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [icon]=\"icon()\"\r\n [iconSpin]=\"iconSpin()\"\r\n [placeholder]=\"placeholder()\"\r\n [readonly]=\"getReadonly()\"\r\n [clearable]=\"showClearable()\"\r\n [(ngModel)]=\"value\"\r\n [valueTpl]=\"valueTplComputed()\"\r\n [valueTplContext]=\"valueTplContextComputed()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n (xInput)=\"onInput($event)\"\r\n (xFocus)=\"onFocus($event)\"\r\n (xClick)=\"showPortal(true)\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n (xComposition)=\"composition.set($event)\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n\r\n<ng-template #valueTemplate>{{ displayValue() }}</ng-template>\r\n\r\n<ng-template #multipleValueTpl>\r\n @for (node of displayNodes(); track node.id; let i = $index) {\r\n <x-tag\r\n [@.disabled]=\"true\"\r\n [bordered]=\"false\"\r\n [closable]=\"!disabled()\"\r\n [type]=\"'info'\"\r\n (close)=\"closeNode($event, node, i)\"\r\n [size]=\"size()\"\r\n >{{ showPath() ? node.path : node.label }}</x-tag\r\n >\r\n }\r\n @if (showDisplayMore()) {\r\n <x-tag [@.disabled]=\"true\" [bordered]=\"false\" [type]=\"'info'\" [size]=\"size()\">\r\n <ng-container *xOutlet=\"getMaxTagContent(); context: { $surplus: selectedSurplus(), $total: selectedTotal() }\">{{\r\n displayMore()\r\n }}</ng-container>\r\n </x-tag>\r\n }\r\n @if (search()) {\r\n <x-input\r\n #multipleInput\r\n [bordered]=\"false\"\r\n [size]=\"size()\"\r\n [(ngModel)]=\"multipleSearchValue\"\r\n (xInput)=\"onInput($event)\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n ></x-input>\r\n }\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";x-tree-select{display:inline-block;width:12rem}.x-tree-select{margin:0;padding:0}.x-tree-select{width:100%}.x-tree-select x-input{width:100%;color:#252022}.x-tree-select-multiple .x-input-value-template-value{display:flex;align-items:center;margin-bottom:.125rem;flex-wrap:wrap;width:initial;height:initial!important;left:.125rem!important}.x-tree-select-multiple .x-input-value-template-value>x-tag{display:inline-flex;margin-left:.0625rem;margin-top:.125rem}.x-tree-select-multiple .x-input-value-template-value>x-tag .x-tag-big{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-tree-select-multiple .x-input-value-template-value>x-tag .x-tag-big>.x-icon{right:calc(-var(--x-padding-large)/2)}.x-tree-select-multiple .x-input-value-template-value>x-tag .x-tag-large{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-tree-select-multiple .x-input-value-template-value>x-tag .x-tag-large>.x-icon{right:calc(-var(--x-padding-medium)/2)}.x-tree-select-multiple .x-input-value-template-value>x-tag .x-tag-medium{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-tree-select-multiple .x-input-value-template-value>x-tag .x-tag-medium>.x-icon{right:calc(-var(--x-padding-small)/2)}.x-tree-select-multiple .x-input-value-template-value>x-tag .x-tag-small{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-tree-select-multiple .x-input-value-template-value>x-tag .x-tag-small>.x-icon{right:calc(-var(--x-padding-mini)/2)}.x-tree-select-multiple .x-input-value-template-value>x-tag .x-tag-mini{height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-tree-select-multiple .x-input-value-template-value>x-tag .x-tag-mini>.x-icon{right:-.0625rem}.x-tree-select-multiple .x-input-value-template-value>x-input{margin-top:.125rem;width:5rem}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>input,.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-large);line-height:var(--x-height-large)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-big>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>input,.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-large>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>input,.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-small);line-height:var(--x-height-small)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-medium>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>input,.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-small>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>input,.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-value-template-value{height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-max-length{height:1.125rem;line-height:1.125rem}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-mini>label{height:1.125rem;line-height:1.125rem}.x-tree-select-multiple .x-input-value-template-value>x-input .x-input-row>.x-input-input>input{background-color:transparent}.x-tree-select-portal{padding:.25rem;color:var(--x-text);width:100%;border-radius:var(--x-border-small-radius);box-shadow:var(--x-box-shadow);position:relative;display:flex;flex-direction:column;background-color:var(--x-background-100);overflow:hidden auto;max-height:calc(calc(var(--x-font-size) + .875rem) * 6 + var(--x-border-width) * 7)}.x-tree-select-portal x-tree{width:100%}.x-tree-select-portal x-empty{margin:1rem;display:block}.x-tree-select-portal-virtual-scroll{padding:0;overflow:hidden}.x-tree-select-portal-virtual-scroll .x-tree-content{padding:.25rem}\n"] }]
|
|
658
|
-
}], ctorParameters: () => [] });
|
|
659
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJlZS1zZWxlY3QvdHJlZS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJlZS1zZWxlY3QvdHJlZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUdWLGdCQUFnQixFQUVoQixNQUFNLEVBR04sU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBRU4sTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRyxPQUFPLEVBQ0wsUUFBUSxFQUNSLGFBQWEsRUFDYixTQUFTLEVBQ1QsUUFBUSxFQUVSLGNBQWMsRUFDZCxXQUFXLEVBQ1gsUUFBUSxFQUNSLFNBQVMsRUFDVCxPQUFPLEVBQ1AsT0FBTyxFQUNQLFNBQVMsRUFFVCxRQUFRLEVBRVQsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsY0FBYyxFQUFxQix3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RSxPQUFPLEVBQ0wsT0FBTyxFQUtSLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLG9CQUFv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RSxDQUFDLENBQUMsQ0FBQztRQUNsRixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFGLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsUUFBUSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsUUFBUSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsUUFBUSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FB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QkFBbUIsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixDQUFDLGlCQUc5RSxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkNoYW5nZXMsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBUZW1wbGF0ZVJlZixcclxuICBpbmplY3QsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgdmlld0NoaWxkLFxyXG4gIGNvbXB1dGVkLFxyXG4gIHNpZ25hbCxcclxuICBDb21wb25lbnRSZWYsXHJcbiAgZWZmZWN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhUcmVlU2VsZWN0Tm9kZSwgWFRyZWVTZWxlY3RQcm9wZXJ0eSwgWFRyZWVTZWxlY3RQcmVmaXggfSBmcm9tICcuL3RyZWUtc2VsZWN0LnByb3BlcnR5JztcclxuaW1wb3J0IHtcclxuICBYSXNFbXB0eSxcclxuICBYSXNPYnNlcnZhYmxlLFxyXG4gIFhJc0NoYW5nZSxcclxuICBYU2V0RGF0YSxcclxuICBYUG9zaXRpb25Ub3BCb3R0b20sXHJcbiAgWElzT2JqZWN0QXJyYXksXHJcbiAgWElzRnVuY3Rpb24sXHJcbiAgWElzQXJyYXksXHJcbiAgWElzU3RyaW5nLFxyXG4gIFhSZW1vdmUsXHJcbiAgWFJlc2l6ZSxcclxuICBYQ29tcHV0ZWQsXHJcbiAgWFJlc2l6ZU9ic2VydmVyLFxyXG4gIFhQYXJlbnRzLFxyXG4gIFhQbGFjZW1lbnRcclxufSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWFBvcnRhbFNlcnZpY2UsIFhQb3J0YWxPdmVybGF5UmVmLCBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24gfSBmcm9tICdAbmctbmVzdC91aS9wb3J0YWwnO1xyXG5pbXBvcnQgeyBYSW5wdXRDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9pbnB1dCc7XHJcbmltcG9ydCB7IFhUcmVlU2VsZWN0UG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi90cmVlLXNlbGVjdC1wb3J0YWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBPdmVybGF5LFxyXG4gIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSxcclxuICBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UsXHJcbiAgT3ZlcmxheUNvbmZpZyxcclxuICBPdmVybGF5UmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIHRocm90dGxlVGltZSwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IERPV05fQVJST1csIFVQX0FSUk9XLCBFTlRFUiwgTUFDX0VOVEVSLCBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPVywgVEFCLCBCQUNLU1BBQ0UgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcbmltcG9ydCB7IFhJMThuVHJlZVNlbGVjdCwgWEkxOG5TZXJ2aWNlLCB6aF9DTiB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFhUYWdDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS90YWcnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgWE91dGxldERpcmVjdGl2ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL291dGxldCc7XHJcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hUcmVlU2VsZWN0UHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFhJbnB1dENvbXBvbmVudCwgWFRhZ0NvbXBvbmVudCwgWE91dGxldERpcmVjdGl2ZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmVlLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWFRyZWVTZWxlY3RDb21wb25lbnQpXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFRyZWVTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBYVHJlZVNlbGVjdFByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSB1blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXIhOiBYUmVzaXplT2JzZXJ2ZXI7XHJcbiAgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xyXG4gIHByaXZhdGUgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuICBvdmVycmlkZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHByaXZhdGUgcG9ydGFsU2VydmljZSA9IGluamVjdChYUG9ydGFsU2VydmljZSk7XHJcbiAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xyXG4gIHByaXZhdGUgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcclxuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoWEkxOG5TZXJ2aWNlKTtcclxuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XHJcblxyXG4gIGxvY2FsZSA9IHRvU2lnbmFsKHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2UucGlwZShtYXAoKHgpID0+IHgudHJlZVNlbGVjdCBhcyBYSTE4blRyZWVTZWxlY3QpKSwge1xyXG4gICAgaW5pdGlhbFZhbHVlOiB6aF9DTi50cmVlU2VsZWN0XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0Q29tID0gdmlld0NoaWxkLnJlcXVpcmVkPFhJbnB1dENvbXBvbmVudD4oJ2lucHV0Q29tJyk7XHJcbiAgdHJlZVNlbGVjdCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ3RyZWVTZWxlY3QnKTtcclxuICBtdWx0aXBsZVZhbHVlVHBsID0gdmlld0NoaWxkLnJlcXVpcmVkPFRlbXBsYXRlUmVmPHZvaWQ+PignbXVsdGlwbGVWYWx1ZVRwbCcpO1xyXG4gIG11bHRpcGxlSW5wdXQgPSB2aWV3Q2hpbGQ8WElucHV0Q29tcG9uZW50PignbXVsdGlwbGVJbnB1dCcpO1xyXG5cclxuICBnZXRSZWFkb25seSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLnJlYWRvbmx5KCkgJiYgIXRoaXMuc2VhcmNoKCkpIHx8ICh0aGlzLnNlYXJjaCgpICYmIEJvb2xlYW4odGhpcy5tdWx0aXBsZSgpKSkpO1xyXG4gIGdldE1heFRhZ0NvbnRlbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1heFRhZ0NvbnRlbnQoKSB8fCB0aGlzLmxvY2FsZSgpLm1heFRhZ0NvbnRlbnQpO1xyXG4gIG9iamVjdEFycmF5ID0gY29tcHV0ZWQoKCkgPT4gWElzT2JqZWN0QXJyYXkodGhpcy52YWx1ZSgpKSk7XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUoKSkge1xyXG4gICAgICBpZiAoWElzRW1wdHkodmFsdWUpKSB7XHJcbiAgICAgICAgdmFsdWUgPSBbXTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIVhJc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgIHZhbHVlID0gW3ZhbHVlXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy52YWx1ZS5zZXQodmFsdWUpO1xyXG4gICAgdGhpcy5zZXREaXNwbGF5VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIGVudGVyID0gc2lnbmFsKGZhbHNlKTtcclxuICBzaG93Q2xlYXJhYmxlID0gc2lnbmFsKGZhbHNlKTtcclxuICBkaXNwbGF5VmFsdWUgPSBzaWduYWwoJycpO1xyXG4gIG11bHRpcGxlU2VhcmNoVmFsdWUgPSBzaWduYWwoJycpO1xyXG4gIG5vZGVzID0gc2lnbmFsPFhUcmVlU2VsZWN0Tm9kZVtdPihbXSk7XHJcbiAgc2VsZWN0ZWROb2RlcyA9IHNpZ25hbDxYVHJlZVNlbGVjdE5vZGVbXT4oW10pO1xyXG4gIGRpc3BsYXlOb2RlcyA9IHNpZ25hbDxYVHJlZVNlbGVjdE5vZGVbXT4oW10pO1xyXG4gIGRpc3BsYXlNb3JlID0gc2lnbmFsKCcnKTtcclxuICBzaG93RGlzcGxheU1vcmUgPSBzaWduYWwoZmFsc2UpO1xyXG4gIHNlYXJjaE5vZGVzID0gc2lnbmFsPFhUcmVlU2VsZWN0Tm9kZVtdPihbXSk7XHJcbiAgY2xvbmVOb2RlcyA9IHNpZ25hbDxYVHJlZVNlbGVjdE5vZGVbXT4oW10pO1xyXG4gIHBvcnRhbCE6IFhQb3J0YWxPdmVybGF5UmVmPFhUcmVlU2VsZWN0UG9ydGFsQ29tcG9uZW50PjtcclxuICBpY29uID0gc2lnbmFsKCdmdG8tY2hldnJvbi1kb3duJyk7XHJcbiAgaWNvblNwaW4gPSBzaWduYWwoZmFsc2UpO1xyXG4gIGFuaW1hdGluZyA9IHNpZ25hbChmYWxzZSk7XHJcbiAgc2VsZWN0ZWRTdXJwbHVzID0gc2lnbmFsKDApO1xyXG4gIHNlbGVjdGVkVG90YWwgPSBzaWduYWwoMCk7XHJcblxyXG4gIGNsb3NlU3ViamVjdDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAga2V5ZG93blN1YmplY3Q6IFN1YmplY3Q8S2V5Ym9hcmRFdmVudD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIGlucHV0Q2hhbmdlOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIGNvbXBvc2l0aW9uID0gc2lnbmFsKGZhbHNlKTtcclxuICBtdWx0aXBsZUlucHV0U2l6ZUNoYW5nZSA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcclxuICB2YWx1ZVRlbXBsYXRlID0gdmlld0NoaWxkLnJlcXVpcmVkPFRlbXBsYXRlUmVmPHZvaWQ+PigndmFsdWVUZW1wbGF0ZScpO1xyXG5cclxuICB2YWx1ZVRwbENvbXB1dGVkID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMubm9kZVRwbCgpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm5vZGVUcGwoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnZhbHVlVHBsKCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudmFsdWVUcGwoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm11bHRpcGxlKCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubXVsdGlwbGVWYWx1ZVRwbCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMudmFsdWVUZW1wbGF0ZSgpO1xyXG4gIH0pO1xyXG5cclxuICB2YWx1ZVRwbENvbnRleHRTaWduYWwgPSBzaWduYWw8eyAkbm9kZTogYW55OyAkaXNWYWx1ZTogYm9vbGVhbiB9Pih7ICRub2RlOiBudWxsLCAkaXNWYWx1ZTogdHJ1ZSB9KTtcclxuICB2YWx1ZVRwbENvbnRleHRDb21wdXRlZCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlVHBsQ29udGV4dCgpID8gdGhpcy52YWx1ZVRwbENvbnRleHQoKSA6IHRoaXMudmFsdWVUcGxDb250ZXh0U2lnbmFsKCk7XHJcbiAgfSk7XHJcblxyXG4gIHZhbHVlVHBsU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUoKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5tdWx0aXBsZVZhbHVlVHBsKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy52YWx1ZVRwbCgpO1xyXG4gIH0pO1xyXG4gIHByaXZhdGUgcmVhbFBsYWNlbWVudCA9IHNpZ25hbDxYUGxhY2VtZW50IHwgbnVsbD4obnVsbCk7XHJcbiAgcG9ydGFsQ29tcG9uZW50ID0gc2lnbmFsPENvbXBvbmVudFJlZjxYVHJlZVNlbGVjdFBvcnRhbENvbXBvbmVudD4gfCBudWxsPihudWxsKTtcclxuICBwb3J0YWxPdmVybGF5UmVmID0gc2lnbmFsPE92ZXJsYXlSZWYgfCBudWxsPihudWxsKTtcclxuICBpbnB1dENoYW5nZWQgPSB0b1NpZ25hbCh0aGlzLmlucHV0Q2hhbmdlKTtcclxuICBwb3J0YWxEYXRhID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgY29uc3Qgbm9kZXMgPSB0aGlzLm5vZGVzKCk7XHJcbiAgICBpZiAoWElzRnVuY3Rpb24odGhpcy5kYXRhKCkpKSByZXR1cm4gbm9kZXM7XHJcbiAgICBpZiAoWElzRW1wdHkodGhpcy5pbnB1dENoYW5nZWQoKSkpIHJldHVybiBub2RlcztcclxuICAgIHJldHVybiB0aGlzLnNlYXJjaE5vZGVzKCk7XHJcbiAgfSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLnBvcnRhbENvbXBvbmVudCgpPy5zZXRJbnB1dCgnZGF0YScsIHRoaXMucG9ydGFsRGF0YSgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ3ZhbHVlJywgdGhpcy52YWx1ZSgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ3BsYWNlbWVudCcsIHRoaXMucmVhbFBsYWNlbWVudCgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ211bHRpcGxlJywgdGhpcy5tdWx0aXBsZSgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ25vZGVUcGwnLCB0aGlzLm5vZGVUcGwoKSkpO1xyXG4gICAgZWZmZWN0KCgpID0+IHRoaXMucG9ydGFsQ29tcG9uZW50KCk/LnNldElucHV0KCdpbnB1dENvbScsIHRoaXMuaW5wdXRDb20oKSkpO1xyXG4gICAgZWZmZWN0KCgpID0+IHRoaXMucG9ydGFsQ29tcG9uZW50KCk/LnNldElucHV0KCdwb3J0YWxNYXhIZWlnaHQnLCB0aGlzLnBvcnRhbE1heEhlaWdodCgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ29iamVjdEFycmF5JywgdGhpcy5vYmplY3RBcnJheSgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ3NlbGVjdEFsbCcsIHRoaXMuc2VsZWN0QWxsKCkpKTtcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLnBvcnRhbENvbXBvbmVudCgpPy5zZXRJbnB1dCgnc2VsZWN0QWxsVGV4dCcsIHRoaXMuc2VsZWN0QWxsVGV4dCgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ2Nhc2VTZW5zaXRpdmUnLCB0aGlzLmNhc2VTZW5zaXRpdmUoKSkpO1xyXG4gICAgZWZmZWN0KCgpID0+IHRoaXMucG9ydGFsQ29tcG9uZW50KCk/LnNldElucHV0KCdzZWFyY2gnLCB0aGlzLnNlYXJjaCgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ3ZpcnR1YWxTY3JvbGwnLCB0aGlzLnZpcnR1YWxTY3JvbGwoKSkpO1xyXG4gICAgZWZmZWN0KCgpID0+IHRoaXMucG9ydGFsQ29tcG9uZW50KCk/LnNldElucHV0KCdzaXplJywgdGhpcy5zaXplKCkpKTtcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLnBvcnRhbENvbXBvbmVudCgpPy5zZXRJbnB1dCgna2V5d29yZFRleHQnLCB0aGlzLmlucHV0Q2hhbmdlZCgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ29ubHlMZWFmJywgdGhpcy5vbmx5TGVhZigpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ2V4cGFuZGVkTGV2ZWwnLCB0aGlzLmV4cGFuZGVkTGV2ZWwoKSkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldFN1YmplY3QoKTtcclxuICAgIHRoaXMuc2V0UGFyYW50U2Nyb2xsKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IGRhdGEgfSA9IGNoYW5nZXM7XHJcbiAgICBYSXNDaGFuZ2UoZGF0YSkgJiYgdGhpcy5zZXREYXRhKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnNldFBvcnRhbCgpO1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUoKSAmJiB0aGlzLmlucHV0Q29tKCkuaW5wdXRWYWx1ZVJlZigpKSB7XHJcbiAgICAgIFhSZXNpemUodGhpcy5pbnB1dENvbSgpLmlucHV0VmFsdWVSZWYoKT8ubmF0aXZlRWxlbWVudClcclxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMzApLCB0YWtlVW50aWwodGhpcy51blN1YmplY3QpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSB4LnJlc2l6ZU9ic2VydmVyO1xyXG4gICAgICAgICAgdGhpcy5zZXRNdXRpcGxlSW5wdXRTaXplKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMudW5TdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBzZXREYXRhKCkge1xyXG4gICAgaWYgKHRoaXMuYXN5bmMoKSkgcmV0dXJuO1xyXG4gICAgWFNldERhdGE8WFRyZWVTZWxlY3ROb2RlPih0aGlzLmRhdGEoKSwgdGhpcy51blN1YmplY3QpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLm5vZGVzLnNldCh4KTtcclxuICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUoKTtcclxuICAgICAgdGhpcy5zZXRQb3J0YWwoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0U3ViamVjdCgpIHtcclxuICAgIHRoaXMuY2xvc2VTdWJqZWN0LnBpcGUodGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZVBvcnRhbCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmlucHV0Q2hhbmdlXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZSgpKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgdGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMubW9kZWxDaGFuZ2UoeCk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5rZXlkb3duU3ViamVjdC5waXBlKHRocm90dGxlVGltZSgxMCksIHRha2VVbnRpbCh0aGlzLnVuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICBjb25zdCBrZXlDb2RlID0geC5rZXlDb2RlO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIXRoaXMucG9ydGFsQXR0YWNoZWQoKSAmJlxyXG4gICAgICAgIFtET1dOX0FSUk9XLCBVUF9BUlJPVywgTEVGVF9BUlJPVywgUklHSFRfQVJST1csIEVOVEVSLCBNQUNfRU5URVIsIEJBQ0tTUEFDRV0uaW5jbHVkZXMoa2V5Q29kZSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5pbnB1dENoYW5nZS5uZXh0KHRoaXMuZGlzcGxheVZhbHVlKCkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMubXVsdGlwbGVJbnB1dFNpemVDaGFuZ2UucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCB0YWtlVW50aWwodGhpcy51blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgaWYgKHRoaXMubXVsdGlwbGVJbnB1dCgpKSB7XHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLm11bHRpcGxlSW5wdXQoKSEuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaW5wdXQsICd3aWR0aCcsIGAke3h9cHhgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQYXJhbnRTY3JvbGwoKSB7XHJcbiAgICBpZiAoIXRoaXMuZG9jdW1lbnQpIHJldHVybjtcclxuICAgIGNvbnN0IHBhcmVudHMgPSBYUGFyZW50cyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICBsZXQgZmlyc3RTY3JvbGw6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XHJcbiAgICBmb3IgKGxldCBpdGVtIG9mIHBhcmVudHMpIHtcclxuICAgICAgaWYgKGl0ZW0uY2xpZW50SGVpZ2h0IDwgaXRlbS5zY3JvbGxIZWlnaHQpIHtcclxuICAgICAgICBmaXJzdFNjcm9sbCA9IGl0ZW07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChmaXJzdFNjcm9sbCAmJiBmaXJzdFNjcm9sbC50YWdOYW1lICE9PSAnQk9EWScpIHtcclxuICAgICAgZnJvbUV2ZW50KGZpcnN0U2Nyb2xsLCAnc2Nyb2xsJylcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnBvcnRhbEF0dGFjaGVkKCkhKSxcclxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLnVuU3ViamVjdClcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb24oKTtcclxuICAgICAgICAgIGNvbnN0IGVyYWN0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgICBjb25zdCBmcmVjdCA9IGZpcnN0U2Nyb2xsIS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgIGlmIChlcmFjdC50b3AgKyBlcmFjdC5oZWlnaHQgLSBmcmVjdC50b3AgPCAwIHx8IGVyYWN0LmJvdHRvbSA+IGZyZWN0LmJvdHRvbSkge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRNdXRpcGxlSW5wdXRTaXplKCkge1xyXG4gICAgY29uc3QgaXZmID0gdGhpcy5pbnB1dENvbSgpLmlucHV0VmFsdWVSZWYoKT8ubmF0aXZlRWxlbWVudCBhcyBIVE1MRGl2RWxlbWVudDtcclxuICAgIGxldCB7IGNsaWVudFdpZHRoLCBzY3JvbGxIZWlnaHQgfSA9IGl2ZjtcclxuICAgIGNvbnN0IGxlbiA9IGl2Zi5jaGlsZHJlbi5sZW5ndGg7XHJcbiAgICBsZXQgbGFzdFJvd1RhZ1RvcCA9IC0xO1xyXG4gICAgbGV0IGxpbmVzID0gMTtcclxuICAgIGxldCByb3dUYWdUb3AgPSAtMTtcclxuICAgIGxldCBsYXN0Um93VGFnc1dpZHRoID0gMDtcclxuICAgIGxldCBtYXJnaW5MZWZ0ID0gMDtcclxuICAgIGxldCBtYXJnaW5Ub3AgPSAwO1xyXG4gICAgZm9yIChsZXQgaSA9IGxlbiAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgIGNvbnN0IGVsZSA9IGl2Zi5jaGlsZHJlbltpXSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgaWYgKGVsZS50YWdOYW1lID09PSAnWC1UQUcnKSB7XHJcbiAgICAgICAgY29uc3QgeyBvZmZzZXRUb3AsIG9mZnNldFdpZHRoIH0gPSBlbGU7XHJcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBYQ29tcHV0ZWQoZWxlKTtcclxuICAgICAgICBtYXJnaW5MZWZ0ID0gTnVtYmVyKHN0eWxlLm1hcmdpbkxlZnQucmVwbGFjZSgncHgnLCAnJykpO1xyXG4gICAgICAgIG1hcmdpblRvcCA9IE51bWJlcihzdHlsZS5tYXJnaW5Ub3AucmVwbGFjZSgncHgnLCAnJykpO1xyXG4gICAgICAgIGlmIChyb3dUYWdUb3AgPT09IC0xKSB7XHJcbiAgICAgICAgICByb3dUYWdUb3AgPSBvZmZzZXRUb3A7XHJcbiAgICAgICAgfSBlbHNlIGlmIChyb3dUYWdUb3AgIT09IG9mZnNldFRvcCkge1xyXG4gICAgICAgICAgbGluZXMrKztcclxuICAgICAgICAgIHJvd1RhZ1RvcCA9IG9mZnNldFRvcDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxhc3RSb3dUYWdUb3AgPT09IC0xKSB7XHJcbiAgICAgICAgICBsYXN0Um93VGFnVG9wID0gb2Zmc2V0VG9wO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGFzdFJvd1RhZ1RvcCA9PT0gb2Zmc2V0VG9wKSB7XHJcbiAgICAgICAgICBsYXN0Um93VGFnc1dpZHRoICs9IG9mZnNldFdpZHRoICsgbWFyZ2luTGVmdDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IGhlaWdodCA9IHNjcm9sbEhlaWdodCArIChsaW5lcyA+IDEgPyBtYXJnaW5Ub3AgOiAwKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5pbnB1dENvbSgpLmlucHV0UmVmKCkubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGVJbnB1dCgpKSB7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVJbnB1dFNpemVDaGFuZ2UubmV4dChjbGllbnRXaWR0aCAtIGxhc3RSb3dUYWdzV2lkdGggLSBtYXJnaW5MZWZ0KTtcclxuICAgIH1cclxuICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy51cGRhdGVQb3NpdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgbWVudGVyKCkge1xyXG4gICAgdGhpcy5lbnRlci5zZXQodHJ1ZSk7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZENvbXB1dGVkKCkgfHwgIXRoaXMuY2xlYXJhYmxlKCkgfHwgdGhpcy5pY29uU3BpbigpKSByZXR1cm47XHJcbiAgICBpZiAoIVhJc0VtcHR5KHRoaXMuZGlzcGxheVZhbHVlKCkpKSB7XHJcbiAgICAgIHRoaXMuaWNvbi5zZXQoJycpO1xyXG4gICAgICB0aGlzLnNob3dDbGVhcmFibGUuc2V0KHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWxlYXZlKCkge1xyXG4gICAgdGhpcy5lbnRlci5zZXQoZmFsc2UpO1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWRDb21wdXRlZCgpIHx8ICF0aGlzLmNsZWFyYWJsZSgpIHx8IHRoaXMuaWNvblNwaW4oKSkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMuY2xlYXJhYmxlKCkpIHtcclxuICAgICAgdGhpcy5pY29uLnNldCgnZnRvLWNoZXZyb24tZG93bicpO1xyXG4gICAgICB0aGlzLnNob3dDbGVhcmFibGUuc2V0KGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcclxuICAgIGlmIChYSXNGdW5jdGlvbih0aGlzLmRhdGEoKSkpIHtcclxuICAgICAgaWYgKCF0aGlzLnBvcnRhbEF0dGFjaGVkKCkpIHtcclxuICAgICAgICB0aGlzLnNob3dQb3J0YWwoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmljb24uc2V0KCdmdG8tbG9hZGVyJyk7XHJcbiAgICAgIHRoaXMuaWNvblNwaW4uc2V0KHRydWUpO1xyXG4gICAgICBYU2V0RGF0YTxYVHJlZVNlbGVjdE5vZGU+KHRoaXMuZGF0YSgpLCB0aGlzLnVuU3ViamVjdCwgdHJ1ZSwgdmFsdWUgYXMgYW55KS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLmljb24uc2V0KCcnKTtcclxuICAgICAgICB0aGlzLmljb25TcGluLnNldChmYWxzZSk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmVudGVyKCkgJiYgdGhpcy5jbGVhcmFibGUoKSkge1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2xlYXJhYmxlLnNldChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZXMuc2V0KHgpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubm9kZXMoKSkge1xyXG4gICAgICBpZiAoIXRoaXMucG9ydGFsQXR0YWNoZWQoKSkge1xyXG4gICAgICAgIHRoaXMuc2hvd1BvcnRhbCgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChYSXNFbXB0eSh2YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaE5vZGVzLnNldChbXHJcbiAgICAgICAgICAuLi50aGlzLm5vZGVzKCkubWFwKCh4KSA9PiB7XHJcbiAgICAgICAgICAgIGxldCByZXMgPSB7IC4uLnggfTtcclxuICAgICAgICAgICAgZGVsZXRlIHJlcy5jaGlsZHJlbjtcclxuICAgICAgICAgICAgZGVsZXRlIHJlcy5jaGlsZHJlbkxvYWRlZDtcclxuICAgICAgICAgICAgZGVsZXRlIHJlcy5sZWFmO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICBdKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldFNlYXJjaE5vZGVzKHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0U2VhcmNoTm9kZXModmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xyXG4gICAgbGV0IG5vZGVzOiBYVHJlZVNlbGVjdE5vZGVbXSA9IFtdO1xyXG4gICAgY29uc3QgZ2V0UGFyZW50ID0gKG5vZGU6IFhUcmVlU2VsZWN0Tm9kZSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkobm9kZS5waWQpKSByZXR1cm47XHJcbiAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMubm9kZXMoKS5maW5kKCh4KSA9PiB4LmlkID09PSBub2RlLnBpZCkgYXMgWFRyZWVTZWxlY3ROb2RlO1xyXG4gICAgICBwYXJlbnQub3BlbiA9IHRydWU7XHJcbiAgICAgIGlmICghWElzRW1wdHkocGFyZW50KSkge1xyXG4gICAgICAgIGlmIChub2Rlcy5ldmVyeSgoeCkgPT4geC5pZCAhPT0gcGFyZW50LmlkKSkge1xyXG4gICAgICAgICAgbm9kZXMucHVzaChwYXJlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLmNhc2VTZW5zaXRpdmUoKSkge1xyXG4gICAgICBub2RlcyA9IHRoaXMubm9kZXMoKS5maWx0ZXIoKHgpID0+IHgubGFiZWwuaW5kZXhPZih2YWx1ZSkgPj0gMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBub2RlcyA9IHRoaXMubm9kZXMoKS5maWx0ZXIoXHJcbiAgICAgICAgKHgpID0+ICh4LmxhYmVsIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKS5pbmRleE9mKCh2YWx1ZSBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCkpID49IDBcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGZvciAobGV0IG5vZGUgb2Ygbm9kZXMpIHtcclxuICAgICAgZ2V0UGFyZW50KG5vZGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWFyY2hOb2Rlcy5zZXQoXHJcbiAgICAgIG5vZGVzLm1hcCgoeCkgPT4ge1xyXG4gICAgICAgIGxldCByZXMgPSB7IC4uLnggfTtcclxuICAgICAgICBkZWxldGUgcmVzLmNoaWxkcmVuO1xyXG4gICAgICAgIGRlbGV0ZSByZXMuY2hpbGRyZW5Mb2FkZWQ7XHJcbiAgICAgICAgZGVsZXRlIHJlcy5sZWFmO1xyXG4gICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJFbWl0KCkge1xyXG4gICAgdGhpcy52YWx1ZS5zZXQodGhpcy5tdWx0aXBsZSgpID8gW10gOiAnJyk7XHJcbiAgICB0aGlzLmRpc3BsYXlWYWx1ZS5zZXQoJycpO1xyXG4gICAgdGhpcy5tdWx0aXBsZVNlYXJjaFZhbHVlLnNldCgnJyk7XHJcbiAgICB0aGlzLnNlbGVjdGVkTm9kZXMuc2V0KFtdKTtcclxuICAgIHRoaXMuc2V0RGlzcGxheU5vZGVzKCk7XHJcbiAgICB0aGlzLnZhbHVlVHBsQ29udGV4dFNpZ25hbC51cGRhdGUoKHgpID0+IHtcclxuICAgICAgeC4kbm9kZSA9IG51bGw7XHJcbiAgICAgIHJldHVybiB7IC4uLnggfTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5tbGVhdmUoKTtcclxuICAgIHRoaXMuaW5wdXRDaGFuZ2UubmV4dCgnJyk7XHJcbiAgICBpZiAodGhpcy5vbkNoYW5nZSkgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKCkpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzcGxheVZhbHVlKGNsaWNrTm9kZT86IFhUcmVlU2VsZWN0Tm9kZSkge1xyXG4gICAgaWYgKHRoaXMubm9kZXMoKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlKCkpIHtcclxuICAgICAgICBpZiAoWElzRW1wdHkodGhpcy52YWx1ZSgpKSkge1xyXG4gICAgICAgICAgdGhpcy52YWx1ZS5zZXQoW10pO1xyXG4gICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUuc2V0KCcnKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2Rlcy5zZXQoW10pO1xyXG4gICAgICAgICAgdGhpcy5kaXNwbGF5Tm9kZXMuc2V0KFtdKTtcclxuICAgICAgICAgIHRoaXMuZGlzcGxheU1vcmUuc2V0KCcnKTtcclxuICAgICAgICAgIHRoaXMudmFsdWVUcGxDb250ZXh0U2lnbmFsLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICAgICAgICB4LiRub2RlID0gbnVsbDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgLi4ueCB9O1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnNldERpc3BsYXlOb2RlcygpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgaWRzID0gW107XHJcbiAgICAgICAgICBsZXQgc2VsZWN0ZWQgPSBbXTtcclxuICAgICAgICAgIGlmICh0aGlzLm9iamVjdEFycmF5KCkpIHtcclxuICAgICAgICAgICAgaWRzID0gdGhpcy52YWx1ZSgpLm1hcCgoeDogWFRyZWVTZWxlY3ROb2RlKSA9PiB4LmlkKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlkcyA9IHRoaXMudmFsdWUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChjbGlja05vZGUpIHtcclxuICAgICAgICAgICAgbGV0IGlueCA9IHRoaXMuc2VsZWN0ZWROb2RlcygpLmZpbmRJbmRleCgoeDogWFRyZWVTZWxlY3ROb2RlKSA9PiB4LmlkID09PSBjbGlja05vZGUuaWQpO1xyXG4gICAgICAgICAgICBpZiAoaW54ID49IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMudXBkYXRlKCh4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBYUmVtb3ZlKHgsICh5KSA9PiB5LmlkID09PSBjbGlja05vZGUuaWQpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFsuLi54XTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMudXBkYXRlKCh4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB4LnB1c2goY2xpY2tOb2RlKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBbLi4ueF07XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGlkIG9mIGlkcykge1xyXG4gICAgICAgICAgICAgIGxldCBub2RlID0gdGhpcy5ub2RlcygpLmZpbmQoKHgpID0+IHguaWQgPT09IGlkKTtcclxuICAgICAgICAgICAgICBpZiAobm9kZSkgc2VsZWN0ZWQucHVzaChub2RlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMuc2V0KHNlbGVjdGVkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLnNob3dQYXRoKCkpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgbm9kZSBvZiB0aGlzLnNlbGVjdGVkTm9kZXMoKSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHBhcmVudHMgPSB0aGlzLmdldFBhcmVudFBhdGgobm9kZSk7XHJcbiAgICAgICAgICAgICAgbm9kZS5wYXRoID0gcGFyZW50cy5tYXAoKHgpID0+IHgubGFiZWwpLmpvaW4odGhpcy5zZXBhcmF0b3IoKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc2V0RGlzcGxheU5vZGVzKCk7XHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZS5zZXQoXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlcygpXHJcbiAgICAgICAgICAgICAgLm1hcCgoeCkgPT4geC5sYWJlbClcclxuICAgICAgICAgICAgICAuam9pbih0aGlzLnNlcGFyYXRvcigpKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMudmFsdWVUcGxDb250ZXh0U2lnbmFsLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICAgICAgICB4LiRub2RlID0gWy4uLnRoaXMuc2VsZWN0ZWROb2RlcygpXTtcclxuICAgICAgICAgICAgcmV0dXJuIHsgLi4ueCB9O1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBub2RlID0gdGhpcy5ub2RlcygpLmZpbmQoKHgpID0+IHguaWQgPT09IHRoaXMudmFsdWUoKSk7XHJcbiAgICAgICAgaWYgKG5vZGUpIHtcclxuICAgICAgICAgIGlmICh0aGlzLnNob3dQYXRoKCkpIHtcclxuICAgICAgICAgICAgY29uc3QgcGFyZW50cyA9IHRoaXMuZ2V0UGFyZW50UGF0aChub2RlKTtcclxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUuc2V0KHBhcmVudHMubWFwKCh4KSA9PiB4LmxhYmVsKS5qb2luKHRoaXMuc2VwYXJhdG9yKCkpKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlLnNldChub2RlLmxhYmVsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudmFsdWVUcGxDb250ZXh0U2lnbmFsLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICAgICAgICB4LiRub2RlID0gbm9kZTtcclxuICAgICAgICAgICAgcmV0dXJuIHsgLi4ueCB9O1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlLnNldCgnJyk7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlVHBsQ29udGV4dFNpZ25hbC51cGRhdGUoKHgpID0+IHtcclxuICAgICAgICAgICAgeC4kbm9kZSA9IG51bGw7XHJcbiAgICAgICAgICAgIHJldHVybiB7IC4uLnggfTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UGFyZW50UGF0aChub2RlOiBYVHJlZVNlbGVjdE5vZGUpIHtcclxuICAgIGxldCByZXM6IFhUcmVlU2VsZWN0Tm9kZVtdID0gW25vZGVdO1xyXG4gICAgY29uc3QgZ2V0UGFyZW50ID0gKG5kOiBYVHJlZVNlbGVjdE5vZGUpID0+IHtcclxuICAgICAgbGV0IHBhcmVudCA9IHRoaXMubm9kZXMoKS5maW5kKCh4KSA9PiBuZC5waWQgJiYgeC5pZCA9PT0gbmQucGlkKTtcclxuICAgICAgaWYgKHBhcmVudCkge1xyXG4gICAgICAgIHJlcyA9IFtwYXJlbnQsIC4uLnJlc107XHJcbiAgICAgICAgZ2V0UGFyZW50KHBhcmVudCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICBnZXRQYXJlbnQobm9kZSk7XHJcblxyXG4gICAgcmV0dXJuIHJlcztcclxuICB9XHJcblxyXG4gIGNsb3NlTm9kZShldmVudDogRXZlbnQsIG5vZGU6IFhUcmVlU2VsZWN0Tm9kZSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgbGV0IGlueCA9IC0xO1xyXG4gICAgaWYgKHRoaXMub2JqZWN0QXJyYXkoKSkge1xyXG4gICAgICBpbnggPSB0aGlzLnZhbHVlKCkuZmluZEluZGV4KCh5OiBYVHJlZVNlbGVjdE5vZGUpID0+IHkuaWQgPT09IG5vZGUuaWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaW54ID0gdGhpcy52YWx1ZSgpLmZpbmRJbmRleCgoeTogbnVtYmVyIHwgc3RyaW5nKSA9PiB5ID09PSBub2RlLmlkKTtcclxuICAgIH1cclxuICAgIGlmIChpbnggPj0gMCkge1xyXG4gICAgICB0aGlzLnZhbHVlLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICAgIHguc3BsaWNlKGlueCwgMSk7XHJcbiAgICAgICAgcmV0dXJuIFsuLi54XTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUoKSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWROb2Rlcy51cGRhdGUoKHgpID0+IHtcclxuICAgICAgICB4LnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgcmV0dXJuIFsuLi54XTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc2V0RGlzcGxheU5vZGVzKCk7XHJcbiAgICB9XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHNldERpc3BsYXlOb2RlcygpIHtcclxuICAgIGlmICghdGhpcy5tdWx0aXBsZSgpKSByZXR1cm47XHJcbiAgICBjb25zdCBtYXhsZW4gPSB0aGlzLnNlbGVjdGVkTm9kZXMoKS5sZW5ndGg7XHJcbiAgICBsZXQgbGVuID0gMDtcclxuICAgIGlmICh0aGlzLm1heFRhZ0NvdW50KCkgPj0gMCkge1xyXG4gICAgICBsZW4gPSBtYXhsZW4gPiB0aGlzLm1heFRhZ0NvdW50KCkhID8gdGhpcy5tYXhUYWdDb3VudCgpISA6IG1heGxlbjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxlbiA9IG1heGxlbjtcclxuICAgIH1cclxuICAgIGxldCBtb3JlID0gbWF4bGVuIC0gbGVuO1xyXG4gICAgbW9yZSA9IG1vcmUgPCAwID8gMCA6IG1vcmU7XHJcbiAgICB0aGlzLmRpc3BsYXlOb2Rlcy5zZXQodGhpcy5zZWxlY3RlZE5vZGVzKCkuc2xpY2UoMCwgbGVuKSk7XHJcbiAgICB0aGlzLnNob3dEaXNwbGF5TW9yZS5zZXQobW9yZSA+IDApO1xyXG4gICAgaWYgKFhJc1N0cmluZyh0aGlzLmdldE1heFRhZ0NvbnRlbnQoKSkpIHtcclxuICAgICAgdGhpcy5kaXNwbGF5TW9yZS5zZXQobW9yZSA+IDAgPyAodGhpcy5nZXRNYXhUYWdDb250ZW50KCkgYXMgc3RyaW5nKS5yZXBsYWNlKC9cXHtcXHtzdXJwbHVzXFx9XFx9L2csIGAke21vcmV9YCkgOiAnJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkU3VycGx1cy5zZXQobW9yZSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUb3RhbC5zZXQobWF4bGVuKTtcclxuICAgIH1cclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZXRNdXRpcGxlSW5wdXRTaXplKCkpO1xyXG4gIH1cclxuXHJcbiAgcG9ydGFsQXR0YWNoZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/Lmhhc0F0dGFjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZVBvcnRhbCgpIHtcclxuICAgIGlmICh0aGlzLnBvcnRhbEF0dGFjaGVkKCkpIHtcclxuICAgICAgdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/LmRldGFjaCgpO1xyXG4gICAgICB0aGlzLmFjdGl2ZS5zZXQoZmFsc2UpO1xyXG4gICAgICB0aGlzLm11bHRpcGxlU2VhcmNoVmFsdWUuc2V0KCcnKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBkZXN0cm95UG9ydGFsKCkge1xyXG4gICAgdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcclxuICB9XHJcblxyXG4gIHNob3dQb3J0YWwoY2xpY2sgPSBmYWxzZSkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWRDb21wdXRlZCgpIHx8IHRoaXMuaWNvblNwaW4oKSB8fCB0aGlzLmFuaW1hdGluZygpKSByZXR1cm47XHJcbiAgICB0aGlzLmFjdGl2ZS5zZXQodHJ1ZSk7XHJcbiAgICBpZiAoKHRoaXMuYXN5bmMoKSAmJiBYSXNPYnNlcnZhYmxlKHRoaXMuZGF0YSgpKSAmJiB0aGlzLm5vZGVzKCkubGVuZ3RoID09PSAwKSB8fCBYSXNGdW5jdGlvbih0aGlzLmRhdGEoKSkpIHtcclxuICAgICAgdGhpcy5pY29uLnNldCgnZnRvLWxvYWRlcicpO1xyXG4gICAgICB0aGlzLmljb25TcGluLnNldCh0cnVlKTtcclxuICAgICAgWFNldERhdGE8WFRyZWVTZWxlY3ROb2RlPih0aGlzLmRhdGEoKSwgdGhpcy51blN1YmplY3QsIHRydWUsIGNsaWNrID8gJycgOiB0aGlzLmRpc3BsYXlWYWx1ZSgpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLmljb24uc2V0KCdmdG8tY2hldnJvbi1kb3duJyk7XHJcbiAgICAgICAgdGhpcy5pY29uU3Bpbi5zZXQoZmFsc2UpO1xyXG4gICAgICAgIGlmICghdGhpcy5lbnRlcigpICYmIHRoaXMuY2xlYXJhYmxlKCkpIHtcclxuICAgICAgICAgIHRoaXMuc2hvd0NsZWFyYWJsZS5zZXQoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm5vZGVzLnNldCh4KTtcclxuICAgICAgICBpZiAoIXRoaXMuc2VhcmNoKCkpIHRoaXMuc2V0RGlzcGxheVZhbHVlKCk7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVQb3J0YWwoKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNyZWF0ZVBvcnRhbCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2VhcmNoKCkgJiYgdGhpcy5tdWx0aXBsZSgpICYmIHRoaXMubXVsdGlwbGVJbnB1dCgpKSB7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVJbnB1dCgpIS5pbnB1dEZvY3VzKCdmb2N1cycpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbnB1dENvbSgpLmlucHV0Rm9jdXMoJ2ZvY3VzJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVQb3J0YWwoKSB7XHJcbiAgICBjb25zdCBib3ggPSB0aGlzLmlucHV0Q29tKCkuaW5wdXRSZWYoKS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3QgY29uZmlnOiBPdmVybGF5Q29uZmlnID0ge1xyXG4gICAgICBiYWNrZHJvcENsYXNzOiAnJyxcclxuICAgICAgd2lkdGg6IGJveC53aWR0aCxcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5zZXRQbGFjZW1lbnQoKSxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxyXG4gICAgfTtcclxuICAgIHRoaXMuc2V0UG9zaXRpb24oY29uZmlnKTtcclxuICAgIHRoaXMucG9ydGFsID0gdGhpcy5wb3J0YWxTZXJ2aWNlLmF0dGFjaCh7XHJcbiAgICAgIGNvbnRlbnQ6IFhUcmVlU2VsZWN0UG9ydGFsQ29tcG9uZW50LFxyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIG92ZXJsYXlDb25maWc6IGNvbmZpZ1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBvcnRhbC5vdmVybGF5UmVmXHJcbiAgICAgID8ub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnNldERpc3BsYXlWYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnNldEluc3RhbmNlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQb3NpdGlvbihjb25maWc6IE92ZXJsYXlDb25maWcpIHtcclxuICAgIGxldCBwb3NpdGlvbiA9IGNvbmZpZy5wb3NpdGlvblN0cmF0ZWd5IGFzIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneTtcclxuICAgIHBvc2l0aW9uLnBvc2l0aW9uQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLnVuU3ViamVjdCkpLnN1YnNjcmliZSgocG9zOiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpID0+IHtcclxuICAgICAgY29uc3QgcGxhY2UgPSBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24uZ2V0KHBvcy5jb25uZWN0aW9uUGFpcikgYXMgWFBvc2l0aW9uVG9wQm90dG9tO1xyXG4gICAgICBpZiAocGxhY2UgIT09IHRoaXMucmVhbFBsYWNlbWVudCgpKSB7XHJcbiAgICAgICAgdGhpcy5yZWFsUGxhY2VtZW50LnNldChwbGFjZSk7XHJcbiAgICAgICAgdGhpcy5wb3J0YWxPdmVybGF5UmVmKCk/LnVwZGF0ZVBvc2l0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0SW5zdGFuY2UoKSB7XHJcbiAgICBsZXQgeyBjb21wb25lbnRSZWYsIG92ZXJsYXlSZWYgfSA9IHRoaXMucG9ydGFsO1xyXG4gICAgaWYgKCFjb21wb25lbnRSZWYgfHwgIW92ZXJsYXlSZWYpIHJldHVybjtcclxuICAgIHRoaXMucG9ydGFsQ29tcG9uZW50LnNldChjb21wb25lbnRSZWYpO1xyXG4gICAgdGhpcy5wb3J0YWxPdmVybGF5UmVmLnNldChvdmVybGF5UmVmKTtcclxuICAgIHRoaXMucmVhbFBsYWNlbWVudC5zZXQodGhpcy5wbGFjZW1lbnQoKSk7XHJcbiAgICBjb25zdCB7IG5vZGVDbGljaywgYW5pbWF0aW5nIH0gPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICBub2RlQ2xpY2suc3Vic2NyaWJlKCh4KSA9PiB0aGlzLm5vZGVDbGljayh4Lm5vZGUsIHgudmFsdWUpKTtcclxuICAgIGFuaW1hdGluZy5zdWJzY3JpYmUoKGluZzogYm9vbGVhbikgPT4gdGhpcy5hbmltYXRpbmcuc2V0KGluZykpO1xyXG4gIH1cclxuXHJcbiAgbm9kZUNsaWNrKG5vZGU6IFhUcmVlU2VsZWN0Tm9kZSwgdmFsdWU/OiBYVHJlZVNlbGVjdE5vZGVbXSB8IChzdHJpbmcgfCBudW1iZXIpW10pIHtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlKCkpIHtcclxuICAgICAgdGhpcy52YWx1ZS5zZXQodmFsdWUpO1xyXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZUlucHV0KCkpIHtcclxuICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMubXVsdGlwbGVJbnB1dCgpIS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShpbnB1dCwgJ3dpZHRoJywgJzJyZW0nKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5zZWFyY2goKSAmJiB0aGlzLm11bHRpcGxlU2VhcmNoVmFsdWUoKSAhPT0gJycpIHtcclxuICAgICAgICB0aGlzLm11bHRpcGxlU2VhcmNoVmFsdWUuc2V0KCcnKTtcclxuICAgICAgICB0aGlzLmlucHV0Q2hhbmdlLm5leHQoJycpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKG5vZGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbm9kZSA9IG5vZGUgYXMgWFRyZWVTZWxlY3ROb2RlO1xyXG4gICAgICBpZiAodGhpcy5zaG93UGF0aCgpKSB7XHJcbiAgICAgICAgY29uc3QgcGFyZW50cyA9IHRoaXMuZ2V0UGFyZW50UGF0aChub2RlKTtcclxuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZS5zZXQocGFyZW50cy5tYXAoKHgpID0+IHgubGFiZWwpLmpvaW4odGhpcy5zZXBhcmF0b3IoKSkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheVZhbHVlLnNldChub2RlLmxhYmVsKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnZhbHVlVHBsQ29udGV4dFNpZ25hbC51cGRhdGUoKHgpID0+IHtcclxuICAgICAgICB4LiRub2RlID0gbm9kZTtcclxuICAgICAgICByZXR1cm4geyAuLi54IH07XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnZhbHVlLnNldChub2RlLmlkKTtcclxuICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2VhcmNoKCkgJiYgdGhpcy5tdWx0aXBsZSgpICYmIHRoaXMubXVsdGlwbGVJbnB1dCgpKSB7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVJbnB1dCgpIS5pbnB1dEZvY3VzKCdmb2N1cycpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbnB1dENvbSgpLmlucHV0Rm9jdXMoJ2ZvY3VzJyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vbkNoYW5nZSkgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKCkpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbFZhbGlkYXRvcigpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0QWxsTm9kZXModmFsdWU6IFhUcmVlU2VsZWN0Tm9kZVtdIHwgKHN0cmluZyB8IG51bWJlcilbXSkge1xyXG4gICAgdGhpcy52YWx1ZS5zZXQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgc2V0UGxhY2VtZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMucG9ydGFsU2VydmljZS5zZXRQbGFjZW1lbnQoe1xyXG4gICAgICBlbGVtZW50UmVmOiB0aGlzLmlucHV0Q29tKCkuaW5wdXRSZWYoKSxcclxuICAgICAgcGxhY2VtZW50OiBbdGhpcy5wbGFjZW1lbnQoKSBhcyBYUG9zaXRpb25Ub3BCb3R0b20sICdib3R0b20nLCAndG9wJ10sXHJcbiAgICAgIHRyYW5zZm9ybU9yaWdpbk9uOiAneC10cmVlLXNlbGVjdC1wb3J0YWwnXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFBvcnRhbCgpIHtcclxuICAgIHRoaXMucG9ydGFsQXR0YWNoZWQoKSAmJiB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb25TdHJhdGVneSh0aGlzLnNldFBsYWNlbWVudCgpKTtcclxuICB9XHJcblxyXG4gIG9uS2V5ZG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIHRoaXMua2V5ZG93blN1YmplY3QubmV4dCgkZXZlbnQpO1xyXG4gICAgaWYgKCRldmVudC5rZXlDb2RlICE9PSBUQUIgJiYgIXRoaXMuc2VhcmNoKCkpIHtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzKF9ldmVudDogRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLnNlYXJjaCgpICYmIHRoaXMubXVsdGlwbGUoKSAmJiB0aGlzLm11bHRpcGxlSW5wdXQoKSkge1xyXG4gICAgICB0aGlzLm11bHRpcGxlSW5wdXQoKSEuaW5wdXRGb2N1cygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbnB1dENvbSgpLmlucHV0Rm9jdXMoJ2ZvY3VzJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbklucHV0KF9ldmVudDogSW5wdXRFdmVudCkge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbFZhbGlkYXRvcigpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmlucHV0Q2hhbmdlLm5leHQodGhpcy5tdWx0aXBsZSgpID8gdGhpcy5tdWx0aXBsZVNlYXJjaFZhbHVlKCkgOiB0aGlzLmRpc3BsYXlWYWx1ZSgpKSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI3RyZWVTZWxlY3QgY2xhc3M9XCJ4LXRyZWUtc2VsZWN0XCIgW2NsYXNzLngtdHJlZS1zZWxlY3QtbXVsdGlwbGVdPVwibXVsdGlwbGUoKVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXRyZWUtc2VsZWN0LXJvd1wiPlxyXG4gICAgPHgtaW5wdXRcclxuICAgICAgI2lucHV0Q29tXHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgW2xhYmVsXT1cImxhYmVsKClcIlxyXG4gICAgICBbbGFiZWxXaWR0aF09XCJsYWJlbFdpZHRoKClcIlxyXG4gICAgICBbbGFiZWxBbGlnbl09XCJsYWJlbEFsaWduKClcIlxyXG4gICAgICBbanVzdGlmeV09XCJqdXN0aWZ5KClcIlxyXG4gICAgICBbYWxpZ25dPVwiYWxpZ24oKVwiXHJcbiAgICAgIFtkaXJlY3Rpb25dPVwiZGlyZWN0aW9uKClcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRDb21wdXRlZCgpXCJcclxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkQ29tcHV0ZWQoKVwiXHJcbiAgICAgIFt2YWxpZGF0b3JdPVwidmFsaWRhdG9yQ29tcHV0ZWQoKVwiXHJcbiAgICAgIFtpY29uXT1cImljb24oKVwiXHJcbiAgICAgIFtpY29uU3Bpbl09XCJpY29uU3BpbigpXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxyXG4gICAgICBbcmVhZG9ubHldPVwiZ2V0UmVhZG9ubHkoKVwiXHJcbiAgICAgIFtjbGVhcmFibGVdPVwic2hvd0NsZWFyYWJsZSgpXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgIFt2YWx1ZVRwbF09XCJ2YWx1ZVRwbENvbXB1dGVkKClcIlxyXG4gICAgICBbdmFsdWVUcGxDb250ZXh0XT1cInZhbHVlVHBsQ29udGV4dENvbXB1dGVkKClcIlxyXG4gICAgICBbc2l6ZV09XCJzaXplKClcIlxyXG4gICAgICBbYm9yZGVyZWRdPVwiYm9yZGVyZWQoKVwiXHJcbiAgICAgIFtiZWZvcmVdPVwiYmVmb3JlKClcIlxyXG4gICAgICBbYWZ0ZXJdPVwiYWZ0ZXIoKVwiXHJcbiAgICAgIFtwYXR0ZXJuXT1cInBhdHRlcm5Db21wdXRlZCgpXCJcclxuICAgICAgW21lc3NhZ2VdPVwibWVzc2FnZUNvbXB1dGVkKClcIlxyXG4gICAgICBbcG9pbnRlcl09XCJ0cnVlXCJcclxuICAgICAgWyhhY3RpdmUpXT1cImFjdGl2ZVwiXHJcbiAgICAgIChjbGVhckVtaXQpPVwiY2xlYXJFbWl0KClcIlxyXG4gICAgICAoeEtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIlxyXG4gICAgICAoeElucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXHJcbiAgICAgICh4Rm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgICAgKHhDbGljayk9XCJzaG93UG9ydGFsKHRydWUpXCJcclxuICAgICAgKHhNb3VzZWVudGVyKT1cIm1lbnRlcigpXCJcclxuICAgICAgKHhNb3VzZWxlYXZlKT1cIm1sZWF2ZSgpXCJcclxuICAgICAgKHhDb21wb3NpdGlvbik9XCJjb21wb3NpdGlvbi5zZXQoJGV2ZW50KVwiXHJcbiAgICA+PC94LWlucHV0PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdmFsdWVUZW1wbGF0ZT57eyBkaXNwbGF5VmFsdWUoKSB9fTwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI211bHRpcGxlVmFsdWVUcGw+XHJcbiAgQGZvciAobm9kZSBvZiBkaXNwbGF5Tm9kZXMoKTsgdHJhY2sgbm9kZS5pZDsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgIDx4LXRhZ1xyXG4gICAgICBbQC5kaXNhYmxlZF09XCJ0cnVlXCJcclxuICAgICAgW2JvcmRlcmVkXT1cImZhbHNlXCJcclxuICAgICAgW2Nsb3NhYmxlXT1cIiFkaXNhYmxlZCgpXCJcclxuICAgICAgW3R5cGVdPVwiJ2luZm8nXCJcclxuICAgICAgKGNsb3NlKT1cImNsb3NlTm9kZSgkZXZlbnQsIG5vZGUsIGkpXCJcclxuICAgICAgW3NpemVdPVwic2l6ZSgpXCJcclxuICAgICAgPnt7IHNob3dQYXRoKCkgPyBub2RlLnBhdGggOiBub2RlLmxhYmVsIH19PC94LXRhZ1xyXG4gICAgPlxyXG4gIH1cclxuICBAaWYgKHNob3dEaXNwbGF5TW9yZSgpKSB7XHJcbiAgICA8eC10YWcgW0AuZGlzYWJsZWRdPVwidHJ1ZVwiIFtib3JkZXJlZF09XCJmYWxzZVwiIFt0eXBlXT1cIidpbmZvJ1wiIFtzaXplXT1cInNpemUoKVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiZ2V0TWF4VGFnQ29udGVudCgpOyBjb250ZXh0OiB7ICRzdXJwbHVzOiBzZWxlY3RlZFN1cnBsdXMoKSwgJHRvdGFsOiBzZWxlY3RlZFRvdGFsKCkgfVwiPnt7XHJcbiAgICAgICAgZGlzcGxheU1vcmUoKVxyXG4gICAgICB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgPC94LXRhZz5cclxuICB9XHJcbiAgQGlmIChzZWFyY2goKSkge1xyXG4gICAgPHgtaW5wdXRcclxuICAgICAgI211bHRpcGxlSW5wdXRcclxuICAgICAgW2JvcmRlcmVkXT1cImZhbHNlXCJcclxuICAgICAgW3NpemVdPVwic2l6ZSgpXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJtdWx0aXBsZVNlYXJjaFZhbHVlXCJcclxuICAgICAgKHhJbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxyXG4gICAgICAoeEtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIlxyXG4gICAgPjwveC1pbnB1dD5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|