@acorex/components 19.14.1 → 19.14.3
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/action-sheet/lib/action-sheet.class.d.ts +1 -1
- package/action-sheet/lib/action-sheet.component.d.ts +1 -1
- package/action-sheet/lib/action-sheet.module.d.ts +1 -1
- package/alert/lib/alert.component.d.ts +1 -1
- package/audio-wave/lib/interfaces/audio-wave.interface.d.ts +1 -1
- package/autocomplete/lib/autocomplete.component.d.ts +1 -1
- package/avatar/lib/avatar.component.d.ts +1 -1
- package/badge/lib/badge.component.d.ts +1 -1
- package/bottom-navigation/lib/bottom-navigation-item/bottom-navigation-item.component.d.ts +2 -2
- package/bottom-navigation/lib/bottom-navigation.component.d.ts +1 -1
- package/breadcrumbs/lib/breadcrumbs-item.component.d.ts +1 -1
- package/breadcrumbs/lib/breadcrumbs.component.d.ts +1 -1
- package/button/lib/button-item-list.component.d.ts +2 -2
- package/button/lib/button-item.class.d.ts +1 -1
- package/button/lib/button-item.component.d.ts +1 -1
- package/button/lib/button.component.d.ts +1 -1
- package/button/lib/button.module.d.ts +1 -1
- package/button-group/lib/button-group-item.component.d.ts +1 -1
- package/button-group/lib/button-group.component.d.ts +1 -1
- package/calendar/lib/calendar-range.component.d.ts +1 -1
- package/calendar/lib/calendar.class.d.ts +1 -1
- package/calendar/lib/calendar.component.d.ts +1 -1
- package/calendar/lib/calendar.module.d.ts +1 -1
- package/check-box/lib/check-box.component.d.ts +1 -1
- package/chips/lib/chips.component.d.ts +2 -2
- package/circular-progress/lib/circular-progress.component.d.ts +1 -1
- package/collapse/lib/collapse-group.component.d.ts +1 -1
- package/collapse/lib/collapse.component.d.ts +1 -1
- package/color-box/lib/color-box.component.d.ts +1 -1
- package/color-palette/lib/color-palette-input.component.d.ts +1 -1
- package/color-palette/lib/color-palette-picker.component.d.ts +1 -1
- package/color-palette/lib/color-palette-preview.component.d.ts +1 -1
- package/color-palette/lib/color-palette-swatches.component.d.ts +1 -1
- package/color-palette/lib/color-palette.class.d.ts +1 -1
- package/color-palette/lib/color-palette.component.d.ts +1 -1
- package/conversation/lib/classes/events.interface.d.ts +1 -1
- package/conversation/lib/conversation-input/conversation-input.component.d.ts +1 -1
- package/conversation/lib/conversation-message/conversation-message.component.d.ts +1 -1
- package/conversation/lib/conversation-view/conversation-view.component.d.ts +1 -1
- package/conversation/lib/conversation.module.d.ts +1 -1
- package/cron-job/lib/cron-job-container/cron-job-container.component.d.ts +1 -1
- package/cron-job/lib/day/day.component.d.ts +1 -1
- package/cron-job/lib/hours/hours.component.d.ts +1 -1
- package/cron-job/lib/minutes/minutes.component.d.ts +1 -1
- package/cron-job/lib/month/month.component.d.ts +1 -1
- package/cron-job/lib/seconds/seconds.component.d.ts +1 -1
- package/cron-job/lib/year/year.component.d.ts +1 -1
- package/data-pager/lib/data-pager-base.component.d.ts +1 -1
- package/data-pager/lib/data-pager-input-selector.component.d.ts +1 -1
- package/data-pager/lib/data-pager-next-buttons.component.d.ts +1 -1
- package/data-pager/lib/data-pager-pagesize-dropdown.component.d.ts +1 -1
- package/data-pager/lib/data-pager-prev-buttons.component.d.ts +1 -1
- package/data-pager/lib/data-pager.component.d.ts +1 -1
- package/data-table/lib/base-data-table.class.d.ts +1 -1
- package/data-table/lib/columns/data-table-column.d.ts +1 -1
- package/data-table/lib/columns/row-command-column.component.d.ts +1 -1
- package/data-table/lib/columns/row-select-column.component.d.ts +1 -1
- package/data-table/lib/data-table.module.d.ts +1 -1
- package/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.d.ts +1 -1
- package/datetime-box/lib/datetime-box.component.d.ts +1 -1
- package/datetime-input/lib/datetime-input.component.d.ts +1 -1
- package/datetime-picker/lib/datetime-picker.component.d.ts +1 -1
- package/decorators/lib/components/clear-button/clear-button.component.d.ts +2 -2
- package/decorators/lib/components/close-button/close-button.component.d.ts +2 -2
- package/decorators/lib/components/full-screen/full-screen-button.component.d.ts +1 -1
- package/decorators/lib/components/generic-content.component.d.ts +1 -1
- package/decorators/lib/components/heading/heading.component.d.ts +1 -1
- package/decorators/lib/components/icon/icon.component.d.ts +1 -1
- package/dialog/lib/dialog.class.d.ts +1 -1
- package/dialog/lib/dialog.component.d.ts +1 -1
- package/dialog/lib/dialog.module.d.ts +1 -1
- package/dialog/lib/dialog.service.d.ts +1 -1
- package/drawer/lib/drawer/drawer-container/drawer-container.component.d.ts +1 -1
- package/drawer/lib/drawer/drawer-item/drawer.component.d.ts +1 -1
- package/dropdown/lib/dropdown-box.class.d.ts +1 -1
- package/dropdown/lib/dropdown-box.component.d.ts +2 -2
- package/dropdown/lib/dropdown-panel.component.d.ts +2 -2
- package/dropdown/lib/dropdown.module.d.ts +1 -1
- package/dropdown-button/lib/dropdown-button.component.d.ts +2 -2
- package/dropdown-button/lib/dropdown-button.module.d.ts +1 -1
- package/fesm2022/acorex-components-action-sheet.mjs +15 -13
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs +15 -9
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-audio-wave.mjs +9 -8
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-autocomplete.mjs +10 -10
- package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
- package/fesm2022/acorex-components-avatar.mjs +13 -12
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-badge.mjs +9 -9
- package/fesm2022/acorex-components-badge.mjs.map +1 -1
- package/fesm2022/acorex-components-bottom-navigation.mjs +14 -14
- package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-breadcrumbs.mjs +13 -13
- package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/acorex-components-button-group.mjs +13 -12
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +22 -22
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +18 -14
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs +12 -10
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +10 -10
- package/fesm2022/acorex-components-chips.mjs.map +1 -1
- package/fesm2022/acorex-components-circular-progress.mjs +9 -9
- package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-collapse.mjs +15 -13
- package/fesm2022/acorex-components-collapse.mjs.map +1 -1
- package/fesm2022/acorex-components-color-box.mjs +8 -8
- package/fesm2022/acorex-components-color-box.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +36 -26
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-comment.mjs +37 -36
- package/fesm2022/acorex-components-comment.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +61 -63
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-cron-job.mjs +57 -53
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +75 -37
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +59 -39
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +8 -8
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +8 -8
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +10 -10
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +46 -36
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +21 -13
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +17 -17
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +12 -10
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +19 -17
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-file-explorer.mjs +39 -31
- package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
- package/fesm2022/acorex-components-flow-chart.mjs +30 -20
- package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +20 -18
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-grid-layout-builder.mjs +55 -16
- package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +43 -45
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-image.mjs +15 -9
- package/fesm2022/acorex-components-image.mjs.map +1 -1
- package/fesm2022/acorex-components-json-viewer.mjs +9 -8
- package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-kbd.mjs +13 -12
- package/fesm2022/acorex-components-kbd.mjs.map +1 -1
- package/fesm2022/acorex-components-label.mjs +15 -9
- package/fesm2022/acorex-components-label.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +8 -8
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +12 -12
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-loading.mjs +19 -19
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-map.mjs +265 -108
- package/fesm2022/acorex-components-map.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +42 -41
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +41 -17
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/{acorex-components-modal-acorex-components-modal-Ckn70-o5.mjs → acorex-components-modal-acorex-components-modal-CJ3M9U7p.mjs} +24 -23
- package/fesm2022/acorex-components-modal-acorex-components-modal-CJ3M9U7p.mjs.map +1 -0
- package/fesm2022/acorex-components-modal-modal-content.component-Ef5XWxUb.mjs +216 -0
- package/fesm2022/acorex-components-modal-modal-content.component-Ef5XWxUb.mjs.map +1 -0
- package/fesm2022/acorex-components-modal.mjs +1 -1
- package/fesm2022/acorex-components-navbar.mjs +9 -9
- package/fesm2022/acorex-components-navbar.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +18 -12
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +8 -8
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-otp.mjs +20 -8
- package/fesm2022/acorex-components-otp.mjs.map +1 -1
- package/fesm2022/acorex-components-page.mjs +11 -11
- package/fesm2022/acorex-components-page.mjs.map +1 -1
- package/fesm2022/acorex-components-paint.mjs +31 -33
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +21 -23
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-pdf-reader.mjs +9 -8
- package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +8 -8
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs +18 -16
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +15 -9
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +18 -12
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-progress-bar.mjs +9 -9
- package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
- package/fesm2022/acorex-components-qrcode.mjs +10 -8
- package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
- package/fesm2022/acorex-components-query-builder.mjs +9 -9
- package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-radio.mjs +10 -8
- package/fesm2022/acorex-components-radio.mjs.map +1 -1
- package/fesm2022/acorex-components-rail-navigation.mjs +16 -16
- package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +13 -11
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-rate-picker.mjs +10 -8
- package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-rest-api-generator.mjs +28 -27
- package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
- package/fesm2022/acorex-components-result.mjs +9 -9
- package/fesm2022/acorex-components-result.mjs.map +1 -1
- package/fesm2022/acorex-components-routing-progress.mjs +9 -9
- package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +329 -275
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-scss.mjs +4 -4
- package/fesm2022/acorex-components-search-box.mjs +9 -9
- package/fesm2022/acorex-components-search-box.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +18 -12
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +8 -8
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +16 -16
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-skeleton.mjs +9 -9
- package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
- package/fesm2022/acorex-components-slider.mjs +10 -8
- package/fesm2022/acorex-components-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-sliding-item.mjs +17 -16
- package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
- package/fesm2022/acorex-components-step-wizard.mjs +16 -16
- package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +14 -11
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +16 -15
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-tag-box.mjs +10 -10
- package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
- package/fesm2022/acorex-components-tag.mjs +9 -9
- package/fesm2022/acorex-components-tag.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +8 -8
- package/fesm2022/acorex-components-text-area.mjs.map +1 -1
- package/fesm2022/acorex-components-text-box.mjs +13 -13
- package/fesm2022/acorex-components-text-box.mjs.map +1 -1
- package/fesm2022/acorex-components-time-duration.mjs +59 -98
- package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
- package/fesm2022/acorex-components-time-line.mjs +13 -12
- package/fesm2022/acorex-components-time-line.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +18 -12
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-toolbar.mjs +9 -8
- package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +12 -12
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view.mjs +12 -12
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/fesm2022/acorex-components-uploader.mjs +27 -27
- package/fesm2022/acorex-components-uploader.mjs.map +1 -1
- package/fesm2022/acorex-components-video-player.mjs +9 -8
- package/fesm2022/acorex-components-video-player.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +39 -41
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/file-explorer/lib/file-explorer-item/file-explorer-item.component.d.ts +1 -1
- package/flow-chart/lib/flow-chart-creator/flow-chart-creator.component.d.ts +1 -1
- package/flow-chart/lib/flow-chart-renderer/flow-chart-renderer.component.d.ts +1 -1
- package/flow-chart/lib/flow-chart.component.d.ts +1 -1
- package/form/lib/form-field.component.d.ts +1 -1
- package/form/lib/form.component.d.ts +1 -1
- package/form/lib/validation-summary.component.d.ts +1 -1
- package/grid-layout-builder/lib/grid-layout-container.component.d.ts +4 -3
- package/grid-layout-builder/lib/types.d.ts +1 -1
- package/image/lib/image.component.d.ts +1 -1
- package/image-editor/lib/image-editor-container/image-editor-container.component.d.ts +1 -1
- package/image-editor/lib/image-editor-view/image-editor-view.component.d.ts +1 -1
- package/label/lib/label.component.d.ts +1 -1
- package/list/lib/list.component.d.ts +1 -1
- package/loading/lib/loading-spinner.component.d.ts +1 -1
- package/loading/lib/loading.component.d.ts +1 -1
- package/loading-dialog/lib/loading-dialog.class.d.ts +1 -1
- package/loading-dialog/lib/loading-dialog.component.d.ts +1 -1
- package/loading-dialog/lib/loading-dialog.module.d.ts +1 -1
- package/map/lib/map.component.d.ts +38 -11
- package/menu/lib/context-menu.component.d.ts +1 -1
- package/menu/lib/menu-item.component.d.ts +1 -1
- package/menu/lib/menu.component.d.ts +1 -1
- package/menu/lib/menu.types.d.ts +1 -1
- package/modal/lib/modal-content/modal-content.component.d.ts +1 -1
- package/modal/lib/modal.component.d.ts +1 -1
- package/navbar/lib/navbar.component.d.ts +1 -1
- package/notification/lib/notification.class.d.ts +1 -1
- package/notification/lib/notification.component.d.ts +1 -1
- package/notification/lib/notification.config.d.ts +1 -1
- package/number-box/lib/number-box.component.d.ts +1 -1
- package/otp/lib/otp.class.d.ts +1 -1
- package/otp/lib/otp.component.d.ts +1 -1
- package/package.json +1 -5
- package/page/lib/base-page.class.d.ts +1 -1
- package/page/lib/page.component.d.ts +1 -1
- package/paint/lib/paint/paint-container/paint-container.component.d.ts +1 -1
- package/password-box/lib/password-box.component.d.ts +1 -1
- package/password-box/lib/password-strength-validation/password-strength-validation.component.d.ts +9 -11
- package/phone-box/lib/phone-box.component.d.ts +1 -1
- package/picker/lib/picker-items/picker-items.component.d.ts +1 -1
- package/popover/lib/popover.component.d.ts +1 -1
- package/popup/lib/popup.component.d.ts +1 -1
- package/popup/lib/popup.module.d.ts +1 -1
- package/popup/lib/popup.service.d.ts +1 -1
- package/progress-bar/lib/progress-bar.component.d.ts +1 -1
- package/query-builder/lib/query-builder.component.d.ts +1 -1
- package/radio/lib/radio.component.d.ts +1 -1
- package/rail-navigation/lib/rail-navigation-item/rail-navigation-item.component.d.ts +1 -1
- package/rail-navigation/lib/rail-navigation.component.d.ts +1 -1
- package/range-slider/lib/range-slider.class.d.ts +1 -1
- package/range-slider/lib/range-slider.component.d.ts +1 -1
- package/rate-picker/lib/rate-picker.component.d.ts +1 -1
- package/rest-api-generator/lib/query-params/query-params.component.d.ts +1 -1
- package/rest-api-generator/lib/request-body/request-body.component.d.ts +1 -1
- package/rest-api-generator/lib/request-headers/request-headers.component.d.ts +1 -1
- package/rest-api-generator/lib/rest-api-auth/rest-api-auth.component.d.ts +1 -1
- package/rest-api-generator/lib/rest-api-generator.component.d.ts +1 -1
- package/result/lib/result.component.d.ts +1 -1
- package/routing-progress/lib/routing-progress.component.d.ts +1 -1
- package/scheduler/lib/scheduler.class.d.ts +36 -31
- package/scheduler/lib/scheduler.component.d.ts +54 -41
- package/scheduler/lib/scheduler.service.d.ts +15 -14
- package/scheduler/lib/views/agenda/scheduler-agenda-view.component.d.ts +14 -12
- package/scheduler/lib/views/day/scheduler-day-view.component.d.ts +19 -17
- package/scheduler/lib/views/month/scheduler-month-view.component.d.ts +17 -15
- package/scheduler/lib/views/timeline-day/scheduler-timeline-day-view.component.d.ts +17 -15
- package/scheduler/lib/views/timeline-month/scheduler-timeline-month-view.component.d.ts +15 -13
- package/scheduler/lib/views/timeline-multi-day/scheduler-timeline-multi-day-view.component.d.ts +15 -14
- package/scheduler/lib/views/week/scheduler-week-view.component.d.ts +19 -17
- package/search-box/lib/search-box.component.d.ts +1 -1
- package/search-box/lib/search-box.module.d.ts +1 -1
- package/select-box/lib/select-box.component.d.ts +2 -1
- package/select-box/lib/select-box.module.d.ts +1 -1
- package/selection-list/lib/selection-list.component.d.ts +1 -1
- package/side-menu/lib/side-menu-item/side-menu-item.component.d.ts +1 -1
- package/side-menu/lib/side-menu.component.d.ts +1 -1
- package/side-menu/lib/side-menu.module.d.ts +1 -1
- package/skeleton/lib/skeleton.component.d.ts +1 -1
- package/slider/lib/slider.component.d.ts +1 -1
- package/slider/lib/slider.module.d.ts +1 -1
- package/sliding-item/lib/sliding-item-prefix/sliding-item-prefix.component.d.ts +1 -1
- package/sliding-item/lib/sliding-item-suffix/sliding-item-suffix.component.d.ts +1 -1
- package/step-wizard/lib/step-wizard-item/step-wizard-item.component.d.ts +1 -1
- package/step-wizard/lib/step-wizard.component.d.ts +1 -1
- package/switch/lib/switch-content.component.d.ts +1 -1
- package/switch/lib/switch.component.d.ts +1 -1
- package/tabs/lib/tab-item.component.d.ts +1 -1
- package/tabs/lib/tabs.class.d.ts +1 -1
- package/tabs/lib/tabs.component.d.ts +1 -1
- package/tag/lib/tag.component.d.ts +1 -1
- package/tag-box/lib/tag-box.component.d.ts +1 -1
- package/text-area/lib/text-area.component.d.ts +1 -1
- package/text-box/lib/text-box.component.d.ts +1 -1
- package/text-box/lib/text-box.module.d.ts +1 -1
- package/time-duration/lib/time-duration.component.d.ts +3 -5
- package/toast/lib/toast.class.d.ts +1 -1
- package/toast/lib/toast.component.d.ts +1 -1
- package/toast/lib/toast.config.d.ts +1 -1
- package/tooltip/lib/tooltip.component.d.ts +1 -1
- package/tooltip/lib/tooltip.directive.d.ts +1 -1
- package/tree-view/lib/tree-view-item.component.d.ts +1 -1
- package/tree-view/lib/tree-view.class.d.ts +1 -1
- package/tree-view/lib/tree-view.component.d.ts +1 -1
- package/tree-view/lib/tree-view.component.module.d.ts +1 -1
- package/uploader/lib/uploader-drop-zone/uploader-drop-zone.component.d.ts +1 -1
- package/uploader/lib/uploader.models.d.ts +1 -1
- package/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.d.ts +1 -1
- package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.d.ts +1 -1
- package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.d.ts +1 -1
- package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.d.ts +1 -1
- package/common/README.md +0 -3
- package/common/index.d.ts +0 -32
- package/common/lib/classes/components.class.d.ts +0 -97
- package/common/lib/classes/datalist.class.d.ts +0 -37
- package/common/lib/classes/datasource.class.d.ts +0 -87
- package/common/lib/classes/events.class.d.ts +0 -96
- package/common/lib/classes/styles.class.d.ts +0 -12
- package/common/lib/common.module.d.ts +0 -10
- package/common/lib/components/base-component.class.d.ts +0 -42
- package/common/lib/components/button-base-component.class.d.ts +0 -55
- package/common/lib/components/color-component.class.d.ts +0 -12
- package/common/lib/components/colorlook-component.class.d.ts +0 -6
- package/common/lib/components/input-base-value-component.class.d.ts +0 -35
- package/common/lib/components/interactive-component.class.d.ts +0 -57
- package/common/lib/components/look-component.class.d.ts +0 -18
- package/common/lib/components/selection-base.component.class.d.ts +0 -53
- package/common/lib/components/value-component.class.d.ts +0 -70
- package/common/lib/directives/auto-focus.directive.d.ts +0 -17
- package/common/lib/directives/copy-clipboard.directive.d.ts +0 -40
- package/common/lib/directives/delayed-value-changed.directive.d.ts +0 -17
- package/common/lib/directives/hotkey.directive.d.ts +0 -22
- package/common/lib/directives/infinite-scroll.directive.d.ts +0 -25
- package/common/lib/directives/inverted-color.directive.d.ts +0 -12
- package/common/lib/directives/responsive.directive.d.ts +0 -10
- package/common/lib/directives/ripple.directive.d.ts +0 -18
- package/common/lib/interfaces/component.interface.d.ts +0 -4
- package/common/lib/services/dom.service.d.ts +0 -6
- package/common/lib/services/hotkey.service.d.ts +0 -31
- package/common/lib/types/base/button.type.d.ts +0 -8
- package/common/lib/types/base/color.type.d.ts +0 -7
- package/common/lib/types/base/component.types.d.ts +0 -8
- package/common/lib/types/base/events.types.d.ts +0 -21
- package/common/lib/types/base/index.d.ts +0 -7
- package/common/lib/types/base/interactive.type.d.ts +0 -13
- package/common/lib/types/base/look.type.d.ts +0 -7
- package/common/lib/types/base/value.type.d.ts +0 -9
- package/common/lib/types/direction.d.ts +0 -4
- package/common/lib/types/orientation.d.ts +0 -4
- package/common/lib/types/placement.d.ts +0 -30
- package/common/lib/types/range.d.ts +0 -4
- package/common/lib/types/selection-mode.d.ts +0 -4
- package/fesm2022/acorex-components-common.mjs +0 -2087
- package/fesm2022/acorex-components-common.mjs.map +0 -1
- package/fesm2022/acorex-components-modal-acorex-components-modal-Ckn70-o5.mjs.map +0 -1
- package/fesm2022/acorex-components-modal-modal-content.component-DzRhA-Nt.mjs +0 -216
- package/fesm2022/acorex-components-modal-modal-content.component-DzRhA-Nt.mjs.map +0 -1
@@ -1,6 +1,6 @@
|
|
1
|
+
import { NXComponent, AXComponent, AXValuableComponent, AXFocusableComponent } from '@acorex/cdk/common';
|
1
2
|
import * as i2 from '@acorex/components/button';
|
2
3
|
import { AXButtonModule } from '@acorex/components/button';
|
3
|
-
import { NXComponent } from '@acorex/components/common';
|
4
4
|
import * as i1 from '@acorex/components/text-box';
|
5
5
|
import { AXTextBoxModule } from '@acorex/components/text-box';
|
6
6
|
import * as i3 from '@angular/common';
|
@@ -424,10 +424,10 @@ class AXFlowChartService {
|
|
424
424
|
this.nodesMap.clear();
|
425
425
|
this.eventListeners.clear();
|
426
426
|
}
|
427
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
428
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
427
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: AXFlowChartService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
428
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: AXFlowChartService }); }
|
429
429
|
}
|
430
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
430
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: AXFlowChartService, decorators: [{
|
431
431
|
type: Injectable
|
432
432
|
}] });
|
433
433
|
|
@@ -499,12 +499,12 @@ class AXFlowChartCreatorComponent extends NXComponent {
|
|
499
499
|
printWindow.document.write(printContent);
|
500
500
|
printWindow.document.close();
|
501
501
|
}
|
502
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
503
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
502
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: AXFlowChartCreatorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
503
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.11", type: AXFlowChartCreatorComponent, isStandalone: true, selector: "ax-flow-chart-creator", providers: [{ provide: AXComponent, useExisting: AXFlowChartCreatorComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-shape-container\">\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'rectangle' }\"\n (click)=\"selectShapeHandler('rectangle')\"\n class=\"ax-rectangle\"\n ></div>\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'circle' }\"\n (click)=\"selectShapeHandler('circle')\"\n class=\"ax-circle\"\n ></div>\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'diamond' }\"\n (click)=\"selectShapeHandler('diamond')\"\n class=\"ax-diamond\"\n ></div>\n</div>\n<ax-text-box class=\"ax-sm\" [(ngModel)]=\"label\" placeholder=\"Label\"> </ax-text-box>\n\n<ax-button class=\"ax-sm\" (onClick)=\"createShapeHandler()\" color=\"primary\" text=\"Create\"></ax-button>\n<ax-button color=\"primary\" text=\"Print\" class=\"ax-sm\" (click)=\"printChart()\"></ax-button>\n", styles: ["ax-flow-chart-creator{display:flex;gap:1rem;align-items:center;padding:1rem}ax-flow-chart-creator .ax-shape-container{display:flex;gap:1rem}ax-flow-chart-creator .ax-shape-container .ax-shape-selected{border:2px solid rgba(var(--ax-sys-color-danger-darker-surface))!important}ax-flow-chart-creator .ax-shape-container .ax-rectangle,ax-flow-chart-creator .ax-shape-container .ax-circle,ax-flow-chart-creator .ax-shape-container .ax-diamond{border:2px solid rgba(var(--ax-sys-color-border-surface));display:flex;justify-content:center;align-items:center;width:30px;height:30px;cursor:pointer}ax-flow-chart-creator .ax-shape-container .ax-circle{border-radius:1000vmax;aspect-ratio:1}ax-flow-chart-creator .ax-shape-container .ax-diamond{transform:rotate(45deg) scale(.75);aspect-ratio:1}\n"], dependencies: [{ kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i1.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
504
504
|
}
|
505
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
505
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: AXFlowChartCreatorComponent, decorators: [{
|
506
506
|
type: Component,
|
507
|
-
args: [{ selector: 'ax-flow-chart-creator', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXTextBoxModule, AXButtonModule, CommonModule, FormsModule], template: "<div class=\"ax-shape-container\">\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'rectangle' }\"\n (click)=\"selectShapeHandler('rectangle')\"\n class=\"ax-rectangle\"\n ></div>\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'circle' }\"\n (click)=\"selectShapeHandler('circle')\"\n class=\"ax-circle\"\n ></div>\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'diamond' }\"\n (click)=\"selectShapeHandler('diamond')\"\n class=\"ax-diamond\"\n ></div>\n</div>\n<ax-text-box class=\"ax-sm\" [(ngModel)]=\"label\" placeholder=\"Label\"> </ax-text-box>\n\n<ax-button class=\"ax-sm\" (onClick)=\"createShapeHandler()\" color=\"primary\" text=\"Create\"></ax-button>\n<ax-button color=\"primary\" text=\"Print\" class=\"ax-sm\" (click)=\"printChart()\"></ax-button>\n", styles: ["ax-flow-chart-creator{display:flex;gap:1rem;align-items:center;padding:1rem}ax-flow-chart-creator .ax-shape-container{display:flex;gap:1rem}ax-flow-chart-creator .ax-shape-container .ax-shape-selected{border:2px solid rgba(var(--ax-sys-color-danger-darker-surface))!important}ax-flow-chart-creator .ax-shape-container .ax-rectangle,ax-flow-chart-creator .ax-shape-container .ax-circle,ax-flow-chart-creator .ax-shape-container .ax-diamond{border:2px solid rgba(var(--ax-sys-color-border-surface));display:flex;justify-content:center;align-items:center;width:30px;height:30px;cursor:pointer}ax-flow-chart-creator .ax-shape-container .ax-circle{border-radius:1000vmax;aspect-ratio:1}ax-flow-chart-creator .ax-shape-container .ax-diamond{transform:rotate(45deg) scale(.75);aspect-ratio:1}\n"] }]
|
507
|
+
args: [{ selector: 'ax-flow-chart-creator', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXTextBoxModule, AXButtonModule, CommonModule, FormsModule], providers: [{ provide: AXComponent, useExisting: AXFlowChartCreatorComponent }], template: "<div class=\"ax-shape-container\">\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'rectangle' }\"\n (click)=\"selectShapeHandler('rectangle')\"\n class=\"ax-rectangle\"\n ></div>\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'circle' }\"\n (click)=\"selectShapeHandler('circle')\"\n class=\"ax-circle\"\n ></div>\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'diamond' }\"\n (click)=\"selectShapeHandler('diamond')\"\n class=\"ax-diamond\"\n ></div>\n</div>\n<ax-text-box class=\"ax-sm\" [(ngModel)]=\"label\" placeholder=\"Label\"> </ax-text-box>\n\n<ax-button class=\"ax-sm\" (onClick)=\"createShapeHandler()\" color=\"primary\" text=\"Create\"></ax-button>\n<ax-button color=\"primary\" text=\"Print\" class=\"ax-sm\" (click)=\"printChart()\"></ax-button>\n", styles: ["ax-flow-chart-creator{display:flex;gap:1rem;align-items:center;padding:1rem}ax-flow-chart-creator .ax-shape-container{display:flex;gap:1rem}ax-flow-chart-creator .ax-shape-container .ax-shape-selected{border:2px solid rgba(var(--ax-sys-color-danger-darker-surface))!important}ax-flow-chart-creator .ax-shape-container .ax-rectangle,ax-flow-chart-creator .ax-shape-container .ax-circle,ax-flow-chart-creator .ax-shape-container .ax-diamond{border:2px solid rgba(var(--ax-sys-color-border-surface));display:flex;justify-content:center;align-items:center;width:30px;height:30px;cursor:pointer}ax-flow-chart-creator .ax-shape-container .ax-circle{border-radius:1000vmax;aspect-ratio:1}ax-flow-chart-creator .ax-shape-container .ax-diamond{transform:rotate(45deg) scale(.75);aspect-ratio:1}\n"] }]
|
508
508
|
}] });
|
509
509
|
|
510
510
|
class AXFlowChartRendererComponent extends NXComponent {
|
@@ -588,12 +588,12 @@ class AXFlowChartRendererComponent extends NXComponent {
|
|
588
588
|
this.service.nodeDbClick.unsubscribe();
|
589
589
|
this.service.onEdgeUpdate.unsubscribe();
|
590
590
|
}
|
591
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
592
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.
|
591
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: AXFlowChartRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
592
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.11", type: AXFlowChartRendererComponent, isStandalone: true, selector: "ax-flow-chart-renderer", outputs: { onLineClick: "onLineClick", onLineDbClick: "onLineDbClick", onNodeClick: "onNodeClick", onNodeDbClick: "onNodeDbClick", onEdgeUpdate: "onEdgeUpdate", onNodeUpdate: "onNodeUpdate" }, providers: [{ provide: AXComponent, useExisting: AXFlowChartRendererComponent }], viewQueries: [{ propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true, isSignal: true }, { propertyName: "svg", first: true, predicate: ["connections"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div id=\"ax-flow-chart-renderer-canvas\" #canvas>\n <svg class=\"ax-flow-chart-renderer-svg\" id=\"ax-flow-chart-renderer-connections\" #connections></svg>\n</div>\n", styles: ["ax-flow-chart-renderer{overflow:hidden;width:var(--ax-comp-flow-chart-width, 100%);height:var(--ax-comp-flow-chart-height, 30rem);-webkit-print-color-adjust:exact;print-color-adjust:exact}ax-flow-chart-renderer #ax-flow-chart-renderer-canvas{position:relative;width:100%;height:100%}ax-flow-chart-renderer .ax-flow-chart-node{position:absolute;padding:1rem;background-color:rgba(var(--ax-sys-color-surface));color:rgba(var(--ax-sys-color-on-surface));border:2px solid rgba(var(--ax-sys-color-border-surface));cursor:move;-webkit-user-select:none;user-select:none}ax-flow-chart-renderer .ax-flow-chart-node.selected{border:2px solid rgba(var(--ax-sys-color-danger-darker-surface))}ax-flow-chart-renderer .ax-flow-chart-node .ax-flow-chart-anchor{opacity:0;transition:opacity .5s ease}ax-flow-chart-renderer .ax-flow-chart-node:hover .ax-flow-chart-anchor,ax-flow-chart-renderer .ax-flow-chart-node.selected .ax-flow-chart-anchor{opacity:1}ax-flow-chart-renderer .ax-flow-chart-anchor{position:absolute;width:10px;height:10px;background-color:rgba(var(--ax-sys-color-on-lightest-surface));border-radius:50%;cursor:crosshair;transform:translate(-50%,-50%)}ax-flow-chart-renderer .ax-flow-chart-anchor.selected{background-color:rgba(var(--ax-sys-color-primary-surface))}ax-flow-chart-renderer .ax-flow-chart-anchor.hover{transition:.3s all ease;scale:1.3;background-color:rgba(var(--ax-sys-color-danger-darkest-surface))}ax-flow-chart-renderer .ax-flow-chart-anchor:before{content:\"\";position:absolute;top:-7px;left:-7px;right:-7px;bottom:-7px}ax-flow-chart-renderer .ax-flow-chart-renderer-svg{position:absolute;top:0;left:0;overflow:visible}ax-flow-chart-renderer .ax-flow-chart-line:hover{transition:.3s all ease;stroke:rgba(var(--ax-sys-color-danger-darker-surface));cursor:pointer}ax-flow-chart-renderer .ax-flow-chart-line.selected{stroke:rgba(var(--ax-sys-color-primary-surface))}ax-flow-chart-renderer .ax-rectangle,ax-flow-chart-renderer .ax-circle,ax-flow-chart-renderer .ax-diamond{border:2px solid rgba(var(--ax-sys-color-border-surface));display:flex;justify-content:center;align-items:center;width:auto;height:auto}ax-flow-chart-renderer .ax-circle{border-radius:1000vmax;aspect-ratio:1}ax-flow-chart-renderer .ax-diamond{transform:rotate(45deg) scale(.75);aspect-ratio:1}ax-flow-chart-renderer .ax-diamond p{transform:rotate(-45deg) scale(1.25)}ax-flow-chart-renderer .ax-diamond .ax-flow-chart-anchor{width:14px;height:14px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
593
593
|
}
|
594
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
594
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: AXFlowChartRendererComponent, decorators: [{
|
595
595
|
type: Component,
|
596
|
-
args: [{ selector: 'ax-flow-chart-renderer', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div id=\"ax-flow-chart-renderer-canvas\" #canvas>\n <svg class=\"ax-flow-chart-renderer-svg\" id=\"ax-flow-chart-renderer-connections\" #connections></svg>\n</div>\n", styles: ["ax-flow-chart-renderer{overflow:hidden;width:var(--ax-comp-flow-chart-width, 100%);height:var(--ax-comp-flow-chart-height, 30rem);-webkit-print-color-adjust:exact;print-color-adjust:exact}ax-flow-chart-renderer #ax-flow-chart-renderer-canvas{position:relative;width:100%;height:100%}ax-flow-chart-renderer .ax-flow-chart-node{position:absolute;padding:1rem;background-color:rgba(var(--ax-sys-color-surface));color:rgba(var(--ax-sys-color-on-surface));border:2px solid rgba(var(--ax-sys-color-border-surface));cursor:move;-webkit-user-select:none;user-select:none}ax-flow-chart-renderer .ax-flow-chart-node.selected{border:2px solid rgba(var(--ax-sys-color-danger-darker-surface))}ax-flow-chart-renderer .ax-flow-chart-node .ax-flow-chart-anchor{opacity:0;transition:opacity .5s ease}ax-flow-chart-renderer .ax-flow-chart-node:hover .ax-flow-chart-anchor,ax-flow-chart-renderer .ax-flow-chart-node.selected .ax-flow-chart-anchor{opacity:1}ax-flow-chart-renderer .ax-flow-chart-anchor{position:absolute;width:10px;height:10px;background-color:rgba(var(--ax-sys-color-on-lightest-surface));border-radius:50%;cursor:crosshair;transform:translate(-50%,-50%)}ax-flow-chart-renderer .ax-flow-chart-anchor.selected{background-color:rgba(var(--ax-sys-color-primary-surface))}ax-flow-chart-renderer .ax-flow-chart-anchor.hover{transition:.3s all ease;scale:1.3;background-color:rgba(var(--ax-sys-color-danger-darkest-surface))}ax-flow-chart-renderer .ax-flow-chart-anchor:before{content:\"\";position:absolute;top:-7px;left:-7px;right:-7px;bottom:-7px}ax-flow-chart-renderer .ax-flow-chart-renderer-svg{position:absolute;top:0;left:0;overflow:visible}ax-flow-chart-renderer .ax-flow-chart-line:hover{transition:.3s all ease;stroke:rgba(var(--ax-sys-color-danger-darker-surface));cursor:pointer}ax-flow-chart-renderer .ax-flow-chart-line.selected{stroke:rgba(var(--ax-sys-color-primary-surface))}ax-flow-chart-renderer .ax-rectangle,ax-flow-chart-renderer .ax-circle,ax-flow-chart-renderer .ax-diamond{border:2px solid rgba(var(--ax-sys-color-border-surface));display:flex;justify-content:center;align-items:center;width:auto;height:auto}ax-flow-chart-renderer .ax-circle{border-radius:1000vmax;aspect-ratio:1}ax-flow-chart-renderer .ax-diamond{transform:rotate(45deg) scale(.75);aspect-ratio:1}ax-flow-chart-renderer .ax-diamond p{transform:rotate(-45deg) scale(1.25)}ax-flow-chart-renderer .ax-diamond .ax-flow-chart-anchor{width:14px;height:14px}\n"] }]
|
596
|
+
args: [{ selector: 'ax-flow-chart-renderer', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXComponent, useExisting: AXFlowChartRendererComponent }], template: "<div id=\"ax-flow-chart-renderer-canvas\" #canvas>\n <svg class=\"ax-flow-chart-renderer-svg\" id=\"ax-flow-chart-renderer-connections\" #connections></svg>\n</div>\n", styles: ["ax-flow-chart-renderer{overflow:hidden;width:var(--ax-comp-flow-chart-width, 100%);height:var(--ax-comp-flow-chart-height, 30rem);-webkit-print-color-adjust:exact;print-color-adjust:exact}ax-flow-chart-renderer #ax-flow-chart-renderer-canvas{position:relative;width:100%;height:100%}ax-flow-chart-renderer .ax-flow-chart-node{position:absolute;padding:1rem;background-color:rgba(var(--ax-sys-color-surface));color:rgba(var(--ax-sys-color-on-surface));border:2px solid rgba(var(--ax-sys-color-border-surface));cursor:move;-webkit-user-select:none;user-select:none}ax-flow-chart-renderer .ax-flow-chart-node.selected{border:2px solid rgba(var(--ax-sys-color-danger-darker-surface))}ax-flow-chart-renderer .ax-flow-chart-node .ax-flow-chart-anchor{opacity:0;transition:opacity .5s ease}ax-flow-chart-renderer .ax-flow-chart-node:hover .ax-flow-chart-anchor,ax-flow-chart-renderer .ax-flow-chart-node.selected .ax-flow-chart-anchor{opacity:1}ax-flow-chart-renderer .ax-flow-chart-anchor{position:absolute;width:10px;height:10px;background-color:rgba(var(--ax-sys-color-on-lightest-surface));border-radius:50%;cursor:crosshair;transform:translate(-50%,-50%)}ax-flow-chart-renderer .ax-flow-chart-anchor.selected{background-color:rgba(var(--ax-sys-color-primary-surface))}ax-flow-chart-renderer .ax-flow-chart-anchor.hover{transition:.3s all ease;scale:1.3;background-color:rgba(var(--ax-sys-color-danger-darkest-surface))}ax-flow-chart-renderer .ax-flow-chart-anchor:before{content:\"\";position:absolute;top:-7px;left:-7px;right:-7px;bottom:-7px}ax-flow-chart-renderer .ax-flow-chart-renderer-svg{position:absolute;top:0;left:0;overflow:visible}ax-flow-chart-renderer .ax-flow-chart-line:hover{transition:.3s all ease;stroke:rgba(var(--ax-sys-color-danger-darker-surface));cursor:pointer}ax-flow-chart-renderer .ax-flow-chart-line.selected{stroke:rgba(var(--ax-sys-color-primary-surface))}ax-flow-chart-renderer .ax-rectangle,ax-flow-chart-renderer .ax-circle,ax-flow-chart-renderer .ax-diamond{border:2px solid rgba(var(--ax-sys-color-border-surface));display:flex;justify-content:center;align-items:center;width:auto;height:auto}ax-flow-chart-renderer .ax-circle{border-radius:1000vmax;aspect-ratio:1}ax-flow-chart-renderer .ax-diamond{transform:rotate(45deg) scale(.75);aspect-ratio:1}ax-flow-chart-renderer .ax-diamond p{transform:rotate(-45deg) scale(1.25)}ax-flow-chart-renderer .ax-diamond .ax-flow-chart-anchor{width:14px;height:14px}\n"] }]
|
597
597
|
}] });
|
598
598
|
|
599
599
|
class AXFlowChartComponent extends NXComponent {
|
@@ -634,12 +634,22 @@ class AXFlowChartComponent extends NXComponent {
|
|
634
634
|
removeNode(nodeId) {
|
635
635
|
this.flowChartService.removeNode(nodeId);
|
636
636
|
}
|
637
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
638
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.
|
637
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: AXFlowChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
638
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.11", type: AXFlowChartComponent, isStandalone: true, selector: "ax-flow-chart", inputs: { initialFlowChartNode: { classPropertyName: "initialFlowChartNode", publicName: "initialFlowChartNode", isSignal: true, isRequired: true, transformFunction: null }, initialFlowChartEdge: { classPropertyName: "initialFlowChartEdge", publicName: "initialFlowChartEdge", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, providers: [
|
639
|
+
AXFlowChartService,
|
640
|
+
{ provide: AXComponent, useExisting: AXFlowChartComponent },
|
641
|
+
{ provide: AXValuableComponent, useExisting: AXFlowChartComponent },
|
642
|
+
{ provide: AXFocusableComponent, useExisting: AXFlowChartComponent },
|
643
|
+
], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-header\"></ng-content>\n<ng-content select=\"ax-flow-chart-renderer\"></ng-content>\n<ng-content select=\"ax-footer\"></ng-content>\n", styles: ["ax-flow-chart{display:flex;flex-direction:column;width:100%;height:100%;border:1px solid rgba(var(--ax-sys-color-border-lightest-surface));border-radius:var(--ax-sys-border-radius)}ax-flow-chart ax-header{border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-flow-chart ax-footer{border-top:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
639
644
|
}
|
640
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
645
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: AXFlowChartComponent, decorators: [{
|
641
646
|
type: Component,
|
642
|
-
args: [{ selector: 'ax-flow-chart', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
647
|
+
args: [{ selector: 'ax-flow-chart', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
648
|
+
AXFlowChartService,
|
649
|
+
{ provide: AXComponent, useExisting: AXFlowChartComponent },
|
650
|
+
{ provide: AXValuableComponent, useExisting: AXFlowChartComponent },
|
651
|
+
{ provide: AXFocusableComponent, useExisting: AXFlowChartComponent },
|
652
|
+
], template: "<ng-content select=\"ax-header\"></ng-content>\n<ng-content select=\"ax-flow-chart-renderer\"></ng-content>\n<ng-content select=\"ax-footer\"></ng-content>\n", styles: ["ax-flow-chart{display:flex;flex-direction:column;width:100%;height:100%;border:1px solid rgba(var(--ax-sys-color-border-lightest-surface));border-radius:var(--ax-sys-border-radius)}ax-flow-chart ax-header{border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-flow-chart ax-footer{border-top:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}\n"] }]
|
643
653
|
}], propDecorators: { handleKeyboardEvent: [{
|
644
654
|
type: HostListener,
|
645
655
|
args: ['document:keydown', ['$event']]
|
@@ -648,11 +658,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
648
658
|
const COMPONENT = [AXFlowChartRendererComponent, AXFlowChartCreatorComponent, AXFlowChartComponent];
|
649
659
|
const MODULES = [CommonModule];
|
650
660
|
class AXFlowChartModule {
|
651
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
652
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
653
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
661
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: AXFlowChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
662
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.11", ngImport: i0, type: AXFlowChartModule, imports: [CommonModule, AXFlowChartRendererComponent, AXFlowChartCreatorComponent, AXFlowChartComponent], exports: [AXFlowChartRendererComponent, AXFlowChartCreatorComponent, AXFlowChartComponent] }); }
|
663
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: AXFlowChartModule, imports: [MODULES, AXFlowChartCreatorComponent] }); }
|
654
664
|
}
|
655
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
665
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: AXFlowChartModule, decorators: [{
|
656
666
|
type: NgModule,
|
657
667
|
args: [{
|
658
668
|
imports: [...MODULES, ...COMPONENT],
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-flow-chart.mjs","sources":["../../../../packages/components/flow-chart/src/lib/flow-chart.service.ts","../../../../packages/components/flow-chart/src/lib/flow-chart-creator/flow-chart-creator.component.ts","../../../../packages/components/flow-chart/src/lib/flow-chart-creator/flow-chart-creator.component.html","../../../../packages/components/flow-chart/src/lib/flow-chart-renderer/flow-chart-renderer.component.ts","../../../../packages/components/flow-chart/src/lib/flow-chart-renderer/flow-chart-renderer.component.html","../../../../packages/components/flow-chart/src/lib/flow-chart.component.ts","../../../../packages/components/flow-chart/src/lib/flow-chart.component.html","../../../../packages/components/flow-chart/src/lib/flow-chart.module.ts","../../../../packages/components/flow-chart/src/acorex-components-flow-chart.ts"],"sourcesContent":["import { effect, inject, Injectable, NgZone, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport {\n AXFlowChartEdges,\n AXFlowChartNodes,\n AXLineClickEvent,\n AXNodeClickEvent,\n HTMLElementWithDataset,\n} from './flow-chart.type';\n\n@Injectable()\nexport class AXFlowChartService {\n private zone = inject(NgZone);\n\n initialFlowChartEdge = signal([]);\n initialFlowChartNode = signal([]);\n selectedNode = signal<AXFlowChartNodes | null>(null);\n selectedEdge = signal<AXFlowChartEdges | null>(null);\n readonly svgService = signal(null);\n readonly canvasService = signal(null);\n\n readonly lineClick = new Subject<AXLineClickEvent>();\n readonly lineDbClick = new Subject<AXLineClickEvent>();\n readonly nodeClick = new Subject<AXNodeClickEvent>();\n readonly nodeDbClick = new Subject<AXNodeClickEvent>();\n readonly onEdgeUpdate = new Subject<AXFlowChartEdges>();\n readonly onNodeUpdate = new Subject<AXFlowChartNodes>();\n\n private nodesMap = new Map<string, HTMLElementWithDataset>();\n private eventListeners = new Map<string, Map<string, EventListener>>();\n private anchorClickBuffer: { nodeId: string; anchor: string } | null = null;\n\n private currentConnection: {\n source?: { id: string; anchor: string };\n target?: { id: string; anchor: string };\n mouse?: { x: number; y: number };\n } | null = null;\n private draggingConnection = false;\n private tempLine: SVGLineElement | null = null;\n\n #eff2 = effect(() => {\n if (this.initialFlowChartEdge()) {\n setTimeout(() => {\n this.drawEdges(this.initialFlowChartEdge());\n });\n }\n });\n\n #eff3 = effect(() => {\n if (this.initialFlowChartNode()) {\n this.createNode(this.initialFlowChartNode());\n }\n });\n\n private addEventListener(element: HTMLElement, event: string, handler: EventListener) {\n const elementId = element.dataset['id'] || 'global';\n if (!this.eventListeners.has(elementId)) {\n this.eventListeners.set(elementId, new Map());\n }\n\n const elementListeners = this.eventListeners.get(elementId);\n if (elementListeners) {\n const boundHandler = handler.bind(this);\n elementListeners.set(event, boundHandler);\n element.addEventListener(event, boundHandler);\n }\n }\n\n private removeEventListeners(elementId: string) {\n const elementListeners = this.eventListeners.get(elementId);\n if (elementListeners) {\n elementListeners.forEach((handler, event) => {\n const element = this.nodesMap.get(elementId);\n if (element) {\n element.removeEventListener(event, handler);\n }\n });\n this.eventListeners.delete(elementId);\n }\n }\n\n private setupNodeEventListeners(\n el: HTMLElementWithDataset,\n node: { id: string; type: string; label: string; x: number; y: number },\n ) {\n this.addEventListener(el, 'click', (e: Event) => {\n this.nodeClick.next({ target: el, event: e as MouseEvent });\n this.selectedNode.set(node);\n el.classList.add('selected');\n this.nodesMap.forEach((existingNode) => {\n if (existingNode !== el) {\n existingNode.classList.remove('selected');\n }\n });\n });\n\n this.addEventListener(el, 'dblclick', (e: Event) => {\n this.nodeDbClick.next({ target: el, event: e as MouseEvent });\n });\n\n this.addEventListener(el, 'mouseenter', () => {\n el.classList.add('hover');\n });\n\n this.addEventListener(el, 'mouseleave', () => {\n el.classList.remove('hover');\n });\n }\n\n private setupAnchorEventListeners(dot: HTMLElementWithDataset, el: HTMLElementWithDataset) {\n // start drag to connect\n this.addEventListener(dot, 'mousedown', (e: Event) => {\n const mouseEvent = e as MouseEvent;\n mouseEvent.stopPropagation();\n mouseEvent.preventDefault();\n const pos = this.getAnchorPoint(el, dot.dataset['anchor']);\n\n this.currentConnection = {\n source: {\n id: dot.dataset['nodeId'],\n anchor: dot.dataset['anchor'],\n },\n mouse: { x: mouseEvent.clientX, y: mouseEvent.clientY },\n };\n\n this.startTempLine(pos.x, pos.y);\n this.draggingConnection = true;\n });\n\n this.addEventListener(dot, 'click', (e: Event) => {\n e.stopPropagation();\n\n if (dot.classList.contains('selected')) {\n dot.classList.remove('selected');\n } else {\n dot.classList.add('selected');\n }\n\n const clicked = {\n nodeId: dot.dataset['nodeId'],\n anchor: dot.dataset['anchor'],\n };\n\n console.log(clicked);\n\n if (!this.anchorClickBuffer) {\n this.anchorClickBuffer = clicked;\n } else {\n const source = this.anchorClickBuffer;\n const target = clicked;\n\n if (source.nodeId !== target.nodeId) {\n this.pushAndCreateEdgeData(\n { id: source.nodeId, anchor: source.anchor },\n { id: target.nodeId, anchor: target.anchor },\n );\n }\n\n this.anchorClickBuffer = null;\n }\n });\n\n this.addEventListener(dot, 'mouseenter', () => {\n dot.classList.add('hover');\n });\n\n this.addEventListener(dot, 'mouseleave', () => {\n dot.classList.remove('hover');\n });\n }\n\n private addAnchors(el: HTMLElementWithDataset, type: string) {\n ['top', 'bottom', 'left', 'right'].forEach((anchor) => {\n const dot = document.createElement('div') as HTMLElementWithDataset;\n dot.className = 'ax-flow-chart-anchor';\n dot.dataset['anchor'] = anchor;\n dot.dataset['nodeId'] = el.dataset['id'];\n\n this.positionAnchor(dot, anchor, type);\n el.appendChild(dot);\n\n this.setupAnchorEventListeners(dot, el);\n });\n }\n\n private makeDraggable(el: HTMLElement) {\n let offsetX = 0,\n offsetY = 0,\n isDragging = false;\n\n this.addEventListener(el, 'mousedown', (e: Event) => {\n const mouseEvent = e as MouseEvent;\n if ((mouseEvent.target as HTMLElement).classList.contains('ax-flow-chart-anchor')) return;\n isDragging = true;\n offsetX = mouseEvent.clientX - el.offsetLeft;\n offsetY = mouseEvent.clientY - el.offsetTop;\n mouseEvent.preventDefault();\n });\n\n const mousemoveHandler = (e: MouseEvent) => {\n if (isDragging) {\n el.style.left = e.clientX - offsetX + 'px';\n el.style.top = e.clientY - offsetY + 'px';\n this.drawEdges(this.initialFlowChartEdge());\n\n this.initialFlowChartNode.update((value) => {\n const node = value.find((node) => node.id === el.dataset['id']);\n if (node) {\n node.x = e.clientX - offsetX;\n node.y = e.clientY - offsetY;\n }\n return value;\n });\n }\n\n const elementId = (e.target as HTMLElement).id;\n if (elementId === 'ax-flow-chart-renderer-connections' || elementId === 'ax-flow-chart-renderer-canvas') {\n if (this.draggingConnection && this.tempLine) {\n this.tempLine.setAttribute('x2', e.offsetX.toString());\n this.tempLine.setAttribute('y2', e.offsetY.toString());\n }\n }\n };\n\n const mouseupHandler = (e: MouseEvent) => {\n isDragging = false;\n if (this.draggingConnection) {\n const target = (e.target as HTMLElement).closest('.ax-flow-chart-anchor') as HTMLElementWithDataset;\n if (target && target.dataset['nodeId'] !== this.currentConnection?.source?.id) {\n this.currentConnection = {\n ...this.currentConnection,\n target: {\n id: target.dataset['nodeId'],\n anchor: target.dataset['anchor'],\n },\n };\n this.finishConnection();\n }\n this.clearTempLine();\n this.draggingConnection = false;\n }\n };\n\n // Add global event listeners\n this.zone.runOutsideAngular(() => {\n document.addEventListener('mousemove', mousemoveHandler);\n document.addEventListener('mouseup', mouseupHandler);\n });\n\n // Store global listeners\n const globalListeners = this.eventListeners.get('global');\n if (globalListeners) {\n globalListeners.set('mousemove', mousemoveHandler as EventListener);\n globalListeners.set('mouseup', mouseupHandler as EventListener);\n }\n }\n\n private positionAnchor(dot: HTMLElement, anchor: string, type: string) {\n if (type !== 'diamond') {\n switch (anchor) {\n case 'top':\n dot.style.top = '0%';\n dot.style.left = '50%';\n break;\n case 'bottom':\n dot.style.top = '100%';\n dot.style.left = '50%';\n break;\n case 'left':\n dot.style.top = '50%';\n dot.style.left = '0%';\n break;\n case 'right':\n dot.style.top = '50%';\n dot.style.left = '100%';\n break;\n }\n } else {\n switch (anchor) {\n case 'top':\n dot.style.top = '0%';\n dot.style.left = '0%';\n break;\n case 'bottom':\n dot.style.top = '100%';\n dot.style.left = '100%';\n break;\n case 'left':\n dot.style.top = '100%';\n dot.style.left = '0%';\n break;\n case 'right':\n dot.style.top = '0%';\n dot.style.left = '100%';\n break;\n }\n }\n }\n\n private getAnchorPoint(el: HTMLElement, anchor: string): { x: number; y: number } {\n const rect = el.getBoundingClientRect();\n const centerX = el.offsetLeft + rect.width / 2;\n const centerY = el.offsetTop + rect.height / 2;\n\n switch (anchor) {\n case 'top':\n return { x: centerX, y: el.offsetTop };\n case 'bottom':\n return { x: centerX, y: el.offsetTop + rect.height };\n case 'left':\n return { x: el.offsetLeft, y: centerY };\n case 'right':\n return { x: el.offsetLeft + rect.width, y: centerY };\n default:\n return { x: centerX, y: centerY };\n }\n }\n\n private startTempLine(x: number, y: number) {\n const svgElement = this.svgService()?.nativeElement;\n\n if (!svgElement) return;\n\n this.tempLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');\n this.tempLine.setAttribute('x1', x.toString());\n this.tempLine.setAttribute('y1', y.toString());\n this.tempLine.setAttribute('x2', x.toString());\n this.tempLine.setAttribute('y2', y.toString());\n this.tempLine.setAttribute('stroke', 'rgba(var(--ax-sys-color-on-lightest-surface),0.5)');\n this.tempLine.setAttribute('stroke-width', '2');\n this.tempLine.setAttribute('stroke-dasharray', '4');\n svgElement.appendChild(this.tempLine);\n }\n\n private clearTempLine() {\n if (this.tempLine && this.tempLine.parentElement) {\n this.svgService()?.nativeElement.removeChild(this.tempLine);\n this.tempLine = null;\n }\n }\n\n private pushAndCreateEdgeData(source: { id: string; anchor: string }, target: { id: string; anchor: string }) {\n const newEdge = {\n id: `edge-${Math.random().toString()}`,\n source,\n target,\n };\n\n this.onEdgeUpdate.next(newEdge);\n this.initialFlowChartEdge.update((value) => [...value, newEdge]);\n this.drawEdges();\n }\n\n drawEdges(edges?: AXFlowChartEdges[]) {\n const svg = this.svgService()?.nativeElement;\n if (!svg) return;\n\n // Clear existing edges\n svg.innerHTML = '';\n\n // Use provided edges or get from signal\n const edgesToDraw = edges || this.initialFlowChartEdge();\n\n edgesToDraw.forEach((edge) => {\n const sourceNode = this.nodesMap.get(edge.source.id);\n const targetNode = this.nodesMap.get(edge.target.id);\n\n if (sourceNode) {\n const sourceAnchor = sourceNode.querySelector(`[data-anchor=\"${edge.source.anchor}\"]`);\n if (sourceAnchor) sourceAnchor.classList.add('selected');\n }\n if (targetNode) {\n const targetAnchor = targetNode.querySelector(`[data-anchor=\"${edge.target.anchor}\"]`);\n if (targetAnchor) targetAnchor.classList.add('selected');\n }\n\n if (sourceNode && targetNode) {\n const sourcePoint = this.getAnchorPoint(sourceNode, edge.source.anchor);\n const targetPoint = this.getAnchorPoint(targetNode, edge.target.anchor);\n\n const line = this.createLine(sourcePoint, targetPoint, edge);\n line.classList.add('ax-flow-chart-line');\n\n // Add click event listener for line selection\n this.addEventListener(line as unknown as HTMLElement, 'click', (e: Event) => {\n e.stopPropagation();\n this.lineClick.next({ target: edge, event: e as MouseEvent });\n this.selectedEdge.set(edge);\n this.selectedNode.set(null);\n // Remove selection from all other lines\n document.querySelectorAll('.ax-flow-chart-line').forEach((l) => {\n if (l !== line) l.classList.remove('selected');\n });\n // Add selection to clicked line\n line.classList.add('selected');\n // Remove selection from all nodes\n this.nodesMap.forEach((node) => node.classList.remove('selected'));\n });\n\n svg.appendChild(line);\n }\n });\n }\n\n createLine(from: { x: number; y: number }, to: { x: number; y: number }, edge: AXFlowChartEdges) {\n const line = document.createElementNS('http://www.w3.org/2000/svg', 'line');\n line.setAttribute('x1', from.x.toString());\n line.setAttribute('y1', from.y.toString());\n line.setAttribute('x2', to.x.toString());\n line.setAttribute('y2', to.y.toString());\n line.setAttribute('stroke', 'rgba(var(--ax-sys-color-on-surface))');\n line.setAttribute('stroke-width', '3');\n line.classList.add('ax-flow-chart-line');\n line.addEventListener('click', (e: MouseEvent) => {\n this.lineClick.next({ target: edge, event: e });\n this.selectedEdge.set(edge);\n });\n line.addEventListener('dblclick', (e: MouseEvent) => {\n this.lineDbClick.next({ target: edge, event: e });\n });\n return line;\n }\n\n private finishConnection() {\n if (this.currentConnection?.source && this.currentConnection?.target) {\n this.pushAndCreateEdgeData(this.currentConnection.source, this.currentConnection.target);\n }\n this.currentConnection = null;\n }\n\n removeEdge(edge: AXFlowChartEdges) {\n this.initialFlowChartEdge.update((value) => value.filter((e) => e.id !== edge.id));\n\n // Remove selected class from connected anchors\n const sourceNode = this.nodesMap.get(edge.source.id);\n const targetNode = this.nodesMap.get(edge.target.id);\n\n if (sourceNode) {\n const sourceAnchor = sourceNode.querySelector(`[data-anchor=\"${edge.source.anchor}\"]`);\n if (sourceAnchor) sourceAnchor.classList.remove('selected');\n }\n\n if (targetNode) {\n const targetAnchor = targetNode.querySelector(`[data-anchor=\"${edge.target.anchor}\"]`);\n if (targetAnchor) targetAnchor.classList.remove('selected');\n }\n }\n\n createNode(nodes: { id: string; type: string; label: string; x: number; y: number }[]) {\n document.querySelectorAll('.ax-flow-chart-node')?.forEach((node) => node.remove());\n\n nodes.forEach((node) => {\n const el = document.createElement('div') as HTMLElementWithDataset;\n const p = document.createElement('p') as HTMLElementWithDataset;\n p.innerText = node.label;\n el.appendChild(p);\n el.className = 'ax-flow-chart-node';\n el.classList.add(`ax-${node.type}`);\n el.style.left = node.x + 'px';\n el.style.top = node.y + 'px';\n el.dataset['id'] = node.id;\n\n this.addAnchors(el, node.type);\n this.makeDraggable(el);\n this.setupNodeEventListeners(el, node);\n\n this.canvasService().nativeElement.appendChild(el);\n this.nodesMap.set(node.id, el);\n });\n }\n\n removeNode(nodeId: string) {\n this.initialFlowChartNode.update((value) => value.filter((e) => e.id !== nodeId));\n\n this.initialFlowChartEdge().forEach((edge) => {\n if (edge.source.id === nodeId || edge.target.id === nodeId) {\n this.removeEdge(edge);\n }\n });\n\n document.querySelector(`[data-id=\"${nodeId}\"]`)?.remove();\n this.anchorClickBuffer = null;\n }\n\n cleanup() {\n this.nodesMap.forEach((_, id) => this.removeEventListeners(id));\n this.nodesMap.clear();\n this.eventListeners.clear();\n }\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { NXComponent } from '@acorex/components/common';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXFlowChartService } from '../flow-chart.service';\n\n@Component({\n selector: 'ax-flow-chart-creator',\n templateUrl: './flow-chart-creator.component.html',\n styleUrls: ['./flow-chart-creator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTextBoxModule, AXButtonModule, CommonModule, FormsModule],\n})\nexport class AXFlowChartCreatorComponent extends NXComponent {\n service = inject(AXFlowChartService);\n protected selectedShape = signal('rectangle');\n protected label = 'Label';\n\n protected selectShapeHandler(shape: 'rectangle' | 'circle' | 'diamond') {\n this.selectedShape.set(shape);\n }\n\n protected createShapeHandler() {\n const newNode = {\n id: Math.random().toString(),\n type: this.selectedShape(),\n label: this.label,\n x: 0,\n y: 0,\n };\n this.service.initialFlowChartNode.update((value) => [...value, newNode]);\n this.service.onNodeUpdate.next(newNode);\n }\n\n protected printChart(): void {\n const printWindow = window.open('', '_blank');\n if (!printWindow) return;\n\n const canvas = this.service.canvasService()?.nativeElement;\n if (!canvas) return;\n\n // Get all styles from the document and component\n const styles = Array.from(document.styleSheets)\n .map((sheet) => {\n try {\n return Array.from(sheet.cssRules)\n .map((rule) => rule.cssText)\n .join('\\n');\n } catch (e) {\n return '';\n }\n })\n .join('\\n');\n\n // Add print-specific styles for anchors\n const printStyles = `\n ${styles}\n .ax-flow-chart-anchor {\n opacity: 1 !important;\n }\n `;\n\n // Create the print content with proper styling\n const printContent = `\n <!DOCTYPE html>\n <html>\n <head>\n <title>Flow Chart Print</title>\n <style>\n ${printStyles}\n </style>\n </head>\n <body>\n <ax-flow-chart-renderer>\n ${canvas.outerHTML}\n </ax-flow-chart-renderer>\n </body>\n </html>\n `;\n\n printWindow.document.write(printContent);\n printWindow.document.close();\n }\n}\n","<div class=\"ax-shape-container\">\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'rectangle' }\"\n (click)=\"selectShapeHandler('rectangle')\"\n class=\"ax-rectangle\"\n ></div>\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'circle' }\"\n (click)=\"selectShapeHandler('circle')\"\n class=\"ax-circle\"\n ></div>\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'diamond' }\"\n (click)=\"selectShapeHandler('diamond')\"\n class=\"ax-diamond\"\n ></div>\n</div>\n<ax-text-box class=\"ax-sm\" [(ngModel)]=\"label\" placeholder=\"Label\"> </ax-text-box>\n\n<ax-button class=\"ax-sm\" (onClick)=\"createShapeHandler()\" color=\"primary\" text=\"Create\"></ax-button>\n<ax-button color=\"primary\" text=\"Print\" class=\"ax-sm\" (click)=\"printChart()\"></ax-button>\n","import { NXComponent } from '@acorex/components/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n inject,\n OnDestroy,\n output,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXFlowChartService } from '../flow-chart.service';\nimport { AXFlowChartEdges, AXFlowChartNodes, AXLineClickEvent, AXNodeClickEvent } from '../flow-chart.type';\n\n@Component({\n selector: 'ax-flow-chart-renderer',\n templateUrl: './flow-chart-renderer.component.html',\n styleUrls: ['./flow-chart-renderer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXFlowChartRendererComponent extends NXComponent implements OnDestroy {\n private canvas = viewChild<ElementRef>('canvas');\n private svg = viewChild<ElementRef>('connections');\n private service = inject(AXFlowChartService);\n\n readonly onLineClick = output<AXLineClickEvent>();\n readonly onLineDbClick = output<AXLineClickEvent>();\n readonly onNodeClick = output<AXNodeClickEvent>();\n readonly onNodeDbClick = output<AXNodeClickEvent>();\n readonly onEdgeUpdate = output<AXFlowChartEdges>();\n readonly onNodeUpdate = output<AXFlowChartNodes>();\n\n #init = afterNextRender(() => {\n this.setupEventListeners();\n });\n\n #eff = effect(() => {\n if (this.canvas() && this.svg()) {\n this.initializeServices();\n }\n });\n\n private setupEventListeners(): void {\n this.service.lineClick.subscribe((value) => {\n this.onLineClick.emit(value);\n });\n this.service.lineDbClick.subscribe((value) => {\n this.onLineDbClick.emit(value);\n });\n this.service.nodeClick.subscribe((value) => {\n this.onNodeClick.emit(value);\n });\n this.service.nodeDbClick.subscribe((value) => {\n this.onNodeDbClick.emit(value);\n });\n this.service.onEdgeUpdate.subscribe((newEdge) => {\n this.onEdgeUpdate.emit(newEdge);\n });\n this.service.onNodeUpdate.subscribe((newNode) => {\n this.onNodeUpdate.emit(newNode);\n });\n }\n\n private initializeServices(): void {\n this.service.canvasService.set(this.canvas());\n this.service.svgService.set(this.svg());\n\n // Add click handlers for parent elements\n const canvas = this.canvas()?.nativeElement;\n const svg = this.svg()?.nativeElement;\n\n if (canvas) {\n canvas.addEventListener('click', (e: Event) => {\n if (e.target === canvas) {\n this.service.selectedNode.set(null);\n this.service.selectedEdge.set(null);\n document.querySelectorAll('.ax-flow-chart-node').forEach((node) => node.classList.remove('selected'));\n document.querySelectorAll('.ax-flow-chart-line').forEach((line) => line.classList.remove('selected'));\n }\n });\n }\n\n if (svg) {\n svg.addEventListener('click', (e: Event) => {\n if (e.target === svg) {\n this.service.selectedNode.set(null);\n this.service.selectedEdge.set(null);\n document.querySelectorAll('.ax-flow-chart-node').forEach((node) => node.classList.remove('selected'));\n document.querySelectorAll('.ax-flow-chart-line').forEach((line) => line.classList.remove('selected'));\n }\n });\n }\n }\n\n ngOnDestroy(): void {\n this.cleanup();\n }\n\n private cleanup(): void {\n this.service.cleanup();\n this.service.lineClick.unsubscribe();\n this.service.lineDbClick.unsubscribe();\n this.service.nodeClick.unsubscribe();\n this.service.nodeDbClick.unsubscribe();\n this.service.onEdgeUpdate.unsubscribe();\n }\n}\n","<div id=\"ax-flow-chart-renderer-canvas\" #canvas>\n <svg class=\"ax-flow-chart-renderer-svg\" id=\"ax-flow-chart-renderer-connections\" #connections></svg>\n</div>\n","import { NXComponent } from '@acorex/components/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostListener,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXFlowChartService } from './flow-chart.service';\nimport { AXFlowChartEdges, AXFlowChartNodes } from './flow-chart.type';\n\n@Component({\n selector: 'ax-flow-chart',\n templateUrl: './flow-chart.component.html',\n styleUrls: ['./flow-chart.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [AXFlowChartService],\n})\nexport class AXFlowChartComponent extends NXComponent {\n private flowChartService = inject(AXFlowChartService);\n\n initialFlowChartNode = input.required<AXFlowChartNodes[]>();\n initialFlowChartEdge = input.required<AXFlowChartEdges[]>();\n selectedNode = computed(() => this.flowChartService.selectedNode());\n selectedEdge = computed(() => this.flowChartService.selectedEdge());\n\n #init = afterNextRender(() => {\n this.flowChartService.initialFlowChartNode.set(this.initialFlowChartNode());\n this.flowChartService.initialFlowChartEdge.set(this.initialFlowChartEdge());\n });\n\n @HostListener('document:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n if (event.key === 'Delete') {\n const selectedNode = this.selectedNode();\n const selectedEdge = this.selectedEdge();\n\n if (selectedNode) {\n this.removeNode(selectedNode.id);\n } else if (selectedEdge) {\n this.removeEdge(selectedEdge);\n }\n }\n }\n\n drawEdges(edges: AXFlowChartEdges[]) {\n this.flowChartService.drawEdges(edges);\n }\n\n removeEdge(edge: AXFlowChartEdges) {\n this.flowChartService.removeEdge(edge);\n }\n\n createNode(nodes: { id: string; type: string; label: string; x: number; y: number }[]) {\n this.flowChartService.createNode(nodes);\n }\n\n removeNode(nodeId: string) {\n this.flowChartService.removeNode(nodeId);\n }\n}\n","<ng-content select=\"ax-header\"></ng-content>\n<ng-content select=\"ax-flow-chart-renderer\"></ng-content>\n<ng-content select=\"ax-footer\"></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXFlowChartCreatorComponent } from './flow-chart-creator/flow-chart-creator.component';\nimport { AXFlowChartRendererComponent } from './flow-chart-renderer/flow-chart-renderer.component';\nimport { AXFlowChartComponent } from './flow-chart.component';\n\nconst COMPONENT = [AXFlowChartRendererComponent, AXFlowChartCreatorComponent, AXFlowChartComponent];\nconst MODULES = [CommonModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXFlowChartModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;MAWa,kBAAkB,CAAA;AAD/B,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;AAE7B,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAA0B,IAAI,CAAC;AACpD,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAA0B,IAAI,CAAC;AAC3C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC;AAE5B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAoB;AAC3C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAoB;AAC7C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAoB;AAC3C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAoB;AAC7C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAoB;AAC9C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAoB;AAE/C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,GAAG,EAAkC;AACpD,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,GAAG,EAAsC;QAC9D,IAAiB,CAAA,iBAAA,GAA8C,IAAI;QAEnE,IAAiB,CAAA,iBAAA,GAId,IAAI;QACP,IAAkB,CAAA,kBAAA,GAAG,KAAK;QAC1B,IAAQ,CAAA,QAAA,GAA0B,IAAI;AAE9C,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,MAAK;AAClB,YAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;gBAC/B,UAAU,CAAC,MAAK;oBACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC7C,iBAAC,CAAC;;AAEN,SAAC,CAAC;AAEF,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,MAAK;AAClB,YAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;gBAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;;AAEhD,SAAC,CAAC;AAqbH;AAjcC,IAAA,KAAK;AAQL,IAAA,KAAK;AAMG,IAAA,gBAAgB,CAAC,OAAoB,EAAE,KAAa,EAAE,OAAsB,EAAA;QAClF,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ;QACnD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YACvC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC;;QAG/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;QAC3D,IAAI,gBAAgB,EAAE;YACpB,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACvC,YAAA,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC;AACzC,YAAA,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,CAAC;;;AAIzC,IAAA,oBAAoB,CAAC,SAAiB,EAAA;QAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;QAC3D,IAAI,gBAAgB,EAAE;YACpB,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,KAAI;gBAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;gBAC5C,IAAI,OAAO,EAAE;AACX,oBAAA,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC;;AAE/C,aAAC,CAAC;AACF,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC;;;IAIjC,uBAAuB,CAC7B,EAA0B,EAC1B,IAAuE,EAAA;QAEvE,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAQ,KAAI;AAC9C,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAe,EAAE,CAAC;AAC3D,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,YAAA,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,YAAY,KAAI;AACrC,gBAAA,IAAI,YAAY,KAAK,EAAE,EAAE;AACvB,oBAAA,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;;AAE7C,aAAC,CAAC;AACJ,SAAC,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAQ,KAAI;AACjD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAe,EAAE,CAAC;AAC/D,SAAC,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAK;AAC3C,YAAA,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;AAC3B,SAAC,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAK;AAC3C,YAAA,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;AAC9B,SAAC,CAAC;;IAGI,yBAAyB,CAAC,GAA2B,EAAE,EAA0B,EAAA;;QAEvF,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,CAAQ,KAAI;YACnD,MAAM,UAAU,GAAG,CAAe;YAClC,UAAU,CAAC,eAAe,EAAE;YAC5B,UAAU,CAAC,cAAc,EAAE;AAC3B,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE1D,IAAI,CAAC,iBAAiB,GAAG;AACvB,gBAAA,MAAM,EAAE;AACN,oBAAA,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;AACzB,oBAAA,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC9B,iBAAA;AACD,gBAAA,KAAK,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,UAAU,CAAC,OAAO,EAAE;aACxD;YAED,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAChC,SAAC,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAQ,KAAI;YAC/C,CAAC,CAAC,eAAe,EAAE;YAEnB,IAAI,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AACtC,gBAAA,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;;iBAC3B;AACL,gBAAA,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;;AAG/B,YAAA,MAAM,OAAO,GAAG;AACd,gBAAA,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC7B,gBAAA,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;aAC9B;AAED,YAAA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;AAEpB,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAC3B,gBAAA,IAAI,CAAC,iBAAiB,GAAG,OAAO;;iBAC3B;AACL,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB;gBACrC,MAAM,MAAM,GAAG,OAAO;gBAEtB,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;AACnC,oBAAA,IAAI,CAAC,qBAAqB,CACxB,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAC5C,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAC7C;;AAGH,gBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;;AAEjC,SAAC,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,YAAY,EAAE,MAAK;AAC5C,YAAA,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;AAC5B,SAAC,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,YAAY,EAAE,MAAK;AAC5C,YAAA,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;AAC/B,SAAC,CAAC;;IAGI,UAAU,CAAC,EAA0B,EAAE,IAAY,EAAA;AACzD,QAAA,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;YACpD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAA2B;AACnE,YAAA,GAAG,CAAC,SAAS,GAAG,sBAAsB;AACtC,YAAA,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM;AAC9B,YAAA,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YAExC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC;AACtC,YAAA,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC;AAEnB,YAAA,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,EAAE,CAAC;AACzC,SAAC,CAAC;;AAGI,IAAA,aAAa,CAAC,EAAe,EAAA;QACnC,IAAI,OAAO,GAAG,CAAC,EACb,OAAO,GAAG,CAAC,EACX,UAAU,GAAG,KAAK;QAEpB,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAQ,KAAI;YAClD,MAAM,UAAU,GAAG,CAAe;YAClC,IAAK,UAAU,CAAC,MAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC;gBAAE;YACnF,UAAU,GAAG,IAAI;YACjB,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC,UAAU;YAC5C,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC,SAAS;YAC3C,UAAU,CAAC,cAAc,EAAE;AAC7B,SAAC,CAAC;AAEF,QAAA,MAAM,gBAAgB,GAAG,CAAC,CAAa,KAAI;YACzC,IAAI,UAAU,EAAE;AACd,gBAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,GAAG,OAAO,GAAG,IAAI;AAC1C,gBAAA,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,OAAO,GAAG,IAAI;gBACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAE3C,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,KAAK,KAAI;oBACzC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC/D,IAAI,IAAI,EAAE;wBACR,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,OAAO;wBAC5B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,OAAO;;AAE9B,oBAAA,OAAO,KAAK;AACd,iBAAC,CAAC;;AAGJ,YAAA,MAAM,SAAS,GAAI,CAAC,CAAC,MAAsB,CAAC,EAAE;YAC9C,IAAI,SAAS,KAAK,oCAAoC,IAAI,SAAS,KAAK,+BAA+B,EAAE;gBACvG,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC5C,oBAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AACtD,oBAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;;;AAG5D,SAAC;AAED,QAAA,MAAM,cAAc,GAAG,CAAC,CAAa,KAAI;YACvC,UAAU,GAAG,KAAK;AAClB,YAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAC3B,MAAM,MAAM,GAAI,CAAC,CAAC,MAAsB,CAAC,OAAO,CAAC,uBAAuB,CAA2B;AACnG,gBAAA,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,EAAE,EAAE;oBAC7E,IAAI,CAAC,iBAAiB,GAAG;wBACvB,GAAG,IAAI,CAAC,iBAAiB;AACzB,wBAAA,MAAM,EAAE;AACN,4BAAA,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC5B,4BAAA,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;AACjC,yBAAA;qBACF;oBACD,IAAI,CAAC,gBAAgB,EAAE;;gBAEzB,IAAI,CAAC,aAAa,EAAE;AACpB,gBAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;;AAEnC,SAAC;;AAGD,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC/B,YAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC;AACxD,YAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC;AACtD,SAAC,CAAC;;QAGF,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzD,IAAI,eAAe,EAAE;AACnB,YAAA,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAiC,CAAC;AACnE,YAAA,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,cAA+B,CAAC;;;AAI3D,IAAA,cAAc,CAAC,GAAgB,EAAE,MAAc,EAAE,IAAY,EAAA;AACnE,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,QAAQ,MAAM;AACZ,gBAAA,KAAK,KAAK;AACR,oBAAA,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI;AACpB,oBAAA,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK;oBACtB;AACF,gBAAA,KAAK,QAAQ;AACX,oBAAA,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM;AACtB,oBAAA,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK;oBACtB;AACF,gBAAA,KAAK,MAAM;AACT,oBAAA,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK;AACrB,oBAAA,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI;oBACrB;AACF,gBAAA,KAAK,OAAO;AACV,oBAAA,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK;AACrB,oBAAA,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM;oBACvB;;;aAEC;YACL,QAAQ,MAAM;AACZ,gBAAA,KAAK,KAAK;AACR,oBAAA,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI;AACpB,oBAAA,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI;oBACrB;AACF,gBAAA,KAAK,QAAQ;AACX,oBAAA,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM;AACtB,oBAAA,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM;oBACvB;AACF,gBAAA,KAAK,MAAM;AACT,oBAAA,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM;AACtB,oBAAA,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI;oBACrB;AACF,gBAAA,KAAK,OAAO;AACV,oBAAA,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI;AACpB,oBAAA,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM;oBACvB;;;;IAKA,cAAc,CAAC,EAAe,EAAE,MAAc,EAAA;AACpD,QAAA,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE;QACvC,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;QAC9C,MAAM,OAAO,GAAG,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;QAE9C,QAAQ,MAAM;AACZ,YAAA,KAAK,KAAK;gBACR,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE;AACxC,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE;AACtD,YAAA,KAAK,MAAM;gBACT,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE;AACzC,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE;AACtD,YAAA;gBACE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE;;;IAI/B,aAAa,CAAC,CAAS,EAAE,CAAS,EAAA;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa;AAEnD,QAAA,IAAI,CAAC,UAAU;YAAE;QAEjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,MAAM,CAAC;AAC9E,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC9C,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC9C,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC9C,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,mDAAmD,CAAC;QACzF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,EAAE,GAAG,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,kBAAkB,EAAE,GAAG,CAAC;AACnD,QAAA,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;;IAG/B,aAAa,GAAA;QACnB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;AAChD,YAAA,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC3D,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;;;IAIhB,qBAAqB,CAAC,MAAsC,EAAE,MAAsC,EAAA;AAC1G,QAAA,MAAM,OAAO,GAAG;YACd,EAAE,EAAE,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAE,CAAA;YACtC,MAAM;YACN,MAAM;SACP;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/B,QAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC;QAChE,IAAI,CAAC,SAAS,EAAE;;AAGlB,IAAA,SAAS,CAAC,KAA0B,EAAA;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa;AAC5C,QAAA,IAAI,CAAC,GAAG;YAAE;;AAGV,QAAA,GAAG,CAAC,SAAS,GAAG,EAAE;;QAGlB,MAAM,WAAW,GAAG,KAAK,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAExD,QAAA,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC3B,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACpD,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAEpD,IAAI,UAAU,EAAE;AACd,gBAAA,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA,cAAA,EAAiB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA,EAAA,CAAI,CAAC;AACtF,gBAAA,IAAI,YAAY;AAAE,oBAAA,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;;YAE1D,IAAI,UAAU,EAAE;AACd,gBAAA,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA,cAAA,EAAiB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA,EAAA,CAAI,CAAC;AACtF,gBAAA,IAAI,YAAY;AAAE,oBAAA,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;;AAG1D,YAAA,IAAI,UAAU,IAAI,UAAU,EAAE;AAC5B,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AACvE,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAEvE,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC;AAC5D,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC;;gBAGxC,IAAI,CAAC,gBAAgB,CAAC,IAA8B,EAAE,OAAO,EAAE,CAAC,CAAQ,KAAI;oBAC1E,CAAC,CAAC,eAAe,EAAE;AACnB,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAe,EAAE,CAAC;AAC7D,oBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,oBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;;oBAE3B,QAAQ,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;wBAC7D,IAAI,CAAC,KAAK,IAAI;AAAE,4BAAA,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;AAChD,qBAAC,CAAC;;AAEF,oBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;;AAE9B,oBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACpE,iBAAC,CAAC;AAEF,gBAAA,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;;AAEzB,SAAC,CAAC;;AAGJ,IAAA,UAAU,CAAC,IAA8B,EAAE,EAA4B,EAAE,IAAsB,EAAA;QAC7F,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,MAAM,CAAC;AAC3E,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC1C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC1C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AACxC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AACxC,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,sCAAsC,CAAC;AACnE,QAAA,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,GAAG,CAAC;AACtC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC;QACxC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAa,KAAI;AAC/C,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAC/C,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,SAAC,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAa,KAAI;AAClD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACnD,SAAC,CAAC;AACF,QAAA,OAAO,IAAI;;IAGL,gBAAgB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE;AACpE,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;;AAE1F,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;;AAG/B,IAAA,UAAU,CAAC,IAAsB,EAAA;AAC/B,QAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;;AAGlF,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACpD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAEpD,IAAI,UAAU,EAAE;AACd,YAAA,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA,cAAA,EAAiB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA,EAAA,CAAI,CAAC;AACtF,YAAA,IAAI,YAAY;AAAE,gBAAA,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;;QAG7D,IAAI,UAAU,EAAE;AACd,YAAA,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA,cAAA,EAAiB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA,EAAA,CAAI,CAAC;AACtF,YAAA,IAAI,YAAY;AAAE,gBAAA,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;;;AAI/D,IAAA,UAAU,CAAC,KAA0E,EAAA;AACnF,QAAA,QAAQ,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;AAElF,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACrB,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAA2B;YAClE,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAA2B;AAC/D,YAAA,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK;AACxB,YAAA,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AACjB,YAAA,EAAE,CAAC,SAAS,GAAG,oBAAoB;YACnC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAM,GAAA,EAAA,IAAI,CAAC,IAAI,CAAE,CAAA,CAAC;YACnC,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI;YAC7B,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI;YAC5B,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE;YAE1B,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC;AAC9B,YAAA,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,uBAAuB,CAAC,EAAE,EAAE,IAAI,CAAC;YAEtC,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;AAChC,SAAC,CAAC;;AAGJ,IAAA,UAAU,CAAC,MAAc,EAAA;QACvB,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QAEjF,IAAI,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC3C,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,EAAE;AAC1D,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;;AAEzB,SAAC,CAAC;QAEF,QAAQ,CAAC,aAAa,CAAC,CAAa,UAAA,EAAA,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE;AACzD,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;;IAG/B,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;AAC/D,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACrB,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;;+GA5dlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAlB,kBAAkB,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;;ACMK,MAAO,2BAA4B,SAAQ,WAAW,CAAA;AAR5D,IAAA,WAAA,GAAA;;AASE,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAC1B,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC;QACnC,IAAK,CAAA,KAAA,GAAG,OAAO;AAmE1B;AAjEW,IAAA,kBAAkB,CAAC,KAAyC,EAAA;AACpE,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;;IAGrB,kBAAkB,GAAA;AAC1B,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;AAC5B,YAAA,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE;YAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;SACL;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC;QACxE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;;IAG/B,UAAU,GAAA;QAClB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC;AAC7C,QAAA,IAAI,CAAC,WAAW;YAAE;QAElB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,aAAa;AAC1D,QAAA,IAAI,CAAC,MAAM;YAAE;;QAGb,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW;AAC3C,aAAA,GAAG,CAAC,CAAC,KAAK,KAAI;AACb,YAAA,IAAI;AACF,gBAAA,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ;qBAC7B,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO;qBAC1B,IAAI,CAAC,IAAI,CAAC;;YACb,OAAO,CAAC,EAAE;AACV,gBAAA,OAAO,EAAE;;AAEb,SAAC;aACA,IAAI,CAAC,IAAI,CAAC;;AAGb,QAAA,MAAM,WAAW,GAAG;QAChB,MAAM;;;;KAIT;;AAGD,QAAA,MAAM,YAAY,GAAG;;;;;;cAMX,WAAW;;;;;AAKX,YAAA,EAAA,MAAM,CAAC,SAAS;;;;KAIzB;AAED,QAAA,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;AACxC,QAAA,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE;;+GApEnB,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBxC,g1BAqBA,EDPY,MAAA,EAAA,CAAA,qxBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,qbAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAEzD,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBARvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,mBAGhB,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAC5B,OAAA,EAAA,CAAC,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,CAAC,EAAA,QAAA,EAAA,g1BAAA,EAAA,MAAA,EAAA,CAAA,qxBAAA,CAAA,EAAA;;;AESjE,MAAO,4BAA6B,SAAQ,WAAW,CAAA;AAP7D,IAAA,WAAA,GAAA;;AAQU,QAAA,IAAA,CAAA,MAAM,GAAG,SAAS,CAAa,QAAQ,CAAC;AACxC,QAAA,IAAA,CAAA,GAAG,GAAG,SAAS,CAAa,aAAa,CAAC;AAC1C,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAEnC,IAAW,CAAA,WAAA,GAAG,MAAM,EAAoB;QACxC,IAAa,CAAA,aAAA,GAAG,MAAM,EAAoB;QAC1C,IAAW,CAAA,WAAA,GAAG,MAAM,EAAoB;QACxC,IAAa,CAAA,aAAA,GAAG,MAAM,EAAoB;QAC1C,IAAY,CAAA,YAAA,GAAG,MAAM,EAAoB;QACzC,IAAY,CAAA,YAAA,GAAG,MAAM,EAAoB;AAElD,QAAA,IAAA,CAAA,KAAK,GAAG,eAAe,CAAC,MAAK;YAC3B,IAAI,CAAC,mBAAmB,EAAE;AAC5B,SAAC,CAAC;AAEF,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,MAAK;YACjB,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;gBAC/B,IAAI,CAAC,kBAAkB,EAAE;;AAE7B,SAAC,CAAC;AAkEH;AA1EC,IAAA,KAAK;AAIL,IAAA,IAAI;IAMI,mBAAmB,GAAA;QACzB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACzC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9B,SAAC,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC3C,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AAChC,SAAC,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACzC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9B,SAAC,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC3C,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AAChC,SAAC,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,KAAI;AAC9C,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AACjC,SAAC,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,KAAI;AAC9C,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AACjC,SAAC,CAAC;;IAGI,kBAAkB,GAAA;AACxB,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AAC7C,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;;QAGvC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,aAAa;QAErC,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAQ,KAAI;AAC5C,gBAAA,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE;oBACvB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;oBACnC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;oBACnC,QAAQ,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBACrG,QAAQ,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;;AAEzG,aAAC,CAAC;;QAGJ,IAAI,GAAG,EAAE;YACP,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAQ,KAAI;AACzC,gBAAA,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE;oBACpB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;oBACnC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;oBACnC,QAAQ,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBACrG,QAAQ,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;;AAEzG,aAAC,CAAC;;;IAIN,WAAW,GAAA;QACT,IAAI,CAAC,OAAO,EAAE;;IAGR,OAAO,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACtB,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE;AACpC,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE;AACtC,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE;AACpC,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE;AACtC,QAAA,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE;;+GApF9B,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,igBCvBzC,yKAGA,EAAA,MAAA,EAAA,CAAA,04EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDoBa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,mBAGjB,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,yKAAA,EAAA,MAAA,EAAA,CAAA,04EAAA,CAAA,EAAA;;;AECjC,MAAO,oBAAqB,SAAQ,WAAW,CAAA;AARrD,IAAA,WAAA,GAAA;;AASU,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAErD,QAAA,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAC,QAAQ,EAAsB;AAC3D,QAAA,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAC,QAAQ,EAAsB;AAC3D,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;AACnE,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;AAEnE,QAAA,IAAA,CAAA,KAAK,GAAG,eAAe,CAAC,MAAK;AAC3B,YAAA,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC3E,YAAA,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC7E,SAAC,CAAC;AA+BH;AAlCC,IAAA,KAAK;AAML,IAAA,mBAAmB,CAAC,KAAoB,EAAA;AACtC,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;AAC1B,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;AACxC,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;YAExC,IAAI,YAAY,EAAE;AAChB,gBAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;;iBAC3B,IAAI,YAAY,EAAE;AACvB,gBAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;;;;AAKnC,IAAA,SAAS,CAAC,KAAyB,EAAA;AACjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC;;AAGxC,IAAA,UAAU,CAAC,IAAsB,EAAA;AAC/B,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC;;AAGxC,IAAA,UAAU,CAAC,KAA0E,EAAA;AACnF,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC;;AAGzC,IAAA,UAAU,CAAC,MAAc,EAAA;AACvB,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC;;+GAxC/B,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAFpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,kBAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,kBAAkB,CAAC,iDCpBjC,+JAGA,EAAA,MAAA,EAAA,CAAA,0XAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDmBa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBARhC,SAAS;+BACE,eAAe,EAAA,eAAA,EAGR,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,SAAA,EAC1B,CAAC,kBAAkB,CAAC,EAAA,QAAA,EAAA,+JAAA,EAAA,MAAA,EAAA,CAAA,0XAAA,CAAA,EAAA;8BAgB/B,mBAAmB,EAAA,CAAA;sBADlB,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC;;;AE7B9C,MAAM,SAAS,GAAG,CAAC,4BAA4B,EAAE,2BAA2B,EAAE,oBAAoB,CAAC;AACnG,MAAM,OAAO,GAAG,CAAC,YAAY,CAAC;MAOjB,iBAAiB,CAAA;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAPb,OAAA,EAAA,CAAA,YAAY,EADV,4BAA4B,EAAE,2BAA2B,EAAE,oBAAoB,CAA/E,EAAA,OAAA,EAAA,CAAA,4BAA4B,EAAE,2BAA2B,EAAE,oBAAoB,CAAA,EAAA,CAAA,CAAA;gHAQrF,iBAAiB,EAAA,OAAA,EAAA,CAJf,OAAO,EAJ2B,2BAA2B,CAAA,EAAA,CAAA,CAAA;;4FAQ/D,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC;AACnC,oBAAA,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;AACvB,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;ACbD;;AAEG;;;;"}
|
1
|
+
{"version":3,"file":"acorex-components-flow-chart.mjs","sources":["../../../../packages/components/flow-chart/src/lib/flow-chart.service.ts","../../../../packages/components/flow-chart/src/lib/flow-chart-creator/flow-chart-creator.component.ts","../../../../packages/components/flow-chart/src/lib/flow-chart-creator/flow-chart-creator.component.html","../../../../packages/components/flow-chart/src/lib/flow-chart-renderer/flow-chart-renderer.component.ts","../../../../packages/components/flow-chart/src/lib/flow-chart-renderer/flow-chart-renderer.component.html","../../../../packages/components/flow-chart/src/lib/flow-chart.component.ts","../../../../packages/components/flow-chart/src/lib/flow-chart.component.html","../../../../packages/components/flow-chart/src/lib/flow-chart.module.ts","../../../../packages/components/flow-chart/src/acorex-components-flow-chart.ts"],"sourcesContent":["import { effect, inject, Injectable, NgZone, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport {\n AXFlowChartEdges,\n AXFlowChartNodes,\n AXLineClickEvent,\n AXNodeClickEvent,\n HTMLElementWithDataset,\n} from './flow-chart.type';\n\n@Injectable()\nexport class AXFlowChartService {\n private zone = inject(NgZone);\n\n initialFlowChartEdge = signal([]);\n initialFlowChartNode = signal([]);\n selectedNode = signal<AXFlowChartNodes | null>(null);\n selectedEdge = signal<AXFlowChartEdges | null>(null);\n readonly svgService = signal(null);\n readonly canvasService = signal(null);\n\n readonly lineClick = new Subject<AXLineClickEvent>();\n readonly lineDbClick = new Subject<AXLineClickEvent>();\n readonly nodeClick = new Subject<AXNodeClickEvent>();\n readonly nodeDbClick = new Subject<AXNodeClickEvent>();\n readonly onEdgeUpdate = new Subject<AXFlowChartEdges>();\n readonly onNodeUpdate = new Subject<AXFlowChartNodes>();\n\n private nodesMap = new Map<string, HTMLElementWithDataset>();\n private eventListeners = new Map<string, Map<string, EventListener>>();\n private anchorClickBuffer: { nodeId: string; anchor: string } | null = null;\n\n private currentConnection: {\n source?: { id: string; anchor: string };\n target?: { id: string; anchor: string };\n mouse?: { x: number; y: number };\n } | null = null;\n private draggingConnection = false;\n private tempLine: SVGLineElement | null = null;\n\n #eff2 = effect(() => {\n if (this.initialFlowChartEdge()) {\n setTimeout(() => {\n this.drawEdges(this.initialFlowChartEdge());\n });\n }\n });\n\n #eff3 = effect(() => {\n if (this.initialFlowChartNode()) {\n this.createNode(this.initialFlowChartNode());\n }\n });\n\n private addEventListener(element: HTMLElement, event: string, handler: EventListener) {\n const elementId = element.dataset['id'] || 'global';\n if (!this.eventListeners.has(elementId)) {\n this.eventListeners.set(elementId, new Map());\n }\n\n const elementListeners = this.eventListeners.get(elementId);\n if (elementListeners) {\n const boundHandler = handler.bind(this);\n elementListeners.set(event, boundHandler);\n element.addEventListener(event, boundHandler);\n }\n }\n\n private removeEventListeners(elementId: string) {\n const elementListeners = this.eventListeners.get(elementId);\n if (elementListeners) {\n elementListeners.forEach((handler, event) => {\n const element = this.nodesMap.get(elementId);\n if (element) {\n element.removeEventListener(event, handler);\n }\n });\n this.eventListeners.delete(elementId);\n }\n }\n\n private setupNodeEventListeners(\n el: HTMLElementWithDataset,\n node: { id: string; type: string; label: string; x: number; y: number },\n ) {\n this.addEventListener(el, 'click', (e: Event) => {\n this.nodeClick.next({ target: el, event: e as MouseEvent });\n this.selectedNode.set(node);\n el.classList.add('selected');\n this.nodesMap.forEach((existingNode) => {\n if (existingNode !== el) {\n existingNode.classList.remove('selected');\n }\n });\n });\n\n this.addEventListener(el, 'dblclick', (e: Event) => {\n this.nodeDbClick.next({ target: el, event: e as MouseEvent });\n });\n\n this.addEventListener(el, 'mouseenter', () => {\n el.classList.add('hover');\n });\n\n this.addEventListener(el, 'mouseleave', () => {\n el.classList.remove('hover');\n });\n }\n\n private setupAnchorEventListeners(dot: HTMLElementWithDataset, el: HTMLElementWithDataset) {\n // start drag to connect\n this.addEventListener(dot, 'mousedown', (e: Event) => {\n const mouseEvent = e as MouseEvent;\n mouseEvent.stopPropagation();\n mouseEvent.preventDefault();\n const pos = this.getAnchorPoint(el, dot.dataset['anchor']);\n\n this.currentConnection = {\n source: {\n id: dot.dataset['nodeId'],\n anchor: dot.dataset['anchor'],\n },\n mouse: { x: mouseEvent.clientX, y: mouseEvent.clientY },\n };\n\n this.startTempLine(pos.x, pos.y);\n this.draggingConnection = true;\n });\n\n this.addEventListener(dot, 'click', (e: Event) => {\n e.stopPropagation();\n\n if (dot.classList.contains('selected')) {\n dot.classList.remove('selected');\n } else {\n dot.classList.add('selected');\n }\n\n const clicked = {\n nodeId: dot.dataset['nodeId'],\n anchor: dot.dataset['anchor'],\n };\n\n console.log(clicked);\n\n if (!this.anchorClickBuffer) {\n this.anchorClickBuffer = clicked;\n } else {\n const source = this.anchorClickBuffer;\n const target = clicked;\n\n if (source.nodeId !== target.nodeId) {\n this.pushAndCreateEdgeData(\n { id: source.nodeId, anchor: source.anchor },\n { id: target.nodeId, anchor: target.anchor },\n );\n }\n\n this.anchorClickBuffer = null;\n }\n });\n\n this.addEventListener(dot, 'mouseenter', () => {\n dot.classList.add('hover');\n });\n\n this.addEventListener(dot, 'mouseleave', () => {\n dot.classList.remove('hover');\n });\n }\n\n private addAnchors(el: HTMLElementWithDataset, type: string) {\n ['top', 'bottom', 'left', 'right'].forEach((anchor) => {\n const dot = document.createElement('div') as HTMLElementWithDataset;\n dot.className = 'ax-flow-chart-anchor';\n dot.dataset['anchor'] = anchor;\n dot.dataset['nodeId'] = el.dataset['id'];\n\n this.positionAnchor(dot, anchor, type);\n el.appendChild(dot);\n\n this.setupAnchorEventListeners(dot, el);\n });\n }\n\n private makeDraggable(el: HTMLElement) {\n let offsetX = 0,\n offsetY = 0,\n isDragging = false;\n\n this.addEventListener(el, 'mousedown', (e: Event) => {\n const mouseEvent = e as MouseEvent;\n if ((mouseEvent.target as HTMLElement).classList.contains('ax-flow-chart-anchor')) return;\n isDragging = true;\n offsetX = mouseEvent.clientX - el.offsetLeft;\n offsetY = mouseEvent.clientY - el.offsetTop;\n mouseEvent.preventDefault();\n });\n\n const mousemoveHandler = (e: MouseEvent) => {\n if (isDragging) {\n el.style.left = e.clientX - offsetX + 'px';\n el.style.top = e.clientY - offsetY + 'px';\n this.drawEdges(this.initialFlowChartEdge());\n\n this.initialFlowChartNode.update((value) => {\n const node = value.find((node) => node.id === el.dataset['id']);\n if (node) {\n node.x = e.clientX - offsetX;\n node.y = e.clientY - offsetY;\n }\n return value;\n });\n }\n\n const elementId = (e.target as HTMLElement).id;\n if (elementId === 'ax-flow-chart-renderer-connections' || elementId === 'ax-flow-chart-renderer-canvas') {\n if (this.draggingConnection && this.tempLine) {\n this.tempLine.setAttribute('x2', e.offsetX.toString());\n this.tempLine.setAttribute('y2', e.offsetY.toString());\n }\n }\n };\n\n const mouseupHandler = (e: MouseEvent) => {\n isDragging = false;\n if (this.draggingConnection) {\n const target = (e.target as HTMLElement).closest('.ax-flow-chart-anchor') as HTMLElementWithDataset;\n if (target && target.dataset['nodeId'] !== this.currentConnection?.source?.id) {\n this.currentConnection = {\n ...this.currentConnection,\n target: {\n id: target.dataset['nodeId'],\n anchor: target.dataset['anchor'],\n },\n };\n this.finishConnection();\n }\n this.clearTempLine();\n this.draggingConnection = false;\n }\n };\n\n // Add global event listeners\n this.zone.runOutsideAngular(() => {\n document.addEventListener('mousemove', mousemoveHandler);\n document.addEventListener('mouseup', mouseupHandler);\n });\n\n // Store global listeners\n const globalListeners = this.eventListeners.get('global');\n if (globalListeners) {\n globalListeners.set('mousemove', mousemoveHandler as EventListener);\n globalListeners.set('mouseup', mouseupHandler as EventListener);\n }\n }\n\n private positionAnchor(dot: HTMLElement, anchor: string, type: string) {\n if (type !== 'diamond') {\n switch (anchor) {\n case 'top':\n dot.style.top = '0%';\n dot.style.left = '50%';\n break;\n case 'bottom':\n dot.style.top = '100%';\n dot.style.left = '50%';\n break;\n case 'left':\n dot.style.top = '50%';\n dot.style.left = '0%';\n break;\n case 'right':\n dot.style.top = '50%';\n dot.style.left = '100%';\n break;\n }\n } else {\n switch (anchor) {\n case 'top':\n dot.style.top = '0%';\n dot.style.left = '0%';\n break;\n case 'bottom':\n dot.style.top = '100%';\n dot.style.left = '100%';\n break;\n case 'left':\n dot.style.top = '100%';\n dot.style.left = '0%';\n break;\n case 'right':\n dot.style.top = '0%';\n dot.style.left = '100%';\n break;\n }\n }\n }\n\n private getAnchorPoint(el: HTMLElement, anchor: string): { x: number; y: number } {\n const rect = el.getBoundingClientRect();\n const centerX = el.offsetLeft + rect.width / 2;\n const centerY = el.offsetTop + rect.height / 2;\n\n switch (anchor) {\n case 'top':\n return { x: centerX, y: el.offsetTop };\n case 'bottom':\n return { x: centerX, y: el.offsetTop + rect.height };\n case 'left':\n return { x: el.offsetLeft, y: centerY };\n case 'right':\n return { x: el.offsetLeft + rect.width, y: centerY };\n default:\n return { x: centerX, y: centerY };\n }\n }\n\n private startTempLine(x: number, y: number) {\n const svgElement = this.svgService()?.nativeElement;\n\n if (!svgElement) return;\n\n this.tempLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');\n this.tempLine.setAttribute('x1', x.toString());\n this.tempLine.setAttribute('y1', y.toString());\n this.tempLine.setAttribute('x2', x.toString());\n this.tempLine.setAttribute('y2', y.toString());\n this.tempLine.setAttribute('stroke', 'rgba(var(--ax-sys-color-on-lightest-surface),0.5)');\n this.tempLine.setAttribute('stroke-width', '2');\n this.tempLine.setAttribute('stroke-dasharray', '4');\n svgElement.appendChild(this.tempLine);\n }\n\n private clearTempLine() {\n if (this.tempLine && this.tempLine.parentElement) {\n this.svgService()?.nativeElement.removeChild(this.tempLine);\n this.tempLine = null;\n }\n }\n\n private pushAndCreateEdgeData(source: { id: string; anchor: string }, target: { id: string; anchor: string }) {\n const newEdge = {\n id: `edge-${Math.random().toString()}`,\n source,\n target,\n };\n\n this.onEdgeUpdate.next(newEdge);\n this.initialFlowChartEdge.update((value) => [...value, newEdge]);\n this.drawEdges();\n }\n\n drawEdges(edges?: AXFlowChartEdges[]) {\n const svg = this.svgService()?.nativeElement;\n if (!svg) return;\n\n // Clear existing edges\n svg.innerHTML = '';\n\n // Use provided edges or get from signal\n const edgesToDraw = edges || this.initialFlowChartEdge();\n\n edgesToDraw.forEach((edge) => {\n const sourceNode = this.nodesMap.get(edge.source.id);\n const targetNode = this.nodesMap.get(edge.target.id);\n\n if (sourceNode) {\n const sourceAnchor = sourceNode.querySelector(`[data-anchor=\"${edge.source.anchor}\"]`);\n if (sourceAnchor) sourceAnchor.classList.add('selected');\n }\n if (targetNode) {\n const targetAnchor = targetNode.querySelector(`[data-anchor=\"${edge.target.anchor}\"]`);\n if (targetAnchor) targetAnchor.classList.add('selected');\n }\n\n if (sourceNode && targetNode) {\n const sourcePoint = this.getAnchorPoint(sourceNode, edge.source.anchor);\n const targetPoint = this.getAnchorPoint(targetNode, edge.target.anchor);\n\n const line = this.createLine(sourcePoint, targetPoint, edge);\n line.classList.add('ax-flow-chart-line');\n\n // Add click event listener for line selection\n this.addEventListener(line as unknown as HTMLElement, 'click', (e: Event) => {\n e.stopPropagation();\n this.lineClick.next({ target: edge, event: e as MouseEvent });\n this.selectedEdge.set(edge);\n this.selectedNode.set(null);\n // Remove selection from all other lines\n document.querySelectorAll('.ax-flow-chart-line').forEach((l) => {\n if (l !== line) l.classList.remove('selected');\n });\n // Add selection to clicked line\n line.classList.add('selected');\n // Remove selection from all nodes\n this.nodesMap.forEach((node) => node.classList.remove('selected'));\n });\n\n svg.appendChild(line);\n }\n });\n }\n\n createLine(from: { x: number; y: number }, to: { x: number; y: number }, edge: AXFlowChartEdges) {\n const line = document.createElementNS('http://www.w3.org/2000/svg', 'line');\n line.setAttribute('x1', from.x.toString());\n line.setAttribute('y1', from.y.toString());\n line.setAttribute('x2', to.x.toString());\n line.setAttribute('y2', to.y.toString());\n line.setAttribute('stroke', 'rgba(var(--ax-sys-color-on-surface))');\n line.setAttribute('stroke-width', '3');\n line.classList.add('ax-flow-chart-line');\n line.addEventListener('click', (e: MouseEvent) => {\n this.lineClick.next({ target: edge, event: e });\n this.selectedEdge.set(edge);\n });\n line.addEventListener('dblclick', (e: MouseEvent) => {\n this.lineDbClick.next({ target: edge, event: e });\n });\n return line;\n }\n\n private finishConnection() {\n if (this.currentConnection?.source && this.currentConnection?.target) {\n this.pushAndCreateEdgeData(this.currentConnection.source, this.currentConnection.target);\n }\n this.currentConnection = null;\n }\n\n removeEdge(edge: AXFlowChartEdges) {\n this.initialFlowChartEdge.update((value) => value.filter((e) => e.id !== edge.id));\n\n // Remove selected class from connected anchors\n const sourceNode = this.nodesMap.get(edge.source.id);\n const targetNode = this.nodesMap.get(edge.target.id);\n\n if (sourceNode) {\n const sourceAnchor = sourceNode.querySelector(`[data-anchor=\"${edge.source.anchor}\"]`);\n if (sourceAnchor) sourceAnchor.classList.remove('selected');\n }\n\n if (targetNode) {\n const targetAnchor = targetNode.querySelector(`[data-anchor=\"${edge.target.anchor}\"]`);\n if (targetAnchor) targetAnchor.classList.remove('selected');\n }\n }\n\n createNode(nodes: { id: string; type: string; label: string; x: number; y: number }[]) {\n document.querySelectorAll('.ax-flow-chart-node')?.forEach((node) => node.remove());\n\n nodes.forEach((node) => {\n const el = document.createElement('div') as HTMLElementWithDataset;\n const p = document.createElement('p') as HTMLElementWithDataset;\n p.innerText = node.label;\n el.appendChild(p);\n el.className = 'ax-flow-chart-node';\n el.classList.add(`ax-${node.type}`);\n el.style.left = node.x + 'px';\n el.style.top = node.y + 'px';\n el.dataset['id'] = node.id;\n\n this.addAnchors(el, node.type);\n this.makeDraggable(el);\n this.setupNodeEventListeners(el, node);\n\n this.canvasService().nativeElement.appendChild(el);\n this.nodesMap.set(node.id, el);\n });\n }\n\n removeNode(nodeId: string) {\n this.initialFlowChartNode.update((value) => value.filter((e) => e.id !== nodeId));\n\n this.initialFlowChartEdge().forEach((edge) => {\n if (edge.source.id === nodeId || edge.target.id === nodeId) {\n this.removeEdge(edge);\n }\n });\n\n document.querySelector(`[data-id=\"${nodeId}\"]`)?.remove();\n this.anchorClickBuffer = null;\n }\n\n cleanup() {\n this.nodesMap.forEach((_, id) => this.removeEventListeners(id));\n this.nodesMap.clear();\n this.eventListeners.clear();\n }\n}\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXFlowChartService } from '../flow-chart.service';\n\n@Component({\n selector: 'ax-flow-chart-creator',\n templateUrl: './flow-chart-creator.component.html',\n styleUrls: ['./flow-chart-creator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTextBoxModule, AXButtonModule, CommonModule, FormsModule],\n providers: [{ provide: AXComponent, useExisting: AXFlowChartCreatorComponent }],\n})\nexport class AXFlowChartCreatorComponent extends NXComponent {\n service = inject(AXFlowChartService);\n protected selectedShape = signal('rectangle');\n protected label = 'Label';\n\n protected selectShapeHandler(shape: 'rectangle' | 'circle' | 'diamond') {\n this.selectedShape.set(shape);\n }\n\n protected createShapeHandler() {\n const newNode = {\n id: Math.random().toString(),\n type: this.selectedShape(),\n label: this.label,\n x: 0,\n y: 0,\n };\n this.service.initialFlowChartNode.update((value) => [...value, newNode]);\n this.service.onNodeUpdate.next(newNode);\n }\n\n protected printChart(): void {\n const printWindow = window.open('', '_blank');\n if (!printWindow) return;\n\n const canvas = this.service.canvasService()?.nativeElement;\n if (!canvas) return;\n\n // Get all styles from the document and component\n const styles = Array.from(document.styleSheets)\n .map((sheet) => {\n try {\n return Array.from(sheet.cssRules)\n .map((rule) => rule.cssText)\n .join('\\n');\n } catch (e) {\n return '';\n }\n })\n .join('\\n');\n\n // Add print-specific styles for anchors\n const printStyles = `\n ${styles}\n .ax-flow-chart-anchor {\n opacity: 1 !important;\n }\n `;\n\n // Create the print content with proper styling\n const printContent = `\n <!DOCTYPE html>\n <html>\n <head>\n <title>Flow Chart Print</title>\n <style>\n ${printStyles}\n </style>\n </head>\n <body>\n <ax-flow-chart-renderer>\n ${canvas.outerHTML}\n </ax-flow-chart-renderer>\n </body>\n </html>\n `;\n\n printWindow.document.write(printContent);\n printWindow.document.close();\n }\n}\n","<div class=\"ax-shape-container\">\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'rectangle' }\"\n (click)=\"selectShapeHandler('rectangle')\"\n class=\"ax-rectangle\"\n ></div>\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'circle' }\"\n (click)=\"selectShapeHandler('circle')\"\n class=\"ax-circle\"\n ></div>\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'diamond' }\"\n (click)=\"selectShapeHandler('diamond')\"\n class=\"ax-diamond\"\n ></div>\n</div>\n<ax-text-box class=\"ax-sm\" [(ngModel)]=\"label\" placeholder=\"Label\"> </ax-text-box>\n\n<ax-button class=\"ax-sm\" (onClick)=\"createShapeHandler()\" color=\"primary\" text=\"Create\"></ax-button>\n<ax-button color=\"primary\" text=\"Print\" class=\"ax-sm\" (click)=\"printChart()\"></ax-button>\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n inject,\n OnDestroy,\n output,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXFlowChartService } from '../flow-chart.service';\nimport { AXFlowChartEdges, AXFlowChartNodes, AXLineClickEvent, AXNodeClickEvent } from '../flow-chart.type';\n\n@Component({\n selector: 'ax-flow-chart-renderer',\n templateUrl: './flow-chart-renderer.component.html',\n styleUrls: ['./flow-chart-renderer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXFlowChartRendererComponent }],\n})\nexport class AXFlowChartRendererComponent extends NXComponent implements OnDestroy {\n private canvas = viewChild<ElementRef>('canvas');\n private svg = viewChild<ElementRef>('connections');\n private service = inject(AXFlowChartService);\n\n readonly onLineClick = output<AXLineClickEvent>();\n readonly onLineDbClick = output<AXLineClickEvent>();\n readonly onNodeClick = output<AXNodeClickEvent>();\n readonly onNodeDbClick = output<AXNodeClickEvent>();\n readonly onEdgeUpdate = output<AXFlowChartEdges>();\n readonly onNodeUpdate = output<AXFlowChartNodes>();\n\n #init = afterNextRender(() => {\n this.setupEventListeners();\n });\n\n #eff = effect(() => {\n if (this.canvas() && this.svg()) {\n this.initializeServices();\n }\n });\n\n private setupEventListeners(): void {\n this.service.lineClick.subscribe((value) => {\n this.onLineClick.emit(value);\n });\n this.service.lineDbClick.subscribe((value) => {\n this.onLineDbClick.emit(value);\n });\n this.service.nodeClick.subscribe((value) => {\n this.onNodeClick.emit(value);\n });\n this.service.nodeDbClick.subscribe((value) => {\n this.onNodeDbClick.emit(value);\n });\n this.service.onEdgeUpdate.subscribe((newEdge) => {\n this.onEdgeUpdate.emit(newEdge);\n });\n this.service.onNodeUpdate.subscribe((newNode) => {\n this.onNodeUpdate.emit(newNode);\n });\n }\n\n private initializeServices(): void {\n this.service.canvasService.set(this.canvas());\n this.service.svgService.set(this.svg());\n\n // Add click handlers for parent elements\n const canvas = this.canvas()?.nativeElement;\n const svg = this.svg()?.nativeElement;\n\n if (canvas) {\n canvas.addEventListener('click', (e: Event) => {\n if (e.target === canvas) {\n this.service.selectedNode.set(null);\n this.service.selectedEdge.set(null);\n document.querySelectorAll('.ax-flow-chart-node').forEach((node) => node.classList.remove('selected'));\n document.querySelectorAll('.ax-flow-chart-line').forEach((line) => line.classList.remove('selected'));\n }\n });\n }\n\n if (svg) {\n svg.addEventListener('click', (e: Event) => {\n if (e.target === svg) {\n this.service.selectedNode.set(null);\n this.service.selectedEdge.set(null);\n document.querySelectorAll('.ax-flow-chart-node').forEach((node) => node.classList.remove('selected'));\n document.querySelectorAll('.ax-flow-chart-line').forEach((line) => line.classList.remove('selected'));\n }\n });\n }\n }\n\n ngOnDestroy(): void {\n this.cleanup();\n }\n\n private cleanup(): void {\n this.service.cleanup();\n this.service.lineClick.unsubscribe();\n this.service.lineDbClick.unsubscribe();\n this.service.nodeClick.unsubscribe();\n this.service.nodeDbClick.unsubscribe();\n this.service.onEdgeUpdate.unsubscribe();\n }\n}\n","<div id=\"ax-flow-chart-renderer-canvas\" #canvas>\n <svg class=\"ax-flow-chart-renderer-svg\" id=\"ax-flow-chart-renderer-connections\" #connections></svg>\n</div>\n","import { AXComponent, AXFocusableComponent, AXValuableComponent, NXComponent } from '@acorex/cdk/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostListener,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXFlowChartService } from './flow-chart.service';\nimport { AXFlowChartEdges, AXFlowChartNodes } from './flow-chart.type';\n\n@Component({\n selector: 'ax-flow-chart',\n templateUrl: './flow-chart.component.html',\n styleUrls: ['./flow-chart.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n AXFlowChartService,\n { provide: AXComponent, useExisting: AXFlowChartComponent },\n { provide: AXValuableComponent, useExisting: AXFlowChartComponent },\n { provide: AXFocusableComponent, useExisting: AXFlowChartComponent },\n ],\n})\nexport class AXFlowChartComponent extends NXComponent {\n private flowChartService = inject(AXFlowChartService);\n\n initialFlowChartNode = input.required<AXFlowChartNodes[]>();\n initialFlowChartEdge = input.required<AXFlowChartEdges[]>();\n selectedNode = computed(() => this.flowChartService.selectedNode());\n selectedEdge = computed(() => this.flowChartService.selectedEdge());\n\n #init = afterNextRender(() => {\n this.flowChartService.initialFlowChartNode.set(this.initialFlowChartNode());\n this.flowChartService.initialFlowChartEdge.set(this.initialFlowChartEdge());\n });\n\n @HostListener('document:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n if (event.key === 'Delete') {\n const selectedNode = this.selectedNode();\n const selectedEdge = this.selectedEdge();\n\n if (selectedNode) {\n this.removeNode(selectedNode.id);\n } else if (selectedEdge) {\n this.removeEdge(selectedEdge);\n }\n }\n }\n\n drawEdges(edges: AXFlowChartEdges[]) {\n this.flowChartService.drawEdges(edges);\n }\n\n removeEdge(edge: AXFlowChartEdges) {\n this.flowChartService.removeEdge(edge);\n }\n\n createNode(nodes: { id: string; type: string; label: string; x: number; y: number }[]) {\n this.flowChartService.createNode(nodes);\n }\n\n removeNode(nodeId: string) {\n this.flowChartService.removeNode(nodeId);\n }\n}\n","<ng-content select=\"ax-header\"></ng-content>\n<ng-content select=\"ax-flow-chart-renderer\"></ng-content>\n<ng-content select=\"ax-footer\"></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXFlowChartCreatorComponent } from './flow-chart-creator/flow-chart-creator.component';\nimport { AXFlowChartRendererComponent } from './flow-chart-renderer/flow-chart-renderer.component';\nimport { AXFlowChartComponent } from './flow-chart.component';\n\nconst COMPONENT = [AXFlowChartRendererComponent, AXFlowChartCreatorComponent, AXFlowChartComponent];\nconst MODULES = [CommonModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXFlowChartModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|