@ng-nest/ui 18.0.12 → 19.0.0
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.property.d.ts +2 -2
- package/auto-complete/auto-complete.property.d.ts +16 -19
- 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.property.d.ts +2 -2
- 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.property.d.ts +2 -2
- package/cascade/cascade.property.d.ts +16 -27
- package/checkbox/checkbox.property.d.ts +16 -22
- package/collapse/collapse.property.d.ts +2 -2
- package/color/color.property.d.ts +1 -1
- package/color-picker/color-picker-portal.component.d.ts +10 -10
- package/color-picker/color-picker.property.d.ts +15 -15
- 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.property.d.ts +34 -34
- 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 +0 -2
- 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.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 +23 -20
- package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-api.mjs +8 -8
- package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-auto-complete.mjs +16 -16
- 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 +13 -12
- 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 +10 -10
- 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 +14 -15
- 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 +20 -19
- package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-cascade.mjs +16 -16
- 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 +18 -18
- package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color-picker.mjs +15 -15
- 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 -57
- 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 +70 -144
- 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 -16
- 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 +15 -15
- 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 +32 -32
- 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 -19
- 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 -11
- package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tooltip.mjs +15 -15
- package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-transfer.mjs +12 -13
- 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 +15 -15
- package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree.mjs +21 -21
- 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 +15 -15
- package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
- package/find/find.property.d.ts +12 -18
- package/form/form.property.d.ts +10 -21
- 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 +17 -20
- package/input-number/input-number.property.d.ts +13 -13
- package/layout/layout.property.d.ts +2 -2
- package/link/link.property.d.ts +1 -1
- package/list/list.property.d.ts +12 -12
- package/loading/loading.property.d.ts +1 -1
- package/menu/menu.property.d.ts +2 -2
- package/package.json +83 -257
- 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 +13 -16
- package/rate/rate.property.d.ts +14 -22
- 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.property.d.ts +15 -15
- package/skeleton/skeleton.property.d.ts +1 -1
- package/slider/slider.property.d.ts +1 -1
- package/slider-select/slider-select.property.d.ts +13 -17
- 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 +14 -14
- package/table/table.property.d.ts +4 -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 +14 -17
- package/theme/theme.property.d.ts +6 -10
- package/time-picker/time-picker.property.d.ts +17 -23
- package/timeline/timeline.property.d.ts +1 -1
- package/tooltip/tooltip.property.d.ts +1 -1
- package/transfer/transfer.property.d.ts +9 -13
- package/tree/tree.property.d.ts +2 -2
- package/tree-file/tree-file.property.d.ts +1 -1
- package/tree-select/tree-select-portal.component.d.ts +1 -1
- package/tree-select/tree-select.property.d.ts +15 -15
- package/typography/typography.property.d.ts +1 -1
- package/upload/upload.property.d.ts +9 -9
- 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 -236
- 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 -624
- 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,409 +0,0 @@
|
|
|
1
|
-
import { Subject } from 'rxjs';
|
|
2
|
-
import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, HostListener, ViewChildren, inject, afterRender, viewChild, signal, computed } from '@angular/core';
|
|
3
|
-
import { XListPrefix, XListProperty } from './list.property';
|
|
4
|
-
import { XIsChange, XSetData, XIsEmpty, XIsUndefined, XIsNull, XResize } from '@ng-nest/ui/core';
|
|
5
|
-
import { CdkDrag, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';
|
|
6
|
-
import { XListOptionComponent } from './list-option.component';
|
|
7
|
-
import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
|
|
8
|
-
import { ENTER } from '@angular/cdk/keycodes';
|
|
9
|
-
import { map, takeUntil, debounceTime } from 'rxjs/operators';
|
|
10
|
-
import { XValueAccessor } from '@ng-nest/ui/base-form';
|
|
11
|
-
import { XI18nService, zh_CN } from '@ng-nest/ui/i18n';
|
|
12
|
-
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
13
|
-
import { X_LIST_DROP_GROUP } from './list-drop-group.directive';
|
|
14
|
-
import { XOutletDirective } from '@ng-nest/ui/outlet';
|
|
15
|
-
import { XIconComponent } from '@ng-nest/ui/icon';
|
|
16
|
-
import { XEmptyComponent } from '@ng-nest/ui/empty';
|
|
17
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
18
|
-
import { toSignal } from '@angular/core/rxjs-interop';
|
|
19
|
-
import { NgClass } from '@angular/common';
|
|
20
|
-
import * as i0 from "@angular/core";
|
|
21
|
-
import * as i1 from "@angular/cdk/scrolling";
|
|
22
|
-
export class XListComponent extends XListProperty {
|
|
23
|
-
keydown($event) {
|
|
24
|
-
this.keyManager.onKeydown($event);
|
|
25
|
-
const activeIndex = this.keyManager.activeItemIndex;
|
|
26
|
-
if ($event.keyCode === ENTER && !XIsUndefined(activeIndex)) {
|
|
27
|
-
this.setUnActive(activeIndex);
|
|
28
|
-
this.onNodeClick($event, this.nodes()[activeIndex]);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
getVirtualScrollHeight() {
|
|
32
|
-
let headerH = 0, footerH = 0, selectAllH = 0, loadMoreH = 0;
|
|
33
|
-
if (this.headerRef())
|
|
34
|
-
headerH = this.headerRef().nativeElement.clientHeight;
|
|
35
|
-
if (this.footerRef())
|
|
36
|
-
footerH = this.footerRef().nativeElement.clientHeight;
|
|
37
|
-
if (this.selectAllRef())
|
|
38
|
-
selectAllH = this.selectAllRef().nativeElement.clientHeight;
|
|
39
|
-
if (this.loadMoreRef())
|
|
40
|
-
loadMoreH = this.loadMoreRef().nativeElement.clientHeight;
|
|
41
|
-
return this.scrollHeightSignal() - headerH - footerH - selectAllH - loadMoreH;
|
|
42
|
-
}
|
|
43
|
-
writeValue(value) {
|
|
44
|
-
this.value.set(value);
|
|
45
|
-
this.setSelected();
|
|
46
|
-
this.setKeyManager();
|
|
47
|
-
}
|
|
48
|
-
constructor() {
|
|
49
|
-
super();
|
|
50
|
-
this.unSubject = new Subject();
|
|
51
|
-
this.i18n = inject(XI18nService);
|
|
52
|
-
this.group = inject(X_LIST_DROP_GROUP, { optional: true, skipSelf: true });
|
|
53
|
-
this.nodes = signal([]);
|
|
54
|
-
this.selectedNodes = signal([]);
|
|
55
|
-
this.headerRef = viewChild('headerRef');
|
|
56
|
-
this.footerRef = viewChild('footerRef');
|
|
57
|
-
this.selectAllRef = viewChild('selectAllRef');
|
|
58
|
-
this.loadMoreRef = viewChild('loadMoreRef');
|
|
59
|
-
this.virtualBody = viewChild('virtualBody');
|
|
60
|
-
this.dropList = viewChild(CdkDropList);
|
|
61
|
-
this.isSelectAll = signal(false);
|
|
62
|
-
this.locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.list)), { initialValue: zh_CN.list });
|
|
63
|
-
this.loadMoreIndex = signal(0);
|
|
64
|
-
this.icon = signal('');
|
|
65
|
-
this.iconSpin = signal(false);
|
|
66
|
-
this.scrollHeightSignal = signal(0);
|
|
67
|
-
this.classMap = computed(() => ({
|
|
68
|
-
[`${XListPrefix}-${this.size()}`]: this.size() ? true : false
|
|
69
|
-
}));
|
|
70
|
-
this.sizeChange = null;
|
|
71
|
-
this.role = 'listbox';
|
|
72
|
-
this.tabindex = -1;
|
|
73
|
-
this.itemSizeMap = {
|
|
74
|
-
mini: 22,
|
|
75
|
-
small: 24,
|
|
76
|
-
medium: 28,
|
|
77
|
-
large: 32,
|
|
78
|
-
big: 36
|
|
79
|
-
};
|
|
80
|
-
this.itemSize = computed(() => this.itemSizeMap[this.size()]);
|
|
81
|
-
this.isEmpty = computed(() => XIsEmpty(this.nodes()));
|
|
82
|
-
this.getSelectAllText = computed(() => this.selectAllText() || this.locale().selectAllText);
|
|
83
|
-
this.getLoadMoreText = computed(() => this.loadMoreText() || this.locale().loadMoreText);
|
|
84
|
-
this.getLoadingMoreText = computed(() => this.loadingMoreText() || this.locale().loadingMoreText);
|
|
85
|
-
this.minBufferPxSignal = computed(() => {
|
|
86
|
-
if (this.virtualScroll() && this.heightAdaption()) {
|
|
87
|
-
return this.getVirtualScrollHeight();
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
return this.minBufferPx();
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
this.maxBufferPxSignal = computed(() => {
|
|
94
|
-
if (this.virtualScroll() && this.heightAdaption()) {
|
|
95
|
-
return this.getVirtualScrollHeight() * 1.2;
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
return this.maxBufferPx();
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
afterRender({
|
|
102
|
-
mixedReadWrite: () => {
|
|
103
|
-
if (this.virtualScroll() && this.scrollHeight()) {
|
|
104
|
-
this.virtualBody()?.checkViewportSize();
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
ngOnChanges(changes) {
|
|
110
|
-
const { data, scrollHeight, heightAdaption } = changes;
|
|
111
|
-
XIsChange(data) && this.setData();
|
|
112
|
-
XIsChange(scrollHeight) &&
|
|
113
|
-
this.virtualScroll() &&
|
|
114
|
-
!this.heightAdaption() &&
|
|
115
|
-
this.scrollHeightSignal.set(this.scrollHeight());
|
|
116
|
-
XIsChange(heightAdaption) && this.virtualScroll() && this.setHeightAdaption();
|
|
117
|
-
}
|
|
118
|
-
ngAfterViewInit() {
|
|
119
|
-
this.initKeyManager();
|
|
120
|
-
if (this.virtualScroll() && this.heightAdaption()) {
|
|
121
|
-
this.setHeightAdaption();
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
this.scrollHeightSignal.set(this.scrollHeight());
|
|
125
|
-
}
|
|
126
|
-
if (this.group && this.dropList()) {
|
|
127
|
-
this.group.dropLists.add(this.dropList());
|
|
128
|
-
this.group.setConnectedTo();
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
setHeightAdaption() {
|
|
132
|
-
this.setVirtualScrollHeight();
|
|
133
|
-
if (this.sizeChange)
|
|
134
|
-
this.sizeChange.unsubscribe();
|
|
135
|
-
this.sizeChange = XResize(this.heightAdaption())
|
|
136
|
-
.pipe(debounceTime(30), takeUntil(this.unSubject))
|
|
137
|
-
.subscribe((x) => {
|
|
138
|
-
this.resizeObserver = x.resizeObserver;
|
|
139
|
-
this.setVirtualScrollHeight();
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
ngOnDestroy() {
|
|
143
|
-
this.unSubject.next();
|
|
144
|
-
this.unSubject.complete();
|
|
145
|
-
this.resizeObserver?.disconnect();
|
|
146
|
-
this.group?.dropLists.delete(this.dropList());
|
|
147
|
-
}
|
|
148
|
-
setVirtualScrollHeight() {
|
|
149
|
-
this.scrollHeightSignal.set(this.heightAdaption().clientHeight);
|
|
150
|
-
if (!this.virtualBody())
|
|
151
|
-
return;
|
|
152
|
-
this.virtualBody()['_scrollStrategy']['_minBufferPx'] = this.minBufferPxSignal();
|
|
153
|
-
this.virtualBody()['_scrollStrategy']['_maxBufferPx'] = this.maxBufferPxSignal();
|
|
154
|
-
}
|
|
155
|
-
setData() {
|
|
156
|
-
if (this.loadMore()) {
|
|
157
|
-
this.icon.set('fto-loader');
|
|
158
|
-
this.iconSpin.set(true);
|
|
159
|
-
}
|
|
160
|
-
XSetData(this.data(), this.unSubject, true, this.loadMoreIndex()).subscribe((x) => {
|
|
161
|
-
if (this.loadMore()) {
|
|
162
|
-
this.nodes.update((y) => [...y, ...x]);
|
|
163
|
-
this.icon.set('');
|
|
164
|
-
this.iconSpin.set(false);
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
this.nodes.set(x);
|
|
168
|
-
}
|
|
169
|
-
this.setSelected();
|
|
170
|
-
this.setKeyManager();
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
initKeyManager() {
|
|
174
|
-
this.keyManager = new ActiveDescendantKeyManager(this.options).withWrap();
|
|
175
|
-
this.keyManager.tabOut.pipe(takeUntil(this.unSubject)).subscribe(() => {
|
|
176
|
-
this.setUnActive(this.keyManager.activeItemIndex);
|
|
177
|
-
this.keyManagerTabOut.emit();
|
|
178
|
-
});
|
|
179
|
-
this.keyManager.change.pipe(takeUntil(this.unSubject)).subscribe((num) => {
|
|
180
|
-
this.setScorllTop(num);
|
|
181
|
-
this.keyManagerChange.emit(num);
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
setScorllTop(_num) {
|
|
185
|
-
let list = this.scrollElement();
|
|
186
|
-
if (!list || !this.keyManager.activeItem)
|
|
187
|
-
return;
|
|
188
|
-
let ele = this.keyManager.activeItem.elementRef.nativeElement;
|
|
189
|
-
let min = list.scrollTop;
|
|
190
|
-
let max = list.scrollTop + list.clientHeight;
|
|
191
|
-
if (ele.offsetTop + ele.clientHeight > max) {
|
|
192
|
-
let scrollTop = ele.offsetTop + ele.clientHeight - list.clientHeight;
|
|
193
|
-
list.scrollTop = scrollTop;
|
|
194
|
-
}
|
|
195
|
-
if (ele.offsetTop < min) {
|
|
196
|
-
list.scrollTop = ele.offsetTop;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
setSelected() {
|
|
200
|
-
const nodes = this.nodes();
|
|
201
|
-
const value = this.value();
|
|
202
|
-
const objectArray = this.objectArray();
|
|
203
|
-
if (nodes.length > 0) {
|
|
204
|
-
nodes
|
|
205
|
-
.filter((x) => x.selected)
|
|
206
|
-
.map((x) => {
|
|
207
|
-
x.selected = false;
|
|
208
|
-
});
|
|
209
|
-
let valArry = [];
|
|
210
|
-
if (value instanceof Array) {
|
|
211
|
-
valArry = value;
|
|
212
|
-
if (valArry.length === nodes.length) {
|
|
213
|
-
this.isSelectAll.set(true);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
else {
|
|
217
|
-
valArry = [value];
|
|
218
|
-
}
|
|
219
|
-
let ids = [];
|
|
220
|
-
let selectedNodes = [];
|
|
221
|
-
if (objectArray) {
|
|
222
|
-
ids = valArry.filter((x) => !XIsUndefined(x) && !XIsNull(x)).map((x) => x.id);
|
|
223
|
-
}
|
|
224
|
-
else {
|
|
225
|
-
ids = valArry;
|
|
226
|
-
}
|
|
227
|
-
for (let id of ids) {
|
|
228
|
-
let node = nodes.find((x) => x.id === id);
|
|
229
|
-
if (node) {
|
|
230
|
-
node.selected = true;
|
|
231
|
-
selectedNodes.push(node);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
this.selectedNodes.set(selectedNodes);
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
setKeyManager() {
|
|
238
|
-
if (XIsUndefined(this.keyManager) || XIsEmpty(this.nodes()))
|
|
239
|
-
return;
|
|
240
|
-
let activeIndex = 0;
|
|
241
|
-
let value = this.value();
|
|
242
|
-
let objectArray = this.objectArray();
|
|
243
|
-
if (XIsEmpty(value)) {
|
|
244
|
-
this.keyManager.updateActiveItem(activeIndex);
|
|
245
|
-
return;
|
|
246
|
-
}
|
|
247
|
-
let valArry = [];
|
|
248
|
-
if (value instanceof Array) {
|
|
249
|
-
valArry = value;
|
|
250
|
-
}
|
|
251
|
-
else {
|
|
252
|
-
valArry = [value];
|
|
253
|
-
}
|
|
254
|
-
const first = valArry[0];
|
|
255
|
-
if (objectArray) {
|
|
256
|
-
activeIndex = this.nodes().findIndex((x) => x.id === first.id);
|
|
257
|
-
}
|
|
258
|
-
else {
|
|
259
|
-
activeIndex = this.nodes().findIndex((x) => x.id === first);
|
|
260
|
-
}
|
|
261
|
-
this.keyManager.updateActiveItem(activeIndex);
|
|
262
|
-
this.setScorllTop(activeIndex);
|
|
263
|
-
}
|
|
264
|
-
onNodeClick(event, node) {
|
|
265
|
-
if (XIsUndefined(node) || node.disabled) {
|
|
266
|
-
event.stopPropagation();
|
|
267
|
-
return;
|
|
268
|
-
}
|
|
269
|
-
if (node.disabled)
|
|
270
|
-
return;
|
|
271
|
-
if (node.selected && this.multiple() === 1) {
|
|
272
|
-
node.event = event;
|
|
273
|
-
this.nodeClick.emit(node);
|
|
274
|
-
return;
|
|
275
|
-
}
|
|
276
|
-
const selected = !node.selected;
|
|
277
|
-
if (selected) {
|
|
278
|
-
if (this.selectedNodes().length < this.multiple() || this.multiple() === 0 || isNaN(this.multiple())) {
|
|
279
|
-
node.selected = selected;
|
|
280
|
-
this.selectedNodes.update((x) => [...x, node]);
|
|
281
|
-
if (this.selectedNodes().length === this.nodes().length) {
|
|
282
|
-
this.isSelectAll.set(true);
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
else if (this.multiple() === 1 && this.selectedNodes().length === 1) {
|
|
286
|
-
node.selected = selected;
|
|
287
|
-
this.selectedNodes.update((x) => {
|
|
288
|
-
x[0].selected = false;
|
|
289
|
-
x[0] = node;
|
|
290
|
-
return [...x];
|
|
291
|
-
});
|
|
292
|
-
}
|
|
293
|
-
else {
|
|
294
|
-
return;
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
else {
|
|
298
|
-
node.selected = selected;
|
|
299
|
-
this.selectedNodes.update((x) => {
|
|
300
|
-
x.splice(x.findIndex((x) => x.id == node.id), 1);
|
|
301
|
-
return [...x];
|
|
302
|
-
});
|
|
303
|
-
this.isSelectAll.set(false);
|
|
304
|
-
}
|
|
305
|
-
if (this.multiple() === 1 && this.selectedNodes().length === 1) {
|
|
306
|
-
this.value.set(this.objectArray() ? this.selectedNodes()[0] : this.selectedNodes()[0].id);
|
|
307
|
-
}
|
|
308
|
-
else {
|
|
309
|
-
this.value.set(this.objectArray() ? this.selectedNodes() : this.selectedNodes().map((x) => x.id));
|
|
310
|
-
}
|
|
311
|
-
if (this.onChange)
|
|
312
|
-
this.onChange(this.value());
|
|
313
|
-
node.event = event;
|
|
314
|
-
this.nodeClick.emit(node);
|
|
315
|
-
}
|
|
316
|
-
onMouseenter(event, node) {
|
|
317
|
-
if (node.disabled) {
|
|
318
|
-
event.stopPropagation();
|
|
319
|
-
return;
|
|
320
|
-
}
|
|
321
|
-
node.event = event;
|
|
322
|
-
this.nodeMouseenter.emit(node);
|
|
323
|
-
}
|
|
324
|
-
onMouseleave(event, node) {
|
|
325
|
-
if (node.disabled) {
|
|
326
|
-
event.stopPropagation();
|
|
327
|
-
return;
|
|
328
|
-
}
|
|
329
|
-
node.event = event;
|
|
330
|
-
this.nodeMouseleave.emit(node);
|
|
331
|
-
}
|
|
332
|
-
dropCdk(event) {
|
|
333
|
-
this.nodes.update((x) => {
|
|
334
|
-
moveItemInArray(x, event.previousIndex, event.currentIndex);
|
|
335
|
-
return [...x];
|
|
336
|
-
});
|
|
337
|
-
this.dropListDropped.emit({
|
|
338
|
-
data: this.nodes(),
|
|
339
|
-
current: this.nodes()[event.currentIndex],
|
|
340
|
-
currentIndex: event.currentIndex,
|
|
341
|
-
event: event
|
|
342
|
-
});
|
|
343
|
-
}
|
|
344
|
-
predicate(_drag, _drop) {
|
|
345
|
-
return true;
|
|
346
|
-
}
|
|
347
|
-
onSelectAllNodes() {
|
|
348
|
-
this.isSelectAll.update((x) => !x);
|
|
349
|
-
if (this.isSelectAll()) {
|
|
350
|
-
this.nodes.update((x) => {
|
|
351
|
-
x.forEach((y) => (y.selected = true));
|
|
352
|
-
return [...x];
|
|
353
|
-
});
|
|
354
|
-
this.selectedNodes.set(this.nodes());
|
|
355
|
-
}
|
|
356
|
-
else {
|
|
357
|
-
this.nodes.update((x) => {
|
|
358
|
-
x.forEach((y) => (y.selected = false));
|
|
359
|
-
return [...x];
|
|
360
|
-
});
|
|
361
|
-
this.selectedNodes.set([]);
|
|
362
|
-
}
|
|
363
|
-
this.value.set(this.objectArray() ? this.selectedNodes() : this.selectedNodes().map((x) => x.id));
|
|
364
|
-
if (this.onChange)
|
|
365
|
-
this.onChange(this.value());
|
|
366
|
-
this.onSelectAll.emit(this.isSelectAll());
|
|
367
|
-
}
|
|
368
|
-
onLoadMore() {
|
|
369
|
-
this.loadMoreIndex.update((x) => x + 1);
|
|
370
|
-
this.setData();
|
|
371
|
-
}
|
|
372
|
-
trackByNode(_index, item) {
|
|
373
|
-
return item.id;
|
|
374
|
-
}
|
|
375
|
-
setUnActive(num) {
|
|
376
|
-
if (num > -1)
|
|
377
|
-
this.nodes()[num].active = false;
|
|
378
|
-
}
|
|
379
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
380
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: XListComponent, isStandalone: true, selector: "x-list", host: { listeners: { "keydown": "keydown($event)" }, properties: { "attr.role": "this.role", "attr.tabindex": "this.tabindex" } }, providers: [XValueAccessor(XListComponent)], viewQueries: [{ propertyName: "headerRef", first: true, predicate: ["headerRef"], descendants: true, isSignal: true }, { propertyName: "footerRef", first: true, predicate: ["footerRef"], descendants: true, isSignal: true }, { propertyName: "selectAllRef", first: true, predicate: ["selectAllRef"], descendants: true, isSignal: true }, { propertyName: "loadMoreRef", first: true, predicate: ["loadMoreRef"], descendants: true, isSignal: true }, { propertyName: "virtualBody", first: true, predicate: ["virtualBody"], descendants: true, isSignal: true }, { propertyName: "dropList", first: true, predicate: CdkDropList, descendants: true, isSignal: true }, { propertyName: "options", predicate: XListOptionComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-list\" [class.x-list-portal]=\"inPortal()\" [ngClass]=\"classMap()\">\r\n @if (header()) {\r\n <div #headerRef class=\"x-list-header\" *xOutlet=\"header()\">{{ header() }}</div>\r\n }\r\n @if (selectAll() && multiple() === 0) {\r\n <div #selectAllRef class=\"x-list-select-all\">\r\n <x-list-option\r\n [size]=\"size()\"\r\n [label]=\"getSelectAllText()\"\r\n [checked]=\"true\"\r\n [selected]=\"isSelectAll()\"\r\n (click)=\"onSelectAllNodes()\"\r\n ></x-list-option>\r\n </div>\r\n }\r\n @if (virtualScroll()) {\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"itemSize()\"\r\n [minBufferPx]=\"minBufferPxSignal()\"\r\n [maxBufferPx]=\"maxBufferPxSignal()\"\r\n class=\"x-list-content\"\r\n [style.height.px]=\"getVirtualScrollHeight()\"\r\n [hidden]=\"isEmpty()\"\r\n >\r\n <x-list-option\r\n *cdkVirtualFor=\"let node of nodes(); trackBy: trackByNode\"\r\n [node]=\"node\"\r\n [checked]=\"checked()\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [selected]=\"node.selected!\"\r\n [forbidden]=\"node.disabled!\"\r\n [active]=\"node.active!\"\r\n (activeChange)=\"node.active = $event\"\r\n [openPortal]=\"node.openPortal!\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf!\"\r\n [size]=\"size()\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n ></x-list-option>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n <div\r\n class=\"x-list-content\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListDisabled]=\"!drag()\"\r\n [hidden]=\"isEmpty()\"\r\n [cdkDropListData]=\"nodes()\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n @for (node of nodes(); track node.id) {\r\n <x-list-option\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled\"\r\n [node]=\"node\"\r\n [checked]=\"checked()\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [selected]=\"node.selected!\"\r\n [forbidden]=\"node.disabled!\"\r\n [active]=\"node.active!\"\r\n (activeChange)=\"node.active = $event\"\r\n [openPortal]=\"node.openPortal!\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf!\"\r\n [size]=\"size()\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n ></x-list-option>\r\n }\r\n </div>\r\n }\r\n @if (loadMore() && !isEmpty()) {\r\n <div #loadMoreRef class=\"x-list-load-more\">\r\n <x-list-option [size]=\"size()\" [nodeTpl]=\"loadMoreTpl\" (click)=\"onLoadMore()\"></x-list-option>\r\n </div>\r\n <ng-template #loadMoreTpl>\r\n @if (icon() && iconSpin()) {\r\n <x-icon [type]=\"icon()\" [spin]=\"iconSpin()\"></x-icon>\r\n }\r\n {{ icon() && iconSpin() ? getLoadingMoreText() : getLoadMoreText() }}</ng-template\r\n >\r\n }\r\n @if (isEmpty()) {\r\n <x-empty></x-empty>\r\n }\r\n @if (footer()) {\r\n <div #footerRef class=\"x-list-footer\" *xOutlet=\"footer()\">{{ footer() }}</div>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-list{width:100%}x-list:focus{outline:none}.x-list{margin:0;padding:0}.x-list{width:100%}.x-list:focus{outline:none}.x-list-select-all{cursor:pointer;font-weight:700}.x-list-load-more,.x-list-content{cursor:pointer}.x-list-content.cdk-drop-list-dragging x-list-option.cdk-drag-placeholder .x-list-option{border-color:var(--x-primary);color:var(--x-primary);background-color:var(--x-background);opacity:.8}.x-list-content.cdk-drop-list-dragging x-list-option:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}.x-list-header,.x-list-footer{font-weight:700}.x-list-portal{padding:.125rem .25rem}.x-list-portal x-list-option .x-list-option{padding:0 calc(var(--x-padding-medium) - .5rem);margin:.125rem 0;border-radius:var(--x-border-small-radius)}.x-list-leaf,.x-list-checked{right:0;margin-left:.4rem;color:var(--x-text-400)}.x-list-icon>span x-icon{color:var(--x-text-300);margin-right:.25rem}.x-list>x-empty{margin:1rem;display:block}.x-list-big .x-list-header,.x-list-big .x-list-footer{padding:0 var(--x-padding-big);height:var(--x-height-big);line-height:var(--x-height-big)}.x-list-large .x-list-header,.x-list-large .x-list-footer{padding:0 var(--x-padding-large);height:var(--x-height-large);line-height:var(--x-height-large)}.x-list-medium .x-list-header,.x-list-medium .x-list-footer{padding:0 var(--x-padding-medium);height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-list-small .x-list-header,.x-list-small .x-list-footer{padding:0 var(--x-padding-small);height:var(--x-height-small);line-height:var(--x-height-small)}.x-list-mini .x-list-header,.x-list-mini .x-list-footer{padding:0 var(--x-padding-mini);height:var(--x-height-mini);line-height:var(--x-height-mini)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i1.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i1.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i1.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "component", type: XEmptyComponent, selector: "x-empty" }, { kind: "component", type: XListOptionComponent, selector: "x-list-option" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
381
|
-
}
|
|
382
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XListComponent, decorators: [{
|
|
383
|
-
type: Component,
|
|
384
|
-
args: [{ selector: `${XListPrefix}`, standalone: true, imports: [
|
|
385
|
-
NgClass,
|
|
386
|
-
FormsModule,
|
|
387
|
-
ReactiveFormsModule,
|
|
388
|
-
CdkDropList,
|
|
389
|
-
CdkDrag,
|
|
390
|
-
ScrollingModule,
|
|
391
|
-
XIconComponent,
|
|
392
|
-
XEmptyComponent,
|
|
393
|
-
XListOptionComponent,
|
|
394
|
-
XOutletDirective
|
|
395
|
-
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XListComponent)], template: "<div class=\"x-list\" [class.x-list-portal]=\"inPortal()\" [ngClass]=\"classMap()\">\r\n @if (header()) {\r\n <div #headerRef class=\"x-list-header\" *xOutlet=\"header()\">{{ header() }}</div>\r\n }\r\n @if (selectAll() && multiple() === 0) {\r\n <div #selectAllRef class=\"x-list-select-all\">\r\n <x-list-option\r\n [size]=\"size()\"\r\n [label]=\"getSelectAllText()\"\r\n [checked]=\"true\"\r\n [selected]=\"isSelectAll()\"\r\n (click)=\"onSelectAllNodes()\"\r\n ></x-list-option>\r\n </div>\r\n }\r\n @if (virtualScroll()) {\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"itemSize()\"\r\n [minBufferPx]=\"minBufferPxSignal()\"\r\n [maxBufferPx]=\"maxBufferPxSignal()\"\r\n class=\"x-list-content\"\r\n [style.height.px]=\"getVirtualScrollHeight()\"\r\n [hidden]=\"isEmpty()\"\r\n >\r\n <x-list-option\r\n *cdkVirtualFor=\"let node of nodes(); trackBy: trackByNode\"\r\n [node]=\"node\"\r\n [checked]=\"checked()\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [selected]=\"node.selected!\"\r\n [forbidden]=\"node.disabled!\"\r\n [active]=\"node.active!\"\r\n (activeChange)=\"node.active = $event\"\r\n [openPortal]=\"node.openPortal!\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf!\"\r\n [size]=\"size()\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n ></x-list-option>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n <div\r\n class=\"x-list-content\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListDisabled]=\"!drag()\"\r\n [hidden]=\"isEmpty()\"\r\n [cdkDropListData]=\"nodes()\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n @for (node of nodes(); track node.id) {\r\n <x-list-option\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled\"\r\n [node]=\"node\"\r\n [checked]=\"checked()\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [selected]=\"node.selected!\"\r\n [forbidden]=\"node.disabled!\"\r\n [active]=\"node.active!\"\r\n (activeChange)=\"node.active = $event\"\r\n [openPortal]=\"node.openPortal!\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf!\"\r\n [size]=\"size()\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n ></x-list-option>\r\n }\r\n </div>\r\n }\r\n @if (loadMore() && !isEmpty()) {\r\n <div #loadMoreRef class=\"x-list-load-more\">\r\n <x-list-option [size]=\"size()\" [nodeTpl]=\"loadMoreTpl\" (click)=\"onLoadMore()\"></x-list-option>\r\n </div>\r\n <ng-template #loadMoreTpl>\r\n @if (icon() && iconSpin()) {\r\n <x-icon [type]=\"icon()\" [spin]=\"iconSpin()\"></x-icon>\r\n }\r\n {{ icon() && iconSpin() ? getLoadingMoreText() : getLoadMoreText() }}</ng-template\r\n >\r\n }\r\n @if (isEmpty()) {\r\n <x-empty></x-empty>\r\n }\r\n @if (footer()) {\r\n <div #footerRef class=\"x-list-footer\" *xOutlet=\"footer()\">{{ footer() }}</div>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-list{width:100%}x-list:focus{outline:none}.x-list{margin:0;padding:0}.x-list{width:100%}.x-list:focus{outline:none}.x-list-select-all{cursor:pointer;font-weight:700}.x-list-load-more,.x-list-content{cursor:pointer}.x-list-content.cdk-drop-list-dragging x-list-option.cdk-drag-placeholder .x-list-option{border-color:var(--x-primary);color:var(--x-primary);background-color:var(--x-background);opacity:.8}.x-list-content.cdk-drop-list-dragging x-list-option:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}.x-list-header,.x-list-footer{font-weight:700}.x-list-portal{padding:.125rem .25rem}.x-list-portal x-list-option .x-list-option{padding:0 calc(var(--x-padding-medium) - .5rem);margin:.125rem 0;border-radius:var(--x-border-small-radius)}.x-list-leaf,.x-list-checked{right:0;margin-left:.4rem;color:var(--x-text-400)}.x-list-icon>span x-icon{color:var(--x-text-300);margin-right:.25rem}.x-list>x-empty{margin:1rem;display:block}.x-list-big .x-list-header,.x-list-big .x-list-footer{padding:0 var(--x-padding-big);height:var(--x-height-big);line-height:var(--x-height-big)}.x-list-large .x-list-header,.x-list-large .x-list-footer{padding:0 var(--x-padding-large);height:var(--x-height-large);line-height:var(--x-height-large)}.x-list-medium .x-list-header,.x-list-medium .x-list-footer{padding:0 var(--x-padding-medium);height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-list-small .x-list-header,.x-list-small .x-list-footer{padding:0 var(--x-padding-small);height:var(--x-height-small);line-height:var(--x-height-small)}.x-list-mini .x-list-header,.x-list-mini .x-list-footer{padding:0 var(--x-padding-mini);height:var(--x-height-mini);line-height:var(--x-height-mini)}\n"] }]
|
|
396
|
-
}], ctorParameters: () => [], propDecorators: { options: [{
|
|
397
|
-
type: ViewChildren,
|
|
398
|
-
args: [XListOptionComponent]
|
|
399
|
-
}], role: [{
|
|
400
|
-
type: HostBinding,
|
|
401
|
-
args: ['attr.role']
|
|
402
|
-
}], tabindex: [{
|
|
403
|
-
type: HostBinding,
|
|
404
|
-
args: ['attr.tabindex']
|
|
405
|
-
}], keydown: [{
|
|
406
|
-
type: HostListener,
|
|
407
|
-
args: ['keydown', ['$event']]
|
|
408
|
-
}] } });
|
|
409
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9saXN0L2xpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvbGlzdC9saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUt2QixXQUFXLEVBQ1gsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxNQUFNLEVBQ04sUUFBUSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFtQixNQUFNLGtCQUFrQixDQUFDO0FBQ2xILE9BQU8sRUFBRSxPQUFPLEVBQWUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFhLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRSxP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LENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNqRCxDQUFDO2lJQW5YVSxjQUFjO3FIQUFkLGNBQWMsd0xBRmQsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUMsK2xCQWFULFdBQVcsNkVBQy9CLG9CQUFvQiw0RkNyRXBDLDJrSEFtR0Esb3lERDNESSxPQUFPLG1GQUNQLFdBQVcsOEJBQ1gsbUJBQW1CLCtCQUNuQixXQUFXLDhmQUNYLE9BQU8sdWNBQ1AsZUFBZSw0akJBQ2YsY0FBYyxtREFDZCxlQUFlLG9EQUNmLG9CQUFvQiwwREFDcEIsZ0JBQWdCOzsyRkFRUCxjQUFjO2tCQXJCMUIsU0FBUzsrQkFDRSxHQUFHLFdBQVcsRUFBRSxjQUNkLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLE9BQU87d0JBQ1AsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixnQkFBZ0I7cUJBQ2pCLGlCQUdjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLGdCQUFnQixDQUFDO3dEQWUzQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsb0JBQW9CO2dCQWVSLElBQUk7c0JBQTdCLFdBQVc7dUJBQUMsV0FBVztnQkFDTSxRQUFRO3NCQUFyQyxXQUFXO3VCQUFDLGVBQWU7Z0JBRVMsT0FBTztzQkFBM0MsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkNoYW5nZXMsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIFZpZXdDaGlsZHJlbixcclxuICBpbmplY3QsXHJcbiAgYWZ0ZXJSZW5kZXIsXHJcbiAgdmlld0NoaWxkLFxyXG4gIHNpZ25hbCxcclxuICBjb21wdXRlZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYTGlzdFByZWZpeCwgWExpc3ROb2RlLCBYTGlzdFByb3BlcnR5IH0gZnJvbSAnLi9saXN0LnByb3BlcnR5JztcclxuaW1wb3J0IHsgWElzQ2hhbmdlLCBYU2V0RGF0YSwgWElzRW1wdHksIFhJc1VuZGVmaW5lZCwgWElzTnVsbCwgWFJlc2l6ZSwgWFJlc2l6ZU9ic2VydmVyIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IENka0RyYWcsIENka0RyYWdEcm9wLCBDZGtEcm9wTGlzdCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IFhMaXN0T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9saXN0LW9wdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcclxuaW1wb3J0IHsgRU5URVIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xyXG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCwgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcbmltcG9ydCB7IFhJMThuTGlzdCwgWEkxOG5TZXJ2aWNlLCB6aF9DTiB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsIFNjcm9sbGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5pbXBvcnQgeyBYTGlzdERyb3BHcm91cCwgWF9MSVNUX0RST1BfR1JPVVAgfSBmcm9tICcuL2xpc3QtZHJvcC1ncm91cC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBYT3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnQG5nLW5lc3QvdWkvb3V0bGV0JztcclxuaW1wb3J0IHsgWEljb25Db21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9pY29uJztcclxuaW1wb3J0IHsgWEVtcHR5Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvZW1wdHknO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hMaXN0UHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgQ2RrRHJvcExpc3QsXHJcbiAgICBDZGtEcmFnLFxyXG4gICAgU2Nyb2xsaW5nTW9kdWxlLFxyXG4gICAgWEljb25Db21wb25lbnQsXHJcbiAgICBYRW1wdHlDb21wb25lbnQsXHJcbiAgICBYTGlzdE9wdGlvbkNvbXBvbmVudCxcclxuICAgIFhPdXRsZXREaXJlY3RpdmVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9saXN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtYVmFsdWVBY2Nlc3NvcihYTGlzdENvbXBvbmVudCldXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYTGlzdENvbXBvbmVudCBleHRlbmRzIFhMaXN0UHJvcGVydHkgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIHByaXZhdGUgdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoWEkxOG5TZXJ2aWNlKTtcclxuICBwcml2YXRlIGdyb3VwID0gaW5qZWN0PFhMaXN0RHJvcEdyb3VwPihYX0xJU1RfRFJPUF9HUk9VUCwgeyBvcHRpb25hbDogdHJ1ZSwgc2tpcFNlbGY6IHRydWUgfSk7XHJcbiAgbm9kZXMgPSBzaWduYWw8WExpc3ROb2RlW10+KFtdKTtcclxuICBzZWxlY3RlZE5vZGVzID0gc2lnbmFsPFhMaXN0Tm9kZVtdPihbXSk7XHJcbiAgaGVhZGVyUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignaGVhZGVyUmVmJyk7XHJcbiAgZm9vdGVyUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignZm9vdGVyUmVmJyk7XHJcbiAgc2VsZWN0QWxsUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+Pignc2VsZWN0QWxsUmVmJyk7XHJcbiAgbG9hZE1vcmVSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdsb2FkTW9yZVJlZicpO1xyXG4gIHZpcnR1YWxCb2R5ID0gdmlld0NoaWxkPENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydD4oJ3ZpcnR1YWxCb2R5Jyk7XHJcbiAgZHJvcExpc3QgPSB2aWV3Q2hpbGQ8Q2RrRHJvcExpc3Q+KENka0Ryb3BMaXN0KTtcclxuICBAVmlld0NoaWxkcmVuKFhMaXN0T3B0aW9uQ29tcG9uZW50KVxyXG4gIG9wdGlvbnMhOiBRdWVyeUxpc3Q8WExpc3RPcHRpb25Db21wb25lbnQ+O1xyXG4gIGtleU1hbmFnZXIhOiBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcjxYTGlzdE9wdGlvbkNvbXBvbmVudD47XHJcbiAgaXNTZWxlY3RBbGwgPSBzaWduYWwoZmFsc2UpO1xyXG4gIGxvY2FsZSA9IHRvU2lnbmFsKHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2UucGlwZShtYXAoKHgpID0+IHgubGlzdCBhcyBYSTE4bkxpc3QpKSwgeyBpbml0aWFsVmFsdWU6IHpoX0NOLmxpc3QgfSk7XHJcbiAgbG9hZE1vcmVJbmRleCA9IHNpZ25hbCgwKTtcclxuICBpY29uID0gc2lnbmFsKCcnKTtcclxuICBpY29uU3BpbiA9IHNpZ25hbChmYWxzZSk7XHJcbiAgc2Nyb2xsSGVpZ2h0U2lnbmFsID0gc2lnbmFsKDApO1xyXG4gIGNsYXNzTWFwID0gY29tcHV0ZWQoKCkgPT4gKHtcclxuICAgIFtgJHtYTGlzdFByZWZpeH0tJHt0aGlzLnNpemUoKX1gXTogdGhpcy5zaXplKCkgPyB0cnVlIDogZmFsc2VcclxuICB9KSk7XHJcbiAgc2l6ZUNoYW5nZTogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlciE6IFhSZXNpemVPYnNlcnZlcjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ2xpc3Rib3gnO1xyXG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpIHRhYmluZGV4ID0gLTE7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKSBrZXlkb3duKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgdGhpcy5rZXlNYW5hZ2VyLm9uS2V5ZG93bigkZXZlbnQpO1xyXG4gICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLmtleU1hbmFnZXIuYWN0aXZlSXRlbUluZGV4IGFzIG51bWJlcjtcclxuICAgIGlmICgkZXZlbnQua2V5Q29kZSA9PT0gRU5URVIgJiYgIVhJc1VuZGVmaW5lZChhY3RpdmVJbmRleCkpIHtcclxuICAgICAgdGhpcy5zZXRVbkFjdGl2ZShhY3RpdmVJbmRleCk7XHJcbiAgICAgIHRoaXMub25Ob2RlQ2xpY2soJGV2ZW50LCB0aGlzLm5vZGVzKClbYWN0aXZlSW5kZXhdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGl0ZW1TaXplTWFwOiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9ID0ge1xyXG4gICAgbWluaTogMjIsXHJcbiAgICBzbWFsbDogMjQsXHJcbiAgICBtZWRpdW06IDI4LFxyXG4gICAgbGFyZ2U6IDMyLFxyXG4gICAgYmlnOiAzNlxyXG4gIH07XHJcblxyXG4gIGl0ZW1TaXplID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pdGVtU2l6ZU1hcFt0aGlzLnNpemUoKV0pO1xyXG4gIGlzRW1wdHkgPSBjb21wdXRlZCgoKSA9PiBYSXNFbXB0eSh0aGlzLm5vZGVzKCkpKTtcclxuICBnZXRTZWxlY3RBbGxUZXh0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zZWxlY3RBbGxUZXh0KCkgfHwgdGhpcy5sb2NhbGUoKS5zZWxlY3RBbGxUZXh0KTtcclxuICBnZXRMb2FkTW9yZVRleHQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmxvYWRNb3JlVGV4dCgpIHx8IHRoaXMubG9jYWxlKCkubG9hZE1vcmVUZXh0KTtcclxuICBnZXRMb2FkaW5nTW9yZVRleHQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmxvYWRpbmdNb3JlVGV4dCgpIHx8IHRoaXMubG9jYWxlKCkubG9hZGluZ01vcmVUZXh0KTtcclxuXHJcbiAgZ2V0VmlydHVhbFNjcm9sbEhlaWdodCgpIHtcclxuICAgIGxldCBoZWFkZXJIID0gMCxcclxuICAgICAgZm9vdGVySCA9IDAsXHJcbiAgICAgIHNlbGVjdEFsbEggPSAwLFxyXG4gICAgICBsb2FkTW9yZUggPSAwO1xyXG4gICAgaWYgKHRoaXMuaGVhZGVyUmVmKCkpIGhlYWRlckggPSB0aGlzLmhlYWRlclJlZigpIS5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgIGlmICh0aGlzLmZvb3RlclJlZigpKSBmb290ZXJIID0gdGhpcy5mb290ZXJSZWYoKSEubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RBbGxSZWYoKSkgc2VsZWN0QWxsSCA9IHRoaXMuc2VsZWN0QWxsUmVmKCkhLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgaWYgKHRoaXMubG9hZE1vcmVSZWYoKSkgbG9hZE1vcmVIID0gdGhpcy5sb2FkTW9yZVJlZigpIS5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5zY3JvbGxIZWlnaHRTaWduYWwoKSAtIGhlYWRlckggLSBmb290ZXJIIC0gc2VsZWN0QWxsSCAtIGxvYWRNb3JlSDtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZS5zZXQodmFsdWUpO1xyXG4gICAgdGhpcy5zZXRTZWxlY3RlZCgpO1xyXG4gICAgdGhpcy5zZXRLZXlNYW5hZ2VyKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICBhZnRlclJlbmRlcih7XHJcbiAgICAgIG1peGVkUmVhZFdyaXRlOiAoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMudmlydHVhbFNjcm9sbCgpICYmIHRoaXMuc2Nyb2xsSGVpZ2h0KCkpIHtcclxuICAgICAgICAgIHRoaXMudmlydHVhbEJvZHkoKT8uY2hlY2tWaWV3cG9ydFNpemUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBkYXRhLCBzY3JvbGxIZWlnaHQsIGhlaWdodEFkYXB0aW9uIH0gPSBjaGFuZ2VzO1xyXG4gICAgWElzQ2hhbmdlKGRhdGEpICYmIHRoaXMuc2V0RGF0YSgpO1xyXG4gICAgWElzQ2hhbmdlKHNjcm9sbEhlaWdodCkgJiZcclxuICAgICAgdGhpcy52aXJ0dWFsU2Nyb2xsKCkgJiZcclxuICAgICAgIXRoaXMuaGVpZ2h0QWRhcHRpb24oKSAmJlxyXG4gICAgICB0aGlzLnNjcm9sbEhlaWdodFNpZ25hbC5zZXQodGhpcy5zY3JvbGxIZWlnaHQoKSk7XHJcbiAgICBYSXNDaGFuZ2UoaGVpZ2h0QWRhcHRpb24pICYmIHRoaXMudmlydHVhbFNjcm9sbCgpICYmIHRoaXMuc2V0SGVpZ2h0QWRhcHRpb24oKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuaW5pdEtleU1hbmFnZXIoKTtcclxuICAgIGlmICh0aGlzLnZpcnR1YWxTY3JvbGwoKSAmJiB0aGlzLmhlaWdodEFkYXB0aW9uKCkpIHtcclxuICAgICAgdGhpcy5zZXRIZWlnaHRBZGFwdGlvbigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zY3JvbGxIZWlnaHRTaWduYWwuc2V0KHRoaXMuc2Nyb2xsSGVpZ2h0KCkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZ3JvdXAgJiYgdGhpcy5kcm9wTGlzdCgpKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuZHJvcExpc3RzLmFkZCh0aGlzLmRyb3BMaXN0KCkhKTtcclxuICAgICAgdGhpcy5ncm91cC5zZXRDb25uZWN0ZWRUbygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0SGVpZ2h0QWRhcHRpb24oKSB7XHJcbiAgICB0aGlzLnNldFZpcnR1YWxTY3JvbGxIZWlnaHQoKTtcclxuICAgIGlmICh0aGlzLnNpemVDaGFuZ2UpIHRoaXMuc2l6ZUNoYW5nZS51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5zaXplQ2hhbmdlID0gWFJlc2l6ZSh0aGlzLmhlaWdodEFkYXB0aW9uKCkgYXMgSFRNTEVsZW1lbnQpXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgzMCksIHRha2VVbnRpbCh0aGlzLnVuU3ViamVjdCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0geC5yZXNpemVPYnNlcnZlcjtcclxuICAgICAgICB0aGlzLnNldFZpcnR1YWxTY3JvbGxIZWlnaHQoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBtaW5CdWZmZXJQeFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGlmICh0aGlzLnZpcnR1YWxTY3JvbGwoKSAmJiB0aGlzLmhlaWdodEFkYXB0aW9uKCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0VmlydHVhbFNjcm9sbEhlaWdodCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubWluQnVmZmVyUHgoKTtcclxuICAgIH1cclxuICB9KTtcclxuICBtYXhCdWZmZXJQeFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGlmICh0aGlzLnZpcnR1YWxTY3JvbGwoKSAmJiB0aGlzLmhlaWdodEFkYXB0aW9uKCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0VmlydHVhbFNjcm9sbEhlaWdodCgpICogMS4yO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubWF4QnVmZmVyUHgoKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnVuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLnVuU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xyXG4gICAgdGhpcy5ncm91cD8uZHJvcExpc3RzLmRlbGV0ZSh0aGlzLmRyb3BMaXN0KCkhKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VmlydHVhbFNjcm9sbEhlaWdodCgpIHtcclxuICAgIHRoaXMuc2Nyb2xsSGVpZ2h0U2lnbmFsLnNldCgodGhpcy5oZWlnaHRBZGFwdGlvbigpIGFzIEhUTUxFbGVtZW50KS5jbGllbnRIZWlnaHQpO1xyXG4gICAgaWYgKCF0aGlzLnZpcnR1YWxCb2R5KCkpIHJldHVybjtcclxuICAgIHRoaXMudmlydHVhbEJvZHkoKSFbJ19zY3JvbGxTdHJhdGVneSddWydfbWluQnVmZmVyUHgnXSA9IHRoaXMubWluQnVmZmVyUHhTaWduYWwoKTtcclxuICAgIHRoaXMudmlydHVhbEJvZHkoKSFbJ19zY3JvbGxTdHJhdGVneSddWydfbWF4QnVmZmVyUHgnXSA9IHRoaXMubWF4QnVmZmVyUHhTaWduYWwoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RGF0YSgpIHtcclxuICAgIGlmICh0aGlzLmxvYWRNb3JlKCkpIHtcclxuICAgICAgdGhpcy5pY29uLnNldCgnZnRvLWxvYWRlcicpO1xyXG4gICAgICB0aGlzLmljb25TcGluLnNldCh0cnVlKTtcclxuICAgIH1cclxuICAgIFhTZXREYXRhPFhMaXN0Tm9kZT4odGhpcy5kYXRhKCksIHRoaXMudW5TdWJqZWN0LCB0cnVlLCB0aGlzLmxvYWRNb3JlSW5kZXgoKSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmxvYWRNb3JlKCkpIHtcclxuICAgICAgICB0aGlzLm5vZGVzLnVwZGF0ZSgoeSkgPT4gWy4uLnksIC4uLnhdKTtcclxuICAgICAgICB0aGlzLmljb24uc2V0KCcnKTtcclxuICAgICAgICB0aGlzLmljb25TcGluLnNldChmYWxzZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5ub2Rlcy5zZXQoeCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZXRTZWxlY3RlZCgpO1xyXG4gICAgICB0aGlzLnNldEtleU1hbmFnZXIoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0S2V5TWFuYWdlcigpIHtcclxuICAgIHRoaXMua2V5TWFuYWdlciA9IG5ldyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcjxYTGlzdE9wdGlvbkNvbXBvbmVudD4odGhpcy5vcHRpb25zKS53aXRoV3JhcCgpO1xyXG4gICAgdGhpcy5rZXlNYW5hZ2VyLnRhYk91dC5waXBlKHRha2VVbnRpbCh0aGlzLnVuU3ViamVjdCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0VW5BY3RpdmUodGhpcy5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1JbmRleCBhcyBudW1iZXIpO1xyXG4gICAgICB0aGlzLmtleU1hbmFnZXJUYWJPdXQuZW1pdCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmtleU1hbmFnZXIuY2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KSkuc3Vic2NyaWJlKChudW06IG51bWJlcikgPT4ge1xyXG4gICAgICB0aGlzLnNldFNjb3JsbFRvcChudW0pO1xyXG4gICAgICB0aGlzLmtleU1hbmFnZXJDaGFuZ2UuZW1pdChudW0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRTY29ybGxUb3AoX251bTogbnVtYmVyKSB7XHJcbiAgICBsZXQgbGlzdCA9IHRoaXMuc2Nyb2xsRWxlbWVudCgpO1xyXG4gICAgaWYgKCFsaXN0IHx8ICF0aGlzLmtleU1hbmFnZXIuYWN0aXZlSXRlbSkgcmV0dXJuO1xyXG4gICAgbGV0IGVsZSA9IHRoaXMua2V5TWFuYWdlci5hY3RpdmVJdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGxldCBtaW4gPSBsaXN0LnNjcm9sbFRvcDtcclxuICAgIGxldCBtYXggPSBsaXN0LnNjcm9sbFRvcCArIGxpc3QuY2xpZW50SGVpZ2h0O1xyXG4gICAgaWYgKGVsZS5vZmZzZXRUb3AgKyBlbGUuY2xpZW50SGVpZ2h0ID4gbWF4KSB7XHJcbiAgICAgIGxldCBzY3JvbGxUb3AgPSBlbGUub2Zmc2V0VG9wICsgZWxlLmNsaWVudEhlaWdodCAtIGxpc3QuY2xpZW50SGVpZ2h0O1xyXG4gICAgICBsaXN0LnNjcm9sbFRvcCA9IHNjcm9sbFRvcDtcclxuICAgIH1cclxuICAgIGlmIChlbGUub2Zmc2V0VG9wIDwgbWluKSB7XHJcbiAgICAgIGxpc3Quc2Nyb2xsVG9wID0gZWxlLm9mZnNldFRvcDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFNlbGVjdGVkKCkge1xyXG4gICAgY29uc3Qgbm9kZXMgPSB0aGlzLm5vZGVzKCk7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUoKTtcclxuICAgIGNvbnN0IG9iamVjdEFycmF5ID0gdGhpcy5vYmplY3RBcnJheSgpO1xyXG4gICAgaWYgKG5vZGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgbm9kZXNcclxuICAgICAgICAuZmlsdGVyKCh4KSA9PiB4LnNlbGVjdGVkKVxyXG4gICAgICAgIC5tYXAoKHgpID0+IHtcclxuICAgICAgICAgIHguc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgbGV0IHZhbEFycnk6IGFueVtdID0gW107XHJcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgdmFsQXJyeSA9IHZhbHVlO1xyXG4gICAgICAgIGlmICh2YWxBcnJ5Lmxlbmd0aCA9PT0gbm9kZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmlzU2VsZWN0QWxsLnNldCh0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdmFsQXJyeSA9IFt2YWx1ZV07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBpZHMgPSBbXTtcclxuICAgICAgbGV0IHNlbGVjdGVkTm9kZXMgPSBbXTtcclxuICAgICAgaWYgKG9iamVjdEFycmF5KSB7XHJcbiAgICAgICAgaWRzID0gdmFsQXJyeS5maWx0ZXIoKHgpID0+ICFYSXNVbmRlZmluZWQoeCkgJiYgIVhJc051bGwoeCkpLm1hcCgoeCkgPT4geC5pZCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWRzID0gdmFsQXJyeTtcclxuICAgICAgfVxyXG4gICAgICBmb3IgKGxldCBpZCBvZiBpZHMpIHtcclxuICAgICAgICBsZXQgbm9kZSA9IG5vZGVzLmZpbmQoKHgpID0+IHguaWQgPT09IGlkKTtcclxuICAgICAgICBpZiAobm9kZSkge1xyXG4gICAgICAgICAgbm9kZS5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgICBzZWxlY3RlZE5vZGVzLnB1c2gobm9kZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWROb2Rlcy5zZXQoc2VsZWN0ZWROb2Rlcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRLZXlNYW5hZ2VyKCkge1xyXG4gICAgaWYgKFhJc1VuZGVmaW5lZCh0aGlzLmtleU1hbmFnZXIpIHx8IFhJc0VtcHR5KHRoaXMubm9kZXMoKSkpIHJldHVybjtcclxuICAgIGxldCBhY3RpdmVJbmRleCA9IDA7XHJcbiAgICBsZXQgdmFsdWUgPSB0aGlzLnZhbHVlKCk7XHJcbiAgICBsZXQgb2JqZWN0QXJyYXkgPSB0aGlzLm9iamVjdEFycmF5KCk7XHJcbiAgICBpZiAoWElzRW1wdHkodmFsdWUpKSB7XHJcbiAgICAgIHRoaXMua2V5TWFuYWdlci51cGRhdGVBY3RpdmVJdGVtKGFjdGl2ZUluZGV4KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IHZhbEFycnk6IGFueVtdID0gW107XHJcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICB2YWxBcnJ5ID0gdmFsdWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YWxBcnJ5ID0gW3ZhbHVlXTtcclxuICAgIH1cclxuICAgIGNvbnN0IGZpcnN0ID0gdmFsQXJyeVswXTtcclxuICAgIGlmIChvYmplY3RBcnJheSkge1xyXG4gICAgICBhY3RpdmVJbmRleCA9IHRoaXMubm9kZXMoKS5maW5kSW5kZXgoKHgpID0+IHguaWQgPT09IGZpcnN0LmlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGFjdGl2ZUluZGV4ID0gdGhpcy5ub2RlcygpLmZpbmRJbmRleCgoeCkgPT4geC5pZCA9PT0gZmlyc3QpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5rZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0oYWN0aXZlSW5kZXgpO1xyXG4gICAgdGhpcy5zZXRTY29ybGxUb3AoYWN0aXZlSW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgb25Ob2RlQ2xpY2soZXZlbnQ6IEV2ZW50LCBub2RlOiBYTGlzdE5vZGUpIHtcclxuICAgIGlmIChYSXNVbmRlZmluZWQobm9kZSkgfHwgbm9kZS5kaXNhYmxlZCkge1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKG5vZGUuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIGlmIChub2RlLnNlbGVjdGVkICYmIHRoaXMubXVsdGlwbGUoKSA9PT0gMSkge1xyXG4gICAgICBub2RlLmV2ZW50ID0gZXZlbnQ7XHJcbiAgICAgIHRoaXMubm9kZUNsaWNrLmVtaXQobm9kZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHNlbGVjdGVkID0gIW5vZGUuc2VsZWN0ZWQ7XHJcbiAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWROb2RlcygpLmxlbmd0aCA8IHRoaXMubXVsdGlwbGUoKSB8fCB0aGlzLm11bHRpcGxlKCkgPT09IDAgfHwgaXNOYU4odGhpcy5tdWx0aXBsZSgpKSkge1xyXG4gICAgICAgIG5vZGUuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMudXBkYXRlKCh4KSA9PiBbLi4ueCwgbm9kZV0pO1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTm9kZXMoKS5sZW5ndGggPT09IHRoaXMubm9kZXMoKS5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuaXNTZWxlY3RBbGwuc2V0KHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh0aGlzLm11bHRpcGxlKCkgPT09IDEgJiYgdGhpcy5zZWxlY3RlZE5vZGVzKCkubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgbm9kZS5zZWxlY3RlZCA9IHNlbGVjdGVkO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWROb2Rlcy51cGRhdGUoKHgpID0+IHtcclxuICAgICAgICAgIHhbMF0uc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHhbMF0gPSBub2RlO1xyXG4gICAgICAgICAgcmV0dXJuIFsuLi54XTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5vZGUuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcclxuICAgICAgdGhpcy5zZWxlY3RlZE5vZGVzLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICAgIHguc3BsaWNlKFxyXG4gICAgICAgICAgeC5maW5kSW5kZXgoKHgpID0+IHguaWQgPT0gbm9kZS5pZCksXHJcbiAgICAgICAgICAxXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gWy4uLnhdO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5pc1NlbGVjdEFsbC5zZXQoZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm11bHRpcGxlKCkgPT09IDEgJiYgdGhpcy5zZWxlY3RlZE5vZGVzKCkubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIHRoaXMudmFsdWUuc2V0KHRoaXMub2JqZWN0QXJyYXkoKSA/IHRoaXMuc2VsZWN0ZWROb2RlcygpWzBdIDogdGhpcy5zZWxlY3RlZE5vZGVzKClbMF0uaWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZS5zZXQodGhpcy5vYmplY3RBcnJheSgpID8gdGhpcy5zZWxlY3RlZE5vZGVzKCkgOiB0aGlzLnNlbGVjdGVkTm9kZXMoKS5tYXAoKHgpID0+IHguaWQpKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUoKSk7XHJcbiAgICBub2RlLmV2ZW50ID0gZXZlbnQ7XHJcbiAgICB0aGlzLm5vZGVDbGljay5lbWl0KG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgb25Nb3VzZWVudGVyKGV2ZW50OiBFdmVudCwgbm9kZTogWExpc3ROb2RlKSB7XHJcbiAgICBpZiAobm9kZS5kaXNhYmxlZCkge1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbm9kZS5ldmVudCA9IGV2ZW50O1xyXG4gICAgdGhpcy5ub2RlTW91c2VlbnRlci5lbWl0KG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgb25Nb3VzZWxlYXZlKGV2ZW50OiBFdmVudCwgbm9kZTogWExpc3ROb2RlKSB7XHJcbiAgICBpZiAobm9kZS5kaXNhYmxlZCkge1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbm9kZS5ldmVudCA9IGV2ZW50O1xyXG4gICAgdGhpcy5ub2RlTW91c2VsZWF2ZS5lbWl0KG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgZHJvcENkayhldmVudDogQ2RrRHJhZ0Ryb3A8WExpc3ROb2RlW10+KSB7XHJcbiAgICB0aGlzLm5vZGVzLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICBtb3ZlSXRlbUluQXJyYXkoeCwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICAgICAgcmV0dXJuIFsuLi54XTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kcm9wTGlzdERyb3BwZWQuZW1pdCh7XHJcbiAgICAgIGRhdGE6IHRoaXMubm9kZXMoKSxcclxuICAgICAgY3VycmVudDogdGhpcy5ub2RlcygpW2V2ZW50LmN1cnJlbnRJbmRleF0sXHJcbiAgICAgIGN1cnJlbnRJbmRleDogZXZlbnQuY3VycmVudEluZGV4LFxyXG4gICAgICBldmVudDogZXZlbnRcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJlZGljYXRlKF9kcmFnOiBDZGtEcmFnPFhMaXN0Tm9kZT4sIF9kcm9wOiBDZGtEcm9wTGlzdDxYTGlzdE5vZGU+KSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0QWxsTm9kZXMoKSB7XHJcbiAgICB0aGlzLmlzU2VsZWN0QWxsLnVwZGF0ZSgoeCkgPT4gIXgpO1xyXG4gICAgaWYgKHRoaXMuaXNTZWxlY3RBbGwoKSkge1xyXG4gICAgICB0aGlzLm5vZGVzLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICAgIHguZm9yRWFjaCgoeSkgPT4gKHkuc2VsZWN0ZWQgPSB0cnVlKSk7XHJcbiAgICAgICAgcmV0dXJuIFsuLi54XTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWROb2Rlcy5zZXQodGhpcy5ub2RlcygpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubm9kZXMudXBkYXRlKCh4KSA9PiB7XHJcbiAgICAgICAgeC5mb3JFYWNoKCh5KSA9PiAoeS5zZWxlY3RlZCA9IGZhbHNlKSk7XHJcbiAgICAgICAgcmV0dXJuIFsuLi54XTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWROb2Rlcy5zZXQoW10pO1xyXG4gICAgfVxyXG4gICAgdGhpcy52YWx1ZS5zZXQodGhpcy5vYmplY3RBcnJheSgpID8gdGhpcy5zZWxlY3RlZE5vZGVzKCkgOiB0aGlzLnNlbGVjdGVkTm9kZXMoKS5tYXAoKHgpID0+IHguaWQpKTtcclxuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUoKSk7XHJcbiAgICB0aGlzLm9uU2VsZWN0QWxsLmVtaXQodGhpcy5pc1NlbGVjdEFsbCgpKTtcclxuICB9XHJcblxyXG4gIG9uTG9hZE1vcmUoKSB7XHJcbiAgICB0aGlzLmxvYWRNb3JlSW5kZXgudXBkYXRlKCh4KSA9PiB4ICsgMSk7XHJcbiAgICB0aGlzLnNldERhdGEoKTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlOb2RlKF9pbmRleDogbnVtYmVyLCBpdGVtOiBYTGlzdE5vZGUpIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxuXHJcbiAgc2V0VW5BY3RpdmUobnVtOiBudW1iZXIpIHtcclxuICAgIGlmIChudW0gPiAtMSkgdGhpcy5ub2RlcygpW251bV0uYWN0aXZlID0gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LWxpc3RcIiBbY2xhc3MueC1saXN0LXBvcnRhbF09XCJpblBvcnRhbCgpXCIgW25nQ2xhc3NdPVwiY2xhc3NNYXAoKVwiPlxyXG4gIEBpZiAoaGVhZGVyKCkpIHtcclxuICAgIDxkaXYgI2hlYWRlclJlZiBjbGFzcz1cIngtbGlzdC1oZWFkZXJcIiAqeE91dGxldD1cImhlYWRlcigpXCI+e3sgaGVhZGVyKCkgfX08L2Rpdj5cclxuICB9XHJcbiAgQGlmIChzZWxlY3RBbGwoKSAmJiBtdWx0aXBsZSgpID09PSAwKSB7XHJcbiAgICA8ZGl2ICNzZWxlY3RBbGxSZWYgY2xhc3M9XCJ4LWxpc3Qtc2VsZWN0LWFsbFwiPlxyXG4gICAgICA8eC1saXN0LW9wdGlvblxyXG4gICAgICAgIFtzaXplXT1cInNpemUoKVwiXHJcbiAgICAgICAgW2xhYmVsXT1cImdldFNlbGVjdEFsbFRleHQoKVwiXHJcbiAgICAgICAgW2NoZWNrZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3NlbGVjdGVkXT1cImlzU2VsZWN0QWxsKClcIlxyXG4gICAgICAgIChjbGljayk9XCJvblNlbGVjdEFsbE5vZGVzKClcIlxyXG4gICAgICA+PC94LWxpc3Qtb3B0aW9uPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIEBpZiAodmlydHVhbFNjcm9sbCgpKSB7XHJcbiAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XHJcbiAgICAgICN2aXJ0dWFsQm9keVxyXG4gICAgICBbaXRlbVNpemVdPVwiaXRlbVNpemUoKVwiXHJcbiAgICAgIFttaW5CdWZmZXJQeF09XCJtaW5CdWZmZXJQeFNpZ25hbCgpXCJcclxuICAgICAgW21heEJ1ZmZlclB4XT1cIm1heEJ1ZmZlclB4U2lnbmFsKClcIlxyXG4gICAgICBjbGFzcz1cIngtbGlzdC1jb250ZW50XCJcclxuICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJnZXRWaXJ0dWFsU2Nyb2xsSGVpZ2h0KClcIlxyXG4gICAgICBbaGlkZGVuXT1cImlzRW1wdHkoKVwiXHJcbiAgICA+XHJcbiAgICAgIDx4LWxpc3Qtb3B0aW9uXHJcbiAgICAgICAgKmNka1ZpcnR1YWxGb3I9XCJsZXQgbm9kZSBvZiBub2RlcygpOyB0cmFja0J5OiB0cmFja0J5Tm9kZVwiXHJcbiAgICAgICAgW25vZGVdPVwibm9kZVwiXHJcbiAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tlZCgpXCJcclxuICAgICAgICBbbm9kZVRwbF09XCJub2RlVHBsKClcIlxyXG4gICAgICAgIFtzZWxlY3RlZF09XCJub2RlLnNlbGVjdGVkIVwiXHJcbiAgICAgICAgW2ZvcmJpZGRlbl09XCJub2RlLmRpc2FibGVkIVwiXHJcbiAgICAgICAgW2FjdGl2ZV09XCJub2RlLmFjdGl2ZSFcIlxyXG4gICAgICAgIChhY3RpdmVDaGFuZ2UpPVwibm9kZS5hY3RpdmUgPSAkZXZlbnRcIlxyXG4gICAgICAgIFtvcGVuUG9ydGFsXT1cIm5vZGUub3BlblBvcnRhbCFcIlxyXG4gICAgICAgIFtpY29uXT1cIm5vZGUuaWNvblwiXHJcbiAgICAgICAgW2xhYmVsXT1cIm5vZGUubGFiZWxcIlxyXG4gICAgICAgIFtsZWFmXT1cIm5vZGUubGVhZiFcIlxyXG4gICAgICAgIFtzaXplXT1cInNpemUoKVwiXHJcbiAgICAgICAgW2tleXdvcmRUZXh0XT1cImtleXdvcmRUZXh0KClcIlxyXG4gICAgICAgIFtjYXNlU2Vuc2l0aXZlXT1cImNhc2VTZW5zaXRpdmUoKVwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uTm9kZUNsaWNrKCRldmVudCwgbm9kZSlcIlxyXG4gICAgICAgIChtb3VzZWVudGVyKT1cIm9uTW91c2VlbnRlcigkZXZlbnQsIG5vZGUpXCJcclxuICAgICAgICAobW91c2VsZWF2ZSk9XCJvbk1vdXNlbGVhdmUoJGV2ZW50LCBub2RlKVwiXHJcbiAgICAgID48L3gtbGlzdC1vcHRpb24+XHJcbiAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cclxuICB9IEBlbHNlIHtcclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJ4LWxpc3QtY29udGVudFwiXHJcbiAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcENkaygkZXZlbnQpXCJcclxuICAgICAgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiIWRyYWcoKVwiXHJcbiAgICAgIFtoaWRkZW5dPVwiaXNFbXB0eSgpXCJcclxuICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJub2RlcygpXCJcclxuICAgICAgW2Nka0Ryb3BMaXN0RW50ZXJQcmVkaWNhdGVdPVwicHJlZGljYXRlXCJcclxuICAgID5cclxuICAgICAgQGZvciAobm9kZSBvZiBub2RlcygpOyB0cmFjayBub2RlLmlkKSB7XHJcbiAgICAgICAgPHgtbGlzdC1vcHRpb25cclxuICAgICAgICAgIGNka0RyYWdcclxuICAgICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwibm9kZS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICBbbm9kZV09XCJub2RlXCJcclxuICAgICAgICAgIFtjaGVja2VkXT1cImNoZWNrZWQoKVwiXHJcbiAgICAgICAgICBbbm9kZVRwbF09XCJub2RlVHBsKClcIlxyXG4gICAgICAgICAgW3NlbGVjdGVkXT1cIm5vZGUuc2VsZWN0ZWQhXCJcclxuICAgICAgICAgIFtmb3JiaWRkZW5dPVwibm9kZS5kaXNhYmxlZCFcIlxyXG4gICAgICAgICAgW2FjdGl2ZV09XCJub2RlLmFjdGl2ZSFcIlxyXG4gICAgICAgICAgKGFjdGl2ZUNoYW5nZSk9XCJub2RlLmFjdGl2ZSA9ICRldmVudFwiXHJcbiAgICAgICAgICBbb3BlblBvcnRhbF09XCJub2RlLm9wZW5Qb3J0YWwhXCJcclxuICAgICAgICAgIFtpY29uXT1cIm5vZGUuaWNvblwiXHJcbiAgICAgICAgICBbbGFiZWxdPVwibm9kZS5sYWJlbFwiXHJcbiAgICAgICAgICBbbGVhZl09XCJub2RlLmxlYWYhXCJcclxuICAgICAgICAgIFtzaXplXT1cInNpemUoKVwiXHJcbiAgICAgICAgICBba2V5d29yZFRleHRdPVwia2V5d29yZFRleHQoKVwiXHJcbiAgICAgICAgICBbY2FzZVNlbnNpdGl2ZV09XCJjYXNlU2Vuc2l0aXZlKClcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uTm9kZUNsaWNrKCRldmVudCwgbm9kZSlcIlxyXG4gICAgICAgICAgKG1vdXNlZW50ZXIpPVwib25Nb3VzZWVudGVyKCRldmVudCwgbm9kZSlcIlxyXG4gICAgICAgICAgKG1vdXNlbGVhdmUpPVwib25Nb3VzZWxlYXZlKCRldmVudCwgbm9kZSlcIlxyXG4gICAgICAgID48L3gtbGlzdC1vcHRpb24+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuICBAaWYgKGxvYWRNb3JlKCkgJiYgIWlzRW1wdHkoKSkge1xyXG4gICAgPGRpdiAjbG9hZE1vcmVSZWYgY2xhc3M9XCJ4LWxpc3QtbG9hZC1tb3JlXCI+XHJcbiAgICAgIDx4LWxpc3Qtb3B0aW9uIFtzaXplXT1cInNpemUoKVwiIFtub2RlVHBsXT1cImxvYWRNb3JlVHBsXCIgKGNsaWNrKT1cIm9uTG9hZE1vcmUoKVwiPjwveC1saXN0LW9wdGlvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLXRlbXBsYXRlICNsb2FkTW9yZVRwbD5cclxuICAgICAgQGlmIChpY29uKCkgJiYgaWNvblNwaW4oKSkge1xyXG4gICAgICAgIDx4LWljb24gW3R5cGVdPVwiaWNvbigpXCIgW3NwaW5dPVwiaWNvblNwaW4oKVwiPjwveC1pY29uPlxyXG4gICAgICB9XHJcbiAgICAgIHt7IGljb24oKSAmJiBpY29uU3BpbigpID8gZ2V0TG9hZGluZ01vcmVUZXh0KCkgOiBnZXRMb2FkTW9yZVRleHQoKSB9fTwvbmctdGVtcGxhdGVcclxuICAgID5cclxuICB9XHJcbiAgQGlmIChpc0VtcHR5KCkpIHtcclxuICAgIDx4LWVtcHR5PjwveC1lbXB0eT5cclxuICB9XHJcbiAgQGlmIChmb290ZXIoKSkge1xyXG4gICAgPGRpdiAjZm9vdGVyUmVmIGNsYXNzPVwieC1saXN0LWZvb3RlclwiICp4T3V0bGV0PVwiZm9vdGVyKClcIj57eyBmb290ZXIoKSB9fTwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { XListComponent } from './list.component';
|
|
3
|
-
import { XListOptionComponent } from './list-option.component';
|
|
4
|
-
import { XListDropGroup } from './list-drop-group.directive';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class XListModule {
|
|
7
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: XListModule, imports: [XListComponent, XListDropGroup, XListOptionComponent], exports: [XListComponent, XListDropGroup, XListOptionComponent] }); }
|
|
9
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XListModule, imports: [XListComponent, XListOptionComponent] }); }
|
|
10
|
-
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XListModule, decorators: [{
|
|
12
|
-
type: NgModule,
|
|
13
|
-
args: [{
|
|
14
|
-
exports: [XListComponent, XListDropGroup, XListOptionComponent],
|
|
15
|
-
imports: [XListComponent, XListDropGroup, XListOptionComponent]
|
|
16
|
-
}]
|
|
17
|
-
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9saXN0L2xpc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFNN0QsTUFBTSxPQUFPLFdBQVc7aUlBQVgsV0FBVztrSUFBWCxXQUFXLFlBRlosY0FBYyxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsYUFEcEQsY0FBYyxFQUFFLGNBQWMsRUFBRSxvQkFBb0I7a0lBR25ELFdBQVcsWUFGWixjQUFjLEVBQWtCLG9CQUFvQjs7MkZBRW5ELFdBQVc7a0JBSnZCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsQ0FBQztvQkFDL0QsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsQ0FBQztpQkFDaEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYTGlzdENvbXBvbmVudCB9IGZyb20gJy4vbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYTGlzdE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbGlzdC1vcHRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgWExpc3REcm9wR3JvdXAgfSBmcm9tICcuL2xpc3QtZHJvcC1ncm91cC5kaXJlY3RpdmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBleHBvcnRzOiBbWExpc3RDb21wb25lbnQsIFhMaXN0RHJvcEdyb3VwLCBYTGlzdE9wdGlvbkNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1hMaXN0Q29tcG9uZW50LCBYTGlzdERyb3BHcm91cCwgWExpc3RPcHRpb25Db21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYTGlzdE1vZHVsZSB7fVxyXG4iXX0=
|