@ng-nest/ui 11.2.9 → 11.2.13
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/affix/affix.property.d.ts +2 -2
- package/alert/alert.property.d.ts +22 -12
- package/alert/ng-nest-ui-alert.metadata.json +1 -1
- package/auto-complete/auto-complete.property.d.ts +3 -3
- package/avatar/avatar.property.d.ts +6 -6
- package/back-top/back-top.property.d.ts +4 -4
- package/badge/badge.property.d.ts +3 -3
- package/base-form/base-form.component.d.ts +1 -1
- package/base-form/base-form.property.d.ts +10 -10
- package/border/ng-nest-ui-border.metadata.json +1 -1
- package/bundles/ng-nest-ui-affix.umd.js +10 -4
- package/bundles/ng-nest-ui-affix.umd.js.map +1 -1
- package/bundles/ng-nest-ui-affix.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-alert.umd.js +26 -12
- package/bundles/ng-nest-ui-alert.umd.js.map +1 -1
- package/bundles/ng-nest-ui-alert.umd.min.js +2 -2
- package/bundles/ng-nest-ui-alert.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-anchor.umd.js +10 -4
- package/bundles/ng-nest-ui-anchor.umd.js.map +1 -1
- package/bundles/ng-nest-ui-anchor.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-auto-complete.umd.js +15 -8
- package/bundles/ng-nest-ui-auto-complete.umd.js.map +1 -1
- package/bundles/ng-nest-ui-auto-complete.umd.min.js +2 -2
- package/bundles/ng-nest-ui-auto-complete.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-avatar.umd.js +10 -4
- package/bundles/ng-nest-ui-avatar.umd.js.map +1 -1
- package/bundles/ng-nest-ui-avatar.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-back-top.umd.js +10 -4
- package/bundles/ng-nest-ui-back-top.umd.js.map +1 -1
- package/bundles/ng-nest-ui-back-top.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-badge.umd.js +10 -4
- package/bundles/ng-nest-ui-badge.umd.js.map +1 -1
- package/bundles/ng-nest-ui-badge.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-base-form.umd.js +10 -4
- package/bundles/ng-nest-ui-base-form.umd.js.map +1 -1
- package/bundles/ng-nest-ui-base-form.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-border.umd.js +1 -1
- package/bundles/ng-nest-ui-border.umd.js.map +1 -1
- package/bundles/ng-nest-ui-border.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-button.umd.js +11 -5
- package/bundles/ng-nest-ui-button.umd.js.map +1 -1
- package/bundles/ng-nest-ui-button.umd.min.js +1 -1
- package/bundles/ng-nest-ui-button.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-calendar.umd.js +16 -6
- package/bundles/ng-nest-ui-calendar.umd.js.map +1 -1
- package/bundles/ng-nest-ui-calendar.umd.min.js +1 -1
- package/bundles/ng-nest-ui-calendar.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-card.umd.js +10 -4
- package/bundles/ng-nest-ui-card.umd.js.map +1 -1
- package/bundles/ng-nest-ui-card.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-carousel.umd.js +10 -4
- package/bundles/ng-nest-ui-carousel.umd.js.map +1 -1
- package/bundles/ng-nest-ui-carousel.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-cascade.umd.js +10 -4
- package/bundles/ng-nest-ui-cascade.umd.js.map +1 -1
- package/bundles/ng-nest-ui-cascade.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-checkbox.umd.js +16 -9
- package/bundles/ng-nest-ui-checkbox.umd.js.map +1 -1
- package/bundles/ng-nest-ui-checkbox.umd.min.js +2 -2
- package/bundles/ng-nest-ui-checkbox.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-collapse.umd.js +10 -4
- package/bundles/ng-nest-ui-collapse.umd.js.map +1 -1
- package/bundles/ng-nest-ui-collapse.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-color-picker.umd.js +10 -4
- package/bundles/ng-nest-ui-color-picker.umd.js.map +1 -1
- package/bundles/ng-nest-ui-color-picker.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-color.umd.js +10 -4
- package/bundles/ng-nest-ui-color.umd.js.map +1 -1
- package/bundles/ng-nest-ui-color.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-comment.umd.js +16 -6
- package/bundles/ng-nest-ui-comment.umd.js.map +1 -1
- package/bundles/ng-nest-ui-comment.umd.min.js +2 -2
- package/bundles/ng-nest-ui-comment.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-container.umd.js +10 -4
- package/bundles/ng-nest-ui-container.umd.js.map +1 -1
- package/bundles/ng-nest-ui-container.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-core.umd.js +30 -8
- package/bundles/ng-nest-ui-core.umd.js.map +1 -1
- package/bundles/ng-nest-ui-core.umd.min.js +2 -2
- package/bundles/ng-nest-ui-core.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-crumb.umd.js +10 -4
- package/bundles/ng-nest-ui-crumb.umd.js.map +1 -1
- package/bundles/ng-nest-ui-crumb.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-date-picker.umd.js +16 -7
- package/bundles/ng-nest-ui-date-picker.umd.js.map +1 -1
- package/bundles/ng-nest-ui-date-picker.umd.min.js +1 -1
- package/bundles/ng-nest-ui-date-picker.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-dialog.umd.js +25 -12
- package/bundles/ng-nest-ui-dialog.umd.js.map +1 -1
- package/bundles/ng-nest-ui-dialog.umd.min.js +2 -2
- package/bundles/ng-nest-ui-dialog.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-drawer.umd.js +10 -4
- package/bundles/ng-nest-ui-drawer.umd.js.map +1 -1
- package/bundles/ng-nest-ui-drawer.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-dropdown.umd.js +10 -4
- package/bundles/ng-nest-ui-dropdown.umd.js.map +1 -1
- package/bundles/ng-nest-ui-dropdown.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-empty.umd.js +10 -4
- package/bundles/ng-nest-ui-empty.umd.js.map +1 -1
- package/bundles/ng-nest-ui-empty.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-find.umd.js +79 -12
- package/bundles/ng-nest-ui-find.umd.js.map +1 -1
- package/bundles/ng-nest-ui-find.umd.min.js +2 -2
- package/bundles/ng-nest-ui-find.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-form.umd.js +16 -9
- package/bundles/ng-nest-ui-form.umd.js.map +1 -1
- package/bundles/ng-nest-ui-form.umd.min.js +1 -1
- package/bundles/ng-nest-ui-form.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-highlight.umd.js +10 -4
- package/bundles/ng-nest-ui-highlight.umd.js.map +1 -1
- package/bundles/ng-nest-ui-highlight.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-i18n.umd.js +1 -1
- package/bundles/ng-nest-ui-i18n.umd.js.map +1 -1
- package/bundles/ng-nest-ui-i18n.umd.min.js +1 -1
- package/bundles/ng-nest-ui-i18n.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-icon.umd.js +10 -4
- package/bundles/ng-nest-ui-icon.umd.js.map +1 -1
- package/bundles/ng-nest-ui-icon.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-inner.umd.js +10 -4
- package/bundles/ng-nest-ui-inner.umd.js.map +1 -1
- package/bundles/ng-nest-ui-inner.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-input-number.umd.js +10 -4
- package/bundles/ng-nest-ui-input-number.umd.js.map +1 -1
- package/bundles/ng-nest-ui-input-number.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-input.umd.js +10 -4
- package/bundles/ng-nest-ui-input.umd.js.map +1 -1
- package/bundles/ng-nest-ui-input.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-layout.umd.js +10 -4
- package/bundles/ng-nest-ui-layout.umd.js.map +1 -1
- package/bundles/ng-nest-ui-layout.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-link.umd.js +10 -4
- package/bundles/ng-nest-ui-link.umd.js.map +1 -1
- package/bundles/ng-nest-ui-link.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-list.umd.js +10 -4
- package/bundles/ng-nest-ui-list.umd.js.map +1 -1
- package/bundles/ng-nest-ui-list.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-loading.umd.js +10 -4
- package/bundles/ng-nest-ui-loading.umd.js.map +1 -1
- package/bundles/ng-nest-ui-loading.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-menu.umd.js +22 -11
- package/bundles/ng-nest-ui-menu.umd.js.map +1 -1
- package/bundles/ng-nest-ui-menu.umd.min.js +2 -2
- package/bundles/ng-nest-ui-menu.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-message-box.umd.js +37 -10
- package/bundles/ng-nest-ui-message-box.umd.js.map +1 -1
- package/bundles/ng-nest-ui-message-box.umd.min.js +1 -1
- package/bundles/ng-nest-ui-message-box.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-message.umd.js +10 -4
- package/bundles/ng-nest-ui-message.umd.js.map +1 -1
- package/bundles/ng-nest-ui-message.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-notification.umd.js +10 -4
- package/bundles/ng-nest-ui-notification.umd.js.map +1 -1
- package/bundles/ng-nest-ui-notification.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-outlet.umd.js +10 -4
- package/bundles/ng-nest-ui-outlet.umd.js.map +1 -1
- package/bundles/ng-nest-ui-outlet.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-page-header.umd.js +10 -4
- package/bundles/ng-nest-ui-page-header.umd.js.map +1 -1
- package/bundles/ng-nest-ui-page-header.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-pagination.umd.js +10 -4
- package/bundles/ng-nest-ui-pagination.umd.js.map +1 -1
- package/bundles/ng-nest-ui-pagination.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-popconfirm.umd.js +11 -5
- package/bundles/ng-nest-ui-popconfirm.umd.js.map +1 -1
- package/bundles/ng-nest-ui-popconfirm.umd.min.js +2 -2
- package/bundles/ng-nest-ui-popconfirm.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-popover.umd.js +10 -4
- package/bundles/ng-nest-ui-popover.umd.js.map +1 -1
- package/bundles/ng-nest-ui-popover.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-portal.umd.js +10 -4
- package/bundles/ng-nest-ui-portal.umd.js.map +1 -1
- package/bundles/ng-nest-ui-portal.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-progress.umd.js +10 -4
- package/bundles/ng-nest-ui-progress.umd.js.map +1 -1
- package/bundles/ng-nest-ui-progress.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-radio.umd.js +11 -5
- package/bundles/ng-nest-ui-radio.umd.js.map +1 -1
- package/bundles/ng-nest-ui-radio.umd.min.js +1 -1
- package/bundles/ng-nest-ui-radio.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-rate.umd.js +10 -4
- package/bundles/ng-nest-ui-rate.umd.js.map +1 -1
- package/bundles/ng-nest-ui-rate.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-result.umd.js +18 -5
- package/bundles/ng-nest-ui-result.umd.js.map +1 -1
- package/bundles/ng-nest-ui-result.umd.min.js +1 -1
- package/bundles/ng-nest-ui-result.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-ripple.umd.js +11 -5
- package/bundles/ng-nest-ui-ripple.umd.js.map +1 -1
- package/bundles/ng-nest-ui-ripple.umd.min.js +2 -2
- package/bundles/ng-nest-ui-ripple.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-select.umd.js +12 -6
- package/bundles/ng-nest-ui-select.umd.js.map +1 -1
- package/bundles/ng-nest-ui-select.umd.min.js +1 -1
- package/bundles/ng-nest-ui-select.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-skeleton.umd.js +11 -5
- package/bundles/ng-nest-ui-skeleton.umd.js.map +1 -1
- package/bundles/ng-nest-ui-skeleton.umd.min.js +1 -1
- package/bundles/ng-nest-ui-skeleton.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-slider-select.umd.js +10 -4
- package/bundles/ng-nest-ui-slider-select.umd.js.map +1 -1
- package/bundles/ng-nest-ui-slider-select.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-slider.umd.js +10 -4
- package/bundles/ng-nest-ui-slider.umd.js.map +1 -1
- package/bundles/ng-nest-ui-slider.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-statistic.umd.js +10 -4
- package/bundles/ng-nest-ui-statistic.umd.js.map +1 -1
- package/bundles/ng-nest-ui-statistic.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-steps.umd.js +10 -4
- package/bundles/ng-nest-ui-steps.umd.js.map +1 -1
- package/bundles/ng-nest-ui-steps.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-switch.umd.js +10 -4
- package/bundles/ng-nest-ui-switch.umd.js.map +1 -1
- package/bundles/ng-nest-ui-switch.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-table.umd.js +78 -26
- package/bundles/ng-nest-ui-table.umd.js.map +1 -1
- package/bundles/ng-nest-ui-table.umd.min.js +2 -2
- package/bundles/ng-nest-ui-table.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-tabs.umd.js +12 -6
- package/bundles/ng-nest-ui-tabs.umd.js.map +1 -1
- package/bundles/ng-nest-ui-tabs.umd.min.js +1 -1
- package/bundles/ng-nest-ui-tabs.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-tag.umd.js +10 -4
- package/bundles/ng-nest-ui-tag.umd.js.map +1 -1
- package/bundles/ng-nest-ui-tag.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-text-retract.umd.js +10 -4
- package/bundles/ng-nest-ui-text-retract.umd.js.map +1 -1
- package/bundles/ng-nest-ui-text-retract.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-textarea.umd.js +10 -4
- package/bundles/ng-nest-ui-textarea.umd.js.map +1 -1
- package/bundles/ng-nest-ui-textarea.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-theme.umd.js +10 -4
- package/bundles/ng-nest-ui-theme.umd.js.map +1 -1
- package/bundles/ng-nest-ui-theme.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-time-ago.umd.js +2 -0
- package/bundles/ng-nest-ui-time-ago.umd.js.map +1 -1
- package/bundles/ng-nest-ui-time-ago.umd.min.js +1 -1
- package/bundles/ng-nest-ui-time-ago.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-time-picker.umd.js +10 -4
- package/bundles/ng-nest-ui-time-picker.umd.js.map +1 -1
- package/bundles/ng-nest-ui-time-picker.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-time-range.umd.js +10 -4
- package/bundles/ng-nest-ui-time-range.umd.js.map +1 -1
- package/bundles/ng-nest-ui-time-range.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-timeline.umd.js +10 -4
- package/bundles/ng-nest-ui-timeline.umd.js.map +1 -1
- package/bundles/ng-nest-ui-timeline.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-tooltip.umd.js +10 -4
- package/bundles/ng-nest-ui-tooltip.umd.js.map +1 -1
- package/bundles/ng-nest-ui-tooltip.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-transfer.umd.js +14 -7
- package/bundles/ng-nest-ui-transfer.umd.js.map +1 -1
- package/bundles/ng-nest-ui-transfer.umd.min.js +1 -1
- package/bundles/ng-nest-ui-transfer.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-tree-file.umd.js +27 -5
- package/bundles/ng-nest-ui-tree-file.umd.js.map +1 -1
- package/bundles/ng-nest-ui-tree-file.umd.min.js +1 -1
- package/bundles/ng-nest-ui-tree-file.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-tree.umd.js +27 -14
- package/bundles/ng-nest-ui-tree.umd.js.map +1 -1
- package/bundles/ng-nest-ui-tree.umd.min.js +1 -1
- package/bundles/ng-nest-ui-tree.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-typography.umd.js +11 -6
- package/bundles/ng-nest-ui-typography.umd.js.map +1 -1
- package/bundles/ng-nest-ui-typography.umd.min.js +1 -1
- package/bundles/ng-nest-ui-typography.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-upload.umd.js +10 -4
- package/bundles/ng-nest-ui-upload.umd.js.map +1 -1
- package/bundles/ng-nest-ui-upload.umd.min.js.map +1 -1
- package/button/button.property.d.ts +14 -14
- package/button/buttons.component.d.ts +2 -2
- package/button/ng-nest-ui-button.metadata.json +1 -1
- package/calendar/calendar.property.d.ts +1 -1
- package/card/card.property.d.ts +1 -1
- package/carousel/carousel.property.d.ts +7 -7
- package/cascade/cascade.property.d.ts +1 -1
- package/checkbox/checkbox.component.d.ts +1 -0
- package/checkbox/checkbox.property.d.ts +4 -4
- package/checkbox/ng-nest-ui-checkbox.metadata.json +1 -1
- package/collapse/collapse.property.d.ts +3 -3
- package/color/color.property.d.ts +2 -2
- package/color-picker/color-picker.property.d.ts +1 -1
- package/comment/comment.component.d.ts +1 -0
- package/comment/comment.property.d.ts +1 -1
- package/comment/ng-nest-ui-comment.metadata.json +1 -1
- package/container/aside.component.d.ts +1 -1
- package/container/container.property.d.ts +3 -3
- package/container/header.component.d.ts +1 -1
- package/core/config/config.d.ts +7 -0
- package/core/ng-nest-ui-core.metadata.json +1 -1
- package/core/util/html.d.ts +4 -0
- package/core/util/public-api.d.ts +1 -0
- package/core/util/resize.d.ts +1 -1
- package/crumb/crumb.property.d.ts +2 -2
- package/date-picker/date-picker.property.d.ts +8 -8
- package/date-picker/ng-nest-ui-date-picker.metadata.json +1 -1
- package/date-picker/picker-date.component.d.ts +3 -2
- package/dialog/dialog.property.d.ts +16 -6
- package/dialog/ng-nest-ui-dialog.metadata.json +1 -1
- package/drawer/drawer.property.d.ts +3 -3
- package/dropdown/dropdown.property.d.ts +4 -4
- package/esm2015/affix/affix.property.js +1 -1
- package/esm2015/alert/alert.component.js +5 -4
- package/esm2015/alert/alert.module.js +3 -2
- package/esm2015/alert/alert.property.js +8 -1
- package/esm2015/anchor/anchor.component.js +1 -1
- package/esm2015/anchor/anchor.property.js +1 -1
- package/esm2015/auto-complete/auto-complete-portal.component.js +1 -1
- package/esm2015/auto-complete/auto-complete.component.js +6 -5
- package/esm2015/auto-complete/auto-complete.property.js +1 -1
- package/esm2015/avatar/avatar.property.js +1 -1
- package/esm2015/back-top/back-top.component.js +1 -1
- package/esm2015/back-top/back-top.property.js +1 -1
- package/esm2015/badge/badge.property.js +1 -1
- package/esm2015/base-form/base-form.component.js +1 -1
- package/esm2015/base-form/base-form.property.js +1 -1
- package/esm2015/border/border.component.js +2 -2
- package/esm2015/button/button.property.js +1 -1
- package/esm2015/button/buttons.component.js +1 -1
- package/esm2015/calendar/calendar.component.js +7 -3
- package/esm2015/calendar/calendar.property.js +1 -1
- package/esm2015/card/card.property.js +1 -1
- package/esm2015/carousel/carousel-panel.component.js +1 -1
- package/esm2015/carousel/carousel.component.js +1 -1
- package/esm2015/carousel/carousel.property.js +1 -1
- package/esm2015/cascade/cascade-portal.component.js +1 -1
- package/esm2015/cascade/cascade.component.js +1 -1
- package/esm2015/cascade/cascade.property.js +1 -1
- package/esm2015/checkbox/checkbox.component.js +7 -6
- package/esm2015/checkbox/checkbox.property.js +1 -1
- package/esm2015/collapse/collapse-panel.component.js +1 -1
- package/esm2015/collapse/collapse.property.js +1 -1
- package/esm2015/color/color.component.js +1 -1
- package/esm2015/color/color.property.js +1 -1
- package/esm2015/color-picker/color-picker-portal.component.js +1 -1
- package/esm2015/color-picker/color-picker.component.js +1 -1
- package/esm2015/color-picker/color-picker.property.js +1 -1
- package/esm2015/comment/comment-reply.component.js +1 -1
- package/esm2015/comment/comment.component.js +6 -2
- package/esm2015/comment/comment.property.js +2 -2
- package/esm2015/container/container.property.js +1 -1
- package/esm2015/core/config/config.js +1 -1
- package/esm2015/core/config/config.service.js +1 -1
- package/esm2015/core/theme/theme.service.js +1 -1
- package/esm2015/core/util/html.js +11 -0
- package/esm2015/core/util/public-api.js +2 -1
- package/esm2015/core/util/resize.js +2 -2
- package/esm2015/crumb/crumb.property.js +1 -1
- package/esm2015/date-picker/date-picker-portal.component.js +1 -1
- package/esm2015/date-picker/date-picker.component.js +1 -1
- package/esm2015/date-picker/date-picker.property.js +1 -1
- package/esm2015/date-picker/picker-date.component.js +6 -3
- package/esm2015/date-picker/picker-month.component.js +2 -2
- package/esm2015/date-picker/picker-year.component.js +1 -1
- package/esm2015/dialog/dialog.component.js +3 -3
- package/esm2015/dialog/dialog.module.js +3 -1
- package/esm2015/dialog/dialog.property.js +8 -2
- package/esm2015/drawer/drawer.component.js +1 -1
- package/esm2015/drawer/drawer.property.js +1 -1
- package/esm2015/dropdown/dropdown-portal.component.js +1 -1
- package/esm2015/dropdown/dropdown.component.js +1 -1
- package/esm2015/dropdown/dropdown.property.js +1 -1
- package/esm2015/find/find.component.js +43 -4
- package/esm2015/find/find.module.js +3 -1
- package/esm2015/find/find.property.js +19 -2
- package/esm2015/form/control.component.js +7 -7
- package/esm2015/form/form.component.js +2 -2
- package/esm2015/form/form.property.js +1 -1
- package/esm2015/highlight/highlight.component.js +1 -1
- package/esm2015/highlight/highlight.property.js +1 -1
- package/esm2015/i18n/i18n.directive.js +1 -1
- package/esm2015/i18n/i18n.service.js +1 -1
- package/esm2015/i18n/ng-nest-ui-i18n.js +1 -2
- package/esm2015/i18n/public-api.js +2 -1
- package/esm2015/icon/icon.component.js +1 -1
- package/esm2015/icon/icon.property.js +1 -1
- package/esm2015/inner/inner.property.js +1 -1
- package/esm2015/input/input.component.js +1 -1
- package/esm2015/input/input.property.js +1 -1
- package/esm2015/input-number/input-number.component.js +1 -1
- package/esm2015/layout/layout.property.js +1 -1
- package/esm2015/link/link.property.js +1 -1
- package/esm2015/list/list.component.js +1 -1
- package/esm2015/list/list.property.js +1 -1
- package/esm2015/loading/loading.component.js +1 -1
- package/esm2015/loading/loading.property.js +1 -1
- package/esm2015/menu/menu-node.component.js +8 -6
- package/esm2015/menu/menu.component.js +2 -2
- package/esm2015/menu/menu.property.js +2 -2
- package/esm2015/message-box/message-box.component.js +20 -7
- package/esm2015/message-box/message-box.property.js +1 -1
- package/esm2015/outlet/outlet.directive.js +1 -1
- package/esm2015/page-header/page-header.property.js +1 -1
- package/esm2015/pagination/pagination.component.js +1 -1
- package/esm2015/pagination/pagination.property.js +1 -1
- package/esm2015/popconfirm/popconfirm.component.js +2 -2
- package/esm2015/popconfirm/popconfirm.property.js +1 -1
- package/esm2015/popover/popover-portal.component.js +1 -1
- package/esm2015/popover/popover.directive.js +1 -1
- package/esm2015/popover/popover.property.js +1 -1
- package/esm2015/progress/progress.component.js +1 -1
- package/esm2015/progress/progress.property.js +1 -1
- package/esm2015/radio/radio.component.js +2 -2
- package/esm2015/radio/radio.property.js +1 -1
- package/esm2015/rate/rate.component.js +1 -1
- package/esm2015/rate/rate.property.js +2 -2
- package/esm2015/result/result.component.js +5 -2
- package/esm2015/result/result.property.js +1 -1
- package/esm2015/ripple/ripple.directive.js +2 -2
- package/esm2015/ripple/ripple.property.js +1 -1
- package/esm2015/select/select-portal.component.js +1 -1
- package/esm2015/select/select.component.js +4 -4
- package/esm2015/select/select.property.js +1 -1
- package/esm2015/skeleton/skeleton.component.js +2 -2
- package/esm2015/skeleton/skeleton.property.js +1 -1
- package/esm2015/slider/slider.component.js +1 -1
- package/esm2015/slider/slider.property.js +1 -1
- package/esm2015/slider-select/slider-select.component.js +1 -1
- package/esm2015/slider-select/slider-select.property.js +1 -1
- package/esm2015/statistic/countdown.component.js +1 -1
- package/esm2015/statistic/statistic.property.js +1 -1
- package/esm2015/steps/steps.property.js +1 -1
- package/esm2015/switch/switch.component.js +1 -1
- package/esm2015/table/table-body.component.js +19 -9
- package/esm2015/table/table-foot.component.js +7 -7
- package/esm2015/table/table-head.component.js +13 -9
- package/esm2015/table/table.component.js +10 -3
- package/esm2015/table/table.property.js +8 -3
- package/esm2015/tabs/tab-content.component.js +1 -1
- package/esm2015/tabs/tab.component.js +1 -1
- package/esm2015/tabs/tabs.component.js +3 -3
- package/esm2015/tabs/tabs.property.js +1 -1
- package/esm2015/tag/tag.property.js +1 -1
- package/esm2015/text-retract/text-retract.component.js +1 -1
- package/esm2015/text-retract/text-retract.property.js +1 -1
- package/esm2015/textarea/textarea.component.js +1 -1
- package/esm2015/textarea/textarea.property.js +1 -1
- package/esm2015/theme/theme.property.js +1 -1
- package/esm2015/time-ago/time-ago.pipe.js +3 -1
- package/esm2015/time-picker/time-picker-frame.component.js +1 -1
- package/esm2015/time-picker/time-picker-portal.component.js +1 -1
- package/esm2015/time-picker/time-picker.component.js +2 -2
- package/esm2015/time-picker/time-picker.property.js +1 -1
- package/esm2015/timeline/timeline.property.js +1 -1
- package/esm2015/tooltip/tooltip-portal.component.js +1 -1
- package/esm2015/tooltip/tooltip.directive.js +1 -1
- package/esm2015/tooltip/tooltip.property.js +1 -1
- package/esm2015/transfer/transfer.component.js +5 -4
- package/esm2015/transfer/transfer.property.js +1 -1
- package/esm2015/tree/tree-node.component.js +10 -7
- package/esm2015/tree/tree.component.js +2 -2
- package/esm2015/tree/tree.property.js +3 -2
- package/esm2015/tree-file/tree-file.component.js +10 -2
- package/esm2015/tree-file/tree-file.property.js +1 -1
- package/esm2015/typography/typography.component.js +2 -3
- package/esm2015/typography/typography.property.js +1 -1
- package/esm2015/upload/upload-portal.component.js +1 -1
- package/esm2015/upload/upload.component.js +1 -1
- package/esm2015/upload/upload.property.js +1 -1
- package/fesm2015/ng-nest-ui-affix.js.map +1 -1
- package/fesm2015/ng-nest-ui-alert.js +14 -5
- package/fesm2015/ng-nest-ui-alert.js.map +1 -1
- package/fesm2015/ng-nest-ui-anchor.js.map +1 -1
- package/fesm2015/ng-nest-ui-auto-complete.js +5 -4
- package/fesm2015/ng-nest-ui-auto-complete.js.map +1 -1
- package/fesm2015/ng-nest-ui-avatar.js.map +1 -1
- package/fesm2015/ng-nest-ui-back-top.js.map +1 -1
- package/fesm2015/ng-nest-ui-badge.js.map +1 -1
- package/fesm2015/ng-nest-ui-base-form.js.map +1 -1
- package/fesm2015/ng-nest-ui-border.js +1 -1
- package/fesm2015/ng-nest-ui-border.js.map +1 -1
- package/fesm2015/ng-nest-ui-button.js +1 -1
- package/fesm2015/ng-nest-ui-button.js.map +1 -1
- package/fesm2015/ng-nest-ui-calendar.js +6 -2
- package/fesm2015/ng-nest-ui-calendar.js.map +1 -1
- package/fesm2015/ng-nest-ui-card.js.map +1 -1
- package/fesm2015/ng-nest-ui-carousel.js.map +1 -1
- package/fesm2015/ng-nest-ui-cascade.js.map +1 -1
- package/fesm2015/ng-nest-ui-checkbox.js +6 -5
- package/fesm2015/ng-nest-ui-checkbox.js.map +1 -1
- package/fesm2015/ng-nest-ui-collapse.js.map +1 -1
- package/fesm2015/ng-nest-ui-color-picker.js.map +1 -1
- package/fesm2015/ng-nest-ui-color.js.map +1 -1
- package/fesm2015/ng-nest-ui-comment.js +6 -2
- package/fesm2015/ng-nest-ui-comment.js.map +1 -1
- package/fesm2015/ng-nest-ui-container.js.map +1 -1
- package/fesm2015/ng-nest-ui-core.js +13 -2
- package/fesm2015/ng-nest-ui-core.js.map +1 -1
- package/fesm2015/ng-nest-ui-crumb.js.map +1 -1
- package/fesm2015/ng-nest-ui-date-picker.js +6 -3
- package/fesm2015/ng-nest-ui-date-picker.js.map +1 -1
- package/fesm2015/ng-nest-ui-dialog.js +12 -4
- package/fesm2015/ng-nest-ui-dialog.js.map +1 -1
- package/fesm2015/ng-nest-ui-drawer.js.map +1 -1
- package/fesm2015/ng-nest-ui-dropdown.js.map +1 -1
- package/fesm2015/ng-nest-ui-find.js +62 -4
- package/fesm2015/ng-nest-ui-find.js.map +1 -1
- package/fesm2015/ng-nest-ui-form.js +7 -6
- package/fesm2015/ng-nest-ui-form.js.map +1 -1
- package/fesm2015/ng-nest-ui-highlight.js.map +1 -1
- package/fesm2015/ng-nest-ui-i18n.js +1 -1
- package/fesm2015/ng-nest-ui-i18n.js.map +1 -1
- package/fesm2015/ng-nest-ui-icon.js.map +1 -1
- package/fesm2015/ng-nest-ui-inner.js.map +1 -1
- package/fesm2015/ng-nest-ui-input-number.js.map +1 -1
- package/fesm2015/ng-nest-ui-input.js.map +1 -1
- package/fesm2015/ng-nest-ui-layout.js.map +1 -1
- package/fesm2015/ng-nest-ui-link.js.map +1 -1
- package/fesm2015/ng-nest-ui-list.js.map +1 -1
- package/fesm2015/ng-nest-ui-loading.js.map +1 -1
- package/fesm2015/ng-nest-ui-menu.js +10 -7
- package/fesm2015/ng-nest-ui-menu.js.map +1 -1
- package/fesm2015/ng-nest-ui-message-box.js +19 -6
- package/fesm2015/ng-nest-ui-message-box.js.map +1 -1
- package/fesm2015/ng-nest-ui-outlet.js.map +1 -1
- package/fesm2015/ng-nest-ui-page-header.js.map +1 -1
- package/fesm2015/ng-nest-ui-pagination.js.map +1 -1
- package/fesm2015/ng-nest-ui-popconfirm.js +1 -1
- package/fesm2015/ng-nest-ui-popconfirm.js.map +1 -1
- package/fesm2015/ng-nest-ui-popover.js.map +1 -1
- package/fesm2015/ng-nest-ui-progress.js.map +1 -1
- package/fesm2015/ng-nest-ui-radio.js +1 -1
- package/fesm2015/ng-nest-ui-radio.js.map +1 -1
- package/fesm2015/ng-nest-ui-rate.js.map +1 -1
- package/fesm2015/ng-nest-ui-result.js +4 -1
- package/fesm2015/ng-nest-ui-result.js.map +1 -1
- package/fesm2015/ng-nest-ui-ripple.js +1 -1
- package/fesm2015/ng-nest-ui-ripple.js.map +1 -1
- package/fesm2015/ng-nest-ui-select.js +3 -3
- package/fesm2015/ng-nest-ui-select.js.map +1 -1
- package/fesm2015/ng-nest-ui-skeleton.js +1 -1
- package/fesm2015/ng-nest-ui-skeleton.js.map +1 -1
- package/fesm2015/ng-nest-ui-slider-select.js.map +1 -1
- package/fesm2015/ng-nest-ui-slider.js.map +1 -1
- package/fesm2015/ng-nest-ui-statistic.js.map +1 -1
- package/fesm2015/ng-nest-ui-steps.js.map +1 -1
- package/fesm2015/ng-nest-ui-switch.js.map +1 -1
- package/fesm2015/ng-nest-ui-table.js +50 -21
- package/fesm2015/ng-nest-ui-table.js.map +1 -1
- package/fesm2015/ng-nest-ui-tabs.js +2 -2
- package/fesm2015/ng-nest-ui-tabs.js.map +1 -1
- package/fesm2015/ng-nest-ui-tag.js.map +1 -1
- package/fesm2015/ng-nest-ui-text-retract.js.map +1 -1
- package/fesm2015/ng-nest-ui-textarea.js.map +1 -1
- package/fesm2015/ng-nest-ui-theme.js.map +1 -1
- package/fesm2015/ng-nest-ui-time-ago.js +2 -0
- package/fesm2015/ng-nest-ui-time-ago.js.map +1 -1
- package/fesm2015/ng-nest-ui-time-picker.js.map +1 -1
- package/fesm2015/ng-nest-ui-timeline.js.map +1 -1
- package/fesm2015/ng-nest-ui-tooltip.js.map +1 -1
- package/fesm2015/ng-nest-ui-transfer.js +4 -3
- package/fesm2015/ng-nest-ui-transfer.js.map +1 -1
- package/fesm2015/ng-nest-ui-tree-file.js +9 -1
- package/fesm2015/ng-nest-ui-tree-file.js.map +1 -1
- package/fesm2015/ng-nest-ui-tree.js +12 -7
- package/fesm2015/ng-nest-ui-tree.js.map +1 -1
- package/fesm2015/ng-nest-ui-typography.js +1 -2
- package/fesm2015/ng-nest-ui-typography.js.map +1 -1
- package/fesm2015/ng-nest-ui-upload.js.map +1 -1
- package/find/find.component.d.ts +3 -0
- package/find/find.property.d.ts +53 -9
- package/find/ng-nest-ui-find.metadata.json +1 -1
- package/form/control.component.d.ts +2 -3
- package/form/form.property.d.ts +5 -5
- package/form/ng-nest-ui-form.metadata.json +1 -1
- package/highlight/highlight.property.d.ts +2 -2
- package/i18n/ng-nest-ui-i18n.d.ts +0 -1
- package/i18n/ng-nest-ui-i18n.metadata.json +1 -1
- package/i18n/public-api.d.ts +1 -0
- package/icon/icon.component.d.ts +2 -2
- package/icon/icon.property.d.ts +6 -6
- package/inner/inner.property.d.ts +1 -1
- package/input/input.property.d.ts +4 -4
- package/layout/layout.property.d.ts +11 -11
- package/link/link.property.d.ts +3 -3
- package/list/list.property.d.ts +8 -8
- package/list/ng-nest-ui-list.metadata.json +1 -1
- package/loading/loading.property.d.ts +6 -6
- package/menu/menu-node.component.d.ts +2 -3
- package/menu/menu.property.d.ts +6 -6
- package/menu/ng-nest-ui-menu.metadata.json +1 -1
- package/message-box/message-box.component.d.ts +3 -0
- package/message-box/message-box.property.d.ts +4 -3
- package/message-box/ng-nest-ui-message-box.metadata.json +1 -1
- package/outlet/outlet.directive.d.ts +1 -1
- package/package.json +1 -1
- package/page-header/page-header.property.d.ts +4 -4
- package/pagination/pagination.property.d.ts +2 -2
- package/popconfirm/ng-nest-ui-popconfirm.metadata.json +1 -1
- package/popconfirm/popconfirm.component.d.ts +2 -2
- package/popconfirm/popconfirm.property.d.ts +7 -7
- package/popover/popover.property.d.ts +4 -4
- package/progress/progress.property.d.ts +2 -2
- package/radio/ng-nest-ui-radio.metadata.json +1 -1
- package/radio/radio.property.d.ts +3 -3
- package/rate/rate.property.d.ts +3 -2
- package/result/ng-nest-ui-result.metadata.json +1 -1
- package/result/result.component.d.ts +1 -0
- package/result/result.property.d.ts +3 -3
- package/ripple/ripple.property.d.ts +2 -2
- package/select/ng-nest-ui-select.metadata.json +1 -1
- package/select/select.property.d.ts +5 -5
- package/skeleton/ng-nest-ui-skeleton.metadata.json +1 -1
- package/skeleton/skeleton.property.d.ts +2 -2
- package/slider/slider.property.d.ts +6 -6
- package/slider-select/slider-select.property.d.ts +1 -1
- package/statistic/statistic.property.d.ts +1 -1
- package/steps/steps.property.d.ts +1 -1
- package/style/core/index.scss +1 -1
- package/style/directives/index.scss +2 -0
- package/style/directives/ripple/index.scss +6 -0
- package/style/directives/ripple/mixin.scss +37 -0
- package/style/directives/ripple/param.scss +3 -0
- package/table/ng-nest-ui-table.metadata.json +1 -1
- package/table/table-body.component.d.ts +6 -4
- package/table/table-foot.component.d.ts +2 -3
- package/table/table-head.component.d.ts +3 -3
- package/table/table.component.d.ts +1 -0
- package/table/table.property.d.ts +22 -12
- package/tabs/ng-nest-ui-tabs.metadata.json +1 -1
- package/tabs/tabs.property.d.ts +5 -5
- package/tag/tag.property.d.ts +3 -3
- package/text-retract/text-retract.property.d.ts +2 -2
- package/textarea/textarea.property.d.ts +2 -2
- package/theme/theme.property.d.ts +2 -2
- package/time-ago/time-ago.pipe.d.ts +1 -1
- package/time-picker/time-picker.property.d.ts +2 -2
- package/timeline/timeline.property.d.ts +5 -5
- package/tooltip/tooltip.property.d.ts +4 -4
- package/transfer/transfer.component.d.ts +1 -1
- package/transfer/transfer.property.d.ts +4 -4
- package/tree/ng-nest-ui-tree.metadata.json +1 -1
- package/tree/tree-node.component.d.ts +3 -3
- package/tree/tree.property.d.ts +12 -13
- package/tree-file/ng-nest-ui-tree-file.metadata.json +1 -1
- package/tree-file/tree-file.component.d.ts +3 -0
- package/tree-file/tree-file.property.d.ts +2 -2
- package/typography/typography.property.d.ts +1 -1
- package/upload/upload.property.d.ts +5 -5
- package/style/core/directive.scss +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../lib/ng-nest/ui/core/util/animation.ts","../../../../lib/ng-nest/ui/core/animation/consts.ts","../../../../lib/ng-nest/ui/core/animation/fade.ts","../../../../lib/ng-nest/ui/core/animation/slide.ts","../../../../lib/ng-nest/ui/core/animation/drop.ts","../../../../lib/ng-nest/ui/core/animation/move.ts","../../../../lib/ng-nest/ui/core/animation/connect.ts","../../../../lib/ng-nest/ui/core/interfaces/data.type.ts","../../../../lib/ng-nest/ui/core/interfaces/identify.type.ts","../../../../lib/ng-nest/ui/core/functions/convert.ts","../../../../lib/ng-nest/ui/core/functions/date.ts","../../../../lib/ng-nest/ui/core/functions/property.ts","../../../../lib/ng-nest/ui/core/services/reuse-strategy.service.ts","../../../../lib/ng-nest/ui/core/services/preloading-strategy.service.ts","../../../../lib/ng-nest/ui/core/services/http.service.ts","../../../../lib/ng-nest/ui/core/services/storage.service.ts","../../../../lib/ng-nest/ui/core/services/repository.service.ts","../../../../lib/ng-nest/ui/core/config/config.ts","../../../../lib/ng-nest/ui/core/theme/theme.ts","../../../../lib/ng-nest/ui/core/theme/theme.service.ts","../../../../lib/ng-nest/ui/core/config/config.service.ts","../../../../lib/ng-nest/ui/core/util/resize.ts","../../../../lib/ng-nest/ui/core/util/chunk.ts","../../../../lib/ng-nest/ui/core/util/computed-style.ts","../../../../lib/ng-nest/ui/core/util/option.ts","../../../../lib/ng-nest/ui/core/util/group-by.ts","../../../../lib/ng-nest/ui/core/util/guid.ts","../../../../lib/ng-nest/ui/core/util/host.ts","../../../../lib/ng-nest/ui/core/util/log.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","create","__values","o","s","Symbol","iterator","m","i","length","next","value","done","TypeError","__read","n","r","e","ar","push","error","availablePrefixes","XDuration","reqAnimFrame","window","requestAnimationFrame","bind","lastTime","prefix","filter","key","callback","currTime","Date","getTime","timeToCall","Math","max","id","setTimeout","getRequestAnimationFrame","XDURATION_BASE_EASE_IN","Fast","XDURATION_BASE_EASE_OUT","XFadeAnimation","trigger","transition","style","opacity","transform","animate","XSlideAnimation","Base","XSliderAnimation","width","XDropAnimation","state","height","border","padding","visibility","XMoveAnimation","XMoveBoxAnimation","XConnectAnimation","XConnectBaseAnimation","XIsType","type","object","toString","XIsString","XIsArray","XIsNumber","XIsBoolean","XIsObject","XIsNull","XIsFunction","XIsDate","XIsRegExp","XIsValue","XIsUndefined","XIsEmpty","XIsObservable","isObservable","XIsTemplateRef","elementRef","XToBoolean","coerceBooleanProperty","XToNumber","fallbackValue","_isNumberValue","Number","XToDataConvert","map","x","label","propDecoratorFactory","name","fallback","target","propName","originalDescriptor","privatePropName","console","warn","defineProperty","configurable","writable","get","this","set","XToDate","date","parse","classMap","XReuseStrategyService","shouldDetach","route","store","handle","waitDelete","getRouteUrl","indexOf","add","shouldAttach","_this","storages","find","retrieve","routeConfig","stroage","shouldReuseRoute","future","curr","JSON","stringify","params","url","path","join","deleteRouteSnapshot","id_1","replace","splice","findIndex","arguments","concat","__spread","XPreloadingStrategyService","preloadedModules","preload","load","data","of","Injectable","XHttpService","http","api","request","post","put","delete","method","option","opt","toUpperCase","body","observe","responseType","assign","addHeader","Observable","subscribe","y","complete","handleError","throwError","args","providedIn","HttpClient","XStorageService","getLocal","localStorage","getItem","setLocal","setItem","getSession","sessionStorage","setSession","removeLocal","removeItem","removeSession","guid","S4","random","substring","XRepositoryService","input","_super","String","__","constructor","__extends","getList","index","size","query","controller","entity","XRepositoryAbstract","X_CONFIG","InjectionToken","X_THEME","X_THEME_PREFIX","X_THEME_MERGE","X_THEME_BLACK_MERGE","X_THEME_AMOUNTS","X_THEME_BACKGROUNDS","X_THEME_TEXTS","X_THEME_BORDERS","X_THEME_EXCHANGES","X_THEME_COLORS","primary","success","warning","danger","info","text","background","X_THEME_DARK_COLORS","X_THEME_COLOR_KEYS","keys","XThemeService","doc","factory","colorsProp","renderer2","createRenderer","declaration","getComputedStyle","documentElement","setInitialTheme","theme","setColors","colors","setTheme","getTheme","includesAll","getColors","getColorsTheme","setRoot","createColorsStyle","includes","result","forEach","getPropertyValue","trim","getColorsInProperty","color","X_THEME_AMOUNTS_1","X_THEME_AMOUNTS_1_1","amount","getSuffix","toHex","mixColors","abs","setDarkRoot","allColors","allColors_1","getDefineColors","darken","colorsFunc","nums","nums_1","nums_1_1","num","exchange","colorsStyleEle","removeChild","parentNode","styles","entries","createElement","innerHTML","addClass","getElementsByTagName","appendChild","color1","color2","weight","rgb1","toRgb","rgb2","weight1","weight2","inRange","round","g","rgb","slice","hex","parseInt","Inject","DOCUMENT","RendererFactory2","isDefined","undefined","XConfigService","themeService","defaultConfig","componentConfigUpdated$","Subject","config","getConfigForComponent","componentName","_a","components","getConfigChangeEventForComponent","pipe","mapTo","setDarkTheme","setLightTheme","decorators","Optional","dt","isNaN","valueOf","setDate","getDate","setHours","getHours","setMinutes","getMinutes","setMonth","getMonth","setSeconds","getSeconds","setFullYear","getFullYear","min","classMaps","_i","XGetChildren","nodes","node","level","children","pid","leaf","obj","reduce","nw","Map","changes","changes_1","changes_1_1","change","currentValue","previousValue","element","resizeObserver","ResizeObserver","entries_1","entries_1_1","entry","element_1","element_1_1","ele","unSubject","toConvert","funcParam","res","takeUntil","innerDefaultValue","enumerable","originalValue","configValue","configService","array","len","resIndex","ceil","def","groups","group","nativeElement","parentElement","insertBefore","firstChild"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","// tslint:disable:no-any typedef no-invalid-this\r\nconst availablePrefixes = ['moz', 'ms', 'webkit'];\r\n\r\nfunction requestAnimationFramePolyfill(): typeof requestAnimationFrame {\r\n let lastTime = 0;\r\n return function (callback: FrameRequestCallback): any {\r\n const currTime = new Date().getTime();\r\n const timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n const id = setTimeout(() => {\r\n callback(currTime + timeToCall);\r\n }, timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n}\r\n\r\nfunction getRequestAnimationFrame(): typeof requestAnimationFrame {\r\n if (typeof window === 'undefined') {\r\n return () => 0;\r\n }\r\n if (window.requestAnimationFrame) {\r\n return window.requestAnimationFrame.bind(window);\r\n }\r\n\r\n const prefix = availablePrefixes.filter((key) => `${key}RequestAnimationFrame` in window)[0];\r\n\r\n return prefix ? (window as any)[`${prefix}RequestAnimationFrame`] : requestAnimationFramePolyfill();\r\n}\r\n// export function cancelRequestAnimationFrame(id: number): any {\r\n// if (typeof window === \"undefined\") {\r\n// return null;\r\n// }\r\n// if (window.cancelAnimationFrame) {\r\n// return window.cancelAnimationFrame(id);\r\n// }\r\n// const prefix = availablePrefixes.filter(\r\n// key =>\r\n// `${key}CancelAnimationFrame` in window ||\r\n// `${key}CancelRequestAnimationFrame` in window\r\n// )[0];\r\n\r\n// return prefix\r\n// ? (\r\n// (window as any)[`${prefix}CancelAnimationFrame`] ||\r\n// (window as any)[`${prefix}CancelRequestAnimationFrame`]\r\n// )\r\n// // @ts-ignore\r\n// .call(this, id)\r\n// : clearTimeout(id);\r\n// }\r\n\r\nexport const reqAnimFrame = getRequestAnimationFrame();\r\n","export enum XDuration {\r\n Slow = '0.3s',\r\n Base = '0.2s',\r\n Fast = '0.1s'\r\n}\r\n","import { AnimationTriggerMetadata, trigger, state, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\n// 进场动画\r\nconst XDURATION_BASE_EASE_IN = `${XDuration.Fast} ease-in`;\r\n// 移除动画\r\nconst XDURATION_BASE_EASE_OUT = `${XDuration.Fast} ease-out`;\r\n\r\nexport const XFadeAnimation: AnimationTriggerMetadata = trigger('x-fade-animation', [\r\n transition(':enter', [\r\n style({ opacity: 0, transform: 'scale(0.8)' }),\r\n animate(`${XDURATION_BASE_EASE_IN}`, style({ opacity: 1, transform: 'scale(1)' }))\r\n ]),\r\n transition(':leave', [animate(`${XDURATION_BASE_EASE_OUT}`, style({ opacity: 0 }))])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\nexport const XSlideAnimation: AnimationTriggerMetadata = trigger('x-slide-animation', [\r\n transition('void => right', [style({ transform: 'translate(100%,0)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('right => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(100%,0)' }))]),\r\n transition('void => left', [style({ transform: 'translate(-100%,0)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('left => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(-100%,0)' }))]),\r\n transition('void => top', [style({ transform: 'translate(0,-100%)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('top => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(0,-100%)' }))]),\r\n transition('void => bottom', [style({ transform: 'translate(0,100%)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('bottom => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(0,100%)' }))])\r\n]);\r\n\r\nexport const XSliderAnimation: AnimationTriggerMetadata = trigger('x-slider-animation', [\r\n transition('void => left, void => right', [\r\n style({\r\n width: 0,\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n width: '*',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void, right => void', [\r\n style({\r\n width: '*',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n width: 0,\r\n opacity: 0\r\n })\r\n )\r\n ])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, state, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\nexport const XDropAnimation: AnimationTriggerMetadata = trigger('x-drop-animation', [\r\n state('*', style({ opacity: 0, height: 0, border: 0, padding: 0, visibility: 'hidden' })),\r\n state('false', style({ opacity: 0, height: 0, border: 0, padding: 0, visibility: 'hidden' })),\r\n state('true', style({ opacity: 1, height: '*', border: '*', padding: '*', visibility: 'inherit' })),\r\n transition('* => *', animate(`${XDuration.Base} ease-out`))\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\nexport const XMoveAnimation: AnimationTriggerMetadata = trigger('x-move-animation', [\r\n transition('void => top-start, void => top, void => top-end, void => center', [\r\n style({\r\n transform: 'translateY(-100%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('top-start => void, top => void, top-end => void, center => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(-100%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => left', [\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => right', [\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('right => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => bottom-start, void => bottom, void => bottom-end', [\r\n style({\r\n transform: 'translateY(100%)',\r\n opacity: 0,\r\n height: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1,\r\n height: '*'\r\n })\r\n )\r\n ]),\r\n transition('bottom-start => void, bottom => void, bottom-end => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(100%)',\r\n opacity: 0\r\n })\r\n )\r\n ])\r\n]);\r\n\r\nexport const XMoveBoxAnimation: AnimationTriggerMetadata = trigger('x-move-box-animation', [\r\n transition('void => top-start, void => top, void => top-end, void => center', [\r\n style({\r\n transform: 'translateY(-2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('top-start => void, top => void, top-end => void, center => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(-2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ]),\r\n transition('void => left', [\r\n style({\r\n transform: 'translateX(-2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(-2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ]),\r\n transition('void => right', [\r\n style({\r\n transform: 'translateX(2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('right => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ]),\r\n transition('void => bottom-start, void => bottom, void => bottom-end', [\r\n style({\r\n transform: 'translateY(2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('bottom-start => void, bottom => void, bottom-end => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\n// 进场动画\r\nconst XDURATION_BASE_EASE_IN = `${XDuration.Fast} ease-in`;\r\n// 移除动画\r\nconst XDURATION_BASE_EASE_OUT = `${XDuration.Fast} ease-out`;\r\n\r\nexport const XConnectAnimation: AnimationTriggerMetadata = trigger('x-connect-animation', [\r\n transition('void => top-start, void => top, void => top-end, void => center', [\r\n style({\r\n opacity: 0\r\n // transform: 'scaleY(0.8)',\r\n // transformOrigin: '0% 100%'\r\n }),\r\n animate(\r\n XDURATION_BASE_EASE_IN,\r\n style({\r\n opacity: 1\r\n // transform: 'scaleY(1)',\r\n // transformOrigin: '0% 100%'\r\n })\r\n )\r\n ]),\r\n transition('top-start => void, top => void, top-end => void, center => void', [\r\n style({\r\n opacity: 1\r\n // transform: 'scaleY(1)',\r\n // transformOrigin: '0% 100%'\r\n }),\r\n animate(\r\n XDURATION_BASE_EASE_OUT,\r\n style({\r\n opacity: 0\r\n // transform: 'scaleY(0.8)',\r\n // transformOrigin: '0% 100%'\r\n })\r\n )\r\n ]),\r\n transition('void => left', [\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => right', [\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('right => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => bottom-start, void => bottom, void => bottom-end', [\r\n style({\r\n opacity: 0\r\n // transform: 'scale(0)',\r\n // transformOrigin: '0% 0%'\r\n }),\r\n animate(\r\n XDURATION_BASE_EASE_IN,\r\n style({\r\n opacity: 1\r\n // transform: 'scale(1)',\r\n // transformOrigin: '30% 30%'\r\n })\r\n )\r\n ]),\r\n transition('bottom-start => void, bottom => void, bottom-end => void', [\r\n style({\r\n opacity: 1\r\n // transform: 'scale(1)',\r\n // transformOrigin: '30% 30%'\r\n }),\r\n animate(\r\n XDURATION_BASE_EASE_OUT,\r\n style({\r\n opacity: 0\r\n // transform: 'scale(0)',\r\n // transformOrigin: '0% 0%'\r\n })\r\n )\r\n ])\r\n]);\r\n\r\nexport const XConnectBaseAnimation: AnimationTriggerMetadata = trigger('x-connect-base-animation', [\r\n transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate(XDURATION_BASE_EASE_IN)]),\r\n transition(':leave', [animate(XDURATION_BASE_EASE_OUT, style({ opacity: 0 }))])\r\n]);\r\n","import { Observable, isObservable } from 'rxjs';\r\nimport { TemplateRef, SimpleChange } from '@angular/core';\r\n\r\n// 数据类型\r\nexport type XData<T> = T[] | Observable<T[] | any[]> | any[] | Function;\r\n\r\n// Boolean 类型\r\nexport type XBoolean = boolean | string;\r\n\r\n// Number 类型\r\nexport type XNumber = number | string;\r\n\r\n// 模板类型\r\nexport type XTemplate = string | number | Date | TemplateRef<any>;\r\n\r\n// 类型判断\r\nexport const XIsType = (type: string) => (object: any) => Object.prototype.toString.call(object) === `[object ${type}]`;\r\n\r\n// 值改变判断\r\nexport const XIsChange = (...changes: SimpleChange[]) => {\r\n for (let change of changes) {\r\n if (change?.currentValue !== change?.previousValue) return true;\r\n }\r\n return false;\r\n};\r\n\r\nexport const XIsString = XIsType('String');\r\nexport const XIsArray = XIsType('Array');\r\nexport const XIsNumber = XIsType('Number');\r\nexport const XIsBoolean = XIsType('Boolean');\r\nexport const XIsObject = XIsType('Object');\r\nexport const XIsNull = XIsType('Null');\r\nexport const XIsFunction = XIsType('Function');\r\nexport const XIsDate = XIsType('Date');\r\nexport const XIsRegExp = XIsType('RegExp');\r\nexport const XIsValue = (object: any) => XIsString(object) || XIsNumber(object) || XIsBoolean(object) || XIsDate(object);\r\nexport const XIsUndefined = (object: any) => typeof object === 'undefined';\r\nexport const XIsEmpty = (object: any) => typeof object === 'undefined' || object === null || object === '' || object.length === 0;\r\nexport const XIsValueArray = (object: any) => XIsArray(object) && object.length > 0 && !XIsObject(object[0]);\r\nexport const XIsObjectArray = (object: any) => XIsArray(object) && object.length > 0 && XIsObject(object[0]);\r\nexport const XIsObservable = (object: any) => isObservable(object);\r\nexport const XIsTemplateRef = (object: any) => {\r\n if (!XIsEmpty(object) && object.elementRef) return true;\r\n else return false;\r\n};\r\nexport const XIsXTemplate = (object: any) => XIsString(object) || XIsNumber(object) || XIsDate(object) || XIsTemplateRef(object);\r\n","// 标识对象\r\nexport interface XIdentityProperty {\r\n // 编码\r\n id?: any;\r\n // 标题\r\n label?: any;\r\n}\r\n\r\n// 父节点标识对象\r\nexport interface XParentIdentityProperty<T> extends XIdentityProperty {\r\n // 编码\r\n pid?: any;\r\n // 层级\r\n level?: number;\r\n // 叶子节点\r\n leaf?: boolean;\r\n // 子节点\r\n children?: T[];\r\n // 选中\r\n selected?: boolean;\r\n // 禁用\r\n disabled?: boolean;\r\n}\r\n\r\n// 标识对象\r\nexport class XIdentity {\r\n // 编码\r\n id?: any;\r\n // 标题\r\n label?: any;\r\n}\r\n","import { coerceBooleanProperty, _isNumberValue } from '@angular/cdk/coercion';\r\nimport {\r\n XData,\r\n XIsNull,\r\n XIsUndefined,\r\n XIsArray,\r\n XIsValue,\r\n XIsObject,\r\n XIsObservable,\r\n XParentIdentityProperty,\r\n XBoolean,\r\n XClassMap,\r\n XIsFunction\r\n} from '../interfaces';\r\nimport { Observable, Subject, Observer } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\nexport function XToBoolean(value: XBoolean): boolean {\r\n // if (XIsString(value)) {\r\n // return ['', 'true'].indexOf(String(value).trim()) !== -1;\r\n // } else {\r\n // return Boolean(value);\r\n // }\r\n return coerceBooleanProperty(value);\r\n}\r\n\r\nfunction XToNumber(value: number | string): number;\r\nfunction XToNumber<D>(value: number | string, fallback: D): number | D;\r\nfunction XToNumber(value: number | string, fallbackValue: number = 0): number {\r\n return _isNumberValue(value) ? Number(value) : fallbackValue;\r\n}\r\n\r\nexport function XToDataConvert<T>(value: XData<T>): XData<T> {\r\n if (XIsArray(value)) {\r\n return (value as []).map((x: any) => {\r\n if (XIsValue(x)) {\r\n return { label: x, id: x };\r\n } else if (XIsObject(x)) {\r\n x.label = XIsUndefined(x.label) || XIsNull(x.label) ? x.id : x.label;\r\n x.id = XIsUndefined(x.id) || XIsNull(x.id) ? x.label : x.id;\r\n return x;\r\n }\r\n });\r\n }\r\n return value;\r\n}\r\n\r\nexport function XSetData<T>(data: XData<T>, unSubject: Subject<void>, toConvert = true, funcParam = null): Observable<T[]> {\r\n return new Observable((x: Observer<T[]>) => {\r\n const result = (res: T[]) => {\r\n x.next(res);\r\n x.complete();\r\n };\r\n if (typeof data === 'undefined') {\r\n result([]);\r\n } else {\r\n if (XIsObservable(data)) {\r\n (data as Observable<T[]>)\r\n .pipe(\r\n map((y) => (toConvert ? XToDataConvert(y) : y)),\r\n takeUntil(unSubject)\r\n )\r\n .subscribe((y) => {\r\n result(y as T[]);\r\n });\r\n } else if (XIsFunction(data)) {\r\n (data as (param: any) => Observable<T[]>)(funcParam)\r\n .pipe(\r\n map((y) => (toConvert ? XToDataConvert(y) : y)),\r\n takeUntil(unSubject)\r\n )\r\n .subscribe((y) => {\r\n result(y as T[]);\r\n });\r\n } else {\r\n result((toConvert ? XToDataConvert(data) : data) as T[]);\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport function XGetChildren<T extends XParentIdentityProperty<T>>(nodes: T[], node: T, level: number) {\r\n node.level = level;\r\n node.children = nodes.filter((y) => y.pid === node.id);\r\n node.leaf = node.children?.length > 0;\r\n if (node.leaf) node.children.map((y) => XGetChildren(nodes, y, level + 1));\r\n return node;\r\n}\r\n\r\nexport function XInvertKeyValues(obj: any): Map<any, any> {\r\n return Object.keys(obj).reduce((nw, key) => {\r\n nw.set(obj[key], key);\r\n return nw;\r\n }, new Map());\r\n}\r\n\r\nexport function XClearClass(...classMaps: XClassMap[]) {\r\n classMaps.forEach((classMap) => {\r\n for (const key in classMap) {\r\n classMap[key] = false;\r\n }\r\n });\r\n}\r\n\r\nfunction propDecoratorFactory<T, D>(name: string, fallback: (v: T) => D): (target: any, propName: string) => void {\r\n function propDecorator(target: any, propName: string, originalDescriptor?: TypedPropertyDescriptor<any>): any {\r\n const privatePropName = `$$__${propName}`;\r\n\r\n if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {\r\n console.warn(`The prop \"${privatePropName}\" is already exist, it will be overrided by ${name} decorator.`);\r\n }\r\n\r\n Object.defineProperty(target, privatePropName, {\r\n configurable: true,\r\n writable: true\r\n });\r\n\r\n return {\r\n get(): string {\r\n return originalDescriptor && originalDescriptor.get ? originalDescriptor.get.bind(this)() : this[privatePropName];\r\n },\r\n set(value: T): void {\r\n if (originalDescriptor && originalDescriptor.set) {\r\n originalDescriptor.set.bind(this)(fallback(value));\r\n }\r\n this[privatePropName] = fallback(value);\r\n }\r\n };\r\n }\r\n\r\n return propDecorator;\r\n}\r\n\r\nexport function XInputBoolean(): any {\r\n return propDecoratorFactory('XInputBoolean', XToBoolean);\r\n}\r\n\r\nexport function XInputNumber(): any {\r\n return propDecoratorFactory('XInputNumber', XToNumber);\r\n}\r\n\r\nexport function XDataConvert(): any {\r\n return propDecoratorFactory('XDataConvert', XToDataConvert);\r\n}\r\n\r\nexport function XClamp(value: number, min: number, max: number) {\r\n return Math.max(min, Math.min(max, value));\r\n}\r\n","import { XIsDate, XIsNumber } from '../interfaces';\r\n\r\nexport type XDate = string | Date | number;\r\n\r\nexport function XToDate(date: XDate): Date {\r\n if (XIsDate(date) || XIsNumber(date)) {\r\n return new Date(date);\r\n } else {\r\n return new Date(Date.parse(date as string));\r\n }\r\n}\r\n\r\nexport function XAddSeconds(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setSeconds(dt.getSeconds() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddMinutes(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setMinutes(dt.getMinutes() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddHours(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setHours(dt.getHours() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddDays(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setDate(dt.getDate() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddMonths(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setMonth(dt.getMonth() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddYears(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setFullYear(dt.getFullYear() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n","import { XClassMap } from '../interfaces';\r\n\r\n/**\r\n * 组件公共属性\r\n */\r\nexport class XProperty {\r\n /**\r\n * 样式映射属性\r\n */\r\n classMap: XClassMap = {};\r\n}\r\n","import { RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';\r\n\r\nexport interface XRouteReuseStorage {\r\n id: string;\r\n handle: DetachedRouteHandle;\r\n}\r\n\r\n// @dynamic\r\nexport class XReuseStrategyService implements RouteReuseStrategy {\r\n // 存储的复用路由\r\n public static storages: XRouteReuseStorage[] = [];\r\n // 用一个临时变量记录待删除的路由\r\n private static waitDelete: string | null;\r\n\r\n /**\r\n * 表示对所有路由允许复用 如果你有路由不想利用可以在这加一些业务逻辑判断\r\n */\r\n public shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n return true;\r\n }\r\n\r\n /**\r\n * 当路由离开时会触发。按path作为key存储路由快照&组件当前实例对象\r\n */\r\n public store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\r\n if (handle == null) return;\r\n if (XReuseStrategyService.waitDelete && this.getRouteUrl(route).indexOf(XReuseStrategyService.waitDelete) == 0) {\r\n //如果待删除是当前路由则不存储快照\r\n XReuseStrategyService.waitDelete = null;\r\n return;\r\n }\r\n this.add(this.getRouteUrl(route), handle);\r\n }\r\n\r\n /**\r\n * 若 path 在缓存中有的都认为允许还原路由\r\n */\r\n public shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n return !!XReuseStrategyService.storages.find((x) => x.id == this.getRouteUrl(route));\r\n }\r\n\r\n /**\r\n * 从缓存中获取快照,若无则返回nul\r\n */\r\n public retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle {\r\n if (!route.routeConfig) {\r\n return {};\r\n }\r\n let stroage = XReuseStrategyService.storages.find((x) => x.id == this.getRouteUrl(route));\r\n return stroage ? stroage.handle : {};\r\n }\r\n\r\n /**\r\n * 进入路由触发,判断是否同一路由\r\n * 解决不同的参数也会认为是同一个路由,导致会将之前的路由拿出来复用\r\n */\r\n public shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\r\n return future.routeConfig === curr.routeConfig && JSON.stringify(future.params) == JSON.stringify(curr.params);\r\n }\r\n\r\n /**\r\n * 解决不同的主路由会存在相同名称的子路由\r\n */\r\n private getRouteUrl(route: ActivatedRouteSnapshot) {\r\n let url = route.url.map((x) => x.path).join('_');\r\n return url;\r\n }\r\n\r\n /**\r\n * 删除复用的路由\r\n */\r\n public static deleteRouteSnapshot(name?: string): void {\r\n if (name) {\r\n let id = name.replace(/\\//g, '_');\r\n XReuseStrategyService.storages.splice(\r\n XReuseStrategyService.storages.findIndex((x) => x.id.indexOf(id) === 0),\r\n 1\r\n );\r\n XReuseStrategyService.waitDelete = id;\r\n } else {\r\n XReuseStrategyService.storages = [];\r\n }\r\n }\r\n\r\n private add(id: string, handle: DetachedRouteHandle) {\r\n XReuseStrategyService.storages.splice(\r\n XReuseStrategyService.storages.findIndex((x) => x.id == id),\r\n 1\r\n );\r\n XReuseStrategyService.storages = [...XReuseStrategyService.storages, { id: id, handle: handle }];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { PreloadingStrategy, Route } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n// @dynamic\r\n@Injectable()\r\nexport class XPreloadingStrategyService implements PreloadingStrategy {\r\n // 需要预加载的模块\r\n preloadedModules: string[] = [];\r\n\r\n preload(route: Route, load: () => Observable<any>): Observable<any> {\r\n if (route.data && route.data.preload) {\r\n this.preloadedModules.push(route.path as string);\r\n return load();\r\n } else {\r\n return of(null);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\n\r\n// @dynamic\r\n@Injectable({ providedIn: 'root' })\r\nexport class XHttpService {\r\n api: string = '';\r\n constructor(public http: HttpClient) {}\r\n\r\n /**\r\n * get请求\r\n */\r\n get(url: string, params?: { [property: string]: any }) {\r\n return this.request('GET', url, params);\r\n }\r\n\r\n /**\r\n * get请求\r\n */\r\n post(url: string, params?: { [property: string]: any }): Observable<any> {\r\n return this.request('POST', url, params);\r\n }\r\n\r\n /**\r\n * put请求\r\n */\r\n put(url: string, params?: { [property: string]: any }): Observable<any> {\r\n return this.request('PUT', url, params);\r\n }\r\n\r\n /**\r\n * delete请求\r\n */\r\n delete(url: string, params?: { [property: string]: any }): Observable<any> {\r\n return this.request('DELETE', url, params);\r\n }\r\n\r\n /**\r\n * request通用请求\r\n */\r\n request(method: string, url: string, params?: { [property: string]: any }, option?: { [property: string]: any }): Observable<any> {\r\n if (!option) option = {};\r\n let opt = {};\r\n url = `${this.api}${url}`;\r\n method = method.toUpperCase();\r\n if (['POST', 'PUT', 'DELETE'].indexOf(method) > -1) {\r\n opt = { body: params, observe: 'body', responseType: 'json' };\r\n } else if (['GET'].indexOf(method) > -1) {\r\n opt = { params: params };\r\n }\r\n Object.assign(opt, option);\r\n this.addHeader(opt);\r\n return new Observable((x) => {\r\n this.http.request(method, url, opt).subscribe(\r\n (y: any) => {\r\n x.next(y);\r\n x.complete();\r\n },\r\n (y) => {\r\n x.error(y);\r\n x.complete();\r\n this.handleError(y);\r\n }\r\n );\r\n });\r\n }\r\n\r\n /**\r\n * 错误处理\r\n */\r\n handleError(error: HttpErrorResponse) {\r\n if (error.error) {\r\n }\r\n return throwError(error.error);\r\n }\r\n\r\n /**\r\n * 添加头部信息\r\n */\r\n private addHeader(option: { [property: string]: any }) {\r\n // let auth = this.setting.getSession(\"Auth\");\r\n // if (auth && auth[\"token\"]) {\r\n // option[\"headers\"] = { Authorization: `Bearer ${auth[\"token\"]}` };\r\n // }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n// @dynamic\r\n@Injectable({ providedIn: 'root' })\r\nexport class XStorageService {\r\n constructor() {}\r\n\r\n /**\r\n * 获取本地值\r\n */\r\n getLocal(key: string) {\r\n return JSON.parse(localStorage.getItem(key) || 'null') || null;\r\n }\r\n\r\n /**\r\n * 设置本地值\r\n */\r\n setLocal(key: string, value: any) {\r\n localStorage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n /**\r\n * 获取当前会话的值\r\n */\r\n getSession(key: string) {\r\n return JSON.parse(sessionStorage.getItem(key) || 'null') || null;\r\n }\r\n\r\n /**\r\n * 设置当前会话值\r\n */\r\n setSession(key: string, value: any) {\r\n sessionStorage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n /**\r\n * 移除本地值\r\n */\r\n removeLocal(key: string) {\r\n localStorage.removeItem(key);\r\n }\r\n\r\n /**\r\n * 移除当前会话\r\n */\r\n removeSession(key: string) {\r\n sessionStorage.removeItem(key);\r\n }\r\n\r\n /**\r\n * 生成guid\r\n */\r\n guid() {\r\n let S4 = () => {\r\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n };\r\n return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\r\n }\r\n}\r\n","import { XId, XQuery, XResultList } from '../interfaces';\r\nimport { XHttpService } from './http.service';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface XRepositoryInput {\r\n api?: string;\r\n controller: XController;\r\n}\r\n\r\nexport interface XController {\r\n name: string;\r\n}\r\n\r\nexport abstract class XRepositoryAbstract {\r\n abstract getList(index?: number, size?: number, query?: XQuery): Observable<XResultList<any>>;\r\n abstract get(id: number | string): Observable<any>;\r\n abstract post(entity: any): Observable<any>;\r\n abstract put(entity: any): Observable<any>;\r\n abstract delete(id: number | string): Observable<boolean>;\r\n}\r\n\r\nexport class XRepositoryService<Entity extends XId> extends XRepositoryAbstract {\r\n api = '';\r\n constructor(public http: XHttpService, public input: XRepositoryInput) {\r\n super();\r\n this.api = typeof input.api !== 'undefined' ? input.api : '';\r\n }\r\n\r\n getList(index?: number, size?: number, query?: XQuery): Observable<XResultList<Entity>> {\r\n index = index ? index : 1;\r\n size = size ? size : 10;\r\n return this.http.post(`${this.api}${this.input.controller.name}/${size}/${index}`, query);\r\n }\r\n\r\n get(id: number | string): Observable<Entity> {\r\n return this.http.get(`${this.api}${this.input.controller.name}/${id}`);\r\n }\r\n\r\n post(entity: Entity): Observable<Entity> {\r\n return this.http.post(`${this.api}${this.input.controller.name}`, entity);\r\n }\r\n\r\n put(entity: Entity): Observable<Entity> {\r\n return this.http.put(`${this.api}${this.input.controller.name}`, entity);\r\n }\r\n\r\n delete(id: number | string): Observable<boolean> {\r\n return this.http.delete(`${this.api}${this.input.controller.name}/${id}`);\r\n }\r\n}\r\n","import {\r\n XSize,\r\n XBoolean,\r\n XType,\r\n XEffect,\r\n XNumber,\r\n XPositionLeftRight,\r\n XJustify,\r\n XShape,\r\n XFit,\r\n XShadow,\r\n XTrigger,\r\n XDisplayDirection,\r\n XCorner,\r\n XDirection,\r\n XPlace,\r\n XPosition,\r\n XPlacement,\r\n XPositionTopBottom\r\n} from '../interfaces';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { XTheme } from '../theme';\r\n\r\nexport interface XConfig {\r\n components?: XComponentConfig;\r\n theme?: XTheme;\r\n}\r\n\r\nexport type XConfigKey = keyof XConfig;\r\n\r\nexport type XComponentConfigKey = keyof XComponentConfig;\r\n\r\nexport const X_CONFIG = new InjectionToken<XConfig>('x-config');\r\n\r\nexport interface XComponentConfig {\r\n affix?: XAffixConfig;\r\n alert?: XAlertConfig;\r\n anchor?: XAnchorConfig;\r\n avatar?: XAvatarConfig;\r\n autoComplete?: XAutoCompleteConfig;\r\n backTop?: XBackTopConfig;\r\n badge?: XBadgeConfgig;\r\n button?: XButtonConfig;\r\n buttons?: XButtonsConfig;\r\n calendar?: XCalendarConfig;\r\n card?: XCardConfig;\r\n carousel?: XCarouselConfig;\r\n cascade?: XCascadeConfig;\r\n checkbox?: XCheckboxConfig;\r\n collapse?: XCollapseConfig;\r\n color?: XColorConfig;\r\n colorPicker?: XColorPickerConfig;\r\n comment?: XCommentConfig;\r\n container?: XContainerConfig;\r\n header?: XHeaderConfig;\r\n aside?: XAsideConfig;\r\n footer?: XFooterConfig;\r\n crumb?: XCrumbComfig;\r\n datePicker?: XDatePickerConfig;\r\n dialog?: XDialogConfig;\r\n drawer?: XDrawerConfig;\r\n dropdown?: XDropdownConfig;\r\n empty?: XEmptyConfig;\r\n find?: XFindConfig;\r\n form?: XFormConfig;\r\n highlight?: XHighlightConfig;\r\n icon?: XIconConfig;\r\n inner?: XInnerConfig;\r\n input?: XInputConfig;\r\n inputNumber?: XInputNumberConfig;\r\n col?: XColConfig;\r\n row?: XRowConfig;\r\n ripple?: XRippleConfig;\r\n link?: XLinkConfig;\r\n list?: XListConfig;\r\n loading?: XLoadingConfig;\r\n menu?: XMenuConfig;\r\n message?: XMessageConfig;\r\n messageBox?: XMessageBoxConfig;\r\n notification?: XNotificationConfig;\r\n outlet?: XOutletConfig;\r\n pageHeader?: XPageHeaderConfig;\r\n pagination?: XPaginationConfig;\r\n pattern?: XPatternConfig;\r\n popconfirm?: XPopconfirmConfig;\r\n popover?: XPopoverConfig;\r\n portal?: XPortalConfig;\r\n progress?: XProgressConfing;\r\n radio?: XRadioConfig;\r\n rate?: XRateConfig;\r\n result?: XResultConfig;\r\n select?: XSelectConfig;\r\n skeleton?: XSkeletonConfig;\r\n slider?: XSliderConfig;\r\n sliderSelect?: XSliderSelectConfig;\r\n statistic?: XStatisticConfig;\r\n countdown?: XCountdownConfig;\r\n steps?: XStepsConfig;\r\n switch?: XSwitchConfig;\r\n table?: XTableConfig;\r\n tabs?: XTabsConfig;\r\n tag?: XTagConfig;\r\n textRetract?: XTextRetractConfig;\r\n theme?: XThemeConfig;\r\n timeAgo?: XTimeAgoConfig;\r\n timePicker?: XTimePickerConfig;\r\n timeRange?: XTimeRangeConfig;\r\n timeline?: XTimelineConfig;\r\n tooltip?: XTooltipConfig;\r\n transfer?: XTransferConfig;\r\n tree?: XTreeConfig;\r\n treeFile?: XTreeFileConfig;\r\n textarea?: XTextareaConfig;\r\n upload?: XUploadConfig;\r\n}\r\n\r\nexport interface XAffixConfig {\r\n top?: string;\r\n left?: string;\r\n}\r\n\r\nexport interface XAlertConfig {\r\n effect?: XEffect;\r\n hideClose?: XBoolean;\r\n showIcon?: XBoolean;\r\n disabledAnimation?: XBoolean;\r\n duration?: XNumber;\r\n}\r\n\r\nexport interface XAnchorConfig {\r\n affixTop?: string;\r\n affixWidth?: string;\r\n layout?: XPositionLeftRight;\r\n justify?: XJustify;\r\n}\r\n\r\nexport interface XAvatarConfig {\r\n size?: XSize;\r\n shape?: XShape;\r\n fit?: XFit;\r\n}\r\n\r\nexport interface XAutoCompleteConfig {\r\n placement?: XPositionTopBottom;\r\n debounceTime?: number;\r\n}\r\n\r\nexport interface XBackTopConfig {\r\n right?: string;\r\n bottom?: string;\r\n visibilityHeight?: XNumber;\r\n}\r\n\r\nexport interface XBadgeConfgig {\r\n type?: XType;\r\n}\r\n\r\nexport interface XButtonConfig {\r\n size?: XSize;\r\n type?: XType;\r\n plain?: XBoolean;\r\n round?: XBoolean;\r\n circle?: XBoolean;\r\n}\r\n\r\nexport interface XButtonsConfig {\r\n space?: XNumber;\r\n hiddenBorder?: XBoolean;\r\n}\r\n\r\nexport interface XCalendarConfig {}\r\n\r\nexport interface XCardConfig {\r\n shadow?: XShadow;\r\n}\r\n\r\nexport interface XCarouselConfig {\r\n height?: string;\r\n trigger?: XTrigger;\r\n arrow?: XShadow;\r\n direction?: XDisplayDirection;\r\n}\r\n\r\nexport interface XCascadeConfig {\r\n placement?: XCorner;\r\n}\r\n\r\nexport interface XCheckboxConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XCollapseConfig {}\r\n\r\nexport interface XColorConfig {\r\n merge?: string;\r\n amounts?: string;\r\n}\r\n\r\nexport interface XColorPickerConfig {\r\n placement?: XCorner;\r\n}\r\n\r\nexport interface XCommentConfig {\r\n contentMax?: number;\r\n}\r\n\r\nexport interface XContainerConfig {\r\n direction?: XDirection;\r\n}\r\n\r\nexport interface XHeaderConfig {\r\n height?: number;\r\n}\r\n\r\nexport interface XAsideConfig {\r\n width?: number;\r\n}\r\n\r\nexport interface XFooterConfig {\r\n height?: number;\r\n}\r\n\r\nexport interface XCrumbComfig {\r\n separator?: string;\r\n}\r\n\r\nexport interface XDatePickerConfig {\r\n format?: string;\r\n clearable?: XBoolean;\r\n placement?: XCorner;\r\n}\r\n\r\nexport interface XDialogConfig {\r\n placement?: XPlace;\r\n offset?: string;\r\n width?: string;\r\n effect?: XEffect;\r\n showCancel?: XBoolean;\r\n cancelText?: string;\r\n showConfirm?: XBoolean;\r\n confirmText?: string;\r\n backdropClose?: XBoolean;\r\n hasBackdrop?: XBoolean;\r\n className?: string;\r\n buttonsCenter?: XBoolean;\r\n}\r\n\r\nexport interface XDrawerConfig {\r\n placement?: XPosition;\r\n size?: string;\r\n}\r\n\r\nexport interface XDropdownConfig {\r\n trigger?: XTrigger;\r\n placement?: XPlacement;\r\n}\r\n\r\nexport interface XEmptyConfig {\r\n content?: string;\r\n}\r\n\r\nexport interface XFindConfig {\r\n columnLabel?: string;\r\n dialogTitle?: string;\r\n dialogButtonsCenter?: XBoolean;\r\n tableIndex?: number;\r\n tableSize?: number;\r\n tableLoading?: XBoolean;\r\n tableVirtualScroll?: boolean;\r\n tableRowHeight?: XNumber;\r\n treeExpandedLevel?: XNumber;\r\n}\r\n\r\nexport interface XFormConfig {\r\n space?: XNumber;\r\n labelSuffix?: string;\r\n width?: string;\r\n}\r\n\r\nexport interface XHighlightConfig {}\r\n\r\nexport interface XIconConfig {\r\n href?: string;\r\n}\r\n\r\nexport interface XInnerConfig {\r\n padding?: string;\r\n}\r\n\r\nexport interface XInputConfig {\r\n clearable?: XBoolean;\r\n iconLayout?: XPositionLeftRight;\r\n}\r\n\r\nexport interface XInputNumberConfig {}\r\n\r\nexport interface XColConfig {}\r\n\r\nexport interface XRowConfig {}\r\n\r\nexport interface XRippleConfig {\r\n type?: XType;\r\n}\r\n\r\nexport interface XLinkConfig {\r\n underline?: XBoolean;\r\n iconRight?: XBoolean;\r\n}\r\n\r\nexport interface XListConfig {}\r\n\r\nexport interface XLoadingConfig {\r\n size?: XSize;\r\n text?: string;\r\n icon?: string;\r\n color?: string;\r\n background?: string;\r\n}\r\n\r\nexport interface XMenuConfig {\r\n size?: XSize;\r\n trigger?: XTrigger;\r\n}\r\n\r\nexport interface XMessageConfig {}\r\n\r\nexport interface XMessageBoxConfig {}\r\n\r\nexport interface XNotificationConfig {}\r\n\r\nexport interface XOutletConfig {}\r\n\r\nexport interface XPageHeaderConfig {\r\n backIcon?: string;\r\n backText?: string;\r\n}\r\n\r\nexport interface XPaginationConfig {\r\n index?: XNumber;\r\n size?: XNumber;\r\n}\r\n\r\nexport interface XPatternConfig {}\r\n\r\nexport interface XPopconfirmConfig {\r\n placement?: XPlacement;\r\n trigger?: XTrigger;\r\n width?: string;\r\n icon?: string;\r\n iconColor?: string;\r\n cancelText?: string;\r\n confirmText?: string;\r\n}\r\n\r\nexport interface XPopoverConfig {\r\n placement?: XPlacement;\r\n trigger?: XTrigger;\r\n width?: string;\r\n}\r\n\r\nexport interface XPortalConfig {}\r\n\r\nexport interface XProgressConfing {\r\n height?: string;\r\n}\r\n\r\nexport interface XRadioConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XRateConfig {}\r\n\r\nexport interface XResultConfig {}\r\n\r\nexport interface XSelectConfig {\r\n placement?: XPositionTopBottom;\r\n clearable?: XBoolean;\r\n}\r\n\r\nexport interface XSkeletonConfig {}\r\n\r\nexport interface XSliderConfig {\r\n animated?: XBoolean;\r\n size?: XSize;\r\n}\r\n\r\nexport interface XSliderSelectConfig {}\r\n\r\nexport interface XStatisticConfig {}\r\n\r\nexport interface XCountdownConfig {\r\n format?: string;\r\n}\r\n\r\nexport interface XStepsConfig {}\r\n\r\nexport interface XSwitchConfig {}\r\n\r\nexport interface XTableConfig {\r\n index?: number;\r\n size?: number;\r\n loading?: XBoolean;\r\n virtualScroll?: boolean;\r\n rowHeight?: XNumber;\r\n itemSize?: XNumber;\r\n bordered?: XNumber;\r\n allowSelectRow?: XBoolean;\r\n}\r\n\r\nexport interface XTabsConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XTagConfig {\r\n size?: XSize;\r\n closable?: XBoolean;\r\n dark?: XBoolean;\r\n}\r\n\r\nexport interface XTextRetractConfig {\r\n max?: XNumber;\r\n}\r\n\r\nexport interface XThemeConfig {\r\n amounts?: XNumber[];\r\n}\r\n\r\nexport interface XTimeAgoConfig {}\r\n\r\nexport interface XTimePickerConfig {\r\n format?: string;\r\n placement?: XCorner;\r\n}\r\n\r\nexport interface XTimeRangeConfig {}\r\n\r\nexport interface XTimelineConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XTooltipConfig {\r\n placement?: XPlacement;\r\n}\r\n\r\nexport interface XTransferConfig {\r\n titles?: string[];\r\n drag?: XBoolean;\r\n}\r\n\r\nexport interface XTreeConfig {\r\n spacing?: XNumber;\r\n nodeHeight?: XNumber;\r\n}\r\n\r\nexport interface XTextareaConfig {\r\n clearable?: XBoolean;\r\n iconLayout?: XPositionLeftRight;\r\n}\r\n\r\nexport interface XTreeFileConfig {\r\n maxHeight?: XNumber;\r\n spacing?: XNumber;\r\n}\r\n\r\nexport interface XUploadConfig {}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface XTheme {\r\n colors?: XColorsTheme;\r\n}\r\n\r\nexport interface XColorsTheme {\r\n primary?: string;\r\n success?: string;\r\n warning?: string;\r\n danger?: string;\r\n info?: string;\r\n text?: string;\r\n border?: string;\r\n background?: string;\r\n [property: string]: any;\r\n}\r\n\r\nexport type XThemeKey = keyof XTheme;\r\n\r\nexport type XColors = 'primary' | 'success' | 'warning' | 'danger' | 'info';\r\n\r\nexport const X_THEME = new InjectionToken<XTheme>('x-theme');\r\n\r\nexport const X_THEME_PREFIX = '--x-';\r\n\r\nexport const X_THEME_MERGE = '#ffffff';\r\n\r\nexport const X_THEME_BLACK_MERGE = '#cccccc';\r\n\r\nexport const X_THEME_AMOUNTS = [0, -0.1, -0.2, -0.3, -0.4, -0.5, -0.6, -0.7, -0.8, -0.9, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9];\r\n\r\nexport const X_THEME_BACKGROUNDS = [-0.2, -0.3, -0.4];\r\n\r\nexport const X_THEME_TEXTS = [\r\n [-0.5, 0],\r\n [-0.6, 0.2],\r\n [-0.7, 0.4]\r\n];\r\n\r\nexport const X_THEME_BORDERS = [\r\n [-0.8, 0],\r\n [-0.9, 0.2]\r\n];\r\n\r\nexport const X_THEME_EXCHANGES = [\r\n [-0.1, -0.1],\r\n [0.1, -0.1],\r\n [0.2, 0.2],\r\n [0.3, 0],\r\n [0.4, -0.4],\r\n [0.5, -0.2],\r\n [0.6, 0],\r\n [0.7, -0.4],\r\n [0.8, -0.4],\r\n [0.9, -0.2]\r\n];\r\n\r\nexport const X_THEME_COLORS: XColorsTheme = {\r\n primary: '#1976d2',\r\n success: '#67c23a',\r\n warning: '#e6a23c',\r\n danger: '#f56c6c',\r\n info: '#909399',\r\n text: '#333333',\r\n border: '#dddddd',\r\n background: '#ffffff'\r\n};\r\n\r\nexport const X_THEME_DARK_COLORS: XColorsTheme = {\r\n text: '#dddddd',\r\n border: '#424242',\r\n background: '#1e1e1f'\r\n};\r\n\r\nexport const X_THEME_COLOR_KEYS = Object.keys(X_THEME_COLORS);\r\n","import { Injectable, Inject, RendererFactory2, Renderer2 } from '@angular/core';\r\nimport {\r\n XTheme,\r\n XColorsTheme,\r\n X_THEME_COLORS,\r\n X_THEME_COLOR_KEYS,\r\n X_THEME_PREFIX,\r\n X_THEME_AMOUNTS,\r\n X_THEME_MERGE,\r\n X_THEME_BLACK_MERGE,\r\n X_THEME_EXCHANGES,\r\n X_THEME_BACKGROUNDS,\r\n X_THEME_TEXTS,\r\n X_THEME_BORDERS\r\n} from './theme';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class XThemeService {\r\n private colorsProp: XColorsTheme = {};\r\n private colorsStyleEle: HTMLStyleElement;\r\n private renderer2: Renderer2;\r\n private declaration: CSSStyleDeclaration;\r\n\r\n constructor(@Inject(DOCUMENT) private doc: any, private factory: RendererFactory2) {\r\n this.renderer2 = this.factory.createRenderer(null, null);\r\n this.declaration = getComputedStyle(this.doc.documentElement);\r\n }\r\n\r\n setInitialTheme(theme?: XTheme) {\r\n this.setColors(theme?.colors);\r\n if (theme?.colors) Object.assign(X_THEME_COLORS, theme.colors);\r\n }\r\n\r\n setTheme(theme?: XTheme) {\r\n this.setColors(theme?.colors);\r\n }\r\n\r\n getTheme(includesAll = false): XTheme {\r\n return {\r\n colors: this.getColors(includesAll)\r\n };\r\n }\r\n\r\n setColors(colors?: XColorsTheme) {\r\n colors = this.getColorsTheme(colors);\r\n for (let key in colors) {\r\n Object.assign(this.colorsProp, this.setRoot(key, colors[key]));\r\n }\r\n this.createColorsStyle();\r\n }\r\n\r\n getColors(includes = false, prefix = X_THEME_PREFIX): XColorsTheme {\r\n let result: XColorsTheme = {};\r\n const keys = includes ? Object.keys(this.colorsProp) : X_THEME_COLOR_KEYS.map((x) => `${prefix}${x}`);\r\n keys.forEach((x) => {\r\n result[x.replace(prefix, '')] = this.declaration.getPropertyValue(`${x}`).trim();\r\n });\r\n\r\n return result;\r\n }\r\n\r\n getColorsInProperty(colors?: XColorsTheme, prefix = X_THEME_PREFIX): XColorsTheme {\r\n let result: XColorsTheme = {};\r\n Object.keys(colors as XColorsTheme).forEach((x) => {\r\n result[x] = this.declaration.getPropertyValue(`${prefix}${x}`).trim();\r\n });\r\n\r\n return result;\r\n }\r\n\r\n getColorsTheme(colors?: XColorsTheme) {\r\n if (typeof colors === 'undefined') colors = X_THEME_COLORS;\r\n else colors = Object.assign({}, X_THEME_COLORS, colors);\r\n return colors;\r\n }\r\n\r\n setRoot(color: string, value: string, prefix = X_THEME_PREFIX) {\r\n let result: XColorsTheme = {};\r\n if (X_THEME_COLOR_KEYS.includes(color)) {\r\n for (let amount of X_THEME_AMOUNTS) {\r\n if (amount === 0) {\r\n result[`${prefix}${color}`] = value;\r\n } else {\r\n result[`${prefix}${color}${this.getSuffix(amount)}`] = toHex(\r\n mixColors(amount > 0 ? X_THEME_MERGE : X_THEME_BLACK_MERGE, value, Math.abs(amount))\r\n );\r\n }\r\n }\r\n } else {\r\n result[`${prefix}${color}`] = value;\r\n }\r\n return result;\r\n }\r\n\r\n setDarkRoot(color: string, value: string, prefix = X_THEME_PREFIX) {\r\n let result: XColorsTheme = {};\r\n const allColors = this.setRoot(color, value, '');\r\n if (X_THEME_COLOR_KEYS.includes(color) && !['background'].includes(color)) {\r\n const allColors = this.setRoot(color, value, prefix);\r\n X_THEME_EXCHANGES.forEach((x) => {\r\n if (x[1] >= -0.1) {\r\n const curr = this.getSuffix(x[0]);\r\n const next = this.getSuffix(x[1]);\r\n result[`${prefix}${color}${curr}`] = allColors[`${prefix}${color}${next}`];\r\n }\r\n });\r\n } else if (['background'].includes(color)) {\r\n result = this.getDefineColors(Object.assign({}, this.getColorsInProperty(X_THEME_COLORS), allColors), '', true);\r\n }\r\n return result;\r\n }\r\n\r\n getDefineColors(colors?: XColorsTheme, prefix = X_THEME_PREFIX, darken = false): XColorsTheme {\r\n let result: XColorsTheme = {};\r\n colors = this.getColorsTheme(colors);\r\n for (let key in colors) {\r\n Object.assign(result, this.setRoot(key, colors[key], prefix));\r\n }\r\n if (darken) {\r\n const colorsFunc = (nums: number[] | number[][], callback: Function) => {\r\n for (let num of nums) {\r\n for (let color in colors) {\r\n if (X_THEME_COLOR_KEYS.includes(color) && !['background'].includes(color)) {\r\n callback(num, color);\r\n }\r\n }\r\n }\r\n };\r\n colorsFunc(X_THEME_BACKGROUNDS, (background: number, color: string) => {\r\n const theme = this.getSuffix(background);\r\n result[`${prefix}${color}${theme}`] = result[`${prefix}background${theme.replace('a', '')}`];\r\n });\r\n colorsFunc(X_THEME_TEXTS, (text: number[], color: string) => {\r\n const curr = this.getSuffix(text[0]);\r\n const next = this.getSuffix(text[1]);\r\n result[`${prefix}${color}${curr}`] = result[`${prefix}text${next}`];\r\n });\r\n colorsFunc(X_THEME_BORDERS, (border: number[], color: string) => {\r\n const curr = this.getSuffix(border[0]);\r\n const next = this.getSuffix(border[1]);\r\n result[`${prefix}${color}${curr}`] = result[`${prefix}border${next}`];\r\n });\r\n colorsFunc(X_THEME_EXCHANGES, (exchange: number[], color: string) => {\r\n const curr = this.getSuffix(exchange[0]);\r\n const next = this.getSuffix(exchange[1]);\r\n result[`${prefix}${color}${curr}`] = result[`${prefix}${color}${next}`];\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n getSuffix(num: number): string {\r\n if (num > 0) {\r\n return `-${Math.abs(num * 1000)}`;\r\n } else if (num < 0) {\r\n return `-a${Math.abs(num * 1000)}`;\r\n }\r\n return '';\r\n }\r\n\r\n createColorsStyle() {\r\n if (this.colorsStyleEle) this.renderer2.removeChild(this.colorsStyleEle.parentNode, this.colorsStyleEle);\r\n const styles = Object.entries(this.colorsProp)\r\n .map((x) => `${x[0]}: ${x[1]};`)\r\n .join('');\r\n this.colorsStyleEle = this.renderer2.createElement('style');\r\n this.colorsStyleEle.innerHTML = `.x-theme-colors{${styles}}`;\r\n this.renderer2.addClass(this.doc.documentElement, 'x-theme-colors');\r\n this.doc.documentElement.getElementsByTagName('head')[0].appendChild(this.colorsStyleEle);\r\n }\r\n}\r\n\r\nexport function mixColors(color1: string, color2: string, weight: number) {\r\n let rgb1 = toRgb(color1);\r\n let rgb2 = toRgb(color2);\r\n let weight1 = weight;\r\n let weight2 = 1 - weight;\r\n let result: { r: number; g: number; b: number };\r\n\r\n const inRange = (num: number) => {\r\n return num > 255 ? 255 : num < 0 ? 0 : num;\r\n };\r\n\r\n result = {\r\n r: inRange(Math.round(rgb1.r * weight1 + rgb2.r * weight2)),\r\n g: inRange(Math.round(rgb1.g * weight1 + rgb2.g * weight2)),\r\n b: inRange(Math.round(rgb1.b * weight1 + rgb2.b * weight2))\r\n };\r\n\r\n return result;\r\n}\r\n\r\nexport function toHex(rgb: { r: number; g: number; b: number }) {\r\n return '#' + ((1 << 24) + (rgb.r << 16) + (rgb.g << 8) + rgb.b).toString(16).slice(1);\r\n}\r\n\r\nexport function toRgb(hex: string) {\r\n if (hex.indexOf('#') == 0) hex = hex.slice(1);\r\n let num = parseInt(hex, 16);\r\n let r = num >> 16;\r\n if (r > 255) r = 255;\r\n else if (r < 0) r = 0;\r\n let g = (num >> 8) & 0x00ff;\r\n if (g > 255) g = 255;\r\n else if (g < 0) g = 0;\r\n let b = num & 0x0000ff;\r\n if (b > 255) b = 255;\r\n else if (b < 0) b = 0;\r\n\r\n return { r: r, g: g, b: b };\r\n}\r\n","// tslint:disable no-any\r\n\r\nimport { Injectable, Optional, Inject } from '@angular/core';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { XConfig, X_CONFIG, XComponentConfigKey, XComponentConfig } from './config';\r\nimport { XThemeService, XTheme, X_THEME_COLORS, X_THEME_DARK_COLORS } from '../theme';\r\nimport { filter, mapTo } from 'rxjs/operators';\r\n\r\nconst isDefined = function (value?: any): boolean {\r\n return value !== undefined;\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class XConfigService {\r\n private componentConfigUpdated$ = new Subject<keyof XComponentConfig>();\r\n private config: XConfig;\r\n public themeService: XThemeService;\r\n\r\n constructor(@Optional() themeService?: XThemeService, @Optional() @Inject(X_CONFIG) defaultConfig?: XConfig) {\r\n this.config = defaultConfig || {};\r\n if (themeService) {\r\n this.themeService = themeService;\r\n }\r\n this.setInitialTheme(this.config.theme);\r\n }\r\n\r\n getConfigForComponent<T extends XComponentConfigKey>(componentName: T): XComponentConfig[T] {\r\n return this.config?.components ? this.config.components[componentName] : undefined;\r\n }\r\n\r\n getConfigChangeEventForComponent(componentName: XComponentConfigKey): Observable<void> {\r\n return this.componentConfigUpdated$.pipe(\r\n filter((n) => n === componentName),\r\n mapTo(undefined)\r\n );\r\n }\r\n\r\n set<T extends XComponentConfigKey>(componentName: T, value: XComponentConfig[T]): void {\r\n if (this.config?.components) {\r\n this.config.components[componentName] = { ...this.config.components[componentName], ...value };\r\n this.componentConfigUpdated$.next(componentName);\r\n }\r\n }\r\n\r\n setDarkTheme(theme?: XTheme) {\r\n let colors = theme?.colors;\r\n if (!colors) colors = X_THEME_DARK_COLORS;\r\n this.setTheme({\r\n colors: this.themeService.getDefineColors(Object.assign({}, this.themeService.getColorsInProperty(X_THEME_COLORS), colors), '', true)\r\n });\r\n }\r\n\r\n setLightTheme(theme?: XTheme) {\r\n let colors = theme?.colors;\r\n if (!colors) colors = X_THEME_COLORS;\r\n this.setTheme({\r\n colors: this.themeService.getDefineColors(Object.assign({}, this.themeService.getColorsInProperty(X_THEME_COLORS), colors), '', false)\r\n });\r\n }\r\n\r\n setTheme(theme?: XTheme) {\r\n this.themeService.setTheme(theme);\r\n }\r\n\r\n setInitialTheme(theme?: XTheme) {\r\n this.themeService.setInitialTheme(theme);\r\n }\r\n\r\n getTheme(includesAll = false): XTheme {\r\n return this.themeService.getTheme(includesAll);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:typedef\r\nexport function XWithConfig<T>(componentName: XComponentConfigKey, innerDefaultValue?: T) {\r\n return function ConfigDecorator(target: any, propName: any, originalDescriptor?: TypedPropertyDescriptor<T>): any {\r\n const privatePropName = `$$__assignedValue__${propName}`;\r\n\r\n Object.defineProperty(target, privatePropName, {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false\r\n });\r\n\r\n return {\r\n get(): T | undefined {\r\n const originalValue = originalDescriptor && originalDescriptor.get ? originalDescriptor.get.bind(this)() : this[privatePropName];\r\n\r\n if (isDefined(originalValue)) {\r\n return originalValue;\r\n }\r\n\r\n const componentConfig = this.configService?.getConfigForComponent(componentName) || {};\r\n const configValue = componentConfig[propName];\r\n\r\n return isDefined(configValue) ? configValue : innerDefaultValue;\r\n },\r\n set(value?: T): void {\r\n if (originalDescriptor && originalDescriptor.set) {\r\n originalDescriptor.set.bind(this)(value);\r\n } else {\r\n this[privatePropName] = value;\r\n }\r\n },\r\n configurable: true,\r\n enumerable: true\r\n };\r\n };\r\n}\r\n","import ResizeObserver from 'resize-observer-polyfill';\r\nimport { Observable, Subscriber } from 'rxjs';\r\n\r\nexport const XResize = (...element: Element[]): Observable<{ entry: ResizeObserverEntry; resizeObserver: ResizeObserver }> => {\r\n return new Observable(\r\n (\r\n x: Subscriber<{\r\n entry: ResizeObserverEntry;\r\n resizeObserver: ResizeObserver;\r\n }>\r\n ) => {\r\n const resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]) => {\r\n for (const entry of entries) {\r\n x.next({ entry: entry, resizeObserver: resizeObserver });\r\n }\r\n });\r\n for (let ele of element) {\r\n if (ele) resizeObserver.observe(ele);\r\n }\r\n\r\n //XResize 取消订阅的时候自动销毁\r\n //resizeObserver.disconnect();\r\n }\r\n );\r\n};\r\n","export function chunk<T>(array: T[], size = 1): T[][] {\r\n const len = array == null ? 0 : array.length;\r\n if (!len || size < 1) {\r\n return [];\r\n }\r\n let index = 0;\r\n let resIndex = 0;\r\n const result = new Array(Math.ceil(len / size));\r\n\r\n while (index < len) {\r\n result[resIndex++] = array.slice(index, (index += size));\r\n }\r\n return result;\r\n}\r\n","export function computedStyle(element: HTMLElement, style: string) {\r\n let computed = getComputedStyle(element);\r\n let value = computed[style as any];\r\n return value.replace(/px/g, '');\r\n}\r\n","/**\r\n * Fill default values\r\n * @param option option\r\n * @param def default\r\n */\r\nexport function fillDefault(option: { [property: string]: any }, def: { [property: string]: any }) {\r\n if (option && def) {\r\n for (const key in def) {\r\n if (typeof option[key] === 'undefined') {\r\n option[key] = def[key];\r\n }\r\n }\r\n }\r\n}\r\n","export function groupBy<T>(array: T[], name: string): T[][] {\r\n const groups: any = {};\r\n array.forEach((obj: any) => {\r\n const group = JSON.stringify(obj[name]);\r\n groups[group] = groups[group] || [];\r\n groups[group].push(obj);\r\n });\r\n return Object.keys(groups).map((group) => groups[group]);\r\n}\r\n","/**\r\n * 生成 GUID\r\n */\r\nexport function guid() {\r\n let S4 = () => {\r\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n };\r\n return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\r\n}\r\n","/**\r\n * 删除当前标签,保留内容\r\n */\r\nexport function removeNgTag(nativeElement: HTMLElement): void {\r\n const parentElement = nativeElement.parentElement;\r\n if (!parentElement || !parentElement.insertBefore) return;\r\n while (nativeElement.firstChild) {\r\n parentElement.insertBefore(nativeElement.firstChild, nativeElement);\r\n }\r\n parentElement.removeChild(nativeElement);\r\n}\r\n","export function warnSVGTagNotFound() {\r\n console.warn(`<svg> tag not found.`);\r\n}\r\nexport function warnIconTypeNotFound() {\r\n console.warn(`icon type not found.`);\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../lib/ng-nest/ui/core/util/animation.ts","../../../../lib/ng-nest/ui/core/animation/consts.ts","../../../../lib/ng-nest/ui/core/animation/fade.ts","../../../../lib/ng-nest/ui/core/animation/slide.ts","../../../../lib/ng-nest/ui/core/animation/drop.ts","../../../../lib/ng-nest/ui/core/animation/move.ts","../../../../lib/ng-nest/ui/core/animation/connect.ts","../../../../lib/ng-nest/ui/core/interfaces/data.type.ts","../../../../lib/ng-nest/ui/core/interfaces/identify.type.ts","../../../../lib/ng-nest/ui/core/functions/convert.ts","../../../../lib/ng-nest/ui/core/functions/date.ts","../../../../lib/ng-nest/ui/core/functions/property.ts","../../../../lib/ng-nest/ui/core/services/reuse-strategy.service.ts","../../../../lib/ng-nest/ui/core/services/preloading-strategy.service.ts","../../../../lib/ng-nest/ui/core/services/http.service.ts","../../../../lib/ng-nest/ui/core/services/storage.service.ts","../../../../lib/ng-nest/ui/core/services/repository.service.ts","../../../../lib/ng-nest/ui/core/config/config.ts","../../../../lib/ng-nest/ui/core/theme/theme.ts","../../../../lib/ng-nest/ui/core/theme/theme.service.ts","../../../../lib/ng-nest/ui/core/config/config.service.ts","../../../../lib/ng-nest/ui/core/util/resize.ts","../../../../lib/ng-nest/ui/core/util/chunk.ts","../../../../lib/ng-nest/ui/core/util/computed-style.ts","../../../../lib/ng-nest/ui/core/util/option.ts","../../../../lib/ng-nest/ui/core/util/group-by.ts","../../../../lib/ng-nest/ui/core/util/guid.ts","../../../../lib/ng-nest/ui/core/util/host.ts","../../../../lib/ng-nest/ui/core/util/html.ts","../../../../lib/ng-nest/ui/core/util/log.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","create","__values","o","s","Symbol","iterator","m","i","length","next","value","done","TypeError","__read","n","r","e","ar","push","error","availablePrefixes","XDuration","reqAnimFrame","window","requestAnimationFrame","bind","lastTime","prefix","filter","key","callback","currTime","Date","getTime","timeToCall","Math","max","id","setTimeout","getRequestAnimationFrame","XDURATION_BASE_EASE_IN","Fast","XDURATION_BASE_EASE_OUT","XFadeAnimation","trigger","transition","style","opacity","transform","animate","XSlideAnimation","Base","XSliderAnimation","width","XDropAnimation","state","height","border","padding","visibility","XMoveAnimation","XMoveBoxAnimation","XConnectAnimation","XConnectBaseAnimation","XIsType","type","object","toString","XIsString","XIsArray","XIsNumber","XIsBoolean","XIsObject","XIsNull","XIsFunction","XIsDate","XIsRegExp","XIsValue","XIsUndefined","XIsEmpty","XIsObservable","isObservable","XIsTemplateRef","elementRef","XToBoolean","coerceBooleanProperty","XToNumber","fallbackValue","_isNumberValue","Number","XToDataConvert","map","x","label","propDecoratorFactory","name","fallback","target","propName","originalDescriptor","privatePropName","console","warn","defineProperty","configurable","writable","get","this","set","XToDate","date","parse","classMap","XReuseStrategyService","shouldDetach","route","store","handle","waitDelete","getRouteUrl","indexOf","add","shouldAttach","_this","storages","find","retrieve","routeConfig","stroage","shouldReuseRoute","future","curr","JSON","stringify","params","url","path","join","deleteRouteSnapshot","id_1","replace","splice","findIndex","arguments","concat","__spread","XPreloadingStrategyService","preloadedModules","preload","load","data","of","Injectable","XHttpService","http","api","request","post","put","delete","method","option","opt","toUpperCase","body","observe","responseType","assign","addHeader","Observable","subscribe","y","complete","handleError","throwError","args","providedIn","HttpClient","XStorageService","getLocal","localStorage","getItem","setLocal","setItem","getSession","sessionStorage","setSession","removeLocal","removeItem","removeSession","guid","S4","random","substring","XRepositoryService","input","_super","String","__","constructor","__extends","getList","index","size","query","controller","entity","XRepositoryAbstract","X_CONFIG","InjectionToken","X_THEME","X_THEME_PREFIX","X_THEME_MERGE","X_THEME_BLACK_MERGE","X_THEME_AMOUNTS","X_THEME_BACKGROUNDS","X_THEME_TEXTS","X_THEME_BORDERS","X_THEME_EXCHANGES","X_THEME_COLORS","primary","success","warning","danger","info","text","background","X_THEME_DARK_COLORS","X_THEME_COLOR_KEYS","keys","XThemeService","doc","factory","colorsProp","renderer2","createRenderer","declaration","getComputedStyle","documentElement","setInitialTheme","theme","setColors","colors","setTheme","getTheme","includesAll","getColors","getColorsTheme","setRoot","createColorsStyle","includes","result","forEach","getPropertyValue","trim","getColorsInProperty","color","X_THEME_AMOUNTS_1","X_THEME_AMOUNTS_1_1","amount","getSuffix","toHex","mixColors","abs","setDarkRoot","allColors","allColors_1","getDefineColors","darken","colorsFunc","nums","nums_1","nums_1_1","num","exchange","colorsStyleEle","removeChild","parentNode","styles","entries","createElement","innerHTML","addClass","getElementsByTagName","appendChild","color1","color2","weight","rgb1","toRgb","rgb2","weight1","weight2","inRange","round","g","rgb","slice","hex","parseInt","Inject","DOCUMENT","RendererFactory2","isDefined","undefined","XConfigService","themeService","defaultConfig","componentConfigUpdated$","Subject","config","getConfigForComponent","componentName","_a","components","getConfigChangeEventForComponent","pipe","mapTo","setDarkTheme","setLightTheme","decorators","Optional","dt","isNaN","valueOf","setDate","getDate","setHours","getHours","setMinutes","getMinutes","setMonth","getMonth","setSeconds","getSeconds","setFullYear","getFullYear","min","classMaps","_i","XGetChildren","nodes","node","level","children","pid","leaf","obj","reduce","nw","Map","changes","changes_1","changes_1_1","change","currentValue","previousValue","element","resizeObserver","ResizeObserver","entries_1","entries_1_1","entry","element_1","element_1_1","ele","unSubject","toConvert","funcParam","res","takeUntil","innerDefaultValue","enumerable","originalValue","configValue","configService","array","len","resIndex","ceil","def","groups","group","nativeElement","parentElement","insertBefore","firstChild","usefulTags","RegExp"],"mappings":";;;;;;;;;;;;;;;AAgBA,IAAIA,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOC,OAAOK,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,MAC3EN,EAAGC,IAuFCC,OAAOQ,gBAYpBC,EAASC,GACrB,IAAIC,EAAsB,mBAAXC,QAAyBA,OAAOC,SAAUC,EAAIH,GAAKD,EAAEC,GAAII,EAAI,EAC5E,GAAID,EAAG,OAAOA,EAAEP,KAAKG,GACrB,GAAIA,GAAyB,iBAAbA,EAAEM,OAAqB,MAAO,CAC1CC,KAAM,WAEF,OADIP,GAAKK,GAAKL,EAAEM,SAAQN,OAAI,GACrB,CAAEQ,MAAOR,GAAKA,EAAEK,KAAMI,MAAOT,KAG5C,MAAM,IAAIU,UAAUT,EAAI,0BAA4B,4CAGxCU,EAAOX,EAAGY,GACtB,IAAIR,EAAsB,mBAAXF,QAAyBF,EAAEE,OAAOC,UACjD,IAAKC,EAAG,OAAOJ,EACf,IAAmBa,EAAYC,EAA3BT,EAAID,EAAEP,KAAKG,GAAOe,EAAK,GAC3B,IACI,WAAc,IAANH,GAAgBA,KAAM,MAAQC,EAAIR,EAAEE,QAAQE,MAAMM,EAAGC,KAAKH,EAAEL,OAExE,MAAOS,GAASH,EAAI,CAAEG,MAAOA,WAEzB,IACQJ,IAAMA,EAAEJ,OAASL,EAAIC,EAAU,SAAID,EAAEP,KAAKQ,WAExC,GAAIS,EAAG,MAAMA,EAAEG,OAE7B,OAAOF,EAgEczB,OAAOQ,OChNhC,IAAMoB,EAAoB,CAAC,MAAO,KAAM,cCD5BC,EDmDCC,EAnCb,WACE,GAAsB,oBAAXC,OACT,OAAO,WAAM,OAAA,GAEf,GAAIA,OAAOC,sBACT,OAAOD,OAAOC,sBAAsBC,KAAKF,QAG3C,IApBIG,EAoBEC,EAASP,EAAkBQ,QAAO,SAACC,GAAQ,OAAGA,EAAG,0BAA2BN,UAAQ,GAE1F,OAAOI,EAAUJ,OAAkBI,EAAM,0BAtBrCD,EAAW,EACR,SAAUI,GACf,IAAMC,GAAW,IAAIC,MAAOC,UACtBC,EAAaC,KAAKC,IAAI,EAAG,IAAML,EAAWL,IAC1CW,EAAKC,YAAW,WACpBR,EAASC,EAAWG,KACnBA,GAEH,OADAR,EAAWK,EAAWG,EACfG,IAuCiBE,ICnDhBlB,EAAAA,EAAAA,YAAAA,EAAAA,UAAS,KACnB,KAAA,OACAA,EAAA,KAAA,OACAA,EAAA,KAAA,OCCF,IAAMmB,EAA4BnB,EAAAA,UAAUoB,KAAI,WAE1CC,EAA6BrB,EAAAA,UAAUoB,KAAI,YAEpCE,EAA2CC,EAAAA,QAAQ,mBAAoB,CAClFC,EAAAA,WAAW,SAAU,CACnBC,EAAAA,MAAM,CAAEC,QAAS,EAAGC,UAAW,eAC/BC,EAAAA,QAAQ,GAAGT,EAA0BM,EAAAA,MAAM,CAAEC,QAAS,EAAGC,UAAW,gBAEtEH,EAAAA,WAAW,SAAU,CAACI,EAAAA,QAAQ,GAAGP,EAA2BI,EAAAA,MAAM,CAAEC,QAAS,SCVlEG,EAA4CN,EAAAA,QAAQ,oBAAqB,CACpFC,EAAAA,WAAW,gBAAiB,CAACC,EAAAA,MAAM,CAAEE,UAAW,sBAAwBC,EAAAA,QAAW5B,EAAAA,UAAU8B,KAAI,cACjGN,EAAAA,WAAW,gBAAiB,CAACI,EAAAA,QAAW5B,EAAAA,UAAU8B,KAAI,YAAaL,EAAAA,MAAM,CAAEE,UAAW,yBACtFH,EAAAA,WAAW,eAAgB,CAACC,EAAAA,MAAM,CAAEE,UAAW,uBAAyBC,EAAAA,QAAW5B,EAAAA,UAAU8B,KAAI,cACjGN,EAAAA,WAAW,eAAgB,CAACI,EAAAA,QAAW5B,EAAAA,UAAU8B,KAAI,YAAaL,EAAAA,MAAM,CAAEE,UAAW,0BACrFH,EAAAA,WAAW,cAAe,CAACC,EAAAA,MAAM,CAAEE,UAAW,uBAAyBC,EAAAA,QAAW5B,EAAAA,UAAU8B,KAAI,cAChGN,EAAAA,WAAW,cAAe,CAACI,EAAAA,QAAW5B,EAAAA,UAAU8B,KAAI,YAAaL,EAAAA,MAAM,CAAEE,UAAW,0BACpFH,EAAAA,WAAW,iBAAkB,CAACC,EAAAA,MAAM,CAAEE,UAAW,sBAAwBC,EAAAA,QAAW5B,EAAAA,UAAU8B,KAAI,cAClGN,EAAAA,WAAW,iBAAkB,CAACI,EAAAA,QAAW5B,EAAAA,UAAU8B,KAAI,YAAaL,EAAAA,MAAM,CAAEE,UAAW,2BAG5EI,EAA6CR,EAAAA,QAAQ,qBAAsB,CACtFC,EAAAA,WAAW,8BAA+B,CACxCC,EAAAA,MAAM,CACJO,MAAO,EACPN,QAAS,IAEXE,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJO,MAAO,IACPN,QAAS,OAIfF,EAAAA,WAAW,8BAA+B,CACxCC,EAAAA,MAAM,CACJO,MAAO,IACPN,QAAS,IAEXE,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJO,MAAO,EACPN,QAAS,SClCJO,EAA2CV,EAAAA,QAAQ,mBAAoB,CAClFW,EAAAA,MAAM,IAAKT,EAAAA,MAAM,CAAEC,QAAS,EAAGS,OAAQ,EAAGC,OAAQ,EAAGC,QAAS,EAAGC,WAAY,YAC7EJ,EAAAA,MAAM,QAAST,EAAAA,MAAM,CAAEC,QAAS,EAAGS,OAAQ,EAAGC,OAAQ,EAAGC,QAAS,EAAGC,WAAY,YACjFJ,EAAAA,MAAM,OAAQT,EAAAA,MAAM,CAAEC,QAAS,EAAGS,OAAQ,IAAKC,OAAQ,IAAKC,QAAS,IAAKC,WAAY,aACtFd,EAAAA,WAAW,SAAUI,EAAAA,QAAW5B,EAAAA,UAAU8B,KAAI,gBCLnCS,EAA2ChB,EAAAA,QAAQ,mBAAoB,CAClFC,EAAAA,WAAW,kEAAmE,CAC5EC,EAAAA,MAAM,CACJE,UAAW,oBACXD,QAAS,IAEXE,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJE,UAAW,iBACXD,QAAS,OAIfF,EAAAA,WAAW,kEAAmE,CAC5EC,EAAAA,MAAM,CACJE,UAAW,iBACXD,QAAS,EACTS,OAAQ,MAEVP,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJE,UAAW,oBACXD,QAAS,EACTS,OAAQ,OAIdX,EAAAA,WAAW,eAAgB,CACzBC,EAAAA,MAAM,CACJE,UAAW,mBACXD,QAAS,IAEXE,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJE,UAAW,iBACXD,QAAS,OAIfF,EAAAA,WAAW,eAAgB,CACzBC,EAAAA,MAAM,CACJE,UAAW,iBACXD,QAAS,EACTS,OAAQ,MAEVP,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJE,UAAW,mBACXD,QAAS,EACTS,OAAQ,OAIdX,EAAAA,WAAW,gBAAiB,CAC1BC,EAAAA,MAAM,CACJE,UAAW,kBACXD,QAAS,IAEXE,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJE,UAAW,iBACXD,QAAS,OAIfF,EAAAA,WAAW,gBAAiB,CAC1BC,EAAAA,MAAM,CACJE,UAAW,iBACXD,QAAS,EACTS,OAAQ,MAEVP,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJE,UAAW,kBACXD,QAAS,EACTS,OAAQ,OAIdX,EAAAA,WAAW,2DAA4D,CACrEC,EAAAA,MAAM,CACJE,UAAW,mBACXD,QAAS,EACTS,OAAQ,IAEVP,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJE,UAAW,iBACXD,QAAS,EACTS,OAAQ,SAIdX,EAAAA,WAAW,2DAA4D,CACrEC,EAAAA,MAAM,CACJE,UAAW,iBACXD,QAAS,IAEXE,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJE,UAAW,mBACXD,QAAS,SAMJc,EAA8CjB,EAAAA,QAAQ,uBAAwB,CACzFC,EAAAA,WAAW,kEAAmE,CAC5EC,EAAAA,MAAM,CACJE,UAAW,oBACXD,QAAS,IAEXE,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJE,UAAW,iBACXD,QAAS,OAIfF,EAAAA,WAAW,kEAAmE,CAC5EC,EAAAA,MAAM,CACJE,UAAW,iBACXD,QAAS,IAEXE,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJE,UAAW,oBACXD,QAAS,OAIfF,EAAAA,WAAW,eAAgB,CACzBC,EAAAA,MAAM,CACJE,UAAW,oBACXD,QAAS,IAEXE,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJE,UAAW,iBACXD,QAAS,OAIfF,EAAAA,WAAW,eAAgB,CACzBC,EAAAA,MAAM,CACJE,UAAW,iBACXD,QAAS,IAEXE,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJE,UAAW,oBACXD,QAAS,OAIfF,EAAAA,WAAW,gBAAiB,CAC1BC,EAAAA,MAAM,CACJE,UAAW,mBACXD,QAAS,IAEXE,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJE,UAAW,iBACXD,QAAS,OAIfF,EAAAA,WAAW,gBAAiB,CAC1BC,EAAAA,MAAM,CACJE,UAAW,iBACXD,QAAS,IAEXE,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJE,UAAW,mBACXD,QAAS,OAIfF,EAAAA,WAAW,2DAA4D,CACrEC,EAAAA,MAAM,CACJE,UAAW,mBACXD,QAAS,IAEXE,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJE,UAAW,iBACXD,QAAS,OAIfF,EAAAA,WAAW,2DAA4D,CACrEC,EAAAA,MAAM,CACJE,UAAW,iBACXD,QAAS,IAEXE,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJE,UAAW,mBACXD,QAAS,SCtNXP,EAA4BnB,EAAAA,UAAUoB,KAAI,WAE1CC,EAA6BrB,EAAAA,UAAUoB,KAAI,YAEpCqB,EAA8ClB,EAAAA,QAAQ,sBAAuB,CACxFC,EAAAA,WAAW,kEAAmE,CAC5EC,EAAAA,MAAM,CACJC,QAAS,IAIXE,EAAAA,QACET,EACAM,EAAAA,MAAM,CACJC,QAAS,OAMfF,EAAAA,WAAW,kEAAmE,CAC5EC,EAAAA,MAAM,CACJC,QAAS,IAIXE,EAAAA,QACEP,EACAI,EAAAA,MAAM,CACJC,QAAS,OAMfF,EAAAA,WAAW,eAAgB,CACzBC,EAAAA,MAAM,CACJE,UAAW,mBACXD,QAAS,IAEXE,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJE,UAAW,iBACXD,QAAS,OAIfF,EAAAA,WAAW,eAAgB,CACzBC,EAAAA,MAAM,CACJE,UAAW,iBACXD,QAAS,EACTS,OAAQ,MAEVP,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJE,UAAW,mBACXD,QAAS,EACTS,OAAQ,OAIdX,EAAAA,WAAW,gBAAiB,CAC1BC,EAAAA,MAAM,CACJE,UAAW,kBACXD,QAAS,IAEXE,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJE,UAAW,iBACXD,QAAS,OAIfF,EAAAA,WAAW,gBAAiB,CAC1BC,EAAAA,MAAM,CACJE,UAAW,iBACXD,QAAS,EACTS,OAAQ,MAEVP,EAAAA,QACE,GAAG5B,EAAAA,UAAU8B,KACbL,EAAAA,MAAM,CACJE,UAAW,kBACXD,QAAS,EACTS,OAAQ,OAIdX,EAAAA,WAAW,2DAA4D,CACrEC,EAAAA,MAAM,CACJC,QAAS,IAIXE,EAAAA,QACET,EACAM,EAAAA,MAAM,CACJC,QAAS,OAMfF,EAAAA,WAAW,2DAA4D,CACrEC,EAAAA,MAAM,CACJC,QAAS,IAIXE,EAAAA,QACEP,EACAI,EAAAA,MAAM,CACJC,QAAS,SAQJgB,EAAkDnB,EAAAA,QAAQ,2BAA4B,CACjGC,EAAAA,WAAW,SAAU,CAACC,EAAAA,MAAM,CAAEC,QAAS,EAAGC,UAAW,gBAAkBC,EAAAA,QAAQT,KAC/EK,EAAAA,WAAW,SAAU,CAACI,EAAAA,QAAQP,EAAyBI,EAAAA,MAAM,CAAEC,QAAS,SCjH7DiB,EAAU,SAACC,GAAiB,OAAA,SAACC,GAAgB,OAAA1E,OAAOK,UAAUsE,SAASpE,KAAKmE,KAAY,WAAWD,EAAI,MAUvGG,EAAYJ,EAAQ,UACpBK,EAAWL,EAAQ,SACnBM,EAAYN,EAAQ,UACpBO,EAAaP,EAAQ,WACrBQ,EAAYR,EAAQ,UACpBS,EAAUT,EAAQ,QAClBU,EAAcV,EAAQ,YACtBW,EAAUX,EAAQ,QAClBY,EAAYZ,EAAQ,UACpBa,EAAW,SAACX,GAAgB,OAAAE,EAAUF,IAAWI,EAAUJ,IAAWK,EAAWL,IAAWS,EAAQT,IACpGY,EAAe,SAACZ,GAAgB,YAAkB,IAAXA,GACvCa,EAAW,SAACb,GAAgB,OAAA,MAAOA,GAAwD,KAAXA,GAAmC,IAAlBA,EAAO1D,QAGxGwE,EAAgB,SAACd,GAAgB,OAAAe,EAAAA,aAAaf,IAC9CgB,EAAiB,SAAChB,GAC7B,QAAKa,EAASb,KAAWA,EAAOiB,eCjBlC,sBCRgBC,EAAW1E,GAMzB,OAAO2E,EAAAA,sBAAsB3E,GAK/B,SAAS4E,EAAU5E,EAAwB6E,GACzC,YADyC,IAAAA,IAAAA,EAAA,GAClCC,EAAAA,eAAe9E,GAAS+E,OAAO/E,GAAS6E,WAGjCG,EAAkBhF,GAChC,OAAI2D,EAAS3D,GACHA,EAAaiF,KAAI,SAACC,GACxB,OAAIf,EAASe,GACJ,CAAEC,MAAOD,EAAGvD,GAAIuD,GACdpB,EAAUoB,IACnBA,EAAEC,MAAQf,EAAac,EAAEC,QAAUpB,EAAQmB,EAAEC,OAASD,EAAEvD,GAAKuD,EAAEC,MAC/DD,EAAEvD,GAAKyC,EAAac,EAAEvD,KAAOoC,EAAQmB,EAAEvD,IAAMuD,EAAEC,MAAQD,EAAEvD,GAClDuD,QAHF,KAOJlF,EA4DT,SAASoF,EAA2BC,EAAcC,GA0BhD,OAzBA,SAAuBC,EAAaC,EAAkBC,GACpD,IAAMC,EAAkB,OAAOF,EAW/B,OATI1G,OAAOK,UAAUC,eAAeC,KAAKkG,EAAQG,IAC/CC,QAAQC,KAAK,aAAaF,EAAe,+CAA+CL,EAAI,eAG9FvG,OAAO+G,eAAeN,EAAQG,EAAiB,CAC7CI,cAAc,EACdC,UAAU,IAGL,CACLC,IAAG,WACD,OAAOP,GAAsBA,EAAmBO,IAAMP,EAAmBO,IAAIjF,KAAKkF,KAA5BR,GAAsCQ,KAAKP,IAEnGQ,IAAG,SAAClG,GACEyF,GAAsBA,EAAmBS,KAC3CT,EAAmBS,IAAInF,KAAKkF,KAA5BR,CAAkCH,EAAStF,IAE7CiG,KAAKP,GAAmBJ,EAAStF,eCzHzBmG,EAAQC,GACtB,OAAInC,EAAQmC,IAASxC,EAAUwC,GACtB,IAAI9E,KAAK8E,GAET,IAAI9E,KAAKA,KAAK+E,MAAMD,UCH/B,WAIEH,KAAAK,SAAsB,iBCDxB,SAAAC,YASSA,EAAApH,UAAAqH,aAAA,SAAaC,GAClB,OAAO,GAMFF,EAAApH,UAAAuH,MAAA,SAAMD,EAA+BE,GAC5B,MAAVA,IACAJ,EAAsBK,YAAmF,GAArEX,KAAKY,YAAYJ,GAAOK,QAAQP,EAAsBK,YAE5FL,EAAsBK,WAAa,KAGrCX,KAAKc,IAAId,KAAKY,YAAYJ,GAAQE,KAM7BJ,EAAApH,UAAA6H,aAAA,SAAaP,GAAb,IAAAQ,EAAAhB,KACL,QAASM,EAAsBW,SAASC,MAAK,SAACjC,GAAM,OAAAA,EAAEvD,IAAMsF,EAAKJ,YAAYJ,OAMxEF,EAAApH,UAAAiI,SAAA,SAASX,GAAT,IAAAQ,EAAAhB,KACL,IAAKQ,EAAMY,YACT,MAAO,GAET,IAAIC,EAAUf,EAAsBW,SAASC,MAAK,SAACjC,GAAM,OAAAA,EAAEvD,IAAMsF,EAAKJ,YAAYJ,MAClF,OAAOa,EAAUA,EAAQX,OAAS,IAO7BJ,EAAApH,UAAAoI,iBAAA,SAAiBC,EAAgCC,GACtD,OAAOD,EAAOH,cAAgBI,EAAKJ,aAAeK,KAAKC,UAAUH,EAAOI,SAAWF,KAAKC,UAAUF,EAAKG,SAMjGrB,EAAApH,UAAA0H,YAAA,SAAYJ,GAElB,OADUA,EAAMoB,IAAI5C,KAAI,SAACC,GAAM,OAAAA,EAAE4C,QAAMC,KAAK,MAOhCxB,EAAAyB,oBAAP,SAA2B3C,GAChC,GAAIA,EAAM,CACR,IAAI4C,EAAK5C,EAAK6C,QAAQ,MAAO,KAC7B3B,EAAsBW,SAASiB,OAC7B5B,EAAsBW,SAASkB,WAAU,SAAClD,GAAM,OAAqB,IAArBA,EAAEvD,GAAGmF,QAAQmB,MAC7D,GAEF1B,EAAsBK,WAAaqB,OAEnC1B,EAAsBW,SAAW,IAI7BX,EAAApH,UAAA4H,IAAA,SAAIpF,EAAYgF,GACtBJ,EAAsBW,SAASiB,OAC7B5B,EAAsBW,SAASkB,WAAU,SAAClD,GAAM,OAAAA,EAAEvD,IAAMA,KACxD,GAEF4E,EAAsBW,oBb6DtB,IAAK,IAAI3G,EAAK,GAAIV,EAAI,EAAGA,EAAIwI,UAAUvI,OAAQD,IAC3CU,EAAKA,EAAG+H,OAAOnI,EAAOkI,UAAUxI,KACpC,OAAOU,Ea/DuBgI,CAAOhC,EAAsBW,SAAQ,CAAE,CAAEvF,GAAIA,EAAIgF,OAAQA,WA/E3EJ,EAAAW,SAAiC,oBCLjD,SAAAsB,IAGEvC,KAAAwC,iBAA6B,UAE7BD,EAAArJ,UAAAuJ,QAAA,SAAQjC,EAAckC,GACpB,OAAIlC,EAAMmC,MAAQnC,EAAMmC,KAAKF,SAC3BzC,KAAKwC,iBAAiBjI,KAAKiG,EAAMqB,MAC1Ba,KAEAE,EAAAA,GAAG,gCAVfC,EAAAA,8BCGC,SAAAC,EAAmBC,GAAA/C,KAAA+C,KAAAA,EADnB/C,KAAAgD,IAAc,UAMdF,EAAA5J,UAAA6G,IAAA,SAAI6B,EAAaD,GACf,OAAO3B,KAAKiD,QAAQ,MAAOrB,EAAKD,IAMlCmB,EAAA5J,UAAAgK,KAAA,SAAKtB,EAAaD,GAChB,OAAO3B,KAAKiD,QAAQ,OAAQrB,EAAKD,IAMnCmB,EAAA5J,UAAAiK,IAAA,SAAIvB,EAAaD,GACf,OAAO3B,KAAKiD,QAAQ,MAAOrB,EAAKD,IAMlCmB,EAAA5J,UAAAkK,OAAA,SAAOxB,EAAaD,GAClB,OAAO3B,KAAKiD,QAAQ,SAAUrB,EAAKD,IAMrCmB,EAAA5J,UAAA+J,QAAA,SAAQI,EAAgBzB,EAAaD,EAAsC2B,GAA3E,IAAAtC,EAAAhB,KACOsD,IAAQA,EAAS,IACtB,IAAIC,EAAM,GAUV,OATA3B,EAAM,GAAG5B,KAAKgD,IAAMpB,EACpByB,EAASA,EAAOG,cACZ,CAAC,OAAQ,MAAO,UAAU3C,QAAQwC,IAAW,EAC/CE,EAAM,CAAEE,KAAM9B,EAAQ+B,QAAS,OAAQC,aAAc,QAC5C,CAAC,OAAO9C,QAAQwC,IAAW,IACpCE,EAAM,CAAE5B,OAAQA,IAElB9I,OAAO+K,OAAOL,EAAKD,GACnBtD,KAAK6D,UAAUN,GACR,IAAIO,EAAAA,YAAW,SAAC7E,GACrB+B,EAAK+B,KAAKE,QAAQI,EAAQzB,EAAK2B,GAAKQ,WAClC,SAACC,GACC/E,EAAEnF,KAAKkK,GACP/E,EAAEgF,cAEJ,SAACD,GACC/E,EAAEzE,MAAMwJ,GACR/E,EAAEgF,WACFjD,EAAKkD,YAAYF,UASzBlB,EAAA5J,UAAAgL,YAAA,SAAY1J,GAGV,OAFIA,EAAMA,MAEH2J,EAAAA,WAAW3J,EAAMA,QAMlBsI,EAAA5J,UAAA2K,UAAA,SAAUP,mJA3EnBT,EAAAA,WAAUuB,KAAA,CAAC,CAAEC,WAAY,oDAJjBC,EAAAA,gCCIP,SAAAC,YAKAA,EAAArL,UAAAsL,SAAA,SAAStJ,GACP,OAAOuG,KAAKrB,MAAMqE,aAAaC,QAAQxJ,IAAQ,SAAW,MAM5DqJ,EAAArL,UAAAyL,SAAA,SAASzJ,EAAanB,GACpB0K,aAAaG,QAAQ1J,EAAKuG,KAAKC,UAAU3H,KAM3CwK,EAAArL,UAAA2L,WAAA,SAAW3J,GACT,OAAOuG,KAAKrB,MAAM0E,eAAeJ,QAAQxJ,IAAQ,SAAW,MAM9DqJ,EAAArL,UAAA6L,WAAA,SAAW7J,EAAanB,GACtB+K,eAAeF,QAAQ1J,EAAKuG,KAAKC,UAAU3H,KAM7CwK,EAAArL,UAAA8L,YAAA,SAAY9J,GACVuJ,aAAaQ,WAAW/J,IAM1BqJ,EAAArL,UAAAgM,cAAA,SAAchK,GACZ4J,eAAeG,WAAW/J,IAM5BqJ,EAAArL,UAAAiM,KAAA,WACE,IAAIC,EAAK,WACP,OAA+B,OAArB,EAAI5J,KAAK6J,UAAuB,GAAG7H,SAAS,IAAI8H,UAAU,IAEtE,OAAOF,IAAOA,IAAO,IAAMA,IAAO,IAAMA,IAAO,IAAMA,IAAO,IAAMA,IAAOA,IAAOA,6HArDnFvC,EAAAA,WAAUuB,KAAA,CAAC,CAAEC,WAAY,yDCU1B,4BAUE,SAAAkB,EAAmBxC,EAA2ByC,GAA9C,IAAAxE,EACEyE,EAAArM,KAAA4G,OAAOA,YADUgB,EAAA+B,KAAAA,EAA2B/B,EAAAwE,MAAAA,EAD9CxE,EAAAgC,IAAM,GAGJhC,EAAKgC,SAA2B,IAAdwC,EAAMxC,IAAsBwC,EAAMxC,IAAM,qBjBFpCrK,EAAGC,GACzB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIqB,UAAU,uBAAyByL,OAAO9M,GAAK,iCAE7D,SAAS+M,IAAO3F,KAAK4F,YAAcjN,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEO,UAAkB,OAANN,EAAaC,OAAOQ,OAAOT,IAAM+M,EAAGzM,UAAYN,EAAEM,UAAW,IAAIyM,GiBPvBE,CAAAN,EAAAE,GAO1DF,EAAArM,UAAA4M,QAAA,SAAQC,EAAgBC,EAAeC,GAGrC,OAFAF,EAAQA,GAAgB,EACxBC,EAAOA,GAAc,GACdhG,KAAK+C,KAAKG,KAAK,GAAGlD,KAAKgD,IAAMhD,KAAKwF,MAAMU,WAAW9G,KAAI,IAAI4G,EAAI,IAAID,EAASE,IAGrFV,EAAArM,UAAA6G,IAAA,SAAIrE,GACF,OAAOsE,KAAK+C,KAAKhD,IAAI,GAAGC,KAAKgD,IAAMhD,KAAKwF,MAAMU,WAAW9G,KAAI,IAAI1D,IAGnE6J,EAAArM,UAAAgK,KAAA,SAAKiD,GACH,OAAOnG,KAAK+C,KAAKG,KAAK,GAAGlD,KAAKgD,IAAMhD,KAAKwF,MAAMU,WAAW9G,KAAQ+G,IAGpEZ,EAAArM,UAAAiK,IAAA,SAAIgD,GACF,OAAOnG,KAAK+C,KAAKI,IAAI,GAAGnD,KAAKgD,IAAMhD,KAAKwF,MAAMU,WAAW9G,KAAQ+G,IAGnEZ,EAAArM,UAAAkK,OAAA,SAAO1H,GACL,OAAOsE,KAAK+C,KAAKK,OAAO,GAAGpD,KAAKgD,IAAMhD,KAAKwF,MAAMU,WAAW9G,KAAI,IAAI1D,OA1BZ0K,ICW/CC,GAAW,IAAIC,EAAAA,eAAwB,YCVvCC,GAAU,IAAID,EAAAA,eAAuB,WAErCE,GAAiB,OAEjBC,GAAgB,UAEhBC,GAAsB,UAEtBC,GAAkB,CAAC,GAAI,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,IAEpHC,GAAsB,EAAE,IAAM,IAAM,IAEpCC,GAAgB,CAC3B,EAAE,GAAK,GACP,EAAE,GAAK,IACP,EAAE,GAAK,KAGIC,GAAkB,CAC7B,EAAE,GAAK,GACP,EAAE,GAAK,KAGIC,GAAoB,CAC/B,EAAE,IAAM,IACR,CAAC,IAAM,IACP,CAAC,GAAK,IACN,CAAC,GAAK,GACN,CAAC,IAAM,IACP,CAAC,IAAM,IACP,CAAC,GAAK,GACN,CAAC,IAAM,IACP,CAAC,IAAM,IACP,CAAC,IAAM,KAGIC,GAA+B,CAC1CC,QAAS,UACTC,QAAS,UACTC,QAAS,UACTC,OAAQ,UACRC,KAAM,UACNC,KAAM,UACNxK,OAAQ,UACRyK,WAAY,WAGDC,GAAoC,CAC/CF,KAAM,UACNxK,OAAQ,UACRyK,WAAY,WAGDE,GAAqB5O,OAAO6O,KAAKV,kBCjD5C,SAAAW,EAAsCC,EAAkBC,GAAlB7H,KAAA4H,IAAAA,EAAkB5H,KAAA6H,QAAAA,EALhD7H,KAAA8H,WAA2B,GAMjC9H,KAAK+H,UAAY/H,KAAK6H,QAAQG,eAAe,KAAM,MACnDhI,KAAKiI,YAAcC,iBAAiBlI,KAAK4H,IAAIO,wBAG/CR,EAAAzO,UAAAkP,gBAAA,SAAgBC,GACdrI,KAAKsI,UAAUD,MAAAA,OAAK,EAALA,EAAOE,SAClBF,MAAAA,OAAK,EAALA,EAAOE,SAAQ1P,OAAO+K,OAAOoD,GAAgBqB,EAAME,SAGzDZ,EAAAzO,UAAAsP,SAAA,SAASH,GACPrI,KAAKsI,UAAUD,MAAAA,OAAK,EAALA,EAAOE,SAGxBZ,EAAAzO,UAAAuP,SAAA,SAASC,GACP,YADO,IAAAA,IAAAA,GAAA,GACA,CACLH,OAAQvI,KAAK2I,UAAUD,KAI3Bf,EAAAzO,UAAAoP,UAAA,SAAUC,GAER,IAAK,IAAIrN,KADTqN,EAASvI,KAAK4I,eAAeL,GAE3B1P,OAAO+K,OAAO5D,KAAK8H,WAAY9H,KAAK6I,QAAQ3N,EAAKqN,EAAOrN,KAE1D8E,KAAK8I,qBAGPnB,EAAAzO,UAAAyP,UAAA,SAAUI,EAAkB/N,GAA5B,IAAAgG,EAAAhB,UAAU,IAAA+I,IAAAA,GAAA,QAAkB,IAAA/N,IAAAA,EAAAwL,IAC1B,IAAIwC,EAAuB,GAM3B,OALaD,EAAWlQ,OAAO6O,KAAK1H,KAAK8H,YAAcL,GAAmBzI,KAAI,SAACC,GAAM,MAAA,GAAGjE,EAASiE,MAC5FgK,SAAQ,SAAChK,GACZ+J,EAAO/J,EAAEgD,QAAQjH,EAAQ,KAAOgG,EAAKiH,YAAYiB,iBAAiB,GAAGjK,GAAKkK,UAGrEH,GAGTrB,EAAAzO,UAAAkQ,oBAAA,SAAoBb,EAAuBvN,GAA3C,IAAAgG,EAAAhB,UAA2C,IAAAhF,IAAAA,EAAAwL,IACzC,IAAIwC,EAAuB,GAK3B,OAJAnQ,OAAO6O,KAAKa,GAAwBU,SAAQ,SAAChK,GAC3C+J,EAAO/J,GAAK+B,EAAKiH,YAAYiB,iBAAiB,GAAGlO,EAASiE,GAAKkK,UAG1DH,GAGTrB,EAAAzO,UAAA0P,eAAA,SAAeL,GAGb,OAFmCA,OAAb,IAAXA,EAAiCvB,GAC9BnO,OAAO+K,OAAO,GAAIoD,GAAgBuB,IAIlDZ,EAAAzO,UAAA2P,QAAA,SAAQQ,EAAetP,EAAeiB,gBAAA,IAAAA,IAAAA,EAAAwL,IACpC,IAAIwC,EAAuB,GAC3B,GAAIvB,GAAmBsB,SAASM,OAC9B,IAAmB,IAAAC,EAAAhQ,EAAAqN,IAAe4C,EAAAD,EAAAxP,QAAAyP,EAAAvP,KAAAuP,EAAAD,EAAAxP,OAAE,CAA/B,IAAI0P,EAAMD,EAAAxP,MACE,IAAXyP,EACFR,EAAO,GAAGhO,EAASqO,GAAWtP,EAE9BiP,EAAO,GAAGhO,EAASqO,EAAQrJ,KAAKyJ,UAAUD,IAAaE,GACrDC,GAAUH,EAAS,EAAI/C,GAAgBC,GAAqB3M,EAAOyB,KAAKoO,IAAIJ,4GAKlFR,EAAO,GAAGhO,EAASqO,GAAWtP,EAEhC,OAAOiP,GAGTrB,EAAAzO,UAAA2Q,YAAA,SAAYR,EAAetP,EAAeiB,GAA1C,IAAAgG,EAAAhB,UAA0C,IAAAhF,IAAAA,EAAAwL,IACxC,IAAIwC,EAAuB,GACrBc,EAAY9J,KAAK6I,QAAQQ,EAAOtP,EAAO,IAC7C,GAAI0N,GAAmBsB,SAASM,KAAW,CAAC,cAAcN,SAASM,GAAQ,CACzE,IAAMU,EAAY/J,KAAK6I,QAAQQ,EAAOtP,EAAOiB,GAC7C+L,GAAkBkC,SAAQ,SAAChK,GACzB,GAAIA,EAAE,KAAO,GAAK,CAChB,IAAMuC,EAAOR,EAAKyI,UAAUxK,EAAE,IACxBnF,EAAOkH,EAAKyI,UAAUxK,EAAE,IAC9B+J,EAAO,GAAGhO,EAASqO,EAAQ7H,GAAUuI,EAAU,GAAG/O,EAASqO,EAAQvP,WAG9D,CAAC,cAAciP,SAASM,KACjCL,EAAShJ,KAAKgK,gBAAgBnR,OAAO+K,OAAO,GAAI5D,KAAKoJ,oBAAoBpC,IAAiB8C,GAAY,IAAI,IAE5G,OAAOd,GAGTrB,EAAAzO,UAAA8Q,gBAAA,SAAgBzB,EAAuBvN,EAAyBiP,GAAhE,IAAAjJ,EAAAhB,UAAuC,IAAAhF,IAAAA,EAAAwL,SAAyB,IAAAyD,IAAAA,GAAA,GAC9D,IAAIjB,EAAuB,GAE3B,IAAK,IAAI9N,KADTqN,EAASvI,KAAK4I,eAAeL,GAE3B1P,OAAO+K,OAAOoF,EAAQhJ,KAAK6I,QAAQ3N,EAAKqN,EAAOrN,GAAMF,IAEvD,GAAIiP,EAAQ,CACV,IAAMC,EAAa,SAACC,EAA6BhP,eAC/C,IAAgB,IAAAiP,EAAA9Q,EAAA6Q,GAAIE,EAAAD,EAAAtQ,QAAAuQ,EAAArQ,KAAAqQ,EAAAD,EAAAtQ,OAAE,CAAjB,IAAIwQ,EAAGD,EAAAtQ,MACV,IAAK,IAAIsP,KAASd,EACZd,GAAmBsB,SAASM,KAAW,CAAC,cAAcN,SAASM,IACjElO,EAASmP,EAAKjB,uGAKtBa,EAAWtD,IAAqB,SAACW,EAAoB8B,GACnD,IAAMhB,EAAQrH,EAAKyI,UAAUlC,GAC7ByB,EAAO,GAAGhO,EAASqO,EAAQhB,GAAWW,EAAUhO,EAAM,aAAaqN,EAAMpG,QAAQ,IAAK,QAExFiI,EAAWrD,IAAe,SAACS,EAAgB+B,GACzC,IAAM7H,EAAOR,EAAKyI,UAAUnC,EAAK,IAC3BxN,EAAOkH,EAAKyI,UAAUnC,EAAK,IACjC0B,EAAO,GAAGhO,EAASqO,EAAQ7H,GAAUwH,EAAUhO,EAAM,OAAOlB,MAE9DoQ,EAAWpD,IAAiB,SAAChK,EAAkBuM,GAC7C,IAAM7H,EAAOR,EAAKyI,UAAU3M,EAAO,IAC7BhD,EAAOkH,EAAKyI,UAAU3M,EAAO,IACnCkM,EAAO,GAAGhO,EAASqO,EAAQ7H,GAAUwH,EAAUhO,EAAM,SAASlB,MAEhEoQ,EAAWnD,IAAmB,SAACwD,EAAoBlB,GACjD,IAAM7H,EAAOR,EAAKyI,UAAUc,EAAS,IAC/BzQ,EAAOkH,EAAKyI,UAAUc,EAAS,IACrCvB,EAAO,GAAGhO,EAASqO,EAAQ7H,GAAUwH,EAAO,GAAGhO,EAASqO,EAAQvP,MAGpE,OAAOkP,GAGTrB,EAAAzO,UAAAuQ,UAAA,SAAUa,GACR,OAAIA,EAAM,EACD,IAAI9O,KAAKoO,IAAU,IAANU,GACXA,EAAM,EACR,KAAK9O,KAAKoO,IAAU,IAANU,GAEhB,IAGT3C,EAAAzO,UAAA4P,kBAAA,WACM9I,KAAKwK,gBAAgBxK,KAAK+H,UAAU0C,YAAYzK,KAAKwK,eAAeE,WAAY1K,KAAKwK,gBACzF,IAAMG,EAAS9R,OAAO+R,QAAQ5K,KAAK8H,YAChC9I,KAAI,SAACC,GAAM,OAAGA,EAAE,GAAE,KAAKA,EAAE,GAAE,OAC3B6C,KAAK,IACR9B,KAAKwK,eAAiBxK,KAAK+H,UAAU8C,cAAc,SACnD7K,KAAKwK,eAAeM,UAAY,mBAAmBH,EAAM,IACzD3K,KAAK+H,UAAUgD,SAAS/K,KAAK4H,IAAIO,gBAAiB,kBAClDnI,KAAK4H,IAAIO,gBAAgB6C,qBAAqB,QAAQ,GAAGC,YAAYjL,KAAKwK,+BAI9Db,GAAUuB,EAAgBC,EAAgBC,GACxD,IAAIC,EAAOC,GAAMJ,GACbK,EAAOD,GAAMH,GACbK,EAAUJ,EACVK,EAAU,EAAIL,EAGZM,EAAU,SAACpB,GACf,OAAOA,EAAM,IAAM,IAAMA,EAAM,EAAI,EAAIA,GASzC,MANS,CACPlQ,EAAGsR,EAAQlQ,KAAKmQ,MAAMN,EAAKjR,EAAIoR,EAAUD,EAAKnR,EAAIqR,IAClDG,EAAGF,EAAQlQ,KAAKmQ,MAAMN,EAAKO,EAAIJ,EAAUD,EAAKK,EAAIH,IAClD7S,EAAG8S,EAAQlQ,KAAKmQ,MAAMN,EAAKzS,EAAI4S,EAAUD,EAAK3S,EAAI6S,cAMtC/B,GAAMmC,GACpB,MAAO,MAAQ,GAAK,KAAOA,EAAIzR,GAAK,KAAOyR,EAAID,GAAK,GAAKC,EAAIjT,GAAG4E,SAAS,IAAIsO,MAAM,YAGrER,GAAMS,GACI,GAApBA,EAAIlL,QAAQ,OAAWkL,EAAMA,EAAID,MAAM,IAC3C,IAAIxB,EAAM0B,SAASD,EAAK,IACpB3R,EAAIkQ,GAAO,GACXlQ,EAAI,IAAKA,EAAI,IACRA,EAAI,IAAGA,EAAI,GACpB,IAAIwR,EAAKtB,GAAO,EAAK,IACjBsB,EAAI,IAAKA,EAAI,IACRA,EAAI,IAAGA,EAAI,GACpB,IAAIhT,EAAU,IAAN0R,EAIR,OAHI1R,EAAI,IAAKA,EAAI,IACRA,EAAI,IAAGA,EAAI,GAEb,CAAEwB,EAAGA,EAAGwR,EAAGA,EAAGhT,EAAGA,6KAnMzBiK,EAAAA,WAAUuB,KAAA,CAAC,CACVC,WAAY,8EAQC4H,EAAAA,OAAM7H,KAAA,CAAC8H,EAAAA,mBA1BOC,EAAAA,oBCQ7B,IAAMC,GAAY,SAAUrS,GAC1B,YAAiBsS,IAAVtS,uBAWP,SAAAuS,EAAwBC,EAA4DC,GAJ5ExM,KAAAyM,wBAA0B,IAAIC,EAAAA,QAKpC1M,KAAK2M,OAASH,GAAiB,GAC3BD,IACFvM,KAAKuM,aAAeA,GAEtBvM,KAAKoI,gBAAgBpI,KAAK2M,OAAOtE,cAGnCiE,EAAApT,UAAA0T,sBAAA,SAAqDC,SACnD,OAAkB,QAAXC,EAAA9M,KAAK2M,cAAM,IAAAG,OAAA,EAAAA,EAAEC,YAAa/M,KAAK2M,OAAOI,WAAWF,QAAiBR,GAG3EC,EAAApT,UAAA8T,iCAAA,SAAiCH,GAC/B,OAAO7M,KAAKyM,wBAAwBQ,KAClChS,EAAAA,QAAO,SAACd,GAAM,OAAAA,IAAM0S,KACpBK,EAAAA,WAAMb,KAIVC,EAAApT,UAAA+G,IAAA,SAAmC4M,EAAkB9S,UACpC,QAAf+S,EAAI9M,KAAK2M,cAAM,IAAAG,OAAA,EAAAA,EAAEC,cACf/M,KAAK2M,OAAOI,WAAWF,GAAchU,OAAA+K,OAAA/K,OAAA+K,OAAA,GAAQ5D,KAAK2M,OAAOI,WAAWF,IAAmB9S,GACvFiG,KAAKyM,wBAAwB3S,KAAK+S,KAItCP,EAAApT,UAAAiU,aAAA,SAAa9E,GACX,IAAIE,EAASF,MAAAA,OAAK,EAALA,EAAOE,OACfA,IAAQA,EAASf,IACtBxH,KAAKwI,SAAS,CACZD,OAAQvI,KAAKuM,aAAavC,gBAAgBnR,OAAO+K,OAAO,GAAI5D,KAAKuM,aAAanD,oBAAoBpC,IAAiBuB,GAAS,IAAI,MAIpI+D,EAAApT,UAAAkU,cAAA,SAAc/E,GACZ,IAAIE,EAASF,MAAAA,OAAK,EAALA,EAAOE,OACfA,IAAQA,EAASvB,IACtBhH,KAAKwI,SAAS,CACZD,OAAQvI,KAAKuM,aAAavC,gBAAgBnR,OAAO+K,OAAO,GAAI5D,KAAKuM,aAAanD,oBAAoBpC,IAAiBuB,GAAS,IAAI,MAIpI+D,EAAApT,UAAAsP,SAAA,SAASH,GACPrI,KAAKuM,aAAa/D,SAASH,IAG7BiE,EAAApT,UAAAkP,gBAAA,SAAgBC,GACdrI,KAAKuM,aAAanE,gBAAgBC,IAGpCiE,EAAApT,UAAAuP,SAAA,SAASC,GACP,YADO,IAAAA,IAAAA,GAAA,GACA1I,KAAKuM,aAAa9D,SAASC,+JA3DrC7F,EAAAA,WAAUuB,KAAA,CAAC,CACVC,WAAY,qDARLsD,GAAa0F,WAAA,CAAA,CAAA/P,KAePgQ,EAAAA,2CAA0CA,EAAAA,UAAQ,CAAAhQ,KAAI2O,EAAAA,OAAM7H,KAAA,CAACiC,6BVsBnDlG,EAAaqJ,GACpC,IAAI+D,EAAKrN,EAAQC,GACjB,OAAKqN,MAAMD,EAAGE,YAAcjE,GAC1B+D,EAAGG,QAAQH,EAAGI,UAAYnE,GACnB+D,GAEApN,wBAhBeA,EAAaqJ,GACrC,IAAI+D,EAAKrN,EAAQC,GACjB,OAAKqN,MAAMD,EAAGE,YAAcjE,GAC1B+D,EAAGK,SAASL,EAAGM,WAAarE,GACrB+D,GAEApN,0BAhBiBA,EAAaqJ,GACvC,IAAI+D,EAAKrN,EAAQC,GACjB,OAAKqN,MAAMD,EAAGE,YAAcjE,GAC1B+D,EAAGO,WAAWP,EAAGQ,aAAevE,GACzB+D,GAEApN,yBAwBgBA,EAAaqJ,GACtC,IAAI+D,EAAKrN,EAAQC,GACjB,OAAKqN,MAAMD,EAAGE,YAAcjE,GAC1B+D,EAAGS,SAAST,EAAGU,WAAazE,GACrB+D,GAEApN,0BA9CiBA,EAAaqJ,GACvC,IAAI+D,EAAKrN,EAAQC,GACjB,OAAKqN,MAAMD,EAAGE,YAAcjE,GAC1B+D,EAAGW,WAAWX,EAAGY,aAAe3E,GACzB+D,GAEApN,wBA4CeA,EAAaqJ,GACrC,IAAI+D,EAAKrN,EAAQC,GACjB,OAAKqN,MAAMD,EAAGE,YAAcjE,GAC1B+D,EAAGa,YAAYb,EAAGc,cAAgB7E,GAC3B+D,GAEApN,qBD6EYpG,EAAeuU,EAAa7S,GACjD,OAAOD,KAAKC,IAAI6S,EAAK9S,KAAK8S,IAAI7S,EAAK1B,kCAlDT,IAAAwU,EAAA,GAAAC,EAAA,EAAAA,EAAApM,UAAAvI,OAAA2U,IAAAD,EAAAC,GAAApM,UAAAoM,GAC1BD,EAAUtF,SAAQ,SAAC5I,GACjB,IAAK,IAAMnF,KAAOmF,EAChBA,EAASnF,IAAO,oGA2CpB,OAAOiE,EAAqB,eAAgBJ,kEA7D9B0P,EAAmDC,EAAYC,EAASC,SAKtF,OAJAD,EAAKC,MAAQA,EACbD,EAAKE,SAAWH,EAAMzT,QAAO,SAAC+I,GAAM,OAAAA,EAAE8K,MAAQH,EAAKjT,MACnDiT,EAAKI,MAAoB,QAAbjC,EAAA6B,EAAKE,gBAAQ,IAAA/B,OAAA,EAAAA,EAAEjT,QAAS,EAChC8U,EAAKI,MAAMJ,EAAKE,SAAS7P,KAAI,SAACgF,GAAM,OAAAyK,EAAaC,EAAO1K,EAAG4K,EAAQ,MAChED,6DAgDP,OAAOxP,EAAqB,gBAAiBV,8BAI7C,OAAOU,EAAqB,eAAgBR,gCAjDbqQ,GAC/B,OAAOnW,OAAO6O,KAAKsH,GAAKC,QAAO,SAACC,EAAIhU,GAElC,OADAgU,EAAGjP,IAAI+O,EAAI9T,GAAMA,GACVgU,IACN,IAAIC,8CF1EgB,uBAACC,EAAA,GAAAZ,EAAA,EAAAA,EAAApM,UAAAvI,OAAA2U,IAAAY,EAAAZ,GAAApM,UAAAoM,OACxB,IAAmB,IAAAa,EAAA/V,EAAA8V,GAAOE,EAAAD,EAAAvV,QAAAwV,EAAAtV,KAAAsV,EAAAD,EAAAvV,OAAE,CAAvB,IAAIyV,EAAMD,EAAAvV,MACb,IAAIwV,MAAAA,OAAM,EAANA,EAAQC,iBAAiBD,MAAAA,OAAM,EAANA,EAAQE,eAAe,OAAO,oGAE7D,OAAO,qGAgBqB,SAAClS,GAAgB,OAAAG,EAASH,IAAWA,EAAO1D,OAAS,GAAKgE,EAAUN,EAAO,gIAD5E,SAACA,GAAgB,OAAAG,EAASH,IAAWA,EAAO1D,OAAS,IAAMgE,EAAUN,EAAO,oBAO7E,SAACA,GAAgB,OAAAE,EAAUF,IAAWI,EAAUJ,IAAWS,EAAQT,IAAWgB,EAAehB,qJc1ClG,eAAC,IAAAmS,EAAA,GAAAlB,EAAA,EAAAA,EAAApM,UAAAvI,OAAA2U,IAAAkB,EAAAlB,GAAApM,UAAAoM,GACtB,OAAO,IAAI1K,EAAAA,YACT,SACE7E,WAKM0Q,EAAiB,IAAIC,EAAAA,SAAe,SAAChF,eACzC,IAAoB,IAAAiF,EAAAvW,EAAAsR,GAAOkF,EAAAD,EAAA/V,QAAAgW,EAAA9V,KAAA8V,EAAAD,EAAA/V,OAAE,CAAxB,IAAMiW,EAAKD,EAAA/V,MACdkF,EAAEnF,KAAK,CAAEiW,MAAOA,EAAOJ,eAAgBA,8GAG3C,IAAgB,IAAAK,EAAA1W,EAAAoW,GAAOO,EAAAD,EAAAlW,QAAAmW,EAAAjW,KAAAiW,EAAAD,EAAAlW,OAAE,CAApB,IAAIoW,EAAGD,EAAAlW,MACNmW,GAAKP,EAAejM,QAAQwM,wJZ8BZvN,EAAgBwN,EAA0BC,EAAkBC,GACtF,YADoE,IAAAD,IAAAA,GAAA,QAAkB,IAAAC,IAAAA,EAAA,MAC/E,IAAIvM,EAAAA,YAAW,SAAC7E,GACrB,IAAM+J,EAAS,SAACsH,GACdrR,EAAEnF,KAAKwW,GACPrR,EAAEgF,iBAEgB,IAATtB,EACTqG,EAAO,IAEH3K,EAAcsE,GACfA,EACEsK,KACCjO,EAAAA,KAAI,SAACgF,GAAM,OAACoM,EAAYrR,EAAeiF,GAAKA,KAC5CuM,EAAAA,UAAUJ,IAEXpM,WAAU,SAACC,GACVgF,EAAOhF,MAEFjG,EAAY4E,GACpBA,EAAyC0N,GACvCpD,KACCjO,EAAAA,KAAI,SAACgF,GAAM,OAACoM,EAAYrR,EAAeiF,GAAKA,KAC5CuM,EAAAA,UAAUJ,IAEXpM,WAAU,SAACC,GACVgF,EAAOhF,MAGXgF,EAAQoH,EAAYrR,EAAe4D,GAAQA,6JWCpBkK,EAAoC2D,GACjE,OAAO,SAAyBlR,EAAaC,EAAeC,GAC1D,IAAMC,EAAkB,sBAAsBF,EAQ9C,OANA1G,OAAO+G,eAAeN,EAAQG,EAAiB,CAC7CI,cAAc,EACdC,UAAU,EACV2Q,YAAY,IAGP,CACL1Q,IAAG,iBACK2Q,EAAgBlR,GAAsBA,EAAmBO,IAAMP,EAAmBO,IAAIjF,KAAKkF,KAA5BR,GAAsCQ,KAAKP,GAEhH,GAAI2M,GAAUsE,GACZ,OAAOA,EAGT,IACMC,IADoC,QAAlB7D,EAAA9M,KAAK4Q,qBAAa,IAAA9D,OAAA,EAAAA,EAAEF,sBAAsBC,KAAkB,IAChDtN,GAEpC,OAAO6M,GAAUuE,GAAeA,EAAcH,GAEhDvQ,IAAG,SAAClG,GACEyF,GAAsBA,EAAmBS,IAC3CT,EAAmBS,IAAInF,KAAKkF,KAA5BR,CAAkCzF,GAElCiG,KAAKP,GAAmB1F,GAG5B8F,cAAc,EACd4Q,YAAY,mSE3GOI,EAAY7K,QAAA,IAAAA,IAAAA,EAAA,GACnC,IAAM8K,EAAe,MAATD,EAAgB,EAAIA,EAAMhX,OACtC,IAAKiX,GAAO9K,EAAO,EACjB,MAAO,GAMT,IAJA,IAAID,EAAQ,EACRgL,EAAW,EACT/H,EAAS,IAAIhQ,MAAMwC,KAAKwV,KAAKF,EAAM9K,IAElCD,EAAQ+K,GACb9H,EAAO+H,KAAcF,EAAM/E,MAAM/F,EAAQA,GAASC,GAEpD,OAAOgD,4BCZqB0G,EAAsBvT,GAGlD,OAFe+L,iBAAiBwH,GACXvT,GACR8F,QAAQ,MAAO,4BCEFqB,EAAqC2N,GAC/D,GAAI3N,GAAU2N,EACZ,IAAK,IAAM/V,KAAO+V,OACW,IAAhB3N,EAAOpI,KAChBoI,EAAOpI,GAAO+V,EAAI/V,wBCTC2V,EAAYzR,GACrC,IAAM8R,EAAc,GAMpB,OALAL,EAAM5H,SAAQ,SAAC+F,GACb,IAAMmC,EAAQ1P,KAAKC,UAAUsN,EAAI5P,IACjC8R,EAAOC,GAASD,EAAOC,IAAU,GACjCD,EAAOC,GAAO5W,KAAKyU,MAEdnW,OAAO6O,KAAKwJ,GAAQlS,KAAI,SAACmS,GAAU,OAAAD,EAAOC,yBCHjD,IAAI/L,EAAK,WACP,OAA+B,OAArB,EAAI5J,KAAK6J,UAAuB,GAAG7H,SAAS,IAAI8H,UAAU,IAEtE,OAAOF,IAAOA,IAAO,IAAMA,IAAO,IAAMA,IAAO,IAAMA,IAAO,IAAMA,IAAOA,IAAOA,2CCJtDgM,GAC1B,IAAMC,EAAgBD,EAAcC,cACpC,GAAKA,GAAkBA,EAAcC,aAArC,CACA,KAAOF,EAAcG,YACnBF,EAAcC,aAAaF,EAAcG,WAAYH,GAEvDC,EAAc5G,YAAY2G,2CCND9J,OAAc,IAAAkK,EAAA,GAAAhD,EAAA,EAAAA,EAAApM,UAAAvI,OAAA2U,IAAAgD,EAAAhD,EAAA,GAAApM,UAAAoM,GACrC,OAAKlH,GAA0B,iBAAlB,EAENkK,EAAW3X,OAAS,EACrByN,EAAKrF,QAAQ,IAAIwP,OAAO,UAAWD,EAAW1P,KAAK,KAAI,eAAkB,KAAM,IAC/EwF,EAAKrF,QAAQ,gBAAiB,IAHzBqF,2DCDb5H,QAAQC,KAAK,yDAHbD,QAAQC,KAAK","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","// tslint:disable:no-any typedef no-invalid-this\r\nconst availablePrefixes = ['moz', 'ms', 'webkit'];\r\n\r\nfunction requestAnimationFramePolyfill(): typeof requestAnimationFrame {\r\n let lastTime = 0;\r\n return function (callback: FrameRequestCallback): any {\r\n const currTime = new Date().getTime();\r\n const timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n const id = setTimeout(() => {\r\n callback(currTime + timeToCall);\r\n }, timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n}\r\n\r\nfunction getRequestAnimationFrame(): typeof requestAnimationFrame {\r\n if (typeof window === 'undefined') {\r\n return () => 0;\r\n }\r\n if (window.requestAnimationFrame) {\r\n return window.requestAnimationFrame.bind(window);\r\n }\r\n\r\n const prefix = availablePrefixes.filter((key) => `${key}RequestAnimationFrame` in window)[0];\r\n\r\n return prefix ? (window as any)[`${prefix}RequestAnimationFrame`] : requestAnimationFramePolyfill();\r\n}\r\n// export function cancelRequestAnimationFrame(id: number): any {\r\n// if (typeof window === \"undefined\") {\r\n// return null;\r\n// }\r\n// if (window.cancelAnimationFrame) {\r\n// return window.cancelAnimationFrame(id);\r\n// }\r\n// const prefix = availablePrefixes.filter(\r\n// key =>\r\n// `${key}CancelAnimationFrame` in window ||\r\n// `${key}CancelRequestAnimationFrame` in window\r\n// )[0];\r\n\r\n// return prefix\r\n// ? (\r\n// (window as any)[`${prefix}CancelAnimationFrame`] ||\r\n// (window as any)[`${prefix}CancelRequestAnimationFrame`]\r\n// )\r\n// // @ts-ignore\r\n// .call(this, id)\r\n// : clearTimeout(id);\r\n// }\r\n\r\nexport const reqAnimFrame = getRequestAnimationFrame();\r\n","export enum XDuration {\r\n Slow = '0.3s',\r\n Base = '0.2s',\r\n Fast = '0.1s'\r\n}\r\n","import { AnimationTriggerMetadata, trigger, state, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\n// 进场动画\r\nconst XDURATION_BASE_EASE_IN = `${XDuration.Fast} ease-in`;\r\n// 移除动画\r\nconst XDURATION_BASE_EASE_OUT = `${XDuration.Fast} ease-out`;\r\n\r\nexport const XFadeAnimation: AnimationTriggerMetadata = trigger('x-fade-animation', [\r\n transition(':enter', [\r\n style({ opacity: 0, transform: 'scale(0.8)' }),\r\n animate(`${XDURATION_BASE_EASE_IN}`, style({ opacity: 1, transform: 'scale(1)' }))\r\n ]),\r\n transition(':leave', [animate(`${XDURATION_BASE_EASE_OUT}`, style({ opacity: 0 }))])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\nexport const XSlideAnimation: AnimationTriggerMetadata = trigger('x-slide-animation', [\r\n transition('void => right', [style({ transform: 'translate(100%,0)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('right => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(100%,0)' }))]),\r\n transition('void => left', [style({ transform: 'translate(-100%,0)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('left => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(-100%,0)' }))]),\r\n transition('void => top', [style({ transform: 'translate(0,-100%)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('top => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(0,-100%)' }))]),\r\n transition('void => bottom', [style({ transform: 'translate(0,100%)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('bottom => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(0,100%)' }))])\r\n]);\r\n\r\nexport const XSliderAnimation: AnimationTriggerMetadata = trigger('x-slider-animation', [\r\n transition('void => left, void => right', [\r\n style({\r\n width: 0,\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n width: '*',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void, right => void', [\r\n style({\r\n width: '*',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n width: 0,\r\n opacity: 0\r\n })\r\n )\r\n ])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, state, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\nexport const XDropAnimation: AnimationTriggerMetadata = trigger('x-drop-animation', [\r\n state('*', style({ opacity: 0, height: 0, border: 0, padding: 0, visibility: 'hidden' })),\r\n state('false', style({ opacity: 0, height: 0, border: 0, padding: 0, visibility: 'hidden' })),\r\n state('true', style({ opacity: 1, height: '*', border: '*', padding: '*', visibility: 'inherit' })),\r\n transition('* => *', animate(`${XDuration.Base} ease-out`))\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\nexport const XMoveAnimation: AnimationTriggerMetadata = trigger('x-move-animation', [\r\n transition('void => top-start, void => top, void => top-end, void => center', [\r\n style({\r\n transform: 'translateY(-100%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('top-start => void, top => void, top-end => void, center => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(-100%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => left', [\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => right', [\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('right => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => bottom-start, void => bottom, void => bottom-end', [\r\n style({\r\n transform: 'translateY(100%)',\r\n opacity: 0,\r\n height: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1,\r\n height: '*'\r\n })\r\n )\r\n ]),\r\n transition('bottom-start => void, bottom => void, bottom-end => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(100%)',\r\n opacity: 0\r\n })\r\n )\r\n ])\r\n]);\r\n\r\nexport const XMoveBoxAnimation: AnimationTriggerMetadata = trigger('x-move-box-animation', [\r\n transition('void => top-start, void => top, void => top-end, void => center', [\r\n style({\r\n transform: 'translateY(-2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('top-start => void, top => void, top-end => void, center => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(-2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ]),\r\n transition('void => left', [\r\n style({\r\n transform: 'translateX(-2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(-2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ]),\r\n transition('void => right', [\r\n style({\r\n transform: 'translateX(2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('right => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ]),\r\n transition('void => bottom-start, void => bottom, void => bottom-end', [\r\n style({\r\n transform: 'translateY(2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('bottom-start => void, bottom => void, bottom-end => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\n// 进场动画\r\nconst XDURATION_BASE_EASE_IN = `${XDuration.Fast} ease-in`;\r\n// 移除动画\r\nconst XDURATION_BASE_EASE_OUT = `${XDuration.Fast} ease-out`;\r\n\r\nexport const XConnectAnimation: AnimationTriggerMetadata = trigger('x-connect-animation', [\r\n transition('void => top-start, void => top, void => top-end, void => center', [\r\n style({\r\n opacity: 0\r\n // transform: 'scaleY(0.8)',\r\n // transformOrigin: '0% 100%'\r\n }),\r\n animate(\r\n XDURATION_BASE_EASE_IN,\r\n style({\r\n opacity: 1\r\n // transform: 'scaleY(1)',\r\n // transformOrigin: '0% 100%'\r\n })\r\n )\r\n ]),\r\n transition('top-start => void, top => void, top-end => void, center => void', [\r\n style({\r\n opacity: 1\r\n // transform: 'scaleY(1)',\r\n // transformOrigin: '0% 100%'\r\n }),\r\n animate(\r\n XDURATION_BASE_EASE_OUT,\r\n style({\r\n opacity: 0\r\n // transform: 'scaleY(0.8)',\r\n // transformOrigin: '0% 100%'\r\n })\r\n )\r\n ]),\r\n transition('void => left', [\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => right', [\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('right => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => bottom-start, void => bottom, void => bottom-end', [\r\n style({\r\n opacity: 0\r\n // transform: 'scale(0)',\r\n // transformOrigin: '0% 0%'\r\n }),\r\n animate(\r\n XDURATION_BASE_EASE_IN,\r\n style({\r\n opacity: 1\r\n // transform: 'scale(1)',\r\n // transformOrigin: '30% 30%'\r\n })\r\n )\r\n ]),\r\n transition('bottom-start => void, bottom => void, bottom-end => void', [\r\n style({\r\n opacity: 1\r\n // transform: 'scale(1)',\r\n // transformOrigin: '30% 30%'\r\n }),\r\n animate(\r\n XDURATION_BASE_EASE_OUT,\r\n style({\r\n opacity: 0\r\n // transform: 'scale(0)',\r\n // transformOrigin: '0% 0%'\r\n })\r\n )\r\n ])\r\n]);\r\n\r\nexport const XConnectBaseAnimation: AnimationTriggerMetadata = trigger('x-connect-base-animation', [\r\n transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate(XDURATION_BASE_EASE_IN)]),\r\n transition(':leave', [animate(XDURATION_BASE_EASE_OUT, style({ opacity: 0 }))])\r\n]);\r\n","import { Observable, isObservable } from 'rxjs';\r\nimport { TemplateRef, SimpleChange } from '@angular/core';\r\n\r\n// 数据类型\r\nexport type XData<T> = T[] | Observable<T[] | any[]> | any[] | Function;\r\n\r\n// Boolean 类型\r\nexport type XBoolean = boolean | string;\r\n\r\n// Number 类型\r\nexport type XNumber = number | string;\r\n\r\n// 模板类型\r\nexport type XTemplate = string | number | Date | TemplateRef<any>;\r\n\r\n// 类型判断\r\nexport const XIsType = (type: string) => (object: any) => Object.prototype.toString.call(object) === `[object ${type}]`;\r\n\r\n// 值改变判断\r\nexport const XIsChange = (...changes: SimpleChange[]) => {\r\n for (let change of changes) {\r\n if (change?.currentValue !== change?.previousValue) return true;\r\n }\r\n return false;\r\n};\r\n\r\nexport const XIsString = XIsType('String');\r\nexport const XIsArray = XIsType('Array');\r\nexport const XIsNumber = XIsType('Number');\r\nexport const XIsBoolean = XIsType('Boolean');\r\nexport const XIsObject = XIsType('Object');\r\nexport const XIsNull = XIsType('Null');\r\nexport const XIsFunction = XIsType('Function');\r\nexport const XIsDate = XIsType('Date');\r\nexport const XIsRegExp = XIsType('RegExp');\r\nexport const XIsValue = (object: any) => XIsString(object) || XIsNumber(object) || XIsBoolean(object) || XIsDate(object);\r\nexport const XIsUndefined = (object: any) => typeof object === 'undefined';\r\nexport const XIsEmpty = (object: any) => typeof object === 'undefined' || object === null || object === '' || object.length === 0;\r\nexport const XIsValueArray = (object: any) => XIsArray(object) && object.length > 0 && !XIsObject(object[0]);\r\nexport const XIsObjectArray = (object: any) => XIsArray(object) && object.length > 0 && XIsObject(object[0]);\r\nexport const XIsObservable = (object: any) => isObservable(object);\r\nexport const XIsTemplateRef = (object: any) => {\r\n if (!XIsEmpty(object) && object.elementRef) return true;\r\n else return false;\r\n};\r\nexport const XIsXTemplate = (object: any) => XIsString(object) || XIsNumber(object) || XIsDate(object) || XIsTemplateRef(object);\r\n","// 标识对象\r\nexport interface XIdentityProperty {\r\n // 编码\r\n id?: any;\r\n // 标题\r\n label?: any;\r\n}\r\n\r\n// 父节点标识对象\r\nexport interface XParentIdentityProperty<T> extends XIdentityProperty {\r\n // 编码\r\n pid?: any;\r\n // 层级\r\n level?: number;\r\n // 叶子节点\r\n leaf?: boolean;\r\n // 子节点\r\n children?: T[];\r\n // 选中\r\n selected?: boolean;\r\n // 禁用\r\n disabled?: boolean;\r\n}\r\n\r\n// 标识对象\r\nexport class XIdentity {\r\n // 编码\r\n id?: any;\r\n // 标题\r\n label?: any;\r\n}\r\n","import { coerceBooleanProperty, _isNumberValue } from '@angular/cdk/coercion';\r\nimport {\r\n XData,\r\n XIsNull,\r\n XIsUndefined,\r\n XIsArray,\r\n XIsValue,\r\n XIsObject,\r\n XIsObservable,\r\n XParentIdentityProperty,\r\n XBoolean,\r\n XClassMap,\r\n XIsFunction\r\n} from '../interfaces';\r\nimport { Observable, Subject, Observer } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\nexport function XToBoolean(value: XBoolean): boolean {\r\n // if (XIsString(value)) {\r\n // return ['', 'true'].indexOf(String(value).trim()) !== -1;\r\n // } else {\r\n // return Boolean(value);\r\n // }\r\n return coerceBooleanProperty(value);\r\n}\r\n\r\nfunction XToNumber(value: number | string): number;\r\nfunction XToNumber<D>(value: number | string, fallback: D): number | D;\r\nfunction XToNumber(value: number | string, fallbackValue: number = 0): number {\r\n return _isNumberValue(value) ? Number(value) : fallbackValue;\r\n}\r\n\r\nexport function XToDataConvert<T>(value: XData<T>): XData<T> {\r\n if (XIsArray(value)) {\r\n return (value as []).map((x: any) => {\r\n if (XIsValue(x)) {\r\n return { label: x, id: x };\r\n } else if (XIsObject(x)) {\r\n x.label = XIsUndefined(x.label) || XIsNull(x.label) ? x.id : x.label;\r\n x.id = XIsUndefined(x.id) || XIsNull(x.id) ? x.label : x.id;\r\n return x;\r\n }\r\n });\r\n }\r\n return value;\r\n}\r\n\r\nexport function XSetData<T>(data: XData<T>, unSubject: Subject<void>, toConvert = true, funcParam = null): Observable<T[]> {\r\n return new Observable((x: Observer<T[]>) => {\r\n const result = (res: T[]) => {\r\n x.next(res);\r\n x.complete();\r\n };\r\n if (typeof data === 'undefined') {\r\n result([]);\r\n } else {\r\n if (XIsObservable(data)) {\r\n (data as Observable<T[]>)\r\n .pipe(\r\n map((y) => (toConvert ? XToDataConvert(y) : y)),\r\n takeUntil(unSubject)\r\n )\r\n .subscribe((y) => {\r\n result(y as T[]);\r\n });\r\n } else if (XIsFunction(data)) {\r\n (data as (param: any) => Observable<T[]>)(funcParam)\r\n .pipe(\r\n map((y) => (toConvert ? XToDataConvert(y) : y)),\r\n takeUntil(unSubject)\r\n )\r\n .subscribe((y) => {\r\n result(y as T[]);\r\n });\r\n } else {\r\n result((toConvert ? XToDataConvert(data) : data) as T[]);\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport function XGetChildren<T extends XParentIdentityProperty<T>>(nodes: T[], node: T, level: number) {\r\n node.level = level;\r\n node.children = nodes.filter((y) => y.pid === node.id);\r\n node.leaf = node.children?.length > 0;\r\n if (node.leaf) node.children.map((y) => XGetChildren(nodes, y, level + 1));\r\n return node;\r\n}\r\n\r\nexport function XInvertKeyValues(obj: any): Map<any, any> {\r\n return Object.keys(obj).reduce((nw, key) => {\r\n nw.set(obj[key], key);\r\n return nw;\r\n }, new Map());\r\n}\r\n\r\nexport function XClearClass(...classMaps: XClassMap[]) {\r\n classMaps.forEach((classMap) => {\r\n for (const key in classMap) {\r\n classMap[key] = false;\r\n }\r\n });\r\n}\r\n\r\nfunction propDecoratorFactory<T, D>(name: string, fallback: (v: T) => D): (target: any, propName: string) => void {\r\n function propDecorator(target: any, propName: string, originalDescriptor?: TypedPropertyDescriptor<any>): any {\r\n const privatePropName = `$$__${propName}`;\r\n\r\n if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {\r\n console.warn(`The prop \"${privatePropName}\" is already exist, it will be overrided by ${name} decorator.`);\r\n }\r\n\r\n Object.defineProperty(target, privatePropName, {\r\n configurable: true,\r\n writable: true\r\n });\r\n\r\n return {\r\n get(): string {\r\n return originalDescriptor && originalDescriptor.get ? originalDescriptor.get.bind(this)() : this[privatePropName];\r\n },\r\n set(value: T): void {\r\n if (originalDescriptor && originalDescriptor.set) {\r\n originalDescriptor.set.bind(this)(fallback(value));\r\n }\r\n this[privatePropName] = fallback(value);\r\n }\r\n };\r\n }\r\n\r\n return propDecorator;\r\n}\r\n\r\nexport function XInputBoolean(): any {\r\n return propDecoratorFactory('XInputBoolean', XToBoolean);\r\n}\r\n\r\nexport function XInputNumber(): any {\r\n return propDecoratorFactory('XInputNumber', XToNumber);\r\n}\r\n\r\nexport function XDataConvert(): any {\r\n return propDecoratorFactory('XDataConvert', XToDataConvert);\r\n}\r\n\r\nexport function XClamp(value: number, min: number, max: number) {\r\n return Math.max(min, Math.min(max, value));\r\n}\r\n","import { XIsDate, XIsNumber } from '../interfaces';\r\n\r\nexport type XDate = string | Date | number;\r\n\r\nexport function XToDate(date: XDate): Date {\r\n if (XIsDate(date) || XIsNumber(date)) {\r\n return new Date(date);\r\n } else {\r\n return new Date(Date.parse(date as string));\r\n }\r\n}\r\n\r\nexport function XAddSeconds(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setSeconds(dt.getSeconds() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddMinutes(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setMinutes(dt.getMinutes() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddHours(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setHours(dt.getHours() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddDays(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setDate(dt.getDate() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddMonths(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setMonth(dt.getMonth() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddYears(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setFullYear(dt.getFullYear() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n","import { XClassMap } from '../interfaces';\r\n\r\n/**\r\n * 组件公共属性\r\n */\r\nexport class XProperty {\r\n /**\r\n * 样式映射属性\r\n */\r\n classMap: XClassMap = {};\r\n}\r\n","import { RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';\r\n\r\nexport interface XRouteReuseStorage {\r\n id: string;\r\n handle: DetachedRouteHandle;\r\n}\r\n\r\n// @dynamic\r\nexport class XReuseStrategyService implements RouteReuseStrategy {\r\n // 存储的复用路由\r\n public static storages: XRouteReuseStorage[] = [];\r\n // 用一个临时变量记录待删除的路由\r\n private static waitDelete: string | null;\r\n\r\n /**\r\n * 表示对所有路由允许复用 如果你有路由不想利用可以在这加一些业务逻辑判断\r\n */\r\n public shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n return true;\r\n }\r\n\r\n /**\r\n * 当路由离开时会触发。按path作为key存储路由快照&组件当前实例对象\r\n */\r\n public store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\r\n if (handle == null) return;\r\n if (XReuseStrategyService.waitDelete && this.getRouteUrl(route).indexOf(XReuseStrategyService.waitDelete) == 0) {\r\n //如果待删除是当前路由则不存储快照\r\n XReuseStrategyService.waitDelete = null;\r\n return;\r\n }\r\n this.add(this.getRouteUrl(route), handle);\r\n }\r\n\r\n /**\r\n * 若 path 在缓存中有的都认为允许还原路由\r\n */\r\n public shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n return !!XReuseStrategyService.storages.find((x) => x.id == this.getRouteUrl(route));\r\n }\r\n\r\n /**\r\n * 从缓存中获取快照,若无则返回nul\r\n */\r\n public retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle {\r\n if (!route.routeConfig) {\r\n return {};\r\n }\r\n let stroage = XReuseStrategyService.storages.find((x) => x.id == this.getRouteUrl(route));\r\n return stroage ? stroage.handle : {};\r\n }\r\n\r\n /**\r\n * 进入路由触发,判断是否同一路由\r\n * 解决不同的参数也会认为是同一个路由,导致会将之前的路由拿出来复用\r\n */\r\n public shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\r\n return future.routeConfig === curr.routeConfig && JSON.stringify(future.params) == JSON.stringify(curr.params);\r\n }\r\n\r\n /**\r\n * 解决不同的主路由会存在相同名称的子路由\r\n */\r\n private getRouteUrl(route: ActivatedRouteSnapshot) {\r\n let url = route.url.map((x) => x.path).join('_');\r\n return url;\r\n }\r\n\r\n /**\r\n * 删除复用的路由\r\n */\r\n public static deleteRouteSnapshot(name?: string): void {\r\n if (name) {\r\n let id = name.replace(/\\//g, '_');\r\n XReuseStrategyService.storages.splice(\r\n XReuseStrategyService.storages.findIndex((x) => x.id.indexOf(id) === 0),\r\n 1\r\n );\r\n XReuseStrategyService.waitDelete = id;\r\n } else {\r\n XReuseStrategyService.storages = [];\r\n }\r\n }\r\n\r\n private add(id: string, handle: DetachedRouteHandle) {\r\n XReuseStrategyService.storages.splice(\r\n XReuseStrategyService.storages.findIndex((x) => x.id == id),\r\n 1\r\n );\r\n XReuseStrategyService.storages = [...XReuseStrategyService.storages, { id: id, handle: handle }];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { PreloadingStrategy, Route } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n// @dynamic\r\n@Injectable()\r\nexport class XPreloadingStrategyService implements PreloadingStrategy {\r\n // 需要预加载的模块\r\n preloadedModules: string[] = [];\r\n\r\n preload(route: Route, load: () => Observable<any>): Observable<any> {\r\n if (route.data && route.data.preload) {\r\n this.preloadedModules.push(route.path as string);\r\n return load();\r\n } else {\r\n return of(null);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\n\r\n// @dynamic\r\n@Injectable({ providedIn: 'root' })\r\nexport class XHttpService {\r\n api: string = '';\r\n constructor(public http: HttpClient) {}\r\n\r\n /**\r\n * get请求\r\n */\r\n get(url: string, params?: { [property: string]: any }) {\r\n return this.request('GET', url, params);\r\n }\r\n\r\n /**\r\n * get请求\r\n */\r\n post(url: string, params?: { [property: string]: any }): Observable<any> {\r\n return this.request('POST', url, params);\r\n }\r\n\r\n /**\r\n * put请求\r\n */\r\n put(url: string, params?: { [property: string]: any }): Observable<any> {\r\n return this.request('PUT', url, params);\r\n }\r\n\r\n /**\r\n * delete请求\r\n */\r\n delete(url: string, params?: { [property: string]: any }): Observable<any> {\r\n return this.request('DELETE', url, params);\r\n }\r\n\r\n /**\r\n * request通用请求\r\n */\r\n request(method: string, url: string, params?: { [property: string]: any }, option?: { [property: string]: any }): Observable<any> {\r\n if (!option) option = {};\r\n let opt = {};\r\n url = `${this.api}${url}`;\r\n method = method.toUpperCase();\r\n if (['POST', 'PUT', 'DELETE'].indexOf(method) > -1) {\r\n opt = { body: params, observe: 'body', responseType: 'json' };\r\n } else if (['GET'].indexOf(method) > -1) {\r\n opt = { params: params };\r\n }\r\n Object.assign(opt, option);\r\n this.addHeader(opt);\r\n return new Observable((x) => {\r\n this.http.request(method, url, opt).subscribe(\r\n (y: any) => {\r\n x.next(y);\r\n x.complete();\r\n },\r\n (y) => {\r\n x.error(y);\r\n x.complete();\r\n this.handleError(y);\r\n }\r\n );\r\n });\r\n }\r\n\r\n /**\r\n * 错误处理\r\n */\r\n handleError(error: HttpErrorResponse) {\r\n if (error.error) {\r\n }\r\n return throwError(error.error);\r\n }\r\n\r\n /**\r\n * 添加头部信息\r\n */\r\n private addHeader(option: { [property: string]: any }) {\r\n // let auth = this.setting.getSession(\"Auth\");\r\n // if (auth && auth[\"token\"]) {\r\n // option[\"headers\"] = { Authorization: `Bearer ${auth[\"token\"]}` };\r\n // }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n// @dynamic\r\n@Injectable({ providedIn: 'root' })\r\nexport class XStorageService {\r\n constructor() {}\r\n\r\n /**\r\n * 获取本地值\r\n */\r\n getLocal(key: string) {\r\n return JSON.parse(localStorage.getItem(key) || 'null') || null;\r\n }\r\n\r\n /**\r\n * 设置本地值\r\n */\r\n setLocal(key: string, value: any) {\r\n localStorage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n /**\r\n * 获取当前会话的值\r\n */\r\n getSession(key: string) {\r\n return JSON.parse(sessionStorage.getItem(key) || 'null') || null;\r\n }\r\n\r\n /**\r\n * 设置当前会话值\r\n */\r\n setSession(key: string, value: any) {\r\n sessionStorage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n /**\r\n * 移除本地值\r\n */\r\n removeLocal(key: string) {\r\n localStorage.removeItem(key);\r\n }\r\n\r\n /**\r\n * 移除当前会话\r\n */\r\n removeSession(key: string) {\r\n sessionStorage.removeItem(key);\r\n }\r\n\r\n /**\r\n * 生成guid\r\n */\r\n guid() {\r\n let S4 = () => {\r\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n };\r\n return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\r\n }\r\n}\r\n","import { XId, XQuery, XResultList } from '../interfaces';\r\nimport { XHttpService } from './http.service';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface XRepositoryInput {\r\n api?: string;\r\n controller: XController;\r\n}\r\n\r\nexport interface XController {\r\n name: string;\r\n}\r\n\r\nexport abstract class XRepositoryAbstract {\r\n abstract getList(index?: number, size?: number, query?: XQuery): Observable<XResultList<any>>;\r\n abstract get(id: number | string): Observable<any>;\r\n abstract post(entity: any): Observable<any>;\r\n abstract put(entity: any): Observable<any>;\r\n abstract delete(id: number | string): Observable<boolean>;\r\n}\r\n\r\nexport class XRepositoryService<Entity extends XId> extends XRepositoryAbstract {\r\n api = '';\r\n constructor(public http: XHttpService, public input: XRepositoryInput) {\r\n super();\r\n this.api = typeof input.api !== 'undefined' ? input.api : '';\r\n }\r\n\r\n getList(index?: number, size?: number, query?: XQuery): Observable<XResultList<Entity>> {\r\n index = index ? index : 1;\r\n size = size ? size : 10;\r\n return this.http.post(`${this.api}${this.input.controller.name}/${size}/${index}`, query);\r\n }\r\n\r\n get(id: number | string): Observable<Entity> {\r\n return this.http.get(`${this.api}${this.input.controller.name}/${id}`);\r\n }\r\n\r\n post(entity: Entity): Observable<Entity> {\r\n return this.http.post(`${this.api}${this.input.controller.name}`, entity);\r\n }\r\n\r\n put(entity: Entity): Observable<Entity> {\r\n return this.http.put(`${this.api}${this.input.controller.name}`, entity);\r\n }\r\n\r\n delete(id: number | string): Observable<boolean> {\r\n return this.http.delete(`${this.api}${this.input.controller.name}/${id}`);\r\n }\r\n}\r\n","import {\r\n XSize,\r\n XBoolean,\r\n XType,\r\n XEffect,\r\n XNumber,\r\n XPositionLeftRight,\r\n XJustify,\r\n XShape,\r\n XFit,\r\n XShadow,\r\n XTrigger,\r\n XDisplayDirection,\r\n XCorner,\r\n XDirection,\r\n XPlace,\r\n XPosition,\r\n XPlacement,\r\n XPositionTopBottom\r\n} from '../interfaces';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { XTheme } from '../theme';\r\n\r\nexport interface XConfig {\r\n components?: XComponentConfig;\r\n theme?: XTheme;\r\n}\r\n\r\nexport type XConfigKey = keyof XConfig;\r\n\r\nexport type XComponentConfigKey = keyof XComponentConfig;\r\n\r\nexport const X_CONFIG = new InjectionToken<XConfig>('x-config');\r\n\r\nexport interface XComponentConfig {\r\n affix?: XAffixConfig;\r\n alert?: XAlertConfig;\r\n anchor?: XAnchorConfig;\r\n avatar?: XAvatarConfig;\r\n autoComplete?: XAutoCompleteConfig;\r\n backTop?: XBackTopConfig;\r\n badge?: XBadgeConfgig;\r\n button?: XButtonConfig;\r\n buttons?: XButtonsConfig;\r\n calendar?: XCalendarConfig;\r\n card?: XCardConfig;\r\n carousel?: XCarouselConfig;\r\n cascade?: XCascadeConfig;\r\n checkbox?: XCheckboxConfig;\r\n collapse?: XCollapseConfig;\r\n color?: XColorConfig;\r\n colorPicker?: XColorPickerConfig;\r\n comment?: XCommentConfig;\r\n container?: XContainerConfig;\r\n header?: XHeaderConfig;\r\n aside?: XAsideConfig;\r\n footer?: XFooterConfig;\r\n crumb?: XCrumbComfig;\r\n datePicker?: XDatePickerConfig;\r\n dialog?: XDialogConfig;\r\n drawer?: XDrawerConfig;\r\n dropdown?: XDropdownConfig;\r\n empty?: XEmptyConfig;\r\n find?: XFindConfig;\r\n form?: XFormConfig;\r\n highlight?: XHighlightConfig;\r\n icon?: XIconConfig;\r\n inner?: XInnerConfig;\r\n input?: XInputConfig;\r\n inputNumber?: XInputNumberConfig;\r\n col?: XColConfig;\r\n row?: XRowConfig;\r\n ripple?: XRippleConfig;\r\n link?: XLinkConfig;\r\n list?: XListConfig;\r\n loading?: XLoadingConfig;\r\n menu?: XMenuConfig;\r\n message?: XMessageConfig;\r\n messageBox?: XMessageBoxConfig;\r\n notification?: XNotificationConfig;\r\n outlet?: XOutletConfig;\r\n pageHeader?: XPageHeaderConfig;\r\n pagination?: XPaginationConfig;\r\n pattern?: XPatternConfig;\r\n popconfirm?: XPopconfirmConfig;\r\n popover?: XPopoverConfig;\r\n portal?: XPortalConfig;\r\n progress?: XProgressConfing;\r\n radio?: XRadioConfig;\r\n rate?: XRateConfig;\r\n result?: XResultConfig;\r\n select?: XSelectConfig;\r\n skeleton?: XSkeletonConfig;\r\n slider?: XSliderConfig;\r\n sliderSelect?: XSliderSelectConfig;\r\n statistic?: XStatisticConfig;\r\n countdown?: XCountdownConfig;\r\n steps?: XStepsConfig;\r\n switch?: XSwitchConfig;\r\n table?: XTableConfig;\r\n tabs?: XTabsConfig;\r\n tag?: XTagConfig;\r\n textRetract?: XTextRetractConfig;\r\n theme?: XThemeConfig;\r\n timeAgo?: XTimeAgoConfig;\r\n timePicker?: XTimePickerConfig;\r\n timeRange?: XTimeRangeConfig;\r\n timeline?: XTimelineConfig;\r\n tooltip?: XTooltipConfig;\r\n transfer?: XTransferConfig;\r\n tree?: XTreeConfig;\r\n treeFile?: XTreeFileConfig;\r\n textarea?: XTextareaConfig;\r\n upload?: XUploadConfig;\r\n}\r\n\r\nexport interface XAffixConfig {\r\n top?: string;\r\n left?: string;\r\n}\r\n\r\nexport interface XAlertConfig {\r\n effect?: XEffect;\r\n hideClose?: XBoolean;\r\n showIcon?: XBoolean;\r\n disabledAnimation?: XBoolean;\r\n draggable?: XBoolean;\r\n dragHandleTitle?: XBoolean;\r\n duration?: XNumber;\r\n}\r\n\r\nexport interface XAnchorConfig {\r\n affixTop?: string;\r\n affixWidth?: string;\r\n layout?: XPositionLeftRight;\r\n justify?: XJustify;\r\n}\r\n\r\nexport interface XAvatarConfig {\r\n size?: XSize;\r\n shape?: XShape;\r\n fit?: XFit;\r\n}\r\n\r\nexport interface XAutoCompleteConfig {\r\n placement?: XPositionTopBottom;\r\n debounceTime?: number;\r\n}\r\n\r\nexport interface XBackTopConfig {\r\n right?: string;\r\n bottom?: string;\r\n visibilityHeight?: XNumber;\r\n}\r\n\r\nexport interface XBadgeConfgig {\r\n type?: XType;\r\n}\r\n\r\nexport interface XButtonConfig {\r\n size?: XSize;\r\n type?: XType;\r\n plain?: XBoolean;\r\n round?: XBoolean;\r\n circle?: XBoolean;\r\n}\r\n\r\nexport interface XButtonsConfig {\r\n space?: XNumber;\r\n hiddenBorder?: XBoolean;\r\n}\r\n\r\nexport interface XCalendarConfig {}\r\n\r\nexport interface XCardConfig {\r\n shadow?: XShadow;\r\n}\r\n\r\nexport interface XCarouselConfig {\r\n height?: string;\r\n trigger?: XTrigger;\r\n arrow?: XShadow;\r\n direction?: XDisplayDirection;\r\n}\r\n\r\nexport interface XCascadeConfig {\r\n placement?: XCorner;\r\n}\r\n\r\nexport interface XCheckboxConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XCollapseConfig {}\r\n\r\nexport interface XColorConfig {\r\n merge?: string;\r\n amounts?: string;\r\n}\r\n\r\nexport interface XColorPickerConfig {\r\n placement?: XCorner;\r\n}\r\n\r\nexport interface XCommentConfig {\r\n contentMax?: number;\r\n}\r\n\r\nexport interface XContainerConfig {\r\n direction?: XDirection;\r\n}\r\n\r\nexport interface XHeaderConfig {\r\n height?: number;\r\n}\r\n\r\nexport interface XAsideConfig {\r\n width?: number;\r\n}\r\n\r\nexport interface XFooterConfig {\r\n height?: number;\r\n}\r\n\r\nexport interface XCrumbComfig {\r\n separator?: string;\r\n}\r\n\r\nexport interface XDatePickerConfig {\r\n format?: string;\r\n clearable?: XBoolean;\r\n placement?: XCorner;\r\n}\r\n\r\nexport interface XDialogConfig {\r\n placement?: XPlace;\r\n offset?: string;\r\n width?: string;\r\n effect?: XEffect;\r\n showCancel?: XBoolean;\r\n cancelText?: string;\r\n showConfirm?: XBoolean;\r\n confirmText?: string;\r\n backdropClose?: XBoolean;\r\n draggable?: XBoolean;\r\n hasBackdrop?: XBoolean;\r\n className?: string;\r\n buttonsCenter?: XBoolean;\r\n}\r\n\r\nexport interface XDrawerConfig {\r\n placement?: XPosition;\r\n size?: string;\r\n}\r\n\r\nexport interface XDropdownConfig {\r\n trigger?: XTrigger;\r\n placement?: XPlacement;\r\n}\r\n\r\nexport interface XEmptyConfig {\r\n content?: string;\r\n}\r\n\r\nexport interface XFindConfig {\r\n columnLabel?: string;\r\n dialogTitle?: string;\r\n dialogCheckboxLabel?: string;\r\n dialogCheckboxWidth?: number;\r\n dialogEmptyContent?: string;\r\n dialogButtonsCenter?: XBoolean;\r\n tableIndex?: number;\r\n tableSize?: number;\r\n tableLoading?: XBoolean;\r\n tableVirtualScroll?: boolean;\r\n tableRowHeight?: XNumber;\r\n treeExpandedLevel?: XNumber;\r\n}\r\n\r\nexport interface XFormConfig {\r\n space?: XNumber;\r\n labelSuffix?: string;\r\n width?: string;\r\n}\r\n\r\nexport interface XHighlightConfig {}\r\n\r\nexport interface XIconConfig {\r\n href?: string;\r\n}\r\n\r\nexport interface XInnerConfig {\r\n padding?: string;\r\n}\r\n\r\nexport interface XInputConfig {\r\n clearable?: XBoolean;\r\n iconLayout?: XPositionLeftRight;\r\n}\r\n\r\nexport interface XInputNumberConfig {}\r\n\r\nexport interface XColConfig {}\r\n\r\nexport interface XRowConfig {}\r\n\r\nexport interface XRippleConfig {\r\n type?: XType;\r\n}\r\n\r\nexport interface XLinkConfig {\r\n underline?: XBoolean;\r\n iconRight?: XBoolean;\r\n}\r\n\r\nexport interface XListConfig {}\r\n\r\nexport interface XLoadingConfig {\r\n size?: XSize;\r\n text?: string;\r\n icon?: string;\r\n color?: string;\r\n background?: string;\r\n}\r\n\r\nexport interface XMenuConfig {\r\n size?: XSize;\r\n trigger?: XTrigger;\r\n}\r\n\r\nexport interface XMessageConfig {}\r\n\r\nexport interface XMessageBoxConfig {}\r\n\r\nexport interface XNotificationConfig {}\r\n\r\nexport interface XOutletConfig {}\r\n\r\nexport interface XPageHeaderConfig {\r\n backIcon?: string;\r\n backText?: string;\r\n}\r\n\r\nexport interface XPaginationConfig {\r\n index?: XNumber;\r\n size?: XNumber;\r\n}\r\n\r\nexport interface XPatternConfig {}\r\n\r\nexport interface XPopconfirmConfig {\r\n placement?: XPlacement;\r\n trigger?: XTrigger;\r\n width?: string;\r\n icon?: string;\r\n iconColor?: string;\r\n cancelText?: string;\r\n confirmText?: string;\r\n}\r\n\r\nexport interface XPopoverConfig {\r\n placement?: XPlacement;\r\n trigger?: XTrigger;\r\n width?: string;\r\n}\r\n\r\nexport interface XPortalConfig {}\r\n\r\nexport interface XProgressConfing {\r\n height?: string;\r\n}\r\n\r\nexport interface XRadioConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XRateConfig {}\r\n\r\nexport interface XResultConfig {}\r\n\r\nexport interface XSelectConfig {\r\n placement?: XPositionTopBottom;\r\n clearable?: XBoolean;\r\n}\r\n\r\nexport interface XSkeletonConfig {}\r\n\r\nexport interface XSliderConfig {\r\n animated?: XBoolean;\r\n size?: XSize;\r\n}\r\n\r\nexport interface XSliderSelectConfig {}\r\n\r\nexport interface XStatisticConfig {}\r\n\r\nexport interface XCountdownConfig {\r\n format?: string;\r\n}\r\n\r\nexport interface XStepsConfig {}\r\n\r\nexport interface XSwitchConfig {}\r\n\r\nexport interface XTableConfig {\r\n index?: number;\r\n size?: number;\r\n loading?: XBoolean;\r\n virtualScroll?: boolean;\r\n rowHeight?: XNumber;\r\n itemSize?: XNumber;\r\n bordered?: XNumber;\r\n allowSelectRow?: XBoolean;\r\n rowSize?: XSize;\r\n}\r\n\r\nexport interface XTabsConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XTagConfig {\r\n size?: XSize;\r\n closable?: XBoolean;\r\n dark?: XBoolean;\r\n}\r\n\r\nexport interface XTextRetractConfig {\r\n max?: XNumber;\r\n}\r\n\r\nexport interface XThemeConfig {\r\n amounts?: XNumber[];\r\n}\r\n\r\nexport interface XTimeAgoConfig {}\r\n\r\nexport interface XTimePickerConfig {\r\n format?: string;\r\n placement?: XCorner;\r\n}\r\n\r\nexport interface XTimeRangeConfig {}\r\n\r\nexport interface XTimelineConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XTooltipConfig {\r\n placement?: XPlacement;\r\n}\r\n\r\nexport interface XTransferConfig {\r\n titles?: string[];\r\n drag?: XBoolean;\r\n}\r\n\r\nexport interface XTreeConfig {\r\n spacing?: XNumber;\r\n nodeHeight?: XNumber;\r\n}\r\n\r\nexport interface XTextareaConfig {\r\n clearable?: XBoolean;\r\n iconLayout?: XPositionLeftRight;\r\n}\r\n\r\nexport interface XTreeFileConfig {\r\n maxHeight?: XNumber;\r\n spacing?: XNumber;\r\n}\r\n\r\nexport interface XUploadConfig {}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface XTheme {\r\n colors?: XColorsTheme;\r\n}\r\n\r\nexport interface XColorsTheme {\r\n primary?: string;\r\n success?: string;\r\n warning?: string;\r\n danger?: string;\r\n info?: string;\r\n text?: string;\r\n border?: string;\r\n background?: string;\r\n [property: string]: any;\r\n}\r\n\r\nexport type XThemeKey = keyof XTheme;\r\n\r\nexport type XColors = 'primary' | 'success' | 'warning' | 'danger' | 'info';\r\n\r\nexport const X_THEME = new InjectionToken<XTheme>('x-theme');\r\n\r\nexport const X_THEME_PREFIX = '--x-';\r\n\r\nexport const X_THEME_MERGE = '#ffffff';\r\n\r\nexport const X_THEME_BLACK_MERGE = '#cccccc';\r\n\r\nexport const X_THEME_AMOUNTS = [0, -0.1, -0.2, -0.3, -0.4, -0.5, -0.6, -0.7, -0.8, -0.9, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9];\r\n\r\nexport const X_THEME_BACKGROUNDS = [-0.2, -0.3, -0.4];\r\n\r\nexport const X_THEME_TEXTS = [\r\n [-0.5, 0],\r\n [-0.6, 0.2],\r\n [-0.7, 0.4]\r\n];\r\n\r\nexport const X_THEME_BORDERS = [\r\n [-0.8, 0],\r\n [-0.9, 0.2]\r\n];\r\n\r\nexport const X_THEME_EXCHANGES = [\r\n [-0.1, -0.1],\r\n [0.1, -0.1],\r\n [0.2, 0.2],\r\n [0.3, 0],\r\n [0.4, -0.4],\r\n [0.5, -0.2],\r\n [0.6, 0],\r\n [0.7, -0.4],\r\n [0.8, -0.4],\r\n [0.9, -0.2]\r\n];\r\n\r\nexport const X_THEME_COLORS: XColorsTheme = {\r\n primary: '#1976d2',\r\n success: '#67c23a',\r\n warning: '#e6a23c',\r\n danger: '#f56c6c',\r\n info: '#909399',\r\n text: '#333333',\r\n border: '#dddddd',\r\n background: '#ffffff'\r\n};\r\n\r\nexport const X_THEME_DARK_COLORS: XColorsTheme = {\r\n text: '#dddddd',\r\n border: '#424242',\r\n background: '#1e1e1f'\r\n};\r\n\r\nexport const X_THEME_COLOR_KEYS = Object.keys(X_THEME_COLORS);\r\n","import { Injectable, Inject, RendererFactory2, Renderer2 } from '@angular/core';\r\nimport {\r\n XTheme,\r\n XColorsTheme,\r\n X_THEME_COLORS,\r\n X_THEME_COLOR_KEYS,\r\n X_THEME_PREFIX,\r\n X_THEME_AMOUNTS,\r\n X_THEME_MERGE,\r\n X_THEME_BLACK_MERGE,\r\n X_THEME_EXCHANGES,\r\n X_THEME_BACKGROUNDS,\r\n X_THEME_TEXTS,\r\n X_THEME_BORDERS\r\n} from './theme';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class XThemeService {\r\n private colorsProp: XColorsTheme = {};\r\n private colorsStyleEle!: HTMLStyleElement;\r\n private renderer2: Renderer2;\r\n private declaration: CSSStyleDeclaration;\r\n\r\n constructor(@Inject(DOCUMENT) private doc: any, private factory: RendererFactory2) {\r\n this.renderer2 = this.factory.createRenderer(null, null);\r\n this.declaration = getComputedStyle(this.doc.documentElement);\r\n }\r\n\r\n setInitialTheme(theme?: XTheme) {\r\n this.setColors(theme?.colors);\r\n if (theme?.colors) Object.assign(X_THEME_COLORS, theme.colors);\r\n }\r\n\r\n setTheme(theme?: XTheme) {\r\n this.setColors(theme?.colors);\r\n }\r\n\r\n getTheme(includesAll = false): XTheme {\r\n return {\r\n colors: this.getColors(includesAll)\r\n };\r\n }\r\n\r\n setColors(colors?: XColorsTheme) {\r\n colors = this.getColorsTheme(colors);\r\n for (let key in colors) {\r\n Object.assign(this.colorsProp, this.setRoot(key, colors[key]));\r\n }\r\n this.createColorsStyle();\r\n }\r\n\r\n getColors(includes = false, prefix = X_THEME_PREFIX): XColorsTheme {\r\n let result: XColorsTheme = {};\r\n const keys = includes ? Object.keys(this.colorsProp) : X_THEME_COLOR_KEYS.map((x) => `${prefix}${x}`);\r\n keys.forEach((x) => {\r\n result[x.replace(prefix, '')] = this.declaration.getPropertyValue(`${x}`).trim();\r\n });\r\n\r\n return result;\r\n }\r\n\r\n getColorsInProperty(colors?: XColorsTheme, prefix = X_THEME_PREFIX): XColorsTheme {\r\n let result: XColorsTheme = {};\r\n Object.keys(colors as XColorsTheme).forEach((x) => {\r\n result[x] = this.declaration.getPropertyValue(`${prefix}${x}`).trim();\r\n });\r\n\r\n return result;\r\n }\r\n\r\n getColorsTheme(colors?: XColorsTheme) {\r\n if (typeof colors === 'undefined') colors = X_THEME_COLORS;\r\n else colors = Object.assign({}, X_THEME_COLORS, colors);\r\n return colors;\r\n }\r\n\r\n setRoot(color: string, value: string, prefix = X_THEME_PREFIX) {\r\n let result: XColorsTheme = {};\r\n if (X_THEME_COLOR_KEYS.includes(color)) {\r\n for (let amount of X_THEME_AMOUNTS) {\r\n if (amount === 0) {\r\n result[`${prefix}${color}`] = value;\r\n } else {\r\n result[`${prefix}${color}${this.getSuffix(amount)}`] = toHex(\r\n mixColors(amount > 0 ? X_THEME_MERGE : X_THEME_BLACK_MERGE, value, Math.abs(amount))\r\n );\r\n }\r\n }\r\n } else {\r\n result[`${prefix}${color}`] = value;\r\n }\r\n return result;\r\n }\r\n\r\n setDarkRoot(color: string, value: string, prefix = X_THEME_PREFIX) {\r\n let result: XColorsTheme = {};\r\n const allColors = this.setRoot(color, value, '');\r\n if (X_THEME_COLOR_KEYS.includes(color) && !['background'].includes(color)) {\r\n const allColors = this.setRoot(color, value, prefix);\r\n X_THEME_EXCHANGES.forEach((x) => {\r\n if (x[1] >= -0.1) {\r\n const curr = this.getSuffix(x[0]);\r\n const next = this.getSuffix(x[1]);\r\n result[`${prefix}${color}${curr}`] = allColors[`${prefix}${color}${next}`];\r\n }\r\n });\r\n } else if (['background'].includes(color)) {\r\n result = this.getDefineColors(Object.assign({}, this.getColorsInProperty(X_THEME_COLORS), allColors), '', true);\r\n }\r\n return result;\r\n }\r\n\r\n getDefineColors(colors?: XColorsTheme, prefix = X_THEME_PREFIX, darken = false): XColorsTheme {\r\n let result: XColorsTheme = {};\r\n colors = this.getColorsTheme(colors);\r\n for (let key in colors) {\r\n Object.assign(result, this.setRoot(key, colors[key], prefix));\r\n }\r\n if (darken) {\r\n const colorsFunc = (nums: number[] | number[][], callback: Function) => {\r\n for (let num of nums) {\r\n for (let color in colors) {\r\n if (X_THEME_COLOR_KEYS.includes(color) && !['background'].includes(color)) {\r\n callback(num, color);\r\n }\r\n }\r\n }\r\n };\r\n colorsFunc(X_THEME_BACKGROUNDS, (background: number, color: string) => {\r\n const theme = this.getSuffix(background);\r\n result[`${prefix}${color}${theme}`] = result[`${prefix}background${theme.replace('a', '')}`];\r\n });\r\n colorsFunc(X_THEME_TEXTS, (text: number[], color: string) => {\r\n const curr = this.getSuffix(text[0]);\r\n const next = this.getSuffix(text[1]);\r\n result[`${prefix}${color}${curr}`] = result[`${prefix}text${next}`];\r\n });\r\n colorsFunc(X_THEME_BORDERS, (border: number[], color: string) => {\r\n const curr = this.getSuffix(border[0]);\r\n const next = this.getSuffix(border[1]);\r\n result[`${prefix}${color}${curr}`] = result[`${prefix}border${next}`];\r\n });\r\n colorsFunc(X_THEME_EXCHANGES, (exchange: number[], color: string) => {\r\n const curr = this.getSuffix(exchange[0]);\r\n const next = this.getSuffix(exchange[1]);\r\n result[`${prefix}${color}${curr}`] = result[`${prefix}${color}${next}`];\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n getSuffix(num: number): string {\r\n if (num > 0) {\r\n return `-${Math.abs(num * 1000)}`;\r\n } else if (num < 0) {\r\n return `-a${Math.abs(num * 1000)}`;\r\n }\r\n return '';\r\n }\r\n\r\n createColorsStyle() {\r\n if (this.colorsStyleEle) this.renderer2.removeChild(this.colorsStyleEle.parentNode, this.colorsStyleEle);\r\n const styles = Object.entries(this.colorsProp)\r\n .map((x) => `${x[0]}: ${x[1]};`)\r\n .join('');\r\n this.colorsStyleEle = this.renderer2.createElement('style');\r\n this.colorsStyleEle.innerHTML = `.x-theme-colors{${styles}}`;\r\n this.renderer2.addClass(this.doc.documentElement, 'x-theme-colors');\r\n this.doc.documentElement.getElementsByTagName('head')[0].appendChild(this.colorsStyleEle);\r\n }\r\n}\r\n\r\nexport function mixColors(color1: string, color2: string, weight: number) {\r\n let rgb1 = toRgb(color1);\r\n let rgb2 = toRgb(color2);\r\n let weight1 = weight;\r\n let weight2 = 1 - weight;\r\n let result: { r: number; g: number; b: number };\r\n\r\n const inRange = (num: number) => {\r\n return num > 255 ? 255 : num < 0 ? 0 : num;\r\n };\r\n\r\n result = {\r\n r: inRange(Math.round(rgb1.r * weight1 + rgb2.r * weight2)),\r\n g: inRange(Math.round(rgb1.g * weight1 + rgb2.g * weight2)),\r\n b: inRange(Math.round(rgb1.b * weight1 + rgb2.b * weight2))\r\n };\r\n\r\n return result;\r\n}\r\n\r\nexport function toHex(rgb: { r: number; g: number; b: number }) {\r\n return '#' + ((1 << 24) + (rgb.r << 16) + (rgb.g << 8) + rgb.b).toString(16).slice(1);\r\n}\r\n\r\nexport function toRgb(hex: string) {\r\n if (hex.indexOf('#') == 0) hex = hex.slice(1);\r\n let num = parseInt(hex, 16);\r\n let r = num >> 16;\r\n if (r > 255) r = 255;\r\n else if (r < 0) r = 0;\r\n let g = (num >> 8) & 0x00ff;\r\n if (g > 255) g = 255;\r\n else if (g < 0) g = 0;\r\n let b = num & 0x0000ff;\r\n if (b > 255) b = 255;\r\n else if (b < 0) b = 0;\r\n\r\n return { r: r, g: g, b: b };\r\n}\r\n","// tslint:disable no-any\r\n\r\nimport { Injectable, Optional, Inject } from '@angular/core';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { XConfig, X_CONFIG, XComponentConfigKey, XComponentConfig } from './config';\r\nimport { XThemeService, XTheme, X_THEME_COLORS, X_THEME_DARK_COLORS } from '../theme';\r\nimport { filter, mapTo } from 'rxjs/operators';\r\n\r\nconst isDefined = function (value?: any): boolean {\r\n return value !== undefined;\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class XConfigService {\r\n private componentConfigUpdated$ = new Subject<keyof XComponentConfig>();\r\n private config: XConfig;\r\n public themeService!: XThemeService;\r\n\r\n constructor(@Optional() themeService?: XThemeService, @Optional() @Inject(X_CONFIG) defaultConfig?: XConfig) {\r\n this.config = defaultConfig || {};\r\n if (themeService) {\r\n this.themeService = themeService;\r\n }\r\n this.setInitialTheme(this.config.theme);\r\n }\r\n\r\n getConfigForComponent<T extends XComponentConfigKey>(componentName: T): XComponentConfig[T] {\r\n return this.config?.components ? this.config.components[componentName] : undefined;\r\n }\r\n\r\n getConfigChangeEventForComponent(componentName: XComponentConfigKey): Observable<void> {\r\n return this.componentConfigUpdated$.pipe(\r\n filter((n) => n === componentName),\r\n mapTo(undefined)\r\n );\r\n }\r\n\r\n set<T extends XComponentConfigKey>(componentName: T, value: XComponentConfig[T]): void {\r\n if (this.config?.components) {\r\n this.config.components[componentName] = { ...this.config.components[componentName], ...value };\r\n this.componentConfigUpdated$.next(componentName);\r\n }\r\n }\r\n\r\n setDarkTheme(theme?: XTheme) {\r\n let colors = theme?.colors;\r\n if (!colors) colors = X_THEME_DARK_COLORS;\r\n this.setTheme({\r\n colors: this.themeService.getDefineColors(Object.assign({}, this.themeService.getColorsInProperty(X_THEME_COLORS), colors), '', true)\r\n });\r\n }\r\n\r\n setLightTheme(theme?: XTheme) {\r\n let colors = theme?.colors;\r\n if (!colors) colors = X_THEME_COLORS;\r\n this.setTheme({\r\n colors: this.themeService.getDefineColors(Object.assign({}, this.themeService.getColorsInProperty(X_THEME_COLORS), colors), '', false)\r\n });\r\n }\r\n\r\n setTheme(theme?: XTheme) {\r\n this.themeService.setTheme(theme);\r\n }\r\n\r\n setInitialTheme(theme?: XTheme) {\r\n this.themeService.setInitialTheme(theme);\r\n }\r\n\r\n getTheme(includesAll = false): XTheme {\r\n return this.themeService.getTheme(includesAll);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:typedef\r\nexport function XWithConfig<T>(componentName: XComponentConfigKey, innerDefaultValue?: T) {\r\n return function ConfigDecorator(target: any, propName: any, originalDescriptor?: TypedPropertyDescriptor<T>): any {\r\n const privatePropName = `$$__assignedValue__${propName}`;\r\n\r\n Object.defineProperty(target, privatePropName, {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false\r\n });\r\n\r\n return {\r\n get(): T | undefined {\r\n const originalValue = originalDescriptor && originalDescriptor.get ? originalDescriptor.get.bind(this)() : this[privatePropName];\r\n\r\n if (isDefined(originalValue)) {\r\n return originalValue;\r\n }\r\n\r\n const componentConfig = this.configService?.getConfigForComponent(componentName) || {};\r\n const configValue = componentConfig[propName];\r\n\r\n return isDefined(configValue) ? configValue : innerDefaultValue;\r\n },\r\n set(value: T): void {\r\n if (originalDescriptor && originalDescriptor.set) {\r\n originalDescriptor.set.bind(this)(value);\r\n } else {\r\n this[privatePropName] = value;\r\n }\r\n },\r\n configurable: true,\r\n enumerable: true\r\n };\r\n };\r\n}\r\n","import { Observable, Subscriber } from 'rxjs';\r\nimport ResizeObserver from 'resize-observer-polyfill';\r\n\r\nexport const XResize = (...element: Element[]): Observable<{ entry: ResizeObserverEntry; resizeObserver: ResizeObserver }> => {\r\n return new Observable(\r\n (\r\n x: Subscriber<{\r\n entry: ResizeObserverEntry;\r\n resizeObserver: ResizeObserver;\r\n }>\r\n ) => {\r\n const resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]) => {\r\n for (const entry of entries) {\r\n x.next({ entry: entry, resizeObserver: resizeObserver });\r\n }\r\n });\r\n for (let ele of element) {\r\n if (ele) resizeObserver.observe(ele);\r\n }\r\n\r\n //XResize 取消订阅的时候自动销毁\r\n //resizeObserver.disconnect();\r\n }\r\n );\r\n};\r\n","export function chunk<T>(array: T[], size = 1): T[][] {\r\n const len = array == null ? 0 : array.length;\r\n if (!len || size < 1) {\r\n return [];\r\n }\r\n let index = 0;\r\n let resIndex = 0;\r\n const result = new Array(Math.ceil(len / size));\r\n\r\n while (index < len) {\r\n result[resIndex++] = array.slice(index, (index += size));\r\n }\r\n return result;\r\n}\r\n","export function computedStyle(element: HTMLElement, style: string) {\r\n let computed = getComputedStyle(element);\r\n let value = computed[style as any];\r\n return value.replace(/px/g, '');\r\n}\r\n","/**\r\n * Fill default values\r\n * @param option option\r\n * @param def default\r\n */\r\nexport function fillDefault(option: { [property: string]: any }, def: { [property: string]: any }) {\r\n if (option && def) {\r\n for (const key in def) {\r\n if (typeof option[key] === 'undefined') {\r\n option[key] = def[key];\r\n }\r\n }\r\n }\r\n}\r\n","export function groupBy<T>(array: T[], name: string): T[][] {\r\n const groups: any = {};\r\n array.forEach((obj: any) => {\r\n const group = JSON.stringify(obj[name]);\r\n groups[group] = groups[group] || [];\r\n groups[group].push(obj);\r\n });\r\n return Object.keys(groups).map((group) => groups[group]);\r\n}\r\n","/**\r\n * 生成 GUID\r\n */\r\nexport function guid() {\r\n let S4 = () => {\r\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n };\r\n return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\r\n}\r\n","/**\r\n * 删除当前标签,保留内容\r\n */\r\nexport function removeNgTag(nativeElement: HTMLElement): void {\r\n const parentElement = nativeElement.parentElement;\r\n if (!parentElement || !parentElement.insertBefore) return;\r\n while (nativeElement.firstChild) {\r\n parentElement.insertBefore(nativeElement.firstChild, nativeElement);\r\n }\r\n parentElement.removeChild(nativeElement);\r\n}\r\n","/**\r\n * 去除HTML标签\r\n */\r\n export function stripTags(text: string, ...usefulTags: any[]): string {\r\n if (!text || typeof (text) !== 'string')\r\n return text;\r\n return usefulTags.length > 0\r\n ? text.replace(new RegExp(`<(?!\\/?(${usefulTags.join('|')})\\s*\\/?)[^>]+>`, 'g'), '')\r\n : text.replace(/<(?:.|\\s)*?>/g, '');\r\n}\r\n","export function warnSVGTagNotFound() {\r\n console.warn(`<svg> tag not found.`);\r\n}\r\nexport function warnIconTypeNotFound() {\r\n console.warn(`icon type not found.`);\r\n}\r\n"]}
|
|
@@ -230,10 +230,16 @@
|
|
|
230
230
|
r[k] = a[j];
|
|
231
231
|
return r;
|
|
232
232
|
}
|
|
233
|
-
function __spreadArray(to, from) {
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
233
|
+
function __spreadArray(to, from, pack) {
|
|
234
|
+
if (pack || arguments.length === 2)
|
|
235
|
+
for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
236
|
+
if (ar || !(i in from)) {
|
|
237
|
+
if (!ar)
|
|
238
|
+
ar = Array.prototype.slice.call(from, 0, i);
|
|
239
|
+
ar[i] = from[i];
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
237
243
|
}
|
|
238
244
|
function __await(v) {
|
|
239
245
|
return this instanceof __await ? (this.v = v, this) : new __await(v);
|