@dxos/plugin-thread 0.8.3-main.672df60 → 0.8.3-staging.0fa589b
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-LGYSQMC7.mjs → ChannelContainer-PKFBVENP.mjs} +4 -4
- package/dist/lib/browser/{ChatContainer-JWRI73OG.mjs → ChatContainer-RSOKYAMK.mjs} +2 -2
- package/dist/lib/browser/{app-graph-builder-K3CFBN7V.mjs → app-graph-builder-OY7R7EJP.mjs} +11 -11
- package/dist/lib/browser/app-graph-builder-OY7R7EJP.mjs.map +7 -0
- package/dist/lib/browser/chunk-6NBVNXTM.mjs +21 -0
- package/dist/lib/browser/{chunk-WDOQXTI2.mjs → chunk-AEXWNS6Z.mjs} +5 -3
- package/dist/lib/browser/chunk-AEXWNS6Z.mjs.map +7 -0
- package/dist/lib/browser/{chunk-KMVGJG23.mjs → chunk-PG5CTFKK.mjs} +50 -45
- package/dist/lib/browser/chunk-PG5CTFKK.mjs.map +7 -0
- package/dist/lib/browser/{chunk-G3TS64FP.mjs → chunk-TAFSCSUR.mjs} +4 -4
- package/dist/lib/browser/chunk-TAFSCSUR.mjs.map +7 -0
- package/dist/lib/browser/{chunk-5PGLGDIP.mjs → chunk-XZKBN3NS.mjs} +35 -35
- package/dist/lib/browser/chunk-XZKBN3NS.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +35 -9
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-YUYZCTLF.mjs → intent-resolver-FK2MDVDT.mjs} +24 -26
- package/dist/lib/browser/intent-resolver-FK2MDVDT.mjs.map +7 -0
- package/dist/lib/browser/{markdown-4EC3OCF2.mjs → markdown-TE5SWWNJ.mjs} +9 -9
- package/dist/lib/browser/markdown-TE5SWWNJ.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-EECCWHCW.mjs → react-root-NK3A4VG7.mjs} +6 -6
- package/dist/lib/browser/{react-surface-5QLZAFDL.mjs → react-surface-VXUJKSOG.mjs} +12 -12
- package/dist/lib/browser/react-surface-VXUJKSOG.mjs.map +7 -0
- package/dist/lib/browser/{settings-KVBQQSO5.mjs → settings-RB2RSLXV.mjs} +4 -4
- package/dist/lib/browser/settings-RB2RSLXV.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node/{ChannelContainer-5EKNEH56.cjs → ChannelContainer-YS5YT2ML.cjs} +9 -9
- package/dist/lib/node/{ChannelContainer-5EKNEH56.cjs.map → ChannelContainer-YS5YT2ML.cjs.map} +2 -2
- package/dist/lib/node/{ChatContainer-EE3FPSYO.cjs → ChatContainer-GCOM3M56.cjs} +8 -8
- package/dist/lib/node/{ChatContainer-EE3FPSYO.cjs.map → ChatContainer-GCOM3M56.cjs.map} +2 -2
- package/dist/lib/node/{app-graph-builder-IRE3GYKE.cjs → app-graph-builder-PBHJNDQY.cjs} +21 -21
- package/dist/lib/node/app-graph-builder-PBHJNDQY.cjs.map +7 -0
- package/dist/lib/node/{chunk-4B3PPXA6.cjs → chunk-E3WBZTTI.cjs} +12 -12
- package/dist/lib/node/chunk-E3WBZTTI.cjs.map +7 -0
- package/dist/lib/node/{chunk-U7NOIXN6.cjs → chunk-ERG7G6FF.cjs} +10 -10
- package/dist/lib/node/{chunk-JLHENFGK.cjs → chunk-IP533AMV.cjs} +76 -71
- package/dist/lib/node/chunk-IP533AMV.cjs.map +7 -0
- package/dist/lib/node/{chunk-6B3M6XRE.cjs → chunk-UM36TPCT.cjs} +37 -37
- package/dist/lib/node/chunk-UM36TPCT.cjs.map +7 -0
- package/dist/lib/node/{chunk-TKHJVC2C.cjs → chunk-ZGDN3XBR.cjs} +8 -6
- package/dist/lib/node/chunk-ZGDN3XBR.cjs.map +7 -0
- package/dist/lib/node/index.cjs +45 -19
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/{intent-resolver-MZ3HADNY.cjs → intent-resolver-SYSJ5SJG.cjs} +50 -52
- package/dist/lib/node/intent-resolver-SYSJ5SJG.cjs.map +7 -0
- package/dist/lib/node/{markdown-NJDPXIKD.cjs → markdown-GQIPJS2F.cjs} +27 -27
- package/dist/lib/node/markdown-GQIPJS2F.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-root-IAYQ2DBO.cjs → react-root-6HHDMULJ.cjs} +10 -10
- package/dist/lib/node/{react-surface-AVC5VVIS.cjs → react-surface-NBH42NN2.cjs} +24 -24
- package/dist/lib/node/react-surface-NBH42NN2.cjs.map +7 -0
- package/dist/lib/node/{settings-H45P5YO2.cjs → settings-4LQSFEDK.cjs} +7 -7
- package/dist/lib/node/settings-4LQSFEDK.cjs.map +7 -0
- package/dist/lib/node/types/index.cjs +6 -6
- package/dist/lib/node/types/index.cjs.map +1 -1
- package/dist/lib/node-esm/{ChannelContainer-KFS2RWWW.mjs → ChannelContainer-O4QJII2P.mjs} +4 -4
- package/dist/lib/node-esm/{ChatContainer-UJYPQMLV.mjs → ChatContainer-F6CSADV7.mjs} +2 -2
- package/dist/lib/node-esm/{app-graph-builder-I5VMPLE4.mjs → app-graph-builder-BAHBHYWI.mjs} +11 -11
- package/dist/lib/node-esm/app-graph-builder-BAHBHYWI.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-X6AUQDTE.mjs → chunk-2RNIPFDA.mjs} +35 -35
- package/dist/lib/node-esm/chunk-2RNIPFDA.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ODUB4GAB.mjs → chunk-O63QJPQX.mjs} +7 -7
- package/dist/lib/node-esm/{chunk-POKXRTII.mjs → chunk-P6RLFCNT.mjs} +4 -4
- package/dist/lib/node-esm/chunk-P6RLFCNT.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-J323VQ4P.mjs → chunk-UJMPYKT3.mjs} +5 -3
- package/dist/lib/node-esm/chunk-UJMPYKT3.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-MNJ3V4XM.mjs → chunk-UZWVVFT3.mjs} +50 -45
- package/dist/lib/node-esm/chunk-UZWVVFT3.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +35 -9
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-CU22OPAH.mjs → intent-resolver-BU73VYW3.mjs} +24 -26
- package/dist/lib/node-esm/intent-resolver-BU73VYW3.mjs.map +7 -0
- package/dist/lib/node-esm/{markdown-HRGGO7IA.mjs → markdown-HJUWNBLS.mjs} +9 -9
- package/dist/lib/node-esm/markdown-HJUWNBLS.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-NQMUEI6Z.mjs → react-root-RUXOAQNW.mjs} +6 -6
- package/dist/lib/node-esm/{react-surface-Z4X5VLMY.mjs → react-surface-ELXFYKP6.mjs} +12 -12
- package/dist/lib/node-esm/react-surface-ELXFYKP6.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-IJGUOU3F.mjs → settings-EA7DFSM6.mjs} +4 -4
- package/dist/lib/node-esm/settings-EA7DFSM6.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +1 -1
- package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts.map +1 -1
- 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/Comments.stories.d.ts.map +1 -1
- package/dist/types/src/components/CommentsContainer.d.ts +1 -1
- package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
- package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
- package/dist/types/src/components/ThreadComplementary.d.ts.map +1 -1
- package/dist/types/src/components/testing.d.ts +2 -103
- package/dist/types/src/components/testing.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +128 -2
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +117 -301
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +153 -828
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/package.json +42 -42
- package/src/ThreadPlugin.tsx +29 -6
- package/src/capabilities/app-graph-builder.ts +9 -9
- package/src/capabilities/intent-resolver.ts +26 -26
- package/src/capabilities/react-surface.tsx +7 -7
- package/src/capabilities/settings.ts +7 -2
- package/src/components/Call/Toolbar.tsx +3 -3
- package/src/components/ChannelContainer.tsx +18 -22
- package/src/components/Chat.stories.tsx +4 -4
- package/src/components/ChatContainer.tsx +6 -6
- package/src/components/CommentContainer.tsx +2 -2
- package/src/components/Comments.stories.tsx +15 -5
- package/src/components/CommentsContainer.tsx +21 -24
- package/src/components/MessageContainer.tsx +20 -20
- package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +2 -2
- package/src/components/ThreadComplementary.tsx +19 -15
- package/src/components/testing.ts +5 -5
- package/src/extensions/threads.ts +7 -7
- package/src/testing/stories.ts +3 -3
- package/src/translations.ts +7 -2
- package/src/types/schema.ts +8 -4
- package/dist/lib/browser/app-graph-builder-K3CFBN7V.mjs.map +0 -7
- package/dist/lib/browser/chunk-5PGLGDIP.mjs.map +0 -7
- package/dist/lib/browser/chunk-CF2MXRCH.mjs +0 -21
- package/dist/lib/browser/chunk-G3TS64FP.mjs.map +0 -7
- package/dist/lib/browser/chunk-KMVGJG23.mjs.map +0 -7
- package/dist/lib/browser/chunk-WDOQXTI2.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-YUYZCTLF.mjs.map +0 -7
- package/dist/lib/browser/markdown-4EC3OCF2.mjs.map +0 -7
- package/dist/lib/browser/react-surface-5QLZAFDL.mjs.map +0 -7
- package/dist/lib/browser/settings-KVBQQSO5.mjs.map +0 -7
- package/dist/lib/node/app-graph-builder-IRE3GYKE.cjs.map +0 -7
- package/dist/lib/node/chunk-4B3PPXA6.cjs.map +0 -7
- package/dist/lib/node/chunk-6B3M6XRE.cjs.map +0 -7
- package/dist/lib/node/chunk-JLHENFGK.cjs.map +0 -7
- package/dist/lib/node/chunk-TKHJVC2C.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-MZ3HADNY.cjs.map +0 -7
- package/dist/lib/node/markdown-NJDPXIKD.cjs.map +0 -7
- package/dist/lib/node/react-surface-AVC5VVIS.cjs.map +0 -7
- package/dist/lib/node/settings-H45P5YO2.cjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-I5VMPLE4.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-J323VQ4P.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MNJ3V4XM.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-POKXRTII.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-X6AUQDTE.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-CU22OPAH.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-HRGGO7IA.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-Z4X5VLMY.mjs.map +0 -7
- package/dist/lib/node-esm/settings-IJGUOU3F.mjs.map +0 -7
- /package/dist/lib/browser/{ChannelContainer-LGYSQMC7.mjs.map → ChannelContainer-PKFBVENP.mjs.map} +0 -0
- /package/dist/lib/browser/{ChatContainer-JWRI73OG.mjs.map → ChatContainer-RSOKYAMK.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-CF2MXRCH.mjs.map → chunk-6NBVNXTM.mjs.map} +0 -0
- /package/dist/lib/browser/{react-root-EECCWHCW.mjs.map → react-root-NK3A4VG7.mjs.map} +0 -0
- /package/dist/lib/node/{chunk-U7NOIXN6.cjs.map → chunk-ERG7G6FF.cjs.map} +0 -0
- /package/dist/lib/node/{react-root-IAYQ2DBO.cjs.map → react-root-6HHDMULJ.cjs.map} +0 -0
- /package/dist/lib/node-esm/{ChannelContainer-KFS2RWWW.mjs.map → ChannelContainer-O4QJII2P.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ChatContainer-UJYPQMLV.mjs.map → ChatContainer-F6CSADV7.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-ODUB4GAB.mjs.map → chunk-O63QJPQX.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-root-NQMUEI6Z.mjs.map → react-root-RUXOAQNW.mjs.map} +0 -0
|
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var chunk_IP533AMV_exports = {};
|
|
30
|
+
__export(chunk_IP533AMV_exports, {
|
|
31
31
|
CallDebugPanel: () => CallDebugPanel,
|
|
32
32
|
CallSidebar: () => CallSidebar,
|
|
33
33
|
ChannelContainer: () => ChannelContainer2,
|
|
@@ -35,11 +35,11 @@ __export(chunk_JLHENFGK_exports, {
|
|
|
35
35
|
ThreadComplementary: () => ThreadComplementary,
|
|
36
36
|
ThreadSettings: () => ThreadSettings
|
|
37
37
|
});
|
|
38
|
-
module.exports = __toCommonJS(
|
|
39
|
-
var
|
|
40
|
-
var
|
|
38
|
+
module.exports = __toCommonJS(chunk_IP533AMV_exports);
|
|
39
|
+
var import_chunk_ZGDN3XBR = require("./chunk-ZGDN3XBR.cjs");
|
|
40
|
+
var import_chunk_UM36TPCT = require("./chunk-UM36TPCT.cjs");
|
|
41
41
|
var import_chunk_4YSNVPWU = require("./chunk-4YSNVPWU.cjs");
|
|
42
|
-
var
|
|
42
|
+
var import_chunk_E3WBZTTI = require("./chunk-E3WBZTTI.cjs");
|
|
43
43
|
var import_chunk_FUXJAVFZ = require("./chunk-FUXJAVFZ.cjs");
|
|
44
44
|
var import_chunk_LR5NENBE = require("./chunk-LR5NENBE.cjs");
|
|
45
45
|
var import_chunk_HLMCEE5K = require("./chunk-HLMCEE5K.cjs");
|
|
@@ -56,8 +56,8 @@ var import_app_framework = require("@dxos/app-framework");
|
|
|
56
56
|
var import_tracking3 = require("@preact-signals/safe-react/tracking");
|
|
57
57
|
var import_react3 = __toESM(require("react"));
|
|
58
58
|
var import_app_framework2 = require("@dxos/app-framework");
|
|
59
|
-
var
|
|
60
|
-
var
|
|
59
|
+
var import_echo = require("@dxos/echo");
|
|
60
|
+
var import_echo2 = require("@dxos/react-client/echo");
|
|
61
61
|
var import_halo = require("@dxos/react-client/halo");
|
|
62
62
|
var import_react_ui2 = require("@dxos/react-ui");
|
|
63
63
|
var import_react_ui_attention = require("@dxos/react-ui-attention");
|
|
@@ -68,9 +68,9 @@ var import_react4 = require("react");
|
|
|
68
68
|
var import_tracking4 = require("@preact-signals/safe-react/tracking");
|
|
69
69
|
var import_react5 = require("@phosphor-icons/react");
|
|
70
70
|
var import_react6 = __toESM(require("react"));
|
|
71
|
-
var
|
|
71
|
+
var import_echo3 = require("@dxos/echo");
|
|
72
72
|
var import_live_object = require("@dxos/live-object");
|
|
73
|
-
var
|
|
73
|
+
var import_echo4 = require("@dxos/react-client/echo");
|
|
74
74
|
var import_halo2 = require("@dxos/react-client/halo");
|
|
75
75
|
var import_react_ui3 = require("@dxos/react-ui");
|
|
76
76
|
var import_react_ui_editor = require("@dxos/react-ui-editor");
|
|
@@ -78,14 +78,12 @@ var import_react_ui_theme = require("@dxos/react-ui-theme");
|
|
|
78
78
|
var import_react_ui_thread = require("@dxos/react-ui-thread");
|
|
79
79
|
var import_util = require("@dxos/util");
|
|
80
80
|
var import_tracking5 = require("@preact-signals/safe-react/tracking");
|
|
81
|
-
var import_react7 = require("
|
|
82
|
-
var
|
|
83
|
-
var
|
|
84
|
-
var import_echo3 = require("@dxos/react-client/echo");
|
|
81
|
+
var import_react7 = __toESM(require("react"));
|
|
82
|
+
var import_echo5 = require("@dxos/echo");
|
|
83
|
+
var import_echo6 = require("@dxos/react-client/echo");
|
|
85
84
|
var import_react_ui4 = require("@dxos/react-ui");
|
|
86
|
-
var import_react_ui_theme2 = require("@dxos/react-ui-theme");
|
|
87
85
|
var import_tracking6 = require("@preact-signals/safe-react/tracking");
|
|
88
|
-
var
|
|
86
|
+
var import_react8 = __toESM(require("react"));
|
|
89
87
|
var import_react_ui_form = require("@dxos/react-ui-form");
|
|
90
88
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-thread/src/components/CallDebugPanel.tsx";
|
|
91
89
|
var CallDebugPanel = ({ state }) => {
|
|
@@ -199,7 +197,7 @@ var CallSidebar = () => {
|
|
|
199
197
|
var _effect = (0, import_tracking2.useSignals)();
|
|
200
198
|
try {
|
|
201
199
|
const call = (0, import_app_framework.useCapability)(import_chunk_4YSNVPWU.ThreadCapabilities.CallManager);
|
|
202
|
-
return /* @__PURE__ */ import_react2.default.createElement(
|
|
200
|
+
return /* @__PURE__ */ import_react2.default.createElement(import_chunk_UM36TPCT.ChannelContainer, {
|
|
203
201
|
roomId: call.roomId
|
|
204
202
|
});
|
|
205
203
|
} finally {
|
|
@@ -265,15 +263,15 @@ var CommentContainer = ({ anchor, current, onAttend, onComment, onResolve, onMes
|
|
|
265
263
|
var _effect = (0, import_tracking4.useSignals)();
|
|
266
264
|
try {
|
|
267
265
|
const identity = (0, import_halo2.useIdentity)();
|
|
268
|
-
const space = (0,
|
|
269
|
-
const members = (0,
|
|
266
|
+
const space = (0, import_echo4.getSpace)(anchor);
|
|
267
|
+
const members = (0, import_echo4.useMembers)(space?.key);
|
|
270
268
|
const detached = !anchor.anchor;
|
|
271
|
-
const thread = anchor
|
|
272
|
-
const activity = (0, import_chunk_FUXJAVFZ.useStatus)(space, (0,
|
|
269
|
+
const thread = import_echo3.Relation.getSource(anchor);
|
|
270
|
+
const activity = (0, import_chunk_FUXJAVFZ.useStatus)(space, (0, import_echo4.fullyQualifiedId)(thread));
|
|
273
271
|
const { t } = (0, import_react_ui3.useTranslation)(import_chunk_HLMCEE5K.THREAD_PLUGIN);
|
|
274
272
|
const threadScrollRef = (0, import_react6.useRef)(null);
|
|
275
273
|
const { themeMode } = (0, import_react_ui3.useThemeContext)();
|
|
276
|
-
const textboxMetadata = (0, import_chunk_LR5NENBE.getMessageMetadata)((0,
|
|
274
|
+
const textboxMetadata = (0, import_chunk_LR5NENBE.getMessageMetadata)((0, import_echo4.fullyQualifiedId)(thread), identity);
|
|
277
275
|
const [_count, _setCount] = (0, import_react6.useState)(0);
|
|
278
276
|
const rerenderEditor = () => _setCount((count) => count + 1);
|
|
279
277
|
const messageRef = (0, import_react6.useRef)("");
|
|
@@ -287,7 +285,7 @@ var CommentContainer = ({ anchor, current, onAttend, onComment, onResolve, onMes
|
|
|
287
285
|
(0, import_react_ui_editor.listener)({
|
|
288
286
|
onChange: (text) => messageRef.current = text
|
|
289
287
|
}),
|
|
290
|
-
|
|
288
|
+
import_chunk_E3WBZTTI.command
|
|
291
289
|
], [
|
|
292
290
|
_count
|
|
293
291
|
]);
|
|
@@ -328,7 +326,7 @@ var CommentContainer = ({ anchor, current, onAttend, onComment, onResolve, onMes
|
|
|
328
326
|
onClickCapture: handleAttend,
|
|
329
327
|
onFocusCapture: handleAttend,
|
|
330
328
|
current,
|
|
331
|
-
id: (0,
|
|
329
|
+
id: (0, import_echo4.fullyQualifiedId)(thread)
|
|
332
330
|
}, /* @__PURE__ */ import_react6.default.createElement("div", {
|
|
333
331
|
role: "none",
|
|
334
332
|
className: (0, import_react_ui_theme.mx)("col-span-2 grid grid-cols-[var(--rail-size)_1fr_min-content]", import_react_ui_theme.hoverableControls, import_react_ui_theme.hoverableFocusedWithinControls)
|
|
@@ -347,7 +345,7 @@ var CommentContainer = ({ anchor, current, onAttend, onComment, onResolve, onMes
|
|
|
347
345
|
onResolve: handleResolve
|
|
348
346
|
}), onThreadDelete && /* @__PURE__ */ import_react6.default.createElement(DeleteThreadButton, {
|
|
349
347
|
onDelete: handleThreadDelete
|
|
350
|
-
}))), import_live_object.RefArray.targets(thread.messages?.filter(import_util.isNonNullable) ?? []).map((message) => /* @__PURE__ */ import_react6.default.createElement(
|
|
348
|
+
}))), import_live_object.RefArray.targets(thread.messages?.filter(import_util.isNonNullable) ?? []).map((message) => /* @__PURE__ */ import_react6.default.createElement(import_chunk_E3WBZTTI.MessageContainer, {
|
|
351
349
|
key: message.id,
|
|
352
350
|
editable: true,
|
|
353
351
|
message,
|
|
@@ -372,11 +370,11 @@ var CommentsContainer = ({ anchors, currentId, showResolvedThreads, ...props })
|
|
|
372
370
|
var _effect = (0, import_tracking5.useSignals)();
|
|
373
371
|
try {
|
|
374
372
|
const { t } = (0, import_react_ui4.useTranslation)(import_chunk_HLMCEE5K.THREAD_PLUGIN);
|
|
375
|
-
const filteredAnchors = showResolvedThreads ? anchors.filter((anchor) => !!anchor
|
|
376
|
-
const thread = anchor
|
|
373
|
+
const filteredAnchors = showResolvedThreads ? anchors.filter((anchor) => !!import_echo5.Relation.getSource(anchor)) : anchors.filter((anchor) => {
|
|
374
|
+
const thread = import_echo5.Relation.getSource(anchor);
|
|
377
375
|
return thread && thread.status !== "resolved";
|
|
378
376
|
});
|
|
379
|
-
(0,
|
|
377
|
+
(0, import_react7.useEffect)(() => {
|
|
380
378
|
if (currentId) {
|
|
381
379
|
document.getElementById(currentId)?.scrollIntoView({
|
|
382
380
|
behavior: "smooth",
|
|
@@ -386,29 +384,32 @@ var CommentsContainer = ({ anchors, currentId, showResolvedThreads, ...props })
|
|
|
386
384
|
}, [
|
|
387
385
|
currentId
|
|
388
386
|
]);
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
387
|
+
if (filteredAnchors.length === 0) {
|
|
388
|
+
return /* @__PURE__ */ import_react7.default.createElement("div", {
|
|
389
|
+
role: "none",
|
|
390
|
+
className: "plb-cardSpacingBlock pli-cardSpacingInline"
|
|
391
|
+
}, /* @__PURE__ */ import_react7.default.createElement(import_react_ui4.Callout.Root, null, /* @__PURE__ */ import_react7.default.createElement(import_react_ui4.Callout.Title, null, /* @__PURE__ */ import_react7.default.createElement(import_react_ui4.Trans, {
|
|
392
|
+
t,
|
|
393
|
+
i18nKey: "no comments message",
|
|
394
|
+
components: {
|
|
395
|
+
commentIcon: /* @__PURE__ */ import_react7.default.createElement(import_react_ui4.Icon, {
|
|
396
|
+
icon: "ph--chat-text--regular",
|
|
397
|
+
size: 4,
|
|
398
|
+
classNames: "inline-block"
|
|
399
|
+
})
|
|
400
|
+
}
|
|
401
|
+
}))));
|
|
402
|
+
}
|
|
403
|
+
return filteredAnchors.map((anchor) => {
|
|
404
|
+
const thread = import_echo5.Relation.getSource(anchor);
|
|
405
|
+
const threadId = (0, import_echo6.fullyQualifiedId)(thread);
|
|
406
|
+
return /* @__PURE__ */ import_react7.default.createElement(CommentContainer, {
|
|
393
407
|
key: threadId,
|
|
394
408
|
anchor,
|
|
395
409
|
current: currentId === threadId,
|
|
396
410
|
...props
|
|
397
411
|
});
|
|
398
|
-
})
|
|
399
|
-
role: "alert",
|
|
400
|
-
className: (0, import_react_ui_theme2.mx)(import_react_ui_theme2.descriptionMessage, "place-self-center rounded-lg text-center m-4")
|
|
401
|
-
}, /* @__PURE__ */ import_react8.default.createElement("h2", {
|
|
402
|
-
className: "mbe-2 font-medium text-baseText"
|
|
403
|
-
}, t("no comments title")), /* @__PURE__ */ import_react8.default.createElement("p", null, /* @__PURE__ */ import_react8.default.createElement(import_react_ui4.Trans, {
|
|
404
|
-
t,
|
|
405
|
-
i18nKey: "no comments message",
|
|
406
|
-
components: {
|
|
407
|
-
commentIcon: /* @__PURE__ */ import_react8.default.createElement(import_react7.ChatText, {
|
|
408
|
-
className: "inline-block"
|
|
409
|
-
})
|
|
410
|
-
}
|
|
411
|
-
}))));
|
|
412
|
+
});
|
|
412
413
|
} finally {
|
|
413
414
|
_effect.f();
|
|
414
415
|
}
|
|
@@ -416,46 +417,50 @@ var CommentsContainer = ({ anchors, currentId, showResolvedThreads, ...props })
|
|
|
416
417
|
var ThreadSettings = ({ settings }) => {
|
|
417
418
|
var _effect = (0, import_tracking6.useSignals)();
|
|
418
419
|
try {
|
|
419
|
-
return /* @__PURE__ */
|
|
420
|
+
return /* @__PURE__ */ import_react8.default.createElement(import_react_ui_form.DeprecatedFormContainer, null);
|
|
420
421
|
} finally {
|
|
421
422
|
_effect.f();
|
|
422
423
|
}
|
|
423
424
|
};
|
|
424
|
-
var ChannelContainer2 = (0, import_react4.lazy)(() => import("./ChannelContainer-
|
|
425
|
-
var ChatContainer = (0, import_react4.lazy)(() => import("./ChatContainer-
|
|
425
|
+
var ChannelContainer2 = (0, import_react4.lazy)(() => import("./ChannelContainer-YS5YT2ML.cjs"));
|
|
426
|
+
var ChatContainer = (0, import_react4.lazy)(() => import("./ChatContainer-GCOM3M56.cjs"));
|
|
426
427
|
var ThreadComplementary = ({ subject }) => {
|
|
427
428
|
var _effect = (0, import_tracking3.useSignals)();
|
|
428
429
|
try {
|
|
429
430
|
const { dispatchPromise: dispatch } = (0, import_app_framework2.useIntentDispatcher)();
|
|
430
431
|
const identity = (0, import_halo.useIdentity)();
|
|
431
432
|
const { t } = (0, import_react_ui2.useTranslation)(import_chunk_HLMCEE5K.THREAD_PLUGIN);
|
|
433
|
+
const { tx } = (0, import_react_ui2.useThemeContext)();
|
|
434
|
+
const subjectId = (0, import_echo2.fullyQualifiedId)(subject);
|
|
432
435
|
const { state, getViewState } = (0, import_app_framework2.useCapability)(import_chunk_4YSNVPWU.ThreadCapabilities.MutableState);
|
|
433
|
-
const
|
|
436
|
+
const drafts = state.drafts[subjectId];
|
|
437
|
+
const viewState = (0, import_react3.useMemo)(() => getViewState(subjectId), [
|
|
438
|
+
getViewState,
|
|
439
|
+
subjectId
|
|
440
|
+
]);
|
|
434
441
|
const { showResolvedThreads } = viewState;
|
|
435
442
|
const onChangeViewState = (0, import_react3.useCallback)((nextValue) => {
|
|
436
443
|
viewState.showResolvedThreads = nextValue === "all";
|
|
437
444
|
}, [
|
|
438
445
|
viewState
|
|
439
446
|
]);
|
|
440
|
-
const drafts = state.drafts[(0, import_echo.fullyQualifiedId)(subject)];
|
|
441
447
|
const anchorSorts = (0, import_app_framework2.useCapabilities)(import_app_framework2.Capabilities.AnchorSort);
|
|
442
|
-
const sort = (0, import_react3.useMemo)(() => anchorSorts.find(({ key }) => key ===
|
|
448
|
+
const sort = (0, import_react3.useMemo)(() => anchorSorts.find(({ key }) => key === import_echo.Obj.getTypename(subject))?.sort, [
|
|
443
449
|
anchorSorts,
|
|
444
450
|
subject
|
|
445
451
|
]);
|
|
446
|
-
const space = (0,
|
|
447
|
-
const objectsAnchoredTo = (0,
|
|
448
|
-
const anchors = objectsAnchoredTo.toSorted((a, b) => sort?.(a, b) ?? 0).filter((anchor) =>
|
|
452
|
+
const space = (0, import_echo2.getSpace)(subject);
|
|
453
|
+
const objectsAnchoredTo = (0, import_echo2.useQuery)(space, import_echo.Query.select(import_echo.Filter.ids(subject.id)).targetOf(import_schema.AnchoredTo));
|
|
454
|
+
const anchors = objectsAnchoredTo.toSorted((a, b) => sort?.(a, b) ?? 0).filter((anchor) => import_echo.Obj.instanceOf(import_chunk_ZGDN3XBR.ThreadType, import_echo.Relation.getSource(anchor))).concat(drafts ?? []);
|
|
449
455
|
const attended = (0, import_react_ui_attention.useAttended)();
|
|
450
|
-
const qualifiedSubjectId = (0, import_echo.fullyQualifiedId)(subject);
|
|
451
456
|
const handleAttend = (0, import_react3.useCallback)((anchor) => {
|
|
452
|
-
const thread = anchor
|
|
453
|
-
const threadId = (0,
|
|
457
|
+
const thread = import_echo.Relation.getSource(anchor);
|
|
458
|
+
const threadId = (0, import_echo2.fullyQualifiedId)(thread);
|
|
454
459
|
if (state.current !== threadId) {
|
|
455
460
|
state.current = threadId;
|
|
456
461
|
void dispatch((0, import_app_framework2.createIntent)(import_app_framework2.LayoutAction.ScrollIntoView, {
|
|
457
462
|
part: "current",
|
|
458
|
-
subject: (0,
|
|
463
|
+
subject: (0, import_echo2.fullyQualifiedId)(subject),
|
|
459
464
|
options: {
|
|
460
465
|
cursor: anchor.anchor,
|
|
461
466
|
ref: threadId
|
|
@@ -468,7 +473,7 @@ var ThreadComplementary = ({ subject }) => {
|
|
|
468
473
|
subject
|
|
469
474
|
]);
|
|
470
475
|
const handleComment = (0, import_react3.useCallback)(async (anchor, text) => {
|
|
471
|
-
await dispatch((0, import_app_framework2.createIntent)(
|
|
476
|
+
await dispatch((0, import_app_framework2.createIntent)(import_chunk_ZGDN3XBR.ThreadAction.AddMessage, {
|
|
472
477
|
anchor,
|
|
473
478
|
subject,
|
|
474
479
|
sender: {
|
|
@@ -476,26 +481,26 @@ var ThreadComplementary = ({ subject }) => {
|
|
|
476
481
|
},
|
|
477
482
|
text
|
|
478
483
|
}));
|
|
479
|
-
const thread = anchor
|
|
480
|
-
state.current = (0,
|
|
484
|
+
const thread = import_echo.Relation.getSource(anchor);
|
|
485
|
+
state.current = (0, import_echo2.fullyQualifiedId)(thread);
|
|
481
486
|
}, [
|
|
482
487
|
dispatch,
|
|
483
488
|
identity,
|
|
484
489
|
subject
|
|
485
490
|
]);
|
|
486
|
-
const handleResolve = (0, import_react3.useCallback)((anchor) => dispatch((0, import_app_framework2.createIntent)(
|
|
487
|
-
thread: anchor
|
|
491
|
+
const handleResolve = (0, import_react3.useCallback)((anchor) => dispatch((0, import_app_framework2.createIntent)(import_chunk_ZGDN3XBR.ThreadAction.ToggleResolved, {
|
|
492
|
+
thread: import_echo.Relation.getSource(anchor)
|
|
488
493
|
})), [
|
|
489
494
|
dispatch
|
|
490
495
|
]);
|
|
491
|
-
const handleThreadDelete = (0, import_react3.useCallback)((anchor) => dispatch((0, import_app_framework2.createIntent)(
|
|
496
|
+
const handleThreadDelete = (0, import_react3.useCallback)((anchor) => dispatch((0, import_app_framework2.createIntent)(import_chunk_ZGDN3XBR.ThreadAction.Delete, {
|
|
492
497
|
anchor,
|
|
493
498
|
subject
|
|
494
499
|
})), [
|
|
495
500
|
dispatch,
|
|
496
501
|
subject
|
|
497
502
|
]);
|
|
498
|
-
const handleMessageDelete = (0, import_react3.useCallback)((anchor, messageId) => dispatch((0, import_app_framework2.createIntent)(
|
|
503
|
+
const handleMessageDelete = (0, import_react3.useCallback)((anchor, messageId) => dispatch((0, import_app_framework2.createIntent)(import_chunk_ZGDN3XBR.ThreadAction.DeleteMessage, {
|
|
499
504
|
anchor,
|
|
500
505
|
subject,
|
|
501
506
|
messageId
|
|
@@ -505,7 +510,7 @@ var ThreadComplementary = ({ subject }) => {
|
|
|
505
510
|
]);
|
|
506
511
|
const comments = /* @__PURE__ */ import_react3.default.createElement(CommentsContainer, {
|
|
507
512
|
anchors,
|
|
508
|
-
currentId: attended.includes(
|
|
513
|
+
currentId: attended.includes(subjectId) ? state.current : void 0,
|
|
509
514
|
showResolvedThreads,
|
|
510
515
|
onAttend: handleAttend,
|
|
511
516
|
onComment: handleComment,
|
|
@@ -517,11 +522,11 @@ var ThreadComplementary = ({ subject }) => {
|
|
|
517
522
|
toolbar: true
|
|
518
523
|
}, /* @__PURE__ */ import_react3.default.createElement(import_react_ui_tabs.Tabs.Root, {
|
|
519
524
|
value: showResolvedThreads ? "all" : "unresolved",
|
|
520
|
-
onValueChange: onChangeViewState,
|
|
521
525
|
orientation: "horizontal",
|
|
522
|
-
classNames: 'contents [&_[role="tabpanel"]]:min-bs-0 [&_[role="tabpanel"]]:overflow-y-auto [&_[role="tabpanel"]]:scrollbar-thin'
|
|
526
|
+
classNames: 'contents [&_[role="tabpanel"]]:min-bs-0 [&_[role="tabpanel"]]:overflow-y-auto [&_[role="tabpanel"]]:scrollbar-thin',
|
|
527
|
+
onValueChange: onChangeViewState
|
|
523
528
|
}, /* @__PURE__ */ import_react3.default.createElement(import_react_ui_tabs.Tabs.Tablist, {
|
|
524
|
-
classNames: "
|
|
529
|
+
classNames: tx("toolbar.root", "toolbar", {})
|
|
525
530
|
}, /* @__PURE__ */ import_react3.default.createElement(import_react_ui_tabs.Tabs.Tab, {
|
|
526
531
|
value: "unresolved",
|
|
527
532
|
classNames: "text-sm"
|
|
@@ -546,4 +551,4 @@ var ThreadComplementary = ({ subject }) => {
|
|
|
546
551
|
ThreadComplementary,
|
|
547
552
|
ThreadSettings
|
|
548
553
|
});
|
|
549
|
-
//# sourceMappingURL=chunk-
|
|
554
|
+
//# sourceMappingURL=chunk-IP533AMV.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/CallDebugPanel.tsx", "../../../src/components/CallSidebar.tsx", "../../../src/components/ThreadComplementary.tsx", "../../../src/components/index.ts", "../../../src/components/CommentContainer.tsx", "../../../src/components/CommentsContainer.tsx", "../../../src/components/ThreadSettings.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { WebRTCStats } from '@peermetrics/webrtc-stats';\nimport React, { useEffect, useMemo, useState } from 'react';\n\nimport { Panel } from '@dxos/devtools';\nimport { log } from '@dxos/log';\nimport { Input, useTranslation, type ThemedClassName } from '@dxos/react-ui';\nimport { Json } from '@dxos/react-ui-syntax-highlighter';\n\nimport { type GlobalState } from '../calls';\nimport { THREAD_PLUGIN } from '../meta';\n\nexport type CallDebugPanelProps = ThemedClassName<{\n state?: GlobalState;\n}>;\n\nexport const CallDebugPanel = ({ state }: CallDebugPanelProps) => {\n const users = state?.call?.users;\n const self = state?.call?.self;\n const { t } = useTranslation(THREAD_PLUGIN);\n\n const [open, setOpen] = useState(false);\n const handleToggle = () => setOpen(!open);\n const [showDetailedWebRTCStats, setShowDetailedWebRTCStats] = useState(false);\n const handleShowDetailedWebRTCStats = () => setShowDetailedWebRTCStats(!showDetailedWebRTCStats);\n\n const webrtcStats = useMemo(\n () =>\n new WebRTCStats({\n getStatsInterval: 1000,\n }),\n [],\n );\n\n const [stats, setStats] = useState<Record<string, any>>({});\n useEffect(() => {\n const pc = state?.media.peer?.session?.peerConnection;\n const handleStats = (stats: Record<string, any>) => setStats(stats.data);\n let added = false;\n if (pc && showDetailedWebRTCStats) {\n webrtcStats.addConnection({ pc, peerId: 1, connectionId: '1' });\n webrtcStats.on('stats', handleStats);\n added = true;\n }\n return () => {\n try {\n if (pc && added) {\n webrtcStats.removeConnection({ pc });\n webrtcStats.removeListener('stats', handleStats);\n }\n } catch (error) {\n log.error('error removing webrtc stats', { error, pc, peerId: 1, connectionId: '1' });\n }\n };\n }, [state?.media.peer?.session?.peerConnection, showDetailedWebRTCStats]);\n\n return (\n <Panel\n id='meeting-status'\n icon='ph--video-conference--regular'\n open={open}\n onToggle={handleToggle}\n title={t('meeting status title')}\n maxHeight={false}\n info={\n <div className='flex items-center gap-2'>\n <span title='Joined'>{self?.joined ? 'Active' : 'Inactive'}</span>\n {users?.length !== undefined && <span title='Users'>{users?.length ?? 0} User(s)</span>}\n </div>\n }\n >\n <div className='flex flex-col gap-2 overflow-y-auto'>\n <div className='flex items-row gap-2'>\n <Input.Root>\n <Input.Label classNames={'text-sm'}>{t('show webrtc stats title')}</Input.Label>\n <Input.Checkbox checked={showDetailedWebRTCStats} onCheckedChange={handleShowDetailedWebRTCStats} />\n </Input.Root>\n </div>\n <Json\n classNames='text-sm'\n data={{\n users,\n activities: state?.call?.activities,\n ...(showDetailedWebRTCStats\n ? {\n webrtc: {\n connectionState: state?.media.peer?.session?.peerConnection.connectionState,\n iceConnectionState: state?.media.peer?.session?.peerConnection.iceConnectionState,\n stats,\n },\n }\n : {}),\n tracks: state?.media.peer?.session?.peerConnection.getTransceivers().map((transceiver) => {\n const track =\n transceiver.direction === 'recvonly' ? transceiver.receiver.track : transceiver.sender.track;\n return {\n id: track?.id,\n kind: track?.kind,\n direction: transceiver.direction,\n enabled: track?.enabled,\n muted: track?.muted,\n readyState: track?.readyState,\n settings: track?.getSettings(),\n };\n }),\n callsServiceHistory: state?.media.peer?.history.get(),\n }}\n />\n </div>\n </Panel>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useCapability } from '@dxos/app-framework';\n\nimport { ChannelContainer } from './ChannelContainer';\nimport { ThreadCapabilities } from '../capabilities';\n\nexport const CallSidebar = () => {\n const call = useCapability(ThreadCapabilities.CallManager);\n return <ChannelContainer roomId={call.roomId} />;\n};\n\nexport default CallSidebar;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport {\n Capabilities,\n LayoutAction,\n createIntent,\n useCapability,\n useCapabilities,\n useIntentDispatcher,\n} from '@dxos/app-framework';\nimport { Filter, Obj, Query, Relation } from '@dxos/echo';\nimport { fullyQualifiedId, getSpace, useQuery } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { useAttended } from '@dxos/react-ui-attention';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { Tabs } from '@dxos/react-ui-tabs';\nimport { AnchoredTo } from '@dxos/schema';\n\nimport { ThreadCapabilities } from '../capabilities';\nimport { CommentsContainer } from '../components';\nimport { THREAD_PLUGIN } from '../meta';\nimport { ThreadAction, ThreadType } from '../types';\n\nexport const ThreadComplementary = ({ subject }: { subject: any }) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const identity = useIdentity();\n const { t } = useTranslation(THREAD_PLUGIN);\n const { tx } = useThemeContext();\n const subjectId = fullyQualifiedId(subject);\n\n const { state, getViewState } = useCapability(ThreadCapabilities.MutableState);\n const drafts = state.drafts[subjectId];\n const viewState = useMemo(() => getViewState(subjectId), [getViewState, subjectId]);\n const { showResolvedThreads } = viewState;\n const onChangeViewState = useCallback(\n (nextValue: string) => {\n viewState.showResolvedThreads = nextValue === 'all';\n },\n [viewState],\n );\n\n const anchorSorts = useCapabilities(Capabilities.AnchorSort);\n const sort = useMemo(\n () => anchorSorts.find(({ key }) => key === Obj.getTypename(subject))?.sort,\n [anchorSorts, subject],\n );\n\n const space = getSpace(subject);\n const objectsAnchoredTo = useQuery(space, Query.select(Filter.ids(subject.id)).targetOf(AnchoredTo));\n const anchors = objectsAnchoredTo\n .toSorted((a, b) => sort?.(a, b) ?? 0)\n .filter((anchor) => Obj.instanceOf(ThreadType, Relation.getSource(anchor)))\n .concat(drafts ?? []);\n\n const attended = useAttended();\n\n const handleAttend = useCallback(\n (anchor: AnchoredTo) => {\n const thread = Relation.getSource(anchor) as ThreadType;\n const threadId = fullyQualifiedId(thread);\n\n if (state.current !== threadId) {\n state.current = threadId;\n\n // TODO(wittjosiah): Should this be a thread-specific intent?\n // The layout doesn't know about threads and this working depends on other plugins conditionally handling it.\n // This may be overloading this intent or highjacking its intended purpose.\n void dispatch(\n createIntent(LayoutAction.ScrollIntoView, {\n part: 'current',\n subject: fullyQualifiedId(subject),\n options: {\n cursor: anchor.anchor,\n ref: threadId,\n },\n }),\n );\n }\n },\n [state.current, dispatch, subject],\n );\n\n const handleComment = useCallback(\n async (anchor: AnchoredTo, text: string) => {\n await dispatch(\n createIntent(ThreadAction.AddMessage, { anchor, subject, sender: { identityDid: identity?.did }, text }),\n );\n\n const thread = Relation.getSource(anchor) as ThreadType;\n state.current = fullyQualifiedId(thread);\n },\n [dispatch, identity, subject],\n );\n\n const handleResolve = useCallback(\n (anchor: AnchoredTo) =>\n dispatch(createIntent(ThreadAction.ToggleResolved, { thread: Relation.getSource(anchor) as ThreadType })),\n [dispatch],\n );\n\n const handleThreadDelete = useCallback(\n (anchor: AnchoredTo) => dispatch(createIntent(ThreadAction.Delete, { anchor, subject })),\n [dispatch, subject],\n );\n\n const handleMessageDelete = useCallback(\n (anchor: AnchoredTo, messageId: string) =>\n dispatch(createIntent(ThreadAction.DeleteMessage, { anchor, subject, messageId })),\n [dispatch, subject],\n );\n\n const comments = (\n <CommentsContainer\n anchors={anchors}\n currentId={attended.includes(subjectId) ? state.current : undefined}\n showResolvedThreads={showResolvedThreads}\n onAttend={handleAttend}\n onComment={handleComment}\n onResolve={handleResolve}\n onMessageDelete={handleMessageDelete}\n onThreadDelete={handleThreadDelete}\n />\n );\n\n return (\n <StackItem.Content toolbar>\n <Tabs.Root\n value={showResolvedThreads ? 'all' : 'unresolved'}\n orientation='horizontal'\n classNames='contents [&_[role=\"tabpanel\"]]:min-bs-0 [&_[role=\"tabpanel\"]]:overflow-y-auto [&_[role=\"tabpanel\"]]:scrollbar-thin'\n onValueChange={onChangeViewState}\n >\n <Tabs.Tablist classNames={tx('toolbar.root', 'toolbar', {})}>\n <Tabs.Tab value='unresolved' classNames='text-sm'>\n {t('show unresolved label')}\n </Tabs.Tab>\n <Tabs.Tab value='all' classNames='text-sm'>\n {t('show all label')}\n </Tabs.Tab>\n </Tabs.Tablist>\n <Tabs.Tabpanel value='all'>{showResolvedThreads && comments}</Tabs.Tabpanel>\n <Tabs.Tabpanel value='unresolved'>{!showResolvedThreads && comments}</Tabs.Tabpanel>\n </Tabs.Root>\n </StackItem.Content>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport const ChannelContainer = lazy(() => import('./ChannelContainer'));\nexport const ChatContainer = lazy(() => import('./ChatContainer'));\n\n// TODO(wittjosiah): Suspense boundary for sidebar?\nexport * from './Call';\nexport * from './CallDebugPanel';\nexport * from './CallSidebar';\nexport * from './CommentContainer';\nexport * from './CommentsContainer';\nexport * from './MessageContainer';\nexport * from './ThreadComplementary';\nexport * from './ThreadSettings';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CheckCircle, X } from '@phosphor-icons/react';\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\n\nimport { Relation } from '@dxos/echo';\nimport { RefArray } from '@dxos/live-object';\nimport { fullyQualifiedId, getSpace, useMembers } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { Button, Tag, Tooltip, useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { createBasicExtensions, createThemeExtensions, listener } from '@dxos/react-ui-editor';\nimport {\n getSize,\n hoverableControlItem,\n hoverableControls,\n hoverableFocusedWithinControls,\n mx,\n} from '@dxos/react-ui-theme';\nimport {\n MessageTextbox,\n type MessageTextboxProps,\n Thread,\n ThreadFooter,\n ThreadHeading,\n type ThreadProps,\n} from '@dxos/react-ui-thread';\nimport { type AnchoredTo } from '@dxos/schema';\nimport { isNonNullable } from '@dxos/util';\n\nimport { MessageContainer } from './MessageContainer';\nimport { command } from './command-extension';\nimport { useStatus } from '../hooks';\nimport { THREAD_PLUGIN } from '../meta';\nimport { type ThreadType } from '../types';\nimport { getMessageMetadata } from '../util';\n\nconst sizeClass = getSize(4);\n\n// TODO(thure): #8149\nconst commentControlClassNames = '!p-1 !min-bs-0 transition-opacity';\n\nconst ToggleResolvedButton = ({\n isResolved,\n onResolve,\n}: {\n isResolved: boolean | undefined;\n onResolve: () => void;\n}) => {\n const { t } = useTranslation(THREAD_PLUGIN);\n const label = t(isResolved ? 'mark as unresolved label' : 'mark as resolved label');\n return (\n <Tooltip.Trigger asChild content={label}>\n <Button\n variant='ghost'\n data-testid='thread.toggle-resolved'\n onClick={onResolve}\n classNames={[commentControlClassNames, !isResolved && hoverableControlItem]}\n >\n <span className='sr-only'>{label}</span>\n {isResolved ? <CheckCircle className={sizeClass} weight='fill' /> : <CheckCircle className={sizeClass} />}\n </Button>\n </Tooltip.Trigger>\n );\n};\n\nconst DeleteThreadButton = ({ onDelete }: { onDelete: () => void }) => {\n const { t } = useTranslation(THREAD_PLUGIN);\n const label = t('delete thread label');\n return (\n <Tooltip.Trigger asChild content={label}>\n <Button\n variant='ghost'\n data-testid='thread.delete'\n onClick={onDelete}\n classNames={[commentControlClassNames, hoverableControlItem]}\n >\n <span className='sr-only'>{label}</span>\n <X className={sizeClass} />\n </Button>\n </Tooltip.Trigger>\n );\n};\n\nexport type CommentContainerProps = {\n anchor: AnchoredTo;\n onAttend?: (anchor: AnchoredTo) => void;\n onComment?: (anchor: AnchoredTo, message: string) => void;\n onResolve?: (anchor: AnchoredTo) => void;\n onMessageDelete?: (anchor: AnchoredTo, messageId: string) => void;\n onThreadDelete?: (anchor: AnchoredTo) => void;\n} & Pick<ThreadProps, 'current'>;\n\nexport const CommentContainer = ({\n anchor,\n current,\n onAttend,\n onComment,\n onResolve,\n onMessageDelete,\n onThreadDelete,\n}: CommentContainerProps) => {\n const identity = useIdentity()!;\n const space = getSpace(anchor);\n const members = useMembers(space?.key);\n const detached = !anchor.anchor;\n const thread = Relation.getSource(anchor) as ThreadType;\n const activity = useStatus(space, fullyQualifiedId(thread));\n const { t } = useTranslation(THREAD_PLUGIN);\n const threadScrollRef = useRef<HTMLDivElement | null>(null);\n const { themeMode } = useThemeContext();\n\n const textboxMetadata = getMessageMetadata(fullyQualifiedId(thread), identity);\n // TODO(wittjosiah): This is a hack to reset the editor after a message is sent.\n const [_count, _setCount] = useState(0);\n const rerenderEditor = () => _setCount((count) => count + 1);\n const messageRef = useRef('');\n const extensions = useMemo(\n () => [\n createBasicExtensions({ placeholder: t('message placeholder') }),\n createThemeExtensions({ themeMode }),\n listener({ onChange: (text) => (messageRef.current = text) }),\n command,\n ],\n [_count],\n );\n\n // TODO(thure): Factor out.\n const scrollToEnd = (behavior: ScrollBehavior) =>\n setTimeout(() => threadScrollRef.current?.scrollIntoView({ behavior, block: 'end' }), 10);\n\n const handleAttend = useCallback(() => onAttend?.(anchor), [onAttend, anchor]);\n const handleResolve = useCallback(() => onResolve?.(anchor), [onResolve, anchor]);\n const handleMessageDelete = useCallback((id: string) => onMessageDelete?.(anchor, id), [onMessageDelete, anchor]);\n const handleThreadDelete = useCallback(() => onThreadDelete?.(anchor), [onThreadDelete, anchor]);\n\n const handleComment: MessageTextboxProps['onSend'] = useCallback(() => {\n if (!messageRef.current) {\n return false;\n }\n\n onComment?.(anchor, messageRef.current);\n messageRef.current = '';\n scrollToEnd('instant');\n rerenderEditor();\n\n return true;\n }, [anchor, identity]);\n\n return (\n <Thread onClickCapture={handleAttend} onFocusCapture={handleAttend} current={current} id={fullyQualifiedId(thread)}>\n <div\n role='none'\n className={mx(\n 'col-span-2 grid grid-cols-[var(--rail-size)_1fr_min-content]',\n hoverableControls,\n hoverableFocusedWithinControls,\n )}\n >\n {detached ? (\n <Tooltip.Trigger asChild content={t('detached thread label')} side='top'>\n <ThreadHeading detached>{thread.name}</ThreadHeading>\n </Tooltip.Trigger>\n ) : (\n <ThreadHeading>{thread.name}</ThreadHeading>\n )}\n <div className='flex flex-row items-center pli-1'>\n {thread.status === 'staged' && <Tag palette='neutral'>{t('draft button')}</Tag>}\n {onResolve && !(thread?.status === 'staged') && (\n <ToggleResolvedButton isResolved={thread?.status === 'resolved'} onResolve={handleResolve} />\n )}\n {onThreadDelete && <DeleteThreadButton onDelete={handleThreadDelete} />}\n </div>\n </div>\n {/** TODO(dmaretskyi): How's `thread.messages` undefined? */}\n {RefArray.targets(thread.messages?.filter(isNonNullable) ?? []).map((message) => (\n <MessageContainer\n key={message.id}\n editable\n message={message}\n members={members}\n onDelete={handleMessageDelete}\n />\n ))}\n {/*\n TODO(wittjosiah): Can't autofocus this generally.\n There can be multiple threads with inputs and they can't all be focused.\n Also, it steals focus from documents when first rendered.\n Need to find a way to autofocus in one scenario only: when a new thread is created.\n */}\n <MessageTextbox extensions={extensions} onSend={handleComment} {...textboxMetadata} />\n <ThreadFooter activity={activity}>{t('activity message')}</ThreadFooter>\n {/* NOTE(thure): This can’t also be the `overflow-anchor` because `ScrollArea` injects an interceding node that contains this necessary ref’d element. */}\n <div role='none' className='bs-px -mbs-px' ref={threadScrollRef} />\n </Thread>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useEffect } from 'react';\n\nimport { Relation } from '@dxos/echo';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { Callout, Icon, Trans, useTranslation } from '@dxos/react-ui';\nimport { type AnchoredTo } from '@dxos/schema';\n\nimport { CommentContainer, type CommentContainerProps } from './CommentContainer';\nimport { THREAD_PLUGIN } from '../meta';\nimport { type ThreadType } from '../types';\n\nexport type ThreadsContainerProps = Omit<CommentContainerProps, 'anchor' | 'current'> & {\n anchors: AnchoredTo[];\n currentId?: string;\n showResolvedThreads?: boolean;\n};\n\n/**\n * Comment threads.\n */\nexport const CommentsContainer = ({ anchors, currentId, showResolvedThreads, ...props }: ThreadsContainerProps) => {\n const { t } = useTranslation(THREAD_PLUGIN);\n // TODO(wittjosiah): There seems to be a race between thread and anchor being deleted.\n const filteredAnchors = showResolvedThreads\n ? anchors.filter((anchor) => !!Relation.getSource(anchor))\n : anchors.filter((anchor) => {\n const thread = Relation.getSource(anchor);\n return thread && thread.status !== 'resolved';\n });\n\n useEffect(() => {\n if (currentId) {\n document.getElementById(currentId)?.scrollIntoView({ behavior: 'smooth', block: 'end' });\n }\n }, [currentId]);\n\n if (filteredAnchors.length === 0) {\n return (\n <div role='none' className='plb-cardSpacingBlock pli-cardSpacingInline'>\n <Callout.Root>\n <Callout.Title>\n <Trans\n {...{\n t,\n i18nKey: 'no comments message',\n components: {\n commentIcon: <Icon icon='ph--chat-text--regular' size={4} classNames='inline-block' />,\n },\n }}\n />\n </Callout.Title>\n </Callout.Root>\n </div>\n );\n }\n\n return filteredAnchors.map((anchor) => {\n const thread = Relation.getSource(anchor) as ThreadType;\n const threadId = fullyQualifiedId(thread);\n return <CommentContainer key={threadId} anchor={anchor} current={currentId === threadId} {...props} />;\n });\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\n// import { useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer } from '@dxos/react-ui-form';\n\n// import { THREAD_PLUGIN } from '../meta';\nimport type { ThreadSettingsProps } from '../types';\n\nexport const ThreadSettings = ({ settings }: { settings: ThreadSettingsProps }) => {\n // const { t } = useTranslation(THREAD_PLUGIN);\n\n return <DeprecatedFormContainer></DeprecatedFormContainer>;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_react", "import_app_framework", "import_echo", "import_react_ui", "import_halo", "CallDebugPanel", "state", "users", "call", "self", "t", "useTranslation", "THREAD_PLUGIN", "open", "setOpen", "useState", "handleToggle", "showDetailedWebRTCStats", "setShowDetailedWebRTCStats", "handleShowDetailedWebRTCStats", "webrtcStats", "useMemo", "WebRTCStats", "getStatsInterval", "stats", "setStats", "useEffect", "pc", "media", "peer", "session", "peerConnection", "handleStats", "data", "added", "addConnection", "peerId", "connectionId", "on", "removeConnection", "removeListener", "error", "log", "React", "Panel", "id", "icon", "onToggle", "title", "maxHeight", "info", "div", "className", "span", "joined", "length", "undefined", "Input", "Root", "Label", "classNames", "Checkbox", "checked", "onCheckedChange", "Json", "activities", "webrtc", "connectionState", "iceConnectionState", "tracks", "getTransceivers", "map", "transceiver", "track", "direction", "receiver", "sender", "kind", "enabled", "muted", "readyState", "settings", "getSettings", "callsServiceHistory", "history", "get", "CallSidebar", "useCapability", "ThreadCapabilities", "CallManager", "ChannelContainer", "roomId", "sizeClass", "getSize", "commentControlClassNames", "ToggleResolvedButton", "isResolved", "onResolve", "label", "Tooltip", "Trigger", "asChild", "content", "Button", "variant", "data-testid", "onClick", "hoverableControlItem", "CheckCircle", "weight", "DeleteThreadButton", "onDelete", "X", "CommentContainer", "anchor", "current", "onAttend", "onComment", "onMessageDelete", "onThreadDelete", "identity", "useIdentity", "space", "getSpace", "members", "useMembers", "key", "detached", "thread", "Relation", "getSource", "activity", "useStatus", "fullyQualifiedId", "threadScrollRef", "useRef", "themeMode", "useThemeContext", "textboxMetadata", "getMessageMetadata", "_count", "_setCount", "rerenderEditor", "count", "messageRef", "extensions", "createBasicExtensions", "placeholder", "createThemeExtensions", "listener", "onChange", "text", "command", "scrollToEnd", "behavior", "setTimeout", "scrollIntoView", "block", "handleAttend", "useCallback", "handleResolve", "handleMessageDelete", "handleThreadDelete", "handleComment", "Thread", "onClickCapture", "onFocusCapture", "role", "mx", "hoverableControls", "hoverableFocusedWithinControls", "side", "ThreadHeading", "name", "status", "Tag", "palette", "RefArray", "targets", "messages", "filter", "isNonNullable", "message", "MessageContainer", "editable", "MessageTextbox", "onSend", "ThreadFooter", "ref", "CommentsContainer", "anchors", "currentId", "showResolvedThreads", "props", "filteredAnchors", "document", "getElementById", "Callout", "Title", "Trans", "i18nKey", "components", "commentIcon", "Icon", "size", "threadId", "ThreadSettings", "DeprecatedFormContainer", "lazy", "ChatContainer", "ThreadComplementary", "subject", "dispatchPromise", "dispatch", "useIntentDispatcher", "tx", "subjectId", "getViewState", "MutableState", "drafts", "viewState", "onChangeViewState", "nextValue", "anchorSorts", "useCapabilities", "Capabilities", "AnchorSort", "sort", "find", "Obj", "getTypename", "objectsAnchoredTo", "useQuery", "Query", "select", "Filter", "ids", "targetOf", "AnchoredTo", "toSorted", "a", "b", "instanceOf", "ThreadType", "concat", "attended", "useAttended", "createIntent", "LayoutAction", "ScrollIntoView", "part", "options", "cursor", "ThreadAction", "AddMessage", "identityDid", "did", "ToggleResolved", "Delete", "messageId", "DeleteMessage", "comments", "includes", "StackItem", "Content", "toolbar", "Tabs", "value", "orientation", "onValueChange", "Tablist", "Tab", "Tabpanel"]
|
|
7
|
+
}
|
|
@@ -26,15 +26,15 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var chunk_UM36TPCT_exports = {};
|
|
30
|
+
__export(chunk_UM36TPCT_exports, {
|
|
31
31
|
Call: () => Call,
|
|
32
32
|
ChannelContainer: () => ChannelContainer,
|
|
33
33
|
ChannelContainer_default: () => ChannelContainer_default
|
|
34
34
|
});
|
|
35
|
-
module.exports = __toCommonJS(
|
|
35
|
+
module.exports = __toCommonJS(chunk_UM36TPCT_exports);
|
|
36
36
|
var import_chunk_4YSNVPWU = require("./chunk-4YSNVPWU.cjs");
|
|
37
|
-
var
|
|
37
|
+
var import_chunk_E3WBZTTI = require("./chunk-E3WBZTTI.cjs");
|
|
38
38
|
var import_chunk_FUXJAVFZ = require("./chunk-FUXJAVFZ.cjs");
|
|
39
39
|
var import_chunk_HLMCEE5K = require("./chunk-HLMCEE5K.cjs");
|
|
40
40
|
var import_tracking = require("@preact-signals/safe-react/tracking");
|
|
@@ -95,10 +95,10 @@ var Toolbar = ({ classNames, channel, participants, autoHideControls = true, onJ
|
|
|
95
95
|
const isScreensharing = call.media.screenshareTrack !== void 0;
|
|
96
96
|
const canSharescreen = typeof navigator.mediaDevices !== "undefined" && navigator.mediaDevices.getDisplayMedia !== void 0;
|
|
97
97
|
return /* @__PURE__ */ import_react3.default.createElement("div", {
|
|
98
|
-
className: (0, import_react_ui_theme.mx)("z-20 flex justify-center m-8", autoHideControls && import_react_ui_theme.
|
|
98
|
+
className: (0, import_react_ui_theme.mx)("z-20 flex justify-center m-8", autoHideControls && import_react_ui_theme.groupHoverControlItemWithTransition)
|
|
99
99
|
}, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Toolbar.Root, {
|
|
100
100
|
classNames: [
|
|
101
|
-
"p-2 bg-modalSurface rounded-
|
|
101
|
+
"p-2 bg-modalSurface rounded-md shadow-md",
|
|
102
102
|
classNames
|
|
103
103
|
]
|
|
104
104
|
}, /* @__PURE__ */ import_react3.default.createElement(ToggleButton, {
|
|
@@ -581,7 +581,7 @@ var ResponsiveGridItem = ({ children, classNames, item, style, name, self, pinne
|
|
|
581
581
|
}, children, onClick && /* @__PURE__ */ import_react9.default.createElement("div", {
|
|
582
582
|
className: "z-10 absolute top-1 right-1 flex"
|
|
583
583
|
}, /* @__PURE__ */ import_react9.default.createElement(import_react_ui3.IconButton, {
|
|
584
|
-
classNames: (0, import_react_ui_theme5.mx)("p-1 min-bs-1 rounded", import_react_ui_theme5.
|
|
584
|
+
classNames: (0, import_react_ui_theme5.mx)("p-1 min-bs-1 rounded", import_react_ui_theme5.groupHoverControlItemWithTransition),
|
|
585
585
|
iconOnly: true,
|
|
586
586
|
icon: pinned ? "ph--x--regular" : "ph--arrows-out--regular",
|
|
587
587
|
size: pinned ? 5 : 4,
|
|
@@ -886,7 +886,7 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
|
|
|
886
886
|
attendableId: (0, import_echo.fullyQualifiedId)(channel),
|
|
887
887
|
role,
|
|
888
888
|
onJoinCall: handleJoin
|
|
889
|
-
}), /* @__PURE__ */ import_react.default.createElement(
|
|
889
|
+
}), /* @__PURE__ */ import_react.default.createElement(import_chunk_E3WBZTTI.ChatContainer_default, {
|
|
890
890
|
space,
|
|
891
891
|
thread: channel.defaultThread.target
|
|
892
892
|
})));
|
|
@@ -928,40 +928,38 @@ var DisplayNameMissing = () => {
|
|
|
928
928
|
};
|
|
929
929
|
var useChannelToolbarActions = (onJoinCall) => {
|
|
930
930
|
const creator = (0, import_react.useMemo)(() => import_rx_react.Rx.make(() => {
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
931
|
+
return {
|
|
932
|
+
nodes: [
|
|
933
|
+
(0, import_react_ui_menu.createMenuItemGroup)("root", {
|
|
934
|
+
label: [
|
|
935
|
+
"channel toolbar title",
|
|
936
|
+
{
|
|
937
|
+
ns: import_chunk_HLMCEE5K.THREAD_PLUGIN
|
|
938
|
+
}
|
|
939
|
+
]
|
|
940
|
+
}),
|
|
941
|
+
(0, import_react_ui_menu.createMenuAction)("video-call", () => onJoinCall?.(), {
|
|
942
|
+
label: [
|
|
943
|
+
"start video call label",
|
|
944
|
+
{
|
|
945
|
+
ns: import_chunk_HLMCEE5K.THREAD_PLUGIN
|
|
946
|
+
}
|
|
947
|
+
],
|
|
948
|
+
icon: "ph--video-camera--regular",
|
|
949
|
+
type: "video-call"
|
|
950
|
+
})
|
|
951
|
+
],
|
|
952
|
+
edges: [
|
|
936
953
|
{
|
|
937
|
-
|
|
954
|
+
source: "root",
|
|
955
|
+
target: "video-call"
|
|
938
956
|
}
|
|
939
957
|
]
|
|
940
|
-
});
|
|
941
|
-
nodes.push(rootGroup);
|
|
942
|
-
const sortAction = (0, import_react_ui_menu.createMenuAction)("video-call", () => onJoinCall?.(), {
|
|
943
|
-
label: [
|
|
944
|
-
"start video call label",
|
|
945
|
-
{
|
|
946
|
-
ns: import_chunk_HLMCEE5K.THREAD_PLUGIN
|
|
947
|
-
}
|
|
948
|
-
],
|
|
949
|
-
icon: "ph--video-camera--regular",
|
|
950
|
-
type: "video-call"
|
|
951
|
-
});
|
|
952
|
-
nodes.push(sortAction);
|
|
953
|
-
edges.push({
|
|
954
|
-
source: "root",
|
|
955
|
-
target: sortAction.id
|
|
956
|
-
});
|
|
957
|
-
return {
|
|
958
|
-
nodes,
|
|
959
|
-
edges
|
|
960
958
|
};
|
|
961
959
|
}), []);
|
|
962
960
|
return (0, import_react_ui_menu.useMenuActions)(creator);
|
|
963
961
|
};
|
|
964
|
-
var ChannelToolbar = ({ attendableId, role, onJoinCall }) => {
|
|
962
|
+
var ChannelToolbar = ({ attendableId, role, onJoinCall, classNames }) => {
|
|
965
963
|
var _effect = (0, import_tracking.useSignals)();
|
|
966
964
|
try {
|
|
967
965
|
const menuProps = useChannelToolbarActions(onJoinCall);
|
|
@@ -970,7 +968,9 @@ var ChannelToolbar = ({ attendableId, role, onJoinCall }) => {
|
|
|
970
968
|
}, /* @__PURE__ */ import_react.default.createElement(import_react_ui_menu.MenuProvider, {
|
|
971
969
|
...menuProps,
|
|
972
970
|
attendableId
|
|
973
|
-
}, /* @__PURE__ */ import_react.default.createElement(import_react_ui_menu.ToolbarMenu,
|
|
971
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_react_ui_menu.ToolbarMenu, {
|
|
972
|
+
classNames
|
|
973
|
+
})));
|
|
974
974
|
} finally {
|
|
975
975
|
_effect.f();
|
|
976
976
|
}
|
|
@@ -981,4 +981,4 @@ var ChannelToolbar = ({ attendableId, role, onJoinCall }) => {
|
|
|
981
981
|
ChannelContainer,
|
|
982
982
|
ChannelContainer_default
|
|
983
983
|
});
|
|
984
|
-
//# sourceMappingURL=chunk-
|
|
984
|
+
//# sourceMappingURL=chunk-UM36TPCT.cjs.map
|