@dxos/plugin-thread 0.8.0 → 0.8.1-main.81238a8
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/browser/ChannelContainer-6YTHIJPS.mjs +74 -0
- package/dist/lib/browser/ChannelContainer-6YTHIJPS.mjs.map +7 -0
- package/dist/lib/browser/{chunk-UPKU23DA.mjs → chunk-3BIHVVEA.mjs} +5 -5
- package/dist/lib/browser/chunk-3BIHVVEA.mjs.map +7 -0
- package/dist/lib/browser/{chunk-BNEWNQBO.mjs → chunk-K3NUEKPS.mjs} +14 -2
- package/dist/lib/browser/{chunk-BNEWNQBO.mjs.map → chunk-K3NUEKPS.mjs.map} +4 -4
- package/dist/lib/browser/{chunk-NAO3LZMZ.mjs → chunk-NOOMCX5E.mjs} +3 -2
- package/dist/lib/browser/chunk-NOOMCX5E.mjs.map +7 -0
- package/dist/lib/browser/{chunk-YK3ICB7G.mjs → chunk-OPDRTA7Q.mjs} +2 -2
- package/dist/lib/browser/{chunk-YK3ICB7G.mjs.map → chunk-OPDRTA7Q.mjs.map} +1 -1
- package/dist/lib/browser/{chunk-636QDHE3.mjs → chunk-WBJLUUOK.mjs} +1 -1
- package/dist/lib/browser/{chunk-636QDHE3.mjs.map → chunk-WBJLUUOK.mjs.map} +2 -2
- package/dist/lib/browser/index.mjs +25 -15
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/{intent-resolver-FAFQ54NP.mjs → intent-resolver-WAVFYWIS.mjs} +5 -5
- package/dist/lib/browser/{intent-resolver-FAFQ54NP.mjs.map → intent-resolver-WAVFYWIS.mjs.map} +2 -2
- package/dist/lib/browser/{markdown-RPYOUBVR.mjs → markdown-R6VIT67G.mjs} +6 -6
- package/dist/lib/browser/markdown-R6VIT67G.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-Y4MUSICN.mjs → react-surface-2MKPJW4D.mjs} +15 -28
- package/dist/lib/browser/react-surface-2MKPJW4D.mjs.map +7 -0
- package/dist/lib/browser/{settings-WQTE5AEZ.mjs → settings-2EJW5SUY.mjs} +3 -3
- package/dist/lib/browser/{state-GNFUURIC.mjs → state-HPUFZBB7.mjs} +4 -3
- package/dist/lib/browser/state-HPUFZBB7.mjs.map +7 -0
- package/dist/lib/browser/types.mjs +2 -2
- package/dist/lib/node/ChannelContainer-AVRYTS7L.cjs +98 -0
- package/dist/lib/node/ChannelContainer-AVRYTS7L.cjs.map +7 -0
- package/dist/lib/node/{chunk-AWSTZ2KN.cjs → chunk-E6HDHBUB.cjs} +28 -4
- package/dist/lib/node/chunk-E6HDHBUB.cjs.map +7 -0
- package/dist/lib/node/{chunk-RQR5Z23G.cjs → chunk-EHS2JT63.cjs} +12 -12
- package/dist/lib/node/chunk-EHS2JT63.cjs.map +7 -0
- package/dist/lib/node/{chunk-CMEMMYDL.cjs → chunk-GBL2K6YX.cjs} +6 -6
- package/dist/lib/node/{chunk-CMEMMYDL.cjs.map → chunk-GBL2K6YX.cjs.map} +1 -1
- package/dist/lib/node/{chunk-F735VMTN.cjs → chunk-ONLWOUYZ.cjs} +4 -4
- package/dist/lib/node/{chunk-F735VMTN.cjs.map → chunk-ONLWOUYZ.cjs.map} +2 -2
- package/dist/lib/node/{chunk-FPWNZ6TB.cjs → chunk-VEVJBOWK.cjs} +8 -7
- package/dist/lib/node/chunk-VEVJBOWK.cjs.map +7 -0
- package/dist/lib/node/index.cjs +62 -53
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/{intent-resolver-DVBEXJ33.cjs → intent-resolver-ESZ7YDRL.cjs} +22 -22
- package/dist/lib/node/{intent-resolver-DVBEXJ33.cjs.map → intent-resolver-ESZ7YDRL.cjs.map} +2 -2
- package/dist/lib/node/{markdown-ELRGISXE.cjs → markdown-KJJCSWOZ.cjs} +12 -12
- package/dist/lib/node/markdown-KJJCSWOZ.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-7HLTN5XS.cjs → react-surface-YJNIS6CL.cjs} +35 -48
- package/dist/lib/node/react-surface-YJNIS6CL.cjs.map +7 -0
- package/dist/lib/node/{settings-7VQYARM5.cjs → settings-5YWRJNSN.cjs} +8 -8
- package/dist/lib/node/{state-TQWEZ6B3.cjs → state-JMI5ZXZI.cjs} +8 -7
- package/dist/lib/node/state-JMI5ZXZI.cjs.map +7 -0
- package/dist/lib/node/types.cjs +4 -4
- package/dist/lib/node/types.cjs.map +1 -1
- package/dist/lib/node-esm/ChannelContainer-2ZU33KAF.mjs +75 -0
- package/dist/lib/node-esm/ChannelContainer-2ZU33KAF.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-FXUATCLW.mjs → chunk-42F2DTMM.mjs} +1 -1
- package/dist/lib/node-esm/{chunk-FXUATCLW.mjs.map → chunk-42F2DTMM.mjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-33NDMQQQ.mjs → chunk-B5VGBXRR.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-33NDMQQQ.mjs.map → chunk-B5VGBXRR.mjs.map} +1 -1
- package/dist/lib/node-esm/{chunk-HLWJTUWZ.mjs → chunk-L4C7BEQZ.mjs} +14 -2
- package/dist/lib/node-esm/{chunk-HLWJTUWZ.mjs.map → chunk-L4C7BEQZ.mjs.map} +4 -4
- package/dist/lib/node-esm/{chunk-CISLDOH7.mjs → chunk-RN3V7SYL.mjs} +5 -5
- package/dist/lib/node-esm/chunk-RN3V7SYL.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ZJITX3TO.mjs → chunk-TXW5SIBN.mjs} +3 -2
- package/dist/lib/node-esm/chunk-TXW5SIBN.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +25 -15
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/{intent-resolver-DHVLBNCC.mjs → intent-resolver-YLBQTBSE.mjs} +5 -5
- package/dist/lib/node-esm/{intent-resolver-DHVLBNCC.mjs.map → intent-resolver-YLBQTBSE.mjs.map} +2 -2
- package/dist/lib/node-esm/{markdown-23OB7EZG.mjs → markdown-LF4X5O6L.mjs} +6 -6
- package/dist/lib/node-esm/markdown-LF4X5O6L.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-AZHTTR6J.mjs → react-surface-ZEDBXBP3.mjs} +15 -28
- package/dist/lib/node-esm/react-surface-ZEDBXBP3.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-SGMM7UDT.mjs → settings-5EZW6KK4.mjs} +3 -3
- package/dist/lib/node-esm/{state-7MLR27YG.mjs → state-PSZO57LP.mjs} +4 -3
- package/dist/lib/node-esm/state-PSZO57LP.mjs.map +7 -0
- package/dist/lib/node-esm/types.mjs +2 -2
- package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +5 -0
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/ChannelContainer.d.ts +9 -0
- package/dist/types/src/components/ChannelContainer.d.ts.map +1 -0
- package/dist/types/src/components/ChatContainer.d.ts +3 -2
- package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
- package/dist/types/src/components/CommentContainer.d.ts +2 -1
- package/dist/types/src/components/CommentContainer.d.ts.map +1 -1
- package/dist/types/src/components/CommentsContainer.d.ts +2 -1
- package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
- package/dist/types/src/components/MessageContainer.d.ts +2 -1
- package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
- package/dist/types/src/components/ThreadComplementary.d.ts +2 -1
- package/dist/types/src/components/ThreadComplementary.d.ts.map +1 -1
- package/dist/types/src/components/ThreadSettings.d.ts +2 -1
- package/dist/types/src/components/ThreadSettings.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +3 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/components/testing.d.ts +38 -38
- package/dist/types/src/components/testing.d.ts.map +1 -1
- package/dist/types/src/events.d.ts +4 -0
- package/dist/types/src/events.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +2 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -7
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +2 -0
- package/dist/types/src/types.d.ts.map +1 -1
- package/package.json +31 -30
- package/src/ThreadPlugin.tsx +2 -1
- package/src/capabilities/capabilities.ts +6 -0
- package/src/capabilities/intent-resolver.ts +1 -1
- package/src/capabilities/react-surface.tsx +5 -16
- package/src/capabilities/state.ts +1 -1
- package/src/components/ChannelContainer.tsx +80 -0
- package/src/components/ChatContainer.tsx +1 -1
- package/src/components/CommentContainer.tsx +1 -1
- package/src/components/MessageContainer.tsx +1 -1
- package/src/components/ThreadComplementary.tsx +1 -1
- package/src/components/index.ts +1 -1
- package/src/events.ts +11 -0
- package/src/extensions/threads.ts +2 -2
- package/src/index.ts +2 -0
- package/src/meta.ts +2 -2
- package/src/types.ts +2 -0
- package/dist/lib/browser/ThreadContainer-6OP5AG2W.mjs +0 -19
- package/dist/lib/browser/ThreadContainer-6OP5AG2W.mjs.map +0 -7
- package/dist/lib/browser/chunk-NAO3LZMZ.mjs.map +0 -7
- package/dist/lib/browser/chunk-UPKU23DA.mjs.map +0 -7
- package/dist/lib/browser/chunk-VOMIDDNO.mjs +0 -15
- package/dist/lib/browser/chunk-VOMIDDNO.mjs.map +0 -7
- package/dist/lib/browser/markdown-RPYOUBVR.mjs.map +0 -7
- package/dist/lib/browser/react-surface-Y4MUSICN.mjs.map +0 -7
- package/dist/lib/browser/state-GNFUURIC.mjs.map +0 -7
- package/dist/lib/node/ThreadContainer-LTKKLPXX.cjs +0 -45
- package/dist/lib/node/ThreadContainer-LTKKLPXX.cjs.map +0 -7
- package/dist/lib/node/chunk-AWSTZ2KN.cjs.map +0 -7
- package/dist/lib/node/chunk-BHFHFTHO.cjs +0 -50
- package/dist/lib/node/chunk-BHFHFTHO.cjs.map +0 -7
- package/dist/lib/node/chunk-FPWNZ6TB.cjs.map +0 -7
- package/dist/lib/node/chunk-RQR5Z23G.cjs.map +0 -7
- package/dist/lib/node/markdown-ELRGISXE.cjs.map +0 -7
- package/dist/lib/node/react-surface-7HLTN5XS.cjs.map +0 -7
- package/dist/lib/node/state-TQWEZ6B3.cjs.map +0 -7
- package/dist/lib/node-esm/ThreadContainer-SV74JFRH.mjs +0 -20
- package/dist/lib/node-esm/ThreadContainer-SV74JFRH.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CISLDOH7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PJPVEO7E.mjs +0 -17
- package/dist/lib/node-esm/chunk-PJPVEO7E.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ZJITX3TO.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-23OB7EZG.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-AZHTTR6J.mjs.map +0 -7
- package/dist/lib/node-esm/state-7MLR27YG.mjs.map +0 -7
- package/dist/types/src/components/ThreadContainer.d.ts +0 -7
- package/dist/types/src/components/ThreadContainer.d.ts.map +0 -1
- package/src/components/ThreadContainer.tsx +0 -22
- /package/dist/lib/browser/{settings-WQTE5AEZ.mjs.map → settings-2EJW5SUY.mjs.map} +0 -0
- /package/dist/lib/node/{settings-7VQYARM5.cjs.map → settings-5YWRJNSN.cjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-SGMM7UDT.mjs.map → settings-5EZW6KK4.mjs.map} +0 -0
|
@@ -16,20 +16,21 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var chunk_VEVJBOWK_exports = {};
|
|
20
|
+
__export(chunk_VEVJBOWK_exports, {
|
|
21
21
|
ThreadCapabilities: () => ThreadCapabilities
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
24
|
-
var
|
|
23
|
+
module.exports = __toCommonJS(chunk_VEVJBOWK_exports);
|
|
24
|
+
var import_chunk_ONLWOUYZ = require("./chunk-ONLWOUYZ.cjs");
|
|
25
25
|
var import_app_framework = require("@dxos/app-framework");
|
|
26
26
|
var ThreadCapabilities;
|
|
27
27
|
(function(ThreadCapabilities2) {
|
|
28
|
-
ThreadCapabilities2.State = (0, import_app_framework.defineCapability)(`${
|
|
29
|
-
ThreadCapabilities2.MutableState = (0, import_app_framework.defineCapability)(`${
|
|
28
|
+
ThreadCapabilities2.State = (0, import_app_framework.defineCapability)(`${import_chunk_ONLWOUYZ.THREAD_PLUGIN}/capability/state`);
|
|
29
|
+
ThreadCapabilities2.MutableState = (0, import_app_framework.defineCapability)(`${import_chunk_ONLWOUYZ.THREAD_PLUGIN}/capability/state`);
|
|
30
|
+
ThreadCapabilities2.Activity = (0, import_app_framework.defineCapability)(`${import_chunk_ONLWOUYZ.THREAD_PLUGIN}/capability/activity`);
|
|
30
31
|
})(ThreadCapabilities || (ThreadCapabilities = {}));
|
|
31
32
|
// Annotate the CommonJS export names for ESM import in node:
|
|
32
33
|
0 && (module.exports = {
|
|
33
34
|
ThreadCapabilities
|
|
34
35
|
});
|
|
35
|
-
//# sourceMappingURL=chunk-
|
|
36
|
+
//# sourceMappingURL=chunk-VEVJBOWK.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/capabilities.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineCapability } from '@dxos/app-framework';\nimport { type MenuActionProperties } from '@dxos/react-ui-menu';\nimport { type DeepReadonly } from '@dxos/util';\n\nimport { THREAD_PLUGIN } from '../meta';\nimport { type ViewState, type ThreadState } from '../types';\n\nexport namespace ThreadCapabilities {\n type GetViewState = (subjectId: string) => ViewState;\n export const State = defineCapability<{ state: DeepReadonly<ThreadState>; getViewState: GetViewState }>(\n `${THREAD_PLUGIN}/capability/state`,\n );\n export const MutableState = defineCapability<{ state: ThreadState; getViewState: GetViewState }>(\n `${THREAD_PLUGIN}/capability/state`,\n );\n\n export type Activity = Omit<MenuActionProperties, 'variant' | 'checked'> & {\n id: string;\n };\n export const Activity = defineCapability<Activity>(`${THREAD_PLUGIN}/capability/activity`);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAAiC;;UAOhBA,qBAAAA;sBAEFC,YAAQC,uCACnB,GAAGC,mCAAAA,mBAAgC;sBAExBC,mBAAeF,uCAC1B,GAAGC,mCAAAA,mBAAgC;sBAMxBE,eAAWH,uCAA2B,GAAGC,mCAAAA,sBAAmC;AAC3F,GAbiBH,uBAAAA,qBAAAA,CAAAA,EAAAA;",
|
|
6
|
+
"names": ["ThreadCapabilities", "State", "defineCapability", "THREAD_PLUGIN", "MutableState", "Activity"]
|
|
7
|
+
}
|
package/dist/lib/node/index.cjs
CHANGED
|
@@ -18,21 +18,23 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var node_exports = {};
|
|
20
20
|
__export(node_exports, {
|
|
21
|
-
THREAD_ITEM: () =>
|
|
22
|
-
THREAD_PLUGIN: () =>
|
|
21
|
+
THREAD_ITEM: () => import_chunk_ONLWOUYZ.THREAD_ITEM,
|
|
22
|
+
THREAD_PLUGIN: () => import_chunk_ONLWOUYZ.THREAD_PLUGIN,
|
|
23
|
+
ThreadCapabilities: () => import_chunk_VEVJBOWK.ThreadCapabilities,
|
|
24
|
+
ThreadEvents: () => ThreadEvents,
|
|
23
25
|
ThreadPlugin: () => ThreadPlugin,
|
|
24
|
-
meta: () =>
|
|
25
|
-
useAnalyticsCallback: () =>
|
|
26
|
-
useOnEditAnalytics: () =>
|
|
27
|
-
useStatus: () =>
|
|
26
|
+
meta: () => import_chunk_ONLWOUYZ.meta,
|
|
27
|
+
useAnalyticsCallback: () => import_chunk_E6HDHBUB.useAnalyticsCallback,
|
|
28
|
+
useOnEditAnalytics: () => import_chunk_E6HDHBUB.useOnEditAnalytics,
|
|
29
|
+
useStatus: () => import_chunk_E6HDHBUB.useStatus
|
|
28
30
|
});
|
|
29
31
|
module.exports = __toCommonJS(node_exports);
|
|
30
|
-
var
|
|
31
|
-
var
|
|
32
|
-
var
|
|
33
|
-
var
|
|
34
|
-
var import_chunk_F735VMTN = require("./chunk-F735VMTN.cjs");
|
|
32
|
+
var import_chunk_E6HDHBUB = require("./chunk-E6HDHBUB.cjs");
|
|
33
|
+
var import_chunk_GBL2K6YX = require("./chunk-GBL2K6YX.cjs");
|
|
34
|
+
var import_chunk_VEVJBOWK = require("./chunk-VEVJBOWK.cjs");
|
|
35
|
+
var import_chunk_ONLWOUYZ = require("./chunk-ONLWOUYZ.cjs");
|
|
35
36
|
var import_app_framework = require("@dxos/app-framework");
|
|
37
|
+
var import_app_framework2 = require("@dxos/app-framework");
|
|
36
38
|
var import_plugin_client = require("@dxos/plugin-client");
|
|
37
39
|
var import_plugin_deck = require("@dxos/plugin-deck");
|
|
38
40
|
var import_plugin_markdown = require("@dxos/plugin-markdown");
|
|
@@ -41,13 +43,17 @@ var import_types = require("@dxos/plugin-space/types");
|
|
|
41
43
|
var import_echo = require("@dxos/react-client/echo");
|
|
42
44
|
var import_react_ui_thread = require("@dxos/react-ui-thread");
|
|
43
45
|
var import_types2 = require("@dxos/plugin-space/types");
|
|
46
|
+
var ThreadEvents;
|
|
47
|
+
(function(ThreadEvents3) {
|
|
48
|
+
ThreadEvents3.SetupActivity = import_app_framework.Events.createStateEvent(`${import_chunk_ONLWOUYZ.THREAD_PLUGIN}/setup-activity`);
|
|
49
|
+
})(ThreadEvents || (ThreadEvents = {}));
|
|
44
50
|
var translations_default = [
|
|
45
51
|
{
|
|
46
52
|
"en-US": {
|
|
47
53
|
[import_types2.ChannelType.typename]: {
|
|
48
54
|
"typename label": "Channel"
|
|
49
55
|
},
|
|
50
|
-
[
|
|
56
|
+
[import_chunk_ONLWOUYZ.THREAD_PLUGIN]: {
|
|
51
57
|
"plugin name": "Threads",
|
|
52
58
|
"channel name placeholder": "New channel",
|
|
53
59
|
"channel title label": "Title",
|
|
@@ -81,40 +87,40 @@ var translations_default = [
|
|
|
81
87
|
}
|
|
82
88
|
}
|
|
83
89
|
];
|
|
84
|
-
var ThreadPlugin = () => (0,
|
|
90
|
+
var ThreadPlugin = () => (0, import_app_framework2.definePlugin)(import_chunk_ONLWOUYZ.meta, [
|
|
85
91
|
// TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.
|
|
86
92
|
// defineModule({
|
|
87
93
|
// id: `${meta.id}/module/settings`,
|
|
88
94
|
// activatesOn: Events.SetupSettings,
|
|
89
95
|
// activate: ThreadSettings,
|
|
90
96
|
// }),
|
|
91
|
-
(0,
|
|
92
|
-
id: `${
|
|
97
|
+
(0, import_app_framework2.defineModule)({
|
|
98
|
+
id: `${import_chunk_ONLWOUYZ.meta.id}/module/state`,
|
|
93
99
|
// TODO(wittjosiah): Does not integrate with settings store.
|
|
94
100
|
// Should this be a different event?
|
|
95
101
|
// Should settings store be renamed to be more generic?
|
|
96
|
-
activatesOn:
|
|
97
|
-
activate:
|
|
102
|
+
activatesOn: import_app_framework2.Events.SetupSettings,
|
|
103
|
+
activate: import_chunk_E6HDHBUB.ThreadState
|
|
98
104
|
}),
|
|
99
|
-
(0,
|
|
100
|
-
id: `${
|
|
101
|
-
activatesOn:
|
|
102
|
-
activate: () => (0,
|
|
105
|
+
(0, import_app_framework2.defineModule)({
|
|
106
|
+
id: `${import_chunk_ONLWOUYZ.meta.id}/module/translations`,
|
|
107
|
+
activatesOn: import_app_framework2.Events.SetupTranslations,
|
|
108
|
+
activate: () => (0, import_app_framework2.contributes)(import_app_framework2.Capabilities.Translations, [
|
|
103
109
|
...translations_default,
|
|
104
110
|
...import_react_ui_thread.translations
|
|
105
111
|
])
|
|
106
112
|
}),
|
|
107
|
-
(0,
|
|
108
|
-
id: `${
|
|
109
|
-
activatesOn:
|
|
113
|
+
(0, import_app_framework2.defineModule)({
|
|
114
|
+
id: `${import_chunk_ONLWOUYZ.meta.id}/module/metadata`,
|
|
115
|
+
activatesOn: import_app_framework2.Events.SetupMetadata,
|
|
110
116
|
activate: () => [
|
|
111
|
-
(0,
|
|
117
|
+
(0, import_app_framework2.contributes)(import_app_framework2.Capabilities.Metadata, {
|
|
112
118
|
id: import_types.ChannelType.typename,
|
|
113
119
|
metadata: {
|
|
114
120
|
placeholder: [
|
|
115
121
|
"channel name placeholder",
|
|
116
122
|
{
|
|
117
|
-
ns:
|
|
123
|
+
ns: import_chunk_ONLWOUYZ.THREAD_PLUGIN
|
|
118
124
|
}
|
|
119
125
|
],
|
|
120
126
|
icon: "ph--chat--regular",
|
|
@@ -122,22 +128,22 @@ var ThreadPlugin = () => (0, import_app_framework.definePlugin)(import_chunk_F73
|
|
|
122
128
|
loadReferences: async (channel) => await import_echo.RefArray.loadAll(channel.threads ?? [])
|
|
123
129
|
}
|
|
124
130
|
}),
|
|
125
|
-
(0,
|
|
131
|
+
(0, import_app_framework2.contributes)(import_app_framework2.Capabilities.Metadata, {
|
|
126
132
|
id: import_types.ThreadType.typename,
|
|
127
133
|
metadata: {
|
|
128
134
|
// TODO(wittjosiah): Move out of metadata.
|
|
129
135
|
loadReferences: async (thread) => await import_echo.RefArray.loadAll(thread.messages ?? [])
|
|
130
136
|
}
|
|
131
137
|
}),
|
|
132
|
-
(0,
|
|
138
|
+
(0, import_app_framework2.contributes)(import_app_framework2.Capabilities.Metadata, {
|
|
133
139
|
id: import_types.MessageType.typename,
|
|
134
140
|
metadata: {
|
|
135
141
|
// TODO(wittjosiah): Move out of metadata.
|
|
136
142
|
loadReferences: (message) => []
|
|
137
143
|
}
|
|
138
144
|
}),
|
|
139
|
-
(0,
|
|
140
|
-
id:
|
|
145
|
+
(0, import_app_framework2.contributes)(import_app_framework2.Capabilities.Metadata, {
|
|
146
|
+
id: import_chunk_ONLWOUYZ.THREAD_ITEM,
|
|
141
147
|
metadata: {
|
|
142
148
|
parse: (item, type) => {
|
|
143
149
|
switch (type) {
|
|
@@ -160,31 +166,31 @@ var ThreadPlugin = () => (0, import_app_framework.definePlugin)(import_chunk_F73
|
|
|
160
166
|
})
|
|
161
167
|
]
|
|
162
168
|
}),
|
|
163
|
-
(0,
|
|
164
|
-
id: `${
|
|
169
|
+
(0, import_app_framework2.defineModule)({
|
|
170
|
+
id: `${import_chunk_ONLWOUYZ.meta.id}/module/object-form`,
|
|
165
171
|
activatesOn: import_plugin_client.ClientEvents.SetupSchema,
|
|
166
|
-
activate: () => (0,
|
|
172
|
+
activate: () => (0, import_app_framework2.contributes)(import_plugin_space.SpaceCapabilities.ObjectForm, (0, import_types.defineObjectForm)({
|
|
167
173
|
objectSchema: import_types.ChannelType,
|
|
168
|
-
getIntent: () => (0,
|
|
174
|
+
getIntent: () => (0, import_app_framework2.createIntent)(import_chunk_GBL2K6YX.ThreadAction.Create)
|
|
169
175
|
}))
|
|
170
176
|
}),
|
|
171
|
-
(0,
|
|
172
|
-
id: `${
|
|
177
|
+
(0, import_app_framework2.defineModule)({
|
|
178
|
+
id: `${import_chunk_ONLWOUYZ.meta.id}/module/schema`,
|
|
173
179
|
activatesOn: import_plugin_client.ClientEvents.SetupSchema,
|
|
174
|
-
activate: () => (0,
|
|
180
|
+
activate: () => (0, import_app_framework2.contributes)(import_plugin_client.ClientCapabilities.Schema, [
|
|
175
181
|
import_types.ThreadType,
|
|
176
182
|
import_types.MessageType
|
|
177
183
|
])
|
|
178
184
|
}),
|
|
179
|
-
(0,
|
|
180
|
-
id: `${
|
|
185
|
+
(0, import_app_framework2.defineModule)({
|
|
186
|
+
id: `${import_chunk_ONLWOUYZ.meta.id}/module/complementary-panel`,
|
|
181
187
|
activatesOn: import_plugin_deck.DeckEvents.SetupComplementaryPanels,
|
|
182
|
-
activate: () => (0,
|
|
188
|
+
activate: () => (0, import_app_framework2.contributes)(import_plugin_deck.DeckCapabilities.ComplementaryPanel, {
|
|
183
189
|
id: "comments",
|
|
184
190
|
label: [
|
|
185
191
|
"comments panel label",
|
|
186
192
|
{
|
|
187
|
-
ns:
|
|
193
|
+
ns: import_chunk_ONLWOUYZ.THREAD_PLUGIN
|
|
188
194
|
}
|
|
189
195
|
],
|
|
190
196
|
icon: "ph--chat-text--regular",
|
|
@@ -194,30 +200,33 @@ var ThreadPlugin = () => (0, import_app_framework.definePlugin)(import_chunk_F73
|
|
|
194
200
|
filter: (node) => !!node.data && typeof node.data === "object" && "threads" in node.data && Array.isArray(node.data.threads) && !(node.data instanceof import_types.ChannelType)
|
|
195
201
|
})
|
|
196
202
|
}),
|
|
197
|
-
(0,
|
|
198
|
-
id: `${
|
|
203
|
+
(0, import_app_framework2.defineModule)({
|
|
204
|
+
id: `${import_chunk_ONLWOUYZ.meta.id}/module/markdown`,
|
|
199
205
|
activatesOn: import_plugin_markdown.MarkdownEvents.SetupExtensions,
|
|
200
|
-
activate:
|
|
206
|
+
activate: import_chunk_E6HDHBUB.Markdown
|
|
201
207
|
}),
|
|
202
|
-
(0,
|
|
203
|
-
id: `${
|
|
204
|
-
activatesOn:
|
|
208
|
+
(0, import_app_framework2.defineModule)({
|
|
209
|
+
id: `${import_chunk_ONLWOUYZ.meta.id}/module/react-surface`,
|
|
210
|
+
activatesOn: import_app_framework2.Events.SetupReactSurface,
|
|
205
211
|
// TODO(wittjosiah): Should occur before the comments thread is loaded when surfaces activation is more granular.
|
|
206
212
|
activatesBefore: [
|
|
207
|
-
import_plugin_space.ThreadEvents.SetupThread
|
|
213
|
+
import_plugin_space.ThreadEvents.SetupThread,
|
|
214
|
+
ThreadEvents.SetupActivity
|
|
208
215
|
],
|
|
209
|
-
activate:
|
|
216
|
+
activate: import_chunk_E6HDHBUB.ReactSurface
|
|
210
217
|
}),
|
|
211
|
-
(0,
|
|
212
|
-
id: `${
|
|
213
|
-
activatesOn:
|
|
214
|
-
activate:
|
|
218
|
+
(0, import_app_framework2.defineModule)({
|
|
219
|
+
id: `${import_chunk_ONLWOUYZ.meta.id}/module/intent-resolver`,
|
|
220
|
+
activatesOn: import_app_framework2.Events.SetupIntentResolver,
|
|
221
|
+
activate: import_chunk_E6HDHBUB.IntentResolver
|
|
215
222
|
})
|
|
216
223
|
]);
|
|
217
224
|
// Annotate the CommonJS export names for ESM import in node:
|
|
218
225
|
0 && (module.exports = {
|
|
219
226
|
THREAD_ITEM,
|
|
220
227
|
THREAD_PLUGIN,
|
|
228
|
+
ThreadCapabilities,
|
|
229
|
+
ThreadEvents,
|
|
221
230
|
ThreadPlugin,
|
|
222
231
|
meta,
|
|
223
232
|
useAnalyticsCallback,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/ThreadPlugin.tsx", "../../../src/translations.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { DeckCapabilities, DeckEvents } from '@dxos/plugin-deck';\nimport { MarkdownEvents } from '@dxos/plugin-markdown';\nimport { SpaceCapabilities, ThreadEvents } from '@dxos/plugin-space';\nimport { ChannelType, defineObjectForm, MessageType, ThreadType } from '@dxos/plugin-space/types';\nimport { type ReactiveEchoObject, RefArray } from '@dxos/react-client/echo';\nimport { translations as threadTranslations } from '@dxos/react-ui-thread';\n\nimport { IntentResolver, Markdown, ReactSurface, ThreadState } from './capabilities';\nimport { meta, THREAD_ITEM, THREAD_PLUGIN } from './meta';\nimport translations from './translations';\nimport { ThreadAction } from './types';\n\n// TODO(Zan): Every instance of `cursor` should be replaced with `anchor`.\n// NOTE(burdon): Review/discuss CursorConverter semantics.\nexport const ThreadPlugin = () =>\n definePlugin(meta, [\n // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.\n // defineModule({\n // id: `${meta.id}/module/settings`,\n // activatesOn: Events.SetupSettings,\n // activate: ThreadSettings,\n // }),\n defineModule({\n id: `${meta.id}/module/state`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: Events.SetupSettings,\n activate: ThreadState,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...threadTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () => [\n contributes(Capabilities.Metadata, {\n id: ChannelType.typename,\n metadata: {\n placeholder: ['channel name placeholder', { ns: THREAD_PLUGIN }],\n icon: 'ph--chat--regular',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (channel: ChannelType) => await RefArray.loadAll(channel.threads ?? []),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: ThreadType.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (thread: ThreadType) => await RefArray.loadAll(thread.messages ?? []),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: MessageType.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: (message: MessageType) => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: THREAD_ITEM,\n metadata: {\n parse: (item: ReactiveEchoObject<any>, type: string) => {\n switch (type) {\n case 'node':\n return { id: item.id, label: item.title, data: item };\n case 'object':\n return item;\n case 'view-object':\n return { id: `${item.id}-view`, object: item };\n }\n },\n },\n }),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: ChannelType,\n getIntent: () => createIntent(ThreadAction.Create),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [ThreadType, MessageType]),\n }),\n defineModule({\n id: `${meta.id}/module/complementary-panel`,\n activatesOn: DeckEvents.SetupComplementaryPanels,\n activate: () =>\n contributes(DeckCapabilities.ComplementaryPanel, {\n id: 'comments',\n label: ['comments panel label', { ns: THREAD_PLUGIN }],\n icon: 'ph--chat-text--regular',\n position: 'hoist',\n // TODO(wittjosiah): Support comments on any object.\n // filter: (node) => isEchoObject(node.data) && !!getSpace(node.data),\n filter: (node) =>\n !!node.data &&\n typeof node.data === 'object' &&\n 'threads' in node.data &&\n Array.isArray(node.data.threads) &&\n !(node.data instanceof ChannelType),\n }),\n }),\n defineModule({\n id: `${meta.id}/module/markdown`,\n activatesOn: MarkdownEvents.SetupExtensions,\n activate: Markdown,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the comments thread is loaded when surfaces activation is more granular.\n activatesBefore: [ThreadEvents.SetupThread],\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ChannelType } from '@dxos/plugin-space/types';\n\nimport { THREAD_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [ChannelType.typename]: {\n 'typename label': 'Channel',\n },\n [THREAD_PLUGIN]: {\n 'plugin name': 'Threads',\n 'channel name placeholder': 'New channel',\n 'channel title label': 'Title',\n 'delete channel label': 'Delete channel',\n 'create channel label': 'Create channel',\n 'message placeholder': 'Reply…',\n 'activity message': 'Processing…',\n 'anonymous label': 'Anonymous',\n 'delete message block label': 'Delete message block',\n 'detached thread label': 'Referenced content was removed',\n 'delete thread label': 'Delete thread',\n 'thread deleted label': 'You deleted a thread.',\n 'message deleted label': 'You deleted a message.',\n 'comments heading': 'Comments',\n 'chat heading': 'Chat',\n 'draft button': 'DRAFT',\n 'no comments title': 'No comments (yet)',\n 'no comments message':\n 'To start a comment thread, select a range of text in a document and click the <commentIcon></commentIcon> Create comment button in the toolbar.',\n 'toggle show resolved': 'Show resolved',\n 'unnamed object threads label': 'Threads',\n 'mark as resolved label': 'Mark as resolved',\n 'mark as unresolved label': 'Mark as unresolved',\n 'save message label': 'Save',\n 'edit message label': 'Edit',\n 'delete message label': 'Delete message',\n 'open comments panel label': 'Show Comments',\n 'comments panel label': 'Comments',\n 'show all label': 'All comments',\n 'show unresolved label': 'Unresolved only',\n },\n },\n },\n];\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["import_types", "
|
|
3
|
+
"sources": ["../../../src/events.ts", "../../../src/ThreadPlugin.tsx", "../../../src/translations.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events } from '@dxos/app-framework';\n\nimport { THREAD_PLUGIN } from './meta';\n\nexport namespace ThreadEvents {\n export const SetupActivity = Events.createStateEvent(`${THREAD_PLUGIN}/setup-activity`);\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { DeckCapabilities, DeckEvents } from '@dxos/plugin-deck';\nimport { MarkdownEvents } from '@dxos/plugin-markdown';\nimport { SpaceCapabilities, ThreadEvents } from '@dxos/plugin-space';\nimport { ChannelType, defineObjectForm, MessageType, ThreadType } from '@dxos/plugin-space/types';\nimport { type ReactiveEchoObject, RefArray } from '@dxos/react-client/echo';\nimport { translations as threadTranslations } from '@dxos/react-ui-thread';\n\nimport { IntentResolver, Markdown, ReactSurface, ThreadState } from './capabilities';\nimport { ThreadEvents as LocalThreadEvents } from './events';\nimport { meta, THREAD_ITEM, THREAD_PLUGIN } from './meta';\nimport translations from './translations';\nimport { ThreadAction } from './types';\n\n// TODO(Zan): Every instance of `cursor` should be replaced with `anchor`.\n// NOTE(burdon): Review/discuss CursorConverter semantics.\nexport const ThreadPlugin = () =>\n definePlugin(meta, [\n // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.\n // defineModule({\n // id: `${meta.id}/module/settings`,\n // activatesOn: Events.SetupSettings,\n // activate: ThreadSettings,\n // }),\n defineModule({\n id: `${meta.id}/module/state`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: Events.SetupSettings,\n activate: ThreadState,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...threadTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () => [\n contributes(Capabilities.Metadata, {\n id: ChannelType.typename,\n metadata: {\n placeholder: ['channel name placeholder', { ns: THREAD_PLUGIN }],\n icon: 'ph--chat--regular',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (channel: ChannelType) => await RefArray.loadAll(channel.threads ?? []),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: ThreadType.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (thread: ThreadType) => await RefArray.loadAll(thread.messages ?? []),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: MessageType.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: (message: MessageType) => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: THREAD_ITEM,\n metadata: {\n parse: (item: ReactiveEchoObject<any>, type: string) => {\n switch (type) {\n case 'node':\n return { id: item.id, label: item.title, data: item };\n case 'object':\n return item;\n case 'view-object':\n return { id: `${item.id}-view`, object: item };\n }\n },\n },\n }),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: ChannelType,\n getIntent: () => createIntent(ThreadAction.Create),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [ThreadType, MessageType]),\n }),\n defineModule({\n id: `${meta.id}/module/complementary-panel`,\n activatesOn: DeckEvents.SetupComplementaryPanels,\n activate: () =>\n contributes(DeckCapabilities.ComplementaryPanel, {\n id: 'comments',\n label: ['comments panel label', { ns: THREAD_PLUGIN }],\n icon: 'ph--chat-text--regular',\n position: 'hoist',\n // TODO(wittjosiah): Support comments on any object.\n // filter: (node) => isEchoObject(node.data) && !!getSpace(node.data),\n filter: (node) =>\n !!node.data &&\n typeof node.data === 'object' &&\n 'threads' in node.data &&\n Array.isArray(node.data.threads) &&\n !(node.data instanceof ChannelType),\n }),\n }),\n defineModule({\n id: `${meta.id}/module/markdown`,\n activatesOn: MarkdownEvents.SetupExtensions,\n activate: Markdown,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the comments thread is loaded when surfaces activation is more granular.\n activatesBefore: [ThreadEvents.SetupThread, LocalThreadEvents.SetupActivity],\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ChannelType } from '@dxos/plugin-space/types';\n\nimport { THREAD_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [ChannelType.typename]: {\n 'typename label': 'Channel',\n },\n [THREAD_PLUGIN]: {\n 'plugin name': 'Threads',\n 'channel name placeholder': 'New channel',\n 'channel title label': 'Title',\n 'delete channel label': 'Delete channel',\n 'create channel label': 'Create channel',\n 'message placeholder': 'Reply…',\n 'activity message': 'Processing…',\n 'anonymous label': 'Anonymous',\n 'delete message block label': 'Delete message block',\n 'detached thread label': 'Referenced content was removed',\n 'delete thread label': 'Delete thread',\n 'thread deleted label': 'You deleted a thread.',\n 'message deleted label': 'You deleted a message.',\n 'comments heading': 'Comments',\n 'chat heading': 'Chat',\n 'draft button': 'DRAFT',\n 'no comments title': 'No comments (yet)',\n 'no comments message':\n 'To start a comment thread, select a range of text in a document and click the <commentIcon></commentIcon> Create comment button in the toolbar.',\n 'toggle show resolved': 'Show resolved',\n 'unnamed object threads label': 'Threads',\n 'mark as resolved label': 'Mark as resolved',\n 'mark as unresolved label': 'Mark as unresolved',\n 'save message label': 'Save',\n 'edit message label': 'Edit',\n 'delete message label': 'Delete message',\n 'open comments panel label': 'Show Comments',\n 'comments panel label': 'Comments',\n 'show all label': 'All comments',\n 'show unresolved label': 'Unresolved only',\n },\n },\n },\n];\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_app_framework", "import_types", "ThreadEvents", "SetupActivity", "Events", "createStateEvent", "THREAD_PLUGIN", "ChannelType", "typename", "ThreadPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "SetupSettings", "activate", "ThreadState", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "threadTranslations", "SetupMetadata", "Metadata", "metadata", "placeholder", "ns", "icon", "loadReferences", "channel", "RefArray", "loadAll", "threads", "ThreadType", "thread", "messages", "MessageType", "message", "THREAD_ITEM", "parse", "item", "type", "label", "title", "data", "object", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "getIntent", "createIntent", "ThreadAction", "Create", "ClientCapabilities", "Schema", "DeckEvents", "SetupComplementaryPanels", "DeckCapabilities", "ComplementaryPanel", "position", "filter", "node", "Array", "isArray", "MarkdownEvents", "SetupExtensions", "Markdown", "SetupReactSurface", "activatesBefore", "SetupThread", "LocalThreadEvents", "ReactSurface", "SetupIntentResolver", "IntentResolver"]
|
|
7
7
|
}
|
|
@@ -16,14 +16,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var intent_resolver_ESZ7YDRL_exports = {};
|
|
20
|
+
__export(intent_resolver_ESZ7YDRL_exports, {
|
|
21
21
|
default: () => intent_resolver_default
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
24
|
-
var
|
|
25
|
-
var
|
|
26
|
-
var
|
|
23
|
+
module.exports = __toCommonJS(intent_resolver_ESZ7YDRL_exports);
|
|
24
|
+
var import_chunk_GBL2K6YX = require("./chunk-GBL2K6YX.cjs");
|
|
25
|
+
var import_chunk_VEVJBOWK = require("./chunk-VEVJBOWK.cjs");
|
|
26
|
+
var import_chunk_ONLWOUYZ = require("./chunk-ONLWOUYZ.cjs");
|
|
27
27
|
var import_app_framework = require("@dxos/app-framework");
|
|
28
28
|
var import_echo_schema = require("@dxos/echo-schema");
|
|
29
29
|
var import_log = require("@dxos/log");
|
|
@@ -33,7 +33,7 @@ var import_echo = require("@dxos/react-client/echo");
|
|
|
33
33
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-thread/src/capabilities/intent-resolver.ts";
|
|
34
34
|
var intent_resolver_default = (context) => (0, import_app_framework.contributes)(import_app_framework.Capabilities.IntentResolver, [
|
|
35
35
|
(0, import_app_framework.createResolver)({
|
|
36
|
-
intent:
|
|
36
|
+
intent: import_chunk_GBL2K6YX.ThreadAction.Create,
|
|
37
37
|
resolve: ({ name, cursor, subject }) => {
|
|
38
38
|
if (cursor && subject) {
|
|
39
39
|
if (subject?.threads === void 0) {
|
|
@@ -51,7 +51,7 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
|
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
const { state } = context.requestCapability(
|
|
54
|
+
const { state } = context.requestCapability(import_chunk_VEVJBOWK.ThreadCapabilities.MutableState);
|
|
55
55
|
const subjectId = (0, import_echo.fullyQualifiedId)(subject);
|
|
56
56
|
const thread = (0, import_echo.create)(import_types2.ThreadType, {
|
|
57
57
|
name,
|
|
@@ -72,7 +72,7 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
|
|
|
72
72
|
object: thread
|
|
73
73
|
},
|
|
74
74
|
intents: [
|
|
75
|
-
(0, import_app_framework.createIntent)(
|
|
75
|
+
(0, import_app_framework.createIntent)(import_chunk_GBL2K6YX.ThreadAction.Select, {
|
|
76
76
|
current: (0, import_echo.fullyQualifiedId)(thread)
|
|
77
77
|
}),
|
|
78
78
|
(0, import_app_framework.createIntent)(import_app_framework.LayoutAction.UpdateComplementary, {
|
|
@@ -97,9 +97,9 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
|
|
|
97
97
|
}
|
|
98
98
|
}),
|
|
99
99
|
(0, import_app_framework.createResolver)({
|
|
100
|
-
intent:
|
|
100
|
+
intent: import_chunk_GBL2K6YX.ThreadAction.Select,
|
|
101
101
|
resolve: ({ current, skipOpen }) => {
|
|
102
|
-
const { state } = context.requestCapability(
|
|
102
|
+
const { state } = context.requestCapability(import_chunk_VEVJBOWK.ThreadCapabilities.MutableState);
|
|
103
103
|
state.current = current;
|
|
104
104
|
return {
|
|
105
105
|
intents: !skipOpen ? [
|
|
@@ -112,7 +112,7 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
|
|
|
112
112
|
}
|
|
113
113
|
}),
|
|
114
114
|
(0, import_app_framework.createResolver)({
|
|
115
|
-
intent:
|
|
115
|
+
intent: import_chunk_GBL2K6YX.ThreadAction.ToggleResolved,
|
|
116
116
|
resolve: ({ thread }) => {
|
|
117
117
|
if (thread.status === "active" || thread.status === void 0) {
|
|
118
118
|
thread.status = "resolved";
|
|
@@ -135,9 +135,9 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
|
|
|
135
135
|
}
|
|
136
136
|
}),
|
|
137
137
|
(0, import_app_framework.createResolver)({
|
|
138
|
-
intent:
|
|
138
|
+
intent: import_chunk_GBL2K6YX.ThreadAction.Delete,
|
|
139
139
|
resolve: ({ subject, thread }, undo) => {
|
|
140
|
-
const { state } = context.requestCapability(
|
|
140
|
+
const { state } = context.requestCapability(import_chunk_VEVJBOWK.ThreadCapabilities.MutableState);
|
|
141
141
|
const subjectId = (0, import_echo.fullyQualifiedId)(subject);
|
|
142
142
|
const draft = state.drafts[subjectId];
|
|
143
143
|
if (draft) {
|
|
@@ -163,7 +163,7 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
|
|
|
163
163
|
message: [
|
|
164
164
|
"thread deleted label",
|
|
165
165
|
{
|
|
166
|
-
ns:
|
|
166
|
+
ns: import_chunk_ONLWOUYZ.THREAD_PLUGIN
|
|
167
167
|
}
|
|
168
168
|
],
|
|
169
169
|
data: {
|
|
@@ -198,9 +198,9 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
|
|
|
198
198
|
}
|
|
199
199
|
}),
|
|
200
200
|
(0, import_app_framework.createResolver)({
|
|
201
|
-
intent:
|
|
201
|
+
intent: import_chunk_GBL2K6YX.ThreadAction.OnMessageAdd,
|
|
202
202
|
resolve: ({ thread, subject }) => {
|
|
203
|
-
const { state } = context.requestCapability(
|
|
203
|
+
const { state } = context.requestCapability(import_chunk_VEVJBOWK.ThreadCapabilities.MutableState);
|
|
204
204
|
const subjectId = (0, import_echo.fullyQualifiedId)(subject);
|
|
205
205
|
const space = (0, import_echo.getSpace)(subject);
|
|
206
206
|
const intents = [];
|
|
@@ -232,7 +232,7 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
|
|
|
232
232
|
}
|
|
233
233
|
}),
|
|
234
234
|
(0, import_app_framework.createResolver)({
|
|
235
|
-
intent:
|
|
235
|
+
intent: import_chunk_GBL2K6YX.ThreadAction.DeleteMessage,
|
|
236
236
|
resolve: ({ subject, thread, messageId, message, messageIndex }, undo) => {
|
|
237
237
|
const space = (0, import_echo.getSpace)(subject);
|
|
238
238
|
if (!undo) {
|
|
@@ -244,7 +244,7 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
|
|
|
244
244
|
if (messageIndex2 === 0 && thread.messages.length === 1) {
|
|
245
245
|
return {
|
|
246
246
|
intents: [
|
|
247
|
-
(0, import_app_framework.createIntent)(
|
|
247
|
+
(0, import_app_framework.createIntent)(import_chunk_GBL2K6YX.ThreadAction.Delete, {
|
|
248
248
|
subject,
|
|
249
249
|
thread
|
|
250
250
|
})
|
|
@@ -258,7 +258,7 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
|
|
|
258
258
|
message: [
|
|
259
259
|
"message deleted label",
|
|
260
260
|
{
|
|
261
|
-
ns:
|
|
261
|
+
ns: import_chunk_ONLWOUYZ.THREAD_PLUGIN
|
|
262
262
|
}
|
|
263
263
|
],
|
|
264
264
|
data: {
|
|
@@ -277,7 +277,7 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
|
|
|
277
277
|
]
|
|
278
278
|
};
|
|
279
279
|
} else {
|
|
280
|
-
if (
|
|
280
|
+
if (messageIndex === void 0 || !message) {
|
|
281
281
|
return;
|
|
282
282
|
}
|
|
283
283
|
thread.messages.splice(messageIndex, 0, (0, import_echo.makeRef)(message));
|
|
@@ -296,4 +296,4 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
|
|
|
296
296
|
}
|
|
297
297
|
})
|
|
298
298
|
]);
|
|
299
|
-
//# sourceMappingURL=intent-resolver-
|
|
299
|
+
//# sourceMappingURL=intent-resolver-ESZ7YDRL.cjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/capabilities/intent-resolver.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n createResolver,\n LayoutAction,\n type PluginsContext,\n} from '@dxos/app-framework';\nimport { Ref } from '@dxos/echo-schema';\nimport { log } from '@dxos/log';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { ChannelType, ThreadType } from '@dxos/plugin-space/types';\nimport { create, fullyQualifiedId, getSpace, makeRef } from '@dxos/react-client/echo';\n\nimport { ThreadCapabilities } from './capabilities';\nimport { THREAD_PLUGIN } from '../meta';\nimport { ThreadAction } from '../types';\n\nexport default (context: PluginsContext) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: ThreadAction.Create,\n resolve: ({ name, cursor, subject }) => {\n if (cursor && subject) {\n // Seed the threads array if it does not exist.\n if (subject?.threads === undefined) {\n try {\n // Static schema will throw an error if subject does not support threads array property.\n subject.threads = [];\n } catch (err) {\n log.error('Subject does not support threads array', { typename: subject?.typename });\n return;\n }\n }\n\n const { state } = context.requestCapability(ThreadCapabilities.MutableState);\n const subjectId = fullyQualifiedId(subject);\n const thread = create(ThreadType, { name, anchor: cursor, messages: [], status: 'staged' });\n const draft = state.drafts[subjectId];\n if (draft) {\n draft.push(thread);\n } else {\n state.drafts[subjectId] = [thread];\n }\n\n return {\n data: { object: thread },\n intents: [\n createIntent(ThreadAction.Select, { current: fullyQualifiedId(thread) }),\n createIntent(LayoutAction.UpdateComplementary, { part: 'complementary', subject: 'comments' }),\n ],\n };\n } else {\n // TODO(wittjosiah): Create separate intent for channel creation.\n return {\n data: { object: create(ChannelType, { threads: [makeRef(create(ThreadType, { messages: [] }))] }) },\n };\n }\n },\n }),\n createResolver({\n intent: ThreadAction.Select,\n resolve: ({ current, skipOpen }) => {\n const { state } = context.requestCapability(ThreadCapabilities.MutableState);\n state.current = current;\n\n return {\n intents: !skipOpen\n ? [createIntent(LayoutAction.UpdateComplementary, { part: 'complementary', subject: 'comments' })]\n : undefined,\n };\n },\n }),\n createResolver({\n intent: ThreadAction.ToggleResolved,\n resolve: ({ thread }) => {\n if (thread.status === 'active' || thread.status === undefined) {\n thread.status = 'resolved';\n } else if (thread.status === 'resolved') {\n thread.status = 'active';\n }\n\n const space = getSpace(thread);\n const spaceId = space?.id;\n\n return {\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.toggle-resolved',\n properties: { threadId: thread.id, spaceId },\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: ThreadAction.Delete,\n resolve: ({ subject, thread }, undo) => {\n const { state } = context.requestCapability(ThreadCapabilities.MutableState);\n const subjectId = fullyQualifiedId(subject);\n const draft = state.drafts[subjectId];\n if (draft) {\n // Check if we're deleting a draft; if so, remove it.\n const index = draft.findIndex((t) => t.id === thread.id);\n if (index !== -1) {\n draft.splice(index, 1);\n return;\n }\n }\n\n const space = getSpace(thread);\n if (!space || !subject.threads) {\n return;\n }\n\n if (!undo) {\n const index = subject.threads.findIndex((t: any) => t?.id === thread.id);\n const cursor = subject.threads[index]?.anchor;\n if (index !== -1) {\n subject.threads?.splice(index, 1);\n }\n\n space.db.remove(thread);\n\n return {\n undoable: {\n message: ['thread deleted label', { ns: THREAD_PLUGIN }],\n data: { cursor },\n },\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.delete',\n properties: { threadId: thread.id, spaceId: space.id },\n }),\n ],\n };\n } else {\n // TODO(wittjosiah): SDK should do this automatically.\n const savedThread = space.db.add(thread);\n subject.threads.push(savedThread);\n\n return {\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.undo-delete',\n properties: { threadId: thread.id, spaceId: space.id },\n }),\n ],\n };\n }\n },\n }),\n createResolver({\n intent: ThreadAction.OnMessageAdd,\n resolve: ({ thread, subject }) => {\n const { state } = context.requestCapability(ThreadCapabilities.MutableState);\n const subjectId = fullyQualifiedId(subject);\n const space = getSpace(subject);\n const intents = [];\n const analyticsProperties = { threadId: thread.id, spaceId: space?.id };\n\n if (state.drafts[subjectId]?.find((t) => t === thread)) {\n // Move draft to document.\n thread.status = 'active';\n subject.threads ? subject.threads.push(makeRef(thread)) : (subject.threads = [makeRef(thread)]);\n state.drafts[subjectId] = state.drafts[subjectId]?.filter(({ id }) => id !== thread.id);\n intents.push(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.thread-created',\n properties: analyticsProperties,\n }),\n );\n }\n\n intents.push(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message-added',\n properties: { ...analyticsProperties, threadLength: thread.messages.length },\n }),\n );\n\n return { intents };\n },\n }),\n createResolver({\n intent: ThreadAction.DeleteMessage,\n resolve: ({ subject, thread, messageId, message, messageIndex }, undo) => {\n const space = getSpace(subject);\n\n if (!undo) {\n const messageIndex = thread.messages.findIndex(Ref.hasObjectId(messageId));\n const message = thread.messages[messageIndex]?.target;\n if (!message) {\n return;\n }\n\n if (messageIndex === 0 && thread.messages.length === 1) {\n // If the message is the only message in the thread, delete the thread.\n return {\n intents: [createIntent(ThreadAction.Delete, { subject, thread })],\n };\n } else {\n thread.messages.splice(messageIndex, 1);\n }\n\n return {\n undoable: {\n message: ['message deleted label', { ns: THREAD_PLUGIN }],\n data: { message, messageIndex },\n },\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message.delete',\n properties: { threadId: thread.id, spaceId: space?.id },\n }),\n ],\n };\n } else {\n if (
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n createResolver,\n LayoutAction,\n type PluginsContext,\n} from '@dxos/app-framework';\nimport { Ref } from '@dxos/echo-schema';\nimport { log } from '@dxos/log';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { ChannelType, ThreadType } from '@dxos/plugin-space/types';\nimport { create, fullyQualifiedId, getSpace, makeRef } from '@dxos/react-client/echo';\n\nimport { ThreadCapabilities } from './capabilities';\nimport { THREAD_PLUGIN } from '../meta';\nimport { ThreadAction } from '../types';\n\nexport default (context: PluginsContext) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: ThreadAction.Create,\n resolve: ({ name, cursor, subject }) => {\n if (cursor && subject) {\n // Seed the threads array if it does not exist.\n if (subject?.threads === undefined) {\n try {\n // Static schema will throw an error if subject does not support threads array property.\n subject.threads = [];\n } catch (err) {\n log.error('Subject does not support threads array', { typename: subject?.typename });\n return;\n }\n }\n\n const { state } = context.requestCapability(ThreadCapabilities.MutableState);\n const subjectId = fullyQualifiedId(subject);\n const thread = create(ThreadType, { name, anchor: cursor, messages: [], status: 'staged' });\n const draft = state.drafts[subjectId];\n if (draft) {\n draft.push(thread);\n } else {\n state.drafts[subjectId] = [thread];\n }\n\n return {\n data: { object: thread },\n intents: [\n createIntent(ThreadAction.Select, { current: fullyQualifiedId(thread) }),\n createIntent(LayoutAction.UpdateComplementary, { part: 'complementary', subject: 'comments' }),\n ],\n };\n } else {\n // TODO(wittjosiah): Create separate intent for channel creation.\n return {\n data: { object: create(ChannelType, { threads: [makeRef(create(ThreadType, { messages: [] }))] }) },\n };\n }\n },\n }),\n createResolver({\n intent: ThreadAction.Select,\n resolve: ({ current, skipOpen }) => {\n const { state } = context.requestCapability(ThreadCapabilities.MutableState);\n state.current = current;\n\n return {\n intents: !skipOpen\n ? [createIntent(LayoutAction.UpdateComplementary, { part: 'complementary', subject: 'comments' })]\n : undefined,\n };\n },\n }),\n createResolver({\n intent: ThreadAction.ToggleResolved,\n resolve: ({ thread }) => {\n if (thread.status === 'active' || thread.status === undefined) {\n thread.status = 'resolved';\n } else if (thread.status === 'resolved') {\n thread.status = 'active';\n }\n\n const space = getSpace(thread);\n const spaceId = space?.id;\n\n return {\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.toggle-resolved',\n properties: { threadId: thread.id, spaceId },\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: ThreadAction.Delete,\n resolve: ({ subject, thread }, undo) => {\n const { state } = context.requestCapability(ThreadCapabilities.MutableState);\n const subjectId = fullyQualifiedId(subject);\n const draft = state.drafts[subjectId];\n if (draft) {\n // Check if we're deleting a draft; if so, remove it.\n const index = draft.findIndex((t) => t.id === thread.id);\n if (index !== -1) {\n draft.splice(index, 1);\n return;\n }\n }\n\n const space = getSpace(thread);\n if (!space || !subject.threads) {\n return;\n }\n\n if (!undo) {\n const index = subject.threads.findIndex((t: any) => t?.id === thread.id);\n const cursor = subject.threads[index]?.anchor;\n if (index !== -1) {\n subject.threads?.splice(index, 1);\n }\n\n space.db.remove(thread);\n\n return {\n undoable: {\n message: ['thread deleted label', { ns: THREAD_PLUGIN }],\n data: { cursor },\n },\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.delete',\n properties: { threadId: thread.id, spaceId: space.id },\n }),\n ],\n };\n } else {\n // TODO(wittjosiah): SDK should do this automatically.\n const savedThread = space.db.add(thread);\n subject.threads.push(savedThread);\n\n return {\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.undo-delete',\n properties: { threadId: thread.id, spaceId: space.id },\n }),\n ],\n };\n }\n },\n }),\n createResolver({\n intent: ThreadAction.OnMessageAdd,\n resolve: ({ thread, subject }) => {\n const { state } = context.requestCapability(ThreadCapabilities.MutableState);\n const subjectId = fullyQualifiedId(subject);\n const space = getSpace(subject);\n const intents = [];\n const analyticsProperties = { threadId: thread.id, spaceId: space?.id };\n\n if (state.drafts[subjectId]?.find((t) => t === thread)) {\n // Move draft to document.\n thread.status = 'active';\n subject.threads ? subject.threads.push(makeRef(thread)) : (subject.threads = [makeRef(thread)]);\n state.drafts[subjectId] = state.drafts[subjectId]?.filter(({ id }) => id !== thread.id);\n intents.push(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.thread-created',\n properties: analyticsProperties,\n }),\n );\n }\n\n intents.push(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message-added',\n properties: { ...analyticsProperties, threadLength: thread.messages.length },\n }),\n );\n\n return { intents };\n },\n }),\n createResolver({\n intent: ThreadAction.DeleteMessage,\n resolve: ({ subject, thread, messageId, message, messageIndex }, undo) => {\n const space = getSpace(subject);\n\n if (!undo) {\n const messageIndex = thread.messages.findIndex(Ref.hasObjectId(messageId));\n const message = thread.messages[messageIndex]?.target;\n if (!message) {\n return;\n }\n\n if (messageIndex === 0 && thread.messages.length === 1) {\n // If the message is the only message in the thread, delete the thread.\n return {\n intents: [createIntent(ThreadAction.Delete, { subject, thread })],\n };\n } else {\n thread.messages.splice(messageIndex, 1);\n }\n\n return {\n undoable: {\n message: ['message deleted label', { ns: THREAD_PLUGIN }],\n data: { message, messageIndex },\n },\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message.delete',\n properties: { threadId: thread.id, spaceId: space?.id },\n }),\n ],\n };\n } else {\n if (messageIndex === undefined || !message) {\n return;\n }\n\n thread.messages.splice(messageIndex, 0, makeRef(message));\n return {\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message.undo-delete',\n properties: { threadId: thread.id, spaceId: space?.id },\n }),\n ],\n };\n }\n },\n }),\n ]);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_types", "context", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "ThreadAction", "Create", "resolve", "name", "cursor", "subject", "threads", "undefined", "err", "log", "error", "typename", "state", "requestCapability", "ThreadCapabilities", "MutableState", "subjectId", "fullyQualifiedId", "thread", "create", "ThreadType", "anchor", "messages", "status", "draft", "drafts", "push", "data", "object", "intents", "createIntent", "Select", "current", "LayoutAction", "UpdateComplementary", "part", "ChannelType", "makeRef", "skipOpen", "ToggleResolved", "space", "getSpace", "spaceId", "id", "ObservabilityAction", "SendEvent", "properties", "threadId", "Delete", "undo", "index", "findIndex", "t", "splice", "db", "remove", "undoable", "message", "ns", "THREAD_PLUGIN", "savedThread", "add", "OnMessageAdd", "analyticsProperties", "find", "filter", "threadLength", "length", "DeleteMessage", "messageId", "messageIndex", "Ref", "hasObjectId", "target"]
|
|
7
7
|
}
|
|
@@ -16,14 +16,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var markdown_KJJCSWOZ_exports = {};
|
|
20
|
+
__export(markdown_KJJCSWOZ_exports, {
|
|
21
21
|
default: () => markdown_default
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
24
|
-
var
|
|
25
|
-
var
|
|
26
|
-
var
|
|
23
|
+
module.exports = __toCommonJS(markdown_KJJCSWOZ_exports);
|
|
24
|
+
var import_chunk_GBL2K6YX = require("./chunk-GBL2K6YX.cjs");
|
|
25
|
+
var import_chunk_VEVJBOWK = require("./chunk-VEVJBOWK.cjs");
|
|
26
|
+
var import_chunk_ONLWOUYZ = require("./chunk-ONLWOUYZ.cjs");
|
|
27
27
|
var import_app_framework = require("@dxos/app-framework");
|
|
28
28
|
var import_plugin_markdown = require("@dxos/plugin-markdown");
|
|
29
29
|
var import_view = require("@codemirror/view");
|
|
@@ -50,13 +50,13 @@ var threads = (state, doc, dispatch) => {
|
|
|
50
50
|
];
|
|
51
51
|
}
|
|
52
52
|
const threads2 = (0, import_signals_core.computed)(() => [
|
|
53
|
-
...import_live_object.RefArray.
|
|
53
|
+
...import_live_object.RefArray.targets(doc.threads),
|
|
54
54
|
...state.drafts[(0, import_echo.fullyQualifiedId)(doc)] ?? []
|
|
55
55
|
].filter((thread) => !(thread?.status === "resolved")));
|
|
56
56
|
return [
|
|
57
57
|
import_view.EditorView.updateListener.of((update) => {
|
|
58
58
|
if (update.docChanged) {
|
|
59
|
-
import_live_object.RefArray.
|
|
59
|
+
import_live_object.RefArray.targets(doc.threads).forEach((thread) => {
|
|
60
60
|
if (thread.anchor) {
|
|
61
61
|
const name = getName(doc, thread.anchor);
|
|
62
62
|
if (name && name !== thread.name) {
|
|
@@ -74,7 +74,7 @@ var threads = (state, doc, dispatch) => {
|
|
|
74
74
|
id: (0, import_echo.fullyQualifiedId)(doc),
|
|
75
75
|
onCreate: ({ cursor }) => {
|
|
76
76
|
const name = getName(doc, cursor);
|
|
77
|
-
void dispatch((0, import_app_framework2.createIntent)(
|
|
77
|
+
void dispatch((0, import_app_framework2.createIntent)(import_chunk_GBL2K6YX.ThreadAction.Create, {
|
|
78
78
|
cursor,
|
|
79
79
|
name,
|
|
80
80
|
subject: doc
|
|
@@ -103,7 +103,7 @@ var threads = (state, doc, dispatch) => {
|
|
|
103
103
|
onSelect: ({ selection }) => {
|
|
104
104
|
const current = selection.current ?? selection.closest;
|
|
105
105
|
if (current) {
|
|
106
|
-
void dispatch((0, import_app_framework2.createIntent)(
|
|
106
|
+
void dispatch((0, import_app_framework2.createIntent)(import_chunk_GBL2K6YX.ThreadAction.Select, {
|
|
107
107
|
current,
|
|
108
108
|
skipOpen: true
|
|
109
109
|
}));
|
|
@@ -115,8 +115,8 @@ var threads = (state, doc, dispatch) => {
|
|
|
115
115
|
var markdown_default = (context) => (0, import_app_framework.contributes)(import_plugin_markdown.MarkdownCapabilities.Extensions, [
|
|
116
116
|
({ document: doc }) => {
|
|
117
117
|
const { dispatchPromise: dispatch } = context.requestCapability(import_app_framework.Capabilities.IntentDispatcher);
|
|
118
|
-
const { state } = context.requestCapability(
|
|
118
|
+
const { state } = context.requestCapability(import_chunk_VEVJBOWK.ThreadCapabilities.MutableState);
|
|
119
119
|
return threads(state, doc, dispatch);
|
|
120
120
|
}
|
|
121
121
|
]);
|
|
122
|
-
//# sourceMappingURL=markdown-
|
|
122
|
+
//# sourceMappingURL=markdown-KJJCSWOZ.cjs.map
|