@mulmoclaude/collection-plugin 0.5.3 → 0.5.6
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/server/host.d.ts +25 -0
- package/dist/server/host.d.ts.map +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/io.d.ts +6 -0
- package/dist/server/io.d.ts.map +1 -1
- package/dist/server.cjs +32 -8
- package/dist/server.cjs.map +1 -1
- package/dist/server.js +31 -9
- package/dist/server.js.map +1 -1
- package/dist/style.css +3 -3
- package/dist/vue/components/CollectionCustomView.vue.d.ts +19 -1
- package/dist/vue/components/CollectionCustomView.vue.d.ts.map +1 -1
- package/dist/vue/components/CollectionRecordPanel.vue.d.ts +2 -2
- package/dist/vue/components/CollectionView.vue.d.ts.map +1 -1
- package/dist/vue/uiContext.d.ts +12 -0
- package/dist/vue/uiContext.d.ts.map +1 -1
- package/dist/vue.cjs +144 -4
- package/dist/vue.cjs.map +1 -1
- package/dist/vue.js +145 -5
- package/dist/vue.js.map +1 -1
- package/package.json +2 -2
package/dist/style.css
CHANGED
|
@@ -2746,7 +2746,7 @@
|
|
|
2746
2746
|
}
|
|
2747
2747
|
}
|
|
2748
2748
|
|
|
2749
|
-
.custom-view-container[data-v-
|
|
2749
|
+
.custom-view-container[data-v-d5fb7ca6] {
|
|
2750
2750
|
width: 100%;
|
|
2751
2751
|
height: 100%;
|
|
2752
2752
|
min-height: 0;
|
|
@@ -2755,12 +2755,12 @@
|
|
|
2755
2755
|
background: white;
|
|
2756
2756
|
overflow: hidden;
|
|
2757
2757
|
}
|
|
2758
|
-
.custom-view-message[data-v-
|
|
2758
|
+
.custom-view-message[data-v-d5fb7ca6] {
|
|
2759
2759
|
padding: 1rem;
|
|
2760
2760
|
font-size: 0.875rem;
|
|
2761
2761
|
color: #64748b;
|
|
2762
2762
|
}
|
|
2763
|
-
[role="alert"].custom-view-message[data-v-
|
|
2763
|
+
[role="alert"].custom-view-message[data-v-d5fb7ca6] {
|
|
2764
2764
|
color: #b71c1c;
|
|
2765
2765
|
}
|
|
2766
2766
|
/*$vite$:1*/
|
|
@@ -3,7 +3,25 @@ type __VLS_Props = {
|
|
|
3
3
|
slug: string;
|
|
4
4
|
view: CollectionCustomView;
|
|
5
5
|
};
|
|
6
|
-
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
7
|
+
openItem: (payload: {
|
|
8
|
+
id: string;
|
|
9
|
+
mode: "view" | "edit";
|
|
10
|
+
}) => any;
|
|
11
|
+
startChat: (payload: {
|
|
12
|
+
prompt: string;
|
|
13
|
+
role?: string;
|
|
14
|
+
}) => any;
|
|
15
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
16
|
+
onOpenItem?: ((payload: {
|
|
17
|
+
id: string;
|
|
18
|
+
mode: "view" | "edit";
|
|
19
|
+
}) => any) | undefined;
|
|
20
|
+
onStartChat?: ((payload: {
|
|
21
|
+
prompt: string;
|
|
22
|
+
role?: string;
|
|
23
|
+
}) => any) | undefined;
|
|
24
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
7
25
|
declare const _default: typeof __VLS_export;
|
|
8
26
|
export default _default;
|
|
9
27
|
//# sourceMappingURL=CollectionCustomView.vue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollectionCustomView.vue.d.ts","sourceRoot":"","sources":["../../../src/vue/components/CollectionCustomView.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CollectionCustomView.vue.d.ts","sourceRoot":"","sources":["../../../src/vue/components/CollectionCustomView.vue"],"names":[],"mappings":"AAuNA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAK9D,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,oBAAoB,CAAC;CAC5B,CAAC;AAuNF,QAAA,MAAM,YAAY;;YAjNU,MAAM;cAAQ,MAAM,GAAG,MAAM;;;gBAGxB,MAAM;eAAS,MAAM;;;;YAH1B,MAAM;cAAQ,MAAM,GAAG,MAAM;;;gBAGxB,MAAM;eAAS,MAAM;;kFAiNpD,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -26,18 +26,18 @@ type __VLS_ModelProps = {
|
|
|
26
26
|
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
27
27
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
28
28
|
edit: () => any;
|
|
29
|
+
delete: () => any;
|
|
29
30
|
close: () => any;
|
|
30
31
|
submit: () => any;
|
|
31
32
|
cancel: () => any;
|
|
32
|
-
delete: () => any;
|
|
33
33
|
runAction: (action: CollectionAction) => any;
|
|
34
34
|
"update:editing": (value: EditState | null) => any;
|
|
35
35
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
36
36
|
onEdit?: (() => any) | undefined;
|
|
37
|
+
onDelete?: (() => any) | undefined;
|
|
37
38
|
onClose?: (() => any) | undefined;
|
|
38
39
|
onSubmit?: (() => any) | undefined;
|
|
39
40
|
onCancel?: (() => any) | undefined;
|
|
40
|
-
onDelete?: (() => any) | undefined;
|
|
41
41
|
onRunAction?: ((action: CollectionAction) => any) | undefined;
|
|
42
42
|
"onUpdate:editing"?: ((value: EditState | null) => any) | undefined;
|
|
43
43
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollectionView.vue.d.ts","sourceRoot":"","sources":["../../../src/vue/components/CollectionView.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CollectionView.vue.d.ts","sourceRoot":"","sources":["../../../src/vue/components/CollectionView.vue"],"names":[],"mappings":"AA6qEA,OAAO,EAML,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AA8B/B;;;;;;;;;6CAS6C;AAC7C,KAAK,WAAW,GAAG;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C;;;uEAGmE;IACnE,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAkkHF,QAAA,MAAM,YAAY;;;cAvjHiB,eAAe;qBAAe,MAAM;oBAAc,MAAM;;;;;cAAxD,eAAe;qBAAe,MAAM;oBAAc,MAAM;;kFA0jHzF,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
package/dist/vue/uiContext.d.ts
CHANGED
|
@@ -159,6 +159,11 @@ export interface CollectionUi {
|
|
|
159
159
|
reconcileShortcuts: (kind: "collection" | "feed", live: CollectionShortcutInfo[]) => Promise<void>;
|
|
160
160
|
/** Start a new chat with a seed prompt + role (host: `useAppApi().startNewChat`). */
|
|
161
161
|
startChat: (prompt: string, role: string) => void;
|
|
162
|
+
/** Open a new chat with `prompt` prefilled in the composer as an editable DRAFT
|
|
163
|
+
* (NOT auto-sent) — the user reviews / edits / sends it. Backs a custom view's
|
|
164
|
+
* `__MC_VIEW.startChat`. `role` is optional and validated host-side (falls back
|
|
165
|
+
* to the general role). */
|
|
166
|
+
startNewChatDraft: (prompt: string, role?: string) => void;
|
|
162
167
|
/** The host's active i18n locale tag (e.g. "en", "ja"), read reactively — the
|
|
163
168
|
* plugin syncs its own self-contained i18n instance to it. */
|
|
164
169
|
localeTag: () => string;
|
|
@@ -172,6 +177,13 @@ export interface CollectionUi {
|
|
|
172
177
|
/** Active-notification severity per record id, for accenting flagged rows/cards
|
|
173
178
|
* (`collectionNotifiedSeverities` over the host's live notifier entries). */
|
|
174
179
|
notifiedSeverities: (slug: string) => Map<string, CollectionNotifySeverity>;
|
|
180
|
+
/** Subscribe to server-side record changes for `slug` — fires `cb` whenever a
|
|
181
|
+
* record is created / updated / deleted by ANY writer (the agent, the UI, a
|
|
182
|
+
* feed refresh, or a host-driven `spawn` successor), so a live view can
|
|
183
|
+
* debounce-refetch. Returns an unsubscribe. Optional: a host without a
|
|
184
|
+
* pub/sub transport omits it and views fall back to manual refresh (so this
|
|
185
|
+
* is purely additive — a missing binding never breaks a view). */
|
|
186
|
+
subscribeChanges?: (slug: string, cb: () => void) => () => void;
|
|
175
187
|
/** The host's pin/unpin toggle (couples to the host's shortcut store + is
|
|
176
188
|
* shared with other host views), rendered in the View header via
|
|
177
189
|
* `<component :is>`. Props: `kind`, `slug`, `title`, `icon`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uiContext.d.ts","sourceRoot":"","sources":["../../src/vue/uiContext.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"uiContext.d.ts","sourceRoot":"","sources":["../../src/vue/uiContext.ts"],"names":[],"mappings":"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"}
|
package/dist/vue.cjs
CHANGED
|
@@ -2379,12 +2379,15 @@ var CollectionCustomView_vue_vue_type_script_setup_true_lang_default = /* @__PUR
|
|
|
2379
2379
|
slug: {},
|
|
2380
2380
|
view: {}
|
|
2381
2381
|
},
|
|
2382
|
-
|
|
2382
|
+
emits: ["openItem", "startChat"],
|
|
2383
|
+
setup(__props, { emit: __emit }) {
|
|
2383
2384
|
const { t } = useCollectionI18n();
|
|
2384
2385
|
const props = __props;
|
|
2386
|
+
const emit = __emit;
|
|
2385
2387
|
const loading = (0, vue.ref)(true);
|
|
2386
2388
|
const error = (0, vue.ref)(null);
|
|
2387
2389
|
const srcdoc = (0, vue.ref)(null);
|
|
2390
|
+
const iframeEl = (0, vue.ref)(null);
|
|
2388
2391
|
let refreshTimer;
|
|
2389
2392
|
function clearRefresh() {
|
|
2390
2393
|
if (refreshTimer !== void 0) {
|
|
@@ -2433,9 +2436,53 @@ var CollectionCustomView_vue_vue_type_script_setup_true_lang_default = /* @__PUR
|
|
|
2433
2436
|
}
|
|
2434
2437
|
}
|
|
2435
2438
|
(0, vue.watch)([() => props.slug, () => props.view.id], () => void load(), { immediate: true });
|
|
2436
|
-
|
|
2439
|
+
let changeUnsub = null;
|
|
2440
|
+
function relayChange() {
|
|
2441
|
+
iframeEl.value?.contentWindow?.postMessage({
|
|
2442
|
+
type: "mc-collection-changed",
|
|
2443
|
+
slug: props.slug
|
|
2444
|
+
}, "*");
|
|
2445
|
+
}
|
|
2446
|
+
(0, vue.watch)(() => props.slug, (slug) => {
|
|
2447
|
+
changeUnsub?.();
|
|
2448
|
+
changeUnsub = null;
|
|
2449
|
+
const subscribe = collectionUi().subscribeChanges;
|
|
2450
|
+
if (slug && subscribe) changeUnsub = subscribe(slug, relayChange);
|
|
2451
|
+
}, { immediate: true });
|
|
2452
|
+
function handleOpenItem(body) {
|
|
2453
|
+
const itemId = typeof body.id === "string" ? body.id : String(body.id ?? "");
|
|
2454
|
+
if (!itemId) return;
|
|
2455
|
+
emit("openItem", {
|
|
2456
|
+
id: itemId,
|
|
2457
|
+
mode: body.mode === "edit" ? "edit" : "view"
|
|
2458
|
+
});
|
|
2459
|
+
}
|
|
2460
|
+
function handleStartChat(body) {
|
|
2461
|
+
const prompt = typeof body.prompt === "string" ? body.prompt.trim() : "";
|
|
2462
|
+
if (!prompt) return;
|
|
2463
|
+
emit("startChat", {
|
|
2464
|
+
prompt,
|
|
2465
|
+
role: typeof body.role === "string" ? body.role : void 0
|
|
2466
|
+
});
|
|
2467
|
+
}
|
|
2468
|
+
function onWindowMessage(event) {
|
|
2469
|
+
if (event.source !== iframeEl.value?.contentWindow) return;
|
|
2470
|
+
const msg = event.data;
|
|
2471
|
+
if (!msg || msg.slug !== props.slug) return;
|
|
2472
|
+
if (msg.type === "mc-open-item") handleOpenItem(msg);
|
|
2473
|
+
else if (msg.type === "mc-start-chat") handleStartChat(msg);
|
|
2474
|
+
}
|
|
2475
|
+
(0, vue.onMounted)(() => window.addEventListener("message", onWindowMessage));
|
|
2476
|
+
(0, vue.onBeforeUnmount)(() => {
|
|
2477
|
+
clearRefresh();
|
|
2478
|
+
changeUnsub?.();
|
|
2479
|
+
changeUnsub = null;
|
|
2480
|
+
window.removeEventListener("message", onWindowMessage);
|
|
2481
|
+
});
|
|
2437
2482
|
return (_ctx, _cache) => {
|
|
2438
2483
|
return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_1$5, [error.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_2$4, (0, vue.toDisplayString)((0, vue.unref)(t)("collectionsView.customViewError", { error: error.value })), 1)) : loading.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_3$4, (0, vue.toDisplayString)((0, vue.unref)(t)("collectionsView.customViewLoading")), 1)) : srcdoc.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("iframe", {
|
|
2484
|
+
ref_key: "iframeEl",
|
|
2485
|
+
ref: iframeEl,
|
|
2439
2486
|
key: __props.view.id,
|
|
2440
2487
|
"data-testid": "collection-custom-view-iframe",
|
|
2441
2488
|
title: __props.view.label,
|
|
@@ -2455,7 +2502,7 @@ var _plugin_vue_export_helper_default = (sfc, props) => {
|
|
|
2455
2502
|
};
|
|
2456
2503
|
//#endregion
|
|
2457
2504
|
//#region src/vue/components/CollectionCustomView.vue
|
|
2458
|
-
var CollectionCustomView_default = /* @__PURE__ */ _plugin_vue_export_helper_default(CollectionCustomView_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
2505
|
+
var CollectionCustomView_default = /* @__PURE__ */ _plugin_vue_export_helper_default(CollectionCustomView_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-d5fb7ca6"]]);
|
|
2459
2506
|
//#endregion
|
|
2460
2507
|
//#region src/vue/useCollectionRendering.ts
|
|
2461
2508
|
function useCollectionRendering(collection, locale) {
|
|
@@ -2985,6 +3032,17 @@ var _hoisted_83 = { class: "px-6 py-5" };
|
|
|
2985
3032
|
var _hoisted_84 = ["placeholder", "onKeydown"];
|
|
2986
3033
|
var _hoisted_85 = { class: "px-6 py-3.5 border-t border-slate-100 flex items-center justify-end gap-2 bg-slate-50/50" };
|
|
2987
3034
|
var _hoisted_86 = ["disabled"];
|
|
3035
|
+
/** `slug` / `selected` are supplied only in EMBEDDED mode (the
|
|
3036
|
+
* `presentCollection` chat card mounts this component and drives both
|
|
3037
|
+
* from the tool result). In standalone route mode (the
|
|
3038
|
+
* `/collections/:slug` page) both are undefined and the component reads
|
|
3039
|
+
* `route.params.slug` / `route.query.selected` as before.
|
|
3040
|
+
*
|
|
3041
|
+
* `sendTextMessage` is forwarded ONLY by the chat card — its presence
|
|
3042
|
+
* is our "rendered inside a chat" signal. When set, chat-triggering
|
|
3043
|
+
* actions send into the current session instead of spawning a new
|
|
3044
|
+
* chat (see `runAction` / `submitChat`). */
|
|
3045
|
+
var LIVE_REFRESH_DEBOUNCE_MS = 150;
|
|
2988
3046
|
//#endregion
|
|
2989
3047
|
//#region src/vue/components/CollectionView.vue
|
|
2990
3048
|
var CollectionView_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
@@ -3358,6 +3416,26 @@ var CollectionView_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
3358
3416
|
}
|
|
3359
3417
|
maybeAutoRefreshFeed(slug);
|
|
3360
3418
|
}
|
|
3419
|
+
/** Refresh records + schema IN PLACE for a live (pub/sub-driven) update,
|
|
3420
|
+
* preserving the user's browsing state — unlike `loadCollection`, which is the
|
|
3421
|
+
* route-change path and resets it. Specifically: does NOT null `collection`
|
|
3422
|
+
* (so the layout and an active custom-view iframe don't remount), keeps
|
|
3423
|
+
* `searchQuery` / `openDay` / `sortState`, and shows no loading spinner; the
|
|
3424
|
+
* open detail (`viewing`) is re-resolved against the fresh records by id, so it
|
|
3425
|
+
* follows an edited record and closes only if the record was deleted. A failed
|
|
3426
|
+
* fetch is a no-op (keep the current data) — a transient blip shouldn't blank a
|
|
3427
|
+
* view the user is reading. */
|
|
3428
|
+
async function refreshItemsInPlace(slug) {
|
|
3429
|
+
const result = await cui.fetchCollectionDetail(slug);
|
|
3430
|
+
if (!result.ok || activeSlug.value !== slug) return;
|
|
3431
|
+
collection.value = result.data.collection;
|
|
3432
|
+
items.value = result.data.items;
|
|
3433
|
+
dataIssues.value = result.data.issues ?? [];
|
|
3434
|
+
enumOriginallyEmpty.value = snapshotEmptyEnums(result.data.collection.schema, result.data.items);
|
|
3435
|
+
await render.loadLinkedCollections(result.data.collection.schema, slug);
|
|
3436
|
+
if (activeSlug.value !== slug) return;
|
|
3437
|
+
if (viewing.value) viewing.value = findItemById(String(viewing.value[result.data.collection.schema.primaryKey] ?? "")) ?? null;
|
|
3438
|
+
}
|
|
3361
3439
|
function maybeAutoRefreshFeed(slug) {
|
|
3362
3440
|
if (embedded.value) return;
|
|
3363
3441
|
const current = collection.value;
|
|
@@ -3873,6 +3951,30 @@ var CollectionView_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
3873
3951
|
showDetail(item);
|
|
3874
3952
|
writeSelectedToUrl(itemId);
|
|
3875
3953
|
}
|
|
3954
|
+
/** A custom (sandboxed) view asked to open a record in the shared modal.
|
|
3955
|
+
* `view` → read-only detail, `edit` → straight into the editor. Ungated: the
|
|
3956
|
+
* capability token governs the view's *code*, not user actions through the
|
|
3957
|
+
* host's own trusted modal (no write happens without an explicit Save). */
|
|
3958
|
+
function onCustomViewOpenItem(payload) {
|
|
3959
|
+
const item = findItemById(payload.id);
|
|
3960
|
+
if (!item) return;
|
|
3961
|
+
if (editing.value) closeEditor();
|
|
3962
|
+
if (payload.mode === "edit") {
|
|
3963
|
+
openEdit(item);
|
|
3964
|
+
return;
|
|
3965
|
+
}
|
|
3966
|
+
showDetail(item);
|
|
3967
|
+
writeSelectedToUrl(payload.id);
|
|
3968
|
+
}
|
|
3969
|
+
/** The custom view called `__MC_VIEW.startChat(prompt, role)` — open a new chat
|
|
3970
|
+
* with the prompt prefilled as an editable draft. The host validates `role`
|
|
3971
|
+
* (falls back to General). The view's code only proposes text; the user
|
|
3972
|
+
* approves / edits / sends, so no capability is required. */
|
|
3973
|
+
function onCustomViewStartChat(payload) {
|
|
3974
|
+
const prompt = payload.prompt.trim();
|
|
3975
|
+
if (!prompt) return;
|
|
3976
|
+
cui.startNewChatDraft(prompt, payload.role);
|
|
3977
|
+
}
|
|
3876
3978
|
/** A calendar day cell was activated → open its popup on a clean slate
|
|
3877
3979
|
* (clear any prior selection so the popup opens timeline-only). */
|
|
3878
3980
|
function onOpenDay(day) {
|
|
@@ -3928,6 +4030,42 @@ var CollectionView_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
3928
4030
|
loading.value = false;
|
|
3929
4031
|
}
|
|
3930
4032
|
}, { immediate: true });
|
|
4033
|
+
let changeUnsub = null;
|
|
4034
|
+
let liveRefreshTimer;
|
|
4035
|
+
let pendingRemoteRefresh = false;
|
|
4036
|
+
function clearLiveRefreshTimer() {
|
|
4037
|
+
if (liveRefreshTimer !== void 0) {
|
|
4038
|
+
clearTimeout(liveRefreshTimer);
|
|
4039
|
+
liveRefreshTimer = void 0;
|
|
4040
|
+
}
|
|
4041
|
+
}
|
|
4042
|
+
function onRemoteChange(slug) {
|
|
4043
|
+
clearLiveRefreshTimer();
|
|
4044
|
+
liveRefreshTimer = setTimeout(() => {
|
|
4045
|
+
liveRefreshTimer = void 0;
|
|
4046
|
+
if (editing.value) {
|
|
4047
|
+
pendingRemoteRefresh = true;
|
|
4048
|
+
return;
|
|
4049
|
+
}
|
|
4050
|
+
if (activeSlug.value === slug) refreshItemsInPlace(slug);
|
|
4051
|
+
}, LIVE_REFRESH_DEBOUNCE_MS);
|
|
4052
|
+
}
|
|
4053
|
+
(0, vue.watch)(editing, (current) => {
|
|
4054
|
+
if (current || !pendingRemoteRefresh) return;
|
|
4055
|
+
pendingRemoteRefresh = false;
|
|
4056
|
+
if (activeSlug.value) refreshItemsInPlace(activeSlug.value);
|
|
4057
|
+
});
|
|
4058
|
+
(0, vue.watch)(activeSlug, (slug) => {
|
|
4059
|
+
changeUnsub?.();
|
|
4060
|
+
changeUnsub = null;
|
|
4061
|
+
clearLiveRefreshTimer();
|
|
4062
|
+
if (slug && cui.subscribeChanges) changeUnsub = cui.subscribeChanges(slug, () => onRemoteChange(slug));
|
|
4063
|
+
}, { immediate: true });
|
|
4064
|
+
(0, vue.onUnmounted)(() => {
|
|
4065
|
+
changeUnsub?.();
|
|
4066
|
+
changeUnsub = null;
|
|
4067
|
+
clearLiveRefreshTimer();
|
|
4068
|
+
});
|
|
3931
4069
|
(0, vue.watch)([
|
|
3932
4070
|
activeView,
|
|
3933
4071
|
calendarAnchorField,
|
|
@@ -4252,7 +4390,9 @@ var CollectionView_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
4252
4390
|
"notified"
|
|
4253
4391
|
])])])) : activeCustomView.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_45, [(0, vue.createVNode)(CollectionCustomView_default, {
|
|
4254
4392
|
slug: collection.value.slug,
|
|
4255
|
-
view: activeCustomView.value
|
|
4393
|
+
view: activeCustomView.value,
|
|
4394
|
+
onOpenItem: onCustomViewOpenItem,
|
|
4395
|
+
onStartChat: onCustomViewStartChat
|
|
4256
4396
|
}, null, 8, ["slug", "view"])])) : items.value.length === 0 && editing.value?.mode !== "create" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_46, [_cache[41] || (_cache[41] = (0, vue.createElementVNode)("span", { class: "material-icons text-4xl text-slate-300" }, "folder_open", -1)), (0, vue.createElementVNode)("p", _hoisted_47, (0, vue.toDisplayString)((0, vue.unref)(t)("collectionsView.itemsEmpty")), 1)])) : filteredItems.value.length === 0 && editing.value?.mode !== "create" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_48, [
|
|
4257
4397
|
_cache[42] || (_cache[42] = (0, vue.createElementVNode)("span", { class: "material-icons text-4xl text-slate-300" }, "search_off", -1)),
|
|
4258
4398
|
(0, vue.createElementVNode)("p", _hoisted_49, (0, vue.toDisplayString)((0, vue.unref)(t)("collectionsView.noMatchingItems")), 1),
|