@knime/product-features 1.1.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/dist/dataTransfer.css +27 -27
- package/dist/dataTransfer.js +32 -139
- package/dist/dataTransfer.js.map +1 -1
- package/dist/index-B3ql6hun.js +2695 -0
- package/dist/index-B3ql6hun.js.map +1 -0
- package/dist/nodes.css +119 -0
- package/dist/nodes.js +270 -101
- package/dist/nodes.js.map +1 -1
- package/dist/rfcErrors.css +3 -3
- package/dist/rfcErrors.js +2 -2
- package/dist/rfcErrors.js.map +1 -1
- package/dist/src/dataTransfer/download/ui/types.d.ts +5 -0
- package/dist/src/dataTransfer/download/ui/types.d.ts.map +1 -1
- package/dist/src/dataTransfer/shared/ui/CollapsiblePanel/CollapsiblePanel.vue.d.ts.map +1 -1
- package/dist/src/dataTransfer/shared/ui/CollapsiblePanel/index.d.ts +1 -1
- package/dist/src/dataTransfer/shared/ui/CollapsiblePanel/index.d.ts.map +1 -1
- package/dist/src/dataTransfer/shared/ui/CollapsiblePanel/types.d.ts +1 -1
- package/dist/src/dataTransfer/shared/ui/CollapsiblePanel/types.d.ts.map +1 -1
- package/dist/src/dataTransfer/shared/ui/ProgressItem/ProgressItem.vue.d.ts.map +1 -1
- package/dist/src/dataTransfer/shared/ui/ProgressItem/index.d.ts +1 -1
- package/dist/src/dataTransfer/shared/ui/ProgressItem/index.d.ts.map +1 -1
- package/dist/src/dataTransfer/shared/ui/ProgressItem/types.d.ts +1 -1
- package/dist/src/dataTransfer/shared/ui/ProgressItem/types.d.ts.map +1 -1
- package/dist/src/dataTransfer/upload/ui/types.d.ts +10 -0
- package/dist/src/dataTransfer/upload/ui/types.d.ts.map +1 -1
- package/dist/src/nodes/NodeDescriptionTabs/types.d.ts +11 -0
- package/dist/src/nodes/NodeDescriptionTabs/types.d.ts.map +1 -1
- package/dist/src/nodes/NodePreview/NodePreview.vue.d.ts +4 -0
- package/dist/src/nodes/NodePreview/NodePreview.vue.d.ts.map +1 -0
- package/dist/src/nodes/NodePreview/SVGNodeTorso.vue.d.ts +4 -0
- package/dist/src/nodes/NodePreview/SVGNodeTorso.vue.d.ts.map +1 -0
- package/dist/src/nodes/NodePreview/constants.d.ts +2 -0
- package/dist/src/nodes/NodePreview/constants.d.ts.map +1 -0
- package/dist/src/nodes/NodePreview/enums.d.ts +27 -0
- package/dist/src/nodes/NodePreview/enums.d.ts.map +1 -0
- package/dist/src/nodes/NodePreview/index.d.ts +3 -0
- package/dist/src/nodes/NodePreview/index.d.ts.map +1 -0
- package/dist/src/nodes/NodePreview/types.d.ts +68 -0
- package/dist/src/nodes/NodePreview/types.d.ts.map +1 -0
- package/dist/src/nodes/PortIcon/PortIcon.vue.d.ts.map +1 -1
- package/dist/src/nodes/PortIcon/SVGPortIcon.vue.d.ts +4 -0
- package/dist/src/nodes/PortIcon/SVGPortIcon.vue.d.ts.map +1 -0
- package/dist/src/nodes/PortIcon/constants.d.ts +3 -0
- package/dist/src/nodes/PortIcon/constants.d.ts.map +1 -0
- package/dist/src/nodes/index.d.ts +2 -0
- package/dist/src/nodes/index.d.ts.map +1 -1
- package/dist/src/rfcErrors/RFCErrorToastTemplate.vue.d.ts +9 -0
- package/dist/src/rfcErrors/RFCErrorToastTemplate.vue.d.ts.map +1 -1
- package/dist/src/rfcErrors/types.d.ts +5 -0
- package/dist/src/rfcErrors/types.d.ts.map +1 -1
- package/dist/src/toasts/Toast/types.d.ts +6 -0
- package/dist/src/toasts/Toast/types.d.ts.map +1 -1
- package/dist/src/toasts/ToastStack/types.d.ts +2 -0
- package/dist/src/toasts/ToastStack/types.d.ts.map +1 -1
- package/dist/src/versions/CreateVersionForm/types.d.ts +1 -0
- package/dist/src/versions/CreateVersionForm/types.d.ts.map +1 -1
- package/dist/src/versions/VersionHistory/HistoryEventFooter.vue.d.ts.map +1 -1
- package/dist/src/versions/VersionHistory/VersionLabel.vue.d.ts +10 -6
- package/dist/src/versions/VersionHistory/VersionLabel.vue.d.ts.map +1 -1
- package/dist/src/versions/VersionHistory/types.d.ts +36 -0
- package/dist/src/versions/VersionHistory/types.d.ts.map +1 -1
- package/dist/toasts.css +13 -13
- package/dist/toasts.js +7 -14
- package/dist/toasts.js.map +1 -1
- package/dist/versions.css +4 -4
- package/dist/versions.js +14 -11
- package/dist/versions.js.map +1 -1
- package/package.json +11 -13
- package/dist/format-ra_vlnN7.js +0 -238
- package/dist/format-ra_vlnN7.js.map +0 -1
package/dist/nodes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.js","sources":["../src/nodes/NodeDescriptionTabs/OptionsTab.vue","../src/nodes/PortIcon/enums.ts","../src/nodes/PortIcon/PortIcon.vue","../src/nodes/NodeDescriptionTabs/PortTemplateInfo.vue","../src/nodes/NodeDescriptionTabs/PortGroup.vue","../src/nodes/NodeDescriptionTabs/PortsTab.vue","../src/nodes/NodeDescriptionTabs/ViewsTab.vue","../src/nodes/NodeDescriptionTabs/NodeDescriptionTabs.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\n\nimport {\n KdsAccordion,\n type KdsAccordionItem,\n KdsDescription,\n} from \"@knime/kds-components\";\n\nimport type { NodeDescriptionOptions } from \"./types\";\n\ntype Props = {\n options: Array<NodeDescriptionOptions>;\n renderAsHtml?: boolean;\n};\n\nconst { options, renderAsHtml } = defineProps<Props>();\n\ntype AccordionItemWithContent = KdsAccordionItem & {\n description?: string;\n content: NodeDescriptionOptions[\"fields\"];\n};\n\nconst accordionItems = computed<AccordionItemWithContent[]>(() => {\n return options.map(\n (option, index) =>\n ({\n id: `section-${index}`,\n headline: option.sectionName,\n description: option.sectionDescription,\n content: option.fields,\n }) satisfies AccordionItemWithContent,\n );\n});\n\nconst modelValue = ref<string[]>([]);\n</script>\n\n<template>\n <div>\n <KdsAccordion\n v-if=\"options.length > 1\"\n v-model=\"modelValue\"\n :items=\"accordionItems\"\n >\n <template v-for=\"item in accordionItems\" :key=\"item.id\" #[item.id]>\n <KdsDescription\n v-if=\"item.description\"\n :text=\"item.description\"\n :render-as-html=\"renderAsHtml\"\n class=\"section-description\"\n />\n\n <template v-for=\"field in item.content\" :key=\"field.name\">\n <div class=\"option-content\">\n <span class=\"name\">\n {{ field.name }} {{ field.optional ? \"(optional)\" : \"\" }}\n </span>\n\n <KdsDescription\n :text=\"field.description\"\n :render-as-html=\"renderAsHtml\"\n />\n </div>\n </template>\n </template>\n </KdsAccordion>\n\n <div v-if=\"options.length === 1\" class=\"single-option-wrapper\">\n <KdsDescription\n v-if=\"options[0].sectionDescription\"\n :text=\"options[0].sectionDescription\"\n :render-as-html=\"renderAsHtml\"\n class=\"section-description\"\n />\n\n <template v-for=\"field in options[0].fields\" :key=\"field.name\">\n <div class=\"option-content\">\n <span class=\"name\">\n {{ field.name }} {{ field.optional ? \"(optional)\" : \"\" }}\n </span>\n\n <KdsDescription\n :text=\"field.description\"\n :render-as-html=\"renderAsHtml\"\n />\n </div>\n </template>\n </div>\n </div>\n</template>\n\n<style scoped>\n.section-description {\n margin-bottom: var(--kds-spacing-container-1x);\n}\n\n.single-option-wrapper {\n display: flex;\n flex-direction: column;\n padding: var(--kds-spacing-container-1x);\n background: var(--kds-color-surface-muted);\n border-radius: var(--kds-border-radius-container-0-37x);\n}\n\n.option-content {\n & .name {\n font: var(--kds-font-base-title-small-strong);\n }\n}\n</style>\n","export const PortType = Object.freeze({\n TABLE: \"table\",\n FLOW_VARIABLE: \"flowVariable\",\n OTHER: \"other\",\n GENERIC: \"generic\",\n} as const);\n\nexport const PortTypes = Object.freeze(Object.values(PortType));\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport { PortType as PortTypeEnum } from \"./enums\";\nimport type { PortIconProps } from \"./types\";\n\nconst portSize = 9; // 9px\nconst strokeWidth = 1.4; // 1.4px\n\n// TODO: KDS-871 Use tokens once they're available in JS code\nconst colors = {\n [PortTypeEnum.TABLE]: \"hsl(0, 3%, 12%)\",\n [PortTypeEnum.FLOW_VARIABLE]: \"hsl(0, 100%, 64.7%)\",\n} as const;\n\nconst { filled = true, ...props } = defineProps<PortIconProps>();\n\nconst trianglePath = computed(() => {\n // draw triangle around middle point\n let [x1, y1, x2, y3] = [\n -portSize / 2,\n -portSize / 2,\n portSize / 2,\n portSize / 2,\n ];\n\n // y and d are chosen so the triangle (including strokeWidth) fits precisely in the 9x9 port\n /* eslint-disable no-magic-numbers */\n const d = Math.sqrt(5) / 2;\n const y = d / 2 + 1 / 4;\n /* eslint-enable no-magic-numbers */\n\n // move points towards the center of the triangle according to strokeWidth\n x1 += strokeWidth / 2;\n x2 -= strokeWidth * d;\n y1 += strokeWidth * y;\n y3 -= strokeWidth * y;\n\n // draw triangle clock-wise\n return `${x1},${y1} ${x2},${0} ${x1},${y3}`;\n});\n\nconst viewBox = computed(() =>\n [-portSize / 2, -portSize / 2, portSize, portSize].join(\" \"),\n);\n\nconst portColor = computed(() => {\n if (props.type === \"table\" || props.type === \"flowVariable\") {\n return colors[props.type];\n }\n\n return props.color;\n});\n\nconst fillColor = computed(() => {\n return filled ? portColor.value : \"transparent\";\n});\n</script>\n\n<template>\n <svg :viewBox=\"viewBox\" :width=\"portSize\" :height=\"portSize\">\n <!-- data table port -->\n <polygon\n v-if=\"type === 'table'\"\n :points=\"trianglePath\"\n :fill=\"fillColor\"\n :stroke=\"portColor\"\n :stroke-width=\"strokeWidth\"\n v-bind=\"$attrs\"\n />\n <!-- flow variable port -->\n <circle\n v-else-if=\"type === 'flowVariable'\"\n :r=\"portSize / 2 - strokeWidth / 2\"\n :fill=\"fillColor\"\n :stroke=\"portColor\"\n :stroke-width=\"strokeWidth\"\n v-bind=\"$attrs\"\n />\n <!-- other port -->\n <rect\n v-else\n :width=\"portSize - strokeWidth\"\n :height=\"portSize - strokeWidth\"\n :x=\"-portSize / 2 + strokeWidth / 2\"\n :y=\"-portSize / 2 + strokeWidth / 2\"\n :fill=\"fillColor\"\n :stroke=\"portColor\"\n :stroke-width=\"strokeWidth\"\n v-bind=\"$attrs\"\n />\n </svg>\n</template>\n","<script setup lang=\"ts\">\nimport { KdsDescription } from \"@knime/kds-components\";\n\nimport PortIcon from \"../PortIcon/PortIcon.vue\";\n\nimport type { PortTemplate } from \"./types\";\n\ntype Props = {\n port: PortTemplate;\n showDescription: boolean;\n};\n\ndefineProps<Props>();\n</script>\n\n<template>\n <div class=\"wrapper\">\n <div class=\"icon\">\n <PortIcon\n :type=\"port.type\"\n :color=\"port.color\"\n :filled=\"!port.optional\"\n />\n </div>\n <span class=\"title\">Type: {{ port.typeDisplayName }}</span>\n\n <span class=\"name title\">Name: {{ port.name }}</span>\n\n <KdsDescription\n v-if=\"showDescription\"\n class=\"description\"\n :text=\"port.description\"\n render-as-html\n />\n </div>\n</template>\n\n<style scoped>\n.wrapper {\n display: grid;\n grid-template-columns: var(--kds-spacing-container-0-5x) 1fr;\n gap: var(--kds-spacing-container-0-5x);\n}\n\n.icon {\n display: flex;\n align-items: center;\n}\n\n.name,\n.description {\n grid-column: 2;\n}\n\n.title {\n font: var(--kds-font-base-title-small-strong);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { KdsDescription } from \"@knime/kds-components\";\n\nimport PortTemplateInfo from \"./PortTemplateInfo.vue\";\nimport type { PortTemplate } from \"./types\";\n\ntype Props = {\n name: string;\n description?: string;\n ports: Array<PortTemplate>;\n isDynamicGroup?: boolean;\n};\n\ndefineProps<Props>();\n</script>\n\n<template>\n <div class=\"port-group-card\">\n <span class=\"group-name\">{{ name }}</span>\n\n <KdsDescription v-if=\"description\" :text=\"description\" render-as-html />\n\n <template v-for=\"port in ports\" :key=\"port.id\">\n <PortTemplateInfo :port=\"port\" :show-description=\"!isDynamicGroup\" />\n </template>\n </div>\n</template>\n\n<style scoped>\n.port-group-card {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-75x);\n padding: var(--kds-spacing-container-1x);\n background: var(--kds-color-surface-muted);\n border-radius: var(--kds-border-radius-container-0-37x);\n\n & .group-name {\n font: var(--kds-font-base-title-small-strong);\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport PortGroup from \"./PortGroup.vue\";\nimport type { DynamicPortGroup, PortTemplate } from \"./types\";\n\ntype Props = {\n inputPorts: Array<PortTemplate>;\n outputPorts: Array<PortTemplate>;\n dynamicInputGroups?: Array<DynamicPortGroup>;\n dynamicOutputGroups?: Array<DynamicPortGroup>;\n};\n\nconst { dynamicInputGroups = [], dynamicOutputGroups = [] } =\n defineProps<Props>();\n</script>\n\n<template>\n <div class=\"port-list\">\n <PortGroup\n v-if=\"inputPorts.length > 0\"\n name=\"Input ports\"\n :ports=\"inputPorts\"\n />\n\n <PortGroup\n v-if=\"outputPorts.length > 0\"\n name=\"Output ports\"\n :ports=\"outputPorts\"\n />\n\n <template v-for=\"group in dynamicInputGroups\" :key=\"group.name\">\n <PortGroup\n v-if=\"group.types.length > 0\"\n :name=\"group.name + ' (Dynamic Inport)'\"\n :description=\"group.description\"\n :ports=\"group.types\"\n is-dynamic-group\n />\n </template>\n\n <template v-for=\"group in dynamicOutputGroups\" :key=\"group.name\">\n <PortGroup\n v-if=\"group.types.length > 0\"\n :name=\"group.name + ' (Dynamic Outport)'\"\n :description=\"group.description\"\n :ports=\"group.types\"\n is-dynamic-group\n />\n </template>\n </div>\n</template>\n\n<style scoped>\n.port-list {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-5x);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport { KdsDescription } from \"@knime/kds-components\";\n\nimport type { NodeDescriptionView } from \"./types\";\n\ntype Props = {\n views: Array<NodeDescriptionView>;\n};\n\nconst props = defineProps<Props>();\n\nconst viewsWithId = computed<Array<NodeDescriptionView & { id: string }>>(() =>\n props.views.map((view, index) => {\n const id = `view-${index}`;\n return { id, ...view };\n }),\n);\n</script>\n\n<template>\n <div v-for=\"view in viewsWithId\" :key=\"view.id\" class=\"card-wrapper\">\n <span class=\"name\">{{ view.name }}</span>\n <KdsDescription\n v-if=\"view.description\"\n :text=\"view.description\"\n render-as-html\n />\n </div>\n</template>\n\n<style scoped>\n.card-wrapper {\n display: flex;\n flex-direction: column;\n padding: var(--kds-spacing-container-1x);\n margin-bottom: var(--kds-spacing-container-0-25x);\n background: var(--kds-color-surface-muted);\n border-radius: var(--kds-border-radius-container-0-37x);\n}\n\n.name {\n font: var(--kds-font-base-title-small-strong);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\n\nimport {\n KdsEmptyState,\n KdsTabBar,\n type KdsTabBarItem,\n} from \"@knime/kds-components\";\n\nimport OptionsTab from \"./OptionsTab.vue\";\nimport PortsTab from \"./PortsTab.vue\";\nimport ViewsTab from \"./ViewsTab.vue\";\nimport type { NodeDescriptionTabsProps } from \"./types\";\n\nconst {\n inputPorts = [],\n outputPorts = [],\n dynamicInputPorts = [],\n dynamicOutputPorts = [],\n optionsData = [],\n viewsData = [],\n emptyText = \"No ports, options or views available.\",\n renderAsHtml = false,\n tabBarFullWidth = false,\n} = defineProps<NodeDescriptionTabsProps>();\n\nconst TAB_IDS = {\n PORTS: \"ports\",\n OPTIONS: \"options\",\n VIEW: \"view\",\n} as const;\n\ntype TabIds = (typeof TAB_IDS)[keyof typeof TAB_IDS];\n\nconst activeTab = ref<TabIds | undefined>();\n\nconst hasPorts = computed(\n () =>\n inputPorts.length > 0 ||\n outputPorts.length > 0 ||\n dynamicInputPorts.length > 0 ||\n dynamicOutputPorts.length > 0,\n);\n\nconst tabs = computed<KdsTabBarItem[]>(() => [\n {\n id: \"tab-ports\",\n value: TAB_IDS.PORTS,\n label: \"Ports\",\n panelId: \"panel-ports\",\n accessory: {\n type: \"icon\",\n name: \"connection\",\n },\n disabled: !hasPorts.value,\n },\n {\n id: \"tab-options\",\n value: TAB_IDS.OPTIONS,\n label: \"Options\",\n panelId: \"panel-options\",\n accessory: {\n type: \"icon\",\n name: \"parameter\",\n },\n disabled: optionsData.length < 1,\n },\n {\n id: \"tab-view\",\n value: TAB_IDS.VIEW,\n label: \"View\",\n panelId: \"panel-view\",\n accessory: {\n type: \"icon\",\n name: \"eye\",\n },\n disabled: viewsData.length < 1,\n },\n]);\n</script>\n\n<template>\n <div>\n <KdsTabBar\n v-model=\"activeTab\"\n :full-width=\"tabBarFullWidth\"\n size=\"small\"\n :tabs=\"tabs\"\n />\n\n <div class=\"content\">\n <PortsTab\n v-if=\"activeTab === TAB_IDS.PORTS\"\n id=\"panel-ports\"\n role=\"tabpanel\"\n aria-labelledby=\"tab-ports\"\n tabindex=\"0\"\n :input-ports=\"inputPorts\"\n :output-ports=\"outputPorts\"\n :dynamic-input-groups=\"dynamicInputPorts\"\n :dynamic-output-groups=\"dynamicOutputPorts\"\n />\n\n <OptionsTab\n v-if=\"activeTab === TAB_IDS.OPTIONS\"\n id=\"panel-options\"\n role=\"tabpanel\"\n aria-labelledby=\"tab-options\"\n tabindex=\"0\"\n :options=\"optionsData\"\n :render-as-html=\"renderAsHtml\"\n />\n\n <ViewsTab\n v-if=\"activeTab === TAB_IDS.VIEW\"\n id=\"panel-view\"\n role=\"tabpanel\"\n aria-labelledby=\"tab-view\"\n tabindex=\"0\"\n :views=\"viewsData\"\n />\n\n <KdsEmptyState\n v-if=\"!activeTab\"\n :headline=\"emptyText\"\n class=\"empty-state\"\n />\n </div>\n </div>\n</template>\n\n<style scoped>\n.content {\n padding: var(--kds-spacing-container-0-5x) 0;\n color: var(--kds-color-text-and-icon-neutral);\n}\n\n.empty-state {\n margin: 0 auto;\n}\n</style>\n"],"names":["_createElementBlock","_createBlock","_unref","_renderList","_openBlock","_Fragment","_createElementVNode","_hoisted_1","_toDisplayString","_createVNode","_hoisted_2","_hoisted_3","PortTypeEnum","_createPropsRestProxy","_mergeProps","$attrs","_hoisted_4","PortIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nodes.js","sources":["../src/nodes/NodeDescriptionTabs/OptionsTab.vue","../src/nodes/PortIcon/constants.ts","../src/nodes/PortIcon/SVGPortIcon.vue","../src/nodes/PortIcon/PortIcon.vue","../src/nodes/NodeDescriptionTabs/PortTemplateInfo.vue","../src/nodes/NodeDescriptionTabs/PortGroup.vue","../src/nodes/NodeDescriptionTabs/PortsTab.vue","../src/nodes/NodeDescriptionTabs/ViewsTab.vue","../src/nodes/NodeDescriptionTabs/NodeDescriptionTabs.vue","../src/nodes/NodePreview/constants.ts","../src/nodes/NodePreview/SVGNodeTorso.vue","../src/nodes/NodePreview/NodePreview.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\n\nimport {\n KdsAccordion,\n type KdsAccordionItem,\n KdsDescription,\n} from \"@knime/kds-components\";\n\nimport type { NodeDescriptionOptions } from \"./types\";\n\ntype Props = {\n options: Array<NodeDescriptionOptions>;\n renderAsHtml?: boolean;\n};\n\nconst { options, renderAsHtml } = defineProps<Props>();\n\ntype AccordionItemWithContent = KdsAccordionItem & {\n description?: string;\n content: NodeDescriptionOptions[\"fields\"];\n};\n\nconst accordionItems = computed<AccordionItemWithContent[]>(() => {\n return options.map(\n (option, index) =>\n ({\n id: `section-${index}`,\n headline: option.sectionName,\n description: option.sectionDescription,\n content: option.fields,\n }) satisfies AccordionItemWithContent,\n );\n});\n\nconst modelValue = ref<string[]>([]);\n</script>\n\n<template>\n <div>\n <KdsAccordion\n v-if=\"options.length > 1\"\n v-model=\"modelValue\"\n :items=\"accordionItems\"\n >\n <template v-for=\"item in accordionItems\" :key=\"item.id\" #[item.id]>\n <KdsDescription\n v-if=\"item.description\"\n :text=\"item.description\"\n :render-as-html=\"renderAsHtml\"\n class=\"section-description\"\n />\n\n <template v-for=\"field in item.content\" :key=\"field.name\">\n <div class=\"option-content\">\n <span class=\"name\">\n {{ field.name }} {{ field.optional ? \"(optional)\" : \"\" }}\n </span>\n\n <KdsDescription\n :text=\"field.description\"\n :render-as-html=\"renderAsHtml\"\n />\n </div>\n </template>\n </template>\n </KdsAccordion>\n\n <div v-if=\"options.length === 1\" class=\"single-option-wrapper\">\n <KdsDescription\n v-if=\"options[0].sectionDescription\"\n :text=\"options[0].sectionDescription\"\n :render-as-html=\"renderAsHtml\"\n class=\"section-description\"\n />\n\n <template v-for=\"field in options[0].fields\" :key=\"field.name\">\n <div class=\"option-content\">\n <span class=\"name\">\n {{ field.name }} {{ field.optional ? \"(optional)\" : \"\" }}\n </span>\n\n <KdsDescription\n :text=\"field.description\"\n :render-as-html=\"renderAsHtml\"\n />\n </div>\n </template>\n </div>\n </div>\n</template>\n\n<style scoped>\n.section-description {\n margin-bottom: var(--kds-spacing-container-1x);\n}\n\n.single-option-wrapper {\n display: flex;\n flex-direction: column;\n padding: var(--kds-spacing-container-1x);\n background: var(--kds-color-surface-muted);\n border-radius: var(--kds-border-radius-container-0-37x);\n}\n\n.option-content {\n & .name {\n font: var(--kds-font-base-title-small-strong);\n }\n}\n</style>\n","export const PORT_SIZE = 8; // px\nexport const PORT_STROKE_WIDTH = 1.4; // px\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport { PORT_SIZE, PORT_STROKE_WIDTH } from \"./constants\";\nimport type { PortIconProps } from \"./types\";\n\nconst { filled = true, type, color } = defineProps<PortIconProps>();\n\nconst trianglePath = computed(() => {\n // draw triangle around middle point\n let [x1, y1, x2, y3] = [\n -PORT_SIZE / 2,\n -PORT_SIZE / 2,\n PORT_SIZE / 2,\n PORT_SIZE / 2,\n ];\n\n // y and d are chosen so the triangle (including strokeWidth) fits precisely in the port (portSize x portSize)\n /* eslint-disable no-magic-numbers */\n const d = Math.sqrt(5) / 2;\n const y = d / 2 + 1 / 4;\n /* eslint-enable no-magic-numbers */\n\n // move points towards the center of the triangle according to strokeWidth\n x1 += PORT_STROKE_WIDTH / 2;\n x2 -= PORT_STROKE_WIDTH * d;\n y1 += PORT_STROKE_WIDTH * y;\n y3 -= PORT_STROKE_WIDTH * y;\n\n // draw triangle clock-wise\n return `${x1},${y1} ${x2},${0} ${x1},${y3}`;\n});\n</script>\n\n<template>\n <!-- data table port -->\n <polygon\n v-if=\"type === 'table'\"\n :points=\"trianglePath\"\n :class=\"{ filled }\"\n :data-type=\"type\"\n :stroke-width=\"PORT_STROKE_WIDTH\"\n v-bind=\"$attrs\"\n />\n\n <!-- flow variable port -->\n <circle\n v-else-if=\"type === 'flowVariable'\"\n :r=\"PORT_SIZE / 2 - PORT_STROKE_WIDTH / 2\"\n :class=\"{ filled }\"\n :data-type=\"type\"\n :stroke-width=\"PORT_STROKE_WIDTH\"\n v-bind=\"$attrs\"\n />\n\n <!-- other port -->\n <rect\n v-else\n :width=\"PORT_SIZE - PORT_STROKE_WIDTH\"\n :height=\"PORT_SIZE - PORT_STROKE_WIDTH\"\n :x=\"-PORT_SIZE / 2 + PORT_STROKE_WIDTH / 2\"\n :y=\"-PORT_SIZE / 2 + PORT_STROKE_WIDTH / 2\"\n :class=\"{ filled }\"\n :data-type=\"type\"\n :stroke-width=\"PORT_STROKE_WIDTH\"\n v-bind=\"$attrs\"\n />\n</template>\n\n<style scoped>\n[data-type=\"flowVariable\"] {\n fill: transparent;\n stroke: var(--kds-color-port-flow-variable);\n\n &.filled {\n fill: var(--kds-color-port-flow-variable);\n }\n}\n\n[data-type=\"table\"] {\n fill: transparent;\n stroke: var(--kds-color-port-data);\n\n &.filled {\n fill: var(--kds-color-port-data);\n }\n}\n\n[data-type=\"other\"],\n[data-type=\"generic\"] {\n fill: transparent;\n\n /** dark mode for custom colors generated using oklch */\n --base: v-bind(color);\n --color: light-dark(\n var(--base),\n oklch(from var(--base) calc(1 - l * 0.8) c h)\n );\n\n stroke: var(--color);\n\n &.filled {\n fill: var(--color);\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport SVGPortIcon from \"./SVGPortIcon.vue\";\nimport { PORT_SIZE } from \"./constants\";\nimport type { PortIconProps } from \"./types\";\n\nconst props = defineProps<PortIconProps>();\n\nconst viewBox = computed(() =>\n [-PORT_SIZE / 2, -PORT_SIZE / 2, PORT_SIZE, PORT_SIZE].join(\" \"),\n);\n</script>\n\n<template>\n <svg :viewBox=\"viewBox\" :width=\"PORT_SIZE\" :height=\"PORT_SIZE\">\n <SVGPortIcon v-bind=\"props\" />\n </svg>\n</template>\n","<script setup lang=\"ts\">\nimport { KdsDescription } from \"@knime/kds-components\";\n\nimport PortIcon from \"../PortIcon/PortIcon.vue\";\n\nimport type { PortTemplate } from \"./types\";\n\ntype Props = {\n port: PortTemplate;\n showDescription: boolean;\n};\n\ndefineProps<Props>();\n</script>\n\n<template>\n <div class=\"wrapper\">\n <div class=\"icon\">\n <PortIcon\n :type=\"port.type\"\n :color=\"port.color\"\n :filled=\"!port.optional\"\n />\n </div>\n <span class=\"title\">Type: {{ port.typeDisplayName }}</span>\n\n <span class=\"name title\">Name: {{ port.name }}</span>\n\n <KdsDescription\n v-if=\"showDescription\"\n class=\"description\"\n :text=\"port.description\"\n render-as-html\n />\n </div>\n</template>\n\n<style scoped>\n.wrapper {\n display: grid;\n grid-template-columns: var(--kds-spacing-container-0-5x) 1fr;\n gap: var(--kds-spacing-container-0-5x);\n}\n\n.icon {\n display: flex;\n align-items: center;\n}\n\n.name,\n.description {\n grid-column: 2;\n}\n\n.title {\n font: var(--kds-font-base-title-small-strong);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { KdsDescription } from \"@knime/kds-components\";\n\nimport PortTemplateInfo from \"./PortTemplateInfo.vue\";\nimport type { PortTemplate } from \"./types\";\n\ntype Props = {\n name: string;\n description?: string;\n ports: Array<PortTemplate>;\n isDynamicGroup?: boolean;\n};\n\ndefineProps<Props>();\n</script>\n\n<template>\n <div class=\"port-group-card\">\n <span class=\"group-name\">{{ name }}</span>\n\n <KdsDescription v-if=\"description\" :text=\"description\" render-as-html />\n\n <template v-for=\"port in ports\" :key=\"port.id\">\n <PortTemplateInfo :port=\"port\" :show-description=\"!isDynamicGroup\" />\n </template>\n </div>\n</template>\n\n<style scoped>\n.port-group-card {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-75x);\n padding: var(--kds-spacing-container-1x);\n background: var(--kds-color-surface-muted);\n border-radius: var(--kds-border-radius-container-0-37x);\n\n & .group-name {\n font: var(--kds-font-base-title-small-strong);\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport PortGroup from \"./PortGroup.vue\";\nimport type { DynamicPortGroup, PortTemplate } from \"./types\";\n\ntype Props = {\n inputPorts: Array<PortTemplate>;\n outputPorts: Array<PortTemplate>;\n dynamicInputGroups?: Array<DynamicPortGroup>;\n dynamicOutputGroups?: Array<DynamicPortGroup>;\n};\n\nconst { dynamicInputGroups = [], dynamicOutputGroups = [] } =\n defineProps<Props>();\n</script>\n\n<template>\n <div class=\"port-list\">\n <PortGroup\n v-if=\"inputPorts.length > 0\"\n name=\"Input ports\"\n :ports=\"inputPorts\"\n />\n\n <PortGroup\n v-if=\"outputPorts.length > 0\"\n name=\"Output ports\"\n :ports=\"outputPorts\"\n />\n\n <template v-for=\"group in dynamicInputGroups\" :key=\"group.name\">\n <PortGroup\n v-if=\"group.types.length > 0\"\n :name=\"group.name + ' (Dynamic Inport)'\"\n :description=\"group.description\"\n :ports=\"group.types\"\n is-dynamic-group\n />\n </template>\n\n <template v-for=\"group in dynamicOutputGroups\" :key=\"group.name\">\n <PortGroup\n v-if=\"group.types.length > 0\"\n :name=\"group.name + ' (Dynamic Outport)'\"\n :description=\"group.description\"\n :ports=\"group.types\"\n is-dynamic-group\n />\n </template>\n </div>\n</template>\n\n<style scoped>\n.port-list {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-5x);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport { KdsDescription } from \"@knime/kds-components\";\n\nimport type { NodeDescriptionView } from \"./types\";\n\ntype Props = {\n views: Array<NodeDescriptionView>;\n};\n\nconst props = defineProps<Props>();\n\nconst viewsWithId = computed<Array<NodeDescriptionView & { id: string }>>(() =>\n props.views.map((view, index) => {\n const id = `view-${index}`;\n return { id, ...view };\n }),\n);\n</script>\n\n<template>\n <div v-for=\"view in viewsWithId\" :key=\"view.id\" class=\"card-wrapper\">\n <span class=\"name\">{{ view.name }}</span>\n <KdsDescription\n v-if=\"view.description\"\n :text=\"view.description\"\n render-as-html\n />\n </div>\n</template>\n\n<style scoped>\n.card-wrapper {\n display: flex;\n flex-direction: column;\n padding: var(--kds-spacing-container-1x);\n margin-bottom: var(--kds-spacing-container-0-25x);\n background: var(--kds-color-surface-muted);\n border-radius: var(--kds-border-radius-container-0-37x);\n}\n\n.name {\n font: var(--kds-font-base-title-small-strong);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\n\nimport {\n KdsEmptyState,\n KdsTabBar,\n type KdsTabBarItem,\n} from \"@knime/kds-components\";\n\nimport OptionsTab from \"./OptionsTab.vue\";\nimport PortsTab from \"./PortsTab.vue\";\nimport ViewsTab from \"./ViewsTab.vue\";\nimport type { NodeDescriptionTabsProps } from \"./types\";\n\nconst {\n inputPorts = [],\n outputPorts = [],\n dynamicInputPorts = [],\n dynamicOutputPorts = [],\n optionsData = [],\n viewsData = [],\n emptyText = \"No ports, options or views available.\",\n renderAsHtml = false,\n tabBarFullWidth = false,\n} = defineProps<NodeDescriptionTabsProps>();\n\nconst TAB_IDS = {\n PORTS: \"ports\",\n OPTIONS: \"options\",\n VIEW: \"view\",\n} as const;\n\ntype TabIds = (typeof TAB_IDS)[keyof typeof TAB_IDS];\n\nconst activeTab = ref<TabIds | undefined>();\n\nconst hasPorts = computed(\n () =>\n inputPorts.length > 0 ||\n outputPorts.length > 0 ||\n dynamicInputPorts.length > 0 ||\n dynamicOutputPorts.length > 0,\n);\n\nconst tabs = computed<KdsTabBarItem[]>(() => [\n {\n id: \"tab-ports\",\n value: TAB_IDS.PORTS,\n label: \"Ports\",\n panelId: \"panel-ports\",\n accessory: {\n type: \"icon\",\n name: \"connection\",\n },\n disabled: !hasPorts.value,\n },\n {\n id: \"tab-options\",\n value: TAB_IDS.OPTIONS,\n label: \"Options\",\n panelId: \"panel-options\",\n accessory: {\n type: \"icon\",\n name: \"parameter\",\n },\n disabled: optionsData.length < 1,\n },\n {\n id: \"tab-view\",\n value: TAB_IDS.VIEW,\n label: \"View\",\n panelId: \"panel-view\",\n accessory: {\n type: \"icon\",\n name: \"eye\",\n },\n disabled: viewsData.length < 1,\n },\n]);\n</script>\n\n<template>\n <div>\n <KdsTabBar\n v-model=\"activeTab\"\n :full-width=\"tabBarFullWidth\"\n size=\"small\"\n :tabs=\"tabs\"\n />\n\n <div class=\"content\">\n <PortsTab\n v-if=\"activeTab === TAB_IDS.PORTS\"\n id=\"panel-ports\"\n role=\"tabpanel\"\n aria-labelledby=\"tab-ports\"\n tabindex=\"0\"\n :input-ports=\"inputPorts\"\n :output-ports=\"outputPorts\"\n :dynamic-input-groups=\"dynamicInputPorts\"\n :dynamic-output-groups=\"dynamicOutputPorts\"\n />\n\n <OptionsTab\n v-if=\"activeTab === TAB_IDS.OPTIONS\"\n id=\"panel-options\"\n role=\"tabpanel\"\n aria-labelledby=\"tab-options\"\n tabindex=\"0\"\n :options=\"optionsData\"\n :render-as-html=\"renderAsHtml\"\n />\n\n <ViewsTab\n v-if=\"activeTab === TAB_IDS.VIEW\"\n id=\"panel-view\"\n role=\"tabpanel\"\n aria-labelledby=\"tab-view\"\n tabindex=\"0\"\n :views=\"viewsData\"\n />\n\n <KdsEmptyState\n v-if=\"!activeTab\"\n :headline=\"emptyText\"\n class=\"empty-state\"\n />\n </div>\n </div>\n</template>\n\n<style scoped>\n.content {\n padding: var(--kds-spacing-container-0-5x) 0;\n color: var(--kds-color-text-and-icon-neutral);\n}\n\n.empty-state {\n margin: 0 auto;\n}\n</style>\n","export const NODE_SIZE = 32;\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport { NODE_SIZE } from \"./constants\";\nimport type { NodeTorsoProps } from \"./types\";\n\n/**\n * Draws the Torso (colored rounded rectangle with icon) of a Node or Component\n * This vue component only draws regular Nodes/Components, no Metanodes, no Unknown nor Missing Nodes\n * Only works inside of a <svg> element.\n */\nconst backgroundPaths: Record<string, string> = {\n default:\n \"M0,29.2L0,2.8C0,1.3,1.3,0,2.8,0l26.3,0C30.7,0,32,1.3,32,2.8v26.3c0,1.6-1.3,2.8-2.8,2.8H2.8C1.3,32,0,30.\" +\n \"7,0,29.2z\",\n LoopEnd:\n \"M32,2.8v26.3c0,1.6-1.3,2.8-2.8,2.8H4L0,16.1L4,0l25.2,0C30.7,0,32,1.3,32,2.8z\",\n LoopStart:\n \"M0,29.2L0,2.8C0,1.3,1.3,0,2.8,0L32,0l-4,15.9L32,32H2.8C1.3,32,0,30.7,0,29.2z\",\n ScopeEnd:\n \"M32,2.8v26.3c0,1.6-1.3,2.8-2.8,2.8H4L0,16.1L4,0l25.2,0C30.7,0,32,1.3,32,2.8z\",\n ScopeStart:\n \"M0,29.2L0,2.8C0,1.3,1.3,0,2.8,0L32,0l-4,15.9L32,32H2.8C1.3,32,0,30.7,0,29.2z\",\n VirtualIn:\n \"M32,2.8v26.3c0,1.6-1.3,2.8-2.8,2.8H6.5L0,25.9l5.2-10L0.7,7.2L6.5,0l22.7,0C30.7,0,32,1.3,32,2.8z\",\n VirtualOut:\n \"M0,29.2L0,2.8C0,1.3,1.3,0,2.8,0L32,0l-5.8,7.2l4.5,8.7l-5.2,10L32,32H2.8C1.3,32,0,30.7,0,29.2z\",\n};\n\nconst componentBackgroundPortion = 0.75;\n\nconst {\n type = null,\n isComponent = false,\n icon = null,\n} = defineProps<NodeTorsoProps>();\n\nconst backgroundPath = computed(\n () => (type && backgroundPaths[type]) || backgroundPaths.default,\n);\n\nconst componentBackgroundTransformation = computed(() => {\n const offset = NODE_SIZE / 2;\n const scaleFactor = componentBackgroundPortion;\n return `translate(${offset}, ${offset}) scale(${scaleFactor}) translate(-${offset}, -${offset})`;\n});\n</script>\n\n<template>\n <g>\n <path\n :d=\"backgroundPath\"\n :class=\"['bg', { component: isComponent }]\"\n :data-type=\"isComponent ? null : type\"\n />\n <!-- components may have two layers of background. This is the inner part, a shrunk version of the outer frame -->\n <path\n v-if=\"isComponent && type\"\n :d=\"backgroundPath\"\n class=\"bg\"\n :data-type=\"type\"\n :transform=\"componentBackgroundTransformation\"\n />\n <image\n v-if=\"icon\"\n :xlink:href=\"icon\"\n x=\"8\"\n y=\"8\"\n width=\"16\"\n height=\"16\"\n pointer-events=\"none\"\n />\n </g>\n</template>\n\n<style scoped>\n.bg {\n /** default color is unknown */\n fill: var(--kds-color-nodes-and-variables-unknown);\n\n &.component {\n fill: var(--kds-color-nodes-and-variables-special-nodes);\n }\n\n &[data-type=\"Configuration\"] {\n fill: var(--kds-color-nodes-and-variables-configuration);\n }\n\n &[data-type=\"Container\"] {\n fill: var(--kds-color-nodes-and-variables-container);\n }\n\n &[data-type=\"Learner\"] {\n fill: var(--kds-color-nodes-and-variables-learner);\n }\n\n &[data-type=\"Loop\"] {\n fill: var(--kds-color-nodes-and-variables-loop);\n }\n\n &[data-type=\"LoopEnd\"] {\n fill: var(--kds-color-nodes-and-variables-loop);\n }\n\n &[data-type=\"LoopStart\"] {\n fill: var(--kds-color-nodes-and-variables-loop);\n }\n\n &[data-type=\"Manipulator\"] {\n fill: var(--kds-color-nodes-and-variables-manipulator);\n }\n\n &[data-type=\"Other\"] {\n fill: var(--kds-color-nodes-and-variables-other);\n }\n\n &[data-type=\"Predictor\"] {\n fill: var(--kds-color-nodes-and-variables-predictor);\n }\n\n &[data-type=\"ScopeEnd\"] {\n fill: var(--kds-color-nodes-and-variables-scope);\n }\n\n &[data-type=\"ScopeStart\"] {\n fill: var(--kds-color-nodes-and-variables-scope);\n }\n\n &[data-type=\"Sink\"] {\n fill: var(--kds-color-nodes-and-variables-sink);\n }\n\n &[data-type=\"Source\"] {\n fill: var(--kds-color-nodes-and-variables-source);\n }\n\n &[data-type=\"Visualizer\"] {\n fill: var(--kds-color-nodes-and-variables-visualizer);\n }\n\n &[data-type=\"QuickForm\"] {\n fill: var(--kds-color-nodes-and-variables-quickform);\n }\n\n /** Virtual = Components */\n &[data-type=\"VirtualIn\"],\n &[data-type=\"VirtualOut\"] {\n fill: var(--kds-color-nodes-and-variables-special-nodes);\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport { KdsIcon } from \"@knime/kds-components\";\n\nimport SVGPortIcon from \"../PortIcon/SVGPortIcon.vue\";\nimport { PORT_SIZE } from \"../PortIcon/constants\";\n\nimport SVGNodeTorso from \"./SVGNodeTorso.vue\";\nimport { NODE_SIZE } from \"./constants\";\nimport type { NodePreviewProps, Port } from \"./types\";\n\n/**\n * SVG icon preview for a node or component, generated from its attributes\n */\nconst {\n type = null,\n isComponent = false,\n inPorts = [],\n outPorts = [],\n hidePorts = false,\n hideIndicators = false,\n size = \"xlarge\",\n indicatorIcon = undefined,\n icon = null,\n} = defineProps<NodePreviewProps>();\n\nconst horizontalSpaceForPorts = computed(() => (hidePorts ? 0 : PORT_SIZE));\n\nconst width = computed(() => NODE_SIZE + 2 * horizontalSpaceForPorts.value);\nconst height = NODE_SIZE;\nconst viewBox = computed(\n () => `-${horizontalSpaceForPorts.value} 0 ${width.value} ${height}`,\n);\n\n// top edge of port icon relative to 32x32 background\nfunction yPortShift(index: number, total: number): number {\n /* eslint-disable no-magic-numbers */\n let spacing = 1;\n if (total === 2) {\n spacing = 12;\n } else if (total === 3) {\n spacing = 2;\n }\n /* eslint-enable no-magic-numbers */\n\n const totalHeight = total * PORT_SIZE + (total - 1) * spacing;\n const delta = (NODE_SIZE - totalHeight) / 2;\n return (spacing + PORT_SIZE) * index + delta + PORT_SIZE / 2;\n}\n\nconst maxShownPorts = 3;\n\nconst cutOffPorts = (ports: Port[]) => {\n if (ports.length > maxShownPorts) {\n return [...ports.slice(0, maxShownPorts)];\n }\n return ports;\n};\n\nconst visibleInPorts = computed(() => cutOffPorts(inPorts));\nconst visibleOutPorts = computed(() => cutOffPorts(outPorts));\nconst numberOfHiddenPorts = computed(\n () =>\n inPorts.length -\n visibleInPorts.value.length +\n outPorts.length -\n visibleOutPorts.value.length,\n);\n</script>\n\n<template>\n <div class=\"node-preview\" :data-size=\"size\">\n <svg :viewBox=\"viewBox\" :width=\"width\" :height=\"height\">\n <SVGNodeTorso :type=\"type\" :icon=\"icon\" :is-component=\"isComponent\" />\n <template v-if=\"!hidePorts\">\n <SVGPortIcon\n v-for=\"(port, index) in visibleInPorts\"\n :key=\"`in-${index}`\"\n :color=\"port.color\"\n :filled=\"!port.optional\"\n :type=\"port.type\"\n :transform=\"`translate(-${PORT_SIZE / 2}, ${yPortShift(index, visibleInPorts.length)})`\"\n />\n <SVGPortIcon\n v-for=\"(port, index) in visibleOutPorts\"\n :key=\"`out-${index}`\"\n :color=\"port.color\"\n :filled=\"!port.optional\"\n :type=\"port.type\"\n :transform=\"`translate(${NODE_SIZE + PORT_SIZE / 2}, ${yPortShift(index, visibleOutPorts.length)})`\"\n />\n </template>\n </svg>\n <div v-if=\"!hideIndicators\" class=\"indicators\">\n <KdsIcon v-if=\"indicatorIcon\" :name=\"indicatorIcon\" size=\"small\" />\n <KdsIcon\n v-if=\"numberOfHiddenPorts > 0 && !hidePorts\"\n name=\"more-connections\"\n aria-label=\"Indication that some ports are hidden\"\n size=\"small\"\n />\n </div>\n </div>\n</template>\n\n<style scoped>\n.node-preview {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-25x);\n width: calc(v-bind(width) * 1px);\n\n &[data-size=\"small\"] {\n transform: scale(calc(12 / v-bind(NODE_SIZE)));\n }\n\n &[data-size=\"medium\"] {\n transform: scale(0.5);\n }\n\n & .indicators {\n display: flex;\n gap: var(--kds-spacing-container-0-25x);\n justify-content: center;\n height: var(--kds-dimension-icon-0-75x);\n }\n}\n</style>\n"],"names":["_createElementBlock","_createBlock","_unref","_renderList","_openBlock","_Fragment","_createElementVNode","_hoisted_1","_toDisplayString","_createVNode","_hoisted_2","_hoisted_3","_mergeProps","$attrs","PortIcon"],"mappings":"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"}
|
package/dist/rfcErrors.css
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
|
|
2
|
-
.wrapper[data-v-
|
|
2
|
+
.wrapper[data-v-037f2b7d] {
|
|
3
3
|
display: flex;
|
|
4
4
|
flex-direction: column;
|
|
5
5
|
gap: var(--kds-spacing-container-0-25x);
|
|
6
6
|
font: var(--kds-font-base-body-small);
|
|
7
7
|
color: var(--kds-color-text-and-icon-neutral);
|
|
8
8
|
}
|
|
9
|
-
.details-list[data-v-
|
|
9
|
+
.details-list[data-v-037f2b7d] {
|
|
10
10
|
padding-left: var(--kds-spacing-container-1-5x);
|
|
11
11
|
margin-top: var(--kds-spacing-container-0-37x);
|
|
12
12
|
margin-bottom: var(--kds-spacing-container-0-37x);
|
|
13
13
|
}
|
|
14
|
-
.actions-wrapper[data-v-
|
|
14
|
+
.actions-wrapper[data-v-037f2b7d] {
|
|
15
15
|
display: flex;
|
|
16
16
|
gap: var(--kds-spacing-container-0-5x);
|
|
17
17
|
align-items: center;
|
package/dist/rfcErrors.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, createPropsRestProxy, ref, openBlock, createElementBlock, createElementVNode, toDisplayString, Fragment, createTextVNode, renderList, createCommentVNode, createBlock, unref, h } from 'vue';
|
|
2
2
|
import { useClipboard } from '@vueuse/core';
|
|
3
3
|
import { KdsButton } from '@knime/kds-components';
|
|
4
|
-
import {
|
|
4
|
+
import { b as formatDateTimeString } from './index-B3ql6hun.js';
|
|
5
5
|
import { _ as _export_sfc } from './_plugin-vue_export-helper-pcqpp-6-.js';
|
|
6
6
|
|
|
7
7
|
import './rfcErrors.css';const serializeErrorForClipboard = (error, headline, formatDate) => {
|
|
@@ -161,7 +161,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
161
161
|
}
|
|
162
162
|
});
|
|
163
163
|
|
|
164
|
-
const RFCErrorToastTemplate = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
164
|
+
const RFCErrorToastTemplate = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-037f2b7d"]]);
|
|
165
165
|
|
|
166
166
|
class RFCError extends Error {
|
|
167
167
|
data;
|
package/dist/rfcErrors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rfcErrors.js","sources":["../src/rfcErrors/serializeRFCErrorData.ts","../src/rfcErrors/RFCErrorToastTemplate.vue","../src/rfcErrors/types.ts","../src/rfcErrors/index.ts"],"sourcesContent":["import type { RFCErrorData } from \"./types\";\n\nexport const serializeErrorForClipboard = (\n error: RFCErrorData,\n headline: string,\n formatDate: (date: Date) => string,\n): string => {\n let details = \"\";\n if (error.details?.length) {\n if (error.details.length > 1) {\n const detailLines = error.details\n .map((item) => `\\u2022 ${item}`)\n .join(\"\\n\");\n details = `\\n${detailLines}`;\n } else {\n details = error.details[0];\n }\n }\n\n let errorText = `${headline}\\n\\n`;\n errorText += `${error.title}\\n\\n`;\n errorText += details ? `Details: ${details}\\n\\n` : \"\";\n\n if (error.status !== undefined) {\n errorText += `Status: ${error.status}\\n`;\n }\n\n if (error.date) {\n errorText += `Date: ${formatDate(error.date)}\\n`;\n }\n\n if (error.requestId) {\n errorText += `Request Id: ${error.requestId}\\n`;\n }\n\n if (error.errorId) {\n errorText += `Error Id: ${error.errorId}\\n`;\n }\n\n if (error.stacktrace) {\n errorText += \"------\\n\"; // separator\n errorText += `Stacktrace:\\n\\n${error.stacktrace}\\n`;\n }\n\n return errorText;\n};\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { useClipboard } from \"@vueuse/core\";\n\nimport { KdsButton } from \"@knime/kds-components\";\nimport { formatDateTimeString } from \"@knime/utils\";\n\nimport { serializeErrorForClipboard as defaultSerializeRFCErrorData } from \"./serializeRFCErrorData\";\nimport type { RFCErrorData } from \"./types\";\n\ntype Props = {\n headline: string; // toast headline, will not be displayed here but needed when copying to clipboard\n canCopyToClipboard?: boolean;\n serializeErrorForClipboard?: (\n error: RFCErrorData,\n headline: string,\n formatDate: (date: Date) => string,\n ) => string;\n} & RFCErrorData;\n\nconst {\n headline,\n canCopyToClipboard = true,\n serializeErrorForClipboard = defaultSerializeRFCErrorData,\n ...rfcError\n} = defineProps<Props>();\n\nconst emits = defineEmits([\"showMore\"]);\n\nconst { copy, copied } = useClipboard({\n copiedDuring: 3000,\n});\n\nconst hasDetails =\n rfcError.details?.length ||\n rfcError.status !== undefined ||\n rfcError.date !== undefined ||\n rfcError.requestId !== undefined ||\n rfcError.errorId !== undefined;\n// don't show 'Show details' button if there are no details to show\nconst showDetails = ref(!hasDetails);\n\nconst formatDate = (date: Date): string =>\n date ? formatDateTimeString(date.getTime()) : \"\";\n\nconst copyToClipboard = () => {\n if (copied.value) {\n return;\n }\n copy(serializeErrorForClipboard(rfcError, headline, formatDate)).catch(\n (error) => {\n consola.error(\"Failed to copy to clipboard\", { error });\n },\n );\n};\n\nconst onShowDetailsClicked = () => {\n showDetails.value = true;\n emits(\"showMore\");\n};\n</script>\n\n<template>\n <div class=\"wrapper\">\n <div class=\"title\">\n {{ title }}\n </div>\n <div v-if=\"showDetails\">\n <div v-if=\"details?.length\">\n <strong>Details: </strong>\n <template v-if=\"details.length === 1\">\n {{ details[0] }}\n </template>\n <template v-else>\n <ul class=\"details-list\">\n <li v-for=\"(item, index) in details\" :key=\"index\">{{ item }}</li>\n </ul>\n </template>\n </div>\n\n <div v-if=\"status !== undefined\">\n <strong>Status: </strong>{{ status }}\n </div>\n <div v-if=\"date\"><strong>Date: </strong>{{ formatDate(date) }}</div>\n <div v-if=\"requestId\"><strong>Request id: </strong>{{ requestId }}</div>\n <div v-if=\"errorId\"><strong>Error id: </strong>{{ errorId }}</div>\n <div v-if=\"stacktrace && canCopyToClipboard\">\n <strong>Stacktrace: </strong>Part of clipboard text\n </div>\n </div>\n <div class=\"actions-wrapper\">\n <KdsButton\n v-if=\"!showDetails\"\n data-testid=\"show-details\"\n variant=\"transparent\"\n label=\"Show details\"\n size=\"xsmall\"\n @click=\"onShowDetailsClicked\"\n />\n <KdsButton\n v-if=\"canCopyToClipboard\"\n data-testid=\"copy-to-clipboard\"\n :label=\"copied ? 'Error was copied' : 'Copy error to clipboard'\"\n :leading-icon=\"copied ? 'checkmark' : 'copy'\"\n variant=\"transparent\"\n size=\"xsmall\"\n @click=\"copyToClipboard\"\n />\n </div>\n </div>\n</template>\n\n<style scoped>\n.wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-25x);\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n}\n\n.details-list {\n padding-left: var(--kds-spacing-container-1-5x);\n margin-top: var(--kds-spacing-container-0-37x);\n margin-bottom: var(--kds-spacing-container-0-37x);\n}\n\n.actions-wrapper {\n display: flex;\n gap: var(--kds-spacing-container-0-5x);\n align-items: center;\n}\n</style>\n","/**\n * Type based on an RFC-9457 error standard (https://www.rfc-editor.org/rfc/rfc9457)\n * Also see:\n * https://knime-com.atlassian.net/wiki/spaces/SPECS/pages/4126769212/API+Errors+Problem+Details\n */\nexport type RFCErrorData = {\n title: string;\n status?: number;\n date?: Date;\n details?: string[];\n requestId?: string;\n /**\n * Id used to find an error in the Hub logs. Specially relevant\n * when details of the error are not wanted to be exposed to the user.\n */\n errorId?: string;\n /**\n * Relevant only for the Analytics Platform, since the Hub does not expose\n * stack traces.\n */\n stacktrace?: string;\n};\n\nexport class RFCError extends Error {\n data: RFCErrorData;\n\n constructor(data: RFCErrorData) {\n super(data.title);\n this.data = data;\n }\n}\n\nexport type FetchError = {\n response: {\n headers: Headers;\n };\n statusCode: number;\n data: {\n title: string;\n details: string[];\n };\n};\n","import { h } from \"vue\";\n\nimport type { Toast } from \"../toasts\";\n\nimport RFCErrorToastTemplate from \"./RFCErrorToastTemplate.vue\";\nimport { type FetchError, RFCError, type RFCErrorData } from \"./types\";\n\n/**\n * Map to a toast template component compatible with an RFCError format\n */\nconst toToast = ({\n headline,\n rfcError,\n canCopyToClipboard = true,\n serializeErrorForClipboard = undefined,\n}: {\n headline: string;\n rfcError: RFCError;\n canCopyToClipboard?: boolean;\n serializeErrorForClipboard?: (\n error: RFCErrorData,\n headline: string,\n formatDate: (date: Date) => string,\n ) => string;\n}): Toast => {\n const { data } = rfcError;\n\n const rfcErrorToastContent = h(RFCErrorToastTemplate, {\n headline,\n ...data,\n canCopyToClipboard,\n serializeErrorForClipboard,\n });\n\n return {\n type: \"error\",\n headline,\n component: rfcErrorToastContent,\n autoRemove: false,\n };\n};\n\nconst isFetchError = (error: unknown): error is FetchError => {\n return (\n error !== null &&\n typeof error === \"object\" &&\n \"response\" in error &&\n \"statusCode\" in error &&\n \"data\" in error\n );\n};\n\n/**\n * Parse a generic request error to an `RFCError`.\n * When parsing is not possible it returns undefined.\n */\nconst tryParse = (error: unknown): RFCError | undefined => {\n if (!isFetchError(error)) {\n return undefined;\n }\n\n if (!error.response) {\n return undefined;\n }\n\n const responseDate = error.response.headers.get(\"date\")\n ? new Date(error.response.headers.get(\"date\")!)\n : undefined;\n\n const title =\n typeof error.data === \"string\" ? error.data : (error.data?.title ?? \"\");\n\n const rfcErrorData: RFCErrorData = {\n title: title as string,\n details: error.data?.details as string[] | undefined,\n status: error.statusCode as number,\n date: responseDate,\n requestId: error.response.headers.get(\"x-request-id\") ?? undefined,\n errorId: error.response.headers.get(\"x-error-id\") ?? undefined,\n };\n\n return new RFCError(rfcErrorData);\n};\n\nexport const rfcErrors = {\n toToast,\n tryParse,\n RFCError,\n};\n"],"names":["_createPropsRestProxy","_openBlock","_createElementBlock","_createElementVNode","_toDisplayString","_Fragment","_renderList","_createTextVNode","_createBlock","_unref"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rfcErrors.js","sources":["../src/rfcErrors/serializeRFCErrorData.ts","../src/rfcErrors/RFCErrorToastTemplate.vue","../src/rfcErrors/types.ts","../src/rfcErrors/index.ts"],"sourcesContent":["import type { RFCErrorData } from \"./types\";\n\nexport const serializeErrorForClipboard = (\n error: RFCErrorData,\n headline: string,\n formatDate: (date: Date) => string,\n): string => {\n let details = \"\";\n if (error.details?.length) {\n if (error.details.length > 1) {\n const detailLines = error.details\n .map((item) => `\\u2022 ${item}`)\n .join(\"\\n\");\n details = `\\n${detailLines}`;\n } else {\n details = error.details[0];\n }\n }\n\n let errorText = `${headline}\\n\\n`;\n errorText += `${error.title}\\n\\n`;\n errorText += details ? `Details: ${details}\\n\\n` : \"\";\n\n if (error.status !== undefined) {\n errorText += `Status: ${error.status}\\n`;\n }\n\n if (error.date) {\n errorText += `Date: ${formatDate(error.date)}\\n`;\n }\n\n if (error.requestId) {\n errorText += `Request Id: ${error.requestId}\\n`;\n }\n\n if (error.errorId) {\n errorText += `Error Id: ${error.errorId}\\n`;\n }\n\n if (error.stacktrace) {\n errorText += \"------\\n\"; // separator\n errorText += `Stacktrace:\\n\\n${error.stacktrace}\\n`;\n }\n\n return errorText;\n};\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { useClipboard } from \"@vueuse/core\";\n\nimport { KdsButton } from \"@knime/kds-components\";\nimport { formatDateTimeString } from \"@knime/utils\";\n\nimport { serializeErrorForClipboard as defaultSerializeRFCErrorData } from \"./serializeRFCErrorData\";\nimport type { RFCErrorData } from \"./types\";\n\ntype Props = {\n /**\n * Toast headline shown in the toast title bar. Not rendered inside this\n * template, but included when serializing the error to the clipboard.\n */\n headline: string;\n /** Whether to show the \"Copy error to clipboard\" button. */\n canCopyToClipboard?: boolean;\n /**\n * Custom serializer for the clipboard payload. Defaults to\n * `serializeRFCErrorData` which formats the full error as text.\n */\n serializeErrorForClipboard?: (\n error: RFCErrorData,\n headline: string,\n formatDate: (date: Date) => string,\n ) => string;\n} & RFCErrorData;\n\nconst {\n headline,\n canCopyToClipboard = true,\n serializeErrorForClipboard = defaultSerializeRFCErrorData,\n ...rfcError\n} = defineProps<Props>();\n\nconst emits = defineEmits([\"showMore\"]);\n\nconst { copy, copied } = useClipboard({\n copiedDuring: 3000,\n});\n\nconst hasDetails =\n rfcError.details?.length ||\n rfcError.status !== undefined ||\n rfcError.date !== undefined ||\n rfcError.requestId !== undefined ||\n rfcError.errorId !== undefined;\n// don't show 'Show details' button if there are no details to show\nconst showDetails = ref(!hasDetails);\n\nconst formatDate = (date: Date): string =>\n date ? formatDateTimeString(date.getTime()) : \"\";\n\nconst copyToClipboard = () => {\n if (copied.value) {\n return;\n }\n copy(serializeErrorForClipboard(rfcError, headline, formatDate)).catch(\n (error) => {\n consola.error(\"Failed to copy to clipboard\", { error });\n },\n );\n};\n\nconst onShowDetailsClicked = () => {\n showDetails.value = true;\n emits(\"showMore\");\n};\n</script>\n\n<template>\n <div class=\"wrapper\">\n <div class=\"title\">\n {{ title }}\n </div>\n <div v-if=\"showDetails\">\n <div v-if=\"details?.length\">\n <strong>Details: </strong>\n <template v-if=\"details.length === 1\">\n {{ details[0] }}\n </template>\n <template v-else>\n <ul class=\"details-list\">\n <li v-for=\"(item, index) in details\" :key=\"index\">{{ item }}</li>\n </ul>\n </template>\n </div>\n\n <div v-if=\"status !== undefined\">\n <strong>Status: </strong>{{ status }}\n </div>\n <div v-if=\"date\"><strong>Date: </strong>{{ formatDate(date) }}</div>\n <div v-if=\"requestId\"><strong>Request id: </strong>{{ requestId }}</div>\n <div v-if=\"errorId\"><strong>Error id: </strong>{{ errorId }}</div>\n <div v-if=\"stacktrace && canCopyToClipboard\">\n <strong>Stacktrace: </strong>Part of clipboard text\n </div>\n </div>\n <div class=\"actions-wrapper\">\n <KdsButton\n v-if=\"!showDetails\"\n data-testid=\"show-details\"\n variant=\"transparent\"\n label=\"Show details\"\n size=\"xsmall\"\n @click=\"onShowDetailsClicked\"\n />\n <KdsButton\n v-if=\"canCopyToClipboard\"\n data-testid=\"copy-to-clipboard\"\n :label=\"copied ? 'Error was copied' : 'Copy error to clipboard'\"\n :leading-icon=\"copied ? 'checkmark' : 'copy'\"\n variant=\"transparent\"\n size=\"xsmall\"\n @click=\"copyToClipboard\"\n />\n </div>\n </div>\n</template>\n\n<style scoped>\n.wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-25x);\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n}\n\n.details-list {\n padding-left: var(--kds-spacing-container-1-5x);\n margin-top: var(--kds-spacing-container-0-37x);\n margin-bottom: var(--kds-spacing-container-0-37x);\n}\n\n.actions-wrapper {\n display: flex;\n gap: var(--kds-spacing-container-0-5x);\n align-items: center;\n}\n</style>\n","/**\n * Type based on an RFC-9457 error standard (https://www.rfc-editor.org/rfc/rfc9457)\n * Also see:\n * https://knime-com.atlassian.net/wiki/spaces/SPECS/pages/4126769212/API+Errors+Problem+Details\n */\nexport type RFCErrorData = {\n /** Short human-readable summary of the error. */\n title: string;\n /** HTTP status code associated with the error. */\n status?: number;\n /** Date/time when the error occurred. */\n date?: Date;\n /** Additional human-readable detail messages. */\n details?: string[];\n /** Correlation id for the request that triggered the error. */\n requestId?: string;\n /**\n * Id used to find an error in the Hub logs. Specially relevant\n * when details of the error are not wanted to be exposed to the user.\n */\n errorId?: string;\n /**\n * Relevant only for the Analytics Platform, since the Hub does not expose\n * stack traces.\n */\n stacktrace?: string;\n};\n\nexport class RFCError extends Error {\n data: RFCErrorData;\n\n constructor(data: RFCErrorData) {\n super(data.title);\n this.data = data;\n }\n}\n\nexport type FetchError = {\n response: {\n headers: Headers;\n };\n statusCode: number;\n data: {\n title: string;\n details: string[];\n };\n};\n","import { h } from \"vue\";\n\nimport type { Toast } from \"../toasts\";\n\nimport RFCErrorToastTemplate from \"./RFCErrorToastTemplate.vue\";\nimport { type FetchError, RFCError, type RFCErrorData } from \"./types\";\n\n/**\n * Map to a toast template component compatible with an RFCError format\n */\nconst toToast = ({\n headline,\n rfcError,\n canCopyToClipboard = true,\n serializeErrorForClipboard = undefined,\n}: {\n headline: string;\n rfcError: RFCError;\n canCopyToClipboard?: boolean;\n serializeErrorForClipboard?: (\n error: RFCErrorData,\n headline: string,\n formatDate: (date: Date) => string,\n ) => string;\n}): Toast => {\n const { data } = rfcError;\n\n const rfcErrorToastContent = h(RFCErrorToastTemplate, {\n headline,\n ...data,\n canCopyToClipboard,\n serializeErrorForClipboard,\n });\n\n return {\n type: \"error\",\n headline,\n component: rfcErrorToastContent,\n autoRemove: false,\n };\n};\n\nconst isFetchError = (error: unknown): error is FetchError => {\n return (\n error !== null &&\n typeof error === \"object\" &&\n \"response\" in error &&\n \"statusCode\" in error &&\n \"data\" in error\n );\n};\n\n/**\n * Parse a generic request error to an `RFCError`.\n * When parsing is not possible it returns undefined.\n */\nconst tryParse = (error: unknown): RFCError | undefined => {\n if (!isFetchError(error)) {\n return undefined;\n }\n\n if (!error.response) {\n return undefined;\n }\n\n const responseDate = error.response.headers.get(\"date\")\n ? new Date(error.response.headers.get(\"date\")!)\n : undefined;\n\n const title =\n typeof error.data === \"string\" ? error.data : (error.data?.title ?? \"\");\n\n const rfcErrorData: RFCErrorData = {\n title: title as string,\n details: error.data?.details as string[] | undefined,\n status: error.statusCode as number,\n date: responseDate,\n requestId: error.response.headers.get(\"x-request-id\") ?? undefined,\n errorId: error.response.headers.get(\"x-error-id\") ?? undefined,\n };\n\n return new RFCError(rfcErrorData);\n};\n\nexport const rfcErrors = {\n toToast,\n tryParse,\n RFCError,\n};\n"],"names":["_createPropsRestProxy","_openBlock","_createElementBlock","_createElementVNode","_toDisplayString","_Fragment","_renderList","_createTextVNode","_createBlock","_unref"],"mappings":"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"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
export type DownloadItem = {
|
|
2
|
+
/** Unique identifier for this download. */
|
|
2
3
|
downloadId: string;
|
|
4
|
+
/** File name of the downloaded item. */
|
|
3
5
|
name: string;
|
|
6
|
+
/** Current lifecycle status of the download. */
|
|
4
7
|
status: "IN_PROGRESS" | "CANCELLED" | "READY" | "FAILED";
|
|
8
|
+
/** URL to download the file once it is ready. Only present when the status is `READY`. */
|
|
5
9
|
downloadUrl?: string;
|
|
10
|
+
/** Human-readable explanation of why the download failed. */
|
|
6
11
|
failureDetails?: string;
|
|
7
12
|
};
|
|
8
13
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/dataTransfer/download/ui/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/dataTransfer/download/ui/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACzB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,MAAM,EAAE,aAAa,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;IACzD,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollapsiblePanel.vue.d.ts","sourceRoot":"","sources":["../../../../../../src/dataTransfer/shared/ui/CollapsiblePanel/CollapsiblePanel.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CollapsiblePanel.vue.d.ts","sourceRoot":"","sources":["../../../../../../src/dataTransfer/shared/ui/CollapsiblePanel/CollapsiblePanel.vue"],"names":[],"mappings":"AA4HA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGrD,KAAK,WAAW,GAAG,qBAAqB,CAAC;AAsBzC,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,WAAW,CAAC;AAKhB,iBAAS,cAAc;WAyHT,OAAO,IAA6B;;yBAVpB,GAAG;;;;EAehC;AAcD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;6FAQnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAQpG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/dataTransfer/shared/ui/CollapsiblePanel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACrE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/dataTransfer/shared/ui/CollapsiblePanel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACrE,mBAAmB,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/dataTransfer/shared/ui/CollapsiblePanel/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG;IAClC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/dataTransfer/shared/ui/CollapsiblePanel/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressItem.vue.d.ts","sourceRoot":"","sources":["../../../../../../src/dataTransfer/shared/ui/ProgressItem/ProgressItem.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProgressItem.vue.d.ts","sourceRoot":"","sources":["../../../../../../src/dataTransfer/shared/ui/ProgressItem/ProgressItem.vue"],"names":[],"mappings":"AAqIA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;;AAkJjD,wBAOG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/dataTransfer/shared/ui/ProgressItem/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7D,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/dataTransfer/shared/ui/ProgressItem/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7D,mBAAmB,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/dataTransfer/shared/ui/ProgressItem/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE1E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/dataTransfer/shared/ui/ProgressItem/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE1E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B,CAAC"}
|
|
@@ -8,23 +8,33 @@ declare const UploadItemStatus: {
|
|
|
8
8
|
COMPLETE: "complete";
|
|
9
9
|
};
|
|
10
10
|
type Base = {
|
|
11
|
+
/** Unique identifier of the uploaded item. */
|
|
11
12
|
id: string;
|
|
13
|
+
/** File name of the uploaded item. */
|
|
12
14
|
name: string;
|
|
15
|
+
/** File size in bytes. */
|
|
13
16
|
size: number;
|
|
17
|
+
/** Id of the parent folder the item is uploaded into. */
|
|
14
18
|
parentId: string;
|
|
15
19
|
};
|
|
16
20
|
export type WithProgress = Base & {
|
|
21
|
+
/** Upload progress as a fraction between 0 and 1. */
|
|
17
22
|
progress: number;
|
|
23
|
+
/** Whether the upload is still in progress or has completed. */
|
|
18
24
|
status: typeof UploadItemStatus.IN_PROGRESS | typeof UploadItemStatus.COMPLETE;
|
|
19
25
|
};
|
|
20
26
|
export type WithCancelled = Base & {
|
|
27
|
+
/** Status indicating the upload was cancelled by the user. */
|
|
21
28
|
status: typeof UploadItemStatus.CANCELLED;
|
|
22
29
|
};
|
|
23
30
|
export type WithFailure = Base & {
|
|
31
|
+
/** Status indicating the upload failed. */
|
|
24
32
|
status: typeof UploadItemStatus.FAILED;
|
|
33
|
+
/** Human-readable explanation of why the upload failed. */
|
|
25
34
|
failureDetails: string;
|
|
26
35
|
};
|
|
27
36
|
export type WithProcessing = Base & {
|
|
37
|
+
/** Status indicating the uploaded file is being processed server-side. */
|
|
28
38
|
status: typeof UploadItemStatus.PROCESSING;
|
|
29
39
|
};
|
|
30
40
|
export type UploadItem = WithProgress | WithCancelled | WithFailure | WithProcessing;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/dataTransfer/upload/ui/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAgB,MAAM,YAAY,CAAC;AAEhE,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC;AAI/E,QAAA,MAAM,gBAAgB;;;;;;CAGrB,CAAC;AAEF,KAAK,IAAI,GAAG;IACV,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EACF,OAAO,gBAAgB,CAAC,WAAW,GACnC,OAAO,gBAAgB,CAAC,QAAQ,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG;IACjC,MAAM,EAAE,OAAO,gBAAgB,CAAC,SAAS,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG;IAC/B,MAAM,EAAE,OAAO,gBAAgB,CAAC,MAAM,CAAC;IACvC,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG;IAClC,MAAM,EAAE,OAAO,gBAAgB,CAAC,UAAU,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ,aAAa,GACb,WAAW,GACX,cAAc,CAAC;AAEnB,MAAM,MAAM,wBAAwB,GAAG;IACrC;;OAEG;IACH,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/dataTransfer/upload/ui/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAgB,MAAM,YAAY,CAAC;AAEhE,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC;AAI/E,QAAA,MAAM,gBAAgB;;;;;;CAGrB,CAAC;AAEF,KAAK,IAAI,GAAG;IACV,8CAA8C;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG;IAChC,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,MAAM,EACF,OAAO,gBAAgB,CAAC,WAAW,GACnC,OAAO,gBAAgB,CAAC,QAAQ,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG;IACjC,8DAA8D;IAC9D,MAAM,EAAE,OAAO,gBAAgB,CAAC,SAAS,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG;IAC/B,2CAA2C;IAC3C,MAAM,EAAE,OAAO,gBAAgB,CAAC,MAAM,CAAC;IACvC,2DAA2D;IAC3D,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG;IAClC,0EAA0E;IAC1E,MAAM,EAAE,OAAO,gBAAgB,CAAC,UAAU,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ,aAAa,GACb,WAAW,GACX,cAAc,CAAC;AAEnB,MAAM,MAAM,wBAAwB,GAAG;IACrC;;OAEG;IACH,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC"}
|
|
@@ -32,8 +32,11 @@ export type PortTemplate = {
|
|
|
32
32
|
optional?: boolean;
|
|
33
33
|
};
|
|
34
34
|
export type DynamicPortGroup = {
|
|
35
|
+
/** Display name for the dynamic port group. */
|
|
35
36
|
name: string;
|
|
37
|
+
/** Description of the dynamic port group. Can contain raw HTML. */
|
|
36
38
|
description: string;
|
|
39
|
+
/** Port templates available in this dynamic group. */
|
|
37
40
|
types: PortTemplate[];
|
|
38
41
|
};
|
|
39
42
|
/**
|
|
@@ -59,15 +62,23 @@ export type NodeDescriptionOptions = {
|
|
|
59
62
|
}>;
|
|
60
63
|
};
|
|
61
64
|
export type NodeDescriptionView = {
|
|
65
|
+
/** Display name of the view. */
|
|
62
66
|
name: string;
|
|
67
|
+
/** Optional description of the view. Can contain raw HTML. */
|
|
63
68
|
description?: string;
|
|
64
69
|
};
|
|
65
70
|
export type NodeDescriptionTabsProps = {
|
|
71
|
+
/** Static input ports of the node. */
|
|
66
72
|
inputPorts?: PortTemplate[];
|
|
73
|
+
/** Static output ports of the node. */
|
|
67
74
|
outputPorts?: PortTemplate[];
|
|
75
|
+
/** Dynamic input port groups (e.g. flow variable ports). */
|
|
68
76
|
dynamicInputPorts?: DynamicPortGroup[];
|
|
77
|
+
/** Dynamic output port groups. */
|
|
69
78
|
dynamicOutputPorts?: DynamicPortGroup[];
|
|
79
|
+
/** Configuration options organized into sections. */
|
|
70
80
|
optionsData?: NodeDescriptionOptions[];
|
|
81
|
+
/** Available views (e.g. interactive web views) of the node. */
|
|
71
82
|
viewsData?: NodeDescriptionView[];
|
|
72
83
|
/** Text that is shown if no views, options nor ports are provided */
|
|
73
84
|
emptyText?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/nodes/NodeDescriptionTabs/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG;IACzB;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAC;IACf;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC1E,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC;IAC7B,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACxC,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACvC,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAElC,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mGAAmG;IACnG,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,wEAAwE;IACxE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/nodes/NodeDescriptionTabs/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG;IACzB;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAC;IACf;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC1E,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,sCAAsC;IACtC,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,uCAAuC;IACvC,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC;IAC7B,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,kCAAkC;IAClC,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACxC,qDAAqD;IACrD,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACvC,gEAAgE;IAChE,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAElC,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mGAAmG;IACnG,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,wEAAwE;IACxE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { NodePreviewProps } from './types';
|
|
2
|
+
declare const _default: import('vue').DefineComponent<NodePreviewProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<NodePreviewProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
3
|
+
export default _default;
|
|
4
|
+
//# sourceMappingURL=NodePreview.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodePreview.vue.d.ts","sourceRoot":"","sources":["../../../../src/nodes/NodePreview/NodePreview.vue"],"names":[],"mappings":"AA4IA,OAAO,KAAK,EAAE,gBAAgB,EAAQ,MAAM,SAAS,CAAC;;AAiNtD,wBAOG"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { NodeTorsoProps } from './types';
|
|
2
|
+
declare const _default: import('vue').DefineComponent<NodeTorsoProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<NodeTorsoProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, SVGGElement>;
|
|
3
|
+
export default _default;
|
|
4
|
+
//# sourceMappingURL=SVGNodeTorso.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SVGNodeTorso.vue.d.ts","sourceRoot":"","sources":["../../../../src/nodes/NodePreview/SVGNodeTorso.vue"],"names":[],"mappings":"AA4JA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;;AA8G9C,wBAOG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/nodes/NodePreview/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,KAAK,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare const NodeType: Readonly<{
|
|
2
|
+
readonly Configuration: "Configuration";
|
|
3
|
+
readonly Container: "Container";
|
|
4
|
+
readonly Learner: "Learner";
|
|
5
|
+
readonly Loop: "Loop";
|
|
6
|
+
readonly LoopEnd: "LoopEnd";
|
|
7
|
+
readonly LoopStart: "LoopStart";
|
|
8
|
+
readonly Manipulator: "Manipulator";
|
|
9
|
+
readonly Other: "Other";
|
|
10
|
+
readonly Predictor: "Predictor";
|
|
11
|
+
readonly ScopeEnd: "ScopeEnd";
|
|
12
|
+
readonly ScopeStart: "ScopeStart";
|
|
13
|
+
readonly Sink: "Sink";
|
|
14
|
+
readonly Source: "Source";
|
|
15
|
+
readonly Visualizer: "Visualizer";
|
|
16
|
+
readonly VirtualIn: "VirtualIn";
|
|
17
|
+
readonly VirtualOut: "VirtualOut";
|
|
18
|
+
readonly QuickForm: "QuickForm";
|
|
19
|
+
}>;
|
|
20
|
+
export declare const NodeTypes: readonly ("Configuration" | "Container" | "Learner" | "Loop" | "LoopEnd" | "LoopStart" | "Manipulator" | "Other" | "Predictor" | "ScopeEnd" | "ScopeStart" | "Sink" | "Source" | "Visualizer" | "VirtualIn" | "VirtualOut" | "QuickForm")[];
|
|
21
|
+
export declare const NodePreviewSizes: Readonly<{
|
|
22
|
+
large: "large";
|
|
23
|
+
medium: "medium";
|
|
24
|
+
small: "small";
|
|
25
|
+
}>;
|
|
26
|
+
export declare const NodePreviewSize: readonly ("small" | "medium" | "large")[];
|
|
27
|
+
//# sourceMappingURL=enums.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../../src/nodes/NodePreview/enums.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;EAkBV,CAAC;AAEZ,eAAO,MAAM,SAAS,6OAAyC,CAAC;AAEhE,eAAO,MAAM,gBAAgB;;;;EAI3B,CAAC;AAEH,eAAO,MAAM,eAAe,2CAAiD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/nodes/NodePreview/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE3D,mBAAmB,SAAS,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { KdsIconName } from 'packages/components/dist/src';
|
|
2
|
+
import { PortType } from '../PortIcon';
|
|
3
|
+
import { NodePreviewSize, NodeTypes } from './enums';
|
|
4
|
+
export type NodeType = (typeof NodeTypes)[number];
|
|
5
|
+
export type NodePreviewSize = (typeof NodePreviewSize)[number];
|
|
6
|
+
export type NodeTorsoProps = {
|
|
7
|
+
/**
|
|
8
|
+
* Node type, e.g. "Learner", "Visualizer"
|
|
9
|
+
* as defined in org.knime.core.node.NodeFactory.NodeType.
|
|
10
|
+
* Is undefined for MetaNodes.
|
|
11
|
+
*/
|
|
12
|
+
type?: NodeType | null;
|
|
13
|
+
/**
|
|
14
|
+
* Differentiate between a native node and a component node
|
|
15
|
+
*/
|
|
16
|
+
isComponent?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* data-url containing Base64-encoded icon
|
|
19
|
+
*/
|
|
20
|
+
icon?: string | null;
|
|
21
|
+
};
|
|
22
|
+
export type Port = {
|
|
23
|
+
/** CSS-compatible color string for type "other" and "generic" */
|
|
24
|
+
color?: string;
|
|
25
|
+
optional?: boolean;
|
|
26
|
+
type: PortType;
|
|
27
|
+
};
|
|
28
|
+
export type NodePreviewProps = {
|
|
29
|
+
/**
|
|
30
|
+
* Type of node; determines the background color.
|
|
31
|
+
*/
|
|
32
|
+
type?: NodeType | null;
|
|
33
|
+
/**
|
|
34
|
+
* Use alternative rendering style:
|
|
35
|
+
* Components always have a gray background and a smaller rectangle whose background indicates the node type
|
|
36
|
+
*/
|
|
37
|
+
isComponent?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Shows an indicator icon below the node
|
|
40
|
+
*/
|
|
41
|
+
indicatorIcon?: KdsIconName;
|
|
42
|
+
/**
|
|
43
|
+
* List of incoming ports
|
|
44
|
+
*/
|
|
45
|
+
inPorts?: Port[];
|
|
46
|
+
/**
|
|
47
|
+
* List of outgoing ports
|
|
48
|
+
*/
|
|
49
|
+
outPorts?: Port[];
|
|
50
|
+
/**
|
|
51
|
+
* URL of icon that is rendered inside the node. (Possibly `data:` URL)
|
|
52
|
+
* Passed through to NodeTorso
|
|
53
|
+
*/
|
|
54
|
+
icon?: string | null;
|
|
55
|
+
/**
|
|
56
|
+
* Hide the ports witch frees 2x PORT_SIZE on the width
|
|
57
|
+
*/
|
|
58
|
+
hidePorts?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Hide bottom indicator icons
|
|
61
|
+
*/
|
|
62
|
+
hideIndicators?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Size of the preview
|
|
65
|
+
*/
|
|
66
|
+
size?: NodePreviewSize;
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/nodes/NodePreview/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE1D,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAClD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;OAIG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B;;OAEG;IACH,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB,CAAC"}
|