@dxos/plugin-pipeline 0.8.4-main.422d1c7879 → 0.8.4-main.4f23b4e393
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/lib/neutral/PipelineContainer-7MK2SS76.mjs +69 -0
- package/dist/lib/neutral/PipelineContainer-7MK2SS76.mjs.map +7 -0
- package/dist/lib/neutral/PipelinePlugin.mjs +26 -0
- package/dist/lib/neutral/PipelinePlugin.mjs.map +7 -0
- package/dist/lib/neutral/PipelinePlugin.node.mjs +21 -0
- package/dist/lib/neutral/PipelinePlugin.node.mjs.map +7 -0
- package/dist/lib/neutral/PipelineProperties-GED4FJSS.mjs +211 -0
- package/dist/lib/neutral/PipelineProperties-GED4FJSS.mjs.map +7 -0
- package/dist/lib/neutral/app-graph-builder-ZLGRWRJU.mjs +44 -0
- package/dist/lib/neutral/app-graph-builder-ZLGRWRJU.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +11 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/neutral/chunk-ULB5DKWO.mjs +21 -0
- package/dist/lib/neutral/chunk-ULB5DKWO.mjs.map +7 -0
- package/dist/lib/neutral/components/index.mjs +206 -0
- package/dist/lib/neutral/components/index.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +9 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/neutral/create-object-ZJYFACOI.mjs +25 -0
- package/dist/lib/neutral/create-object-ZJYFACOI.mjs.map +7 -0
- package/dist/lib/neutral/hooks/index.mjs +70 -0
- package/dist/lib/neutral/hooks/index.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +7 -0
- package/dist/lib/neutral/meta.mjs.map +7 -0
- package/dist/lib/neutral/plugin.mjs +11 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/neutral/react-surface-TW6TRMO6.mjs +49 -0
- package/dist/lib/neutral/react-surface-TW6TRMO6.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +38 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/types/src/PipelinePlugin.d.ts +1 -0
- package/dist/types/src/PipelinePlugin.d.ts.map +1 -1
- package/dist/types/src/PipelinePlugin.node.d.ts +4 -0
- package/dist/types/src/PipelinePlugin.node.d.ts.map +1 -0
- package/dist/types/src/PipelinePlugin.test.d.ts +2 -0
- package/dist/types/src/PipelinePlugin.test.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/create-object.d.ts +11 -0
- package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +6 -0
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/PipelineComponent/PipelineColumn.d.ts +4 -4
- package/dist/types/src/components/PipelineComponent/PipelineColumn.d.ts.map +1 -1
- package/dist/types/src/components/PipelineComponent/PipelineComponent.d.ts +4 -0
- package/dist/types/src/components/PipelineComponent/PipelineComponent.d.ts.map +1 -1
- package/dist/types/src/components/PipelineComponent/PipelineComponent.stories.d.ts +44 -25
- package/dist/types/src/components/PipelineComponent/PipelineComponent.stories.d.ts.map +1 -1
- package/dist/types/src/containers/PipelineContainer/PipelineContainer.d.ts.map +1 -1
- package/dist/types/src/containers/PipelineContainer/PipelineContainer.stories.d.ts +52 -33
- package/dist/types/src/containers/PipelineContainer/PipelineContainer.stories.d.ts.map +1 -1
- package/dist/types/src/containers/PipelineProperties/PipelineProperties.d.ts.map +1 -1
- package/dist/types/src/hooks/usePipelineBoardModel.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +0 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/plugin.d.ts +3 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/templates/research.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +44 -26
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +95 -53
- package/src/PipelinePlugin.node.ts +19 -0
- package/src/PipelinePlugin.test.ts +27 -0
- package/src/PipelinePlugin.tsx +5 -30
- package/src/capabilities/create-object.ts +29 -0
- package/src/capabilities/index.ts +1 -0
- package/src/components/PipelineComponent/PipelineColumn.tsx +9 -9
- package/src/components/PipelineComponent/PipelineComponent.stories.tsx +5 -7
- package/src/components/PipelineComponent/PipelineComponent.tsx +1 -1
- package/src/containers/PipelineContainer/PipelineContainer.stories.tsx +14 -15
- package/src/containers/PipelineProperties/PipelineProperties.tsx +23 -23
- package/src/index.ts +0 -1
- package/src/plugin.ts +9 -0
- package/src/templates/research.ts +2 -2
- package/dist/lib/browser/index.mjs +0 -98
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- /package/dist/lib/{browser/types → neutral}/index.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/types/index.mjs +0 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// src/containers/PipelineContainer/PipelineContainer.tsx
|
|
2
|
+
import React, { useCallback, useEffect } from "react";
|
|
3
|
+
import { Capabilities } from "@dxos/app-framework";
|
|
4
|
+
import { Surface, useCapability, useOperationInvoker } from "@dxos/app-framework/ui";
|
|
5
|
+
import { LayoutOperation } from "@dxos/app-toolkit";
|
|
6
|
+
import { AppSurface, OBJECT_ACTIONS_CONTRIBUTION_ID, OBJECT_ACTIONS_CONTRIBUTION_PRIORITY, useObjectMenuItems } from "@dxos/app-toolkit/ui";
|
|
7
|
+
import { Panel } from "@dxos/react-ui";
|
|
8
|
+
import { linkedSegment } from "@dxos/react-ui-attention";
|
|
9
|
+
import { useAttention } from "@dxos/react-ui-attention";
|
|
10
|
+
import { useMenu } from "@dxos/react-ui-menu";
|
|
11
|
+
import { PipelineComponent } from "#components";
|
|
12
|
+
import { usePipelineBoardModel } from "#hooks";
|
|
13
|
+
var PIPELINE_ITEM = "PipelineItem";
|
|
14
|
+
var PipelineContainer = ({ role, subject: pipeline, attendableId }) => {
|
|
15
|
+
const registry = useCapability(Capabilities.AtomRegistry);
|
|
16
|
+
const model = usePipelineBoardModel(pipeline, registry);
|
|
17
|
+
const { invokePromise } = useOperationInvoker();
|
|
18
|
+
const { hasAttention } = useAttention(attendableId);
|
|
19
|
+
const handleColumnAdd = useCallback(() => invokePromise(LayoutOperation.UpdateCompanion, {
|
|
20
|
+
subject: linkedSegment("settings")
|
|
21
|
+
}), [
|
|
22
|
+
invokePromise
|
|
23
|
+
]);
|
|
24
|
+
return /* @__PURE__ */ React.createElement(PipelineComponent.Root, {
|
|
25
|
+
Item: PipelineItem,
|
|
26
|
+
onAddColumn: handleColumnAdd
|
|
27
|
+
}, /* @__PURE__ */ React.createElement(Panel.Root, {
|
|
28
|
+
role
|
|
29
|
+
}, /* @__PURE__ */ React.createElement(Panel.Toolbar, {
|
|
30
|
+
asChild: true
|
|
31
|
+
}, /* @__PURE__ */ React.createElement(PipelineComponent.Toolbar, {
|
|
32
|
+
disabled: !hasAttention
|
|
33
|
+
})), /* @__PURE__ */ React.createElement(Panel.Content, {
|
|
34
|
+
asChild: true
|
|
35
|
+
}, /* @__PURE__ */ React.createElement(PipelineComponent.Content, {
|
|
36
|
+
asChild: true,
|
|
37
|
+
model
|
|
38
|
+
}, /* @__PURE__ */ React.createElement(PipelineComponent.Columns, {
|
|
39
|
+
pipeline
|
|
40
|
+
})))));
|
|
41
|
+
};
|
|
42
|
+
var PipelineItem = ({ item, projectionModel }) => {
|
|
43
|
+
const menu = useMenu(PIPELINE_ITEM);
|
|
44
|
+
const items = useObjectMenuItems(item);
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
menu.addMenuItems({
|
|
47
|
+
id: OBJECT_ACTIONS_CONTRIBUTION_ID,
|
|
48
|
+
mode: "additive",
|
|
49
|
+
priority: OBJECT_ACTIONS_CONTRIBUTION_PRIORITY,
|
|
50
|
+
items
|
|
51
|
+
});
|
|
52
|
+
return () => menu.removeMenuItems(OBJECT_ACTIONS_CONTRIBUTION_ID);
|
|
53
|
+
}, [
|
|
54
|
+
menu,
|
|
55
|
+
items
|
|
56
|
+
]);
|
|
57
|
+
return /* @__PURE__ */ React.createElement(Surface.Surface, {
|
|
58
|
+
type: AppSurface.Card,
|
|
59
|
+
data: {
|
|
60
|
+
subject: item,
|
|
61
|
+
projection: projectionModel
|
|
62
|
+
},
|
|
63
|
+
limit: 1
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
export {
|
|
67
|
+
PipelineContainer as default
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=PipelineContainer-7MK2SS76.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/containers/PipelineContainer/PipelineContainer.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useEffect } from 'react';\n\nimport { Capabilities } from '@dxos/app-framework';\nimport { Surface, useCapability, useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport {\n AppSurface,\n OBJECT_ACTIONS_CONTRIBUTION_ID,\n OBJECT_ACTIONS_CONTRIBUTION_PRIORITY,\n useObjectMenuItems,\n} from '@dxos/app-toolkit/ui';\nimport { Panel } from '@dxos/react-ui';\nimport { linkedSegment } from '@dxos/react-ui-attention';\nimport { useAttention } from '@dxos/react-ui-attention';\nimport { useMenu } from '@dxos/react-ui-menu';\nimport { type Pipeline } from '@dxos/types';\n\nimport { type ItemProps, PipelineComponent } from '#components';\nimport { usePipelineBoardModel } from '#hooks';\n\nconst PIPELINE_ITEM = 'PipelineItem';\n\nexport type PipelineContainerProps = AppSurface.ObjectArticleProps<Pipeline.Pipeline>;\n\nexport const PipelineContainer = ({ role, subject: pipeline, attendableId }: PipelineContainerProps) => {\n const registry = useCapability(Capabilities.AtomRegistry);\n const model = usePipelineBoardModel(pipeline, registry);\n const { invokePromise } = useOperationInvoker();\n const { hasAttention } = useAttention(attendableId);\n\n const handleColumnAdd = useCallback(\n () =>\n invokePromise(LayoutOperation.UpdateCompanion, {\n subject: linkedSegment('settings'),\n }),\n [invokePromise],\n );\n\n return (\n <PipelineComponent.Root Item={PipelineItem} onAddColumn={handleColumnAdd}>\n <Panel.Root role={role}>\n <Panel.Toolbar asChild>\n <PipelineComponent.Toolbar disabled={!hasAttention} />\n </Panel.Toolbar>\n <Panel.Content asChild>\n <PipelineComponent.Content asChild model={model}>\n <PipelineComponent.Columns pipeline={pipeline} />\n </PipelineComponent.Content>\n </Panel.Content>\n </Panel.Root>\n </PipelineComponent.Root>\n );\n};\n\nconst PipelineItem = ({ item, projectionModel }: ItemProps) => {\n const menu = useMenu(PIPELINE_ITEM);\n const items = useObjectMenuItems(item);\n\n useEffect(() => {\n menu.addMenuItems({\n id: OBJECT_ACTIONS_CONTRIBUTION_ID,\n mode: 'additive',\n priority: OBJECT_ACTIONS_CONTRIBUTION_PRIORITY,\n items,\n });\n\n return () => menu.removeMenuItems(OBJECT_ACTIONS_CONTRIBUTION_ID);\n }, [menu, items]);\n\n return (\n <Surface.Surface\n type={AppSurface.Card}\n data={{\n subject: item,\n projection: projectionModel,\n }}\n limit={1}\n />\n );\n};\n"],
|
|
5
|
+
"mappings": ";AAIA,OAAOA,SAASC,aAAaC,iBAAiB;AAE9C,SAASC,oBAAoB;AAC7B,SAASC,SAASC,eAAeC,2BAA2B;AAC5D,SAASC,uBAAuB;AAChC,SACEC,YACAC,gCACAC,sCACAC,0BACK;AACP,SAASC,aAAa;AACtB,SAASC,qBAAqB;AAC9B,SAASC,oBAAoB;AAC7B,SAASC,eAAe;AAGxB,SAAyBC,yBAAyB;AAClD,SAASC,6BAA6B;AAEtC,IAAMC,gBAAgB;AAIf,IAAMC,oBAAoB,CAAC,EAAEC,MAAMC,SAASC,UAAUC,aAAY,MAA0B;AACjG,QAAMC,WAAWnB,cAAcF,aAAasB,YAAY;AACxD,QAAMC,QAAQT,sBAAsBK,UAAUE,QAAAA;AAC9C,QAAM,EAAEG,cAAa,IAAKrB,oBAAAA;AAC1B,QAAM,EAAEsB,aAAY,IAAKd,aAAaS,YAAAA;AAEtC,QAAMM,kBAAkB5B,YACtB,MACE0B,cAAcpB,gBAAgBuB,iBAAiB;IAC7CT,SAASR,cAAc,UAAA;EACzB,CAAA,GACF;IAACc;GAAc;AAGjB,SACE,sBAAA,cAACX,kBAAkBe,MAAI;IAACC,MAAMC;IAAcC,aAAaL;KACvD,sBAAA,cAACjB,MAAMmB,MAAI;IAACX;KACV,sBAAA,cAACR,MAAMuB,SAAO;IAACC,SAAAA;KACb,sBAAA,cAACpB,kBAAkBmB,SAAO;IAACE,UAAU,CAACT;OAExC,sBAAA,cAAChB,MAAM0B,SAAO;IAACF,SAAAA;KACb,sBAAA,cAACpB,kBAAkBsB,SAAO;IAACF,SAAAA;IAAQV;KACjC,sBAAA,cAACV,kBAAkBuB,SAAO;IAACjB;;AAMvC;AAEA,IAAMW,eAAe,CAAC,EAAEO,MAAMC,gBAAe,MAAa;AACxD,QAAMC,OAAO3B,QAAQG,aAAAA;AACrB,QAAMyB,QAAQhC,mBAAmB6B,IAAAA;AAEjCtC,YAAU,MAAA;AACRwC,SAAKE,aAAa;MAChBC,IAAIpC;MACJqC,MAAM;MACNC,UAAUrC;MACViC;IACF,CAAA;AAEA,WAAO,MAAMD,KAAKM,gBAAgBvC,8BAAAA;EACpC,GAAG;IAACiC;IAAMC;GAAM;AAEhB,SACE,sBAAA,cAACvC,QAAQA,SAAO;IACd6C,MAAMzC,WAAW0C;IACjBC,MAAM;MACJ9B,SAASmB;MACTY,YAAYX;IACd;IACAY,OAAO;;AAGb;",
|
|
6
|
+
"names": ["React", "useCallback", "useEffect", "Capabilities", "Surface", "useCapability", "useOperationInvoker", "LayoutOperation", "AppSurface", "OBJECT_ACTIONS_CONTRIBUTION_ID", "OBJECT_ACTIONS_CONTRIBUTION_PRIORITY", "useObjectMenuItems", "Panel", "linkedSegment", "useAttention", "useMenu", "PipelineComponent", "usePipelineBoardModel", "PIPELINE_ITEM", "PipelineContainer", "role", "subject", "pipeline", "attendableId", "registry", "AtomRegistry", "model", "invokePromise", "hasAttention", "handleColumnAdd", "UpdateCompanion", "Root", "Item", "PipelineItem", "onAddColumn", "Toolbar", "asChild", "disabled", "Content", "Columns", "item", "projectionModel", "menu", "items", "addMenuItems", "id", "mode", "priority", "removeMenuItems", "type", "Card", "data", "projection", "limit"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// src/PipelinePlugin.tsx
|
|
2
|
+
import { Plugin } from "@dxos/app-framework";
|
|
3
|
+
import { AppPlugin } from "@dxos/app-toolkit";
|
|
4
|
+
import { Pipeline } from "@dxos/types";
|
|
5
|
+
import { AppGraphBuilder, CreateObject, ReactSurface } from "#capabilities";
|
|
6
|
+
import { meta } from "#meta";
|
|
7
|
+
import { translations } from "#translations";
|
|
8
|
+
var PipelinePlugin = Plugin.define(meta).pipe(AppPlugin.addAppGraphModule({
|
|
9
|
+
activate: AppGraphBuilder
|
|
10
|
+
}), AppPlugin.addCreateObjectModule({
|
|
11
|
+
activate: CreateObject
|
|
12
|
+
}), AppPlugin.addSchemaModule({
|
|
13
|
+
schema: [
|
|
14
|
+
Pipeline.Pipeline
|
|
15
|
+
]
|
|
16
|
+
}), AppPlugin.addSurfaceModule({
|
|
17
|
+
activate: ReactSurface
|
|
18
|
+
}), AppPlugin.addTranslationsModule({
|
|
19
|
+
translations
|
|
20
|
+
}), Plugin.make);
|
|
21
|
+
var PipelinePlugin_default = PipelinePlugin;
|
|
22
|
+
export {
|
|
23
|
+
PipelinePlugin,
|
|
24
|
+
PipelinePlugin_default as default
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=PipelinePlugin.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/PipelinePlugin.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Pipeline } from '@dxos/types';\n\nimport { AppGraphBuilder, CreateObject, ReactSurface } from '#capabilities';\nimport { meta } from '#meta';\nimport { translations } from '#translations';\n\nexport const PipelinePlugin = Plugin.define(meta).pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addCreateObjectModule({ activate: CreateObject }),\n AppPlugin.addSchemaModule({ schema: [Pipeline.Pipeline] }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.make,\n);\n\nexport default PipelinePlugin;\n"],
|
|
5
|
+
"mappings": ";AAIA,SAASA,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AAEzB,SAASC,iBAAiBC,cAAcC,oBAAoB;AAC5D,SAASC,YAAY;AACrB,SAASC,oBAAoB;AAEtB,IAAMC,iBAAiBR,OAAOS,OAAOH,IAAAA,EAAMI,KAChDT,UAAUU,kBAAkB;EAAEC,UAAUT;AAAgB,CAAA,GACxDF,UAAUY,sBAAsB;EAAED,UAAUR;AAAa,CAAA,GACzDH,UAAUa,gBAAgB;EAAEC,QAAQ;IAACb,SAASA;;AAAU,CAAA,GACxDD,UAAUe,iBAAiB;EAAEJ,UAAUP;AAAa,CAAA,GACpDJ,UAAUgB,sBAAsB;EAAEV;AAAa,CAAA,GAC/CP,OAAOkB,IAAI;AAGb,IAAA,yBAAeV;",
|
|
6
|
+
"names": ["Plugin", "AppPlugin", "Pipeline", "AppGraphBuilder", "CreateObject", "ReactSurface", "meta", "translations", "PipelinePlugin", "define", "pipe", "addAppGraphModule", "activate", "addCreateObjectModule", "addSchemaModule", "schema", "addSurfaceModule", "addTranslationsModule", "make"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// src/PipelinePlugin.node.ts
|
|
2
|
+
import { Plugin } from "@dxos/app-framework";
|
|
3
|
+
import { AppPlugin } from "@dxos/app-toolkit";
|
|
4
|
+
import { Pipeline } from "@dxos/types";
|
|
5
|
+
import { AppGraphBuilder, CreateObject } from "#capabilities";
|
|
6
|
+
import { meta } from "#meta";
|
|
7
|
+
var PipelinePlugin = Plugin.define(meta).pipe(AppPlugin.addAppGraphModule({
|
|
8
|
+
activate: AppGraphBuilder
|
|
9
|
+
}), AppPlugin.addCreateObjectModule({
|
|
10
|
+
activate: CreateObject
|
|
11
|
+
}), AppPlugin.addSchemaModule({
|
|
12
|
+
schema: [
|
|
13
|
+
Pipeline.Pipeline
|
|
14
|
+
]
|
|
15
|
+
}), Plugin.make);
|
|
16
|
+
var PipelinePlugin_node_default = PipelinePlugin;
|
|
17
|
+
export {
|
|
18
|
+
PipelinePlugin,
|
|
19
|
+
PipelinePlugin_node_default as default
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=PipelinePlugin.node.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/PipelinePlugin.node.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Pipeline } from '@dxos/types';\n\nimport { AppGraphBuilder, CreateObject } from '#capabilities';\nimport { meta } from '#meta';\n\nexport const PipelinePlugin = Plugin.define(meta).pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addCreateObjectModule({ activate: CreateObject }),\n AppPlugin.addSchemaModule({ schema: [Pipeline.Pipeline] }),\n Plugin.make,\n);\n\nexport default PipelinePlugin;\n"],
|
|
5
|
+
"mappings": ";AAIA,SAASA,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AAEzB,SAASC,iBAAiBC,oBAAoB;AAC9C,SAASC,YAAY;AAEd,IAAMC,iBAAiBN,OAAOO,OAAOF,IAAAA,EAAMG,KAChDP,UAAUQ,kBAAkB;EAAEC,UAAUP;AAAgB,CAAA,GACxDF,UAAUU,sBAAsB;EAAED,UAAUN;AAAa,CAAA,GACzDH,UAAUW,gBAAgB;EAAEC,QAAQ;IAACX,SAASA;;AAAU,CAAA,GACxDF,OAAOc,IAAI;AAGb,IAAA,8BAAeR;",
|
|
6
|
+
"names": ["Plugin", "AppPlugin", "Pipeline", "AppGraphBuilder", "CreateObject", "meta", "PipelinePlugin", "define", "pipe", "addAppGraphModule", "activate", "addCreateObjectModule", "addSchemaModule", "schema", "make"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
// src/containers/PipelineProperties/PipelineProperties.tsx
|
|
2
|
+
import * as Schema from "effect/Schema";
|
|
3
|
+
import React, { useCallback, useMemo, useRef, useState } from "react";
|
|
4
|
+
import { resolveSchemaWithRegistry } from "@dxos/app-toolkit/query";
|
|
5
|
+
import { useTypeOptions } from "@dxos/app-toolkit/ui";
|
|
6
|
+
import { DXN, Filter, JsonSchema, Obj, Query, Ref, Tag } from "@dxos/echo";
|
|
7
|
+
import { useObject, useQuery } from "@dxos/react-client/echo";
|
|
8
|
+
import { IconButton, useAsyncEffect, useTranslation } from "@dxos/react-ui";
|
|
9
|
+
import { Form, ViewEditor } from "@dxos/react-ui-form";
|
|
10
|
+
import { List } from "@dxos/react-ui-list";
|
|
11
|
+
import { ViewModel } from "@dxos/schema";
|
|
12
|
+
import { Pipeline } from "@dxos/types";
|
|
13
|
+
import { mx, osTranslations } from "@dxos/ui-theme";
|
|
14
|
+
import { arrayMove } from "@dxos/util";
|
|
15
|
+
import { meta } from "#meta";
|
|
16
|
+
var listGrid = "grid grid-cols-[min-content_1fr_min-content_min-content_min-content]";
|
|
17
|
+
var listItemGrid = "grid grid-cols-subgrid col-span-5";
|
|
18
|
+
var ColumnFormSchema = Pipeline.Column.pipe(Schema.mutable, Schema.pick("name"));
|
|
19
|
+
var PipelineProperties = ({ classNames, pipeline }) => {
|
|
20
|
+
const { t } = useTranslation(meta.id);
|
|
21
|
+
const db = Obj.getDatabase(pipeline);
|
|
22
|
+
const [expandedId, setExpandedId] = useState();
|
|
23
|
+
const [columns, updateColumns] = useObject(pipeline, "columns");
|
|
24
|
+
const column = useMemo(() => columns.find((column2) => column2.view.dxn.toString() === expandedId), [
|
|
25
|
+
columns,
|
|
26
|
+
expandedId
|
|
27
|
+
]);
|
|
28
|
+
const [view, updateView] = useObject(column?.view);
|
|
29
|
+
const [schema, setSchema] = useState(() => Schema.Struct({}));
|
|
30
|
+
const projectionRef = useRef(null);
|
|
31
|
+
const tags = useQuery(db, Filter.type(Tag.Tag));
|
|
32
|
+
const types = useTypeOptions({
|
|
33
|
+
db,
|
|
34
|
+
annotation: {
|
|
35
|
+
location: [
|
|
36
|
+
"database",
|
|
37
|
+
"runtime"
|
|
38
|
+
],
|
|
39
|
+
kind: [
|
|
40
|
+
"user"
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
useAsyncEffect(async () => {
|
|
45
|
+
if (!view?.query || !db) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const foundSchema = await resolveSchemaWithRegistry(db.schemaRegistry, view.query.ast);
|
|
49
|
+
if (foundSchema && foundSchema !== schema) {
|
|
50
|
+
setSchema(() => foundSchema);
|
|
51
|
+
}
|
|
52
|
+
}, [
|
|
53
|
+
db,
|
|
54
|
+
view,
|
|
55
|
+
schema
|
|
56
|
+
]);
|
|
57
|
+
const handleMove = useCallback((fromIndex, toIndex) => updateColumns((columns2) => {
|
|
58
|
+
arrayMove(columns2, fromIndex, toIndex);
|
|
59
|
+
}), [
|
|
60
|
+
updateColumns
|
|
61
|
+
]);
|
|
62
|
+
const handleQueryChanged = useCallback(async (newQuery, target) => {
|
|
63
|
+
if (!view || !db) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const queue = target && DXN.tryParse(target) ? target : void 0;
|
|
67
|
+
const query = queue ? Query.fromAst(newQuery).from({
|
|
68
|
+
feeds: [
|
|
69
|
+
queue
|
|
70
|
+
]
|
|
71
|
+
}) : Query.fromAst(newQuery);
|
|
72
|
+
updateView((view2) => {
|
|
73
|
+
view2.query.ast = query.ast;
|
|
74
|
+
});
|
|
75
|
+
const newSchema = await resolveSchemaWithRegistry(db.schemaRegistry, query.ast);
|
|
76
|
+
if (!newSchema) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const newView = ViewModel.make({
|
|
80
|
+
query,
|
|
81
|
+
jsonSchema: JsonSchema.toJsonSchema(newSchema)
|
|
82
|
+
});
|
|
83
|
+
updateView((view2) => {
|
|
84
|
+
view2.projection = Obj.getSnapshot(newView).projection;
|
|
85
|
+
});
|
|
86
|
+
setSchema(() => newSchema);
|
|
87
|
+
}, [
|
|
88
|
+
db,
|
|
89
|
+
view,
|
|
90
|
+
updateView,
|
|
91
|
+
schema
|
|
92
|
+
]);
|
|
93
|
+
const handleColumnValuesChanged = useCallback((column2) => (newValues, { changed }) => {
|
|
94
|
+
if (changed["name"]) {
|
|
95
|
+
const columnIndex = columns.findIndex((c) => c === column2);
|
|
96
|
+
if (columnIndex === -1) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
updateColumns((cols) => {
|
|
100
|
+
cols[columnIndex].name = newValues.name ?? "";
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}, [
|
|
104
|
+
columns,
|
|
105
|
+
updateColumns
|
|
106
|
+
]);
|
|
107
|
+
const handleToggleField = useCallback((column2) => {
|
|
108
|
+
setExpandedId((prevExpandedId) => prevExpandedId === column2.view.dxn.toString() ? void 0 : column2.view.dxn.toString());
|
|
109
|
+
}, []);
|
|
110
|
+
const handleDelete = useCallback(async (column2) => {
|
|
111
|
+
if (column2.view.dxn.toString() === expandedId) {
|
|
112
|
+
setExpandedId(void 0);
|
|
113
|
+
}
|
|
114
|
+
const index = columns.findIndex((l) => l === column2);
|
|
115
|
+
const viewToRemove = await column2.view.load();
|
|
116
|
+
updateColumns((columns2) => {
|
|
117
|
+
columns2.splice(index, 1);
|
|
118
|
+
});
|
|
119
|
+
db?.remove(viewToRemove);
|
|
120
|
+
}, [
|
|
121
|
+
expandedId,
|
|
122
|
+
columns,
|
|
123
|
+
updateColumns,
|
|
124
|
+
db
|
|
125
|
+
]);
|
|
126
|
+
const handleAdd = useCallback(() => {
|
|
127
|
+
if (!db) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
const newView = ViewModel.make({
|
|
131
|
+
query: Query.select(Filter.nothing()),
|
|
132
|
+
jsonSchema: JsonSchema.toJsonSchema(Schema.Struct({}))
|
|
133
|
+
});
|
|
134
|
+
db.add(newView);
|
|
135
|
+
updateColumns((columns2) => {
|
|
136
|
+
columns2.push({
|
|
137
|
+
name: "",
|
|
138
|
+
// Type assertion needed due to QueryAST type variance.
|
|
139
|
+
view: Ref.make(newView),
|
|
140
|
+
order: []
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
setExpandedId(newView.id);
|
|
144
|
+
}, [
|
|
145
|
+
db,
|
|
146
|
+
updateColumns
|
|
147
|
+
]);
|
|
148
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
149
|
+
className: mx("py-form-padding overflow-y-auto", classNames)
|
|
150
|
+
}, /* @__PURE__ */ React.createElement("h2", {
|
|
151
|
+
className: "text-sm text-description py-1"
|
|
152
|
+
}, t("views.label")), /* @__PURE__ */ React.createElement(List.Root, {
|
|
153
|
+
items: columns,
|
|
154
|
+
isItem: Schema.is(Pipeline.Column),
|
|
155
|
+
getId: (column2) => column2.view.dxn.toString(),
|
|
156
|
+
onMove: handleMove
|
|
157
|
+
}, ({ items: columns2 }) => /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", {
|
|
158
|
+
role: "list",
|
|
159
|
+
className: mx(listGrid)
|
|
160
|
+
}, columns2.map((column2) => /* @__PURE__ */ React.createElement(List.Item, {
|
|
161
|
+
key: column2.view.dxn.toString(),
|
|
162
|
+
item: column2,
|
|
163
|
+
classNames: listItemGrid,
|
|
164
|
+
"aria-expanded": expandedId === column2.view.dxn.toString()
|
|
165
|
+
}, /* @__PURE__ */ React.createElement("div", {
|
|
166
|
+
className: mx(listItemGrid, "dx-hover rounded-xs cursor-pointer min-h-10")
|
|
167
|
+
}, /* @__PURE__ */ React.createElement(List.ItemDragHandle, null), /* @__PURE__ */ React.createElement(List.ItemTitle, {
|
|
168
|
+
onClick: () => handleToggleField(column2)
|
|
169
|
+
}, column2.name || t("untitled-view.title")), /* @__PURE__ */ React.createElement(List.ItemDeleteButton, {
|
|
170
|
+
label: t("delete-view.label"),
|
|
171
|
+
autoHide: false,
|
|
172
|
+
onClick: () => handleDelete(column2),
|
|
173
|
+
"data-testid": "view.delete"
|
|
174
|
+
}), /* @__PURE__ */ React.createElement(IconButton, {
|
|
175
|
+
iconOnly: true,
|
|
176
|
+
variant: "ghost",
|
|
177
|
+
label: t("toggle-expand.label", {
|
|
178
|
+
ns: osTranslations
|
|
179
|
+
}),
|
|
180
|
+
icon: expandedId === column2.view.dxn.toString() ? "ph--caret-down--regular" : "ph--caret-right--regular",
|
|
181
|
+
onClick: () => handleToggleField(column2)
|
|
182
|
+
})), expandedId === column2.view.dxn.toString() && column2?.view.target && /* @__PURE__ */ React.createElement("div", {
|
|
183
|
+
className: "col-span-5 my-2 border border-separator rounded-md"
|
|
184
|
+
}, /* @__PURE__ */ React.createElement(Form.Root, {
|
|
185
|
+
schema: ColumnFormSchema,
|
|
186
|
+
values: column2,
|
|
187
|
+
onValuesChanged: handleColumnValuesChanged(column2)
|
|
188
|
+
}, /* @__PURE__ */ React.createElement(Form.Content, null, /* @__PURE__ */ React.createElement(Form.FieldSet, null))), /* @__PURE__ */ React.createElement(ViewEditor, {
|
|
189
|
+
ref: projectionRef,
|
|
190
|
+
mode: "tag",
|
|
191
|
+
readonly: true,
|
|
192
|
+
schema,
|
|
193
|
+
view: column2.view.target,
|
|
194
|
+
registry: db?.schemaRegistry,
|
|
195
|
+
db,
|
|
196
|
+
tags,
|
|
197
|
+
types,
|
|
198
|
+
onQueryChanged: handleQueryChanged
|
|
199
|
+
}))))))), /* @__PURE__ */ React.createElement("div", {
|
|
200
|
+
className: "my-form-padding"
|
|
201
|
+
}, /* @__PURE__ */ React.createElement(IconButton, {
|
|
202
|
+
icon: "ph--plus--regular",
|
|
203
|
+
label: t("add-view.label"),
|
|
204
|
+
onClick: handleAdd,
|
|
205
|
+
classNames: "w-full"
|
|
206
|
+
})));
|
|
207
|
+
};
|
|
208
|
+
export {
|
|
209
|
+
PipelineProperties as default
|
|
210
|
+
};
|
|
211
|
+
//# sourceMappingURL=PipelineProperties-GED4FJSS.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/containers/PipelineProperties/PipelineProperties.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\n\nimport { resolveSchemaWithRegistry } from '@dxos/app-toolkit/query';\nimport { useTypeOptions } from '@dxos/app-toolkit/ui';\nimport { DXN, Filter, JsonSchema, Obj, Query, type QueryAST, Ref, Tag } from '@dxos/echo';\nimport { type JsonPath, type Mutable } from '@dxos/echo/internal';\nimport { useObject, useQuery } from '@dxos/react-client/echo';\nimport { IconButton, type ThemedClassName, useAsyncEffect, useTranslation } from '@dxos/react-ui';\nimport { Form, ViewEditor } from '@dxos/react-ui-form';\nimport { List } from '@dxos/react-ui-list';\nimport { type ProjectionModel, ViewModel } from '@dxos/schema';\nimport { Pipeline } from '@dxos/types';\nimport { mx, osTranslations } from '@dxos/ui-theme';\nimport { arrayMove } from '@dxos/util';\n\nimport { meta } from '#meta';\n\nconst listGrid = 'grid grid-cols-[min-content_1fr_min-content_min-content_min-content]';\nconst listItemGrid = 'grid grid-cols-subgrid col-span-5';\n\nconst ColumnFormSchema = Pipeline.Column.pipe(Schema.mutable, Schema.pick('name'));\n\nexport type PipelinePropertiesProps = ThemedClassName<{\n pipeline: Pipeline.Pipeline;\n}>;\n\n/**\n * Supports editing the pipeline view.\n */\nexport const PipelineProperties = ({ classNames, pipeline }: PipelinePropertiesProps) => {\n const { t } = useTranslation(meta.id);\n const db = Obj.getDatabase(pipeline);\n const [expandedId, setExpandedId] = useState<string>();\n const [columns, updateColumns] = useObject(pipeline, 'columns');\n const column = useMemo(\n () => columns.find((column) => column.view.dxn.toString() === expandedId),\n [columns, expandedId],\n );\n const [view, updateView] = useObject(column?.view);\n const [schema, setSchema] = useState<Schema.Schema.AnyNoContext>(() => Schema.Struct({}));\n const projectionRef = useRef<ProjectionModel>(null);\n const tags = useQuery(db, Filter.type(Tag.Tag));\n const types = useTypeOptions({\n db,\n annotation: {\n location: ['database', 'runtime'],\n kind: ['user'],\n },\n });\n\n useAsyncEffect(async () => {\n if (!view?.query || !db) {\n return;\n }\n\n const foundSchema = await resolveSchemaWithRegistry(db.schemaRegistry, view.query.ast);\n if (foundSchema && foundSchema !== schema) {\n setSchema(() => foundSchema);\n }\n }, [db, view, schema]);\n\n const handleMove = useCallback(\n (fromIndex: number, toIndex: number) =>\n updateColumns((columns) => {\n arrayMove(columns, fromIndex, toIndex);\n }),\n [updateColumns],\n );\n\n const handleQueryChanged = useCallback(\n async (newQuery: QueryAST.Query, target?: string) => {\n if (!view || !db) {\n return;\n }\n\n const queue = target && DXN.tryParse(target) ? target : undefined;\n const query = queue ? Query.fromAst(newQuery).from({ feeds: [queue] }) : Query.fromAst(newQuery);\n updateView((view) => {\n view.query.ast = query.ast as Mutable<typeof query.ast>;\n });\n const newSchema = await resolveSchemaWithRegistry(db.schemaRegistry, query.ast);\n if (!newSchema) {\n return;\n }\n\n const newView = ViewModel.make({\n query,\n jsonSchema: JsonSchema.toJsonSchema(newSchema),\n });\n updateView((view) => {\n view.projection = Obj.getSnapshot(newView).projection as Mutable<typeof view.projection>;\n });\n\n setSchema(() => newSchema);\n },\n [db, view, updateView, schema],\n );\n\n const handleColumnValuesChanged = useCallback(\n (column: Pipeline.Column) =>\n (newValues: { name?: string }, { changed }: { changed: Record<JsonPath, boolean> }) => {\n if (changed['name' as JsonPath]) {\n const columnIndex = columns.findIndex((c) => c === column);\n if (columnIndex === -1) {\n return;\n }\n updateColumns((cols) => {\n cols[columnIndex].name = newValues.name ?? '';\n });\n }\n },\n [columns, updateColumns],\n );\n\n const handleToggleField = useCallback((column: Pipeline.Column) => {\n setExpandedId((prevExpandedId) =>\n prevExpandedId === column.view.dxn.toString() ? undefined : column.view.dxn.toString(),\n );\n }, []);\n\n const handleDelete = useCallback(\n async (column: Pipeline.Column) => {\n if (column.view.dxn.toString() === expandedId) {\n setExpandedId(undefined);\n }\n\n const index = columns.findIndex((l) => l === column);\n const viewToRemove = await column.view.load();\n updateColumns((columns) => {\n columns.splice(index, 1);\n });\n db?.remove(viewToRemove);\n },\n [expandedId, columns, updateColumns, db],\n );\n\n const handleAdd = useCallback(() => {\n if (!db) {\n return;\n }\n const newView = ViewModel.make({\n query: Query.select(Filter.nothing()),\n jsonSchema: JsonSchema.toJsonSchema(Schema.Struct({})),\n });\n db.add(newView);\n updateColumns((columns) => {\n columns.push({\n name: '',\n // Type assertion needed due to QueryAST type variance.\n view: Ref.make(newView) as (typeof columns)[number]['view'],\n order: [],\n });\n });\n setExpandedId(newView.id);\n }, [db, updateColumns]);\n\n return (\n <div className={mx('py-form-padding overflow-y-auto', classNames)}>\n <h2 className='text-sm text-description py-1'>{t('views.label')}</h2>\n\n <List.Root<Pipeline.Column>\n items={columns}\n isItem={Schema.is(Pipeline.Column)}\n getId={(column) => column.view.dxn.toString()}\n onMove={handleMove}\n >\n {({ items: columns }) => (\n <>\n <div role='list' className={mx(listGrid)}>\n {columns.map((column) => (\n <List.Item<Pipeline.Column>\n key={column.view.dxn.toString()}\n item={column}\n classNames={listItemGrid}\n aria-expanded={expandedId === column.view.dxn.toString()}\n >\n <div className={mx(listItemGrid, 'dx-hover rounded-xs cursor-pointer min-h-10')}>\n <List.ItemDragHandle />\n <List.ItemTitle onClick={() => handleToggleField(column)}>\n {column.name || t('untitled-view.title')}\n </List.ItemTitle>\n <List.ItemDeleteButton\n label={t('delete-view.label')}\n autoHide={false}\n onClick={() => handleDelete(column)}\n data-testid='view.delete'\n />\n <IconButton\n iconOnly\n variant='ghost'\n label={t('toggle-expand.label', { ns: osTranslations })}\n icon={\n expandedId === column.view.dxn.toString()\n ? 'ph--caret-down--regular'\n : 'ph--caret-right--regular'\n }\n onClick={() => handleToggleField(column)}\n />\n </div>\n {expandedId === column.view.dxn.toString() && column?.view.target && (\n <div className='col-span-5 my-2 border border-separator rounded-md'>\n <Form.Root\n schema={ColumnFormSchema}\n values={column}\n onValuesChanged={handleColumnValuesChanged(column)}\n >\n <Form.Content>\n <Form.FieldSet />\n </Form.Content>\n </Form.Root>\n <ViewEditor\n ref={projectionRef}\n mode='tag'\n readonly\n schema={schema}\n view={column.view.target}\n registry={db?.schemaRegistry}\n db={db}\n tags={tags}\n types={types}\n onQueryChanged={handleQueryChanged}\n />\n </div>\n )}\n </List.Item>\n ))}\n </div>\n </>\n )}\n </List.Root>\n\n <div className='my-form-padding'>\n <IconButton icon='ph--plus--regular' label={t('add-view.label')} onClick={handleAdd} classNames='w-full' />\n </div>\n </div>\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Schema", "React", "useCallback", "useMemo", "useRef", "useState", "resolveSchemaWithRegistry", "useTypeOptions", "DXN", "Filter", "JsonSchema", "Obj", "Query", "Ref", "Tag", "useObject", "useQuery", "IconButton", "useAsyncEffect", "useTranslation", "Form", "ViewEditor", "List", "ViewModel", "Pipeline", "mx", "osTranslations", "arrayMove", "meta", "listGrid", "listItemGrid", "ColumnFormSchema", "Column", "pipe", "mutable", "pick", "PipelineProperties", "classNames", "pipeline", "t", "id", "db", "getDatabase", "expandedId", "setExpandedId", "columns", "updateColumns", "column", "find", "view", "dxn", "toString", "updateView", "schema", "setSchema", "Struct", "projectionRef", "tags", "type", "types", "annotation", "location", "kind", "query", "foundSchema", "schemaRegistry", "ast", "handleMove", "fromIndex", "toIndex", "handleQueryChanged", "newQuery", "target", "queue", "tryParse", "undefined", "fromAst", "from", "feeds", "newSchema", "newView", "make", "jsonSchema", "toJsonSchema", "projection", "getSnapshot", "handleColumnValuesChanged", "newValues", "changed", "columnIndex", "findIndex", "c", "cols", "name", "handleToggleField", "prevExpandedId", "handleDelete", "index", "l", "viewToRemove", "load", "splice", "remove", "handleAdd", "select", "nothing", "add", "push", "order", "div", "className", "h2", "Root", "items", "isItem", "is", "getId", "onMove", "role", "map", "Item", "key", "item", "aria-expanded", "ItemDragHandle", "ItemTitle", "onClick", "ItemDeleteButton", "label", "autoHide", "data-testid", "iconOnly", "variant", "ns", "icon", "values", "onValuesChanged", "Content", "FieldSet", "ref", "mode", "readonly", "registry", "onQueryChanged"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// src/capabilities/app-graph-builder.ts
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import { Capability } from "@dxos/app-framework";
|
|
4
|
+
import { AppCapabilities, AppNode } from "@dxos/app-toolkit";
|
|
5
|
+
import { GraphBuilder } from "@dxos/plugin-graph";
|
|
6
|
+
import { Pipeline } from "@dxos/types";
|
|
7
|
+
import { meta } from "#meta";
|
|
8
|
+
var app_graph_builder_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
9
|
+
const extensions = yield* Effect.all([
|
|
10
|
+
GraphBuilder.createTypeExtension({
|
|
11
|
+
id: "triggers",
|
|
12
|
+
type: Pipeline.Pipeline,
|
|
13
|
+
connector: () => Effect.succeed([
|
|
14
|
+
AppNode.makeCompanion({
|
|
15
|
+
id: "invocations",
|
|
16
|
+
label: [
|
|
17
|
+
"pipeline-invocations.label",
|
|
18
|
+
{
|
|
19
|
+
ns: meta.id
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
icon: "ph--clock-countdown--regular",
|
|
23
|
+
data: "invocations"
|
|
24
|
+
}),
|
|
25
|
+
AppNode.makeCompanion({
|
|
26
|
+
id: "automation",
|
|
27
|
+
label: [
|
|
28
|
+
"pipeline-automation.label",
|
|
29
|
+
{
|
|
30
|
+
ns: meta.id
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
icon: "ph--lightning--regular",
|
|
34
|
+
data: "automation"
|
|
35
|
+
})
|
|
36
|
+
])
|
|
37
|
+
})
|
|
38
|
+
]);
|
|
39
|
+
return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);
|
|
40
|
+
}));
|
|
41
|
+
export {
|
|
42
|
+
app_graph_builder_default as default
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=app-graph-builder-ZLGRWRJU.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/app-graph-builder.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities, AppNode } from '@dxos/app-toolkit';\nimport { GraphBuilder } from '@dxos/plugin-graph';\nimport { Pipeline } from '@dxos/types';\n\nimport { meta } from '#meta';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const extensions = yield* Effect.all([\n GraphBuilder.createTypeExtension({\n id: 'triggers',\n type: Pipeline.Pipeline,\n connector: () =>\n Effect.succeed([\n AppNode.makeCompanion({\n id: 'invocations',\n label: ['pipeline-invocations.label', { ns: meta.id }],\n icon: 'ph--clock-countdown--regular',\n data: 'invocations',\n }),\n AppNode.makeCompanion({\n id: 'automation',\n label: ['pipeline-automation.label', { ns: meta.id }],\n icon: 'ph--lightning--regular',\n data: 'automation',\n }),\n ]),\n }),\n ]);\n\n return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);\n }),\n);\n"],
|
|
5
|
+
"mappings": ";AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiBC,eAAe;AACzC,SAASC,oBAAoB;AAC7B,SAASC,gBAAgB;AAEzB,SAASC,YAAY;AAErB,IAAA,4BAAeL,WAAWM,WACjBC,kBAAW,aAAA;AAChB,QAAMC,aAAa,OAAcC,WAAI;IACnCN,aAAaO,oBAAoB;MAC/BC,IAAI;MACJC,MAAMR,SAASA;MACfS,WAAW,MACFC,eAAQ;QACbZ,QAAQa,cAAc;UACpBJ,IAAI;UACJK,OAAO;YAAC;YAA8B;cAAEC,IAAIZ,KAAKM;YAAG;;UACpDO,MAAM;UACNC,MAAM;QACR,CAAA;QACAjB,QAAQa,cAAc;UACpBJ,IAAI;UACJK,OAAO;YAAC;YAA6B;cAAEC,IAAIZ,KAAKM;YAAG;;UACnDO,MAAM;UACNC,MAAM;QACR,CAAA;OACD;IACL,CAAA;GACD;AAED,SAAOnB,WAAWoB,YAAYnB,gBAAgBoB,iBAAiBb,UAAAA;AACjE,CAAA,CAAA;",
|
|
6
|
+
"names": ["Effect", "Capability", "AppCapabilities", "AppNode", "GraphBuilder", "Pipeline", "meta", "makeModule", "fnUntraced", "extensions", "all", "createTypeExtension", "id", "type", "connector", "succeed", "makeCompanion", "label", "ns", "icon", "data", "contributes", "AppGraphBuilder"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// src/capabilities/index.ts
|
|
2
|
+
import { Capability } from "@dxos/app-framework";
|
|
3
|
+
var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("../app-graph-builder-ZLGRWRJU.mjs"));
|
|
4
|
+
var CreateObject = Capability.lazy("CreateObject", () => import("../create-object-ZJYFACOI.mjs"));
|
|
5
|
+
var ReactSurface = Capability.lazy("ReactSurface", () => import("../react-surface-TW6TRMO6.mjs"));
|
|
6
|
+
export {
|
|
7
|
+
AppGraphBuilder,
|
|
8
|
+
CreateObject,
|
|
9
|
+
ReactSurface
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/capabilities/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\nexport const CreateObject = Capability.lazy('CreateObject', () => import('./create-object'));\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n"],
|
|
5
|
+
"mappings": ";AAIA,SAASA,kBAAkB;AAEpB,IAAMC,kBAAkBD,WAAWE,KAAK,mBAAmB,MAAM,OAAO,mCAAA,CAAA;AACxE,IAAMC,eAAeH,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAClE,IAAME,eAAeJ,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;",
|
|
6
|
+
"names": ["Capability", "AppGraphBuilder", "lazy", "CreateObject", "ReactSurface"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// src/meta.ts
|
|
2
|
+
import { trim } from "@dxos/util";
|
|
3
|
+
var meta = {
|
|
4
|
+
id: "org.dxos.plugin.pipeline",
|
|
5
|
+
name: "Pipelines",
|
|
6
|
+
description: trim`
|
|
7
|
+
Pipelines for organizing tasks, milestones, and deliverables.
|
|
8
|
+
Track progress across multiple pipelines and coordinate team activities in a structured environment.
|
|
9
|
+
`,
|
|
10
|
+
icon: "ph--path--regular",
|
|
11
|
+
iconHue: "purple",
|
|
12
|
+
source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-pipeline",
|
|
13
|
+
tags: [
|
|
14
|
+
"labs"
|
|
15
|
+
]
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export {
|
|
19
|
+
meta
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=chunk-ULB5DKWO.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/meta.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.pipeline',\n name: 'Pipelines',\n description: trim`\n Pipelines for organizing tasks, milestones, and deliverables.\n Track progress across multiple pipelines and coordinate team activities in a structured environment.\n `,\n icon: 'ph--path--regular',\n iconHue: 'purple',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-pipeline',\n tags: ['labs'],\n};\n"],
|
|
5
|
+
"mappings": ";AAKA,SAASA,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaJ;;;;EAIbK,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,MAAM;IAAC;;AACT;",
|
|
6
|
+
"names": ["trim", "meta", "id", "name", "description", "icon", "iconHue", "source", "tags"]
|
|
7
|
+
}
|