@mulmoclaude/collection-plugin 0.5.6 → 0.5.8
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/style.css +16 -0
- package/dist/vue/components/CollectionRecordPanel.vue.d.ts +2 -0
- package/dist/vue/components/CollectionRecordPanel.vue.d.ts.map +1 -1
- package/dist/vue/components/CollectionView.vue.d.ts.map +1 -1
- package/dist/vue/lang/de.d.ts.map +1 -1
- package/dist/vue/lang/en.d.ts +2 -0
- package/dist/vue/lang/en.d.ts.map +1 -1
- package/dist/vue/lang/es.d.ts.map +1 -1
- package/dist/vue/lang/fr.d.ts.map +1 -1
- package/dist/vue/lang/index.d.ts +2 -0
- package/dist/vue/lang/index.d.ts.map +1 -1
- package/dist/vue/lang/ja.d.ts.map +1 -1
- package/dist/vue/lang/ko.d.ts.map +1 -1
- package/dist/vue/lang/ptBR.d.ts.map +1 -1
- package/dist/vue/lang/zh.d.ts.map +1 -1
- package/dist/vue/useCollectionRendering.d.ts +2 -0
- package/dist/vue/useCollectionRendering.d.ts.map +1 -1
- package/dist/vue.cjs +96 -15
- package/dist/vue.cjs.map +1 -1
- package/dist/vue.js +96 -15
- package/dist/vue.js.map +1 -1
- package/package.json +2 -2
package/dist/style.css
CHANGED
|
@@ -614,6 +614,10 @@
|
|
|
614
614
|
margin-top: calc(var(--spacing) * 4);
|
|
615
615
|
}
|
|
616
616
|
|
|
617
|
+
.mt-5 {
|
|
618
|
+
margin-top: calc(var(--spacing) * 5);
|
|
619
|
+
}
|
|
620
|
+
|
|
617
621
|
.mr-1 {
|
|
618
622
|
margin-right: var(--spacing);
|
|
619
623
|
}
|
|
@@ -626,6 +630,10 @@
|
|
|
626
630
|
margin-bottom: var(--spacing);
|
|
627
631
|
}
|
|
628
632
|
|
|
633
|
+
.mb-1\.5 {
|
|
634
|
+
margin-bottom: calc(var(--spacing) * 1.5);
|
|
635
|
+
}
|
|
636
|
+
|
|
629
637
|
.mb-2 {
|
|
630
638
|
margin-bottom: calc(var(--spacing) * 2);
|
|
631
639
|
}
|
|
@@ -909,6 +917,10 @@
|
|
|
909
917
|
align-items: center;
|
|
910
918
|
}
|
|
911
919
|
|
|
920
|
+
.items-end {
|
|
921
|
+
align-items: flex-end;
|
|
922
|
+
}
|
|
923
|
+
|
|
912
924
|
.items-start {
|
|
913
925
|
align-items: flex-start;
|
|
914
926
|
}
|
|
@@ -1662,6 +1674,10 @@
|
|
|
1662
1674
|
padding-top: var(--spacing);
|
|
1663
1675
|
}
|
|
1664
1676
|
|
|
1677
|
+
.pt-4 {
|
|
1678
|
+
padding-top: calc(var(--spacing) * 4);
|
|
1679
|
+
}
|
|
1680
|
+
|
|
1665
1681
|
.pr-1 {
|
|
1666
1682
|
padding-right: var(--spacing);
|
|
1667
1683
|
}
|
|
@@ -31,6 +31,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
31
31
|
submit: () => any;
|
|
32
32
|
cancel: () => any;
|
|
33
33
|
runAction: (action: CollectionAction) => any;
|
|
34
|
+
itemChat: (message: string) => any;
|
|
34
35
|
"update:editing": (value: EditState | null) => any;
|
|
35
36
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
36
37
|
onEdit?: (() => any) | undefined;
|
|
@@ -39,6 +40,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
39
40
|
onSubmit?: (() => any) | undefined;
|
|
40
41
|
onCancel?: (() => any) | undefined;
|
|
41
42
|
onRunAction?: ((action: CollectionAction) => any) | undefined;
|
|
43
|
+
onItemChat?: ((message: string) => any) | undefined;
|
|
42
44
|
"onUpdate:editing"?: ((value: EditState | null) => any) | undefined;
|
|
43
45
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
44
46
|
declare const _default: typeof __VLS_export;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollectionRecordPanel.vue.d.ts","sourceRoot":"","sources":["../../../src/vue/components/CollectionRecordPanel.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CollectionRecordPanel.vue.d.ts","sourceRoot":"","sources":["../../../src/vue/components/CollectionRecordPanel.vue"],"names":[],"mappings":"AAsoBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAoC,MAAM,mBAAmB,CAAC;AAC9H,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,oBAAoB,CAAC;AAQnE,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,8CAA8C;IAC9C,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,gBAAgB,EAAE,CAAC;IACnC,qEAAqE;IACrE,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,gDAAgD;IAChD,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,8DAA8D;IAC9D,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAgIF,KAAK,gBAAgB,GAAG;IACxB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CAC3B,CAAC;AAKF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAy2CxD,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -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":"AAmsEA,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;AAmmHF,QAAA,MAAM,YAAY;;;cAxlHiB,eAAe;qBAAe,MAAM;oBAAc,MAAM;;;;;cAAxD,eAAe;qBAAe,MAAM;oBAAc,MAAM;;kFA2lHzF,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../../../src/vue/lang/de.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE/C,QAAA,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../../../src/vue/lang/de.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE/C,QAAA,MAAM,UAAU,EAAE,kBA2GjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
package/dist/vue/lang/en.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/vue/lang/en.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/vue/lang/en.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Gf,CAAC;AAEF,eAAe,UAAU,CAAC;AAE1B,MAAM,MAAM,kBAAkB,GAAG,OAAO,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../../src/vue/lang/es.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE/C,QAAA,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../../src/vue/lang/es.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE/C,QAAA,MAAM,UAAU,EAAE,kBA2GjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fr.d.ts","sourceRoot":"","sources":["../../../src/vue/lang/fr.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE/C,QAAA,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"fr.d.ts","sourceRoot":"","sources":["../../../src/vue/lang/fr.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE/C,QAAA,MAAM,UAAU,EAAE,kBA4GjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
package/dist/vue/lang/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vue/lang/index.ts"],"names":[],"mappings":"AAuBA,QAAA,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vue/lang/index.ts"],"names":[],"mappings":"AAuBA,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAcR,CAAC;AAsBH;;;gEAGgE;AAChE,wBAAgB,iBAAiB,IAAI;IAAE,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IAAC,MAAM,EAAE,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAA;CAAE,CAG5G"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ja.d.ts","sourceRoot":"","sources":["../../../src/vue/lang/ja.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE/C,QAAA,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"ja.d.ts","sourceRoot":"","sources":["../../../src/vue/lang/ja.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE/C,QAAA,MAAM,UAAU,EAAE,kBA2GjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ko.d.ts","sourceRoot":"","sources":["../../../src/vue/lang/ko.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE/C,QAAA,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"ko.d.ts","sourceRoot":"","sources":["../../../src/vue/lang/ko.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE/C,QAAA,MAAM,UAAU,EAAE,kBA2GjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ptBR.d.ts","sourceRoot":"","sources":["../../../src/vue/lang/ptBR.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE/C,QAAA,MAAM,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"ptBR.d.ts","sourceRoot":"","sources":["../../../src/vue/lang/ptBR.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE/C,QAAA,MAAM,YAAY,EAAE,kBA2GnB,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zh.d.ts","sourceRoot":"","sources":["../../../src/vue/lang/zh.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE/C,QAAA,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"zh.d.ts","sourceRoot":"","sources":["../../../src/vue/lang/zh.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE/C,QAAA,MAAM,UAAU,EAAE,kBA2GjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -22,9 +22,11 @@ export interface CollectionRendering {
|
|
|
22
22
|
hasTableRows: (value: unknown) => boolean;
|
|
23
23
|
formatSubCell: (subField: FieldSpec, value: unknown, record: CollectionItem | null) => string;
|
|
24
24
|
inputTypeFor: (type: FieldType) => string;
|
|
25
|
+
stepFor: (type: FieldType) => string | undefined;
|
|
25
26
|
deriveAll: (schema: CollectionSchema, base: CollectionItem, refRecords: RefRecordCache) => CollectionItem;
|
|
26
27
|
evaluateDerivedAgainstItem: (field: FieldSpec, fieldKey: string, item: CollectionItem) => number | null;
|
|
27
28
|
derivedDisplay: (field: FieldSpec, computedValue: unknown, record: CollectionItem | null) => string;
|
|
28
29
|
}
|
|
30
|
+
export declare function stepForFieldType(type: FieldType): string | undefined;
|
|
29
31
|
export declare function useCollectionRendering(collection: Ref<CollectionDetail | null>, locale: Ref<string>): CollectionRendering;
|
|
30
32
|
//# sourceMappingURL=useCollectionRendering.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCollectionRendering.d.ts","sourceRoot":"","sources":["../../src/vue/useCollectionRendering.ts"],"names":[],"mappings":"AASA,OAAO,EAAiB,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAGhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,IAAI,SAAS,EAAE,mBAAmB,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC7J,OAAO,KAAK,EAEV,UAAU,EAEV,SAAS,EACT,QAAQ,EAER,SAAS,EACT,cAAc,EAEf,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxB,cAAc,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACpC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,qBAAqB,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzF,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7D,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;IAChD,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IACnD,eAAe,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,KAAK,MAAM,GAAG,SAAS,CAAC;IACrG,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC;IACzD,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,aAAa,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7F,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,KAAK,MAAM,CAAC;IACxD,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACvC,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAC3C,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,CAAC;IAC/C,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,CAAC;IACjD,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACzD,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAC1C,aAAa,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,KAAK,MAAM,CAAC;IAC9F,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,MAAM,CAAC;IAC1C,SAAS,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,KAAK,cAAc,CAAC;IAC1G,0BAA0B,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,MAAM,GAAG,IAAI,CAAC;IACxG,cAAc,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,KAAK,MAAM,CAAC;CACrG;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,mBAAmB,
|
|
1
|
+
{"version":3,"file":"useCollectionRendering.d.ts","sourceRoot":"","sources":["../../src/vue/useCollectionRendering.ts"],"names":[],"mappings":"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"}
|
package/dist/vue.cjs
CHANGED
|
@@ -70,6 +70,8 @@ var i18n = (0, vue_i18n.createI18n)({
|
|
|
70
70
|
chatTitle: "Start a chat",
|
|
71
71
|
chatPlaceholder: "Describe what you want to do with this collection…",
|
|
72
72
|
chatStart: "Start chat",
|
|
73
|
+
itemChatLabel: "Chat about this record",
|
|
74
|
+
itemChatPlaceholder: "Ask or instruct about this record…",
|
|
73
75
|
viewToggle: "View",
|
|
74
76
|
viewTable: "Table",
|
|
75
77
|
viewCalendar: "Calendar",
|
|
@@ -171,6 +173,8 @@ var i18n = (0, vue_i18n.createI18n)({
|
|
|
171
173
|
chatTitle: "チャットを開始",
|
|
172
174
|
chatPlaceholder: "このコレクションで行いたいことを入力してください…",
|
|
173
175
|
chatStart: "チャットを開始",
|
|
176
|
+
itemChatLabel: "このレコードについてチャット",
|
|
177
|
+
itemChatPlaceholder: "このレコードについて質問・指示する…",
|
|
174
178
|
viewToggle: "表示",
|
|
175
179
|
viewTable: "テーブル",
|
|
176
180
|
viewCalendar: "カレンダー",
|
|
@@ -272,6 +276,8 @@ var i18n = (0, vue_i18n.createI18n)({
|
|
|
272
276
|
chatTitle: "开始对话",
|
|
273
277
|
chatPlaceholder: "描述你想对这个集合做什么…",
|
|
274
278
|
chatStart: "开始对话",
|
|
279
|
+
itemChatLabel: "就此记录对话",
|
|
280
|
+
itemChatPlaceholder: "询问或指示有关此记录的操作…",
|
|
275
281
|
viewToggle: "视图",
|
|
276
282
|
viewTable: "表格",
|
|
277
283
|
viewCalendar: "日历",
|
|
@@ -373,6 +379,8 @@ var i18n = (0, vue_i18n.createI18n)({
|
|
|
373
379
|
chatTitle: "채팅 시작",
|
|
374
380
|
chatPlaceholder: "이 컬렉션으로 하고 싶은 작업을 설명하세요…",
|
|
375
381
|
chatStart: "채팅 시작",
|
|
382
|
+
itemChatLabel: "이 레코드에 대해 채팅",
|
|
383
|
+
itemChatPlaceholder: "이 레코드에 대해 질문하거나 지시하세요…",
|
|
376
384
|
viewToggle: "보기",
|
|
377
385
|
viewTable: "표",
|
|
378
386
|
viewCalendar: "캘린더",
|
|
@@ -474,6 +482,8 @@ var i18n = (0, vue_i18n.createI18n)({
|
|
|
474
482
|
chatTitle: "Iniciar un chat",
|
|
475
483
|
chatPlaceholder: "Describe qué quieres hacer con esta colección…",
|
|
476
484
|
chatStart: "Iniciar chat",
|
|
485
|
+
itemChatLabel: "Chatear sobre este registro",
|
|
486
|
+
itemChatPlaceholder: "Pregunta o indica algo sobre este registro…",
|
|
477
487
|
viewToggle: "Vista",
|
|
478
488
|
viewTable: "Tabla",
|
|
479
489
|
viewCalendar: "Calendario",
|
|
@@ -575,6 +585,8 @@ var i18n = (0, vue_i18n.createI18n)({
|
|
|
575
585
|
chatTitle: "Iniciar um chat",
|
|
576
586
|
chatPlaceholder: "Descreva o que você quer fazer com esta coleção…",
|
|
577
587
|
chatStart: "Iniciar chat",
|
|
588
|
+
itemChatLabel: "Conversar sobre este registro",
|
|
589
|
+
itemChatPlaceholder: "Pergunte ou instrua sobre este registro…",
|
|
578
590
|
viewToggle: "Visualização",
|
|
579
591
|
viewTable: "Tabela",
|
|
580
592
|
viewCalendar: "Calendário",
|
|
@@ -676,6 +688,8 @@ var i18n = (0, vue_i18n.createI18n)({
|
|
|
676
688
|
chatTitle: "Démarrer une discussion",
|
|
677
689
|
chatPlaceholder: "Décrivez ce que vous voulez faire avec cette collection…",
|
|
678
690
|
chatStart: "Démarrer la discussion",
|
|
691
|
+
itemChatLabel: "Discuter de cet enregistrement",
|
|
692
|
+
itemChatPlaceholder: "Posez une question ou donnez une instruction sur cet enregistrement…",
|
|
679
693
|
viewToggle: "Affichage",
|
|
680
694
|
viewTable: "Tableau",
|
|
681
695
|
viewCalendar: "Calendrier",
|
|
@@ -777,6 +791,8 @@ var i18n = (0, vue_i18n.createI18n)({
|
|
|
777
791
|
chatTitle: "Chat starten",
|
|
778
792
|
chatPlaceholder: "Beschreibe, was du mit dieser Sammlung tun möchtest…",
|
|
779
793
|
chatStart: "Chat starten",
|
|
794
|
+
itemChatLabel: "Über diesen Eintrag chatten",
|
|
795
|
+
itemChatPlaceholder: "Stelle eine Frage oder gib eine Anweisung zu diesem Eintrag…",
|
|
780
796
|
viewToggle: "Ansicht",
|
|
781
797
|
viewTable: "Tabelle",
|
|
782
798
|
viewCalendar: "Kalender",
|
|
@@ -1758,6 +1774,7 @@ var _hoisted_36$1 = ["onUpdate:modelValue", "required"];
|
|
|
1758
1774
|
var _hoisted_37$1 = [
|
|
1759
1775
|
"onUpdate:modelValue",
|
|
1760
1776
|
"type",
|
|
1777
|
+
"step",
|
|
1761
1778
|
"required"
|
|
1762
1779
|
];
|
|
1763
1780
|
var _hoisted_38$1 = { class: "text-center px-1" };
|
|
@@ -1786,6 +1803,7 @@ var _hoisted_45$1 = [
|
|
|
1786
1803
|
"id",
|
|
1787
1804
|
"onUpdate:modelValue",
|
|
1788
1805
|
"type",
|
|
1806
|
+
"step",
|
|
1789
1807
|
"required",
|
|
1790
1808
|
"disabled",
|
|
1791
1809
|
"data-testid"
|
|
@@ -1876,6 +1894,18 @@ var _hoisted_69$1 = {
|
|
|
1876
1894
|
key: 0,
|
|
1877
1895
|
class: "col-span-full text-xs font-semibold text-red-600 bg-red-50 border border-red-100 p-2.5 rounded-xl"
|
|
1878
1896
|
};
|
|
1897
|
+
var _hoisted_70$1 = {
|
|
1898
|
+
key: 1,
|
|
1899
|
+
class: "mt-5 pt-4 border-t border-slate-200/60",
|
|
1900
|
+
"data-testid": "collections-detail-chat"
|
|
1901
|
+
};
|
|
1902
|
+
var _hoisted_71$1 = {
|
|
1903
|
+
class: "block text-[10px] font-bold text-slate-400 uppercase tracking-wider mb-1.5",
|
|
1904
|
+
for: "collections-detail-chat-input"
|
|
1905
|
+
};
|
|
1906
|
+
var _hoisted_72$1 = { class: "flex items-end gap-2" };
|
|
1907
|
+
var _hoisted_73$1 = ["placeholder", "onKeydown"];
|
|
1908
|
+
var _hoisted_74$1 = ["disabled"];
|
|
1879
1909
|
//#endregion
|
|
1880
1910
|
//#region src/vue/components/CollectionRecordPanel.vue
|
|
1881
1911
|
var CollectionRecordPanel_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
@@ -1904,7 +1934,8 @@ var CollectionRecordPanel_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
1904
1934
|
"edit",
|
|
1905
1935
|
"close",
|
|
1906
1936
|
"delete",
|
|
1907
|
-
"runAction"
|
|
1937
|
+
"runAction",
|
|
1938
|
+
"itemChat"
|
|
1908
1939
|
], ["update:editing"]),
|
|
1909
1940
|
setup(__props, { emit: __emit }) {
|
|
1910
1941
|
const cui = collectionUi();
|
|
@@ -1913,6 +1944,16 @@ var CollectionRecordPanel_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
1913
1944
|
const editing = (0, vue.useModel)(__props, "editing");
|
|
1914
1945
|
const emit = __emit;
|
|
1915
1946
|
const { t } = useCollectionI18n();
|
|
1947
|
+
const chatMessage = (0, vue.ref)("");
|
|
1948
|
+
(0, vue.watch)(() => props.viewing, () => {
|
|
1949
|
+
chatMessage.value = "";
|
|
1950
|
+
});
|
|
1951
|
+
function submitItemChat() {
|
|
1952
|
+
const message = chatMessage.value.trim();
|
|
1953
|
+
if (!message) return;
|
|
1954
|
+
emit("itemChat", message);
|
|
1955
|
+
chatMessage.value = "";
|
|
1956
|
+
}
|
|
1916
1957
|
const embedViews = (0, vue.computed)(() => props.render.embedViews.value);
|
|
1917
1958
|
/** The record the read-only displays render from: the live draft while
|
|
1918
1959
|
* editing (so non-editable cells like derived/embed preview the in-flight
|
|
@@ -1991,7 +2032,7 @@ var CollectionRecordPanel_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
1991
2032
|
return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(editing.value ? "form" : "div"), {
|
|
1992
2033
|
class: "px-6 py-5 max-h-[60vh] overflow-y-auto",
|
|
1993
2034
|
"data-testid": rootTestid.value,
|
|
1994
|
-
onSubmit: _cache[
|
|
2035
|
+
onSubmit: _cache[5] || (_cache[5] = (0, vue.withModifiers)(($event) => emit("submit"), ["prevent"]))
|
|
1995
2036
|
}, {
|
|
1996
2037
|
default: (0, vue.withCtx)(() => [
|
|
1997
2038
|
(0, vue.createElementVNode)("div", _hoisted_1$7, [(0, vue.createElementVNode)("div", _hoisted_2$6, [(0, vue.createElementVNode)("span", _hoisted_3$6, (0, vue.toDisplayString)(__props.collection.title), 1), (0, vue.createElementVNode)("h2", {
|
|
@@ -2023,20 +2064,20 @@ var CollectionRecordPanel_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
2023
2064
|
class: "h-8 px-2.5 rounded border border-slate-200 bg-white text-slate-700 hover:bg-slate-50 font-bold text-xs transition-all flex items-center gap-1",
|
|
2024
2065
|
"data-testid": "collections-detail-edit",
|
|
2025
2066
|
onClick: _cache[1] || (_cache[1] = ($event) => emit("edit"))
|
|
2026
|
-
}, [_cache[
|
|
2067
|
+
}, [_cache[6] || (_cache[6] = (0, vue.createElementVNode)("span", { class: "material-icons text-sm" }, "edit", -1)), (0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)((0, vue.unref)(t)("collectionsView.editItem")), 1)]),
|
|
2027
2068
|
(0, vue.createElementVNode)("button", {
|
|
2028
2069
|
type: "button",
|
|
2029
2070
|
class: "h-8 px-2.5 rounded border border-rose-200 bg-white text-rose-600 hover:bg-rose-50 font-bold text-xs transition-all flex items-center gap-1",
|
|
2030
2071
|
"data-testid": "collections-detail-remove",
|
|
2031
2072
|
onClick: _cache[2] || (_cache[2] = ($event) => emit("delete"))
|
|
2032
|
-
}, [_cache[
|
|
2073
|
+
}, [_cache[7] || (_cache[7] = (0, vue.createElementVNode)("span", { class: "material-icons text-sm" }, "delete", -1)), (0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)((0, vue.unref)(t)("common.remove")), 1)]),
|
|
2033
2074
|
(0, vue.createElementVNode)("button", {
|
|
2034
2075
|
type: "button",
|
|
2035
2076
|
class: "h-8 w-8 flex items-center justify-center rounded text-slate-400 hover:bg-slate-100 hover:text-slate-600 transition-colors",
|
|
2036
2077
|
"aria-label": (0, vue.unref)(t)("common.close"),
|
|
2037
2078
|
"data-testid": "collections-detail-close",
|
|
2038
2079
|
onClick: _cache[3] || (_cache[3] = ($event) => emit("close"))
|
|
2039
|
-
}, [..._cache[
|
|
2080
|
+
}, [..._cache[8] || (_cache[8] = [(0, vue.createElementVNode)("span", { class: "material-icons text-lg" }, "close", -1)])], 8, _hoisted_9$4)
|
|
2040
2081
|
]))]),
|
|
2041
2082
|
!editing.value && __props.actionError ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("p", _hoisted_10$4, (0, vue.toDisplayString)(__props.actionError), 1)) : (0, vue.createCommentVNode)("", true),
|
|
2042
2083
|
(0, vue.createElementVNode)("div", _hoisted_11$4, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.collection.schema.fields, (field, key) => {
|
|
@@ -2086,7 +2127,7 @@ var CollectionRecordPanel_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
2086
2127
|
key: subKey,
|
|
2087
2128
|
class: "text-left px-3 py-2 font-bold"
|
|
2088
2129
|
}, (0, vue.toDisplayString)(subField.label), 1);
|
|
2089
|
-
}), 128)), _cache[
|
|
2130
|
+
}), 128)), _cache[9] || (_cache[9] = (0, vue.createElementVNode)("th", { class: "w-9" }, null, -1))])]), (0, vue.createElementVNode)("tbody", _hoisted_26$1, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(editing.value.table[key], (row, rowIdx) => {
|
|
2090
2131
|
return (0, vue.openBlock)(), (0, vue.createElementBlock)("tr", {
|
|
2091
2132
|
key: rowIdx,
|
|
2092
2133
|
class: "hover:bg-slate-50/50"
|
|
@@ -2130,6 +2171,7 @@ var CollectionRecordPanel_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
2130
2171
|
key: 4,
|
|
2131
2172
|
"onUpdate:modelValue": ($event) => row.text[subKey] = $event,
|
|
2132
2173
|
type: __props.render.inputTypeFor(subField.type),
|
|
2174
|
+
step: __props.render.stepFor(subField.type),
|
|
2133
2175
|
required: subField.required,
|
|
2134
2176
|
class: "w-full rounded-lg border border-slate-200 px-2 py-1 text-xs focus:border-indigo-500 focus:outline-none font-medium text-slate-700"
|
|
2135
2177
|
}, null, 8, _hoisted_37$1)), [[vue.vModelDynamic, row.text[subKey]]])]);
|
|
@@ -2139,13 +2181,13 @@ var CollectionRecordPanel_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
2139
2181
|
"aria-label": (0, vue.unref)(t)("collectionsView.removeRow"),
|
|
2140
2182
|
"data-testid": `collections-table-${key}-remove-${rowIdx}`,
|
|
2141
2183
|
onClick: ($event) => removeTableRow(String(key), rowIdx)
|
|
2142
|
-
}, [..._cache[
|
|
2184
|
+
}, [..._cache[10] || (_cache[10] = [(0, vue.createElementVNode)("span", { class: "material-icons text-base" }, "close", -1)])], 8, _hoisted_39$1)])]);
|
|
2143
2185
|
}), 128))])])])) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("p", _hoisted_40$1, (0, vue.toDisplayString)((0, vue.unref)(t)("collectionsView.noRows")), 1)), (0, vue.createElementVNode)("button", {
|
|
2144
2186
|
type: "button",
|
|
2145
2187
|
class: "inline-flex items-center gap-1 text-xs text-indigo-600 hover:text-indigo-800 font-bold hover:underline",
|
|
2146
2188
|
"data-testid": `collections-table-${key}-add`,
|
|
2147
2189
|
onClick: ($event) => addTableRow(String(key), field.of)
|
|
2148
|
-
}, [_cache[
|
|
2190
|
+
}, [_cache[11] || (_cache[11] = (0, vue.createElementVNode)("span", { class: "material-icons text-xs" }, "add", -1)), (0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)((0, vue.unref)(t)("collectionsView.addRow")), 1)], 8, _hoisted_41$1)], 8, _hoisted_22$2)) : field.type === "money" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_42$1, [(0, vue.createElementVNode)("div", _hoisted_43$1, (0, vue.toDisplayString)(__props.render.currencySymbol(__props.render.resolveCurrency(field, __props.liveRecord))), 1), (0, vue.withDirectives)((0, vue.createElementVNode)("input", {
|
|
2149
2191
|
id: `collections-field-${key}`,
|
|
2150
2192
|
"onUpdate:modelValue": ($event) => editing.value.text[key] = $event,
|
|
2151
2193
|
type: "number",
|
|
@@ -2167,6 +2209,7 @@ var CollectionRecordPanel_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
2167
2209
|
id: `collections-field-${key}`,
|
|
2168
2210
|
"onUpdate:modelValue": ($event) => editing.value.text[key] = $event,
|
|
2169
2211
|
type: __props.render.inputTypeFor(field.type),
|
|
2212
|
+
step: __props.render.stepFor(field.type),
|
|
2170
2213
|
required: isFieldRequiredInUi(field),
|
|
2171
2214
|
disabled: field.primary === true && (editing.value.mode === "edit" || __props.isSingleton),
|
|
2172
2215
|
class: "w-full rounded-xl border border-slate-200 px-3 py-2 text-xs focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500/20 focus:outline-none disabled:bg-slate-100 disabled:text-slate-400 font-medium text-slate-700 transition-all",
|
|
@@ -2183,7 +2226,7 @@ var CollectionRecordPanel_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
2183
2226
|
key: 1,
|
|
2184
2227
|
class: "text-xs font-medium text-slate-700 break-words",
|
|
2185
2228
|
"data-testid": `collections-detail-value-${key}`
|
|
2186
|
-
}, [field.type === "toggle" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [field.field !== void 0 && String(detailRecord.value[field.field] ?? "") === field.onValue ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_48$1, [_cache[
|
|
2229
|
+
}, [field.type === "toggle" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [field.field !== void 0 && String(detailRecord.value[field.field] ?? "") === field.onValue ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_48$1, [_cache[12] || (_cache[12] = (0, vue.createElementVNode)("span", { class: "h-1.5 w-1.5 rounded-full bg-emerald-500" }, null, -1)), (0, vue.createTextVNode)(" " + (0, vue.toDisplayString)((0, vue.unref)(t)("common.yes")), 1)])) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_49$1, (0, vue.toDisplayString)((0, vue.unref)(t)("common.no")), 1))], 64)) : field.type === "boolean" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [detailRecord.value[key] === true ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_50$1, [_cache[13] || (_cache[13] = (0, vue.createElementVNode)("span", { class: "h-1.5 w-1.5 rounded-full bg-emerald-500" }, null, -1)), (0, vue.createTextVNode)(" " + (0, vue.toDisplayString)((0, vue.unref)(t)("common.yes")), 1)])) : detailRecord.value[key] === false ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_51$1, (0, vue.toDisplayString)((0, vue.unref)(t)("common.no")), 1)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_52$1, "—"))], 64)) : field.type === "ref" && field.to && typeof detailRecord.value[key] === "string" && detailRecord.value[key] ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("a", {
|
|
2187
2230
|
key: 2,
|
|
2188
2231
|
href: (0, vue.unref)(cui).recordHref?.(field.to, String(detailRecord.value[key])),
|
|
2189
2232
|
tabindex: (0, vue.unref)(cui).recordHref?.(field.to, String(detailRecord.value[key])) ? void 0 : 0,
|
|
@@ -2241,7 +2284,22 @@ var CollectionRecordPanel_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
2241
2284
|
"data-testid": `collections-detail-file-${key}`,
|
|
2242
2285
|
onClick: ($event) => (0, vue.unref)(activatePathLink)($event, __props.render.fileRoutePath(detailRecord.value[key]) ?? "")
|
|
2243
2286
|
}, (0, vue.toDisplayString)(String(detailRecord.value[key])), 9, _hoisted_67$1)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_68$1, (0, vue.toDisplayString)(__props.render.formatCell(detailRecord.value[key], field.type)), 1))], 8, _hoisted_47$1))], 2)) : (0, vue.createCommentVNode)("", true)], 64);
|
|
2244
|
-
}), 128)), editing.value && __props.saveError ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("p", _hoisted_69$1, (0, vue.toDisplayString)(__props.saveError), 1)) : (0, vue.createCommentVNode)("", true)])
|
|
2287
|
+
}), 128)), editing.value && __props.saveError ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("p", _hoisted_69$1, (0, vue.toDisplayString)(__props.saveError), 1)) : (0, vue.createCommentVNode)("", true)]),
|
|
2288
|
+
!editing.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_70$1, [(0, vue.createElementVNode)("label", _hoisted_71$1, (0, vue.toDisplayString)((0, vue.unref)(t)("collectionsView.itemChatLabel")), 1), (0, vue.createElementVNode)("div", _hoisted_72$1, [(0, vue.withDirectives)((0, vue.createElementVNode)("textarea", {
|
|
2289
|
+
id: "collections-detail-chat-input",
|
|
2290
|
+
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => chatMessage.value = $event),
|
|
2291
|
+
rows: "2",
|
|
2292
|
+
placeholder: (0, vue.unref)(t)("collectionsView.itemChatPlaceholder"),
|
|
2293
|
+
class: "flex-1 bg-slate-50 border border-slate-200/80 rounded-xl px-3 py-2 text-xs placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 focus:bg-white transition-all resize-none",
|
|
2294
|
+
"data-testid": "collections-detail-chat-input",
|
|
2295
|
+
onKeydown: [(0, vue.withKeys)((0, vue.withModifiers)(submitItemChat, ["meta"]), ["enter"]), (0, vue.withKeys)((0, vue.withModifiers)(submitItemChat, ["ctrl"]), ["enter"])]
|
|
2296
|
+
}, null, 40, _hoisted_73$1), [[vue.vModelText, chatMessage.value]]), (0, vue.createElementVNode)("button", {
|
|
2297
|
+
type: "button",
|
|
2298
|
+
class: "h-8 px-2.5 rounded bg-indigo-600 text-white font-bold text-xs hover:bg-indigo-700 disabled:opacity-50 transition-all shadow-sm shadow-indigo-600/10 flex items-center gap-1 shrink-0",
|
|
2299
|
+
disabled: !chatMessage.value.trim(),
|
|
2300
|
+
"data-testid": "collections-detail-chat-send",
|
|
2301
|
+
onClick: submitItemChat
|
|
2302
|
+
}, [_cache[14] || (_cache[14] = (0, vue.createElementVNode)("span", { class: "material-icons text-sm" }, "forum", -1)), (0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)((0, vue.unref)(t)("collectionsView.chat")), 1)], 8, _hoisted_74$1)])])) : (0, vue.createCommentVNode)("", true)
|
|
2245
2303
|
]),
|
|
2246
2304
|
_: 1
|
|
2247
2305
|
}, 40, ["data-testid"]);
|
|
@@ -2505,6 +2563,10 @@ var _plugin_vue_export_helper_default = (sfc, props) => {
|
|
|
2505
2563
|
var CollectionCustomView_default = /* @__PURE__ */ _plugin_vue_export_helper_default(CollectionCustomView_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-d5fb7ca6"]]);
|
|
2506
2564
|
//#endregion
|
|
2507
2565
|
//#region src/vue/useCollectionRendering.ts
|
|
2566
|
+
function stepForFieldType(type) {
|
|
2567
|
+
if (type === "money") return "0.01";
|
|
2568
|
+
if (type === "number") return "any";
|
|
2569
|
+
}
|
|
2508
2570
|
function useCollectionRendering(collection, locale) {
|
|
2509
2571
|
const refCache = (0, vue.ref)({});
|
|
2510
2572
|
const refRecordCache = (0, vue.ref)({});
|
|
@@ -2719,6 +2781,7 @@ function useCollectionRendering(collection, locale) {
|
|
|
2719
2781
|
if (type === "datetime") return "datetime-local";
|
|
2720
2782
|
return "text";
|
|
2721
2783
|
}
|
|
2784
|
+
const stepFor = stepForFieldType;
|
|
2722
2785
|
function evaluateDerivedAgainstItem(field, fieldKey, item) {
|
|
2723
2786
|
if (!field.formula || !collection.value) return null;
|
|
2724
2787
|
const result = require_deriveAll.deriveAll(collection.value.schema, item, refRecordCache.value)[fieldKey];
|
|
@@ -2750,6 +2813,7 @@ function useCollectionRendering(collection, locale) {
|
|
|
2750
2813
|
hasTableRows,
|
|
2751
2814
|
formatSubCell,
|
|
2752
2815
|
inputTypeFor,
|
|
2816
|
+
stepFor,
|
|
2753
2817
|
deriveAll: require_deriveAll.deriveAll,
|
|
2754
2818
|
evaluateDerivedAgainstItem,
|
|
2755
2819
|
derivedDisplay
|
|
@@ -3365,13 +3429,13 @@ var CollectionView_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
3365
3429
|
* nothing. Instead, point the agent at the feed's schema + records
|
|
3366
3430
|
* (`feeds/<slug>/schema.json` and `<dataPath>/`) and let it act on the
|
|
3367
3431
|
* request directly. */
|
|
3368
|
-
function buildChatSeed(slug, message) {
|
|
3432
|
+
function buildChatSeed(slug, message, itemId) {
|
|
3369
3433
|
const schema = collection.value?.schema;
|
|
3370
|
-
if (!schema?.ingest) return `/${slug} ${message}`;
|
|
3434
|
+
if (!schema?.ingest) return itemId ? `/${slug} id=${itemId} ${message}` : `/${slug} ${message}`;
|
|
3371
3435
|
return t("collectionsView.feedChatSeed", {
|
|
3372
3436
|
slug,
|
|
3373
3437
|
dataPath: schema.dataPath ?? `data/feeds/${slug}`,
|
|
3374
|
-
message
|
|
3438
|
+
message: itemId ? `(for record \`${itemId}\`) ${message}` : message
|
|
3375
3439
|
});
|
|
3376
3440
|
}
|
|
3377
3441
|
/** Start a new general-role chat seeded from the current view. */
|
|
@@ -3387,6 +3451,21 @@ var CollectionView_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
3387
3451
|
}
|
|
3388
3452
|
appApi.startNewChat(text, cui.generalRoleId);
|
|
3389
3453
|
}
|
|
3454
|
+
/** The open record's chat box: start a chat scoped to that one record. Seeds
|
|
3455
|
+
* the collection's skill command with an `id=<itemId>` selector
|
|
3456
|
+
* (`/<slug> id=<itemId> <message>`) so the agent acts on this record. */
|
|
3457
|
+
function onItemChat(message) {
|
|
3458
|
+
if (!collection.value || !viewing.value) return;
|
|
3459
|
+
const text = message.trim();
|
|
3460
|
+
if (!text) return;
|
|
3461
|
+
const itemId = String(viewing.value[collection.value.schema.primaryKey] ?? "");
|
|
3462
|
+
const seed = buildChatSeed(collection.value.slug, text, itemId || void 0);
|
|
3463
|
+
if (props.sendTextMessage) {
|
|
3464
|
+
props.sendTextMessage(seed);
|
|
3465
|
+
return;
|
|
3466
|
+
}
|
|
3467
|
+
appApi.startNewChat(seed, cui.generalRoleId);
|
|
3468
|
+
}
|
|
3390
3469
|
async function loadCollection(slug) {
|
|
3391
3470
|
const requestedKind = !embedded.value && cui.isFeedRoute() ? "feed" : "collection";
|
|
3392
3471
|
loading.value = true;
|
|
@@ -4336,7 +4415,8 @@ var CollectionView_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
4336
4415
|
onEdit: editFromView,
|
|
4337
4416
|
onClose: onDayClose,
|
|
4338
4417
|
onDelete: _cache[9] || (_cache[9] = ($event) => viewing.value && confirmDelete(viewing.value)),
|
|
4339
|
-
onRunAction: runAction
|
|
4418
|
+
onRunAction: runAction,
|
|
4419
|
+
onItemChat
|
|
4340
4420
|
}, null, 8, [
|
|
4341
4421
|
"editing",
|
|
4342
4422
|
"collection",
|
|
@@ -4534,7 +4614,8 @@ var CollectionView_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
4534
4614
|
onEdit: editFromView,
|
|
4535
4615
|
onClose: closeView,
|
|
4536
4616
|
onDelete: _cache[20] || (_cache[20] = ($event) => viewing.value && confirmDelete(viewing.value)),
|
|
4537
|
-
onRunAction: runAction
|
|
4617
|
+
onRunAction: runAction,
|
|
4618
|
+
onItemChat
|
|
4538
4619
|
}, null, 8, [
|
|
4539
4620
|
"editing",
|
|
4540
4621
|
"collection",
|