@feathery/react 2.43.0 → 2.44.0
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/cjs/Form/grid/Element/index.d.ts.map +1 -1
- package/cjs/Form/index.d.ts.map +1 -1
- package/cjs/assistant/AssistantChat.d.ts.map +1 -1
- package/cjs/assistant/AssistantClient.d.ts +30 -6
- package/cjs/assistant/AssistantClient.d.ts.map +1 -1
- package/cjs/assistant/ToolStatus.d.ts.map +1 -1
- package/cjs/assistant/tools/clickElement.d.ts +4 -3
- package/cjs/assistant/tools/clickElement.d.ts.map +1 -1
- package/cjs/assistant/tools/panelRuntime.d.ts +18 -1
- package/cjs/assistant/tools/panelRuntime.d.ts.map +1 -1
- package/cjs/assistant/tools/setFieldValue.d.ts +15 -23
- package/cjs/assistant/tools/setFieldValue.d.ts.map +1 -1
- package/cjs/assistant/tools/tableMutations.d.ts +36 -0
- package/cjs/assistant/tools/tableMutations.d.ts.map +1 -0
- package/cjs/assistant/tools/triggerTableAction.d.ts +17 -0
- package/cjs/assistant/tools/triggerTableAction.d.ts.map +1 -0
- package/cjs/assistant/tools/utils.d.ts +33 -0
- package/cjs/assistant/tools/utils.d.ts.map +1 -0
- package/cjs/assistant/utils.d.ts +0 -1
- package/cjs/assistant/utils.d.ts.map +1 -1
- package/cjs/elements/basic/TableElement/index.d.ts +1 -1
- package/cjs/elements/basic/TableElement/index.d.ts.map +1 -1
- package/cjs/{fthry_AssistantChat.Dc6irzAk.js → fthry_AssistantChat.CTrXRHYC.js} +951 -327
- package/cjs/{fthry_FormControl.D_eydQlT.js → fthry_FormControl.BoilLJu3.js} +1 -1
- package/cjs/{fthry_InlineTooltip.Km0nxBV3.js → fthry_InlineTooltip.C3LL7yhx.js} +2 -2
- package/cjs/{fthry_Overlay.ChABiy0m.js → fthry_Overlay.C_kMTQo_.js} +1 -1
- package/cjs/{fthry_PaymentMethodField.BMABompY.js → fthry_PaymentMethodField.B7Y0YcQQ.js} +4 -4
- package/cjs/{fthry_Placeholder.CnNGDD_K.js → fthry_Placeholder.Ckf5rx3l.js} +1 -1
- package/cjs/{fthry_ShowEyeIcon.Cozhh36m.js → fthry_ShowEyeIcon.Dw983jmd.js} +1 -1
- package/cjs/{fthry_auto-track.CzyR3umO.js → fthry_auto-track.DdU0wd90.js} +2 -2
- package/cjs/{fthry_highlighted-body-TPN3WLV5.D8LjPUtI.js → fthry_highlighted-body-TPN3WLV5.Dgq3ZfLo.js} +3 -3
- package/cjs/{fthry_index.B5TkPpn3.js → fthry_index.29ly7g2Z.js} +2 -2
- package/cjs/{fthry_index.B7Slrn_2.js → fthry_index.37lEi-Hp.js} +1 -1
- package/cjs/{fthry_index.Dn7k0XbZ.js → fthry_index.3RtrK8MX.js} +220 -157
- package/cjs/{fthry_index._pqB5lCu.js → fthry_index.5r0bFZtm.js} +8 -8
- package/cjs/{fthry_index.H4GgWRQ-.js → fthry_index.B4peckbq.js} +1 -1
- package/cjs/{fthry_index.wTd_xpVX.js → fthry_index.BGz622Tq.js} +4 -4
- package/cjs/{fthry_index.BPu5GDF3.js → fthry_index.BHqkdfIz.js} +5 -5
- package/cjs/{fthry_index.8ZkixEuX.js → fthry_index.BI8F8bA_.js} +2 -2
- package/cjs/{fthry_index.KMyCBmte.js → fthry_index.BfbtecrW.js} +1 -1
- package/cjs/{fthry_index.D6PlFvY8.js → fthry_index.Buv2Sg-R.js} +5 -5
- package/cjs/{fthry_index.DMmTH04s.js → fthry_index.Bv2eS3Vo.js} +2 -2
- package/cjs/{fthry_index.CsV6zv_0.js → fthry_index.BvbHMtIp.js} +5 -5
- package/cjs/{fthry_index.B76xVeoK.js → fthry_index.C3PGeG-p.js} +10 -10
- package/cjs/{fthry_index.DoliEMOD.js → fthry_index.C8F7fXYY.js} +3 -3
- package/cjs/{fthry_index.CMRH7foG.js → fthry_index.CKVVzHIN.js} +6 -6
- package/cjs/{fthry_index.BYJ0Cjz1.js → fthry_index.CVnv_Jad.js} +1 -1
- package/cjs/{fthry_index.B79ksg_6.js → fthry_index.CZEWDsUp.js} +2 -2
- package/cjs/{fthry_index.B4qsX_2B.js → fthry_index.CelZlNgP.js} +4 -4
- package/cjs/{fthry_index.Cj3i1JIs.js → fthry_index.D3dqn02k.js} +1 -1
- package/cjs/{fthry_index.BVLMhJHP.js → fthry_index.D8Red3Ny.js} +37 -20
- package/cjs/{fthry_index.DfOk3_Vc.js → fthry_index.DDPSNVyH.js} +1 -1
- package/cjs/{fthry_index.5oiWIOUK.js → fthry_index.DicGhamJ.js} +1 -1
- package/cjs/{fthry_index.WbKUUcdS.js → fthry_index.Dod7JSDp.js} +1 -1
- package/cjs/{fthry_index.D7jBFEkz.js → fthry_index.Dom24Lwj.js} +1 -1
- package/cjs/{fthry_index.B-QAg85r.js → fthry_index.DzFvroe5.js} +6 -6
- package/cjs/{fthry_index.DcnmaMvN.js → fthry_index.GMymJjG7.js} +2 -2
- package/cjs/{fthry_index.Crv5Oqdb.js → fthry_index.LV1j0g0M.js} +6 -6
- package/cjs/{fthry_index.Cj8NIIWS.js → fthry_index.LvXa1Omo.js} +6 -6
- package/cjs/{fthry_index.BNFRKqrl.js → fthry_index.hlvuql4I.js} +5 -5
- package/cjs/{fthry_index.x_Q9efXs.js → fthry_index.jKKDa77s.js} +2 -2
- package/cjs/{fthry_index.ecHJPvgK.js → fthry_index.kb1SveDj.js} +3 -3
- package/cjs/{fthry_index.umd.lxnwBuEl.js → fthry_index.umd.IVs8gbvz.js} +1 -1
- package/cjs/{fthry_input.DJaKnXqS.js → fthry_input.CtQ9PDhT.js} +1 -1
- package/cjs/{fthry_mermaid-O7DHMXV3.CyaPsnki.js → fthry_mermaid-O7DHMXV3.OED8wUgR.js} +3 -3
- package/cjs/{fthry_script.DrFnB8ud.js → fthry_script.BVZmLSex.js} +1 -1
- package/cjs/{fthry_styles.qeOM9hPF.js → fthry_styles.D-_UUb_M.js} +1 -1
- package/cjs/{fthry_useElementSize.K1QGuhUj.js → fthry_useElementSize.CDRo_Jkc.js} +1 -1
- package/cjs/{fthry_useSalesforceSync.DQd2UZn6.js → fthry_useSalesforceSync.Bx08h06s.js} +1 -1
- package/cjs/{fthry_webfontloader.D6aR0hiT.js → fthry_webfontloader.BH2uCTmw.js} +1 -1
- package/cjs/index.js +1 -1
- package/cjs/utils/button.d.ts +2 -0
- package/cjs/utils/button.d.ts.map +1 -0
- package/cjs/utils/hideAndRepeats.d.ts.map +1 -1
- package/cjs/utils/repeat.d.ts +5 -0
- package/cjs/utils/repeat.d.ts.map +1 -1
- package/dist/Form/grid/Element/index.d.ts.map +1 -1
- package/dist/Form/index.d.ts.map +1 -1
- package/dist/assistant/AssistantChat.d.ts.map +1 -1
- package/dist/assistant/AssistantClient.d.ts +30 -6
- package/dist/assistant/AssistantClient.d.ts.map +1 -1
- package/dist/assistant/ToolStatus.d.ts.map +1 -1
- package/dist/assistant/tools/clickElement.d.ts +4 -3
- package/dist/assistant/tools/clickElement.d.ts.map +1 -1
- package/dist/assistant/tools/panelRuntime.d.ts +18 -1
- package/dist/assistant/tools/panelRuntime.d.ts.map +1 -1
- package/dist/assistant/tools/setFieldValue.d.ts +15 -23
- package/dist/assistant/tools/setFieldValue.d.ts.map +1 -1
- package/dist/assistant/tools/tableMutations.d.ts +36 -0
- package/dist/assistant/tools/tableMutations.d.ts.map +1 -0
- package/dist/assistant/tools/triggerTableAction.d.ts +17 -0
- package/dist/assistant/tools/triggerTableAction.d.ts.map +1 -0
- package/dist/assistant/tools/utils.d.ts +33 -0
- package/dist/assistant/tools/utils.d.ts.map +1 -0
- package/dist/assistant/utils.d.ts +0 -1
- package/dist/assistant/utils.d.ts.map +1 -1
- package/dist/elements/basic/TableElement/index.d.ts +1 -1
- package/dist/elements/basic/TableElement/index.d.ts.map +1 -1
- package/dist/{fthry_AssistantChat.D2SjzX88.js → fthry_AssistantChat.D97z2Fjs.js} +951 -327
- package/dist/{fthry_FormControl.AWZ2hRhb.js → fthry_FormControl.DJieQaw-.js} +1 -1
- package/dist/{fthry_InlineTooltip.DAaWNMEQ.js → fthry_InlineTooltip.Chat1FIN.js} +2 -2
- package/dist/{fthry_Overlay.C500WG6U.js → fthry_Overlay.pCv-XBOA.js} +1 -1
- package/dist/{fthry_PaymentMethodField.Bl2Ce36L.js → fthry_PaymentMethodField._G2uJ6Ks.js} +4 -4
- package/dist/{fthry_Placeholder.DXrZi2ze.js → fthry_Placeholder.C7B4adz4.js} +1 -1
- package/dist/{fthry_ShowEyeIcon.D3iEMZA7.js → fthry_ShowEyeIcon.DrP5GypN.js} +1 -1
- package/dist/{fthry_auto-track.C9HCW4qJ.js → fthry_auto-track.Bb7a2GMR.js} +2 -2
- package/dist/{fthry_highlighted-body-TPN3WLV5.j0rrY2PD.js → fthry_highlighted-body-TPN3WLV5.QeEpdZbH.js} +3 -3
- package/dist/{fthry_index.IaraEDTR.js → fthry_index.0o3T2ouc.js} +1 -1
- package/dist/{fthry_index.Cn4kA2tn.js → fthry_index.1SZZv9d2.js} +10 -10
- package/dist/{fthry_index.C-Af9t8c.js → fthry_index.B6pEx1zI.js} +5 -5
- package/dist/{fthry_index.BALrl_Ek.js → fthry_index.BJKDlrlW.js} +4 -4
- package/dist/{fthry_index.DFZRIGNF.js → fthry_index.BMzPHmtX.js} +2 -2
- package/dist/{fthry_index.DZviU_0h.js → fthry_index.BWH9S7pc.js} +37 -20
- package/dist/{fthry_index.BHbPxMcy.js → fthry_index.BZvFWQLR.js} +2 -2
- package/dist/{fthry_index.D8_hWgYx.js → fthry_index.BpKf-eNy.js} +1 -1
- package/dist/{fthry_index.DzDuGB1B.js → fthry_index.C5BLw18G.js} +6 -6
- package/dist/{fthry_index.4rXsgo8n.js → fthry_index.C8LO6uJL.js} +6 -6
- package/dist/{fthry_index.BoXwpo3p.js → fthry_index.CDuqBBJn.js} +216 -158
- package/dist/{fthry_index.CB6eTYmX.js → fthry_index.CIlxRQ4S.js} +5 -5
- package/dist/{fthry_index.BDtWG5y-.js → fthry_index.CUY_p8do.js} +5 -5
- package/dist/{fthry_index.C8xVXq31.js → fthry_index.CXn-UnK8.js} +3 -3
- package/dist/{fthry_index.BlrVY1vE.js → fthry_index.ChUSP_4k.js} +6 -6
- package/dist/{fthry_index.0DlQOa4l.js → fthry_index.ClZUnlbG.js} +1 -1
- package/dist/{fthry_index.DtHlcCDX.js → fthry_index.Cqhg3Wmg.js} +1 -1
- package/dist/{fthry_index.DOGU2-kQ.js → fthry_index.Csz_U1Oc.js} +5 -5
- package/dist/{fthry_index.D3O1Qvm3.js → fthry_index.CubzFuFl.js} +3 -3
- package/dist/{fthry_index.C9P7Vo6r.js → fthry_index.D1iW0N2t.js} +1 -1
- package/dist/{fthry_index.Cd0JKkOc.js → fthry_index.D4pTk5dr.js} +8 -8
- package/dist/{fthry_index.DA5HHbVe.js → fthry_index.DA_5F_7_.js} +1 -1
- package/dist/{fthry_index.-lEiRiJ3.js → fthry_index.DG6NlwpO.js} +2 -2
- package/dist/{fthry_index.Co2zkJCZ.js → fthry_index.DJ7vQ3zt.js} +1 -1
- package/dist/{fthry_index.OgRdIE07.js → fthry_index.DJRjeQWm.js} +5 -5
- package/dist/{fthry_index.D2-zTdBQ.js → fthry_index.DdgFKsos.js} +1 -1
- package/dist/{fthry_index.CS604ePK.js → fthry_index.DuRVVFRL.js} +2 -2
- package/dist/{fthry_index.D5dmTp6g.js → fthry_index.QPKqFn46.js} +1 -1
- package/dist/{fthry_index.BjZmdaIR.js → fthry_index.UTYK1bhI.js} +2 -2
- package/dist/{fthry_index.x_DcI6GR.js → fthry_index.XG1xyplD.js} +4 -4
- package/dist/{fthry_index.umd.BhHG1ThX.js → fthry_index.umd.DLnl0brp.js} +1 -1
- package/dist/{fthry_index.DAdR6bYe.js → fthry_index.x66JmbiK.js} +2 -2
- package/dist/{fthry_input.Y2HVhQeo.js → fthry_input.BgzKGmQG.js} +1 -1
- package/dist/{fthry_mermaid-O7DHMXV3._Ng2DeVi.js → fthry_mermaid-O7DHMXV3.DehdVKQ3.js} +3 -3
- package/dist/{fthry_script.4cQVioC4.js → fthry_script.BcdCwqG3.js} +1 -1
- package/dist/{fthry_styles.DX0NUnVP.js → fthry_styles.DNxDElEh.js} +1 -1
- package/dist/{fthry_useElementSize.BCbe9jZd.js → fthry_useElementSize.DvHJBcIE.js} +1 -1
- package/dist/{fthry_useSalesforceSync.DJFGoBIG.js → fthry_useSalesforceSync.DHWXQkeF.js} +1 -1
- package/dist/{fthry_webfontloader.4kqCCEG_.js → fthry_webfontloader.C-DWZTL7.js} +1 -1
- package/dist/index.js +1 -1
- package/dist/utils/button.d.ts +2 -0
- package/dist/utils/button.d.ts.map +1 -0
- package/dist/utils/hideAndRepeats.d.ts.map +1 -1
- package/dist/utils/repeat.d.ts +5 -0
- package/dist/utils/repeat.d.ts.map +1 -1
- package/package.json +1 -1
- package/umd/AssistantChat.685c311fcfd51a09112e.js +1 -0
- package/umd/{TableElement.fef6a362cfa150f0f38e.js → TableElement.e3da137819e9b84b3b82.js} +1 -1
- package/umd/index.js +1 -1
- package/umd/AssistantChat.879f86967feffba1cc6f.js +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { C as getDefaultExportFromCjs, a as jsx, _ as __assign, j as jsxs, c as __read, L as __spreadArray, e as css, l as __awaiter, m as __generator, U as __values,
|
|
1
|
+
import { C as getDefaultExportFromCjs, a as jsx, _ as __assign, j as jsxs, c as __read, L as __spreadArray, e as css, l as __awaiter, m as __generator, aw as internalState, ax as getPositionKey, U as __values, ay as initState, az as getRepeatedContainers, aA as getRepeatedContainer, aB as getDefaultFieldValue, aC as isButtonDisabled, B as replaceTextVariables, aD as loadPhoneValidator, T as phoneLibPromise, Q as phoneLib, aE as initInfo, aF as getCookie, p as featheryWindow, t as featheryDoc, q as Fragment$1, aG as v4 } from './fthry_index.CDuqBBJn.js';
|
|
2
2
|
import { useRef, useCallback, useSyncExternalStore, useEffect, useState, memo, useId, useTransition, useMemo, cloneElement, createElement, createContext, isValidElement, useContext, Suspense, lazy as lazy$1, Fragment as Fragment$2 } from 'react';
|
|
3
3
|
import { c as clsx } from './fthry_clsx.ChV9xqsO.js';
|
|
4
4
|
import { jsx as jsx$1, jsxs as jsxs$1, Fragment } from 'react/jsx-runtime';
|
|
5
5
|
import { createPortal } from 'react-dom';
|
|
6
|
-
import { s as stateMap } from './fthry_index.
|
|
6
|
+
import { s as stateMap } from './fthry_index.QPKqFn46.js';
|
|
7
7
|
|
|
8
8
|
// src/errors/ai-sdk-error.ts
|
|
9
9
|
var marker = "vercel.ai.error";
|
|
@@ -9801,15 +9801,39 @@ var getChatColors = function (primary) { return ({
|
|
|
9801
9801
|
}); };
|
|
9802
9802
|
|
|
9803
9803
|
var TOOL_LABELS = {
|
|
9804
|
-
searchDocuments: {
|
|
9805
|
-
running: 'Searching documents...',
|
|
9806
|
-
done: 'Searched the documents'
|
|
9807
|
-
},
|
|
9808
9804
|
searchWeb: {
|
|
9809
9805
|
running: 'Searching the web...',
|
|
9810
9806
|
done: 'Searched the web'
|
|
9811
9807
|
},
|
|
9812
9808
|
scrapeUrl: { running: 'Reading web page...', done: 'Read the web page' },
|
|
9809
|
+
searchDocuments: {
|
|
9810
|
+
running: 'Searching documents...',
|
|
9811
|
+
done: 'Searched the documents'
|
|
9812
|
+
},
|
|
9813
|
+
setFieldValue: {
|
|
9814
|
+
running: 'Updating form fields...',
|
|
9815
|
+
done: 'Updated form fields'
|
|
9816
|
+
},
|
|
9817
|
+
clickElement: {
|
|
9818
|
+
running: 'Running form action...',
|
|
9819
|
+
done: 'Ran the form action'
|
|
9820
|
+
},
|
|
9821
|
+
addTableRow: {
|
|
9822
|
+
running: 'Adding a row...',
|
|
9823
|
+
done: 'Added a row'
|
|
9824
|
+
},
|
|
9825
|
+
deleteTableRow: {
|
|
9826
|
+
running: 'Deleting a row...',
|
|
9827
|
+
done: 'Deleted a row'
|
|
9828
|
+
},
|
|
9829
|
+
setTableCellValue: {
|
|
9830
|
+
running: 'Updating table cells...',
|
|
9831
|
+
done: 'Updated table cells'
|
|
9832
|
+
},
|
|
9833
|
+
triggerTableAction: {
|
|
9834
|
+
running: 'Running table action...',
|
|
9835
|
+
done: 'Ran the table action'
|
|
9836
|
+
},
|
|
9813
9837
|
getPanelSnapshot: {
|
|
9814
9838
|
running: 'Reading the form...',
|
|
9815
9839
|
done: 'Reviewed the form'
|
|
@@ -9818,10 +9842,6 @@ var TOOL_LABELS = {
|
|
|
9818
9842
|
running: 'Looking up your submission...',
|
|
9819
9843
|
done: 'Reviewed the submission'
|
|
9820
9844
|
},
|
|
9821
|
-
listFormExtractions: {
|
|
9822
|
-
running: 'Looking up extractions...',
|
|
9823
|
-
done: 'Reviewed available extractions'
|
|
9824
|
-
},
|
|
9825
9845
|
getExtractionSnapshot: {
|
|
9826
9846
|
running: 'Reading extraction setup...',
|
|
9827
9847
|
done: 'Reviewed the extraction setup'
|
|
@@ -9830,13 +9850,9 @@ var TOOL_LABELS = {
|
|
|
9830
9850
|
running: 'Reading extraction results...',
|
|
9831
9851
|
done: 'Reviewed the extraction results'
|
|
9832
9852
|
},
|
|
9833
|
-
|
|
9834
|
-
running: '
|
|
9835
|
-
done: '
|
|
9836
|
-
},
|
|
9837
|
-
clickElement: {
|
|
9838
|
-
running: 'Just a moment...',
|
|
9839
|
-
done: 'Triggered a form action'
|
|
9853
|
+
listFormExtractions: {
|
|
9854
|
+
running: 'Looking up extractions...',
|
|
9855
|
+
done: 'Reviewed available extractions'
|
|
9840
9856
|
},
|
|
9841
9857
|
getLogicRules: {
|
|
9842
9858
|
running: 'Reading form logic...',
|
|
@@ -51272,14 +51288,14 @@ ${e}</tr>
|
|
|
51272
51288
|
Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error occurred:</p><pre>"+T(n.message+"",true)+"</pre>";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}};var L$1=new D;function g(u,e){return L$1.parse(u,e)}g.options=g.setOptions=function(u){return L$1.setOptions(u),g.defaults=L$1.defaults,G(g.defaults),g};g.getDefaults=M;g.defaults=O;g.use=function(...u){return L$1.use(...u),g.defaults=L$1.defaults,G(g.defaults),g};g.walkTokens=function(u,e){return L$1.walkTokens(u,e)};g.parseInline=L$1.parseInline;g.Parser=b;g.parser=b.parse;g.Renderer=y$1;g.TextRenderer=$;g.Lexer=x;g.lexer=x.lex;g.Tokenizer=w;g.Hooks=P;g.parse=g;g.options;g.setOptions;g.use;g.walkTokens;g.parseInline;b.parse;x.lex;
|
|
51273
51289
|
|
|
51274
51290
|
var En=300,Hn="300px",Dn=500;function Lt(e={}){let{immediate:t=false,debounceDelay:o=En,rootMargin:n=Hn,idleTimeout:r=Dn}=e,[s,a]=useState(false),l=useRef(null),i=useRef(null),c=useRef(null),d=useMemo(()=>p=>{let g=Date.now();return window.setTimeout(()=>{p({didTimeout:false,timeRemaining:()=>Math.max(0,50-(Date.now()-g))});},1)},[]),u=useMemo(()=>typeof window!="undefined"&&window.requestIdleCallback?(p,g)=>window.requestIdleCallback(p,g):d,[d]),m=useMemo(()=>typeof window!="undefined"&&window.cancelIdleCallback?p=>window.cancelIdleCallback(p):p=>{clearTimeout(p);},[]);return useEffect(()=>{if(t){a(true);return}let p=l.current;if(!p)return;i.current&&(clearTimeout(i.current),i.current=null),c.current&&(m(c.current),c.current=null);let g=()=>{i.current&&(clearTimeout(i.current),i.current=null),c.current&&(m(c.current),c.current=null);},h=x=>{c.current=u(w=>{w.timeRemaining()>0||w.didTimeout?(a(true),x.disconnect()):c.current=u(()=>{a(true),x.disconnect();},{timeout:r/2});},{timeout:r});},b=x=>{g(),i.current=window.setTimeout(()=>{var I,H;let w=x.takeRecords();(w.length===0||(H=(I=w.at(-1))==null?void 0:I.isIntersecting)!=null&&H)&&h(x);},o);},f=(x,w)=>{x.isIntersecting?b(w):g();},T=new IntersectionObserver(x=>{for(let w of x)f(w,T);},{rootMargin:n,threshold:0});return T.observe(p),()=>{i.current&&clearTimeout(i.current),c.current&&m(c.current),T.disconnect();}},[t,o,n,r,m,u]),{shouldRender:s,containerRef:l}}var Rt=/\s/,On=/^\s+$/,Vn=new Set(["code","pre","svg","math","annotation"]),jn=e=>typeof e=="object"&&e!==null&&"type"in e&&e.type==="element",Fn=e=>e.some(t=>jn(t)&&Vn.has(t.tagName)),zn=e=>{let t=[],o="",n=false;for(let r of e){let s=Rt.test(r);s!==n&&o&&(t.push(o),o=""),o+=r,n=s;}return o&&t.push(o),t},_n=e=>{let t=[],o="";for(let n of e)Rt.test(n)?o+=n:(o&&(t.push(o),o=""),t.push(n));return o&&t.push(o),t},qn=(e,t,o,n,r)=>({type:"element",tagName:"span",properties:{"data-sd-animate":true,style:r?`--sd-animation:sd-${t};--sd-duration:0ms;--sd-easing:${n}`:`--sd-animation:sd-${t};--sd-duration:${o}ms;--sd-easing:${n}`},children:[{type:"text",value:e}]}),$n=(e,t,o,n,r)=>{let s=t.at(-1);if(!(s&&"children"in s))return;if(Fn(t))return SKIP;let a=s,l=a.children.indexOf(e);if(l===-1)return;let i=e.value;if(!i.trim()){r.count+=i.length;return}let c=o.sep==="char"?_n(i):zn(i),d=n.prevContentLength,u=c.map(m=>{let p=r.count;if(r.count+=m.length,On.test(m))return {type:"text",value:m};let g=d>0&&p<d;return qn(m,o.animation,o.duration,o.easing,g)});return a.children.splice(l,1,...u),l+u.length},Wn=0;function be(e){var s,a,l,i;let t={animation:(s=e==null?void 0:e.animation)!=null?s:"fadeIn",duration:(a=e==null?void 0:e.duration)!=null?a:150,easing:(l=e==null?void 0:e.easing)!=null?l:"ease",sep:(i=e==null?void 0:e.sep)!=null?i:"word"},o={prevContentLength:0,lastRenderCharCount:0},n=Wn++,r=()=>c=>{let d={count:0};visitParents(c,"text",(u,m)=>$n(u,m,t,o,d)),o.lastRenderCharCount=d.count,o.prevContentLength=0;};return Object.defineProperty(r,"name",{value:`rehypeAnimate$${n}`}),{name:"animate",type:"animate",rehypePlugin:r,setPrevContentLength(c){o.prevContentLength=c;},getLastRenderCharCount(){let c=o.lastRenderCharCount;return o.lastRenderCharCount=0,c}}}be();var Qe=createContext(false),et=()=>useContext(Qe);var he=(...e)=>twMerge(clsx(e)),Jn=(e,t)=>{if(!e||!t)return t;let o=`${e}:`;return t.split(/\s+/).filter(Boolean).map(n=>n.startsWith(o)?n:`${e}:${n}`).join(" ")},Ht=e=>e?(...t)=>Jn(e,twMerge(clsx(t))):he,J=(e,t,o)=>{let n=typeof t=="string"?new Blob([t],{type:o}):t,r=URL.createObjectURL(n),s=document.createElement("a");s.href=r,s.download=e,document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(r);};var Se=createContext(he),y=()=>useContext(Se);var Yn=he("block","before:content-[counter(line)]","before:inline-block","before:[counter-increment:line]","before:w-6","before:mr-4","before:text-[13px]","before:text-right","before:text-muted-foreground/50","before:font-mono","before:select-none"),Qn=e=>{let t={};for(let o of e.split(";")){let n=o.indexOf(":");if(n>0){let r=o.slice(0,n).trim(),s=o.slice(n+1).trim();r&&s&&(t[r]=s);}}return t},Bt=memo(({children:e,result:t,language:o,className:n,startLine:r,...s})=>{let a=y(),l=useMemo(()=>a(Yn),[a]),i=useMemo(()=>{let c={};return t.bg&&(c["--sdm-bg"]=t.bg),t.fg&&(c["--sdm-fg"]=t.fg),t.rootStyle&&Object.assign(c,Qn(t.rootStyle)),c},[t.bg,t.fg,t.rootStyle]);return jsx$1("div",{className:a(n,"overflow-hidden rounded-md border border-border bg-background p-4 text-sm"),"data-language":o,"data-streamdown":"code-block-body",...s,children:jsx$1("pre",{className:a(n,"bg-[var(--sdm-bg,inherit]","dark:bg-[var(--shiki-dark-bg,var(--sdm-bg,inherit)]"),style:i,children:jsx$1("code",{className:a("[counter-increment:line_0] [counter-reset:line]"),style:r&&r>1?{counterReset:`line ${r-1}`}:void 0,children:t.tokens.map((c,d)=>jsx$1("span",{className:l,children:c.length===0||c.length===1&&c[0].content===""?`
|
|
51275
|
-
`:c.map((u,m)=>{let p={},g=!!u.bgColor;if(u.color&&(p["--sdm-c"]=u.color),u.bgColor&&(p["--sdm-tbg"]=u.bgColor),u.htmlStyle)for(let[h,b]of Object.entries(u.htmlStyle))h==="color"?p["--sdm-c"]=b:h==="background-color"?(p["--sdm-tbg"]=b,g=true):p[h]=b;return jsx$1("span",{className:a("text-[var(--sdm-c,inherit)]","dark:text-[var(--shiki-dark,var(--sdm-c,inherit))]",g&&"bg-[var(--sdm-tbg)]",g&&"dark:bg-[var(--shiki-dark-bg,var(--sdm-tbg))]"),style:p,...u.htmlAttrs,children:u.content},m)})},d))})})})},(e,t)=>e.result===t.result&&e.language===t.language&&e.className===t.className&&e.startLine===t.startLine);var tt=({className:e,language:t,style:o,isIncomplete:n,...r})=>{let s=y();return jsx$1("div",{className:s("my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2",e),"data-incomplete":n||void 0,"data-language":t,"data-streamdown":"code-block",style:{contentVisibility:"auto",containIntrinsicSize:"auto 200px",...o},...r})};var ot=createContext({code:""}),Ee=()=>useContext(ot);var nt=({language:e})=>{let t=y();return jsx$1("div",{className:t("flex h-8 items-center text-muted-foreground text-xs"),"data-language":e,"data-streamdown":"code-block-header",children:jsx$1("span",{className:t("ml-1 font-mono lowercase"),children:e})})};var sr=/\n+$/,ar=lazy$1(()=>import('./fthry_highlighted-body-TPN3WLV5.
|
|
51291
|
+
`:c.map((u,m)=>{let p={},g=!!u.bgColor;if(u.color&&(p["--sdm-c"]=u.color),u.bgColor&&(p["--sdm-tbg"]=u.bgColor),u.htmlStyle)for(let[h,b]of Object.entries(u.htmlStyle))h==="color"?p["--sdm-c"]=b:h==="background-color"?(p["--sdm-tbg"]=b,g=true):p[h]=b;return jsx$1("span",{className:a("text-[var(--sdm-c,inherit)]","dark:text-[var(--shiki-dark,var(--sdm-c,inherit))]",g&&"bg-[var(--sdm-tbg)]",g&&"dark:bg-[var(--shiki-dark-bg,var(--sdm-tbg))]"),style:p,...u.htmlAttrs,children:u.content},m)})},d))})})})},(e,t)=>e.result===t.result&&e.language===t.language&&e.className===t.className&&e.startLine===t.startLine);var tt=({className:e,language:t,style:o,isIncomplete:n,...r})=>{let s=y();return jsx$1("div",{className:s("my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2",e),"data-incomplete":n||void 0,"data-language":t,"data-streamdown":"code-block",style:{contentVisibility:"auto",containIntrinsicSize:"auto 200px",...o},...r})};var ot=createContext({code:""}),Ee=()=>useContext(ot);var nt=({language:e})=>{let t=y();return jsx$1("div",{className:t("flex h-8 items-center text-muted-foreground text-xs"),"data-language":e,"data-streamdown":"code-block-header",children:jsx$1("span",{className:t("ml-1 font-mono lowercase"),children:e})})};var sr=/\n+$/,ar=lazy$1(()=>import('./fthry_highlighted-body-TPN3WLV5.QeEpdZbH.js').then(e=>({default:e.HighlightedCodeBlockBody}))),rt=({code:e,language:t,className:o,children:n,isIncomplete:r=false,startLine:s,...a})=>{let l=y(),i=useMemo(()=>e.replace(sr,""),[e]),c=useMemo(()=>({bg:"transparent",fg:"inherit",tokens:i.split(`
|
|
51276
51292
|
`).map(d=>[{content:d,color:"inherit",bgColor:"transparent",htmlStyle:{},offset:0}])}),[i]);return jsx$1(ot.Provider,{value:{code:e},children:jsxs$1(tt,{isIncomplete:r,language:t,children:[jsx$1(nt,{language:t}),n?jsx$1("div",{className:l("pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end"),children:jsx$1("div",{className:l("pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur"),"data-streamdown":"code-block-actions",children:n})}):null,jsx$1(Suspense,{fallback:jsx$1(Bt,{className:o,language:t,result:c,startLine:s,...a}),children:jsx$1(ar,{className:o,code:i,language:t,raw:c,startLine:s,...a})})]})})};var Vt=e=>jsx$1("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:jsx$1("path",{clipRule:"evenodd",d:"M15.5607 3.99999L15.0303 4.53032L6.23744 13.3232C5.55403 14.0066 4.44599 14.0066 3.76257 13.3232L4.2929 12.7929L3.76257 13.3232L0.969676 10.5303L0.439346 9.99999L1.50001 8.93933L2.03034 9.46966L4.82323 12.2626C4.92086 12.3602 5.07915 12.3602 5.17678 12.2626L13.9697 3.46966L14.5 2.93933L15.5607 3.99999Z",fill:"currentColor",fillRule:"evenodd"})}),jt=e=>jsx$1("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:jsx$1("path",{clipRule:"evenodd",d:"M2.75 0.5C1.7835 0.5 1 1.2835 1 2.25V9.75C1 10.7165 1.7835 11.5 2.75 11.5H3.75H4.5V10H3.75H2.75C2.61193 10 2.5 9.88807 2.5 9.75V2.25C2.5 2.11193 2.61193 2 2.75 2H8.25C8.38807 2 8.5 2.11193 8.5 2.25V3H10V2.25C10 1.2835 9.2165 0.5 8.25 0.5H2.75ZM7.75 4.5C6.7835 4.5 6 5.2835 6 6.25V13.75C6 14.7165 6.7835 15.5 7.75 15.5H13.25C14.2165 15.5 15 14.7165 15 13.75V6.25C15 5.2835 14.2165 4.5 13.25 4.5H7.75ZM7.5 6.25C7.5 6.11193 7.61193 6 7.75 6H13.25C13.3881 6 13.5 6.11193 13.5 6.25V13.75C13.5 13.8881 13.3881 14 13.25 14H7.75C7.61193 14 7.5 13.8881 7.5 13.75V6.25Z",fill:"currentColor",fillRule:"evenodd"})}),Ft=e=>jsx$1("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:jsx$1("path",{clipRule:"evenodd",d:"M8.75 1V1.75V8.68934L10.7197 6.71967L11.25 6.18934L12.3107 7.25L11.7803 7.78033L8.70711 10.8536C8.31658 11.2441 7.68342 11.2441 7.29289 10.8536L4.21967 7.78033L3.68934 7.25L4.75 6.18934L5.28033 6.71967L7.25 8.68934V1.75V1H8.75ZM13.5 9.25V13.5H2.5V9.25V8.5H1V9.25V14C1 14.5523 1.44771 15 2 15H14C14.5523 15 15 14.5523 15 14V9.25V8.5H13.5V9.25Z",fill:"currentColor",fillRule:"evenodd"})}),zt=e=>jsxs$1("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:[jsx$1("path",{d:"M8 0V4",stroke:"currentColor",strokeWidth:"1.5"}),jsx$1("path",{d:"M8 16V12",opacity:"0.5",stroke:"currentColor",strokeWidth:"1.5"}),jsx$1("path",{d:"M3.29773 1.52783L5.64887 4.7639",opacity:"0.9",stroke:"currentColor",strokeWidth:"1.5"}),jsx$1("path",{d:"M12.7023 1.52783L10.3511 4.7639",opacity:"0.1",stroke:"currentColor",strokeWidth:"1.5"}),jsx$1("path",{d:"M12.7023 14.472L10.3511 11.236",opacity:"0.4",stroke:"currentColor",strokeWidth:"1.5"}),jsx$1("path",{d:"M3.29773 14.472L5.64887 11.236",opacity:"0.6",stroke:"currentColor",strokeWidth:"1.5"}),jsx$1("path",{d:"M15.6085 5.52783L11.8043 6.7639",opacity:"0.2",stroke:"currentColor",strokeWidth:"1.5"}),jsx$1("path",{d:"M0.391602 10.472L4.19583 9.23598",opacity:"0.7",stroke:"currentColor",strokeWidth:"1.5"}),jsx$1("path",{d:"M15.6085 10.4722L11.8043 9.2361",opacity:"0.3",stroke:"currentColor",strokeWidth:"1.5"}),jsx$1("path",{d:"M0.391602 5.52783L4.19583 6.7639",opacity:"0.8",stroke:"currentColor",strokeWidth:"1.5"})]}),_t=e=>jsx$1("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:jsx$1("path",{clipRule:"evenodd",d:"M1 5.25V6H2.5V5.25V2.5H5.25H6V1H5.25H2C1.44772 1 1 1.44772 1 2V5.25ZM5.25 14.9994H6V13.4994H5.25H2.5V10.7494V9.99939H1V10.7494V13.9994C1 14.5517 1.44772 14.9994 2 14.9994H5.25ZM15 10V10.75V14C15 14.5523 14.5523 15 14 15H10.75H10V13.5H10.75H13.5V10.75V10H15ZM10.75 1H10V2.5H10.75H13.5V5.25V6H15V5.25V2C15 1.44772 14.5523 1 14 1H10.75Z",fill:"currentColor",fillRule:"evenodd"})}),qt=e=>jsx$1("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:jsx$1("path",{clipRule:"evenodd",d:"M13.5 8C13.5 4.96643 11.0257 2.5 7.96452 2.5C5.42843 2.5 3.29365 4.19393 2.63724 6.5H5.25H6V8H5.25H0.75C0.335787 8 0 7.66421 0 7.25V2.75V2H1.5V2.75V5.23347C2.57851 2.74164 5.06835 1 7.96452 1C11.8461 1 15 4.13001 15 8C15 11.87 11.8461 15 7.96452 15C5.62368 15 3.54872 13.8617 2.27046 12.1122L1.828 11.5066L3.03915 10.6217L3.48161 11.2273C4.48831 12.6051 6.12055 13.5 7.96452 13.5C11.0257 13.5 13.5 11.0336 13.5 8Z",fill:"currentColor",fillRule:"evenodd"})}),$t=e=>jsx$1("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:jsx$1("path",{clipRule:"evenodd",d:"M12.4697 13.5303L13 14.0607L14.0607 13L13.5303 12.4697L9.06065 7.99999L13.5303 3.53032L14.0607 2.99999L13 1.93933L12.4697 2.46966L7.99999 6.93933L3.53032 2.46966L2.99999 1.93933L1.93933 2.99999L2.46966 3.53032L6.93933 7.99999L2.46966 12.4697L1.93933 13L2.99999 14.0607L3.53032 13.5303L7.99999 9.06065L12.4697 13.5303Z",fill:"currentColor",fillRule:"evenodd"})}),Wt=e=>jsx$1("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:jsx$1("path",{clipRule:"evenodd",d:"M13.5 10.25V13.25C13.5 13.3881 13.3881 13.5 13.25 13.5H2.75C2.61193 13.5 2.5 13.3881 2.5 13.25L2.5 2.75C2.5 2.61193 2.61193 2.5 2.75 2.5H5.75H6.5V1H5.75H2.75C1.7835 1 1 1.7835 1 2.75V13.25C1 14.2165 1.7835 15 2.75 15H13.25C14.2165 15 15 14.2165 15 13.25V10.25V9.5H13.5V10.25ZM9 1H9.75H14.2495C14.6637 1 14.9995 1.33579 14.9995 1.75V6.25V7H13.4995V6.25V3.56066L8.53033 8.52978L8 9.06011L6.93934 7.99945L7.46967 7.46912L12.4388 2.5H9.75H9V1Z",fill:"currentColor",fillRule:"evenodd"})}),Zt=e=>jsx$1("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:jsx$1("path",{clipRule:"evenodd",d:"M1.5 6.5C1.5 3.73858 3.73858 1.5 6.5 1.5C9.26142 1.5 11.5 3.73858 11.5 6.5C11.5 9.26142 9.26142 11.5 6.5 11.5C3.73858 11.5 1.5 9.26142 1.5 6.5ZM6.5 0C2.91015 0 0 2.91015 0 6.5C0 10.0899 2.91015 13 6.5 13C8.02469 13 9.42677 12.475 10.5353 11.596L13.9697 15.0303L14.5 15.5607L15.5607 14.5L15.0303 13.9697L11.596 10.5353C12.475 9.42677 13 8.02469 13 6.5C13 2.91015 10.0899 0 6.5 0ZM4.125 5.875H4.75H5.875V4.75V4.125H7.125V4.75V5.875H8.25H8.875V7.125H8.25H7.125V8.25V8.875H5.875V8.25V7.125H4.75H4.125V5.875Z",fill:"currentColor",fillRule:"evenodd"})}),Xt=e=>jsx$1("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:jsx$1("path",{clipRule:"evenodd",d:"M1.5 6.5C1.5 3.73858 3.73858 1.5 6.5 1.5C9.26142 1.5 11.5 3.73858 11.5 6.5C11.5 9.26142 9.26142 11.5 6.5 11.5C3.73858 11.5 1.5 9.26142 1.5 6.5ZM6.5 0C2.91015 0 0 2.91015 0 6.5C0 10.0899 2.91015 13 6.5 13C8.02469 13 9.42677 12.475 10.5353 11.596L13.9697 15.0303L14.5 15.5607L15.5607 14.5L15.0303 13.9697L11.596 10.5353C12.475 9.42677 13 8.02469 13 6.5C13 2.91015 10.0899 0 6.5 0ZM4.125 5.875H4.75H8.25H8.875V7.125H8.25H4.75H4.125V5.875Z",fill:"currentColor",fillRule:"evenodd"})});var we={CheckIcon:Vt,CopyIcon:jt,DownloadIcon:Ft,ExternalLinkIcon:Wt,Loader2Icon:zt,Maximize2Icon:_t,RotateCcwIcon:qt,XIcon:$t,ZoomInIcon:Zt,ZoomOutIcon:Xt},Kt=createContext(we),mr=(e,t)=>{if(e===t)return true;if(!(e&&t))return e===t;let o=Object.keys(e),n=Object.keys(t);return o.length!==n.length?false:o.every(r=>e[r]===t[r])},st=({icons:e,children:t})=>{let o=useRef(e),n=useRef(e?{...we,...e}:we);mr(o.current,e)||(o.current=e,n.current=e?{...we,...e}:we);let r=n.current;return jsx$1(Kt.Provider,{value:r,children:t})},L=()=>useContext(Kt);var He={copyCode:"Copy Code",downloadFile:"Download file",downloadDiagram:"Download diagram",downloadDiagramAsSvg:"Download diagram as SVG",downloadDiagramAsPng:"Download diagram as PNG",downloadDiagramAsMmd:"Download diagram as MMD",viewFullscreen:"View fullscreen",exitFullscreen:"Exit fullscreen",mermaidFormatSvg:"SVG",mermaidFormatPng:"PNG",mermaidFormatMmd:"MMD",copyTable:"Copy table",copyTableAsMarkdown:"Copy table as Markdown",copyTableAsCsv:"Copy table as CSV",copyTableAsTsv:"Copy table as TSV",downloadTable:"Download table",downloadTableAsCsv:"Download table as CSV",downloadTableAsMarkdown:"Download table as Markdown",tableFormatMarkdown:"Markdown",tableFormatCsv:"CSV",tableFormatTsv:"TSV",imageNotAvailable:"Image not available",downloadImage:"Download image",openExternalLink:"Open external link?",externalLinkWarning:"You're about to visit an external website.",close:"Close",copyLink:"Copy link",copied:"Copied",openLink:"Open link"},De=createContext(He),B=()=>useContext(De);var Be=({onCopy:e,onError:t,timeout:o=2e3,children:n,className:r,code:s,...a})=>{let l=y(),[i,c]=useState(false),d=useRef(0),{code:u}=Ee(),{isAnimating:m}=useContext(R),p=B(),g=s!=null?s:u,h=async()=>{var T;if(typeof window=="undefined"||!((T=navigator==null?void 0:navigator.clipboard)!=null&&T.writeText)){t==null||t(new Error("Clipboard API not available"));return}try{i||(await navigator.clipboard.writeText(g),c(!0),e==null||e(),d.current=window.setTimeout(()=>c(!1),o));}catch(x){t==null||t(x);}};useEffect(()=>()=>{window.clearTimeout(d.current);},[]);let b=L(),f=i?b.CheckIcon:b.CopyIcon;return jsx$1("button",{className:l("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",r),"data-streamdown":"code-block-copy-button",disabled:m,onClick:h,title:p.copyCode,type:"button",...a,children:n!=null?n:jsx$1(f,{size:14})})};var Gt={"1c":"1c","1c-query":"1cq",abap:"abap","actionscript-3":"as",ada:"ada",adoc:"adoc","angular-html":"html","angular-ts":"ts",apache:"conf",apex:"cls",apl:"apl",applescript:"applescript",ara:"ara",asciidoc:"adoc",asm:"asm",astro:"astro",awk:"awk",ballerina:"bal",bash:"sh",bat:"bat",batch:"bat",be:"be",beancount:"beancount",berry:"berry",bibtex:"bib",bicep:"bicep",blade:"blade.php",bsl:"bsl",c:"c","c#":"cs","c++":"cpp",cadence:"cdc",cairo:"cairo",cdc:"cdc",clarity:"clar",clj:"clj",clojure:"clj","closure-templates":"soy",cmake:"cmake",cmd:"cmd",cobol:"cob",codeowners:"CODEOWNERS",codeql:"ql",coffee:"coffee",coffeescript:"coffee","common-lisp":"lisp",console:"sh",coq:"v",cpp:"cpp",cql:"cql",crystal:"cr",cs:"cs",csharp:"cs",css:"css",csv:"csv",cue:"cue",cypher:"cql",d:"d",dart:"dart",dax:"dax",desktop:"desktop",diff:"diff",docker:"dockerfile",dockerfile:"dockerfile",dotenv:"env","dream-maker":"dm",edge:"edge",elisp:"el",elixir:"ex",elm:"elm","emacs-lisp":"el",erb:"erb",erl:"erl",erlang:"erl",f:"f","f#":"fs",f03:"f03",f08:"f08",f18:"f18",f77:"f77",f90:"f90",f95:"f95",fennel:"fnl",fish:"fish",fluent:"ftl",for:"for","fortran-fixed-form":"f","fortran-free-form":"f90",fs:"fs",fsharp:"fs",fsl:"fsl",ftl:"ftl",gdresource:"tres",gdscript:"gd",gdshader:"gdshader",genie:"gs",gherkin:"feature","git-commit":"gitcommit","git-rebase":"gitrebase",gjs:"js",gleam:"gleam","glimmer-js":"js","glimmer-ts":"ts",glsl:"glsl",gnuplot:"plt",go:"go",gql:"gql",graphql:"graphql",groovy:"groovy",gts:"gts",hack:"hack",haml:"haml",handlebars:"hbs",haskell:"hs",haxe:"hx",hbs:"hbs",hcl:"hcl",hjson:"hjson",hlsl:"hlsl",hs:"hs",html:"html","html-derivative":"html",http:"http",hxml:"hxml",hy:"hy",imba:"imba",ini:"ini",jade:"jade",java:"java",javascript:"js",jinja:"jinja",jison:"jison",jl:"jl",js:"js",json:"json",json5:"json5",jsonc:"jsonc",jsonl:"jsonl",jsonnet:"jsonnet",jssm:"jssm",jsx:"jsx",julia:"jl",kotlin:"kt",kql:"kql",kt:"kt",kts:"kts",kusto:"kql",latex:"tex",lean:"lean",lean4:"lean",less:"less",liquid:"liquid",lisp:"lisp",lit:"lit",llvm:"ll",log:"log",logo:"logo",lua:"lua",luau:"luau",make:"mak",makefile:"mak",markdown:"md",marko:"marko",matlab:"m",md:"md",mdc:"mdc",mdx:"mdx",mediawiki:"wiki",mermaid:"mmd",mips:"s",mipsasm:"s",mmd:"mmd",mojo:"mojo",move:"move",nar:"nar",narrat:"narrat",nextflow:"nf",nf:"nf",nginx:"conf",nim:"nim",nix:"nix",nu:"nu",nushell:"nu",objc:"m","objective-c":"m","objective-cpp":"mm",ocaml:"ml",pascal:"pas",perl:"pl",perl6:"p6",php:"php",plsql:"pls",po:"po",polar:"polar",postcss:"pcss",pot:"pot",potx:"potx",powerquery:"pq",powershell:"ps1",prisma:"prisma",prolog:"pl",properties:"properties",proto:"proto",protobuf:"proto",ps:"ps",ps1:"ps1",pug:"pug",puppet:"pp",purescript:"purs",py:"py",python:"py",ql:"ql",qml:"qml",qmldir:"qmldir",qss:"qss",r:"r",racket:"rkt",raku:"raku",razor:"cshtml",rb:"rb",reg:"reg",regex:"regex",regexp:"regexp",rel:"rel",riscv:"s",rs:"rs",rst:"rst",ruby:"rb",rust:"rs",sas:"sas",sass:"sass",scala:"scala",scheme:"scm",scss:"scss",sdbl:"sdbl",sh:"sh",shader:"shader",shaderlab:"shader",shell:"sh",shellscript:"sh",shellsession:"sh",smalltalk:"st",solidity:"sol",soy:"soy",sparql:"rq",spl:"spl",splunk:"spl",sql:"sql","ssh-config":"config",stata:"do",styl:"styl",stylus:"styl",svelte:"svelte",swift:"swift","system-verilog":"sv",systemd:"service",talon:"talon",talonscript:"talon",tasl:"tasl",tcl:"tcl",templ:"templ",terraform:"tf",tex:"tex",tf:"tf",tfvars:"tfvars",toml:"toml",ts:"ts","ts-tags":"ts",tsp:"tsp",tsv:"tsv",tsx:"tsx",turtle:"ttl",twig:"twig",typ:"typ",typescript:"ts",typespec:"tsp",typst:"typ",v:"v",vala:"vala",vb:"vb",verilog:"v",vhdl:"vhdl",vim:"vim",viml:"vim",vimscript:"vim",vue:"vue","vue-html":"html","vue-vine":"vine",vy:"vy",vyper:"vy",wasm:"wasm",wenyan:"wy",wgsl:"wgsl",wiki:"wiki",wikitext:"wiki",wit:"wit",wl:"wl",wolfram:"wl",xml:"xml",xsl:"xsl",yaml:"yaml",yml:"yml",zenscript:"zs",zig:"zig",zsh:"zsh",\u6587\u8A00:"wy"},at=({onDownload:e,onError:t,language:o,children:n,className:r,code:s,...a})=>{let l=y(),{code:i}=Ee(),{isAnimating:c}=useContext(R),d=B(),u=L(),m=s!=null?s:i,g=`file.${o&&o in Gt?Gt[o]:"txt"}`,h="text/plain",b=()=>{try{J(g,m,h),e==null||e();}catch(f){t==null||t(f);}};return jsx$1("button",{className:l("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",r),"data-streamdown":"code-block-download-button",disabled:c,onClick:b,title:d.downloadFile,type:"button",...a,children:n!=null?n:jsx$1(u.DownloadIcon,{size:14})})};var Ae=()=>{let{Loader2Icon:e}=L(),t=y();return jsxs$1("div",{className:t("w-full divide-y divide-border overflow-hidden rounded-xl border border-border"),children:[jsx$1("div",{className:t("h-[46px] w-full bg-muted/80")}),jsx$1("div",{className:t("flex w-full items-center justify-center p-4"),children:jsx$1(e,{className:t("size-4 animate-spin")})})]})};var xr=/\.[^/.]+$/,to=({node:e,className:t,src:o,alt:n,onLoad:r,onError:s,...a})=>{let{DownloadIcon:l}=L(),i=y(),c=useRef(null),[d,u]=useState(false),[m,p]=useState(false),g=B(),h=a.width!=null||a.height!=null,b=(d||h)&&!m,f=m&&!h;useEffect(()=>{let k=c.current;if(k!=null&&k.complete){let I=k.naturalWidth>0;u(I),p(!I);}},[]);let T=useCallback(k=>{u(true),p(false),r==null||r(k);},[r]),x=useCallback(k=>{u(false),p(true),s==null||s(k);},[s]),w=async()=>{if(o)try{let I=await(await fetch(o)).blob(),S=new URL(o,window.location.origin).pathname.split("/").pop()||"",F=S.split(".").pop(),z=S.includes(".")&&F!==void 0&&F.length<=4,q="";if(z)q=S;else {let A=I.type,K="png";A.includes("jpeg")||A.includes("jpg")?K="jpg":A.includes("png")?K="png":A.includes("svg")?K="svg":A.includes("gif")?K="gif":A.includes("webp")&&(K="webp"),q=`${(n||S||"image").replace(xr,"")}.${K}`;}J(q,I,I.type);}catch(k){window.open(o,"_blank");}};return o?jsxs$1("div",{className:i("group relative my-4 inline-block"),"data-streamdown":"image-wrapper",children:[jsx$1("img",{alt:n,className:i("max-w-full rounded-lg",f&&"hidden",t),"data-streamdown":"image",onError:x,onLoad:T,ref:c,src:o,...a}),f&&jsx$1("span",{className:i("text-muted-foreground text-xs italic"),"data-streamdown":"image-fallback",children:g.imageNotAvailable}),jsx$1("div",{className:i("pointer-events-none absolute inset-0 hidden rounded-lg bg-black/10 group-hover:block")}),b&&jsx$1("button",{className:i("absolute right-2 bottom-2 flex h-8 w-8 cursor-pointer items-center justify-center rounded-md border border-border bg-background/90 shadow-sm backdrop-blur-sm transition-all duration-200 hover:bg-background","opacity-0 group-hover:opacity-100"),onClick:w,title:g.downloadImage,type:"button",children:jsx$1(l,{size:14})})]}):null};var ke=0,le=()=>{ke+=1,ke===1&&(document.body.style.overflow="hidden");},ce=()=>{ke=Math.max(0,ke-1),ke===0&&(document.body.style.overflow="");};var ro=({url:e,isOpen:t,onClose:o,onConfirm:n})=>{let{CheckIcon:r,CopyIcon:s,ExternalLinkIcon:a,XIcon:l}=L(),i=y(),[c,d]=useState(false),u=B(),m=useCallback(async()=>{try{await navigator.clipboard.writeText(e),d(!0),setTimeout(()=>d(!1),2e3);}catch(g){}},[e]),p=useCallback(()=>{n(),o();},[n,o]);return useEffect(()=>{if(t){le();let g=h=>{h.key==="Escape"&&o();};return document.addEventListener("keydown",g),()=>{document.removeEventListener("keydown",g),ce();}}},[t,o]),t?jsx$1("div",{className:i("fixed inset-0 z-50 flex items-center justify-center bg-background/50 backdrop-blur-sm"),"data-streamdown":"link-safety-modal",onClick:o,onKeyDown:g=>{g.key==="Escape"&&o();},role:"button",tabIndex:0,children:jsxs$1("div",{className:i("relative mx-4 flex w-full max-w-md flex-col gap-4 rounded-xl border bg-background p-6 shadow-lg"),onClick:g=>g.stopPropagation(),onKeyDown:g=>g.stopPropagation(),role:"presentation",children:[jsx$1("button",{className:i("absolute top-4 right-4 rounded-md p-1 text-muted-foreground transition-all hover:bg-muted hover:text-foreground"),onClick:o,title:u.close,type:"button",children:jsx$1(l,{size:16})}),jsxs$1("div",{className:i("flex flex-col gap-2"),children:[jsxs$1("div",{className:i("flex items-center gap-2 font-semibold text-lg"),children:[jsx$1(a,{size:20}),jsx$1("span",{children:u.openExternalLink})]}),jsx$1("p",{className:i("text-muted-foreground text-sm"),children:u.externalLinkWarning})]}),jsx$1("div",{className:i("break-all rounded-md bg-muted p-3 font-mono text-sm",e.length>100&&"max-h-32 overflow-y-auto"),children:e}),jsxs$1("div",{className:i("flex gap-2"),children:[jsx$1("button",{className:i("flex flex-1 items-center justify-center gap-2 rounded-md border bg-background px-4 py-2 font-medium text-sm transition-all hover:bg-muted"),onClick:m,type:"button",children:c?jsxs$1(Fragment,{children:[jsx$1(r,{size:14}),jsx$1("span",{children:u.copied})]}):jsxs$1(Fragment,{children:[jsx$1(s,{size:14}),jsx$1("span",{children:u.copyLink})]})}),jsxs$1("button",{className:i("flex flex-1 items-center justify-center gap-2 rounded-md bg-primary px-4 py-2 font-medium text-primary-foreground text-sm transition-all hover:bg-primary/90"),onClick:p,type:"button",children:[jsx$1(a,{size:14}),jsx$1("span",{children:u.openLink})]})]})]})}):null};var Oe=createContext(null),lt=()=>useContext(Oe),Mi=()=>{var t;let e=lt();return (t=e==null?void 0:e.code)!=null?t:null},de=()=>{var t;let e=lt();return (t=e==null?void 0:e.mermaid)!=null?t:null};var so=e=>{var o;let t=lt();return t!=null&&t.renderers&&e&&(o=t.renderers.find(n=>Array.isArray(n.language)?n.language.includes(e):n.language===e))!=null?o:null};var ao=(e,t)=>{var n;let o=(n=void 0)!=null?n:5;return new Promise((r,s)=>{let a="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(e))),l=new Image;l.crossOrigin="anonymous",l.onload=()=>{let i=document.createElement("canvas"),c=l.width*o,d=l.height*o;i.width=c,i.height=d;let u=i.getContext("2d");if(!u){s(new Error("Failed to create 2D canvas context for PNG export"));return}u.drawImage(l,0,0,c,d),i.toBlob(m=>{if(!m){s(new Error("Failed to create PNG blob"));return}r(m);},"image/png");},l.onerror=()=>s(new Error("Failed to load SVG image")),l.src=a;})};var lo=({chart:e,children:t,className:o,onDownload:n,config:r,onError:s})=>{let a=y(),[l,i]=useState(false),c=useRef(null),{isAnimating:d}=useContext(R),u=L(),m=de(),p=B(),g=async h=>{try{if(h==="mmd"){J("diagram.mmd",e,"text/plain"),i(!1),n==null||n(h);return}if(!m){s==null||s(new Error("Mermaid plugin not available"));return}let b=m.getMermaid(r),f=e.split("").reduce((w,k)=>(w<<5)-w+k.charCodeAt(0)|0,0),T=`mermaid-${Math.abs(f)}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,{svg:x}=await b.render(T,e);if(!x){s==null||s(new Error("SVG not found. Please wait for the diagram to render."));return}if(h==="svg"){J("diagram.svg",x,"image/svg+xml"),i(!1),n==null||n(h);return}if(h==="png"){let w=await ao(x);J("diagram.png",w,"image/png"),n==null||n(h),i(!1);return}}catch(b){s==null||s(b);}};return useEffect(()=>{let h=b=>{let f=b.composedPath();c.current&&!f.includes(c.current)&&i(false);};return document.addEventListener("mousedown",h),()=>{document.removeEventListener("mousedown",h);}},[]),jsxs$1("div",{className:a("relative"),ref:c,children:[jsx$1("button",{className:a("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",o),disabled:d,onClick:()=>i(!l),title:p.downloadDiagram,type:"button",children:t!=null?t:jsx$1(u.DownloadIcon,{size:14})}),l?jsxs$1("div",{className:a("absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg"),children:[jsx$1("button",{className:a("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("svg"),title:p.downloadDiagramAsSvg,type:"button",children:p.mermaidFormatSvg}),jsx$1("button",{className:a("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("png"),title:p.downloadDiagramAsPng,type:"button",children:p.mermaidFormatPng}),jsx$1("button",{className:a("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("mmd"),title:p.downloadDiagramAsMmd,type:"button",children:p.mermaidFormatMmd})]}):null]})};var po=({chart:e,config:t,onFullscreen:o,onExit:n,className:r,...s})=>{let{Maximize2Icon:a,XIcon:l}=L(),i=y(),[c,d]=useState(false),{isAnimating:u,controls:m}=useContext(R),p=B(),g=(()=>{if(typeof m=="boolean")return m;let b=m.mermaid;return b===false?false:b===true||b===void 0?true:b.panZoom!==false})(),h=()=>{d(!c);};return useEffect(()=>{if(c){le();let b=f=>{f.key==="Escape"&&d(false);};return document.addEventListener("keydown",b),()=>{document.removeEventListener("keydown",b),ce();}}},[c]),useEffect(()=>{c?o==null||o():n&&n();},[c,o,n]),jsxs$1(Fragment,{children:[jsx$1("button",{className:i("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",r),disabled:u,onClick:h,title:p.viewFullscreen,type:"button",...s,children:jsx$1(a,{size:14})}),c?createPortal(jsxs$1("div",{className:i("fixed inset-0 z-50 flex items-center justify-center bg-background/95 backdrop-blur-sm"),onClick:h,onKeyDown:b=>{b.key==="Escape"&&h();},role:"button",tabIndex:0,children:[jsx$1("button",{className:i("absolute top-4 right-4 z-10 rounded-md p-2 text-muted-foreground transition-all hover:bg-muted hover:text-foreground"),onClick:h,title:p.exitFullscreen,type:"button",children:jsx$1(l,{size:20})}),jsx$1("div",{className:i("flex size-full items-center justify-center p-4"),onClick:b=>b.stopPropagation(),onKeyDown:b=>b.stopPropagation(),role:"presentation",children:jsx$1(uo,{chart:e,className:i("size-full [&_svg]:h-auto [&_svg]:w-auto"),config:t,fullscreen:true,showControls:g})})]}),document.body):null]})};var ue=e=>{var s,a;let t=[],o=[],n=e.querySelectorAll("thead th");for(let l of n)t.push(((s=l.textContent)==null?void 0:s.trim())||"");let r=e.querySelectorAll("tbody tr");for(let l of r){let i=[],c=l.querySelectorAll("td");for(let d of c)i.push(((a=d.textContent)==null?void 0:a.trim())||"");o.push(i);}return {headers:t,rows:o}},oe=e=>{let{headers:t,rows:o}=e,n=l=>{let i=false,c=false;for(let d of l){if(d==='"'){i=true,c=true;break}(d===","||d===`
|
|
51277
51293
|
`)&&(i=true);}return i?c?`"${l.replace(/"/g,'""')}"`:`"${l}"`:l},r=t.length>0?o.length+1:o.length,s=new Array(r),a=0;t.length>0&&(s[a]=t.map(n).join(","),a+=1);for(let l of o)s[a]=l.map(n).join(","),a+=1;return s.join(`
|
|
51278
51294
|
`)},ct=e=>{let{headers:t,rows:o}=e,n=l=>{let i=false;for(let d of l)if(d===" "||d===`
|
|
51279
51295
|
`||d==="\r"){i=true;break}if(!i)return l;let c=[];for(let d of l)d===" "?c.push("\\t"):d===`
|
|
51280
51296
|
`?c.push("\\n"):d==="\r"?c.push("\\r"):c.push(d);return c.join("")},r=t.length>0?o.length+1:o.length,s=new Array(r),a=0;t.length>0&&(s[a]=t.map(n).join(" "),a+=1);for(let l of o)s[a]=l.map(n).join(" "),a+=1;return s.join(`
|
|
51281
51297
|
`)},Ve=e=>{let t=false;for(let n of e)if(n==="\\"||n==="|"){t=true;break}if(!t)return e;let o=[];for(let n of e)n==="\\"?o.push("\\\\"):n==="|"?o.push("\\|"):o.push(n);return o.join("")},ne=e=>{let{headers:t,rows:o}=e;if(t.length===0)return "";let n=new Array(o.length+2),r=0,s=t.map(l=>Ve(l));n[r]=`| ${s.join(" | ")} |`,r+=1;let a=new Array(t.length);for(let l=0;l<t.length;l+=1)a[l]="---";n[r]=`| ${a.join(" | ")} |`,r+=1;for(let l of o)if(l.length<t.length){let i=new Array(t.length);for(let c=0;c<t.length;c+=1)i[c]=c<l.length?Ve(l[c]):"";n[r]=`| ${i.join(" | ")} |`,r+=1;}else {let i=l.map(c=>Ve(c));n[r]=`| ${i.join(" | ")} |`,r+=1;}return n.join(`
|
|
51282
|
-
`)};var Te=({children:e,className:t,onCopy:o,onError:n,timeout:r=2e3})=>{let s=y(),[a,l]=useState(false),[i,c]=useState(false),d=useRef(null),u=useRef(0),{isAnimating:m}=useContext(R),p=B(),g=async f=>{var T,x;if(typeof window=="undefined"||!((T=navigator==null?void 0:navigator.clipboard)!=null&&T.write)){n==null||n(new Error("Clipboard API not available"));return}try{let w=(x=d.current)==null?void 0:x.closest('[data-streamdown="table-wrapper"]'),k=w==null?void 0:w.querySelector("table");if(!k){n==null||n(new Error("Table not found"));return}let I=ue(k),F=({csv:oe,tsv:ct,md:ne}[f]||ne)(I),z=new ClipboardItem({"text/plain":new Blob([F],{type:"text/plain"}),"text/html":new Blob([k.outerHTML],{type:"text/html"})});await navigator.clipboard.write([z]),c(!0),l(!1),o==null||o(f),u.current=window.setTimeout(()=>c(!1),r);}catch(w){n==null||n(w);}};useEffect(()=>{let f=T=>{let x=T.composedPath();d.current&&!x.includes(d.current)&&l(false);};return document.addEventListener("mousedown",f),()=>{document.removeEventListener("mousedown",f),window.clearTimeout(u.current);}},[]);let h=L(),b=i?h.CheckIcon:h.CopyIcon;return jsxs$1("div",{className:s("relative"),ref:d,children:[jsx$1("button",{className:s("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:m,onClick:()=>l(!a),title:p.copyTable,type:"button",children:e!=null?e:jsx$1(b,{height:14,width:14})}),a?jsxs$1("div",{className:s("absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg"),children:[jsx$1("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("md"),title:p.copyTableAsMarkdown,type:"button",children:p.tableFormatMarkdown}),jsx$1("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("csv"),title:p.copyTableAsCsv,type:"button",children:p.tableFormatCsv}),jsx$1("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("tsv"),title:p.copyTableAsTsv,type:"button",children:p.tableFormatTsv})]}):null]})};var Pe=({children:e,className:t,onDownload:o,onError:n})=>{let r=y(),[s,a]=useState(false),l=useRef(null),{isAnimating:i}=useContext(R),c=B(),d=L(),u=m=>{var p;try{let g=(p=l.current)==null?void 0:p.closest('[data-streamdown="table-wrapper"]'),h=g==null?void 0:g.querySelector("table");if(!h){n==null||n(new Error("Table not found"));return}let b=ue(h),f=m==="csv"?oe(b):ne(b);J(`table.${m==="csv"?"csv":"md"}`,f,m==="csv"?"text/csv":"text/markdown"),a(!1),o==null||o(m);}catch(g){n==null||n(g);}};return useEffect(()=>{let m=p=>{let g=p.composedPath();l.current&&!g.includes(l.current)&&a(false);};return document.addEventListener("mousedown",m),()=>{document.removeEventListener("mousedown",m);}},[]),jsxs$1("div",{className:r("relative"),ref:l,children:[jsx$1("button",{className:r("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:i,onClick:()=>a(!s),title:c.downloadTable,type:"button",children:e!=null?e:jsx$1(d.DownloadIcon,{size:14})}),s?jsxs$1("div",{className:r("absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg"),children:[jsx$1("button",{className:r("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>u("csv"),title:c.downloadTableAsCsv,type:"button",children:c.tableFormatCsv}),jsx$1("button",{className:r("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>u("markdown"),title:c.downloadTableAsMarkdown,type:"button",children:c.tableFormatMarkdown})]}):null]})};var wo=({children:e,className:t,showCopy:o=true,showDownload:n=true})=>{let{Maximize2Icon:r,XIcon:s}=L(),a=y(),[l,i]=useState(false),{isAnimating:c}=useContext(R),d=B(),u=()=>{i(true);},m=()=>{i(false);};return useEffect(()=>{if(l){le();let p=g=>{g.key==="Escape"&&i(false);};return document.addEventListener("keydown",p),()=>{document.removeEventListener("keydown",p),ce();}}},[l]),jsxs$1(Fragment,{children:[jsx$1("button",{className:a("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:c,onClick:u,title:d.viewFullscreen,type:"button",children:jsx$1(r,{size:14})}),l?createPortal(jsx$1("div",{"aria-label":d.viewFullscreen,"aria-modal":"true",className:a("fixed inset-0 z-50 flex flex-col bg-background"),"data-streamdown":"table-fullscreen",onClick:m,onKeyDown:p=>{p.key==="Escape"&&m();},role:"dialog",children:jsxs$1("div",{className:a("flex h-full flex-col"),onClick:p=>p.stopPropagation(),onKeyDown:p=>p.stopPropagation(),role:"presentation",children:[jsxs$1("div",{className:a("flex items-center justify-end gap-1 p-4"),children:[o?jsx$1(Te,{}):null,n?jsx$1(Pe,{}):null,jsx$1("button",{className:a("rounded-md p-1 text-muted-foreground transition-all hover:bg-muted hover:text-foreground"),onClick:m,title:d.exitFullscreen,type:"button",children:jsx$1(s,{size:20})})]}),jsx$1("div",{className:a("flex-1 overflow-auto p-4 pt-0 [&_thead]:sticky [&_thead]:top-0 [&_thead]:z-10"),children:jsx$1("table",{className:a("w-full border-collapse border border-border"),"data-streamdown":"table",children:e})})]})}),document.body):null]})};var ko=({children:e,className:t,showControls:o,showCopy:n=true,showDownload:r=true,showFullscreen:s=true,...a})=>{let l=y(),i=o&&n,c=o&&r,d=o&&s,u=i||c||d;return jsxs$1("div",{className:l("my-4 flex flex-col gap-2 rounded-lg border border-border bg-sidebar p-2"),"data-streamdown":"table-wrapper",children:[u?jsxs$1("div",{className:l("flex items-center justify-end gap-1"),children:[i?jsx$1(Te,{}):null,c?jsx$1(Pe,{}):null,d?jsx$1(wo,{showCopy:i,showDownload:c,children:e}):null]}):null,jsx$1("div",{className:l("border-collapse overflow-x-auto overflow-y-auto rounded-md border border-border bg-background"),children:jsx$1("table",{className:l("w-full divide-y divide-border",t),"data-streamdown":"table",...a,children:e})})]})};var Gr=/startLine=(\d+)/,Yr=lazy$1(()=>import('./fthry_mermaid-O7DHMXV3._Ng2DeVi.js').then(e=>({default:e.Mermaid}))),Qr=/language-([^\s]+)/;function _e(e,t){if(!(e!=null&&e.position||t!=null&&t.position))return true;if(!(e!=null&&e.position&&(t!=null&&t.position)))return false;let o=e.position.start,n=t.position.start,r=e.position.end,s=t.position.end;return (o==null?void 0:o.line)===(n==null?void 0:n.line)&&(o==null?void 0:o.column)===(n==null?void 0:n.column)&&(r==null?void 0:r.line)===(s==null?void 0:s.line)&&(r==null?void 0:r.column)===(s==null?void 0:s.column)}function E(e,t){return e.className===t.className&&_e(e.node,t.node)}var pt=(e,t)=>typeof e=="boolean"?e:e[t]!==false,ut=(e,t)=>{if(typeof e=="boolean")return e;let o=e.table;return o===false?false:o===true||o===void 0?true:o[t]!==false},xo=(e,t)=>{if(typeof e=="boolean")return e;let o=e.code;return o===false?false:o===true||o===void 0?true:o[t]!==false},je=(e,t)=>{if(typeof e=="boolean")return e;let o=e.mermaid;return o===false?false:o===true||o===void 0?true:o[t]!==false},gt=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("ol",{className:r("list-inside list-decimal whitespace-normal [li_&]:pl-6",t),"data-streamdown":"ordered-list",...n,children:e})},(e,t)=>E(e,t));gt.displayName="MarkdownOl";var To=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("li",{className:r("py-1 [&>p]:inline",t),"data-streamdown":"list-item",...n,children:e})},(e,t)=>e.className===t.className&&_e(e.node,t.node));To.displayName="MarkdownLi";var Po=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("ul",{className:r("list-inside list-disc whitespace-normal [li_&]:pl-6",t),"data-streamdown":"unordered-list",...n,children:e})},(e,t)=>E(e,t));Po.displayName="MarkdownUl";var Mo=memo(({className:e,node:t,...o})=>{let n=y();return jsx$1("hr",{className:n("my-6 border-border",e),"data-streamdown":"horizontal-rule",...o})},(e,t)=>E(e,t));Mo.displayName="MarkdownHr";var Io=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("span",{className:r("font-semibold",t),"data-streamdown":"strong",...n,children:e})},(e,t)=>E(e,t));Io.displayName="MarkdownStrong";var es=({children:e,className:t,href:o,node:n,...r})=>{let s=y(),{linkSafety:a}=useContext(R),[l,i]=useState(false),c=o==="streamdown:incomplete-link",d=useCallback(async g=>{if(!(!(a!=null&&a.enabled&&o)||c)){if(g.preventDefault(),a.onLinkCheck&&await a.onLinkCheck(o)){window.open(o,"_blank","noreferrer");return}i(true);}},[a,o,c]),u=useCallback(()=>{o&&window.open(o,"_blank","noreferrer");},[o]),m=useCallback(()=>{i(false);},[]),p={url:o!=null?o:"",isOpen:l,onClose:m,onConfirm:u};return a!=null&&a.enabled&&o?jsxs$1(Fragment,{children:[jsx$1("button",{className:s("wrap-anywhere appearance-none text-left font-medium text-primary underline",t),"data-incomplete":c,"data-streamdown":"link",onClick:d,type:"button",children:e}),a.renderModal?a.renderModal(p):jsx$1(ro,{...p})]}):jsx$1("a",{className:s("wrap-anywhere font-medium text-primary underline",t),"data-incomplete":c,"data-streamdown":"link",href:o,rel:"noreferrer",target:"_blank",...r,children:e})},No=memo(es,(e,t)=>E(e,t)&&e.href===t.href);No.displayName="MarkdownA";var Lo=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("h1",{className:r("mt-6 mb-2 font-semibold text-3xl",t),"data-streamdown":"heading-1",...n,children:e})},(e,t)=>E(e,t));Lo.displayName="MarkdownH1";var Ro=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("h2",{className:r("mt-6 mb-2 font-semibold text-2xl",t),"data-streamdown":"heading-2",...n,children:e})},(e,t)=>E(e,t));Ro.displayName="MarkdownH2";var So=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("h3",{className:r("mt-6 mb-2 font-semibold text-xl",t),"data-streamdown":"heading-3",...n,children:e})},(e,t)=>E(e,t));So.displayName="MarkdownH3";var Eo=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("h4",{className:r("mt-6 mb-2 font-semibold text-lg",t),"data-streamdown":"heading-4",...n,children:e})},(e,t)=>E(e,t));Eo.displayName="MarkdownH4";var Ho=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("h5",{className:r("mt-6 mb-2 font-semibold text-base",t),"data-streamdown":"heading-5",...n,children:e})},(e,t)=>E(e,t));Ho.displayName="MarkdownH5";var Do=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("h6",{className:r("mt-6 mb-2 font-semibold text-sm",t),"data-streamdown":"heading-6",...n,children:e})},(e,t)=>E(e,t));Do.displayName="MarkdownH6";var Bo=memo(({children:e,className:t,node:o,...n})=>{let{controls:r}=useContext(R),s=pt(r,"table"),a=ut(r,"copy"),l=ut(r,"download"),i=ut(r,"fullscreen");return jsx$1(ko,{className:t,showControls:s,showCopy:a,showDownload:l,showFullscreen:i,...n,children:e})},(e,t)=>E(e,t));Bo.displayName="MarkdownTable";var Ao=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("thead",{className:r("bg-muted/80",t),"data-streamdown":"table-header",...n,children:e})},(e,t)=>E(e,t));Ao.displayName="MarkdownThead";var Oo=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("tbody",{className:r("divide-y divide-border",t),"data-streamdown":"table-body",...n,children:e})},(e,t)=>E(e,t));Oo.displayName="MarkdownTbody";var Vo=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("tr",{className:r("border-border",t),"data-streamdown":"table-row",...n,children:e})},(e,t)=>E(e,t));Vo.displayName="MarkdownTr";var jo=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("th",{className:r("whitespace-nowrap px-4 py-2 text-left font-semibold text-sm",t),"data-streamdown":"table-header-cell",...n,children:e})},(e,t)=>E(e,t));jo.displayName="MarkdownTh";var Fo=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("td",{className:r("px-4 py-2 text-sm",t),"data-streamdown":"table-cell",...n,children:e})},(e,t)=>E(e,t));Fo.displayName="MarkdownTd";var zo=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("blockquote",{className:r("my-4 border-muted-foreground/30 border-l-4 pl-4 text-muted-foreground italic",t),"data-streamdown":"blockquote",...n,children:e})},(e,t)=>E(e,t));zo.displayName="MarkdownBlockquote";var _o=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("sup",{className:r("text-sm",t),"data-streamdown":"superscript",...n,children:e})},(e,t)=>E(e,t));_o.displayName="MarkdownSup";var qo=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("sub",{className:r("text-sm",t),"data-streamdown":"subscript",...n,children:e})},(e,t)=>E(e,t));qo.displayName="MarkdownSub";var $o=memo(({children:e,className:t,node:o,...n})=>{if("data-footnotes"in n){let s=i=>{var m,p;if(!isValidElement(i))return false;let c=Array.isArray(i.props.children)?i.props.children:[i.props.children],d=false,u=false;for(let g of c)if(g){if(typeof g=="string")g.trim()!==""&&(d=true);else if(isValidElement(g))if(((m=g.props)==null?void 0:m["data-footnote-backref"])!==void 0)u=true;else {let h=Array.isArray(g.props.children)?g.props.children:[g.props.children];for(let b of h){if(typeof b=="string"&&b.trim()!==""){d=true;break}if(isValidElement(b)&&((p=b.props)==null?void 0:p["data-footnote-backref"])===void 0){d=true;break}}}}return u&&!d},a=Array.isArray(e)?e.map(i=>{if(!isValidElement(i))return i;if(i.type===gt){let d=(Array.isArray(i.props.children)?i.props.children:[i.props.children]).filter(u=>!s(u));return d.length===0?null:{...i,props:{...i.props,children:d}}}return i}):e;return (Array.isArray(a)?a.some(i=>i!==null):a!==null)?jsx$1("section",{className:t,...n,children:a}):null}return jsx$1("section",{className:t,...n,children:e})},(e,t)=>E(e,t));$o.displayName="MarkdownSection";var ts=({node:e,className:t,children:o,...n})=>{var k,I;let r=y(),s=!("data-block"in n),{mermaid:a,controls:l}=useContext(R),i=de(),c=et(),d=t==null?void 0:t.match(Qr),u=(k=d==null?void 0:d.at(1))!=null?k:"",m=so(u);if(s)return jsx$1("code",{className:r("rounded bg-muted px-1.5 py-0.5 font-mono text-sm",t),"data-streamdown":"inline-code",...n,children:o});let p=(I=e==null?void 0:e.properties)==null?void 0:I.metastring,g=p==null?void 0:p.match(Gr),h=g?Number.parseInt(g[1],10):void 0,b=h!==void 0&&h>=1?h:void 0,f="";if(isValidElement(o)&&o.props&&typeof o.props=="object"&&"children"in o.props&&typeof o.props.children=="string"?f=o.props.children:typeof o=="string"&&(f=o),m){let H=m.component;return jsx$1(Suspense,{fallback:jsx$1(Ae,{}),children:jsx$1(H,{code:f,isIncomplete:c,language:u})})}if(u==="mermaid"&&i){let H=pt(l,"mermaid"),S=je(l,"download"),F=je(l,"copy"),z=je(l,"fullscreen"),q=je(l,"panZoom"),A=H&&(S||F||z);return jsx$1(Suspense,{fallback:jsx$1(Ae,{}),children:jsxs$1("div",{className:r("group relative my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2",t),"data-streamdown":"mermaid-block",children:[jsx$1("div",{className:r("flex h-8 items-center text-muted-foreground text-xs"),children:jsx$1("span",{className:r("ml-1 font-mono lowercase"),children:"mermaid"})}),A?jsx$1("div",{className:r("pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end"),children:jsxs$1("div",{className:r("pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur"),"data-streamdown":"mermaid-block-actions",children:[S?jsx$1(lo,{chart:f,config:a==null?void 0:a.config}):null,F?jsx$1(Be,{code:f}):null,z?jsx$1(po,{chart:f,config:a==null?void 0:a.config}):null]})}):null,jsx$1("div",{className:r("rounded-md border border-border bg-background"),children:jsx$1(Yr,{chart:f,config:a==null?void 0:a.config,showControls:q})})]})})}let T=pt(l,"code"),x=xo(l,"download"),w=xo(l,"copy");return jsx$1(rt,{className:t,code:f,isIncomplete:c,language:u,startLine:b,children:T?jsxs$1(Fragment,{children:[x?jsx$1(at,{code:f,language:u}):null,w?jsx$1(Be,{}):null]}):null})},Wo=memo(ts,(e,t)=>e.className===t.className&&_e(e.node,t.node));Wo.displayName="MarkdownCode";var Zo=memo(to,(e,t)=>e.className===t.className&&_e(e.node,t.node));Zo.displayName="MarkdownImg";var Xo=memo(({children:e,node:t,...o})=>{let r=(Array.isArray(e)?e:[e]).filter(s=>s!=null&&s!=="");if(r.length===1&&isValidElement(r[0])){let s=r[0].props.node,a=s==null?void 0:s.tagName;if(a==="img")return jsx$1(Fragment,{children:e});if(a==="code"&&"data-block"in r[0].props)return jsx$1(Fragment,{children:e})}return jsx$1("p",{...o,children:e})},(e,t)=>E(e,t));Xo.displayName="MarkdownParagraph";var Jo={ol:gt,li:To,ul:Po,hr:Mo,strong:Io,a:No,h1:Lo,h2:Ro,h3:So,h4:Eo,h5:Ho,h6:Do,table:Bo,thead:Ao,tbody:Oo,tr:Vo,th:jo,td:Fo,blockquote:zo,code:Wo,img:Zo,pre:({children:e})=>isValidElement(e)?cloneElement(e,{"data-block":"true"}):e,sup:_o,sub:qo,p:Xo,section:$o};var os=/[\u0590-\u08FF\uFB1D-\uFDFF\uFE70-\uFEFF]/,ns=/\p{L}/u;function qe(e){let t=e.replace(/^#{1,6}\s+/gm,"").replace(/(\*{1,3}|_{1,3})/g,"").replace(/`[^`]*`/g,"").replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/^[\s>*\-+\d.]+/gm,"");for(let o of t){if(os.test(o))return "rtl";if(ns.test(o))return "ltr"}return "ltr"}var rs=/^[ \t]{0,3}(`{3,}|~{3,})/,ss=/^\|?[ \t]*:?-{1,}:?[ \t]*(\|[ \t]*:?-{1,}:?[ \t]*)*\|?$/,bt=e=>{let t=e.split(`
|
|
51298
|
+
`)};var Te=({children:e,className:t,onCopy:o,onError:n,timeout:r=2e3})=>{let s=y(),[a,l]=useState(false),[i,c]=useState(false),d=useRef(null),u=useRef(0),{isAnimating:m}=useContext(R),p=B(),g=async f=>{var T,x;if(typeof window=="undefined"||!((T=navigator==null?void 0:navigator.clipboard)!=null&&T.write)){n==null||n(new Error("Clipboard API not available"));return}try{let w=(x=d.current)==null?void 0:x.closest('[data-streamdown="table-wrapper"]'),k=w==null?void 0:w.querySelector("table");if(!k){n==null||n(new Error("Table not found"));return}let I=ue(k),F=({csv:oe,tsv:ct,md:ne}[f]||ne)(I),z=new ClipboardItem({"text/plain":new Blob([F],{type:"text/plain"}),"text/html":new Blob([k.outerHTML],{type:"text/html"})});await navigator.clipboard.write([z]),c(!0),l(!1),o==null||o(f),u.current=window.setTimeout(()=>c(!1),r);}catch(w){n==null||n(w);}};useEffect(()=>{let f=T=>{let x=T.composedPath();d.current&&!x.includes(d.current)&&l(false);};return document.addEventListener("mousedown",f),()=>{document.removeEventListener("mousedown",f),window.clearTimeout(u.current);}},[]);let h=L(),b=i?h.CheckIcon:h.CopyIcon;return jsxs$1("div",{className:s("relative"),ref:d,children:[jsx$1("button",{className:s("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:m,onClick:()=>l(!a),title:p.copyTable,type:"button",children:e!=null?e:jsx$1(b,{height:14,width:14})}),a?jsxs$1("div",{className:s("absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg"),children:[jsx$1("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("md"),title:p.copyTableAsMarkdown,type:"button",children:p.tableFormatMarkdown}),jsx$1("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("csv"),title:p.copyTableAsCsv,type:"button",children:p.tableFormatCsv}),jsx$1("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("tsv"),title:p.copyTableAsTsv,type:"button",children:p.tableFormatTsv})]}):null]})};var Pe=({children:e,className:t,onDownload:o,onError:n})=>{let r=y(),[s,a]=useState(false),l=useRef(null),{isAnimating:i}=useContext(R),c=B(),d=L(),u=m=>{var p;try{let g=(p=l.current)==null?void 0:p.closest('[data-streamdown="table-wrapper"]'),h=g==null?void 0:g.querySelector("table");if(!h){n==null||n(new Error("Table not found"));return}let b=ue(h),f=m==="csv"?oe(b):ne(b);J(`table.${m==="csv"?"csv":"md"}`,f,m==="csv"?"text/csv":"text/markdown"),a(!1),o==null||o(m);}catch(g){n==null||n(g);}};return useEffect(()=>{let m=p=>{let g=p.composedPath();l.current&&!g.includes(l.current)&&a(false);};return document.addEventListener("mousedown",m),()=>{document.removeEventListener("mousedown",m);}},[]),jsxs$1("div",{className:r("relative"),ref:l,children:[jsx$1("button",{className:r("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:i,onClick:()=>a(!s),title:c.downloadTable,type:"button",children:e!=null?e:jsx$1(d.DownloadIcon,{size:14})}),s?jsxs$1("div",{className:r("absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg"),children:[jsx$1("button",{className:r("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>u("csv"),title:c.downloadTableAsCsv,type:"button",children:c.tableFormatCsv}),jsx$1("button",{className:r("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>u("markdown"),title:c.downloadTableAsMarkdown,type:"button",children:c.tableFormatMarkdown})]}):null]})};var wo=({children:e,className:t,showCopy:o=true,showDownload:n=true})=>{let{Maximize2Icon:r,XIcon:s}=L(),a=y(),[l,i]=useState(false),{isAnimating:c}=useContext(R),d=B(),u=()=>{i(true);},m=()=>{i(false);};return useEffect(()=>{if(l){le();let p=g=>{g.key==="Escape"&&i(false);};return document.addEventListener("keydown",p),()=>{document.removeEventListener("keydown",p),ce();}}},[l]),jsxs$1(Fragment,{children:[jsx$1("button",{className:a("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:c,onClick:u,title:d.viewFullscreen,type:"button",children:jsx$1(r,{size:14})}),l?createPortal(jsx$1("div",{"aria-label":d.viewFullscreen,"aria-modal":"true",className:a("fixed inset-0 z-50 flex flex-col bg-background"),"data-streamdown":"table-fullscreen",onClick:m,onKeyDown:p=>{p.key==="Escape"&&m();},role:"dialog",children:jsxs$1("div",{className:a("flex h-full flex-col"),onClick:p=>p.stopPropagation(),onKeyDown:p=>p.stopPropagation(),role:"presentation",children:[jsxs$1("div",{className:a("flex items-center justify-end gap-1 p-4"),children:[o?jsx$1(Te,{}):null,n?jsx$1(Pe,{}):null,jsx$1("button",{className:a("rounded-md p-1 text-muted-foreground transition-all hover:bg-muted hover:text-foreground"),onClick:m,title:d.exitFullscreen,type:"button",children:jsx$1(s,{size:20})})]}),jsx$1("div",{className:a("flex-1 overflow-auto p-4 pt-0 [&_thead]:sticky [&_thead]:top-0 [&_thead]:z-10"),children:jsx$1("table",{className:a("w-full border-collapse border border-border"),"data-streamdown":"table",children:e})})]})}),document.body):null]})};var ko=({children:e,className:t,showControls:o,showCopy:n=true,showDownload:r=true,showFullscreen:s=true,...a})=>{let l=y(),i=o&&n,c=o&&r,d=o&&s,u=i||c||d;return jsxs$1("div",{className:l("my-4 flex flex-col gap-2 rounded-lg border border-border bg-sidebar p-2"),"data-streamdown":"table-wrapper",children:[u?jsxs$1("div",{className:l("flex items-center justify-end gap-1"),children:[i?jsx$1(Te,{}):null,c?jsx$1(Pe,{}):null,d?jsx$1(wo,{showCopy:i,showDownload:c,children:e}):null]}):null,jsx$1("div",{className:l("border-collapse overflow-x-auto overflow-y-auto rounded-md border border-border bg-background"),children:jsx$1("table",{className:l("w-full divide-y divide-border",t),"data-streamdown":"table",...a,children:e})})]})};var Gr=/startLine=(\d+)/,Yr=lazy$1(()=>import('./fthry_mermaid-O7DHMXV3.DehdVKQ3.js').then(e=>({default:e.Mermaid}))),Qr=/language-([^\s]+)/;function _e(e,t){if(!(e!=null&&e.position||t!=null&&t.position))return true;if(!(e!=null&&e.position&&(t!=null&&t.position)))return false;let o=e.position.start,n=t.position.start,r=e.position.end,s=t.position.end;return (o==null?void 0:o.line)===(n==null?void 0:n.line)&&(o==null?void 0:o.column)===(n==null?void 0:n.column)&&(r==null?void 0:r.line)===(s==null?void 0:s.line)&&(r==null?void 0:r.column)===(s==null?void 0:s.column)}function E(e,t){return e.className===t.className&&_e(e.node,t.node)}var pt=(e,t)=>typeof e=="boolean"?e:e[t]!==false,ut=(e,t)=>{if(typeof e=="boolean")return e;let o=e.table;return o===false?false:o===true||o===void 0?true:o[t]!==false},xo=(e,t)=>{if(typeof e=="boolean")return e;let o=e.code;return o===false?false:o===true||o===void 0?true:o[t]!==false},je=(e,t)=>{if(typeof e=="boolean")return e;let o=e.mermaid;return o===false?false:o===true||o===void 0?true:o[t]!==false},gt=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("ol",{className:r("list-inside list-decimal whitespace-normal [li_&]:pl-6",t),"data-streamdown":"ordered-list",...n,children:e})},(e,t)=>E(e,t));gt.displayName="MarkdownOl";var To=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("li",{className:r("py-1 [&>p]:inline",t),"data-streamdown":"list-item",...n,children:e})},(e,t)=>e.className===t.className&&_e(e.node,t.node));To.displayName="MarkdownLi";var Po=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("ul",{className:r("list-inside list-disc whitespace-normal [li_&]:pl-6",t),"data-streamdown":"unordered-list",...n,children:e})},(e,t)=>E(e,t));Po.displayName="MarkdownUl";var Mo=memo(({className:e,node:t,...o})=>{let n=y();return jsx$1("hr",{className:n("my-6 border-border",e),"data-streamdown":"horizontal-rule",...o})},(e,t)=>E(e,t));Mo.displayName="MarkdownHr";var Io=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("span",{className:r("font-semibold",t),"data-streamdown":"strong",...n,children:e})},(e,t)=>E(e,t));Io.displayName="MarkdownStrong";var es=({children:e,className:t,href:o,node:n,...r})=>{let s=y(),{linkSafety:a}=useContext(R),[l,i]=useState(false),c=o==="streamdown:incomplete-link",d=useCallback(async g=>{if(!(!(a!=null&&a.enabled&&o)||c)){if(g.preventDefault(),a.onLinkCheck&&await a.onLinkCheck(o)){window.open(o,"_blank","noreferrer");return}i(true);}},[a,o,c]),u=useCallback(()=>{o&&window.open(o,"_blank","noreferrer");},[o]),m=useCallback(()=>{i(false);},[]),p={url:o!=null?o:"",isOpen:l,onClose:m,onConfirm:u};return a!=null&&a.enabled&&o?jsxs$1(Fragment,{children:[jsx$1("button",{className:s("wrap-anywhere appearance-none text-left font-medium text-primary underline",t),"data-incomplete":c,"data-streamdown":"link",onClick:d,type:"button",children:e}),a.renderModal?a.renderModal(p):jsx$1(ro,{...p})]}):jsx$1("a",{className:s("wrap-anywhere font-medium text-primary underline",t),"data-incomplete":c,"data-streamdown":"link",href:o,rel:"noreferrer",target:"_blank",...r,children:e})},No=memo(es,(e,t)=>E(e,t)&&e.href===t.href);No.displayName="MarkdownA";var Lo=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("h1",{className:r("mt-6 mb-2 font-semibold text-3xl",t),"data-streamdown":"heading-1",...n,children:e})},(e,t)=>E(e,t));Lo.displayName="MarkdownH1";var Ro=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("h2",{className:r("mt-6 mb-2 font-semibold text-2xl",t),"data-streamdown":"heading-2",...n,children:e})},(e,t)=>E(e,t));Ro.displayName="MarkdownH2";var So=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("h3",{className:r("mt-6 mb-2 font-semibold text-xl",t),"data-streamdown":"heading-3",...n,children:e})},(e,t)=>E(e,t));So.displayName="MarkdownH3";var Eo=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("h4",{className:r("mt-6 mb-2 font-semibold text-lg",t),"data-streamdown":"heading-4",...n,children:e})},(e,t)=>E(e,t));Eo.displayName="MarkdownH4";var Ho=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("h5",{className:r("mt-6 mb-2 font-semibold text-base",t),"data-streamdown":"heading-5",...n,children:e})},(e,t)=>E(e,t));Ho.displayName="MarkdownH5";var Do=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("h6",{className:r("mt-6 mb-2 font-semibold text-sm",t),"data-streamdown":"heading-6",...n,children:e})},(e,t)=>E(e,t));Do.displayName="MarkdownH6";var Bo=memo(({children:e,className:t,node:o,...n})=>{let{controls:r}=useContext(R),s=pt(r,"table"),a=ut(r,"copy"),l=ut(r,"download"),i=ut(r,"fullscreen");return jsx$1(ko,{className:t,showControls:s,showCopy:a,showDownload:l,showFullscreen:i,...n,children:e})},(e,t)=>E(e,t));Bo.displayName="MarkdownTable";var Ao=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("thead",{className:r("bg-muted/80",t),"data-streamdown":"table-header",...n,children:e})},(e,t)=>E(e,t));Ao.displayName="MarkdownThead";var Oo=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("tbody",{className:r("divide-y divide-border",t),"data-streamdown":"table-body",...n,children:e})},(e,t)=>E(e,t));Oo.displayName="MarkdownTbody";var Vo=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("tr",{className:r("border-border",t),"data-streamdown":"table-row",...n,children:e})},(e,t)=>E(e,t));Vo.displayName="MarkdownTr";var jo=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("th",{className:r("whitespace-nowrap px-4 py-2 text-left font-semibold text-sm",t),"data-streamdown":"table-header-cell",...n,children:e})},(e,t)=>E(e,t));jo.displayName="MarkdownTh";var Fo=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("td",{className:r("px-4 py-2 text-sm",t),"data-streamdown":"table-cell",...n,children:e})},(e,t)=>E(e,t));Fo.displayName="MarkdownTd";var zo=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("blockquote",{className:r("my-4 border-muted-foreground/30 border-l-4 pl-4 text-muted-foreground italic",t),"data-streamdown":"blockquote",...n,children:e})},(e,t)=>E(e,t));zo.displayName="MarkdownBlockquote";var _o=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("sup",{className:r("text-sm",t),"data-streamdown":"superscript",...n,children:e})},(e,t)=>E(e,t));_o.displayName="MarkdownSup";var qo=memo(({children:e,className:t,node:o,...n})=>{let r=y();return jsx$1("sub",{className:r("text-sm",t),"data-streamdown":"subscript",...n,children:e})},(e,t)=>E(e,t));qo.displayName="MarkdownSub";var $o=memo(({children:e,className:t,node:o,...n})=>{if("data-footnotes"in n){let s=i=>{var m,p;if(!isValidElement(i))return false;let c=Array.isArray(i.props.children)?i.props.children:[i.props.children],d=false,u=false;for(let g of c)if(g){if(typeof g=="string")g.trim()!==""&&(d=true);else if(isValidElement(g))if(((m=g.props)==null?void 0:m["data-footnote-backref"])!==void 0)u=true;else {let h=Array.isArray(g.props.children)?g.props.children:[g.props.children];for(let b of h){if(typeof b=="string"&&b.trim()!==""){d=true;break}if(isValidElement(b)&&((p=b.props)==null?void 0:p["data-footnote-backref"])===void 0){d=true;break}}}}return u&&!d},a=Array.isArray(e)?e.map(i=>{if(!isValidElement(i))return i;if(i.type===gt){let d=(Array.isArray(i.props.children)?i.props.children:[i.props.children]).filter(u=>!s(u));return d.length===0?null:{...i,props:{...i.props,children:d}}}return i}):e;return (Array.isArray(a)?a.some(i=>i!==null):a!==null)?jsx$1("section",{className:t,...n,children:a}):null}return jsx$1("section",{className:t,...n,children:e})},(e,t)=>E(e,t));$o.displayName="MarkdownSection";var ts=({node:e,className:t,children:o,...n})=>{var k,I;let r=y(),s=!("data-block"in n),{mermaid:a,controls:l}=useContext(R),i=de(),c=et(),d=t==null?void 0:t.match(Qr),u=(k=d==null?void 0:d.at(1))!=null?k:"",m=so(u);if(s)return jsx$1("code",{className:r("rounded bg-muted px-1.5 py-0.5 font-mono text-sm",t),"data-streamdown":"inline-code",...n,children:o});let p=(I=e==null?void 0:e.properties)==null?void 0:I.metastring,g=p==null?void 0:p.match(Gr),h=g?Number.parseInt(g[1],10):void 0,b=h!==void 0&&h>=1?h:void 0,f="";if(isValidElement(o)&&o.props&&typeof o.props=="object"&&"children"in o.props&&typeof o.props.children=="string"?f=o.props.children:typeof o=="string"&&(f=o),m){let H=m.component;return jsx$1(Suspense,{fallback:jsx$1(Ae,{}),children:jsx$1(H,{code:f,isIncomplete:c,language:u})})}if(u==="mermaid"&&i){let H=pt(l,"mermaid"),S=je(l,"download"),F=je(l,"copy"),z=je(l,"fullscreen"),q=je(l,"panZoom"),A=H&&(S||F||z);return jsx$1(Suspense,{fallback:jsx$1(Ae,{}),children:jsxs$1("div",{className:r("group relative my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2",t),"data-streamdown":"mermaid-block",children:[jsx$1("div",{className:r("flex h-8 items-center text-muted-foreground text-xs"),children:jsx$1("span",{className:r("ml-1 font-mono lowercase"),children:"mermaid"})}),A?jsx$1("div",{className:r("pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end"),children:jsxs$1("div",{className:r("pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur"),"data-streamdown":"mermaid-block-actions",children:[S?jsx$1(lo,{chart:f,config:a==null?void 0:a.config}):null,F?jsx$1(Be,{code:f}):null,z?jsx$1(po,{chart:f,config:a==null?void 0:a.config}):null]})}):null,jsx$1("div",{className:r("rounded-md border border-border bg-background"),children:jsx$1(Yr,{chart:f,config:a==null?void 0:a.config,showControls:q})})]})})}let T=pt(l,"code"),x=xo(l,"download"),w=xo(l,"copy");return jsx$1(rt,{className:t,code:f,isIncomplete:c,language:u,startLine:b,children:T?jsxs$1(Fragment,{children:[x?jsx$1(at,{code:f,language:u}):null,w?jsx$1(Be,{}):null]}):null})},Wo=memo(ts,(e,t)=>e.className===t.className&&_e(e.node,t.node));Wo.displayName="MarkdownCode";var Zo=memo(to,(e,t)=>e.className===t.className&&_e(e.node,t.node));Zo.displayName="MarkdownImg";var Xo=memo(({children:e,node:t,...o})=>{let r=(Array.isArray(e)?e:[e]).filter(s=>s!=null&&s!=="");if(r.length===1&&isValidElement(r[0])){let s=r[0].props.node,a=s==null?void 0:s.tagName;if(a==="img")return jsx$1(Fragment,{children:e});if(a==="code"&&"data-block"in r[0].props)return jsx$1(Fragment,{children:e})}return jsx$1("p",{...o,children:e})},(e,t)=>E(e,t));Xo.displayName="MarkdownParagraph";var Jo={ol:gt,li:To,ul:Po,hr:Mo,strong:Io,a:No,h1:Lo,h2:Ro,h3:So,h4:Eo,h5:Ho,h6:Do,table:Bo,thead:Ao,tbody:Oo,tr:Vo,th:jo,td:Fo,blockquote:zo,code:Wo,img:Zo,pre:({children:e})=>isValidElement(e)?cloneElement(e,{"data-block":"true"}):e,sup:_o,sub:qo,p:Xo,section:$o};var os=/[\u0590-\u08FF\uFB1D-\uFDFF\uFE70-\uFEFF]/,ns=/\p{L}/u;function qe(e){let t=e.replace(/^#{1,6}\s+/gm,"").replace(/(\*{1,3}|_{1,3})/g,"").replace(/`[^`]*`/g,"").replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/^[\s>*\-+\d.]+/gm,"");for(let o of t){if(os.test(o))return "rtl";if(ns.test(o))return "ltr"}return "ltr"}var rs=/^[ \t]{0,3}(`{3,}|~{3,})/,ss=/^\|?[ \t]*:?-{1,}:?[ \t]*(\|[ \t]*:?-{1,}:?[ \t]*)*\|?$/,bt=e=>{let t=e.split(`
|
|
51283
51299
|
`),o=null,n=0;for(let r of t){let s=rs.exec(r);if(o===null){if(s){let a=s[1];o=a[0],n=a.length;}}else if(s){let a=s[1],l=a[0],i=a.length;l===o&&i>=n&&(o=null,n=0);}}return o!==null},Ko=e=>{let t=e.split(`
|
|
51284
51300
|
`);for(let o of t){let n=o.trim();if(n.length>0&&n.includes("|")&&ss.test(n))return true}return false};var Uo=()=>e=>{visit(e,"html",(t,o,n)=>{!n||typeof o!="number"||(n.children[o]={type:"text",value:t.value});});};var Yo=[],Qo={allowDangerousHtml:true},$e=new WeakMap,yt=class{constructor(){this.cache=new Map;this.keyCache=new WeakMap;this.maxSize=100;}generateCacheKey(t){let o=this.keyCache.get(t);if(o)return o;let n=t.rehypePlugins,r=t.remarkPlugins,s=t.remarkRehypeOptions;if(!(n||r||s)){let u="default";return this.keyCache.set(t,u),u}let a=u=>{if(!u||u.length===0)return "";let m="";for(let p=0;p<u.length;p+=1){let g=u[p];if(p>0&&(m+=","),Array.isArray(g)){let[h,b]=g;if(typeof h=="function"){let f=$e.get(h);f||(f=h.name,$e.set(h,f)),m+=f;}else m+=String(h);m+=":",m+=JSON.stringify(b);}else if(typeof g=="function"){let h=$e.get(g);h||(h=g.name,$e.set(g,h)),m+=h;}else m+=String(g);}return m},l=a(n),i=a(r),c=s?JSON.stringify(s):"",d=`${i}::${l}::${c}`;return this.keyCache.set(t,d),d}get(t){let o=this.generateCacheKey(t),n=this.cache.get(o);return n&&(this.cache.delete(o),this.cache.set(o,n)),n}set(t,o){let n=this.generateCacheKey(t);if(this.cache.size>=this.maxSize){let r=this.cache.keys().next().value;r&&this.cache.delete(r);}this.cache.set(n,o);}clear(){this.cache.clear();}},en=new yt,wt=e=>{let t=gs(e),o=e.children||"",n=t.runSync(t.parse(o),o);return ks(n,e)},gs=e=>{let t=en.get(e);if(t)return t;let o=hs(e);return en.set(e,o),o},bs=e=>e.some(t=>Array.isArray(t)?t[0]===rehypeRaw:t===rehypeRaw),hs=e=>{let t=e.rehypePlugins||Yo,o=e.remarkPlugins||Yo,n=bs(t)?o:[...o,Uo],r=e.remarkRehypeOptions?{...Qo,...e.remarkRehypeOptions}:Qo;return unified().use(remarkParse).use(n).use(remarkRehype,r).use(t)},tn=e=>e,ys=(e,t,o,n)=>{o?e.children.splice(t,1):e.children[t]={type:"text",value:n};},ws=(e,t)=>{var o;for(let n in urlAttributes)if(Object.hasOwn(urlAttributes,n)&&Object.hasOwn(e.properties,n)){let r=e.properties[n],s=urlAttributes[n];(s===null||s.includes(e.tagName))&&(e.properties[n]=(o=t(String(r||""),n,e))!=null?o:void 0);}},Cs=(e,t,o,n,r,s)=>{let a=false;return n?a=!n.includes(e.tagName):r&&(a=r.includes(e.tagName)),!a&&s&&typeof t=="number"&&(a=!s(e,t,o)),a},ks=(e,t)=>{let{allowElement:o,allowedElements:n,disallowedElements:r,skipHtml:s,unwrapDisallowed:a,urlTransform:l}=t;if(o||n||r||s||l){let c=l||tn;visit(e,(d,u,m)=>{if(d.type==="raw"&&m&&typeof u=="number")return ys(m,u,s,d.value),u;if(d.type==="element"&&(ws(d,c),Cs(d,u,m,n,r,o)&&m&&typeof u=="number"))return a&&d.children?m.children.splice(u,1,...d.children):m.children.splice(u,1),u});}return toJsxRuntime(e,{Fragment:Fragment,components:t.components,ignoreInvalidStyle:true,jsx:jsx$1,jsxs:jsxs$1,passKeys:true,passNode:true})};var xs=/\[\^[\w-]{1,200}\](?!:)/,Ts=/\[\^[\w-]{1,200}\]:/;var Ps=/<(\w+)[\s>]/,Ms=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),on=new Map,nn=new Map,Is=e=>{let t=e.toLowerCase(),o=on.get(t);if(o)return o;let n=new RegExp(`<${t}(?=[\\s>/])[^>]*>`,"gi");return on.set(t,n),n},Ns=e=>{let t=e.toLowerCase(),o=nn.get(t);if(o)return o;let n=new RegExp(`</${t}(?=[\\s>])[^>]*>`,"gi");return nn.set(t,n),n},rn=(e,t)=>{if(Ms.has(t.toLowerCase()))return 0;let o=e.match(Is(t));if(!o)return 0;let n=0;for(let r of o)r.trimEnd().endsWith("/>")||(n+=1);return n},sn=(e,t)=>{let o=e.match(Ns(t));return o?o.length:0},Ls=e=>{let t=0;for(let o=0;o<e.length-1;o+=1)e[o]==="$"&&e[o+1]==="$"&&(t+=1,o+=1);return t},Ct=e=>{let t=xs.test(e),o=Ts.test(e);if(t||o)return [e];let n=x.lex(e,{gfm:true}),r=[],s=[],a=false;for(let l of n){let i=l.raw,c=r.length;if(s.length>0){r[c-1]+=i;let d=s.at(-1),u=rn(i,d),m=sn(i,d);for(let p=0;p<u;p+=1)s.push(d);for(let p=0;p<m;p+=1)s.length>0&&s.at(-1)===d&&s.pop();continue}if(l.type==="html"&&l.block){let d=i.match(Ps);if(d){let u=d[1],m=rn(i,u),p=sn(i,u);m>p&&s.push(u);}}if(c>0&&!a){let d=r[c-1];if(Ls(d)%2===1){r[c-1]=d+i;continue}}r.push(i),l.type!=="space"&&(a=l.type==="code");}return r};var an=(e,t)=>{if(!t.length)return e;let o=e;for(let n of t){let r=new RegExp(`(<${n}(?=[\\s>/])[^>]*>)([\\s\\S]*?)(</${n}\\s*>)`,"gi");o=o.replace(r,(s,a,l,i)=>{let c=l.replace(/\n\n/g,`
|
|
51285
51301
|
<!---->
|
|
@@ -51375,10 +51391,33 @@ var deleteThread = function (baseUrl, headers, threadId) { return __awaiter(void
|
|
|
51375
51391
|
return [2 /*return*/];
|
|
51376
51392
|
}
|
|
51377
51393
|
});
|
|
51378
|
-
}); };
|
|
51394
|
+
}); };
|
|
51395
|
+
|
|
51396
|
+
var snapshotInlineErrors = function (state) {
|
|
51397
|
+
var e_1, _a;
|
|
51398
|
+
var _b, _c;
|
|
51399
|
+
var out = {};
|
|
51400
|
+
var inlineErrors = (_b = state === null || state === void 0 ? void 0 : state.inlineErrors) !== null && _b !== void 0 ? _b : {};
|
|
51401
|
+
try {
|
|
51402
|
+
for (var _d = __values(Object.keys(inlineErrors)), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
51403
|
+
var key = _e.value;
|
|
51404
|
+
var message = (_c = inlineErrors[key]) === null || _c === void 0 ? void 0 : _c.message;
|
|
51405
|
+
if (typeof message === 'string' && message.length > 0)
|
|
51406
|
+
out[key] = message;
|
|
51407
|
+
}
|
|
51408
|
+
}
|
|
51409
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
51410
|
+
finally {
|
|
51411
|
+
try {
|
|
51412
|
+
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
51413
|
+
}
|
|
51414
|
+
finally { if (e_1) throw e_1.error; }
|
|
51415
|
+
}
|
|
51416
|
+
return out;
|
|
51417
|
+
};
|
|
51379
51418
|
// Subgrids whose position is a strict prefix of `position` (callers pre-filter to those whose handler does anything), innermost first.
|
|
51380
51419
|
var findClickableAncestorSubgrids = function (subgrids, position) {
|
|
51381
|
-
var
|
|
51420
|
+
var e_2, _a;
|
|
51382
51421
|
if (!Array.isArray(subgrids) ||
|
|
51383
51422
|
!Array.isArray(position) ||
|
|
51384
51423
|
position.length === 0)
|
|
@@ -51402,15 +51441,122 @@ var findClickableAncestorSubgrids = function (subgrids, position) {
|
|
|
51402
51441
|
matches.push(sg);
|
|
51403
51442
|
}
|
|
51404
51443
|
}
|
|
51405
|
-
catch (
|
|
51444
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
51406
51445
|
finally {
|
|
51407
51446
|
try {
|
|
51408
51447
|
if (subgrids_1_1 && !subgrids_1_1.done && (_a = subgrids_1.return)) _a.call(subgrids_1);
|
|
51409
51448
|
}
|
|
51410
|
-
finally { if (
|
|
51449
|
+
finally { if (e_2) throw e_2.error; }
|
|
51411
51450
|
}
|
|
51412
51451
|
matches.sort(function (a, b) { return b.position.length - a.position.length; });
|
|
51413
51452
|
return matches;
|
|
51453
|
+
};
|
|
51454
|
+
function validateRepeatIndex(repeatIndex, inRepeat, rowCount, id) {
|
|
51455
|
+
if (!inRepeat) {
|
|
51456
|
+
if (typeof repeatIndex === 'number') {
|
|
51457
|
+
return {
|
|
51458
|
+
errorType: 'repeated_index_unexpected',
|
|
51459
|
+
error: "'".concat(id, "' is not in a repeated container; do not pass repeatIndex.")
|
|
51460
|
+
};
|
|
51461
|
+
}
|
|
51462
|
+
return null;
|
|
51463
|
+
}
|
|
51464
|
+
if (typeof repeatIndex !== 'number') {
|
|
51465
|
+
var range = rowCount === 0 ? '(none yet - add a row first)' : "0..".concat(rowCount - 1);
|
|
51466
|
+
return {
|
|
51467
|
+
errorType: 'repeated_index_missing',
|
|
51468
|
+
error: "'".concat(id, "' is in a repeated container; pass repeatIndex ").concat(range, ".")
|
|
51469
|
+
};
|
|
51470
|
+
}
|
|
51471
|
+
if (repeatIndex < 0 || repeatIndex >= rowCount) {
|
|
51472
|
+
return {
|
|
51473
|
+
errorType: 'repeated_index_out_of_range',
|
|
51474
|
+
error: "repeatIndex ".concat(repeatIndex, " is out of range for '").concat(id, "' (rowCount ").concat(rowCount, ").")
|
|
51475
|
+
};
|
|
51476
|
+
}
|
|
51477
|
+
return null;
|
|
51478
|
+
}
|
|
51479
|
+
var findTableOnCurrentStep = function (formUuid, tableId) {
|
|
51480
|
+
var _a, _b, _c, _d, _e;
|
|
51481
|
+
if (!formUuid) {
|
|
51482
|
+
return {
|
|
51483
|
+
ok: false,
|
|
51484
|
+
errorType: 'no_form_state',
|
|
51485
|
+
error: 'Form has not loaded yet.'
|
|
51486
|
+
};
|
|
51487
|
+
}
|
|
51488
|
+
var state = internalState[formUuid];
|
|
51489
|
+
if (!state || !state.currentStep || !state.assistantClient) {
|
|
51490
|
+
return {
|
|
51491
|
+
ok: false,
|
|
51492
|
+
errorType: 'no_form_state',
|
|
51493
|
+
error: 'Form has not loaded yet.'
|
|
51494
|
+
};
|
|
51495
|
+
}
|
|
51496
|
+
if (typeof tableId !== 'string' || tableId.length === 0) {
|
|
51497
|
+
return {
|
|
51498
|
+
ok: false,
|
|
51499
|
+
errorType: 'shape_mismatch',
|
|
51500
|
+
error: 'tableId is required.'
|
|
51501
|
+
};
|
|
51502
|
+
}
|
|
51503
|
+
var table = ((_a = state.currentStep.tables) !== null && _a !== void 0 ? _a : []).find(function (t) { return (t === null || t === void 0 ? void 0 : t.id) === tableId; });
|
|
51504
|
+
if (!table) {
|
|
51505
|
+
return {
|
|
51506
|
+
ok: false,
|
|
51507
|
+
errorType: 'not_on_step',
|
|
51508
|
+
error: "Table '".concat(tableId, "' is not on the current step.")
|
|
51509
|
+
};
|
|
51510
|
+
}
|
|
51511
|
+
var flags = (_b = state.visiblePositions) === null || _b === void 0 ? void 0 : _b[(_c = getPositionKey(table)) !== null && _c !== void 0 ? _c : 'root'];
|
|
51512
|
+
if (Array.isArray(flags) && !flags.some(Boolean)) {
|
|
51513
|
+
return {
|
|
51514
|
+
ok: false,
|
|
51515
|
+
errorType: 'hidden',
|
|
51516
|
+
error: "Table '".concat(tableId, "' is on the current step but is hidden right now.")
|
|
51517
|
+
};
|
|
51518
|
+
}
|
|
51519
|
+
var columns = Array.isArray((_d = table === null || table === void 0 ? void 0 : table.properties) === null || _d === void 0 ? void 0 : _d.columns)
|
|
51520
|
+
? table.properties.columns
|
|
51521
|
+
: [];
|
|
51522
|
+
var fieldsMap = (_e = state.fields) !== null && _e !== void 0 ? _e : {};
|
|
51523
|
+
var rowCount = columns.reduce(function (max, col) {
|
|
51524
|
+
var _a;
|
|
51525
|
+
var v = (col === null || col === void 0 ? void 0 : col.field_key) ? (_a = fieldsMap[col.field_key]) === null || _a === void 0 ? void 0 : _a.value : undefined;
|
|
51526
|
+
return Array.isArray(v) ? Math.max(max, v.length) : max;
|
|
51527
|
+
}, 0);
|
|
51528
|
+
return { ok: true, found: { state: state, table: table, columns: columns, rowCount: rowCount } };
|
|
51529
|
+
};
|
|
51530
|
+
var getTableCapabilities = function (table, rowCount) {
|
|
51531
|
+
var _a;
|
|
51532
|
+
var props = (_a = table === null || table === void 0 ? void 0 : table.properties) !== null && _a !== void 0 ? _a : {};
|
|
51533
|
+
// A transpose table with zero rows renders un-transposed, so it stays editable
|
|
51534
|
+
var canEditCells = !!props.enable_editing && !(props.transpose && rowCount > 0);
|
|
51535
|
+
var addDelete = canEditCells && !!props.add_delete_rows;
|
|
51536
|
+
return { canEditCells: canEditCells, canAddRows: addDelete, canDeleteRows: addDelete };
|
|
51537
|
+
};
|
|
51538
|
+
var buildRowData = function (found, rowIndex) {
|
|
51539
|
+
var e_3, _a;
|
|
51540
|
+
var _b, _c;
|
|
51541
|
+
var rowData = {};
|
|
51542
|
+
try {
|
|
51543
|
+
for (var _d = __values(found.columns), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
51544
|
+
var col = _e.value;
|
|
51545
|
+
if (!(col === null || col === void 0 ? void 0 : col.field_key))
|
|
51546
|
+
continue;
|
|
51547
|
+
var v = (_c = (_b = found.state.fields) === null || _b === void 0 ? void 0 : _b[col.field_key]) === null || _c === void 0 ? void 0 : _c.value;
|
|
51548
|
+
var cValue = Array.isArray(v) ? v[rowIndex] : v;
|
|
51549
|
+
rowData[col.name] = cValue;
|
|
51550
|
+
}
|
|
51551
|
+
}
|
|
51552
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
51553
|
+
finally {
|
|
51554
|
+
try {
|
|
51555
|
+
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
51556
|
+
}
|
|
51557
|
+
finally { if (e_3) throw e_3.error; }
|
|
51558
|
+
}
|
|
51559
|
+
return rowData;
|
|
51414
51560
|
};
|
|
51415
51561
|
|
|
51416
51562
|
var extractRawText = function (props) {
|
|
@@ -51476,9 +51622,19 @@ var getPanelRuntimeSnapshot = function (formId) {
|
|
|
51476
51622
|
var findClickableAncestorIds = function (el) {
|
|
51477
51623
|
return findClickableAncestorSubgrids(clickableSubgrids, Array.isArray(el === null || el === void 0 ? void 0 : el.position) ? el.position : []).map(function (sg) { var _a; return (_a = sg.id) !== null && _a !== void 0 ? _a : ''; });
|
|
51478
51624
|
};
|
|
51625
|
+
// Match the renderer (fields + text-variable arrays) by reading the same flags it builds
|
|
51626
|
+
var rowCountByContainer = {};
|
|
51627
|
+
getRepeatedContainers(step).forEach(function (container) {
|
|
51628
|
+
var id = container === null || container === void 0 ? void 0 : container.id;
|
|
51629
|
+
if (!id)
|
|
51630
|
+
return;
|
|
51631
|
+
var flags = visiblePositions[getPositionKey(container)];
|
|
51632
|
+
if (Array.isArray(flags))
|
|
51633
|
+
rowCountByContainer[id] = flags.length;
|
|
51634
|
+
});
|
|
51479
51635
|
// Build per-field entries for the current step
|
|
51480
51636
|
var currentStepFields = ((_h = step.servar_fields) !== null && _h !== void 0 ? _h : []).map(function (field) {
|
|
51481
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
51637
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
51482
51638
|
var positionKey = ((_a = field.position) === null || _a === void 0 ? void 0 : _a.join(',')) || 'root';
|
|
51483
51639
|
var visibilityFlags = visiblePositions[positionKey];
|
|
51484
51640
|
var visible = Array.isArray(visibilityFlags)
|
|
@@ -51495,6 +51651,11 @@ var getPanelRuntimeSnapshot = function (formId) {
|
|
|
51495
51651
|
var error = (_c = inlineErrors[field.servar.key]) === null || _c === void 0 ? void 0 : _c.message;
|
|
51496
51652
|
var servar = (_d = field.servar) !== null && _d !== void 0 ? _d : {};
|
|
51497
51653
|
var meta = (_e = servar.metadata) !== null && _e !== void 0 ? _e : {};
|
|
51654
|
+
var repeated = !!servar.repeated;
|
|
51655
|
+
var repeatAncestor = repeated
|
|
51656
|
+
? getRepeatedContainer(step, field)
|
|
51657
|
+
: undefined;
|
|
51658
|
+
var repeatAncestorId = (_f = repeatAncestor === null || repeatAncestor === void 0 ? void 0 : repeatAncestor.id) !== null && _f !== void 0 ? _f : '';
|
|
51498
51659
|
var rawOptions = Array.isArray(meta.options) ? meta.options : null;
|
|
51499
51660
|
var rawLabels = Array.isArray(meta.labels) ? meta.labels : [];
|
|
51500
51661
|
var options = rawOptions
|
|
@@ -51506,6 +51667,26 @@ var getPanelRuntimeSnapshot = function (formId) {
|
|
|
51506
51667
|
});
|
|
51507
51668
|
})
|
|
51508
51669
|
: undefined;
|
|
51670
|
+
// Per-row option overrides for repeated choice fields
|
|
51671
|
+
var rawRowOptions = Array.isArray(meta.repeat_options)
|
|
51672
|
+
? meta.repeat_options.map(function (row) {
|
|
51673
|
+
return Array.isArray(row)
|
|
51674
|
+
? row.map(function (o) {
|
|
51675
|
+
var _a, _b, _c, _d, _e;
|
|
51676
|
+
return ({
|
|
51677
|
+
value: String((_b = (_a = o === null || o === void 0 ? void 0 : o.value) !== null && _a !== void 0 ? _a : o) !== null && _b !== void 0 ? _b : ''),
|
|
51678
|
+
label: String((_e = (_d = (_c = o === null || o === void 0 ? void 0 : o.label) !== null && _c !== void 0 ? _c : o === null || o === void 0 ? void 0 : o.value) !== null && _d !== void 0 ? _d : o) !== null && _e !== void 0 ? _e : '')
|
|
51679
|
+
});
|
|
51680
|
+
})
|
|
51681
|
+
: null;
|
|
51682
|
+
})
|
|
51683
|
+
: undefined;
|
|
51684
|
+
var padTarget = (_h = (_g = rowCountByContainer[repeatAncestorId]) !== null && _g !== void 0 ? _g : rawRowOptions === null || rawRowOptions === void 0 ? void 0 : rawRowOptions.length) !== null && _h !== void 0 ? _h : 0;
|
|
51685
|
+
var rowOptions = rawRowOptions
|
|
51686
|
+
? Array.from({ length: padTarget }, function (_, i) {
|
|
51687
|
+
return Array.isArray(rawRowOptions[i]) ? rawRowOptions[i] : null;
|
|
51688
|
+
})
|
|
51689
|
+
: undefined;
|
|
51509
51690
|
var rawQuestions = Array.isArray(meta.questions) ? meta.questions : null;
|
|
51510
51691
|
var questions = rawQuestions
|
|
51511
51692
|
? rawQuestions
|
|
@@ -51524,9 +51705,20 @@ var getPanelRuntimeSnapshot = function (formId) {
|
|
|
51524
51705
|
var sliderLabels = meta.min_val_label || meta.max_val_label
|
|
51525
51706
|
? __assign(__assign({}, (meta.min_val_label ? { min: String(meta.min_val_label) } : {})), (meta.max_val_label ? { max: String(meta.max_val_label) } : {})) : undefined;
|
|
51526
51707
|
var disabled = !!(props.disabled || formReadOnly);
|
|
51527
|
-
var hasLogicRules = elementHasLogicRules(logicRules, 'change', step.id, (
|
|
51708
|
+
var hasLogicRules = elementHasLogicRules(logicRules, 'change', step.id, (_j = servar.id) !== null && _j !== void 0 ? _j : '');
|
|
51528
51709
|
var clickableAncestorIds = findClickableAncestorIds(field);
|
|
51529
|
-
|
|
51710
|
+
var value = (_k = fieldEntity === null || fieldEntity === void 0 ? void 0 : fieldEntity.value) !== null && _k !== void 0 ? _k : null;
|
|
51711
|
+
var rowCount = repeated
|
|
51712
|
+
? (_l = rowCountByContainer[repeatAncestorId]) !== null && _l !== void 0 ? _l : (Array.isArray(value) ? value.length : 0)
|
|
51713
|
+
: undefined;
|
|
51714
|
+
// Pad to rowCount so trailing rendered-but-unwritten rows read as blank
|
|
51715
|
+
if (typeof rowCount === 'number' && rowCount > 0) {
|
|
51716
|
+
var base = Array.isArray(value) ? value : [];
|
|
51717
|
+
if (base.length < rowCount) {
|
|
51718
|
+
value = __spreadArray(__spreadArray([], __read(base), false), __read(Array(rowCount - base.length).fill(getDefaultFieldValue(field))), false);
|
|
51719
|
+
}
|
|
51720
|
+
}
|
|
51721
|
+
return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ key: servar.key, type: servar.type, value: value, visible: visible, disabled: disabled, required: !!servar.required }, (typeof rowCount === 'number' ? { rowCount: rowCount } : {})), ((repeatAncestor === null || repeatAncestor === void 0 ? void 0 : repeatAncestor.id) ? { repeatContainerId: repeatAncestor.id } : {})), (hasLogicRules ? { hasLogicRules: true } : {})), (clickableAncestorIds.length > 0 ? { clickableAncestorIds: clickableAncestorIds } : {})), (placeholder ? { placeholder: placeholder } : {})), (tooltip ? { tooltip: tooltip } : {})), (error ? { error: error } : {})), (options ? { options: options } : {})), (rowOptions ? { rowOptions: rowOptions } : {})), (questions ? { questions: questions } : {})), (typeof servar.min_length === 'number'
|
|
51530
51722
|
? { minLength: servar.min_length }
|
|
51531
51723
|
: {})), (typeof servar.max_length === 'number'
|
|
51532
51724
|
? { maxLength: servar.max_length }
|
|
@@ -51593,14 +51785,20 @@ var getPanelRuntimeSnapshot = function (formId) {
|
|
|
51593
51785
|
return Array.isArray(flags) ? flags.some(Boolean) : true;
|
|
51594
51786
|
};
|
|
51595
51787
|
clickableSubgrids.forEach(function (sg) {
|
|
51596
|
-
var _a, _b;
|
|
51788
|
+
var _a, _b, _c;
|
|
51597
51789
|
var actions = sg.properties.actions;
|
|
51598
51790
|
var hasLogicRules = elementHasLogicRules(logicRules, 'action', step.id, (_a = sg.id) !== null && _a !== void 0 ? _a : '');
|
|
51599
51791
|
var clickableAncestorIds = findClickableAncestorIds(sg);
|
|
51600
|
-
|
|
51792
|
+
// A repeated subgrid is its own repeat container (one clickable instance per row)
|
|
51793
|
+
var containerRepeatContainer = !sg.repeated
|
|
51794
|
+
? (_b = getRepeatedContainer(step, sg)) === null || _b === void 0 ? void 0 : _b.id
|
|
51795
|
+
: sg.id;
|
|
51796
|
+
currentStepElements.push(__assign(__assign(__assign({ type: 'container', id: (_c = sg.id) !== null && _c !== void 0 ? _c : '', visible: visibilityFor(sg), actions: actions }, (hasLogicRules ? { hasLogicRules: true } : {})), (clickableAncestorIds.length > 0 ? { clickableAncestorIds: clickableAncestorIds } : {})), (containerRepeatContainer
|
|
51797
|
+
? { repeatContainerId: containerRepeatContainer }
|
|
51798
|
+
: {})));
|
|
51601
51799
|
});
|
|
51602
51800
|
((_o = step.texts) !== null && _o !== void 0 ? _o : []).forEach(function (el) {
|
|
51603
|
-
var _a, _b, _c;
|
|
51801
|
+
var _a, _b, _c, _d;
|
|
51604
51802
|
var raw = extractRawText((_a = el === null || el === void 0 ? void 0 : el.properties) !== null && _a !== void 0 ? _a : {});
|
|
51605
51803
|
if (!raw)
|
|
51606
51804
|
return;
|
|
@@ -51609,13 +51807,12 @@ var getPanelRuntimeSnapshot = function (formId) {
|
|
|
51609
51807
|
var actions = Array.isArray(props.actions) ? props.actions : [];
|
|
51610
51808
|
var hasLogicRules = elementHasLogicRules(logicRules, 'action', step.id, (_c = el.id) !== null && _c !== void 0 ? _c : '');
|
|
51611
51809
|
var clickableAncestorIds = findClickableAncestorIds(el);
|
|
51612
|
-
|
|
51810
|
+
var textRepeatContainer = (_d = getRepeatedContainer(step, el)) === null || _d === void 0 ? void 0 : _d.id;
|
|
51811
|
+
currentStepElements.push(__assign(__assign(__assign(__assign(__assign(__assign({ type: 'text', text: resolved, visible: visibilityFor(el) }, (el.id ? { id: el.id } : {})), (raw !== resolved ? { templateText: raw } : {})), (actions.length > 0 ? { actions: actions } : {})), (hasLogicRules ? { hasLogicRules: true } : {})), (clickableAncestorIds.length > 0 ? { clickableAncestorIds: clickableAncestorIds } : {})), (textRepeatContainer ? { repeatContainerId: textRepeatContainer } : {})));
|
|
51613
51812
|
});
|
|
51614
51813
|
((_p = step.buttons) !== null && _p !== void 0 ? _p : []).forEach(function (el) {
|
|
51615
|
-
var _a, _b, _c, _d;
|
|
51814
|
+
var _a, _b, _c, _d, _e;
|
|
51616
51815
|
var raw = extractRawText((_a = el === null || el === void 0 ? void 0 : el.properties) !== null && _a !== void 0 ? _a : {});
|
|
51617
|
-
if (!raw)
|
|
51618
|
-
return;
|
|
51619
51816
|
var props = (_b = el === null || el === void 0 ? void 0 : el.properties) !== null && _b !== void 0 ? _b : {};
|
|
51620
51817
|
var actions = Array.isArray(props.actions) ? props.actions : [];
|
|
51621
51818
|
// submit-flagged buttons also fire submit-trigger and form_complete-trigger rules on this step
|
|
@@ -51623,7 +51820,12 @@ var getPanelRuntimeSnapshot = function (formId) {
|
|
|
51623
51820
|
(!!props.submit &&
|
|
51624
51821
|
(elementHasLogicRules(logicRules, 'submit', step.id, '') ||
|
|
51625
51822
|
elementHasLogicRules(logicRules, 'form_complete', step.id, '')));
|
|
51626
|
-
|
|
51823
|
+
if (!raw && actions.length === 0 && !props.submit && !hasLogicRules)
|
|
51824
|
+
return;
|
|
51825
|
+
var buttonRepeatContainer = (_d = getRepeatedContainer(step, el)) === null || _d === void 0 ? void 0 : _d.id;
|
|
51826
|
+
currentStepElements.push(__assign(__assign({ type: 'button', id: (_e = el.id) !== null && _e !== void 0 ? _e : '', text: resolveText(raw), visible: visibilityFor(el), disabled: isButtonDisabled(el, step, visiblePositions, formReadOnly), submit: !!props.submit, actions: actions }, (hasLogicRules ? { hasLogicRules: true } : {})), (buttonRepeatContainer
|
|
51827
|
+
? { repeatContainerId: buttonRepeatContainer }
|
|
51828
|
+
: {})));
|
|
51627
51829
|
});
|
|
51628
51830
|
((_q = step.images) !== null && _q !== void 0 ? _q : []).forEach(function (el) {
|
|
51629
51831
|
var _a;
|
|
@@ -51644,7 +51846,7 @@ var getPanelRuntimeSnapshot = function (formId) {
|
|
|
51644
51846
|
// Collect tables with their column headers and row data
|
|
51645
51847
|
var currentStepTables = [];
|
|
51646
51848
|
((_s = step.tables) !== null && _s !== void 0 ? _s : []).forEach(function (el) {
|
|
51647
|
-
var _a, _b;
|
|
51849
|
+
var _a, _b, _c, _d, _e;
|
|
51648
51850
|
var cols = ((_b = (_a = el === null || el === void 0 ? void 0 : el.properties) === null || _a === void 0 ? void 0 : _a.columns) !== null && _b !== void 0 ? _b : []);
|
|
51649
51851
|
if (cols.length === 0)
|
|
51650
51852
|
return;
|
|
@@ -51660,17 +51862,21 @@ var getPanelRuntimeSnapshot = function (formId) {
|
|
|
51660
51862
|
return Array.isArray(v) ? (_b = v[i]) !== null && _b !== void 0 ? _b : null : v !== null && v !== void 0 ? v : null;
|
|
51661
51863
|
});
|
|
51662
51864
|
});
|
|
51663
|
-
|
|
51664
|
-
|
|
51865
|
+
var rawActions = Array.isArray((_c = el === null || el === void 0 ? void 0 : el.properties) === null || _c === void 0 ? void 0 : _c.actions)
|
|
51866
|
+
? el.properties.actions
|
|
51867
|
+
: [];
|
|
51868
|
+
var actions = rawActions
|
|
51869
|
+
.map(function (a) { return ({ label: typeof (a === null || a === void 0 ? void 0 : a.label) === 'string' ? a.label : '' }); })
|
|
51870
|
+
.filter(function (a) { return a.label.trim().length > 0; });
|
|
51871
|
+
var _f = getTableCapabilities(el, numRows), canEditCells = _f.canEditCells, canAddRows = _f.canAddRows, canDeleteRows = _f.canDeleteRows;
|
|
51872
|
+
var hasLogicRules = elementHasLogicRules(logicRules, 'action', step.id, (_d = el.id) !== null && _d !== void 0 ? _d : '');
|
|
51873
|
+
currentStepTables.push(__assign(__assign(__assign(__assign(__assign(__assign({ id: (_e = el.id) !== null && _e !== void 0 ? _e : '', columns: cols.map(function (c) {
|
|
51665
51874
|
var _a, _b, _c;
|
|
51666
51875
|
return ({
|
|
51667
51876
|
name: (_b = (_a = c.name) !== null && _a !== void 0 ? _a : c.field_key) !== null && _b !== void 0 ? _b : '',
|
|
51668
51877
|
fieldKey: (_c = c.field_key) !== null && _c !== void 0 ? _c : ''
|
|
51669
51878
|
});
|
|
51670
|
-
}),
|
|
51671
|
-
rows: rows,
|
|
51672
|
-
visible: visibilityFor(el)
|
|
51673
|
-
});
|
|
51879
|
+
}), rows: rows }, (actions.length > 0 ? { actions: actions } : {})), (canAddRows ? { canAddRows: true } : {})), (canDeleteRows ? { canDeleteRows: true } : {})), (canEditCells ? { canEditCells: true } : {})), (hasLogicRules ? { hasLogicRules: true } : {})), { visible: visibilityFor(el) }));
|
|
51674
51880
|
});
|
|
51675
51881
|
return {
|
|
51676
51882
|
currentStep: { id: step.id, key: step.key },
|
|
@@ -51709,102 +51915,164 @@ var MULTI_CHOICE_TYPES = new Set([
|
|
|
51709
51915
|
'checkbox_group',
|
|
51710
51916
|
'button_group'
|
|
51711
51917
|
]);
|
|
51712
|
-
function validateSetFieldValue(fieldKey, rawValue,
|
|
51713
|
-
var _a;
|
|
51714
|
-
var
|
|
51715
|
-
var
|
|
51716
|
-
|
|
51717
|
-
|
|
51918
|
+
function validateSetFieldValue(state, fieldKey, rawValue, repeatIndex) {
|
|
51919
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
51920
|
+
var currentStep = state === null || state === void 0 ? void 0 : state.currentStep;
|
|
51921
|
+
var stepFields = (_a = currentStep === null || currentStep === void 0 ? void 0 : currentStep.servar_fields) !== null && _a !== void 0 ? _a : [];
|
|
51922
|
+
var found = stepFields.find(function (f) { var _a; return ((_a = f === null || f === void 0 ? void 0 : f.servar) === null || _a === void 0 ? void 0 : _a.key) === fieldKey; });
|
|
51923
|
+
if (!found) {
|
|
51924
|
+
var available = stepFields
|
|
51925
|
+
.map(function (f) { var _a; return (_a = f === null || f === void 0 ? void 0 : f.servar) === null || _a === void 0 ? void 0 : _a.key; })
|
|
51926
|
+
.filter(Boolean)
|
|
51927
|
+
.join(', ') || '(none)';
|
|
51718
51928
|
return {
|
|
51719
51929
|
ok: false,
|
|
51720
51930
|
errorType: 'not_on_step',
|
|
51721
51931
|
error: "Field '".concat(fieldKey, "' is not on the current step. Available field keys here: ").concat(available, ".")
|
|
51722
51932
|
};
|
|
51723
51933
|
}
|
|
51724
|
-
|
|
51934
|
+
var servar = (_b = found.servar) !== null && _b !== void 0 ? _b : {};
|
|
51935
|
+
var type = servar.type;
|
|
51936
|
+
var visiblePositions = (_c = state.visiblePositions) !== null && _c !== void 0 ? _c : {};
|
|
51937
|
+
var flags = visiblePositions[(_d = getPositionKey(found)) !== null && _d !== void 0 ? _d : 'root'];
|
|
51938
|
+
if (Array.isArray(flags) && !flags.some(Boolean)) {
|
|
51725
51939
|
return {
|
|
51726
51940
|
ok: false,
|
|
51727
51941
|
errorType: 'hidden',
|
|
51728
51942
|
error: "Field '".concat(fieldKey, "' is on the current step but is hidden right now.")
|
|
51729
51943
|
};
|
|
51730
51944
|
}
|
|
51731
|
-
|
|
51945
|
+
var formReadOnly = !!(((_e = state.formSettings) === null || _e === void 0 ? void 0 : _e.readOnly) || initState.collaboratorReview === 'readOnly');
|
|
51946
|
+
if (((_f = found.properties) === null || _f === void 0 ? void 0 : _f.disabled) || formReadOnly) {
|
|
51732
51947
|
return {
|
|
51733
51948
|
ok: false,
|
|
51734
51949
|
errorType: 'disabled',
|
|
51735
51950
|
error: "Field '".concat(fieldKey, "' is disabled and cannot be written.")
|
|
51736
51951
|
};
|
|
51737
51952
|
}
|
|
51738
|
-
if (UNWRITABLE_TYPES.has(
|
|
51953
|
+
if (UNWRITABLE_TYPES.has(type)) {
|
|
51739
51954
|
return {
|
|
51740
51955
|
ok: false,
|
|
51741
51956
|
errorType: 'unwriteable_type',
|
|
51742
|
-
error: "Field '".concat(fieldKey, "' (").concat(
|
|
51957
|
+
error: "Field '".concat(fieldKey, "' (").concat(type, ") cannot be filled by the assistant; the user has to provide this themselves.")
|
|
51958
|
+
};
|
|
51959
|
+
}
|
|
51960
|
+
var repeatContainer = servar.repeated
|
|
51961
|
+
? getRepeatedContainer(currentStep, found)
|
|
51962
|
+
: undefined;
|
|
51963
|
+
var rowCount = repeatContainer
|
|
51964
|
+
? ((_h = visiblePositions[(_g = getPositionKey(repeatContainer)) !== null && _g !== void 0 ? _g : 'root']) !== null && _h !== void 0 ? _h : []).length
|
|
51965
|
+
: 0;
|
|
51966
|
+
var repeatFailure = validateRepeatIndex(repeatIndex, !!repeatContainer, rowCount, fieldKey);
|
|
51967
|
+
if (repeatFailure)
|
|
51968
|
+
return __assign({ ok: false }, repeatFailure);
|
|
51969
|
+
// Reject writes to a row hidden by a per-row rule
|
|
51970
|
+
if (typeof repeatIndex === 'number' &&
|
|
51971
|
+
Array.isArray(flags) &&
|
|
51972
|
+
!flags[repeatIndex]) {
|
|
51973
|
+
return {
|
|
51974
|
+
ok: false,
|
|
51975
|
+
errorType: 'hidden',
|
|
51976
|
+
error: "Row ".concat(repeatIndex, " of field '").concat(fieldKey, "' is hidden right now.")
|
|
51743
51977
|
};
|
|
51744
51978
|
}
|
|
51745
51979
|
// Phone numbers commonly arrive as numbers
|
|
51746
51980
|
var value = rawValue;
|
|
51747
|
-
if (
|
|
51981
|
+
if (type === 'phone_number' &&
|
|
51748
51982
|
typeof value === 'number' &&
|
|
51749
51983
|
Number.isFinite(value)) {
|
|
51750
51984
|
value = String(Math.trunc(value));
|
|
51751
51985
|
}
|
|
51752
51986
|
// Type and bound checks
|
|
51753
|
-
var shapeError = checkValueAgainstField(
|
|
51987
|
+
var shapeError = checkValueAgainstField(servar, value, repeatIndex);
|
|
51754
51988
|
if (shapeError)
|
|
51755
51989
|
return { ok: false, errorType: 'shape_mismatch', error: shapeError };
|
|
51756
|
-
return { ok: true, value: value };
|
|
51990
|
+
return { ok: true, field: found, servar: servar, value: value };
|
|
51757
51991
|
}
|
|
51758
|
-
function
|
|
51759
|
-
var _a
|
|
51992
|
+
function resolveOptions(servar, repeatIndex) {
|
|
51993
|
+
var _a;
|
|
51994
|
+
var meta = (_a = servar.metadata) !== null && _a !== void 0 ? _a : {};
|
|
51995
|
+
var rawRowOptions = Array.isArray(meta.repeat_options)
|
|
51996
|
+
? meta.repeat_options
|
|
51997
|
+
: null;
|
|
51998
|
+
if (typeof repeatIndex === 'number' &&
|
|
51999
|
+
rawRowOptions &&
|
|
52000
|
+
Array.isArray(rawRowOptions[repeatIndex])) {
|
|
52001
|
+
return rawRowOptions[repeatIndex].map(function (o) {
|
|
52002
|
+
var _a, _b, _c, _d, _e;
|
|
52003
|
+
return ({
|
|
52004
|
+
value: String((_b = (_a = o === null || o === void 0 ? void 0 : o.value) !== null && _a !== void 0 ? _a : o) !== null && _b !== void 0 ? _b : ''),
|
|
52005
|
+
label: String((_e = (_d = (_c = o === null || o === void 0 ? void 0 : o.label) !== null && _c !== void 0 ? _c : o === null || o === void 0 ? void 0 : o.value) !== null && _d !== void 0 ? _d : o) !== null && _e !== void 0 ? _e : '')
|
|
52006
|
+
});
|
|
52007
|
+
});
|
|
52008
|
+
}
|
|
52009
|
+
var rawOptions = Array.isArray(meta.options) ? meta.options : null;
|
|
52010
|
+
if (!rawOptions)
|
|
52011
|
+
return [];
|
|
52012
|
+
var rawLabels = Array.isArray(meta.labels) ? meta.labels : [];
|
|
52013
|
+
return rawOptions.map(function (value, i) {
|
|
52014
|
+
var _a, _b;
|
|
52015
|
+
return ({
|
|
52016
|
+
value: String(value !== null && value !== void 0 ? value : ''),
|
|
52017
|
+
label: String((_b = (_a = rawLabels[i]) !== null && _a !== void 0 ? _a : value) !== null && _b !== void 0 ? _b : '')
|
|
52018
|
+
});
|
|
52019
|
+
});
|
|
52020
|
+
}
|
|
52021
|
+
function checkValueAgainstField(servar, value, repeatIndex) {
|
|
52022
|
+
var _a;
|
|
52023
|
+
var type = servar.type;
|
|
52024
|
+
var key = servar.key;
|
|
52025
|
+
var meta = (_a = servar.metadata) !== null && _a !== void 0 ? _a : {};
|
|
52026
|
+
var minLength = typeof servar.min_length === 'number' ? servar.min_length : undefined;
|
|
52027
|
+
var maxLength = typeof servar.max_length === 'number' ? servar.max_length : undefined;
|
|
51760
52028
|
// Boolean field
|
|
51761
|
-
if (
|
|
52029
|
+
if (type === 'checkbox') {
|
|
51762
52030
|
return typeof value === 'boolean'
|
|
51763
52031
|
? null
|
|
51764
|
-
: "Field '".concat(
|
|
52032
|
+
: "Field '".concat(key, "' (checkbox) expects a boolean.");
|
|
51765
52033
|
}
|
|
51766
52034
|
// Numeric fields with min/max bounds
|
|
51767
|
-
if (NUMERIC_TYPES.has(
|
|
52035
|
+
if (NUMERIC_TYPES.has(type)) {
|
|
51768
52036
|
if (typeof value !== 'number' || !Number.isFinite(value)) {
|
|
51769
|
-
return "Field '".concat(
|
|
52037
|
+
return "Field '".concat(key, "' (").concat(type, ") expects a number.");
|
|
51770
52038
|
}
|
|
51771
|
-
if (typeof
|
|
51772
|
-
return "Value below minimum (".concat(
|
|
52039
|
+
if (typeof minLength === 'number' && value < minLength) {
|
|
52040
|
+
return "Value below minimum (".concat(minLength, ").");
|
|
51773
52041
|
}
|
|
51774
|
-
if (typeof
|
|
51775
|
-
return "Value above maximum (".concat(
|
|
52042
|
+
if (typeof maxLength === 'number' && value > maxLength) {
|
|
52043
|
+
return "Value above maximum (".concat(maxLength, ").");
|
|
51776
52044
|
}
|
|
51777
52045
|
return null;
|
|
51778
52046
|
}
|
|
51779
52047
|
// ISO date string
|
|
51780
|
-
if (
|
|
52048
|
+
if (type === 'date_selector') {
|
|
51781
52049
|
if (typeof value !== 'string') {
|
|
51782
|
-
return "Field '".concat(
|
|
52050
|
+
return "Field '".concat(key, "' (date_selector) expects a string.");
|
|
51783
52051
|
}
|
|
51784
52052
|
if (!/^\d{4}-\d{2}-\d{2}$/.test(value)) {
|
|
51785
|
-
return "Field '".concat(
|
|
52053
|
+
return "Field '".concat(key, "' expects ISO date 'YYYY-MM-DD'.");
|
|
51786
52054
|
}
|
|
51787
52055
|
return null;
|
|
51788
52056
|
}
|
|
51789
52057
|
// Single-choice picker
|
|
51790
|
-
if (SINGLE_CHOICE_TYPES.has(
|
|
52058
|
+
if (SINGLE_CHOICE_TYPES.has(type)) {
|
|
51791
52059
|
if (typeof value !== 'string') {
|
|
51792
|
-
return "Field '".concat(
|
|
52060
|
+
return "Field '".concat(key, "' (").concat(type, ") expects a single option value (string).");
|
|
51793
52061
|
}
|
|
51794
|
-
var opts = (
|
|
52062
|
+
var opts = resolveOptions(servar, repeatIndex).map(function (o) { return o.value; });
|
|
51795
52063
|
if (opts.length > 0 && !opts.includes(value)) {
|
|
51796
52064
|
return "Value not in allowed options. Allowed: ".concat(opts.join(', '), ".");
|
|
51797
52065
|
}
|
|
51798
52066
|
return null;
|
|
51799
52067
|
}
|
|
51800
|
-
if (MULTI_CHOICE_TYPES.has(
|
|
52068
|
+
if (MULTI_CHOICE_TYPES.has(type)) {
|
|
51801
52069
|
if (!Array.isArray(value) || !value.every(function (v) { return typeof v === 'string'; })) {
|
|
51802
|
-
return "Field '".concat(
|
|
52070
|
+
return "Field '".concat(key, "' (").concat(type, ") expects an array of option-value strings.");
|
|
51803
52071
|
}
|
|
51804
|
-
if (
|
|
51805
|
-
return "Field '".concat(
|
|
52072
|
+
if (type === 'button_group' && !meta.multiple && value.length > 1) {
|
|
52073
|
+
return "Field '".concat(key, "' (button_group) is single-select; pass at most one option.");
|
|
51806
52074
|
}
|
|
51807
|
-
var opts_1 = new Set((
|
|
52075
|
+
var opts_1 = new Set(resolveOptions(servar, repeatIndex).map(function (o) { return o.value; }));
|
|
51808
52076
|
if (opts_1.size > 0) {
|
|
51809
52077
|
var bad = value.filter(function (v) { return !opts_1.has(v); });
|
|
51810
52078
|
if (bad.length > 0) {
|
|
@@ -51814,76 +52082,20 @@ function checkValueAgainstField(field, value) {
|
|
|
51814
52082
|
return null;
|
|
51815
52083
|
}
|
|
51816
52084
|
// Text fields with optional length bounds
|
|
51817
|
-
if (TEXT_TYPES.has(
|
|
52085
|
+
if (TEXT_TYPES.has(type)) {
|
|
51818
52086
|
if (typeof value !== 'string') {
|
|
51819
|
-
return "Field '".concat(
|
|
52087
|
+
return "Field '".concat(key, "' (").concat(type, ") expects a string.");
|
|
51820
52088
|
}
|
|
51821
|
-
if (typeof
|
|
51822
|
-
return "Value shorter than minimum length (".concat(
|
|
52089
|
+
if (typeof minLength === 'number' && value.length < minLength) {
|
|
52090
|
+
return "Value shorter than minimum length (".concat(minLength, ").");
|
|
51823
52091
|
}
|
|
51824
|
-
if (typeof
|
|
51825
|
-
return "Value exceeds maximum length (".concat(
|
|
52092
|
+
if (typeof maxLength === 'number' && value.length > maxLength) {
|
|
52093
|
+
return "Value exceeds maximum length (".concat(maxLength, ").");
|
|
51826
52094
|
}
|
|
51827
52095
|
return null;
|
|
51828
52096
|
}
|
|
51829
52097
|
return null;
|
|
51830
52098
|
}
|
|
51831
|
-
function applyServarValues(formUuid, entries) {
|
|
51832
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
51833
|
-
var state, payload, entries_1, entries_1_1, _a, fieldKey, value, servar, normalized, e_1_1;
|
|
51834
|
-
var e_1, _b;
|
|
51835
|
-
return __generator(this, function (_c) {
|
|
51836
|
-
switch (_c.label) {
|
|
51837
|
-
case 0:
|
|
51838
|
-
if (!formUuid || entries.length === 0)
|
|
51839
|
-
return [2 /*return*/];
|
|
51840
|
-
state = internalState[formUuid];
|
|
51841
|
-
if (!state)
|
|
51842
|
-
return [2 /*return*/];
|
|
51843
|
-
payload = {};
|
|
51844
|
-
_c.label = 1;
|
|
51845
|
-
case 1:
|
|
51846
|
-
_c.trys.push([1, 8, 9, 10]);
|
|
51847
|
-
entries_1 = __values(entries), entries_1_1 = entries_1.next();
|
|
51848
|
-
_c.label = 2;
|
|
51849
|
-
case 2:
|
|
51850
|
-
if (!!entries_1_1.done) return [3 /*break*/, 7];
|
|
51851
|
-
_a = entries_1_1.value, fieldKey = _a.fieldKey, value = _a.value;
|
|
51852
|
-
servar = findServar(state, fieldKey);
|
|
51853
|
-
normalized = value;
|
|
51854
|
-
if (!((servar === null || servar === void 0 ? void 0 : servar.type) === 'gmap_state')) return [3 /*break*/, 3];
|
|
51855
|
-
normalized = normalizeGmapState(value, servar);
|
|
51856
|
-
return [3 /*break*/, 5];
|
|
51857
|
-
case 3:
|
|
51858
|
-
if (!((servar === null || servar === void 0 ? void 0 : servar.type) === 'phone_number')) return [3 /*break*/, 5];
|
|
51859
|
-
return [4 /*yield*/, normalizePhone(value, servar, state, fieldKey)];
|
|
51860
|
-
case 4:
|
|
51861
|
-
normalized = _c.sent();
|
|
51862
|
-
_c.label = 5;
|
|
51863
|
-
case 5:
|
|
51864
|
-
payload[fieldKey] = normalized;
|
|
51865
|
-
_c.label = 6;
|
|
51866
|
-
case 6:
|
|
51867
|
-
entries_1_1 = entries_1.next();
|
|
51868
|
-
return [3 /*break*/, 2];
|
|
51869
|
-
case 7: return [3 /*break*/, 10];
|
|
51870
|
-
case 8:
|
|
51871
|
-
e_1_1 = _c.sent();
|
|
51872
|
-
e_1 = { error: e_1_1 };
|
|
51873
|
-
return [3 /*break*/, 10];
|
|
51874
|
-
case 9:
|
|
51875
|
-
try {
|
|
51876
|
-
if (entries_1_1 && !entries_1_1.done && (_b = entries_1.return)) _b.call(entries_1);
|
|
51877
|
-
}
|
|
51878
|
-
finally { if (e_1) throw e_1.error; }
|
|
51879
|
-
return [7 /*endfinally*/];
|
|
51880
|
-
case 10:
|
|
51881
|
-
setFieldValues(payload, true, true);
|
|
51882
|
-
return [2 /*return*/];
|
|
51883
|
-
}
|
|
51884
|
-
});
|
|
51885
|
-
});
|
|
51886
|
-
}
|
|
51887
52099
|
function normalizeGmapState(value, servar) {
|
|
51888
52100
|
var _a, _b;
|
|
51889
52101
|
if (typeof value !== 'string' || !value)
|
|
@@ -51953,27 +52165,135 @@ function resolveCountry(state, fieldKey, servar) {
|
|
|
51953
52165
|
var dc = (_c = servar.metadata) === null || _c === void 0 ? void 0 : _c.default_country;
|
|
51954
52166
|
return dc && dc !== 'auto' ? dc : 'US';
|
|
51955
52167
|
}
|
|
51956
|
-
function
|
|
51957
|
-
var
|
|
51958
|
-
|
|
51959
|
-
|
|
51960
|
-
|
|
51961
|
-
|
|
51962
|
-
|
|
51963
|
-
|
|
51964
|
-
|
|
51965
|
-
|
|
51966
|
-
|
|
51967
|
-
|
|
51968
|
-
|
|
51969
|
-
|
|
51970
|
-
|
|
51971
|
-
|
|
51972
|
-
|
|
51973
|
-
|
|
51974
|
-
|
|
51975
|
-
|
|
51976
|
-
|
|
52168
|
+
function dispatchSetFieldValue(formUuid, fields) {
|
|
52169
|
+
var _a, _b;
|
|
52170
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
52171
|
+
var state, client, requestedKeys, priorValues, prepared, results;
|
|
52172
|
+
var _this = this;
|
|
52173
|
+
return __generator(this, function (_c) {
|
|
52174
|
+
switch (_c.label) {
|
|
52175
|
+
case 0:
|
|
52176
|
+
state = formUuid ? internalState[formUuid] : undefined;
|
|
52177
|
+
client = state === null || state === void 0 ? void 0 : state.assistantClient;
|
|
52178
|
+
if (!state || !client) {
|
|
52179
|
+
return [2 /*return*/, {
|
|
52180
|
+
results: fields.map(function (item) {
|
|
52181
|
+
var fieldKey = typeof (item === null || item === void 0 ? void 0 : item.fieldKey) === 'string' ? item.fieldKey : '';
|
|
52182
|
+
var repeatIndex = Number.isInteger(item === null || item === void 0 ? void 0 : item.repeatIndex)
|
|
52183
|
+
? item.repeatIndex
|
|
52184
|
+
: undefined;
|
|
52185
|
+
if (!fieldKey) {
|
|
52186
|
+
return {
|
|
52187
|
+
fieldKey: fieldKey,
|
|
52188
|
+
repeatIndex: repeatIndex,
|
|
52189
|
+
ok: false,
|
|
52190
|
+
errorType: 'shape_mismatch',
|
|
52191
|
+
error: 'fieldKey is required.'
|
|
52192
|
+
};
|
|
52193
|
+
}
|
|
52194
|
+
return {
|
|
52195
|
+
fieldKey: fieldKey,
|
|
52196
|
+
repeatIndex: repeatIndex,
|
|
52197
|
+
ok: false,
|
|
52198
|
+
errorType: 'no_form_state',
|
|
52199
|
+
error: 'Form has not loaded yet.'
|
|
52200
|
+
};
|
|
52201
|
+
})
|
|
52202
|
+
}];
|
|
52203
|
+
}
|
|
52204
|
+
requestedKeys = new Set(fields
|
|
52205
|
+
.map(function (f) { return (typeof (f === null || f === void 0 ? void 0 : f.fieldKey) === 'string' ? f.fieldKey : ''); })
|
|
52206
|
+
.filter(Boolean));
|
|
52207
|
+
priorValues = new Map(((_b = (_a = state.currentStep) === null || _a === void 0 ? void 0 : _a.servar_fields) !== null && _b !== void 0 ? _b : [])
|
|
52208
|
+
.filter(function (f) { var _a; return requestedKeys.has((_a = f === null || f === void 0 ? void 0 : f.servar) === null || _a === void 0 ? void 0 : _a.key); })
|
|
52209
|
+
.map(function (f) {
|
|
52210
|
+
var _a, _b;
|
|
52211
|
+
var key = f.servar.key;
|
|
52212
|
+
var v = (_b = (_a = state.fields) === null || _a === void 0 ? void 0 : _a[key]) === null || _b === void 0 ? void 0 : _b.value;
|
|
52213
|
+
return [key, v == null ? null : JSON.parse(JSON.stringify(v))];
|
|
52214
|
+
}));
|
|
52215
|
+
return [4 /*yield*/, Promise.all(fields.map(function (item) { return __awaiter(_this, void 0, void 0, function () {
|
|
52216
|
+
var fieldKey, repeatIndex, validation, field, servar, normalized;
|
|
52217
|
+
return __generator(this, function (_a) {
|
|
52218
|
+
switch (_a.label) {
|
|
52219
|
+
case 0:
|
|
52220
|
+
fieldKey = typeof (item === null || item === void 0 ? void 0 : item.fieldKey) === 'string' ? item.fieldKey : '';
|
|
52221
|
+
repeatIndex = Number.isInteger(item === null || item === void 0 ? void 0 : item.repeatIndex)
|
|
52222
|
+
? item.repeatIndex
|
|
52223
|
+
: undefined;
|
|
52224
|
+
// Validate shape, value, and field presence on current step
|
|
52225
|
+
if (!fieldKey) {
|
|
52226
|
+
return [2 /*return*/, {
|
|
52227
|
+
fieldKey: fieldKey,
|
|
52228
|
+
repeatIndex: repeatIndex,
|
|
52229
|
+
ok: false,
|
|
52230
|
+
errorType: 'shape_mismatch',
|
|
52231
|
+
error: 'fieldKey is required.'
|
|
52232
|
+
}];
|
|
52233
|
+
}
|
|
52234
|
+
validation = validateSetFieldValue(state, fieldKey, item.value, repeatIndex);
|
|
52235
|
+
if (!validation.ok) {
|
|
52236
|
+
return [2 /*return*/, {
|
|
52237
|
+
fieldKey: fieldKey,
|
|
52238
|
+
repeatIndex: repeatIndex,
|
|
52239
|
+
ok: false,
|
|
52240
|
+
errorType: validation.errorType,
|
|
52241
|
+
error: validation.error
|
|
52242
|
+
}];
|
|
52243
|
+
}
|
|
52244
|
+
field = validation.field, servar = validation.servar;
|
|
52245
|
+
normalized = validation.value;
|
|
52246
|
+
if (!(servar.type === 'gmap_state')) return [3 /*break*/, 1];
|
|
52247
|
+
normalized = normalizeGmapState(normalized, servar);
|
|
52248
|
+
return [3 /*break*/, 3];
|
|
52249
|
+
case 1:
|
|
52250
|
+
if (!(servar.type === 'phone_number')) return [3 /*break*/, 3];
|
|
52251
|
+
return [4 /*yield*/, normalizePhone(normalized, servar, state, fieldKey)];
|
|
52252
|
+
case 2:
|
|
52253
|
+
normalized = _a.sent();
|
|
52254
|
+
_a.label = 3;
|
|
52255
|
+
case 3: return [2 /*return*/, { fieldKey: fieldKey, repeatIndex: repeatIndex, field: field, normalized: normalized }];
|
|
52256
|
+
}
|
|
52257
|
+
});
|
|
52258
|
+
}); }))];
|
|
52259
|
+
case 1:
|
|
52260
|
+
prepared = _c.sent();
|
|
52261
|
+
results = prepared.map(function (p) {
|
|
52262
|
+
var _a, _b;
|
|
52263
|
+
if ('ok' in p)
|
|
52264
|
+
return p;
|
|
52265
|
+
var fieldForChange = typeof p.repeatIndex === 'number'
|
|
52266
|
+
? __assign(__assign({}, p.field), { repeat: p.repeatIndex }) : p.field;
|
|
52267
|
+
try {
|
|
52268
|
+
client.changeValue(p.normalized, fieldForChange, (_a = p.repeatIndex) !== null && _a !== void 0 ? _a : null);
|
|
52269
|
+
}
|
|
52270
|
+
catch (err) {
|
|
52271
|
+
return {
|
|
52272
|
+
fieldKey: p.fieldKey,
|
|
52273
|
+
repeatIndex: p.repeatIndex,
|
|
52274
|
+
ok: false,
|
|
52275
|
+
errorType: 'dispatch_failed',
|
|
52276
|
+
error: err instanceof Error ? err.message : String(err)
|
|
52277
|
+
};
|
|
52278
|
+
}
|
|
52279
|
+
var prior = priorValues.get(p.fieldKey);
|
|
52280
|
+
var priorValue = p.repeatIndex !== undefined
|
|
52281
|
+
? Array.isArray(prior)
|
|
52282
|
+
? (_b = prior[p.repeatIndex]) !== null && _b !== void 0 ? _b : null
|
|
52283
|
+
: null
|
|
52284
|
+
: prior !== null && prior !== void 0 ? prior : null;
|
|
52285
|
+
return {
|
|
52286
|
+
fieldKey: p.fieldKey,
|
|
52287
|
+
repeatIndex: p.repeatIndex,
|
|
52288
|
+
ok: true,
|
|
52289
|
+
value: p.normalized,
|
|
52290
|
+
priorValue: priorValue
|
|
52291
|
+
};
|
|
52292
|
+
});
|
|
52293
|
+
return [2 /*return*/, { results: results }];
|
|
52294
|
+
}
|
|
52295
|
+
});
|
|
52296
|
+
});
|
|
51977
52297
|
}
|
|
51978
52298
|
|
|
51979
52299
|
var findElement = function (state, elementId) {
|
|
@@ -52011,43 +52331,17 @@ var findElement = function (state, elementId) {
|
|
|
52011
52331
|
}
|
|
52012
52332
|
return null;
|
|
52013
52333
|
};
|
|
52014
|
-
|
|
52015
|
-
var _a;
|
|
52016
|
-
var positionKey = position.join(',') || 'root';
|
|
52017
|
-
var flags = (_a = state.visiblePositions) === null || _a === void 0 ? void 0 : _a[positionKey];
|
|
52018
|
-
return Array.isArray(flags) ? flags.some(Boolean) : true;
|
|
52019
|
-
};
|
|
52020
|
-
var snapshotInlineErrors = function (state) {
|
|
52021
|
-
var e_2, _a;
|
|
52022
|
-
var _b, _c;
|
|
52023
|
-
var inlineErrors = (_b = state === null || state === void 0 ? void 0 : state.inlineErrors) !== null && _b !== void 0 ? _b : {};
|
|
52024
|
-
var out = {};
|
|
52025
|
-
try {
|
|
52026
|
-
for (var _d = __values(Object.keys(inlineErrors)), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
52027
|
-
var key = _e.value;
|
|
52028
|
-
var message = (_c = inlineErrors[key]) === null || _c === void 0 ? void 0 : _c.message;
|
|
52029
|
-
if (typeof message === 'string' && message.length > 0) {
|
|
52030
|
-
out[key] = message;
|
|
52031
|
-
}
|
|
52032
|
-
}
|
|
52033
|
-
}
|
|
52034
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
52035
|
-
finally {
|
|
52036
|
-
try {
|
|
52037
|
-
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
52038
|
-
}
|
|
52039
|
-
finally { if (e_2) throw e_2.error; }
|
|
52040
|
-
}
|
|
52041
|
-
return out;
|
|
52042
|
-
};
|
|
52043
|
-
function dispatchClickElement(formUuid, elementId) {
|
|
52044
|
-
var _a, _b, _c;
|
|
52334
|
+
function dispatchClickElement(formUuid, elementId, rawRepeatIndex) {
|
|
52335
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
52045
52336
|
return __awaiter(this, void 0, void 0, function () {
|
|
52046
|
-
var state, found, client, fromStepKey, errorsBefore, ancestors, ancestors_1, ancestors_1_1, sg, acts,
|
|
52047
|
-
var
|
|
52048
|
-
return __generator(this, function (
|
|
52049
|
-
switch (
|
|
52337
|
+
var repeatIndex, state, found, visiblePositions, flags, formReadOnly, repeatContainer, rowCount, repeatFailure, client, fromStepKey, errorsBefore, elementForDispatch, ancestors, ancestors_1, ancestors_1_1, sg, acts, insideRepeat, e_2_1, err_1, toStepKey, errorsAfter, fieldErrors, _j, _k, key, buttonError;
|
|
52338
|
+
var e_2, _l, e_3, _m;
|
|
52339
|
+
return __generator(this, function (_o) {
|
|
52340
|
+
switch (_o.label) {
|
|
52050
52341
|
case 0:
|
|
52342
|
+
repeatIndex = Number.isInteger(rawRepeatIndex)
|
|
52343
|
+
? rawRepeatIndex
|
|
52344
|
+
: null;
|
|
52051
52345
|
if (!formUuid) {
|
|
52052
52346
|
return [2 /*return*/, {
|
|
52053
52347
|
ok: false,
|
|
@@ -52078,89 +52372,126 @@ function dispatchClickElement(formUuid, elementId) {
|
|
|
52078
52372
|
error: "Element '".concat(elementId, "' is not on the current step.")
|
|
52079
52373
|
}];
|
|
52080
52374
|
}
|
|
52081
|
-
|
|
52375
|
+
visiblePositions = (_a = state.visiblePositions) !== null && _a !== void 0 ? _a : {};
|
|
52376
|
+
flags = visiblePositions[(_b = getPositionKey(found.element)) !== null && _b !== void 0 ? _b : 'root'];
|
|
52377
|
+
if (Array.isArray(flags) && !flags.some(Boolean)) {
|
|
52082
52378
|
return [2 /*return*/, {
|
|
52083
52379
|
ok: false,
|
|
52084
52380
|
errorType: 'hidden',
|
|
52085
52381
|
error: "Element '".concat(elementId, "' is on the current step but is hidden right now.")
|
|
52086
52382
|
}];
|
|
52087
52383
|
}
|
|
52384
|
+
if (found.elementType === 'button') {
|
|
52385
|
+
formReadOnly = !!(((_c = state.formSettings) === null || _c === void 0 ? void 0 : _c.readOnly) ||
|
|
52386
|
+
initState.collaboratorReview === 'readOnly');
|
|
52387
|
+
if (isButtonDisabled(found.element, state.currentStep, visiblePositions, formReadOnly)) {
|
|
52388
|
+
return [2 /*return*/, {
|
|
52389
|
+
ok: false,
|
|
52390
|
+
errorType: 'disabled',
|
|
52391
|
+
error: "Button '".concat(elementId, "' is disabled and cannot be clicked.")
|
|
52392
|
+
}];
|
|
52393
|
+
}
|
|
52394
|
+
}
|
|
52395
|
+
repeatContainer = found.element.repeated
|
|
52396
|
+
? found.element
|
|
52397
|
+
: getRepeatedContainer(state.currentStep, found.element);
|
|
52398
|
+
rowCount = repeatContainer
|
|
52399
|
+
? ((_e = visiblePositions[(_d = getPositionKey(repeatContainer)) !== null && _d !== void 0 ? _d : 'root']) !== null && _e !== void 0 ? _e : []).length
|
|
52400
|
+
: 0;
|
|
52401
|
+
repeatFailure = validateRepeatIndex(repeatIndex, !!repeatContainer, rowCount, elementId);
|
|
52402
|
+
if (repeatFailure)
|
|
52403
|
+
return [2 /*return*/, __assign({ ok: false }, repeatFailure)];
|
|
52404
|
+
// Reject clicks on a row hidden by a per-row rule
|
|
52405
|
+
if (typeof repeatIndex === 'number' &&
|
|
52406
|
+
Array.isArray(flags) &&
|
|
52407
|
+
!flags[repeatIndex]) {
|
|
52408
|
+
return [2 /*return*/, {
|
|
52409
|
+
ok: false,
|
|
52410
|
+
errorType: 'hidden',
|
|
52411
|
+
error: "Row ".concat(repeatIndex, " of element '").concat(elementId, "' is hidden right now.")
|
|
52412
|
+
}];
|
|
52413
|
+
}
|
|
52088
52414
|
client = state.assistantClient;
|
|
52089
52415
|
fromStepKey = state.currentStep.key;
|
|
52090
52416
|
errorsBefore = snapshotInlineErrors(state);
|
|
52091
|
-
|
|
52417
|
+
elementForDispatch = typeof repeatIndex === 'number'
|
|
52418
|
+
? __assign(__assign({}, found.element), { repeat: repeatIndex }) : found.element;
|
|
52419
|
+
_o.label = 1;
|
|
52092
52420
|
case 1:
|
|
52093
|
-
|
|
52421
|
+
_o.trys.push([1, 13, , 14]);
|
|
52094
52422
|
if (!(found.elementType === 'button')) return [3 /*break*/, 3];
|
|
52095
|
-
return [4 /*yield*/, client.click(
|
|
52423
|
+
return [4 /*yield*/, client.click(elementForDispatch)];
|
|
52096
52424
|
case 2:
|
|
52097
|
-
|
|
52425
|
+
_o.sent();
|
|
52098
52426
|
return [3 /*break*/, 12];
|
|
52099
52427
|
case 3:
|
|
52100
52428
|
ancestors = findClickableAncestorSubgrids(state.currentStep.subgrids, found.position);
|
|
52101
52429
|
return [4 /*yield*/, client.runActions({
|
|
52102
52430
|
actions: found.actions,
|
|
52103
|
-
element:
|
|
52431
|
+
element: elementForDispatch,
|
|
52104
52432
|
elementType: found.elementType
|
|
52105
52433
|
})];
|
|
52106
52434
|
case 4:
|
|
52107
|
-
|
|
52108
|
-
|
|
52435
|
+
_o.sent();
|
|
52436
|
+
_o.label = 5;
|
|
52109
52437
|
case 5:
|
|
52110
|
-
|
|
52438
|
+
_o.trys.push([5, 10, 11, 12]);
|
|
52111
52439
|
ancestors_1 = __values(ancestors), ancestors_1_1 = ancestors_1.next();
|
|
52112
|
-
|
|
52440
|
+
_o.label = 6;
|
|
52113
52441
|
case 6:
|
|
52114
52442
|
if (!!ancestors_1_1.done) return [3 /*break*/, 9];
|
|
52115
52443
|
sg = ancestors_1_1.value;
|
|
52116
|
-
acts = (
|
|
52444
|
+
acts = (_f = sg === null || sg === void 0 ? void 0 : sg.properties) === null || _f === void 0 ? void 0 : _f.actions;
|
|
52445
|
+
insideRepeat = typeof repeatIndex === 'number' &&
|
|
52446
|
+
!!repeatContainer &&
|
|
52447
|
+
sg.position.length >= repeatContainer.position.length;
|
|
52117
52448
|
return [4 /*yield*/, client.runActions({
|
|
52118
52449
|
actions: Array.isArray(acts) ? acts : [],
|
|
52119
|
-
element: sg,
|
|
52450
|
+
element: insideRepeat ? __assign(__assign({}, sg), { repeat: repeatIndex }) : sg,
|
|
52120
52451
|
elementType: 'container'
|
|
52121
52452
|
})];
|
|
52122
52453
|
case 7:
|
|
52123
|
-
|
|
52124
|
-
|
|
52454
|
+
_o.sent();
|
|
52455
|
+
_o.label = 8;
|
|
52125
52456
|
case 8:
|
|
52126
52457
|
ancestors_1_1 = ancestors_1.next();
|
|
52127
52458
|
return [3 /*break*/, 6];
|
|
52128
52459
|
case 9: return [3 /*break*/, 12];
|
|
52129
52460
|
case 10:
|
|
52130
|
-
|
|
52131
|
-
|
|
52461
|
+
e_2_1 = _o.sent();
|
|
52462
|
+
e_2 = { error: e_2_1 };
|
|
52132
52463
|
return [3 /*break*/, 12];
|
|
52133
52464
|
case 11:
|
|
52134
52465
|
try {
|
|
52135
|
-
if (ancestors_1_1 && !ancestors_1_1.done && (
|
|
52466
|
+
if (ancestors_1_1 && !ancestors_1_1.done && (_l = ancestors_1.return)) _l.call(ancestors_1);
|
|
52136
52467
|
}
|
|
52137
|
-
finally { if (
|
|
52468
|
+
finally { if (e_2) throw e_2.error; }
|
|
52138
52469
|
return [7 /*endfinally*/];
|
|
52139
52470
|
case 12: return [3 /*break*/, 14];
|
|
52140
52471
|
case 13:
|
|
52141
|
-
err_1 =
|
|
52472
|
+
err_1 = _o.sent();
|
|
52142
52473
|
return [2 /*return*/, {
|
|
52143
52474
|
ok: false,
|
|
52144
52475
|
errorType: 'dispatch_failed',
|
|
52145
52476
|
error: err_1 instanceof Error ? err_1.message : String(err_1)
|
|
52146
52477
|
}];
|
|
52147
52478
|
case 14:
|
|
52148
|
-
toStepKey = (
|
|
52479
|
+
toStepKey = (_h = (_g = state.currentStep) === null || _g === void 0 ? void 0 : _g.key) !== null && _h !== void 0 ? _h : fromStepKey;
|
|
52149
52480
|
errorsAfter = snapshotInlineErrors(state);
|
|
52150
52481
|
fieldErrors = {};
|
|
52151
52482
|
try {
|
|
52152
|
-
for (
|
|
52153
|
-
key =
|
|
52483
|
+
for (_j = __values(Object.keys(errorsAfter)), _k = _j.next(); !_k.done; _k = _j.next()) {
|
|
52484
|
+
key = _k.value;
|
|
52154
52485
|
if (errorsAfter[key] !== errorsBefore[key])
|
|
52155
52486
|
fieldErrors[key] = errorsAfter[key];
|
|
52156
52487
|
}
|
|
52157
52488
|
}
|
|
52158
|
-
catch (
|
|
52489
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
52159
52490
|
finally {
|
|
52160
52491
|
try {
|
|
52161
|
-
if (
|
|
52492
|
+
if (_k && !_k.done && (_m = _j.return)) _m.call(_j);
|
|
52162
52493
|
}
|
|
52163
|
-
finally { if (
|
|
52494
|
+
finally { if (e_3) throw e_3.error; }
|
|
52164
52495
|
}
|
|
52165
52496
|
buttonError = found.elementType === 'button' ? fieldErrors[elementId] : undefined;
|
|
52166
52497
|
delete fieldErrors[elementId];
|
|
@@ -52170,6 +52501,328 @@ function dispatchClickElement(formUuid, elementId) {
|
|
|
52170
52501
|
});
|
|
52171
52502
|
}
|
|
52172
52503
|
|
|
52504
|
+
function dispatchTriggerTableAction(formUuid, tableId, rowIndex, actionLabel) {
|
|
52505
|
+
var _a, _b, _c;
|
|
52506
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
52507
|
+
var lookup, _d, state, table, rowCount, hasLabel, actions, rowData, fromStepKey, errorsBefore, err_1, toStepKey, errorsAfter, fieldErrors, _e, _f, key;
|
|
52508
|
+
var e_1, _g;
|
|
52509
|
+
return __generator(this, function (_h) {
|
|
52510
|
+
switch (_h.label) {
|
|
52511
|
+
case 0:
|
|
52512
|
+
lookup = findTableOnCurrentStep(formUuid, tableId);
|
|
52513
|
+
if (!lookup.ok)
|
|
52514
|
+
return [2 /*return*/, lookup];
|
|
52515
|
+
_d = lookup.found, state = _d.state, table = _d.table, rowCount = _d.rowCount;
|
|
52516
|
+
hasLabel = typeof actionLabel === 'string' && actionLabel.length > 0;
|
|
52517
|
+
if (actionLabel !== undefined && !hasLabel) {
|
|
52518
|
+
return [2 /*return*/, {
|
|
52519
|
+
ok: false,
|
|
52520
|
+
errorType: 'shape_mismatch',
|
|
52521
|
+
error: 'actionLabel must be a non-empty string when provided.'
|
|
52522
|
+
}];
|
|
52523
|
+
}
|
|
52524
|
+
if (!Number.isInteger(rowIndex) || rowIndex < 0) {
|
|
52525
|
+
return [2 /*return*/, {
|
|
52526
|
+
ok: false,
|
|
52527
|
+
errorType: 'shape_mismatch',
|
|
52528
|
+
error: 'rowIndex must be a non-negative integer.'
|
|
52529
|
+
}];
|
|
52530
|
+
}
|
|
52531
|
+
if (hasLabel) {
|
|
52532
|
+
actions = Array.isArray((_a = table === null || table === void 0 ? void 0 : table.properties) === null || _a === void 0 ? void 0 : _a.actions)
|
|
52533
|
+
? table.properties.actions
|
|
52534
|
+
: [];
|
|
52535
|
+
if (!actions.some(function (a) { return (a === null || a === void 0 ? void 0 : a.label) === actionLabel; })) {
|
|
52536
|
+
return [2 /*return*/, {
|
|
52537
|
+
ok: false,
|
|
52538
|
+
errorType: 'unknown_action',
|
|
52539
|
+
error: "Table '".concat(tableId, "' has no action labeled '").concat(actionLabel, "'.")
|
|
52540
|
+
}];
|
|
52541
|
+
}
|
|
52542
|
+
}
|
|
52543
|
+
else if (getTableCapabilities(table, rowCount).canEditCells) {
|
|
52544
|
+
// Editable tables suppress the bare row click, so the user can't fire it either
|
|
52545
|
+
return [2 /*return*/, {
|
|
52546
|
+
ok: false,
|
|
52547
|
+
errorType: 'not_allowed',
|
|
52548
|
+
error: "Table '".concat(tableId, "' is editable, so bare row clicks are not wired; use a named action.")
|
|
52549
|
+
}];
|
|
52550
|
+
}
|
|
52551
|
+
if (rowIndex >= rowCount) {
|
|
52552
|
+
return [2 /*return*/, {
|
|
52553
|
+
ok: false,
|
|
52554
|
+
errorType: 'row_out_of_range',
|
|
52555
|
+
error: "Row ".concat(rowIndex, " is out of range (table has ").concat(rowCount, " row").concat(rowCount === 1 ? '' : 's', ").")
|
|
52556
|
+
}];
|
|
52557
|
+
}
|
|
52558
|
+
rowData = buildRowData(lookup.found, rowIndex);
|
|
52559
|
+
fromStepKey = state.currentStep.key;
|
|
52560
|
+
errorsBefore = snapshotInlineErrors(state);
|
|
52561
|
+
_h.label = 1;
|
|
52562
|
+
case 1:
|
|
52563
|
+
_h.trys.push([1, 3, , 4]);
|
|
52564
|
+
return [4 /*yield*/, state.assistantClient.runTableAction({
|
|
52565
|
+
table: table,
|
|
52566
|
+
payload: hasLabel
|
|
52567
|
+
? { action: actionLabel, rowIndex: rowIndex, rowData: rowData }
|
|
52568
|
+
: { rowIndex: rowIndex, rowData: rowData }
|
|
52569
|
+
})];
|
|
52570
|
+
case 2:
|
|
52571
|
+
_h.sent();
|
|
52572
|
+
return [3 /*break*/, 4];
|
|
52573
|
+
case 3:
|
|
52574
|
+
err_1 = _h.sent();
|
|
52575
|
+
return [2 /*return*/, {
|
|
52576
|
+
ok: false,
|
|
52577
|
+
errorType: 'dispatch_failed',
|
|
52578
|
+
error: err_1 instanceof Error ? err_1.message : String(err_1)
|
|
52579
|
+
}];
|
|
52580
|
+
case 4:
|
|
52581
|
+
toStepKey = (_c = (_b = state.currentStep) === null || _b === void 0 ? void 0 : _b.key) !== null && _c !== void 0 ? _c : fromStepKey;
|
|
52582
|
+
errorsAfter = snapshotInlineErrors(state);
|
|
52583
|
+
fieldErrors = {};
|
|
52584
|
+
try {
|
|
52585
|
+
for (_e = __values(Object.keys(errorsAfter)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
52586
|
+
key = _f.value;
|
|
52587
|
+
if (errorsAfter[key] !== errorsBefore[key])
|
|
52588
|
+
fieldErrors[key] = errorsAfter[key];
|
|
52589
|
+
}
|
|
52590
|
+
}
|
|
52591
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
52592
|
+
finally {
|
|
52593
|
+
try {
|
|
52594
|
+
if (_f && !_f.done && (_g = _e.return)) _g.call(_e);
|
|
52595
|
+
}
|
|
52596
|
+
finally { if (e_1) throw e_1.error; }
|
|
52597
|
+
}
|
|
52598
|
+
return [2 /*return*/, __assign({ ok: true, navigated: toStepKey !== fromStepKey ? { fromStepKey: fromStepKey, toStepKey: toStepKey } : null }, (Object.keys(fieldErrors).length > 0 ? { fieldErrors: fieldErrors } : {}))];
|
|
52599
|
+
}
|
|
52600
|
+
});
|
|
52601
|
+
});
|
|
52602
|
+
}
|
|
52603
|
+
|
|
52604
|
+
var validateRowIndex = function (rowIndex, rowCount) {
|
|
52605
|
+
if (!Number.isInteger(rowIndex) || rowIndex < 0) {
|
|
52606
|
+
return {
|
|
52607
|
+
ok: false,
|
|
52608
|
+
errorType: 'shape_mismatch',
|
|
52609
|
+
error: 'rowIndex must be a non-negative integer.'
|
|
52610
|
+
};
|
|
52611
|
+
}
|
|
52612
|
+
if (rowIndex >= rowCount) {
|
|
52613
|
+
return {
|
|
52614
|
+
ok: false,
|
|
52615
|
+
errorType: 'row_out_of_range',
|
|
52616
|
+
error: "Row ".concat(rowIndex, " is out of range (table has ").concat(rowCount, " row").concat(rowCount === 1 ? '' : 's', ").")
|
|
52617
|
+
};
|
|
52618
|
+
}
|
|
52619
|
+
return null;
|
|
52620
|
+
};
|
|
52621
|
+
var CAPABILITY_LABELS = {
|
|
52622
|
+
add: 'adding rows',
|
|
52623
|
+
del: 'deleting rows',
|
|
52624
|
+
edit: 'cell editing'
|
|
52625
|
+
};
|
|
52626
|
+
var requireCapability = function (table, tableId, capability, rowCount) {
|
|
52627
|
+
var caps = getTableCapabilities(table, rowCount);
|
|
52628
|
+
var allowed = (capability === 'add' && caps.canAddRows) ||
|
|
52629
|
+
(capability === 'del' && caps.canDeleteRows) ||
|
|
52630
|
+
(capability === 'edit' && caps.canEditCells);
|
|
52631
|
+
if (allowed)
|
|
52632
|
+
return null;
|
|
52633
|
+
return {
|
|
52634
|
+
ok: false,
|
|
52635
|
+
errorType: 'not_allowed',
|
|
52636
|
+
error: "Table '".concat(tableId, "' does not allow ").concat(CAPABILITY_LABELS[capability], ".")
|
|
52637
|
+
};
|
|
52638
|
+
};
|
|
52639
|
+
function dispatchAddTableRow(formUuid, tableId) {
|
|
52640
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
52641
|
+
var lookup, _a, state, table, rowCount, cap;
|
|
52642
|
+
return __generator(this, function (_b) {
|
|
52643
|
+
lookup = findTableOnCurrentStep(formUuid, tableId);
|
|
52644
|
+
if (!lookup.ok)
|
|
52645
|
+
return [2 /*return*/, lookup];
|
|
52646
|
+
_a = lookup.found, state = _a.state, table = _a.table, rowCount = _a.rowCount;
|
|
52647
|
+
cap = requireCapability(table, tableId, 'add', rowCount);
|
|
52648
|
+
if (cap)
|
|
52649
|
+
return [2 /*return*/, cap];
|
|
52650
|
+
try {
|
|
52651
|
+
if (!state.assistantClient.addTableRow(tableId)) {
|
|
52652
|
+
return [2 /*return*/, {
|
|
52653
|
+
ok: false,
|
|
52654
|
+
errorType: 'not_mounted',
|
|
52655
|
+
error: "Table '".concat(tableId, "' is not mounted yet.")
|
|
52656
|
+
}];
|
|
52657
|
+
}
|
|
52658
|
+
}
|
|
52659
|
+
catch (err) {
|
|
52660
|
+
return [2 /*return*/, {
|
|
52661
|
+
ok: false,
|
|
52662
|
+
errorType: 'dispatch_failed',
|
|
52663
|
+
error: err instanceof Error ? err.message : String(err)
|
|
52664
|
+
}];
|
|
52665
|
+
}
|
|
52666
|
+
return [2 /*return*/, { ok: true }];
|
|
52667
|
+
});
|
|
52668
|
+
});
|
|
52669
|
+
}
|
|
52670
|
+
function dispatchDeleteTableRow(formUuid, tableId, rowIndex) {
|
|
52671
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
52672
|
+
var lookup, _a, state, table, rowCount, cap, rowErr;
|
|
52673
|
+
return __generator(this, function (_b) {
|
|
52674
|
+
lookup = findTableOnCurrentStep(formUuid, tableId);
|
|
52675
|
+
if (!lookup.ok)
|
|
52676
|
+
return [2 /*return*/, lookup];
|
|
52677
|
+
_a = lookup.found, state = _a.state, table = _a.table, rowCount = _a.rowCount;
|
|
52678
|
+
cap = requireCapability(table, tableId, 'del', rowCount);
|
|
52679
|
+
if (cap)
|
|
52680
|
+
return [2 /*return*/, cap];
|
|
52681
|
+
rowErr = validateRowIndex(rowIndex, rowCount);
|
|
52682
|
+
if (rowErr)
|
|
52683
|
+
return [2 /*return*/, rowErr];
|
|
52684
|
+
try {
|
|
52685
|
+
if (!state.assistantClient.deleteTableRow(tableId, rowIndex)) {
|
|
52686
|
+
return [2 /*return*/, {
|
|
52687
|
+
ok: false,
|
|
52688
|
+
errorType: 'not_mounted',
|
|
52689
|
+
error: "Table '".concat(tableId, "' is not mounted yet.")
|
|
52690
|
+
}];
|
|
52691
|
+
}
|
|
52692
|
+
}
|
|
52693
|
+
catch (err) {
|
|
52694
|
+
return [2 /*return*/, {
|
|
52695
|
+
ok: false,
|
|
52696
|
+
errorType: 'dispatch_failed',
|
|
52697
|
+
error: err instanceof Error ? err.message : String(err)
|
|
52698
|
+
}];
|
|
52699
|
+
}
|
|
52700
|
+
return [2 /*return*/, { ok: true }];
|
|
52701
|
+
});
|
|
52702
|
+
});
|
|
52703
|
+
}
|
|
52704
|
+
function dispatchSetTableCellValue(formUuid, tableId, cells) {
|
|
52705
|
+
var _a;
|
|
52706
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
52707
|
+
var safeCells, fanOut, lookup, _b, state, table, columns, rowCount, cap, priorValues, results, _loop_1, safeCells_1, safeCells_1_1, c;
|
|
52708
|
+
var e_1, _c;
|
|
52709
|
+
return __generator(this, function (_d) {
|
|
52710
|
+
safeCells = (Array.isArray(cells) ? cells : []).map(function (c) { return ({
|
|
52711
|
+
rowIndex: typeof (c === null || c === void 0 ? void 0 : c.rowIndex) === 'number' ? c.rowIndex : NaN,
|
|
52712
|
+
fieldKey: typeof (c === null || c === void 0 ? void 0 : c.fieldKey) === 'string' ? c.fieldKey : '',
|
|
52713
|
+
value: c === null || c === void 0 ? void 0 : c.value
|
|
52714
|
+
}); });
|
|
52715
|
+
fanOut = function (errorType, error) { return ({
|
|
52716
|
+
results: safeCells.map(function (c) { return ({
|
|
52717
|
+
rowIndex: c.rowIndex,
|
|
52718
|
+
fieldKey: c.fieldKey,
|
|
52719
|
+
ok: false,
|
|
52720
|
+
errorType: errorType,
|
|
52721
|
+
error: error
|
|
52722
|
+
}); })
|
|
52723
|
+
}); };
|
|
52724
|
+
lookup = findTableOnCurrentStep(formUuid, tableId);
|
|
52725
|
+
if (!lookup.ok)
|
|
52726
|
+
return [2 /*return*/, fanOut(lookup.errorType, lookup.error)];
|
|
52727
|
+
_b = lookup.found, state = _b.state, table = _b.table, columns = _b.columns, rowCount = _b.rowCount;
|
|
52728
|
+
cap = requireCapability(table, tableId, 'edit', rowCount);
|
|
52729
|
+
if (cap)
|
|
52730
|
+
return [2 /*return*/, fanOut(cap.errorType, cap.error)];
|
|
52731
|
+
priorValues = new Map(safeCells
|
|
52732
|
+
.filter(function (c) { return c.fieldKey; })
|
|
52733
|
+
.map(function (c) {
|
|
52734
|
+
var _a, _b;
|
|
52735
|
+
var v = (_b = (_a = state.fields) === null || _a === void 0 ? void 0 : _a[c.fieldKey]) === null || _b === void 0 ? void 0 : _b.value;
|
|
52736
|
+
var prior = Array.isArray(v) ? v[c.rowIndex] : undefined;
|
|
52737
|
+
return [
|
|
52738
|
+
"".concat(c.fieldKey, ":").concat(c.rowIndex),
|
|
52739
|
+
prior == null ? null : JSON.parse(JSON.stringify(prior))
|
|
52740
|
+
];
|
|
52741
|
+
}));
|
|
52742
|
+
results = [];
|
|
52743
|
+
_loop_1 = function (c) {
|
|
52744
|
+
var rowIndex = c.rowIndex, fieldKey = c.fieldKey, value = c.value;
|
|
52745
|
+
if (!fieldKey) {
|
|
52746
|
+
results.push({
|
|
52747
|
+
rowIndex: rowIndex,
|
|
52748
|
+
fieldKey: fieldKey,
|
|
52749
|
+
ok: false,
|
|
52750
|
+
errorType: 'shape_mismatch',
|
|
52751
|
+
error: 'fieldKey is required.'
|
|
52752
|
+
});
|
|
52753
|
+
return "continue";
|
|
52754
|
+
}
|
|
52755
|
+
if (!columns.some(function (col) { return (col === null || col === void 0 ? void 0 : col.field_key) === fieldKey; })) {
|
|
52756
|
+
results.push({
|
|
52757
|
+
rowIndex: rowIndex,
|
|
52758
|
+
fieldKey: fieldKey,
|
|
52759
|
+
ok: false,
|
|
52760
|
+
errorType: 'unknown_field',
|
|
52761
|
+
error: "Table '".concat(tableId, "' has no column with fieldKey '").concat(fieldKey, "'.")
|
|
52762
|
+
});
|
|
52763
|
+
return "continue";
|
|
52764
|
+
}
|
|
52765
|
+
var rowErr = validateRowIndex(rowIndex, rowCount);
|
|
52766
|
+
if (rowErr) {
|
|
52767
|
+
results.push({
|
|
52768
|
+
rowIndex: rowIndex,
|
|
52769
|
+
fieldKey: fieldKey,
|
|
52770
|
+
ok: false,
|
|
52771
|
+
errorType: rowErr.errorType,
|
|
52772
|
+
error: rowErr.error
|
|
52773
|
+
});
|
|
52774
|
+
return "continue";
|
|
52775
|
+
}
|
|
52776
|
+
// Write what typing would produce: text only, clear as empty string
|
|
52777
|
+
var writeValue = value == null ? '' : String(value);
|
|
52778
|
+
try {
|
|
52779
|
+
if (!state.assistantClient.editTableCell(tableId, rowIndex, fieldKey, writeValue)) {
|
|
52780
|
+
results.push({
|
|
52781
|
+
rowIndex: rowIndex,
|
|
52782
|
+
fieldKey: fieldKey,
|
|
52783
|
+
ok: false,
|
|
52784
|
+
errorType: 'not_mounted',
|
|
52785
|
+
error: "Table '".concat(tableId, "' is not mounted yet.")
|
|
52786
|
+
});
|
|
52787
|
+
return "continue";
|
|
52788
|
+
}
|
|
52789
|
+
}
|
|
52790
|
+
catch (err) {
|
|
52791
|
+
results.push({
|
|
52792
|
+
rowIndex: rowIndex,
|
|
52793
|
+
fieldKey: fieldKey,
|
|
52794
|
+
ok: false,
|
|
52795
|
+
errorType: 'dispatch_failed',
|
|
52796
|
+
error: err instanceof Error ? err.message : String(err)
|
|
52797
|
+
});
|
|
52798
|
+
return "continue";
|
|
52799
|
+
}
|
|
52800
|
+
results.push({
|
|
52801
|
+
rowIndex: rowIndex,
|
|
52802
|
+
fieldKey: fieldKey,
|
|
52803
|
+
ok: true,
|
|
52804
|
+
value: writeValue,
|
|
52805
|
+
priorValue: (_a = priorValues.get("".concat(fieldKey, ":").concat(rowIndex))) !== null && _a !== void 0 ? _a : null
|
|
52806
|
+
});
|
|
52807
|
+
};
|
|
52808
|
+
try {
|
|
52809
|
+
for (safeCells_1 = __values(safeCells), safeCells_1_1 = safeCells_1.next(); !safeCells_1_1.done; safeCells_1_1 = safeCells_1.next()) {
|
|
52810
|
+
c = safeCells_1_1.value;
|
|
52811
|
+
_loop_1(c);
|
|
52812
|
+
}
|
|
52813
|
+
}
|
|
52814
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
52815
|
+
finally {
|
|
52816
|
+
try {
|
|
52817
|
+
if (safeCells_1_1 && !safeCells_1_1.done && (_c = safeCells_1.return)) _c.call(safeCells_1);
|
|
52818
|
+
}
|
|
52819
|
+
finally { if (e_1) throw e_1.error; }
|
|
52820
|
+
}
|
|
52821
|
+
return [2 /*return*/, { results: results }];
|
|
52822
|
+
});
|
|
52823
|
+
});
|
|
52824
|
+
}
|
|
52825
|
+
|
|
52173
52826
|
var FAB_SIZE = 56;
|
|
52174
52827
|
var PANEL_WIDTH = 380;
|
|
52175
52828
|
var PANEL_HEIGHT = 500;
|
|
@@ -52463,128 +53116,99 @@ var AssistantChat = function (_a) {
|
|
|
52463
53116
|
onToolCall: function (_a) {
|
|
52464
53117
|
var toolCall = _a.toolCall;
|
|
52465
53118
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
52466
|
-
var input_1, fields,
|
|
52467
|
-
var
|
|
52468
|
-
|
|
52469
|
-
|
|
52470
|
-
switch (_k.label) {
|
|
53119
|
+
var input_1, fields, output, input_2, elementId, output, input_3, tableId, rowIndex, actionLabel, output, input_4, tableId, output, input_5, tableId, rowIndex, output, input_6, tableId, cells, output;
|
|
53120
|
+
var _b, _c, _d, _e, _f, _g;
|
|
53121
|
+
return __generator(this, function (_h) {
|
|
53122
|
+
switch (_h.label) {
|
|
52471
53123
|
case 0:
|
|
52472
53124
|
if (toolCall.dynamic)
|
|
52473
53125
|
return [2 /*return*/];
|
|
52474
|
-
if (!(toolCall.toolName === 'setFieldValue')) return [3 /*break*/,
|
|
52475
|
-
input_1 = ((
|
|
53126
|
+
if (!(toolCall.toolName === 'setFieldValue')) return [3 /*break*/, 2];
|
|
53127
|
+
input_1 = ((_b = toolCall.input) !== null && _b !== void 0 ? _b : {});
|
|
52476
53128
|
fields = Array.isArray(input_1.fields) ? input_1.fields : [];
|
|
52477
|
-
|
|
52478
|
-
toCloneable_1 = function (v) {
|
|
52479
|
-
return v == null ? null : JSON.parse(JSON.stringify(v));
|
|
52480
|
-
};
|
|
52481
|
-
priorValues = new Map(((_g = snap === null || snap === void 0 ? void 0 : snap.currentStepFields) !== null && _g !== void 0 ? _g : []).map(function (f) { return [
|
|
52482
|
-
f.key,
|
|
52483
|
-
toCloneable_1(f.value)
|
|
52484
|
-
]; }));
|
|
52485
|
-
results = [];
|
|
52486
|
-
toApply = [];
|
|
52487
|
-
try {
|
|
52488
|
-
for (fields_1 = __values(fields), fields_1_1 = fields_1.next(); !fields_1_1.done; fields_1_1 = fields_1.next()) {
|
|
52489
|
-
item = fields_1_1.value;
|
|
52490
|
-
fieldKey = typeof (item === null || item === void 0 ? void 0 : item.fieldKey) === 'string' ? item.fieldKey : '';
|
|
52491
|
-
if (!fieldKey) {
|
|
52492
|
-
results.push({
|
|
52493
|
-
fieldKey: fieldKey,
|
|
52494
|
-
ok: false,
|
|
52495
|
-
errorType: 'shape_mismatch',
|
|
52496
|
-
error: 'fieldKey is required.'
|
|
52497
|
-
});
|
|
52498
|
-
continue;
|
|
52499
|
-
}
|
|
52500
|
-
validation = validateSetFieldValue(fieldKey, item.value, snap);
|
|
52501
|
-
if (!validation.ok) {
|
|
52502
|
-
results.push({
|
|
52503
|
-
fieldKey: fieldKey,
|
|
52504
|
-
ok: false,
|
|
52505
|
-
error: validation.error,
|
|
52506
|
-
errorType: validation.errorType
|
|
52507
|
-
});
|
|
52508
|
-
continue;
|
|
52509
|
-
}
|
|
52510
|
-
toApply.push({ fieldKey: fieldKey, value: validation.value });
|
|
52511
|
-
}
|
|
52512
|
-
}
|
|
52513
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
52514
|
-
finally {
|
|
52515
|
-
try {
|
|
52516
|
-
if (fields_1_1 && !fields_1_1.done && (_c = fields_1.return)) _c.call(fields_1);
|
|
52517
|
-
}
|
|
52518
|
-
finally { if (e_1) throw e_1.error; }
|
|
52519
|
-
}
|
|
52520
|
-
_k.label = 1;
|
|
53129
|
+
return [4 /*yield*/, dispatchSetFieldValue(instanceId, fields)];
|
|
52521
53130
|
case 1:
|
|
52522
|
-
|
|
52523
|
-
|
|
53131
|
+
output = _h.sent();
|
|
53132
|
+
chat.addToolOutput({
|
|
53133
|
+
tool: 'setFieldValue',
|
|
53134
|
+
toolCallId: toolCall.toolCallId,
|
|
53135
|
+
output: output
|
|
53136
|
+
});
|
|
53137
|
+
return [3 /*break*/, 12];
|
|
52524
53138
|
case 2:
|
|
52525
|
-
|
|
52526
|
-
|
|
52527
|
-
|
|
52528
|
-
|
|
52529
|
-
results.push({
|
|
52530
|
-
fieldKey: fieldKey,
|
|
52531
|
-
ok: true,
|
|
52532
|
-
value: value,
|
|
52533
|
-
priorValue: (_h = priorValues.get(fieldKey)) !== null && _h !== void 0 ? _h : null
|
|
52534
|
-
});
|
|
52535
|
-
}
|
|
52536
|
-
}
|
|
52537
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
52538
|
-
finally {
|
|
52539
|
-
try {
|
|
52540
|
-
if (toApply_1_1 && !toApply_1_1.done && (_d = toApply_1.return)) _d.call(toApply_1);
|
|
52541
|
-
}
|
|
52542
|
-
finally { if (e_2) throw e_2.error; }
|
|
52543
|
-
}
|
|
52544
|
-
return [3 /*break*/, 4];
|
|
53139
|
+
if (!(toolCall.toolName === 'clickElement')) return [3 /*break*/, 4];
|
|
53140
|
+
input_2 = ((_c = toolCall.input) !== null && _c !== void 0 ? _c : {});
|
|
53141
|
+
elementId = typeof input_2.elementId === 'string' ? input_2.elementId : '';
|
|
53142
|
+
return [4 /*yield*/, dispatchClickElement(instanceId, elementId, input_2.repeatIndex)];
|
|
52545
53143
|
case 3:
|
|
52546
|
-
|
|
52547
|
-
message = err_1 instanceof Error ? err_1.message : String(err_1);
|
|
52548
|
-
try {
|
|
52549
|
-
for (toApply_2 = __values(toApply), toApply_2_1 = toApply_2.next(); !toApply_2_1.done; toApply_2_1 = toApply_2.next()) {
|
|
52550
|
-
fieldKey = toApply_2_1.value.fieldKey;
|
|
52551
|
-
results.push({
|
|
52552
|
-
fieldKey: fieldKey,
|
|
52553
|
-
ok: false,
|
|
52554
|
-
errorType: 'apply_failed',
|
|
52555
|
-
error: message
|
|
52556
|
-
});
|
|
52557
|
-
}
|
|
52558
|
-
}
|
|
52559
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
52560
|
-
finally {
|
|
52561
|
-
try {
|
|
52562
|
-
if (toApply_2_1 && !toApply_2_1.done && (_e = toApply_2.return)) _e.call(toApply_2);
|
|
52563
|
-
}
|
|
52564
|
-
finally { if (e_3) throw e_3.error; }
|
|
52565
|
-
}
|
|
52566
|
-
return [3 /*break*/, 4];
|
|
52567
|
-
case 4:
|
|
53144
|
+
output = _h.sent();
|
|
52568
53145
|
chat.addToolOutput({
|
|
52569
|
-
tool: '
|
|
53146
|
+
tool: 'clickElement',
|
|
52570
53147
|
toolCallId: toolCall.toolCallId,
|
|
52571
|
-
output:
|
|
53148
|
+
output: output
|
|
52572
53149
|
});
|
|
52573
|
-
return [3 /*break*/,
|
|
53150
|
+
return [3 /*break*/, 12];
|
|
53151
|
+
case 4:
|
|
53152
|
+
if (!(toolCall.toolName === 'triggerTableAction')) return [3 /*break*/, 6];
|
|
53153
|
+
input_3 = ((_d = toolCall.input) !== null && _d !== void 0 ? _d : {});
|
|
53154
|
+
tableId = typeof input_3.tableId === 'string' ? input_3.tableId : '';
|
|
53155
|
+
rowIndex = typeof input_3.rowIndex === 'number' ? input_3.rowIndex : NaN;
|
|
53156
|
+
actionLabel = typeof input_3.actionLabel === 'string'
|
|
53157
|
+
? input_3.actionLabel
|
|
53158
|
+
: undefined;
|
|
53159
|
+
return [4 /*yield*/, dispatchTriggerTableAction(instanceId, tableId, rowIndex, actionLabel)];
|
|
52574
53160
|
case 5:
|
|
52575
|
-
|
|
52576
|
-
|
|
52577
|
-
|
|
52578
|
-
|
|
53161
|
+
output = _h.sent();
|
|
53162
|
+
chat.addToolOutput({
|
|
53163
|
+
tool: 'triggerTableAction',
|
|
53164
|
+
toolCallId: toolCall.toolCallId,
|
|
53165
|
+
output: output
|
|
53166
|
+
});
|
|
53167
|
+
return [3 /*break*/, 12];
|
|
52579
53168
|
case 6:
|
|
52580
|
-
|
|
53169
|
+
if (!(toolCall.toolName === 'addTableRow')) return [3 /*break*/, 8];
|
|
53170
|
+
input_4 = ((_e = toolCall.input) !== null && _e !== void 0 ? _e : {});
|
|
53171
|
+
tableId = typeof input_4.tableId === 'string' ? input_4.tableId : '';
|
|
53172
|
+
return [4 /*yield*/, dispatchAddTableRow(instanceId, tableId)];
|
|
53173
|
+
case 7:
|
|
53174
|
+
output = _h.sent();
|
|
52581
53175
|
chat.addToolOutput({
|
|
52582
|
-
tool: '
|
|
53176
|
+
tool: 'addTableRow',
|
|
53177
|
+
toolCallId: toolCall.toolCallId,
|
|
53178
|
+
output: output
|
|
53179
|
+
});
|
|
53180
|
+
return [3 /*break*/, 12];
|
|
53181
|
+
case 8:
|
|
53182
|
+
if (!(toolCall.toolName === 'deleteTableRow')) return [3 /*break*/, 10];
|
|
53183
|
+
input_5 = ((_f = toolCall.input) !== null && _f !== void 0 ? _f : {});
|
|
53184
|
+
tableId = typeof input_5.tableId === 'string' ? input_5.tableId : '';
|
|
53185
|
+
rowIndex = typeof input_5.rowIndex === 'number' ? input_5.rowIndex : NaN;
|
|
53186
|
+
return [4 /*yield*/, dispatchDeleteTableRow(instanceId, tableId, rowIndex)];
|
|
53187
|
+
case 9:
|
|
53188
|
+
output = _h.sent();
|
|
53189
|
+
chat.addToolOutput({
|
|
53190
|
+
tool: 'deleteTableRow',
|
|
53191
|
+
toolCallId: toolCall.toolCallId,
|
|
53192
|
+
output: output
|
|
53193
|
+
});
|
|
53194
|
+
return [3 /*break*/, 12];
|
|
53195
|
+
case 10:
|
|
53196
|
+
if (!(toolCall.toolName === 'setTableCellValue')) return [3 /*break*/, 12];
|
|
53197
|
+
input_6 = ((_g = toolCall.input) !== null && _g !== void 0 ? _g : {});
|
|
53198
|
+
tableId = typeof input_6.tableId === 'string' ? input_6.tableId : '';
|
|
53199
|
+
cells = Array.isArray(input_6.cells)
|
|
53200
|
+
? input_6.cells
|
|
53201
|
+
: [];
|
|
53202
|
+
return [4 /*yield*/, dispatchSetTableCellValue(instanceId, tableId, cells)];
|
|
53203
|
+
case 11:
|
|
53204
|
+
output = _h.sent();
|
|
53205
|
+
chat.addToolOutput({
|
|
53206
|
+
tool: 'setTableCellValue',
|
|
52583
53207
|
toolCallId: toolCall.toolCallId,
|
|
52584
53208
|
output: output
|
|
52585
53209
|
});
|
|
52586
|
-
|
|
52587
|
-
case
|
|
53210
|
+
_h.label = 12;
|
|
53211
|
+
case 12: return [2 /*return*/];
|
|
52588
53212
|
}
|
|
52589
53213
|
});
|
|
52590
53214
|
});
|
|
@@ -52612,7 +53236,7 @@ var AssistantChat = function (_a) {
|
|
|
52612
53236
|
chat: activeChat
|
|
52613
53237
|
}), rawMessages = _t.messages, sendMessage = _t.sendMessage, status = _t.status, error = _t.error;
|
|
52614
53238
|
var messages = useMemo(function () {
|
|
52615
|
-
var
|
|
53239
|
+
var e_1, _a;
|
|
52616
53240
|
var _b, _c;
|
|
52617
53241
|
var combined = [];
|
|
52618
53242
|
try {
|
|
@@ -52629,12 +53253,12 @@ var AssistantChat = function (_a) {
|
|
|
52629
53253
|
}
|
|
52630
53254
|
}
|
|
52631
53255
|
}
|
|
52632
|
-
catch (
|
|
53256
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
52633
53257
|
finally {
|
|
52634
53258
|
try {
|
|
52635
53259
|
if (rawMessages_1_1 && !rawMessages_1_1.done && (_a = rawMessages_1.return)) _a.call(rawMessages_1);
|
|
52636
53260
|
}
|
|
52637
|
-
finally { if (
|
|
53261
|
+
finally { if (e_1) throw e_1.error; }
|
|
52638
53262
|
}
|
|
52639
53263
|
return combined;
|
|
52640
53264
|
}, [rawMessages]);
|