@nuraly/lumenui 0.2.1 → 0.2.2
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/dist/nuralyui.bundle.js +2010 -1271
- package/dist/nuralyui.bundle.js.gz +0 -0
- package/dist/src/components/button/controllers/base.controller.d.ts +15 -0
- package/dist/src/components/button/controllers/base.controller.js +13 -0
- package/dist/src/components/button/controllers/index.d.ts +10 -0
- package/dist/src/components/button/controllers/index.js +10 -0
- package/dist/src/components/button/controllers/keyboard.controller.d.ts +32 -0
- package/dist/src/components/button/controllers/keyboard.controller.js +78 -0
- package/dist/src/components/button/controllers/link.controller.d.ts +30 -0
- package/dist/src/components/button/controllers/link.controller.js +75 -0
- package/dist/src/components/button/controllers/ripple.controller.d.ts +23 -0
- package/dist/src/components/button/controllers/ripple.controller.js +69 -0
- package/dist/src/components/button/interfaces/base-controller.interface.d.ts +61 -0
- package/dist/src/components/button/interfaces/base-controller.interface.js +7 -0
- package/dist/src/components/button/interfaces/index.d.ts +2 -0
- package/dist/src/components/button/interfaces/index.js +2 -0
- package/dist/src/components/button/test/nr-button_test.d.ts +2 -0
- package/dist/src/components/button/test/nr-button_test.js +91 -0
- package/dist/src/components/canvas/base-canvas.component.d.ts +2 -1
- package/dist/src/components/canvas/base-canvas.component.js +6 -0
- package/dist/src/components/canvas/bundle.js +702 -475
- package/dist/src/components/canvas/bundle.js.gz +0 -0
- package/dist/src/components/canvas/chatbot-panel.style.js +50 -59
- package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger-fields.component.d.ts +115 -0
- package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger-fields.component.js +480 -0
- package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger-fields.style.d.ts +7 -0
- package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger-fields.style.js +323 -0
- package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger.types.d.ts +162 -0
- package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger.types.js +88 -0
- package/dist/src/components/canvas/chatbot-trigger/index.d.ts +9 -0
- package/dist/src/components/canvas/chatbot-trigger/index.js +12 -0
- package/dist/src/components/canvas/controllers/base.controller.d.ts +53 -0
- package/dist/src/components/canvas/controllers/base.controller.js +80 -0
- package/dist/src/components/canvas/controllers/clipboard.controller.d.ts +80 -0
- package/dist/src/components/canvas/controllers/clipboard.controller.js +300 -0
- package/dist/src/components/canvas/controllers/collaboration.controller.d.ts +54 -0
- package/dist/src/components/canvas/controllers/collaboration.controller.js +425 -0
- package/dist/src/components/canvas/controllers/config.controller.d.ts +61 -0
- package/dist/src/components/canvas/controllers/config.controller.js +118 -0
- package/dist/src/components/canvas/controllers/connection.controller.d.ts +69 -0
- package/dist/src/components/canvas/controllers/connection.controller.js +183 -0
- package/dist/src/components/canvas/controllers/drag.controller.d.ts +56 -0
- package/dist/src/components/canvas/controllers/drag.controller.js +195 -0
- package/dist/src/components/canvas/controllers/frame.controller.d.ts +94 -0
- package/dist/src/components/canvas/controllers/frame.controller.js +456 -0
- package/dist/src/components/canvas/controllers/index.d.ts +19 -0
- package/dist/src/components/canvas/controllers/index.js +32 -0
- package/dist/src/components/canvas/controllers/keyboard.controller.d.ts +44 -0
- package/dist/src/components/canvas/controllers/keyboard.controller.js +275 -0
- package/dist/src/components/canvas/controllers/marquee.controller.d.ts +71 -0
- package/dist/src/components/canvas/controllers/marquee.controller.js +128 -0
- package/dist/src/components/canvas/controllers/selection.controller.d.ts +85 -0
- package/dist/src/components/canvas/controllers/selection.controller.js +202 -0
- package/dist/src/components/canvas/controllers/touch.controller.d.ts +55 -0
- package/dist/src/components/canvas/controllers/touch.controller.js +299 -0
- package/dist/src/components/canvas/controllers/undo.controller.d.ts +100 -0
- package/dist/src/components/canvas/controllers/undo.controller.js +218 -0
- package/dist/src/components/canvas/controllers/viewport.controller.d.ts +91 -0
- package/dist/src/components/canvas/controllers/viewport.controller.js +287 -0
- package/dist/src/components/canvas/data-node/data-node-config.component.d.ts +67 -0
- package/dist/src/components/canvas/data-node/data-node-config.component.js +496 -0
- package/dist/src/components/canvas/data-node/data-node-fields.component.d.ts +198 -0
- package/dist/src/components/canvas/data-node/data-node-fields.component.js +931 -0
- package/dist/src/components/canvas/data-node/data-node-fields.style.d.ts +7 -0
- package/dist/src/components/canvas/data-node/data-node-fields.style.js +448 -0
- package/dist/src/components/canvas/data-node/data-node.types.d.ts +245 -0
- package/dist/src/components/canvas/data-node/data-node.types.js +158 -0
- package/dist/src/components/canvas/data-node/index.d.ts +9 -0
- package/dist/src/components/canvas/data-node/index.js +12 -0
- package/dist/src/components/canvas/data-node/schema-select.component.d.ts +36 -0
- package/dist/src/components/canvas/data-node/schema-select.component.js +196 -0
- package/dist/src/components/canvas/data-node/table-select.component.d.ts +38 -0
- package/dist/src/components/canvas/data-node/table-select.component.js +199 -0
- package/dist/src/components/canvas/interfaces/canvas-host.interface.d.ts +91 -0
- package/dist/src/components/canvas/interfaces/canvas-host.interface.js +7 -0
- package/dist/src/components/canvas/interfaces/collaboration.interface.d.ts +58 -0
- package/dist/src/components/canvas/interfaces/collaboration.interface.js +10 -0
- package/dist/src/components/canvas/interfaces/index.d.ts +8 -0
- package/dist/src/components/canvas/interfaces/index.js +7 -0
- package/dist/src/components/canvas/templates/chatbot-panel.template.d.ts +28 -0
- package/dist/src/components/canvas/templates/chatbot-panel.template.js +49 -0
- package/dist/src/components/canvas/templates/config-panel.template.d.ts +22 -0
- package/dist/src/components/canvas/templates/config-panel.template.js +22 -0
- package/dist/src/components/canvas/templates/context-menu.template.d.ts +30 -0
- package/dist/src/components/canvas/templates/context-menu.template.js +80 -0
- package/dist/src/components/canvas/templates/edges.template.d.ts +41 -0
- package/dist/src/components/canvas/templates/edges.template.js +243 -0
- package/dist/src/components/canvas/templates/empty-state.template.d.ts +17 -0
- package/dist/src/components/canvas/templates/empty-state.template.js +25 -0
- package/dist/src/components/canvas/templates/frame.template.d.ts +24 -0
- package/dist/src/components/canvas/templates/frame.template.js +74 -0
- package/dist/src/components/canvas/templates/index.d.ts +18 -0
- package/dist/src/components/canvas/templates/index.js +30 -0
- package/dist/src/components/canvas/templates/palette.template.d.ts +27 -0
- package/dist/src/components/canvas/templates/palette.template.js +110 -0
- package/dist/src/components/canvas/templates/presence-bar.template.d.ts +18 -0
- package/dist/src/components/canvas/templates/presence-bar.template.js +60 -0
- package/dist/src/components/canvas/templates/remote-cursors.template.d.ts +19 -0
- package/dist/src/components/canvas/templates/remote-cursors.template.js +43 -0
- package/dist/src/components/canvas/templates/toolbar.template.d.ts +52 -0
- package/dist/src/components/canvas/templates/toolbar.template.js +118 -0
- package/dist/src/components/canvas/templates/wb-floating-toolbar.template.d.ts +30 -0
- package/dist/src/components/canvas/templates/wb-floating-toolbar.template.js +219 -0
- package/dist/src/components/canvas/templates/wb-sidebar.template.d.ts +23 -0
- package/dist/src/components/canvas/templates/wb-sidebar.template.js +152 -0
- package/dist/src/components/canvas/utils/variable-resolver.d.ts +71 -0
- package/dist/src/components/canvas/utils/variable-resolver.js +280 -0
- package/dist/src/components/canvas/workflow-canvas.component.js +6 -0
- package/dist/src/components/canvas/workflow-canvas.style.js +46 -55
- package/dist/src/components/carousel/demo/carousel-demo.d.ts +6 -0
- package/dist/src/components/carousel/demo/carousel-demo.js +68 -0
- package/dist/src/components/chatbot/audio-compress.d.ts +26 -0
- package/dist/src/components/chatbot/audio-compress.js +84 -0
- package/dist/src/components/chatbot/bundle.js +388 -144
- package/dist/src/components/chatbot/bundle.js.gz +0 -0
- package/dist/src/components/chatbot/chatbot-audio.controller.d.ts +35 -0
- package/dist/src/components/chatbot/chatbot-audio.controller.js +160 -0
- package/dist/src/components/chatbot/chatbot.component.d.ts +12 -0
- package/dist/src/components/chatbot/chatbot.component.js +41 -2
- package/dist/src/components/chatbot/chatbot.style.js +141 -0
- package/dist/src/components/chatbot/chatbot.types.d.ts +8 -0
- package/dist/src/components/chatbot/controllers/index.d.ts +8 -0
- package/dist/src/components/chatbot/controllers/index.js +8 -0
- package/dist/src/components/chatbot/controllers/scroll.controller.d.ts +34 -0
- package/dist/src/components/chatbot/controllers/scroll.controller.js +43 -0
- package/dist/src/components/chatbot/core/chatbot-core.controller.d.ts +283 -0
- package/dist/src/components/chatbot/core/chatbot-core.controller.js +824 -0
- package/dist/src/components/chatbot/core/event-bus.d.ts +54 -0
- package/dist/src/components/chatbot/core/event-bus.js +102 -0
- package/dist/src/components/chatbot/core/index.d.ts +12 -0
- package/dist/src/components/chatbot/core/index.js +15 -0
- package/dist/src/components/chatbot/core/types.d.ts +403 -0
- package/dist/src/components/chatbot/core/types.js +16 -0
- package/dist/src/components/chatbot/locales/locale-codes.d.ts +14 -0
- package/dist/src/components/chatbot/locales/locale-codes.js +23 -0
- package/dist/src/components/chatbot/plugins/analytics-plugin.d.ts +23 -0
- package/dist/src/components/chatbot/plugins/analytics-plugin.js +52 -0
- package/dist/src/components/chatbot/plugins/artifact-plugin.d.ts +71 -0
- package/dist/src/components/chatbot/plugins/artifact-plugin.js +313 -0
- package/dist/src/components/chatbot/plugins/chat-plugin.d.ts +44 -0
- package/dist/src/components/chatbot/plugins/chat-plugin.js +58 -0
- package/dist/src/components/chatbot/plugins/flight-card-plugin.d.ts +116 -0
- package/dist/src/components/chatbot/plugins/flight-card-plugin.js +594 -0
- package/dist/src/components/chatbot/plugins/flow-diagram-plugin.d.ts +23 -0
- package/dist/src/components/chatbot/plugins/flow-diagram-plugin.js +495 -0
- package/dist/src/components/chatbot/plugins/index.d.ts +16 -0
- package/dist/src/components/chatbot/plugins/index.js +17 -0
- package/dist/src/components/chatbot/plugins/json-graph-renderer-plugin.d.ts +43 -0
- package/dist/src/components/chatbot/plugins/json-graph-renderer-plugin.js +166 -0
- package/dist/src/components/chatbot/plugins/markdown-plugin.d.ts +26 -0
- package/dist/src/components/chatbot/plugins/markdown-plugin.js +68 -0
- package/dist/src/components/chatbot/plugins/persistence-plugin.d.ts +30 -0
- package/dist/src/components/chatbot/plugins/persistence-plugin.js +91 -0
- package/dist/src/components/chatbot/plugins/print-job-card-plugin.d.ts +110 -0
- package/dist/src/components/chatbot/plugins/print-job-card-plugin.js +505 -0
- package/dist/src/components/chatbot/plugins/selection-card-plugin.d.ts +111 -0
- package/dist/src/components/chatbot/plugins/selection-card-plugin.js +318 -0
- package/dist/src/components/chatbot/providers/custom-api-provider.d.ts +63 -0
- package/dist/src/components/chatbot/providers/custom-api-provider.js +240 -0
- package/dist/src/components/chatbot/providers/index.d.ts +16 -0
- package/dist/src/components/chatbot/providers/index.js +13 -0
- package/dist/src/components/chatbot/providers/mock-provider.d.ts +154 -0
- package/dist/src/components/chatbot/providers/mock-provider.js +411 -0
- package/dist/src/components/chatbot/providers/native-ws-provider.d.ts +184 -0
- package/dist/src/components/chatbot/providers/native-ws-provider.js +544 -0
- package/dist/src/components/chatbot/providers/openai-provider.d.ts +32 -0
- package/dist/src/components/chatbot/providers/openai-provider.js +246 -0
- package/dist/src/components/chatbot/providers/socket-provider.d.ts +159 -0
- package/dist/src/components/chatbot/providers/socket-provider.js +390 -0
- package/dist/src/components/chatbot/providers/workflow-socket-provider.d.ts +116 -0
- package/dist/src/components/chatbot/providers/workflow-socket-provider.js +484 -0
- package/dist/src/components/chatbot/storage/index.d.ts +7 -0
- package/dist/src/components/chatbot/storage/index.js +8 -0
- package/dist/src/components/chatbot/storage/storage-implementations.d.ts +43 -0
- package/dist/src/components/chatbot/storage/storage-implementations.js +179 -0
- package/dist/src/components/chatbot/templates/artifact-panel.template.d.ts +22 -0
- package/dist/src/components/chatbot/templates/artifact-panel.template.js +81 -0
- package/dist/src/components/chatbot/templates/chatbot-main.template.d.ts +49 -0
- package/dist/src/components/chatbot/templates/chatbot-main.template.js +115 -0
- package/dist/src/components/chatbot/templates/file-preview-modal.template.d.ts +19 -0
- package/dist/src/components/chatbot/templates/file-preview-modal.template.js +74 -0
- package/dist/src/components/chatbot/templates/file-upload-area.template.d.ts +19 -0
- package/dist/src/components/chatbot/templates/file-upload-area.template.js +29 -0
- package/dist/src/components/chatbot/templates/index.d.ts +15 -0
- package/dist/src/components/chatbot/templates/index.js +15 -0
- package/dist/src/components/chatbot/templates/input-box.template.d.ts +49 -0
- package/dist/src/components/chatbot/templates/input-box.template.js +317 -0
- package/dist/src/components/chatbot/templates/message.template.d.ts +31 -0
- package/dist/src/components/chatbot/templates/message.template.js +214 -0
- package/dist/src/components/chatbot/templates/suggestion.template.d.ts +20 -0
- package/dist/src/components/chatbot/templates/suggestion.template.js +40 -0
- package/dist/src/components/chatbot/templates/thread-sidebar.template.d.ts +24 -0
- package/dist/src/components/chatbot/templates/thread-sidebar.template.js +160 -0
- package/dist/src/components/chatbot/templates/url-modal.template.d.ts +25 -0
- package/dist/src/components/chatbot/templates/url-modal.template.js +100 -0
- package/dist/src/components/chatbot/utils/format.d.ts +23 -0
- package/dist/src/components/chatbot/utils/format.js +84 -0
- package/dist/src/components/chatbot/utils/index.d.ts +7 -0
- package/dist/src/components/chatbot/utils/index.js +7 -0
- package/dist/src/components/checkbox/mixins/checkbox-event-mixin.d.ts +87 -0
- package/dist/src/components/checkbox/mixins/checkbox-event-mixin.js +94 -0
- package/dist/src/components/checkbox/mixins/checkbox-focus-mixin.d.ts +55 -0
- package/dist/src/components/checkbox/mixins/checkbox-focus-mixin.js +57 -0
- package/dist/src/components/checkbox/mixins/index.d.ts +10 -0
- package/dist/src/components/checkbox/mixins/index.js +8 -0
- package/dist/src/components/checkbox/test/checkbox_test.d.ts +2 -0
- package/dist/src/components/checkbox/test/checkbox_test.js +88 -0
- package/dist/src/components/collapse/controllers/accordion.controller.d.ts +60 -0
- package/dist/src/components/collapse/controllers/accordion.controller.js +132 -0
- package/dist/src/components/collapse/controllers/animation.controller.d.ts +40 -0
- package/dist/src/components/collapse/controllers/animation.controller.js +125 -0
- package/dist/src/components/collapse/controllers/base.controller.d.ts +48 -0
- package/dist/src/components/collapse/controllers/base.controller.js +69 -0
- package/dist/src/components/collapse/controllers/index.d.ts +12 -0
- package/dist/src/components/collapse/controllers/index.js +11 -0
- package/dist/src/components/collapse/controllers/keyboard.controller.d.ts +73 -0
- package/dist/src/components/collapse/controllers/keyboard.controller.js +186 -0
- package/dist/src/components/colorpicker/controllers/base.controller.d.ts +14 -0
- package/dist/src/components/colorpicker/controllers/base.controller.js +15 -0
- package/dist/src/components/colorpicker/controllers/dropdown.controller.d.ts +60 -0
- package/dist/src/components/colorpicker/controllers/dropdown.controller.js +243 -0
- package/dist/src/components/colorpicker/controllers/event.controller.d.ts +46 -0
- package/dist/src/components/colorpicker/controllers/event.controller.js +130 -0
- package/dist/src/components/colorpicker/controllers/index.d.ts +4 -0
- package/dist/src/components/colorpicker/controllers/index.js +4 -0
- package/dist/src/components/colorpicker/interfaces/index.d.ts +60 -0
- package/dist/src/components/colorpicker/interfaces/index.js +2 -0
- package/dist/src/components/datepicker/controllers/calendar.controller.d.ts +78 -0
- package/dist/src/components/datepicker/controllers/calendar.controller.js +225 -0
- package/dist/src/components/datepicker/controllers/index.d.ts +11 -0
- package/dist/src/components/datepicker/controllers/index.js +11 -0
- package/dist/src/components/datepicker/controllers/keyboard.controller.d.ts +96 -0
- package/dist/src/components/datepicker/controllers/keyboard.controller.js +246 -0
- package/dist/src/components/datepicker/controllers/month-year-dropdown.controller.d.ts +48 -0
- package/dist/src/components/datepicker/controllers/month-year-dropdown.controller.js +92 -0
- package/dist/src/components/datepicker/controllers/positioning.controller.d.ts +82 -0
- package/dist/src/components/datepicker/controllers/positioning.controller.js +247 -0
- package/dist/src/components/datepicker/controllers/selection.controller.d.ts +92 -0
- package/dist/src/components/datepicker/controllers/selection.controller.js +267 -0
- package/dist/src/components/datepicker/interfaces/base-controller.interface.d.ts +40 -0
- package/dist/src/components/datepicker/interfaces/base-controller.interface.js +7 -0
- package/dist/src/components/datepicker/interfaces/datepicker-controllers.interface.d.ts +112 -0
- package/dist/src/components/datepicker/interfaces/datepicker-controllers.interface.js +7 -0
- package/dist/src/components/datepicker/interfaces/index.d.ts +8 -0
- package/dist/src/components/datepicker/interfaces/index.js +7 -0
- package/dist/src/components/datepicker/templates/days.template.d.ts +4 -0
- package/dist/src/components/datepicker/templates/days.template.js +40 -0
- package/dist/src/components/datepicker/templates/dropdown.template.d.ts +10 -0
- package/dist/src/components/datepicker/templates/dropdown.template.js +50 -0
- package/dist/src/components/datepicker/templates/headers.template.d.ts +2 -0
- package/dist/src/components/datepicker/templates/headers.template.js +5 -0
- package/dist/src/components/datepicker/templates/months.template.d.ts +6 -0
- package/dist/src/components/datepicker/templates/months.template.js +10 -0
- package/dist/src/components/datepicker/templates/years.template.d.ts +6 -0
- package/dist/src/components/datepicker/templates/years.template.js +11 -0
- package/dist/src/components/datepicker/test/datepicker_test.d.ts +2 -0
- package/dist/src/components/datepicker/test/datepicker_test.js +134 -0
- package/dist/src/components/datepicker/utils/day.helper.d.ts +5 -0
- package/dist/src/components/datepicker/utils/day.helper.js +53 -0
- package/dist/src/components/datepicker/utils/formatter.d.ts +2 -0
- package/dist/src/components/datepicker/utils/formatter.js +9 -0
- package/dist/src/components/datepicker/utils/index.d.ts +11 -0
- package/dist/src/components/datepicker/utils/index.js +11 -0
- package/dist/src/components/datepicker/utils/locale.helper.d.ts +144 -0
- package/dist/src/components/datepicker/utils/locale.helper.js +151 -0
- package/dist/src/components/datepicker/utils/month.helper.d.ts +3 -0
- package/dist/src/components/datepicker/utils/month.helper.js +24 -0
- package/dist/src/components/datepicker/utils/string.helper.d.ts +2 -0
- package/dist/src/components/datepicker/utils/string.helper.js +4 -0
- package/dist/src/components/document/demo/document-demo.d.ts +12 -0
- package/dist/src/components/document/demo/document-demo.js +40 -0
- package/dist/src/components/dropdown/controllers/base.controller.d.ts +18 -0
- package/dist/src/components/dropdown/controllers/base.controller.js +22 -0
- package/dist/src/components/dropdown/controllers/dropdown.controller.d.ts +50 -0
- package/dist/src/components/dropdown/controllers/dropdown.controller.js +408 -0
- package/dist/src/components/dropdown/controllers/index.d.ts +3 -0
- package/dist/src/components/dropdown/controllers/index.js +3 -0
- package/dist/src/components/dropdown/interfaces/controller-interfaces.d.ts +79 -0
- package/dist/src/components/dropdown/interfaces/controller-interfaces.js +2 -0
- package/dist/src/components/dropdown/interfaces/index.d.ts +2 -0
- package/dist/src/components/dropdown/interfaces/index.js +2 -0
- package/dist/src/components/dropdown/templates/nr-dropdown-item.d.ts +12 -0
- package/dist/src/components/dropdown/templates/nr-dropdown-item.js +55 -0
- package/dist/src/components/dropdown/templates/nr-dropdown-item.style.d.ts +2 -0
- package/dist/src/components/dropdown/templates/nr-dropdown-item.style.js +34 -0
- package/dist/src/components/dropdown/templates/nr-dropdown-menu.d.ts +18 -0
- package/dist/src/components/dropdown/templates/nr-dropdown-menu.js +70 -0
- package/dist/src/components/dropdown/templates/nr-dropdown-menu.style.d.ts +2 -0
- package/dist/src/components/dropdown/templates/nr-dropdown-menu.style.js +49 -0
- package/dist/src/components/file-upload/demo/file-upload-demo.d.ts +18 -0
- package/dist/src/components/file-upload/demo/file-upload-demo.js +156 -0
- package/dist/src/components/form/controllers/submission.controller.d.ts +60 -0
- package/dist/src/components/form/controllers/submission.controller.js +220 -0
- package/dist/src/components/form/controllers/validation.controller.d.ts +87 -0
- package/dist/src/components/form/controllers/validation.controller.js +236 -0
- package/dist/src/components/form/interfaces/validation.interface.d.ts +118 -0
- package/dist/src/components/form/interfaces/validation.interface.js +7 -0
- package/dist/src/components/icon/mixins/clickable-mixin.d.ts +57 -0
- package/dist/src/components/icon/mixins/clickable-mixin.js +111 -0
- package/dist/src/components/icon/mixins/index.d.ts +7 -0
- package/dist/src/components/icon/mixins/index.js +7 -0
- package/dist/src/components/iconpicker/controllers/event.controller.d.ts +38 -0
- package/dist/src/components/iconpicker/controllers/event.controller.js +68 -0
- package/dist/src/components/iconpicker/controllers/index.d.ts +9 -0
- package/dist/src/components/iconpicker/controllers/index.js +9 -0
- package/dist/src/components/iconpicker/controllers/search.controller.d.ts +34 -0
- package/dist/src/components/iconpicker/controllers/search.controller.js +55 -0
- package/dist/src/components/iconpicker/controllers/selection.controller.d.ts +27 -0
- package/dist/src/components/iconpicker/controllers/selection.controller.js +39 -0
- package/dist/src/components/iconpicker/interfaces/icon-picker.interface.d.ts +13 -0
- package/dist/src/components/iconpicker/interfaces/icon-picker.interface.js +7 -0
- package/dist/src/components/iconpicker/interfaces/index.d.ts +7 -0
- package/dist/src/components/iconpicker/interfaces/index.js +7 -0
- package/dist/src/components/iconpicker/utils/icon-filter.utils.d.ts +29 -0
- package/dist/src/components/iconpicker/utils/icon-filter.utils.js +96 -0
- package/dist/src/components/iconpicker/utils/icon-loader.utils.d.ts +39 -0
- package/dist/src/components/iconpicker/utils/icon-loader.utils.js +115 -0
- package/dist/src/components/iconpicker/utils/index.d.ts +8 -0
- package/dist/src/components/iconpicker/utils/index.js +8 -0
- package/dist/src/components/iconpicker/utils/lucide-icons.d.ts +10 -0
- package/dist/src/components/iconpicker/utils/lucide-icons.js +1624 -0
- package/dist/src/components/input/controllers/base.controller.d.ts +35 -0
- package/dist/src/components/input/controllers/base.controller.js +13 -0
- package/dist/src/components/input/controllers/event.controller.d.ts +111 -0
- package/dist/src/components/input/controllers/event.controller.js +355 -0
- package/dist/src/components/input/controllers/index.d.ts +14 -0
- package/dist/src/components/input/controllers/index.js +10 -0
- package/dist/src/components/input/controllers/state.controller.d.ts +153 -0
- package/dist/src/components/input/controllers/state.controller.js +245 -0
- package/dist/src/components/input/controllers/validation.controller.d.ts +205 -0
- package/dist/src/components/input/controllers/validation.controller.js +698 -0
- package/dist/src/components/input/mixins/focus-mixin.d.ts +60 -0
- package/dist/src/components/input/mixins/focus-mixin.js +65 -0
- package/dist/src/components/input/mixins/index.d.ts +12 -0
- package/dist/src/components/input/mixins/index.js +9 -0
- package/dist/src/components/input/mixins/number-mixin.d.ts +51 -0
- package/dist/src/components/input/mixins/number-mixin.js +128 -0
- package/dist/src/components/input/mixins/selection-mixin.d.ts +57 -0
- package/dist/src/components/input/mixins/selection-mixin.js +80 -0
- package/dist/src/components/input/test/nr-input_test.d.ts +2 -0
- package/dist/src/components/input/test/nr-input_test.js +159 -0
- package/dist/src/components/input/utils/index.d.ts +8 -0
- package/dist/src/components/input/utils/index.js +8 -0
- package/dist/src/components/input/utils/input-renderers.d.ts +54 -0
- package/dist/src/components/input/utils/input-renderers.js +178 -0
- package/dist/src/components/input/utils/input-validation.utils.d.ts +26 -0
- package/dist/src/components/input/utils/input-validation.utils.js +103 -0
- package/dist/src/components/menu/controllers/accessibility.controller.d.ts +86 -0
- package/dist/src/components/menu/controllers/accessibility.controller.js +235 -0
- package/dist/src/components/menu/controllers/base.controller.d.ts +41 -0
- package/dist/src/components/menu/controllers/base.controller.js +61 -0
- package/dist/src/components/menu/controllers/index.d.ts +10 -0
- package/dist/src/components/menu/controllers/index.js +10 -0
- package/dist/src/components/menu/controllers/keyboard.controller.d.ts +84 -0
- package/dist/src/components/menu/controllers/keyboard.controller.js +328 -0
- package/dist/src/components/menu/controllers/state.controller.d.ts +106 -0
- package/dist/src/components/menu/controllers/state.controller.js +249 -0
- package/dist/src/components/menu/interfaces/controller.interface.d.ts +51 -0
- package/dist/src/components/menu/interfaces/controller.interface.js +7 -0
- package/dist/src/components/menu/interfaces/index.d.ts +7 -0
- package/dist/src/components/menu/interfaces/index.js +7 -0
- package/dist/src/components/modal/controllers/index.d.ts +8 -0
- package/dist/src/components/modal/controllers/index.js +8 -0
- package/dist/src/components/modal/controllers/modal-drag-controller.d.ts +39 -0
- package/dist/src/components/modal/controllers/modal-drag-controller.js +108 -0
- package/dist/src/components/modal/controllers/modal-keyboard-controller.d.ts +36 -0
- package/dist/src/components/modal/controllers/modal-keyboard-controller.js +128 -0
- package/dist/src/components/panel/controllers/index.d.ts +8 -0
- package/dist/src/components/panel/controllers/index.js +8 -0
- package/dist/src/components/panel/controllers/panel-drag-controller.d.ts +40 -0
- package/dist/src/components/panel/controllers/panel-drag-controller.js +118 -0
- package/dist/src/components/panel/controllers/panel-resize-controller.d.ts +37 -0
- package/dist/src/components/panel/controllers/panel-resize-controller.js +124 -0
- package/dist/src/components/presence/bundle.js +528 -0
- package/dist/src/components/presence/bundle.js.gz +0 -0
- package/dist/src/components/presence/index.d.ts +10 -0
- package/dist/src/components/presence/index.js +10 -0
- package/dist/src/components/presence/presence-avatars.component.d.ts +40 -0
- package/dist/src/components/presence/presence-avatars.component.js +83 -0
- package/dist/src/components/presence/presence-avatars.style.d.ts +7 -0
- package/dist/src/components/presence/presence-avatars.style.js +105 -0
- package/dist/src/components/presence/presence-chat.component.d.ts +53 -0
- package/dist/src/components/presence/presence-chat.component.js +228 -0
- package/dist/src/components/presence/presence-chat.style.d.ts +7 -0
- package/dist/src/components/presence/presence-chat.style.js +248 -0
- package/dist/src/components/presence/presence.component.d.ts +71 -0
- package/dist/src/components/presence/presence.component.js +263 -0
- package/dist/src/components/presence/presence.style.d.ts +7 -0
- package/dist/src/components/presence/presence.style.js +12 -0
- package/dist/src/components/presence/presence.types.d.ts +31 -0
- package/dist/src/components/presence/presence.types.js +7 -0
- package/dist/src/components/presence/react.d.ts +24 -0
- package/dist/src/components/presence/react.js +41 -0
- package/dist/src/components/radio-group/controllers/focus.controller.d.ts +98 -0
- package/dist/src/components/radio-group/controllers/focus.controller.js +216 -0
- package/dist/src/components/radio-group/controllers/group.controller.d.ts +140 -0
- package/dist/src/components/radio-group/controllers/group.controller.js +179 -0
- package/dist/src/components/radio-group/controllers/index.d.ts +11 -0
- package/dist/src/components/radio-group/controllers/index.js +11 -0
- package/dist/src/components/radio-group/controllers/keyboard.controller.d.ts +24 -0
- package/dist/src/components/radio-group/controllers/keyboard.controller.js +93 -0
- package/dist/src/components/radio-group/controllers/ripple.controller.d.ts +59 -0
- package/dist/src/components/radio-group/controllers/ripple.controller.js +208 -0
- package/dist/src/components/radio-group/controllers/validation.controller.d.ts +73 -0
- package/dist/src/components/radio-group/controllers/validation.controller.js +108 -0
- package/dist/src/components/radio-group/interfaces/base-controller.interface.d.ts +75 -0
- package/dist/src/components/radio-group/interfaces/base-controller.interface.js +7 -0
- package/dist/src/components/radio-group/interfaces/focus-controller.interface.d.ts +40 -0
- package/dist/src/components/radio-group/interfaces/focus-controller.interface.js +7 -0
- package/dist/src/components/radio-group/interfaces/index.d.ts +11 -0
- package/dist/src/components/radio-group/interfaces/index.js +7 -0
- package/dist/src/components/radio-group/interfaces/ripple-controller.interface.d.ts +31 -0
- package/dist/src/components/radio-group/interfaces/ripple-controller.interface.js +7 -0
- package/dist/src/components/radio-group/interfaces/selection-controller.interface.d.ts +45 -0
- package/dist/src/components/radio-group/interfaces/selection-controller.interface.js +7 -0
- package/dist/src/components/radio-group/interfaces/validation-controller.interface.d.ts +48 -0
- package/dist/src/components/radio-group/interfaces/validation-controller.interface.js +7 -0
- package/dist/src/components/radio-group/test/radio_test.d.ts +2 -0
- package/dist/src/components/radio-group/test/radio_test.js +79 -0
- package/dist/src/components/select/controllers/base.controller.d.ts +10 -0
- package/dist/src/components/select/controllers/base.controller.js +8 -0
- package/dist/src/components/select/controllers/dropdown.controller.d.ts +76 -0
- package/dist/src/components/select/controllers/dropdown.controller.js +281 -0
- package/dist/src/components/select/controllers/event.controller.d.ts +54 -0
- package/dist/src/components/select/controllers/event.controller.js +113 -0
- package/dist/src/components/select/controllers/focus.controller.d.ts +79 -0
- package/dist/src/components/select/controllers/focus.controller.js +230 -0
- package/dist/src/components/select/controllers/index.d.ts +9 -0
- package/dist/src/components/select/controllers/index.js +9 -0
- package/dist/src/components/select/controllers/keyboard.controller.d.ts +75 -0
- package/dist/src/components/select/controllers/keyboard.controller.js +369 -0
- package/dist/src/components/select/controllers/search.controller.d.ts +71 -0
- package/dist/src/components/select/controllers/search.controller.js +167 -0
- package/dist/src/components/select/controllers/selection.controller.d.ts +67 -0
- package/dist/src/components/select/controllers/selection.controller.js +217 -0
- package/dist/src/components/select/controllers/validation.controller.d.ts +66 -0
- package/dist/src/components/select/controllers/validation.controller.js +189 -0
- package/dist/src/components/select/interfaces/base-controller.interface.d.ts +147 -0
- package/dist/src/components/select/interfaces/base-controller.interface.js +2 -0
- package/dist/src/components/select/interfaces/controller-interfaces.d.ts +94 -0
- package/dist/src/components/select/interfaces/controller-interfaces.js +11 -0
- package/dist/src/components/select/interfaces/index.d.ts +3 -0
- package/dist/src/components/select/interfaces/index.js +3 -0
- package/dist/src/components/slider-input/utils/debounce.d.ts +2 -0
- package/dist/src/components/slider-input/utils/debounce.js +8 -0
- package/dist/src/components/slider-input/utils/index.d.ts +2 -0
- package/dist/src/components/slider-input/utils/index.js +2 -0
- package/dist/src/components/table/controllers/base.controller.d.ts +15 -0
- package/dist/src/components/table/controllers/base.controller.js +13 -0
- package/dist/src/components/table/controllers/filter.controller.d.ts +48 -0
- package/dist/src/components/table/controllers/filter.controller.js +152 -0
- package/dist/src/components/table/controllers/index.d.ts +11 -0
- package/dist/src/components/table/controllers/index.js +11 -0
- package/dist/src/components/table/controllers/pagination.controller.d.ts +36 -0
- package/dist/src/components/table/controllers/pagination.controller.js +110 -0
- package/dist/src/components/table/controllers/selection.controller.d.ts +40 -0
- package/dist/src/components/table/controllers/selection.controller.js +120 -0
- package/dist/src/components/table/controllers/sort.controller.d.ts +32 -0
- package/dist/src/components/table/controllers/sort.controller.js +102 -0
- package/dist/src/components/table/interfaces/index.d.ts +7 -0
- package/dist/src/components/table/interfaces/index.js +7 -0
- package/dist/src/components/table/interfaces/table-host.interface.d.ts +48 -0
- package/dist/src/components/table/interfaces/table-host.interface.js +7 -0
- package/dist/src/components/table/templates/actions.template.d.ts +14 -0
- package/dist/src/components/table/templates/actions.template.js +15 -0
- package/dist/src/components/table/templates/column-filter.template.d.ts +24 -0
- package/dist/src/components/table/templates/column-filter.template.js +76 -0
- package/dist/src/components/table/templates/content.template.d.ts +37 -0
- package/dist/src/components/table/templates/content.template.js +208 -0
- package/dist/src/components/table/templates/empty.template.d.ts +8 -0
- package/dist/src/components/table/templates/empty.template.js +47 -0
- package/dist/src/components/table/templates/filter.template.d.ts +14 -0
- package/dist/src/components/table/templates/filter.template.js +28 -0
- package/dist/src/components/table/templates/index.d.ts +8 -0
- package/dist/src/components/table/templates/index.js +8 -0
- package/dist/src/components/table/templates/loading.template.d.ts +21 -0
- package/dist/src/components/table/templates/loading.template.js +51 -0
- package/dist/src/components/table/templates/pagination.template.d.ts +24 -0
- package/dist/src/components/table/templates/pagination.template.js +52 -0
- package/dist/src/components/tabs/controllers/base.controller.d.ts +49 -0
- package/dist/src/components/tabs/controllers/base.controller.js +26 -0
- package/dist/src/components/tabs/controllers/dragdrop.controller.d.ts +84 -0
- package/dist/src/components/tabs/controllers/dragdrop.controller.js +202 -0
- package/dist/src/components/tabs/controllers/editable.controller.d.ts +100 -0
- package/dist/src/components/tabs/controllers/editable.controller.js +242 -0
- package/dist/src/components/tabs/controllers/event.controller.d.ts +104 -0
- package/dist/src/components/tabs/controllers/event.controller.js +239 -0
- package/dist/src/components/tabs/controllers/index.d.ts +12 -0
- package/dist/src/components/tabs/controllers/index.js +18 -0
- package/dist/src/components/tabs/controllers/keyboard.controller.d.ts +85 -0
- package/dist/src/components/tabs/controllers/keyboard.controller.js +233 -0
- package/dist/src/components/tabs/controllers/popout.controller.d.ts +96 -0
- package/dist/src/components/tabs/controllers/popout.controller.js +441 -0
- package/dist/src/components/textarea/controllers/base.controller.d.ts +43 -0
- package/dist/src/components/textarea/controllers/base.controller.js +19 -0
- package/dist/src/components/textarea/controllers/event.controller.d.ts +169 -0
- package/dist/src/components/textarea/controllers/event.controller.js +408 -0
- package/dist/src/components/textarea/controllers/index.d.ts +9 -0
- package/dist/src/components/textarea/controllers/index.js +9 -0
- package/dist/src/components/textarea/controllers/validation.controller.d.ts +133 -0
- package/dist/src/components/textarea/controllers/validation.controller.js +315 -0
- package/dist/src/components/timepicker/controllers/formatting.controller.d.ts +93 -0
- package/dist/src/components/timepicker/controllers/formatting.controller.js +195 -0
- package/dist/src/components/timepicker/controllers/index.d.ts +9 -0
- package/dist/src/components/timepicker/controllers/index.js +9 -0
- package/dist/src/components/timepicker/controllers/selection.controller.d.ts +72 -0
- package/dist/src/components/timepicker/controllers/selection.controller.js +175 -0
- package/dist/src/components/timepicker/controllers/validation.controller.d.ts +88 -0
- package/dist/src/components/timepicker/controllers/validation.controller.js +200 -0
- package/dist/src/components/timepicker/interfaces/timepicker.interface.d.ts +103 -0
- package/dist/src/components/timepicker/interfaces/timepicker.interface.js +7 -0
- package/dist/src/components/timepicker/test/timepicker_test.d.ts +7 -0
- package/dist/src/components/timepicker/test/timepicker_test.js +218 -0
- package/dist/src/components/timepicker/utils/time.utils.d.ts +87 -0
- package/dist/src/components/timepicker/utils/time.utils.js +235 -0
- package/dist/src/components/toast/controllers/base.controller.d.ts +20 -0
- package/dist/src/components/toast/controllers/base.controller.js +12 -0
- package/dist/src/components/toast/controllers/index.d.ts +8 -0
- package/dist/src/components/toast/controllers/index.js +7 -0
- package/dist/src/components/tooltips/demo/tooltips-demo.d.ts +18 -0
- package/dist/src/components/tooltips/demo/tooltips-demo.js +132 -0
- package/dist/src/components/tooltips/test/tooltips_test.d.ts +2 -0
- package/dist/src/components/tooltips/test/tooltips_test.js +145 -0
- package/package.json +27 -1
- package/packages/common/dist/VERSIONS.md +1 -1
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2024 Nuraly, Laabidi Aymen
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { BaseComponentController } from '@nuralyui/common/controllers';
|
|
7
|
+
/**
|
|
8
|
+
* Abstract base controller class that implements common functionality
|
|
9
|
+
* for all canvas component controllers.
|
|
10
|
+
*
|
|
11
|
+
* @typeParam THost - The canvas host type. Defaults to CanvasHost & ReactiveControllerHost.
|
|
12
|
+
* Subclasses with extended host interfaces can specify a narrower type.
|
|
13
|
+
*/
|
|
14
|
+
export class BaseCanvasController extends BaseComponentController {
|
|
15
|
+
/**
|
|
16
|
+
* Helper to get canvas wrapper element
|
|
17
|
+
*/
|
|
18
|
+
get canvasWrapper() {
|
|
19
|
+
return this._host.canvasWrapper;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Helper to get canvas viewport element
|
|
23
|
+
*/
|
|
24
|
+
get canvasViewport() {
|
|
25
|
+
return this._host.canvasViewport;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Helper to convert client coordinates to canvas coordinates
|
|
29
|
+
*/
|
|
30
|
+
clientToCanvas(clientX, clientY) {
|
|
31
|
+
const wrapper = this.canvasWrapper;
|
|
32
|
+
if (!wrapper)
|
|
33
|
+
return { x: 0, y: 0 };
|
|
34
|
+
const rect = wrapper.getBoundingClientRect();
|
|
35
|
+
const { viewport } = this._host;
|
|
36
|
+
return {
|
|
37
|
+
x: (clientX - rect.left - viewport.panX) / viewport.zoom,
|
|
38
|
+
y: (clientY - rect.top - viewport.panY) / viewport.zoom,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Helper to snap a position to the grid
|
|
43
|
+
*/
|
|
44
|
+
snapToGrid(x, y, gridSize = 20) {
|
|
45
|
+
return {
|
|
46
|
+
x: Math.round(x / gridSize) * gridSize,
|
|
47
|
+
y: Math.round(y / gridSize) * gridSize,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Generate a unique name by appending " (copy)" or " (copy N)" suffix.
|
|
52
|
+
* Checks against existing node names in the workflow.
|
|
53
|
+
*/
|
|
54
|
+
generateUniqueName(originalName) {
|
|
55
|
+
const baseName = originalName.replace(/ \(copy(?: \d+)?\)$/, '');
|
|
56
|
+
const existingNames = new Set(this._host.workflow.nodes.map(n => n.name));
|
|
57
|
+
const newName = `${baseName} (copy)`;
|
|
58
|
+
if (!existingNames.has(newName)) {
|
|
59
|
+
return newName;
|
|
60
|
+
}
|
|
61
|
+
let counter = 2;
|
|
62
|
+
while (existingNames.has(`${baseName} (copy ${counter})`)) {
|
|
63
|
+
counter++;
|
|
64
|
+
}
|
|
65
|
+
return `${baseName} (copy ${counter})`;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Generate a unique node ID
|
|
69
|
+
*/
|
|
70
|
+
generateNodeId() {
|
|
71
|
+
return `node_${Date.now()}_${globalThis.crypto.randomUUID().slice(0, 9)}`;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Generate a unique edge ID
|
|
75
|
+
*/
|
|
76
|
+
generateEdgeId() {
|
|
77
|
+
return `edge_${Date.now()}_${globalThis.crypto.randomUUID().slice(0, 9)}`;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=base.controller.js.map
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2024 Nuraly, Laabidi Aymen
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { ReactiveControllerHost } from 'lit';
|
|
7
|
+
import { BaseCanvasController } from './base.controller.js';
|
|
8
|
+
import { CanvasHost } from '../interfaces/index.js';
|
|
9
|
+
import { WorkflowNode, WorkflowEdge, Position } from '../workflow-canvas.types.js';
|
|
10
|
+
import type { UndoController } from './undo.controller.js';
|
|
11
|
+
/**
|
|
12
|
+
* Clipboard data format for workflow nodes and edges
|
|
13
|
+
*/
|
|
14
|
+
export interface ClipboardData {
|
|
15
|
+
type: 'nuraly-workflow-nodes';
|
|
16
|
+
version: string;
|
|
17
|
+
nodes: WorkflowNode[];
|
|
18
|
+
edges: WorkflowEdge[];
|
|
19
|
+
copyOrigin: Position;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Extended canvas host interface for clipboard controller
|
|
23
|
+
*/
|
|
24
|
+
export interface ClipboardHost extends CanvasHost {
|
|
25
|
+
/** Last mouse position on canvas for paste positioning */
|
|
26
|
+
lastMousePosition: Position | null;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Controller for clipboard operations (copy, cut, paste)
|
|
30
|
+
* Supports both internal clipboard and system clipboard with JSON serialization
|
|
31
|
+
*/
|
|
32
|
+
export declare class ClipboardController extends BaseCanvasController<ClipboardHost & ReactiveControllerHost> {
|
|
33
|
+
private undoController;
|
|
34
|
+
/** Internal clipboard for fallback when system clipboard is unavailable */
|
|
35
|
+
private internalClipboard;
|
|
36
|
+
/**
|
|
37
|
+
* Set the undo controller (called after initialization)
|
|
38
|
+
*/
|
|
39
|
+
setUndoController(controller: UndoController): void;
|
|
40
|
+
/**
|
|
41
|
+
* Copy selected nodes and their connecting edges to clipboard
|
|
42
|
+
*/
|
|
43
|
+
copySelected(): Promise<boolean>;
|
|
44
|
+
/**
|
|
45
|
+
* Cut selected nodes (copy + delete)
|
|
46
|
+
*/
|
|
47
|
+
cutSelected(): Promise<boolean>;
|
|
48
|
+
/**
|
|
49
|
+
* Paste nodes from clipboard
|
|
50
|
+
* @param position Optional position to paste at. If not provided, uses mouse position or canvas center.
|
|
51
|
+
*/
|
|
52
|
+
pasteFromClipboard(position?: Position): Promise<boolean>;
|
|
53
|
+
/**
|
|
54
|
+
* Check if there's content available to paste
|
|
55
|
+
*/
|
|
56
|
+
hasClipboardContent(): Promise<boolean>;
|
|
57
|
+
/**
|
|
58
|
+
* Serialize the current selection to clipboard data format
|
|
59
|
+
*/
|
|
60
|
+
private serializeSelection;
|
|
61
|
+
/**
|
|
62
|
+
* Parse clipboard text into ClipboardData
|
|
63
|
+
* Supports both Nuraly format and raw workflow JSON
|
|
64
|
+
*/
|
|
65
|
+
private parseClipboardData;
|
|
66
|
+
/**
|
|
67
|
+
* Calculate the center position of a selection of nodes
|
|
68
|
+
*/
|
|
69
|
+
private calculateSelectionCenter;
|
|
70
|
+
/**
|
|
71
|
+
* Get the position to paste at
|
|
72
|
+
* Uses mouse position if available, otherwise offsets from copy origin
|
|
73
|
+
*/
|
|
74
|
+
private getPastePosition;
|
|
75
|
+
/**
|
|
76
|
+
* Delete selected nodes and their connected edges
|
|
77
|
+
*/
|
|
78
|
+
private deleteSelected;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=clipboard.controller.d.ts.map
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2024 Nuraly, Laabidi Aymen
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
7
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
8
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
9
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
10
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
11
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
12
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
import { BaseCanvasController } from './base.controller.js';
|
|
16
|
+
/**
|
|
17
|
+
* Controller for clipboard operations (copy, cut, paste)
|
|
18
|
+
* Supports both internal clipboard and system clipboard with JSON serialization
|
|
19
|
+
*/
|
|
20
|
+
export class ClipboardController extends BaseCanvasController {
|
|
21
|
+
constructor() {
|
|
22
|
+
super(...arguments);
|
|
23
|
+
this.undoController = null;
|
|
24
|
+
/** Internal clipboard for fallback when system clipboard is unavailable */
|
|
25
|
+
this.internalClipboard = null;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Set the undo controller (called after initialization)
|
|
29
|
+
*/
|
|
30
|
+
setUndoController(controller) {
|
|
31
|
+
this.undoController = controller;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Copy selected nodes and their connecting edges to clipboard
|
|
35
|
+
*/
|
|
36
|
+
copySelected() {
|
|
37
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
if (this._host.selectedNodeIds.size === 0) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
const clipboardData = this.serializeSelection();
|
|
42
|
+
if (!clipboardData) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
// Try to write to system clipboard
|
|
46
|
+
try {
|
|
47
|
+
const jsonString = JSON.stringify(clipboardData, null, 2);
|
|
48
|
+
yield navigator.clipboard.writeText(jsonString);
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
this.handleError(error, 'copySelected: system clipboard unavailable, using internal clipboard');
|
|
52
|
+
}
|
|
53
|
+
// Always store in internal clipboard as fallback
|
|
54
|
+
this.internalClipboard = clipboardData;
|
|
55
|
+
// Dispatch event for UI feedback
|
|
56
|
+
this.dispatchEvent(new CustomEvent('clipboard-copy', {
|
|
57
|
+
detail: {
|
|
58
|
+
nodeCount: clipboardData.nodes.length,
|
|
59
|
+
edgeCount: clipboardData.edges.length,
|
|
60
|
+
},
|
|
61
|
+
bubbles: true,
|
|
62
|
+
composed: true,
|
|
63
|
+
}));
|
|
64
|
+
return true;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Cut selected nodes (copy + delete)
|
|
69
|
+
*/
|
|
70
|
+
cutSelected() {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
if (this._host.readonly)
|
|
73
|
+
return false;
|
|
74
|
+
const copied = yield this.copySelected();
|
|
75
|
+
if (copied) {
|
|
76
|
+
this.deleteSelected();
|
|
77
|
+
// Dispatch event for UI feedback
|
|
78
|
+
this.dispatchEvent(new CustomEvent('clipboard-cut', {
|
|
79
|
+
detail: { success: true },
|
|
80
|
+
bubbles: true,
|
|
81
|
+
composed: true,
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
return copied;
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Paste nodes from clipboard
|
|
89
|
+
* @param position Optional position to paste at. If not provided, uses mouse position or canvas center.
|
|
90
|
+
*/
|
|
91
|
+
pasteFromClipboard(position) {
|
|
92
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
93
|
+
var _a, _b, _c, _d;
|
|
94
|
+
if (this._host.readonly)
|
|
95
|
+
return false;
|
|
96
|
+
// Try to read from system clipboard first
|
|
97
|
+
let clipboardData = null;
|
|
98
|
+
try {
|
|
99
|
+
const text = yield navigator.clipboard.readText();
|
|
100
|
+
clipboardData = this.parseClipboardData(text);
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
this.handleError(error, 'pasteFromClipboard: system clipboard unavailable, using internal clipboard');
|
|
104
|
+
}
|
|
105
|
+
// Fall back to internal clipboard
|
|
106
|
+
if (!clipboardData && this.internalClipboard) {
|
|
107
|
+
clipboardData = structuredClone(this.internalClipboard);
|
|
108
|
+
}
|
|
109
|
+
if (!clipboardData || clipboardData.nodes.length === 0) {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
// Calculate paste position
|
|
113
|
+
const pastePosition = position || this.getPastePosition(clipboardData.copyOrigin);
|
|
114
|
+
// Generate new IDs for nodes and update edge references
|
|
115
|
+
const idMap = new Map();
|
|
116
|
+
const newNodes = [];
|
|
117
|
+
const newEdges = [];
|
|
118
|
+
// Clone nodes with new IDs and offset positions
|
|
119
|
+
for (const node of clipboardData.nodes) {
|
|
120
|
+
const newId = this.generateNodeId();
|
|
121
|
+
idMap.set(node.id, newId);
|
|
122
|
+
const offsetX = pastePosition.x - clipboardData.copyOrigin.x;
|
|
123
|
+
const offsetY = pastePosition.y - clipboardData.copyOrigin.y;
|
|
124
|
+
newNodes.push(Object.assign(Object.assign({}, structuredClone(node)), { id: newId, name: this.generateUniqueName(node.name), position: {
|
|
125
|
+
x: this.snapToGrid(node.position.x + offsetX, node.position.y + offsetY).x,
|
|
126
|
+
y: this.snapToGrid(node.position.x + offsetX, node.position.y + offsetY).y,
|
|
127
|
+
},
|
|
128
|
+
// Deep clone ports to avoid reference issues (with fallbacks for missing arrays)
|
|
129
|
+
ports: {
|
|
130
|
+
inputs: (((_a = node.ports) === null || _a === void 0 ? void 0 : _a.inputs) || []).map(p => (Object.assign({}, p))),
|
|
131
|
+
configs: (_c = (_b = node.ports) === null || _b === void 0 ? void 0 : _b.configs) === null || _c === void 0 ? void 0 : _c.map(p => (Object.assign({}, p))),
|
|
132
|
+
outputs: (((_d = node.ports) === null || _d === void 0 ? void 0 : _d.outputs) || []).map(p => (Object.assign({}, p))),
|
|
133
|
+
} }));
|
|
134
|
+
}
|
|
135
|
+
// Clone edges with updated node references
|
|
136
|
+
for (const edge of clipboardData.edges) {
|
|
137
|
+
const newSourceId = idMap.get(edge.sourceNodeId);
|
|
138
|
+
const newTargetId = idMap.get(edge.targetNodeId);
|
|
139
|
+
// Only include edge if both nodes are in the paste set
|
|
140
|
+
if (newSourceId && newTargetId) {
|
|
141
|
+
newEdges.push(Object.assign(Object.assign({}, structuredClone(edge)), { id: this.generateEdgeId(), sourceNodeId: newSourceId, targetNodeId: newTargetId }));
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// Select the pasted nodes first (before workflow update triggers re-render)
|
|
145
|
+
this._host.selectedNodeIds = new Set(newNodes.map(n => n.id));
|
|
146
|
+
this._host.selectedEdgeIds = new Set(newEdges.map(e => e.id));
|
|
147
|
+
// Record for undo before making changes
|
|
148
|
+
if (this.undoController) {
|
|
149
|
+
this.undoController.recordNodesPasted(newNodes, newEdges);
|
|
150
|
+
}
|
|
151
|
+
// Add to workflow
|
|
152
|
+
this._host.setWorkflow(Object.assign(Object.assign({}, this._host.workflow), { nodes: [...this._host.workflow.nodes, ...newNodes], edges: [...this._host.workflow.edges, ...newEdges] }));
|
|
153
|
+
this._host.dispatchWorkflowChanged();
|
|
154
|
+
// Ensure selection persists after workflow update
|
|
155
|
+
yield this._host.updateComplete;
|
|
156
|
+
this._host.selectedNodeIds = new Set(newNodes.map(n => n.id));
|
|
157
|
+
this._host.selectedEdgeIds = new Set(newEdges.map(e => e.id));
|
|
158
|
+
this._host.requestUpdate();
|
|
159
|
+
// Dispatch event for UI feedback
|
|
160
|
+
this.dispatchEvent(new CustomEvent('clipboard-paste', {
|
|
161
|
+
detail: {
|
|
162
|
+
nodeCount: newNodes.length,
|
|
163
|
+
edgeCount: newEdges.length,
|
|
164
|
+
},
|
|
165
|
+
bubbles: true,
|
|
166
|
+
composed: true,
|
|
167
|
+
}));
|
|
168
|
+
return true;
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Check if there's content available to paste
|
|
173
|
+
*/
|
|
174
|
+
hasClipboardContent() {
|
|
175
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
176
|
+
if (this.internalClipboard) {
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
try {
|
|
180
|
+
const text = yield navigator.clipboard.readText();
|
|
181
|
+
return this.parseClipboardData(text) !== null;
|
|
182
|
+
}
|
|
183
|
+
catch (_a) {
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Serialize the current selection to clipboard data format
|
|
190
|
+
*/
|
|
191
|
+
serializeSelection() {
|
|
192
|
+
const selectedNodes = this._host.workflow.nodes.filter(n => this._host.selectedNodeIds.has(n.id));
|
|
193
|
+
if (selectedNodes.length === 0) {
|
|
194
|
+
return null;
|
|
195
|
+
}
|
|
196
|
+
// Get edges that connect selected nodes (both ends must be selected)
|
|
197
|
+
const selectedEdges = this._host.workflow.edges.filter(e => this._host.selectedNodeIds.has(e.sourceNodeId) &&
|
|
198
|
+
this._host.selectedNodeIds.has(e.targetNodeId));
|
|
199
|
+
// Calculate the center of the selection (for positioning on paste)
|
|
200
|
+
const copyOrigin = this.calculateSelectionCenter(selectedNodes);
|
|
201
|
+
return {
|
|
202
|
+
type: 'nuraly-workflow-nodes',
|
|
203
|
+
version: '1.0',
|
|
204
|
+
nodes: structuredClone(selectedNodes),
|
|
205
|
+
edges: structuredClone(selectedEdges),
|
|
206
|
+
copyOrigin,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Parse clipboard text into ClipboardData
|
|
211
|
+
* Supports both Nuraly format and raw workflow JSON
|
|
212
|
+
*/
|
|
213
|
+
parseClipboardData(text) {
|
|
214
|
+
if (!text || typeof text !== 'string') {
|
|
215
|
+
return null;
|
|
216
|
+
}
|
|
217
|
+
try {
|
|
218
|
+
const json = JSON.parse(text);
|
|
219
|
+
// Check for Nuraly clipboard format
|
|
220
|
+
if (json.type === 'nuraly-workflow-nodes' && Array.isArray(json.nodes)) {
|
|
221
|
+
return json;
|
|
222
|
+
}
|
|
223
|
+
// Support pasting a full workflow
|
|
224
|
+
if (json.nodes && Array.isArray(json.nodes)) {
|
|
225
|
+
return {
|
|
226
|
+
type: 'nuraly-workflow-nodes',
|
|
227
|
+
version: '1.0',
|
|
228
|
+
nodes: json.nodes,
|
|
229
|
+
edges: json.edges || [],
|
|
230
|
+
copyOrigin: this.calculateSelectionCenter(json.nodes),
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
// Support pasting a single node
|
|
234
|
+
if (json.type && json.position && json.ports) {
|
|
235
|
+
return {
|
|
236
|
+
type: 'nuraly-workflow-nodes',
|
|
237
|
+
version: '1.0',
|
|
238
|
+
nodes: [json],
|
|
239
|
+
edges: [],
|
|
240
|
+
copyOrigin: json.position,
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
catch (_a) {
|
|
245
|
+
// Not valid JSON, ignore
|
|
246
|
+
}
|
|
247
|
+
return null;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Calculate the center position of a selection of nodes
|
|
251
|
+
*/
|
|
252
|
+
calculateSelectionCenter(nodes) {
|
|
253
|
+
if (nodes.length === 0) {
|
|
254
|
+
return { x: 0, y: 0 };
|
|
255
|
+
}
|
|
256
|
+
let minX = Infinity;
|
|
257
|
+
let minY = Infinity;
|
|
258
|
+
let maxX = -Infinity;
|
|
259
|
+
let maxY = -Infinity;
|
|
260
|
+
for (const node of nodes) {
|
|
261
|
+
minX = Math.min(minX, node.position.x);
|
|
262
|
+
minY = Math.min(minY, node.position.y);
|
|
263
|
+
maxX = Math.max(maxX, node.position.x + 200); // estimated node width
|
|
264
|
+
maxY = Math.max(maxY, node.position.y + 80); // estimated node height
|
|
265
|
+
}
|
|
266
|
+
return {
|
|
267
|
+
x: (minX + maxX) / 2,
|
|
268
|
+
y: (minY + maxY) / 2,
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Get the position to paste at
|
|
273
|
+
* Uses mouse position if available, otherwise offsets from copy origin
|
|
274
|
+
*/
|
|
275
|
+
getPastePosition(copyOrigin) {
|
|
276
|
+
// If we have a last mouse position, use it
|
|
277
|
+
if (this._host.lastMousePosition) {
|
|
278
|
+
return this._host.lastMousePosition;
|
|
279
|
+
}
|
|
280
|
+
// Otherwise, offset from the copy origin
|
|
281
|
+
return {
|
|
282
|
+
x: copyOrigin.x + 40,
|
|
283
|
+
y: copyOrigin.y + 40,
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Delete selected nodes and their connected edges
|
|
288
|
+
*/
|
|
289
|
+
deleteSelected() {
|
|
290
|
+
const nodeIdsToDelete = this._host.selectedNodeIds;
|
|
291
|
+
const edgeIdsToDelete = this._host.selectedEdgeIds;
|
|
292
|
+
this._host.setWorkflow(Object.assign(Object.assign({}, this._host.workflow), { nodes: this._host.workflow.nodes.filter(n => !nodeIdsToDelete.has(n.id)), edges: this._host.workflow.edges.filter(e => !edgeIdsToDelete.has(e.id) &&
|
|
293
|
+
!nodeIdsToDelete.has(e.sourceNodeId) &&
|
|
294
|
+
!nodeIdsToDelete.has(e.targetNodeId)) }));
|
|
295
|
+
this._host.selectedNodeIds = new Set();
|
|
296
|
+
this._host.selectedEdgeIds = new Set();
|
|
297
|
+
this._host.dispatchWorkflowChanged();
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
//# sourceMappingURL=clipboard.controller.js.map
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2024 Nuraly, Laabidi Aymen
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { BaseCanvasController } from './base.controller.js';
|
|
7
|
+
import type { CanvasOperationType, CollaborationState, CollaborationUser, RemoteCursor } from '../interfaces/collaboration.interface.js';
|
|
8
|
+
/**
|
|
9
|
+
* CollaborationController manages real-time collaboration via Socket.IO.
|
|
10
|
+
* Connects to the existing Canvas Gateway at /socket.io/presence.
|
|
11
|
+
*/
|
|
12
|
+
export declare class CollaborationController extends BaseCanvasController {
|
|
13
|
+
private socket;
|
|
14
|
+
private staleCursorInterval;
|
|
15
|
+
private lastCursorBroadcast;
|
|
16
|
+
private cursorThrottleTimer;
|
|
17
|
+
private state;
|
|
18
|
+
private opCounter;
|
|
19
|
+
connect(canvasId: string, canvasType?: 'WORKFLOW' | 'WHITEBOARD'): void;
|
|
20
|
+
disconnect(): void;
|
|
21
|
+
hostDisconnected(): void;
|
|
22
|
+
private registerEventHandlers;
|
|
23
|
+
broadcastCursorMove(x: number, y: number): void;
|
|
24
|
+
private emitCursorMove;
|
|
25
|
+
broadcastSelectionChange(elementIds: string[]): void;
|
|
26
|
+
broadcastTypingStart(elementId: string): void;
|
|
27
|
+
broadcastTypingStop(elementId: string): void;
|
|
28
|
+
broadcastOperation(type: CanvasOperationType, elementId: string, data: Record<string, unknown>): void;
|
|
29
|
+
private handleUsersSync;
|
|
30
|
+
private handleUserJoined;
|
|
31
|
+
private handleUserLeft;
|
|
32
|
+
private handleCursorUpdate;
|
|
33
|
+
private handleSelectionUpdate;
|
|
34
|
+
private handleTypingIndicator;
|
|
35
|
+
private handleOperationReceived;
|
|
36
|
+
private handleOperationAck;
|
|
37
|
+
private applyRemoteOperation;
|
|
38
|
+
getState(): CollaborationState;
|
|
39
|
+
isConnected(): boolean;
|
|
40
|
+
getUsers(): CollaborationUser[];
|
|
41
|
+
getCursors(): RemoteCursor[];
|
|
42
|
+
isElementSelectedByRemote(elementId: string): {
|
|
43
|
+
userId: string;
|
|
44
|
+
color: string;
|
|
45
|
+
username: string;
|
|
46
|
+
} | null;
|
|
47
|
+
isElementBeingTypedByRemote(elementId: string): {
|
|
48
|
+
userId: string;
|
|
49
|
+
username: string;
|
|
50
|
+
color: string;
|
|
51
|
+
} | null;
|
|
52
|
+
private cleanStaleCursors;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=collaboration.controller.d.ts.map
|