@langgraph-js/ui 5.7.2 → 5.9.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/dist/assets/{arc-DsgW0fW0.js → arc-BfmqOAzH.js} +1 -1
- package/dist/assets/{architectureDiagram-VXUJARFQ-x6jPEiVb.js → architectureDiagram-VXUJARFQ-CR-DxDQe.js} +1 -1
- package/dist/assets/{blockDiagram-VD42YOAC-CtC7rOkz.js → blockDiagram-VD42YOAC-DCNLERU4.js} +1 -1
- package/dist/assets/{c4Diagram-YG6GDRKO-B0Bhovp6.js → c4Diagram-YG6GDRKO-B-h75Ehj.js} +1 -1
- package/dist/assets/channel-B-Ir2aLk.js +1 -0
- package/dist/assets/{chunk-4BX2VUAB-7nlfvZIs.js → chunk-4BX2VUAB-CsVd9YaL.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-CEUhaTkt.js → chunk-55IACEB6-MINAEGAH.js} +1 -1
- package/dist/assets/{chunk-B4BG7PRW-3Je1T-6D.js → chunk-B4BG7PRW-B7HG_dl-.js} +1 -1
- package/dist/assets/{chunk-DI55MBZ5-CibwD6Tg.js → chunk-DI55MBZ5-BNY4gsO4.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-DkqBqoF9.js → chunk-FMBD7UC4-CCDxNRfl.js} +1 -1
- package/dist/assets/{chunk-QN33PNHL-DSoehSAx.js → chunk-QN33PNHL-AxAKYGO1.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-CAcu9F3O.js → chunk-QZHKN3VN-Dg-MPdWz.js} +1 -1
- package/dist/assets/{chunk-TZMSLE5B-CS59_8HR.js → chunk-TZMSLE5B-B5BoSexz.js} +1 -1
- package/dist/assets/classDiagram-2ON5EDUG-KRMohyse.js +1 -0
- package/dist/assets/classDiagram-v2-WZHVMYZB-KRMohyse.js +1 -0
- package/dist/assets/clone-DEPdDla2.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-CcvTmZ3l.js → cose-bilkent-S5V4N54A-DzCU57st.js} +1 -1
- package/dist/assets/{dagre-6UL2VRFP-Du0L8eIB.js → dagre-6UL2VRFP-CvzCdct9.js} +1 -1
- package/dist/assets/{diagram-PSM6KHXK-QCoayD06.js → diagram-PSM6KHXK-DQp8nFih.js} +1 -1
- package/dist/assets/{diagram-QEK2KX5R-DOyrrhCz.js → diagram-QEK2KX5R-BymmZFMR.js} +1 -1
- package/dist/assets/{diagram-S2PKOQOG-KjypfMN6.js → diagram-S2PKOQOG-Du_ZOJ4Z.js} +1 -1
- package/dist/assets/{erDiagram-Q2GNP2WA-BN-9XTVy.js → erDiagram-Q2GNP2WA-oJC0hpEa.js} +1 -1
- package/dist/assets/{flowDiagram-NV44I4VS-BeFTT0TJ.js → flowDiagram-NV44I4VS-BltxLXlg.js} +1 -1
- package/dist/assets/{ganttDiagram-LVOFAZNH-1AE61yJv.js → ganttDiagram-LVOFAZNH-CQG3OUeq.js} +1 -1
- package/dist/assets/{gitGraphDiagram-NY62KEGX-aTUWjzWl.js → gitGraphDiagram-NY62KEGX-DLnlvrQO.js} +1 -1
- package/dist/assets/{graph-uuboXTUX.js → graph-dvdCjCPI.js} +1 -1
- package/dist/assets/index--0bUybG5.css +1 -0
- package/dist/assets/{index-DuV4Cs93.js → index-Btz90Jgh.js} +142 -133
- package/dist/assets/{infoDiagram-F6ZHWCRC-CQen-ygj.js → infoDiagram-F6ZHWCRC-B2p6Lh2E.js} +1 -1
- package/dist/assets/{isUndefined-B1VZkTi-.js → isUndefined-DsUxPq0w.js} +1 -1
- package/dist/assets/{journeyDiagram-XKPGCS4Q-_d3Y3lJU.js → journeyDiagram-XKPGCS4Q-AttZZMcW.js} +1 -1
- package/dist/assets/{kanban-definition-3W4ZIXB7-Dxarq9GE.js → kanban-definition-3W4ZIXB7-zbDWZlwA.js} +1 -1
- package/dist/assets/{layout-Cjc7wP1L.js → layout-CX2YTRdB.js} +1 -1
- package/dist/assets/{mermaid.core-BpzyNF0N.js → mermaid.core-B7KFw-gr.js} +5 -5
- package/dist/assets/{min-iWVu4DkI.js → min-DzVwS8Gh.js} +1 -1
- package/dist/assets/{mindmap-definition-VGOIOE7T-CnAMXH16.js → mindmap-definition-VGOIOE7T-Czyc_Waa.js} +1 -1
- package/dist/assets/{pieDiagram-ADFJNKIX-jQmVw15z.js → pieDiagram-ADFJNKIX-B4u-XAvT.js} +1 -1
- package/dist/assets/{quadrantDiagram-AYHSOK5B-CdR8ErX6.js → quadrantDiagram-AYHSOK5B-CFaA-42r.js} +1 -1
- package/dist/assets/{requirementDiagram-UZGBJVZJ-DRe2cRaP.js → requirementDiagram-UZGBJVZJ-CDMRDtAl.js} +1 -1
- package/dist/assets/{sankeyDiagram-TZEHDZUN-CCxPdCL6.js → sankeyDiagram-TZEHDZUN-Cu4JwYXj.js} +1 -1
- package/dist/assets/{sequenceDiagram-WL72ISMW-DEqPM-5z.js → sequenceDiagram-WL72ISMW-Bl3_kb1L.js} +1 -1
- package/dist/assets/{stateDiagram-FKZM4ZOC-BJqbxGAU.js → stateDiagram-FKZM4ZOC-C0hPykfN.js} +1 -1
- package/dist/assets/stateDiagram-v2-4FDKWEC3-CQaUfFBF.js +1 -0
- package/dist/assets/{timeline-definition-IT6M3QCI-C3oBdaQs.js → timeline-definition-IT6M3QCI-CGiaTue5.js} +1 -1
- package/dist/assets/{treemap-KMMF4GRG-Cg2H1ebp.js → treemap-KMMF4GRG-BUFR62lA.js} +1 -1
- package/dist/assets/{xychartDiagram-PRI3JC2R-C0KJkN_M.js → xychartDiagram-PRI3JC2R-DbHFFLEQ.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +2 -2
- package/src/chat/components/HistoryList.tsx +250 -45
- package/src/chat/components/MessageAI.tsx +6 -3
- package/src/chat/components/Reasoning.tsx +2 -2
- package/dist/assets/channel-CYykpNsh.js +0 -1
- package/dist/assets/classDiagram-2ON5EDUG-DEA6c_Xf.js +0 -1
- package/dist/assets/classDiagram-v2-WZHVMYZB-DEA6c_Xf.js +0 -1
- package/dist/assets/clone-Du_gs0pm.js +0 -1
- package/dist/assets/index-CKXVIUJM.css +0 -1
- package/dist/assets/stateDiagram-v2-4FDKWEC3-CILBmBJc.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Sc=Object.defineProperty;var Ic=(n,e,t)=>e in n?Sc(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var Ze=(n,e,t)=>Ic(n,typeof e!="symbol"?e+"":e,t);import{aN as Cc,aO as Nc,O as xl,aP as wc,x as Jt,ao as _c,E as Bs,G as Zn,H as ae,P as Vs,aQ as Sl,an as Lc,aj as Oc,aR as he,aS as Il,aT as bc,aU as Pc,al as Mc,aV as ya,F as Dc,aW as Fc,aX as Gc,aY as Me,y as C,aZ as Ks,ap as Ne,ar as N,v as kt,A as le,B as D,a_ as pi,S as Ta,a$ as Y,at as Qt,b0 as Uc,ay as ht}from"./index-DuV4Cs93.js";import{m as x,f as Zt,e as Ws,d as Bc}from"./min-iWVu4DkI.js";import{v as z,b as Vc,i as Ye,f as $e}from"./isUndefined-B1VZkTi-.js";import{c as ne}from"./clone-Du_gs0pm.js";var Kc=Object.prototype,Wc=Kc.hasOwnProperty,ke=Cc(function(n,e){if(Nc(e)||xl(e)){wc(e,Jt(e),n);return}for(var t in e)Wc.call(e,t)&&_c(n,t,e[t])});function er(n){for(var e=-1,t=n==null?0:n.length,r=0,i=[];++e<t;){var s=n[e];s&&(i[r++]=s)}return i}function jc(n,e,t,r){for(var i=-1,s=n==null?0:n.length;++i<s;){var a=n[i];e(r,a,t(a),n)}return r}function Hc(n,e,t,r){return Bs(n,function(i,s,a){e(r,i,t(i),a)}),r}function zc(n,e){return function(t,r){var i=ae(t)?jc:Hc,s=e?e():{};return i(t,n,Zn(r),s)}}function Q(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:Vs(e),Sl(n,e<0?0:e,r)):[]}function Yn(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:Vs(e),e=r-e,Sl(n,0,e<0?0:e)):[]}function qc(n,e){for(var t=-1,r=n==null?0:n.length;++t<r;)if(!e(n[t],t,n))return!1;return!0}function Yc(n,e){var t=!0;return Bs(n,function(r,i,s){return t=!!e(r,i,s),t}),t}function be(n,e,t){var r=ae(n)?qc:Yc;return r(n,Zn(e))}function Pe(n){return n&&n.length?n[0]:void 0}function Ee(n,e){return Lc(x(n,e),1)}var Xc=Object.prototype,Jc=Xc.hasOwnProperty,Qc=zc(function(n,e,t){Jc.call(n,t)?n[t].push(e):Oc(n,t,[e])}),Zc=Math.max;function de(n,e,t,r){n=xl(n)?n:z(n),t=t?Vs(t):0;var i=n.length;return t<0&&(t=Zc(i+t,0)),he(n)?t<=i&&n.indexOf(e,t)>-1:!!i&&Il(n,e,t)>-1}function Ra(n,e,t){var r=n==null?0:n.length;if(!r)return-1;var i=0;return Il(n,e,i)}var ed="[object RegExp]";function td(n){return bc(n)&&Pc(n)==ed}var va=ya&&ya.isRegExp,Xe=va?Mc(va):td,nd="Expected a function";function rd(n){if(typeof n!="function")throw new TypeError(nd);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}function mi(n,e){var t=ae(n)?Dc:Vc;return t(n,rd(Zn(e)))}function id(n,e){var t;return Bs(n,function(r,i,s){return t=e(r,i,s),!t}),!!t}function Cl(n,e,t){var r=ae(n)?Fc:id;return r(n,Zn(e))}function sd(n,e){return n&&n.length?Gc(n,Zn(e)):[]}function se(n){return typeof n=="object"&&n!==null&&typeof n.$type=="string"}function Ue(n){return typeof n=="object"&&n!==null&&typeof n.$refText=="string"}function ad(n){return typeof n=="object"&&n!==null&&typeof n.name=="string"&&typeof n.type=="string"&&typeof n.path=="string"}function wr(n){return typeof n=="object"&&n!==null&&se(n.container)&&Ue(n.reference)&&typeof n.message=="string"}class Nl{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return se(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[t];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,t);return r[t]=s,s}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function Xn(n){return typeof n=="object"&&n!==null&&Array.isArray(n.content)}function wl(n){return typeof n=="object"&&n!==null&&typeof n.tokenType=="object"}function _l(n){return Xn(n)&&typeof n.fullText=="string"}class Z{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){const e=[],t=this.iterator();let r;do r=t.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,t){const r=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new Z(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),t=>{let r;if(!t.firstDone){do if(r=this.nextFn(t.first),!r.done)return r;while(!r.done);t.firstDone=!0}do if(r=t.iterator.next(),!r.done)return r;while(!r.done);return ve})}join(e=","){const t=this.iterator();let r="",i,s=!1;do i=t.next(),i.done||(s&&(r+=e),r+=od(i.value)),s=!0;while(!i.done);return r}indexOf(e,t=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;)e(i.value,r),i=t.next(),r++}map(e){return new Z(this.startFn,t=>{const{done:r,value:i}=this.nextFn(t);return r?ve:{done:!1,value:e(i)}})}filter(e){return new Z(this.startFn,t=>{let r;do if(r=this.nextFn(t),!r.done&&e(r.value))return r;while(!r.done);return ve})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){const r=this.iterator();let i=t,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,t,r);return s===void 0?i.value:t(s,i.value)}find(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;){if(e(i.value))return r;i=t.next(),r++}return-1}includes(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(e){return new Z(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const s=t.iterator.next();if(s.done)t.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(t.this);if(!r){const s=e(i);if(jr(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return ve})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new Z(()=>({this:t.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}const{done:i,value:s}=t.nextFn(r.this);if(!i)if(jr(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return ve})}head(){const t=this.iterator().next();if(!t.done)return t.value}tail(e=1){return new Z(()=>{const t=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(t).done)return t;return t},this.nextFn)}limit(e){return new Z(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?ve:this.nextFn(t.state)))}distinct(e){return new Z(()=>({set:new Set,internalState:this.startFn()}),t=>{let r;do if(r=this.nextFn(t.internalState),!r.done){const i=e?e(r.value):r.value;if(!t.set.has(i))return t.set.add(i),r}while(!r.done);return ve})}exclude(e,t){const r=new Set;for(const i of e){const s=t?t(i):i;r.add(s)}return this.filter(i=>{const s=t?t(i):i;return!r.has(s)})}}function od(n){return typeof n=="string"?n:typeof n>"u"?"undefined":typeof n.toString=="function"?n.toString():Object.prototype.toString.call(n)}function jr(n){return!!n&&typeof n[Symbol.iterator]=="function"}const ld=new Z(()=>{},()=>ve),ve=Object.freeze({done:!0,value:void 0});function ee(...n){if(n.length===1){const e=n[0];if(e instanceof Z)return e;if(jr(e))return new Z(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new Z(()=>({index:0}),t=>t.index<e.length?{done:!1,value:e[t.index++]}:ve)}return n.length>1?new Z(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<n.length){const t=n[e.collIndex++];jr(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<n.length);return ve}):ld}class js extends Z{constructor(e,t,r){super(()=>({iterators:r!=null&&r.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const a=i.iterators[i.iterators.length-1].next();if(a.done)i.iterators.pop();else return i.iterators.push(t(a.value)[Symbol.iterator]()),a}return ve})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var ss;(function(n){function e(s){return s.reduce((a,o)=>a+o,0)}n.sum=e;function t(s){return s.reduce((a,o)=>a*o,0)}n.product=t;function r(s){return s.reduce((a,o)=>Math.min(a,o))}n.min=r;function i(s){return s.reduce((a,o)=>Math.max(a,o))}n.max=i})(ss||(ss={}));function as(n){return new js(n,e=>Xn(e)?e.content:[],{includeRoot:!0})}function ud(n,e){for(;n.container;)if(n=n.container,n===e)return!0;return!1}function os(n){return{start:{character:n.startColumn-1,line:n.startLine-1},end:{character:n.endColumn,line:n.endLine-1}}}function Hr(n){if(!n)return;const{offset:e,end:t,range:r}=n;return{range:r,offset:e,end:t,length:t-e}}var He;(function(n){n[n.Before=0]="Before",n[n.After=1]="After",n[n.OverlapFront=2]="OverlapFront",n[n.OverlapBack=3]="OverlapBack",n[n.Inside=4]="Inside",n[n.Outside=5]="Outside"})(He||(He={}));function cd(n,e){if(n.end.line<e.start.line||n.end.line===e.start.line&&n.end.character<=e.start.character)return He.Before;if(n.start.line>e.end.line||n.start.line===e.end.line&&n.start.character>=e.end.character)return He.After;const t=n.start.line>e.start.line||n.start.line===e.start.line&&n.start.character>=e.start.character,r=n.end.line<e.end.line||n.end.line===e.end.line&&n.end.character<=e.end.character;return t&&r?He.Inside:t?He.OverlapBack:r?He.OverlapFront:He.Outside}function dd(n,e){return cd(n,e)>He.After}const fd=/^[\w\p{L}]$/u;function hd(n,e){if(n){const t=pd(n,!0);if(t&&Aa(t,e))return t;if(_l(n)){const r=n.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=n.content[i];if(Aa(s,e))return s}}}}function Aa(n,e){return wl(n)&&e.includes(n.tokenType.name)}function pd(n,e=!0){for(;n.container;){const t=n.container;let r=t.content.indexOf(n);for(;r>0;){r--;const i=t.content[r];if(e||!i.hidden)return i}n=t}}class Ll extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function tr(n){throw new Error("Error! The input value was not handled.")}const lr="AbstractRule",ur="AbstractType",_i="Condition",Ea="TypeDefinition",Li="ValueLiteral",fn="AbstractElement";function md(n){return M.isInstance(n,fn)}const cr="ArrayLiteral",dr="ArrayType",hn="BooleanLiteral";function gd(n){return M.isInstance(n,hn)}const pn="Conjunction";function yd(n){return M.isInstance(n,pn)}const mn="Disjunction";function Td(n){return M.isInstance(n,mn)}const fr="Grammar",Oi="GrammarImport",gn="InferredType";function Ol(n){return M.isInstance(n,gn)}const yn="Interface";function bl(n){return M.isInstance(n,yn)}const bi="NamedArgument",Tn="Negation";function Rd(n){return M.isInstance(n,Tn)}const hr="NumberLiteral",pr="Parameter",Rn="ParameterReference";function vd(n){return M.isInstance(n,Rn)}const vn="ParserRule";function we(n){return M.isInstance(n,vn)}const mr="ReferenceType",_r="ReturnType";function Ad(n){return M.isInstance(n,_r)}const An="SimpleType";function Ed(n){return M.isInstance(n,An)}const gr="StringLiteral",wt="TerminalRule";function $t(n){return M.isInstance(n,wt)}const En="Type";function Pl(n){return M.isInstance(n,En)}const Pi="TypeAttribute",yr="UnionType",kn="Action";function gi(n){return M.isInstance(n,kn)}const $n="Alternatives";function Ml(n){return M.isInstance(n,$n)}const xn="Assignment";function yt(n){return M.isInstance(n,xn)}const Sn="CharacterRange";function kd(n){return M.isInstance(n,Sn)}const In="CrossReference";function Hs(n){return M.isInstance(n,In)}const Cn="EndOfFile";function $d(n){return M.isInstance(n,Cn)}const Nn="Group";function zs(n){return M.isInstance(n,Nn)}const wn="Keyword";function Tt(n){return M.isInstance(n,wn)}const _n="NegatedToken";function xd(n){return M.isInstance(n,_n)}const Ln="RegexToken";function Sd(n){return M.isInstance(n,Ln)}const On="RuleCall";function Rt(n){return M.isInstance(n,On)}const bn="TerminalAlternatives";function Id(n){return M.isInstance(n,bn)}const Pn="TerminalGroup";function Cd(n){return M.isInstance(n,Pn)}const Mn="TerminalRuleCall";function Nd(n){return M.isInstance(n,Mn)}const Dn="UnorderedGroup";function Dl(n){return M.isInstance(n,Dn)}const Fn="UntilToken";function wd(n){return M.isInstance(n,Fn)}const Gn="Wildcard";function _d(n){return M.isInstance(n,Gn)}class Fl extends Nl{getAllTypes(){return[fn,lr,ur,kn,$n,cr,dr,xn,hn,Sn,_i,pn,In,mn,Cn,fr,Oi,Nn,gn,yn,wn,bi,_n,Tn,hr,pr,Rn,vn,mr,Ln,_r,On,An,gr,bn,Pn,wt,Mn,En,Pi,Ea,yr,Dn,Fn,Li,Gn]}computeIsSubtype(e,t){switch(e){case kn:case $n:case xn:case Sn:case In:case Cn:case Nn:case wn:case _n:case Ln:case On:case bn:case Pn:case Mn:case Dn:case Fn:case Gn:return this.isSubtype(fn,t);case cr:case hr:case gr:return this.isSubtype(Li,t);case dr:case mr:case An:case yr:return this.isSubtype(Ea,t);case hn:return this.isSubtype(_i,t)||this.isSubtype(Li,t);case pn:case mn:case Tn:case Rn:return this.isSubtype(_i,t);case gn:case yn:case En:return this.isSubtype(ur,t);case vn:return this.isSubtype(lr,t)||this.isSubtype(ur,t);case wt:return this.isSubtype(lr,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return ur;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return lr;case"Grammar:usedGrammars":return fr;case"NamedArgument:parameter":case"ParameterReference:parameter":return pr;case"TerminalRuleCall:rule":return wt;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case fn:return{name:fn,properties:[{name:"cardinality"},{name:"lookahead"}]};case cr:return{name:cr,properties:[{name:"elements",defaultValue:[]}]};case dr:return{name:dr,properties:[{name:"elementType"}]};case hn:return{name:hn,properties:[{name:"true",defaultValue:!1}]};case pn:return{name:pn,properties:[{name:"left"},{name:"right"}]};case mn:return{name:mn,properties:[{name:"left"},{name:"right"}]};case fr:return{name:fr,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case Oi:return{name:Oi,properties:[{name:"path"}]};case gn:return{name:gn,properties:[{name:"name"}]};case yn:return{name:yn,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case bi:return{name:bi,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case Tn:return{name:Tn,properties:[{name:"value"}]};case hr:return{name:hr,properties:[{name:"value"}]};case pr:return{name:pr,properties:[{name:"name"}]};case Rn:return{name:Rn,properties:[{name:"parameter"}]};case vn:return{name:vn,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case mr:return{name:mr,properties:[{name:"referenceType"}]};case _r:return{name:_r,properties:[{name:"name"}]};case An:return{name:An,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case gr:return{name:gr,properties:[{name:"value"}]};case wt:return{name:wt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case En:return{name:En,properties:[{name:"name"},{name:"type"}]};case Pi:return{name:Pi,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case yr:return{name:yr,properties:[{name:"types",defaultValue:[]}]};case kn:return{name:kn,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case $n:return{name:$n,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case xn:return{name:xn,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case Sn:return{name:Sn,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case In:return{name:In,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case Cn:return{name:Cn,properties:[{name:"cardinality"},{name:"lookahead"}]};case Nn:return{name:Nn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case wn:return{name:wn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case _n:return{name:_n,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Ln:return{name:Ln,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case On:return{name:On,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case bn:return{name:bn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Pn:return{name:Pn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Mn:return{name:Mn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Dn:return{name:Dn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Fn:return{name:Fn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Gn:return{name:Gn,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const M=new Fl;function Ld(n){for(const[e,t]of Object.entries(n))e.startsWith("$")||(Array.isArray(t)?t.forEach((r,i)=>{se(r)&&(r.$container=n,r.$containerProperty=e,r.$containerIndex=i)}):se(t)&&(t.$container=n,t.$containerProperty=e))}function yi(n,e){let t=n;for(;t;){if(e(t))return t;t=t.$container}}function et(n){const t=ls(n).$document;if(!t)throw new Error("AST node has no document.");return t}function ls(n){for(;n.$container;)n=n.$container;return n}function qs(n,e){if(!n)throw new Error("Node must be an AstNode.");const t=e==null?void 0:e.range;return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=n[i];if(se(s)){if(r.keyIndex++,ka(s,t))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const a=r.arrayIndex++,o=s[a];if(se(o)&&ka(o,t))return{done:!1,value:o}}r.arrayIndex=0}}r.keyIndex++}return ve})}function nr(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new js(n,t=>qs(t,e))}function Lt(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new js(n,t=>qs(t,e),{includeRoot:!0})}function ka(n,e){var t;if(!e)return!0;const r=(t=n.$cstNode)===null||t===void 0?void 0:t.range;return r?dd(r,e):!1}function Gl(n){return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const t=e.keys[e.keyIndex];if(!t.startsWith("$")){const r=n[t];if(Ue(r))return e.keyIndex++,{done:!1,value:{reference:r,container:n,property:t}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(Ue(s))return{done:!1,value:{reference:s,container:n,property:t,index:i}}}e.arrayIndex=0}}e.keyIndex++}return ve})}function Od(n,e){const t=n.getTypeMetaData(e.$type),r=e;for(const i of t.properties)i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=Ul(i.defaultValue))}function Ul(n){return Array.isArray(n)?[...n.map(Ul)]:n}function w(n){return n.charCodeAt(0)}function Mi(n,e){Array.isArray(n)?n.forEach(function(t){e.push(t)}):e.push(n)}function un(n,e){if(n[e]===!0)throw"duplicate flag "+e;n[e],n[e]=!0}function Nt(n){if(n===void 0)throw Error("Internal Error - Should never get here!");return!0}function bd(){throw Error("Internal Error - Should never get here!")}function $a(n){return n.type==="Character"}const zr=[];for(let n=w("0");n<=w("9");n++)zr.push(n);const qr=[w("_")].concat(zr);for(let n=w("a");n<=w("z");n++)qr.push(n);for(let n=w("A");n<=w("Z");n++)qr.push(n);const xa=[w(" "),w("\f"),w(`
|
|
1
|
+
var Sc=Object.defineProperty;var Ic=(n,e,t)=>e in n?Sc(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var Ze=(n,e,t)=>Ic(n,typeof e!="symbol"?e+"":e,t);import{aN as Cc,aO as Nc,O as xl,aP as wc,x as Jt,ao as _c,E as Bs,G as Zn,H as ae,P as Vs,aQ as Sl,an as Lc,aj as Oc,aR as he,aS as Il,aT as bc,aU as Pc,al as Mc,aV as ya,F as Dc,aW as Fc,aX as Gc,aY as Me,y as C,aZ as Ks,ap as Ne,ar as N,v as kt,A as le,B as D,a_ as pi,S as Ta,a$ as Y,at as Qt,b0 as Uc,ay as ht}from"./index-Btz90Jgh.js";import{m as x,f as Zt,e as Ws,d as Bc}from"./min-DzVwS8Gh.js";import{v as z,b as Vc,i as Ye,f as $e}from"./isUndefined-DsUxPq0w.js";import{c as ne}from"./clone-DEPdDla2.js";var Kc=Object.prototype,Wc=Kc.hasOwnProperty,ke=Cc(function(n,e){if(Nc(e)||xl(e)){wc(e,Jt(e),n);return}for(var t in e)Wc.call(e,t)&&_c(n,t,e[t])});function er(n){for(var e=-1,t=n==null?0:n.length,r=0,i=[];++e<t;){var s=n[e];s&&(i[r++]=s)}return i}function jc(n,e,t,r){for(var i=-1,s=n==null?0:n.length;++i<s;){var a=n[i];e(r,a,t(a),n)}return r}function Hc(n,e,t,r){return Bs(n,function(i,s,a){e(r,i,t(i),a)}),r}function zc(n,e){return function(t,r){var i=ae(t)?jc:Hc,s=e?e():{};return i(t,n,Zn(r),s)}}function Q(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:Vs(e),Sl(n,e<0?0:e,r)):[]}function Yn(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:Vs(e),e=r-e,Sl(n,0,e<0?0:e)):[]}function qc(n,e){for(var t=-1,r=n==null?0:n.length;++t<r;)if(!e(n[t],t,n))return!1;return!0}function Yc(n,e){var t=!0;return Bs(n,function(r,i,s){return t=!!e(r,i,s),t}),t}function be(n,e,t){var r=ae(n)?qc:Yc;return r(n,Zn(e))}function Pe(n){return n&&n.length?n[0]:void 0}function Ee(n,e){return Lc(x(n,e),1)}var Xc=Object.prototype,Jc=Xc.hasOwnProperty,Qc=zc(function(n,e,t){Jc.call(n,t)?n[t].push(e):Oc(n,t,[e])}),Zc=Math.max;function de(n,e,t,r){n=xl(n)?n:z(n),t=t?Vs(t):0;var i=n.length;return t<0&&(t=Zc(i+t,0)),he(n)?t<=i&&n.indexOf(e,t)>-1:!!i&&Il(n,e,t)>-1}function Ra(n,e,t){var r=n==null?0:n.length;if(!r)return-1;var i=0;return Il(n,e,i)}var ed="[object RegExp]";function td(n){return bc(n)&&Pc(n)==ed}var va=ya&&ya.isRegExp,Xe=va?Mc(va):td,nd="Expected a function";function rd(n){if(typeof n!="function")throw new TypeError(nd);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}function mi(n,e){var t=ae(n)?Dc:Vc;return t(n,rd(Zn(e)))}function id(n,e){var t;return Bs(n,function(r,i,s){return t=e(r,i,s),!t}),!!t}function Cl(n,e,t){var r=ae(n)?Fc:id;return r(n,Zn(e))}function sd(n,e){return n&&n.length?Gc(n,Zn(e)):[]}function se(n){return typeof n=="object"&&n!==null&&typeof n.$type=="string"}function Ue(n){return typeof n=="object"&&n!==null&&typeof n.$refText=="string"}function ad(n){return typeof n=="object"&&n!==null&&typeof n.name=="string"&&typeof n.type=="string"&&typeof n.path=="string"}function wr(n){return typeof n=="object"&&n!==null&&se(n.container)&&Ue(n.reference)&&typeof n.message=="string"}class Nl{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return se(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[t];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,t);return r[t]=s,s}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function Xn(n){return typeof n=="object"&&n!==null&&Array.isArray(n.content)}function wl(n){return typeof n=="object"&&n!==null&&typeof n.tokenType=="object"}function _l(n){return Xn(n)&&typeof n.fullText=="string"}class Z{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){const e=[],t=this.iterator();let r;do r=t.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,t){const r=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new Z(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),t=>{let r;if(!t.firstDone){do if(r=this.nextFn(t.first),!r.done)return r;while(!r.done);t.firstDone=!0}do if(r=t.iterator.next(),!r.done)return r;while(!r.done);return ve})}join(e=","){const t=this.iterator();let r="",i,s=!1;do i=t.next(),i.done||(s&&(r+=e),r+=od(i.value)),s=!0;while(!i.done);return r}indexOf(e,t=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;)e(i.value,r),i=t.next(),r++}map(e){return new Z(this.startFn,t=>{const{done:r,value:i}=this.nextFn(t);return r?ve:{done:!1,value:e(i)}})}filter(e){return new Z(this.startFn,t=>{let r;do if(r=this.nextFn(t),!r.done&&e(r.value))return r;while(!r.done);return ve})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){const r=this.iterator();let i=t,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,t,r);return s===void 0?i.value:t(s,i.value)}find(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;){if(e(i.value))return r;i=t.next(),r++}return-1}includes(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(e){return new Z(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const s=t.iterator.next();if(s.done)t.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(t.this);if(!r){const s=e(i);if(jr(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return ve})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new Z(()=>({this:t.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}const{done:i,value:s}=t.nextFn(r.this);if(!i)if(jr(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return ve})}head(){const t=this.iterator().next();if(!t.done)return t.value}tail(e=1){return new Z(()=>{const t=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(t).done)return t;return t},this.nextFn)}limit(e){return new Z(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?ve:this.nextFn(t.state)))}distinct(e){return new Z(()=>({set:new Set,internalState:this.startFn()}),t=>{let r;do if(r=this.nextFn(t.internalState),!r.done){const i=e?e(r.value):r.value;if(!t.set.has(i))return t.set.add(i),r}while(!r.done);return ve})}exclude(e,t){const r=new Set;for(const i of e){const s=t?t(i):i;r.add(s)}return this.filter(i=>{const s=t?t(i):i;return!r.has(s)})}}function od(n){return typeof n=="string"?n:typeof n>"u"?"undefined":typeof n.toString=="function"?n.toString():Object.prototype.toString.call(n)}function jr(n){return!!n&&typeof n[Symbol.iterator]=="function"}const ld=new Z(()=>{},()=>ve),ve=Object.freeze({done:!0,value:void 0});function ee(...n){if(n.length===1){const e=n[0];if(e instanceof Z)return e;if(jr(e))return new Z(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new Z(()=>({index:0}),t=>t.index<e.length?{done:!1,value:e[t.index++]}:ve)}return n.length>1?new Z(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<n.length){const t=n[e.collIndex++];jr(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<n.length);return ve}):ld}class js extends Z{constructor(e,t,r){super(()=>({iterators:r!=null&&r.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const a=i.iterators[i.iterators.length-1].next();if(a.done)i.iterators.pop();else return i.iterators.push(t(a.value)[Symbol.iterator]()),a}return ve})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var ss;(function(n){function e(s){return s.reduce((a,o)=>a+o,0)}n.sum=e;function t(s){return s.reduce((a,o)=>a*o,0)}n.product=t;function r(s){return s.reduce((a,o)=>Math.min(a,o))}n.min=r;function i(s){return s.reduce((a,o)=>Math.max(a,o))}n.max=i})(ss||(ss={}));function as(n){return new js(n,e=>Xn(e)?e.content:[],{includeRoot:!0})}function ud(n,e){for(;n.container;)if(n=n.container,n===e)return!0;return!1}function os(n){return{start:{character:n.startColumn-1,line:n.startLine-1},end:{character:n.endColumn,line:n.endLine-1}}}function Hr(n){if(!n)return;const{offset:e,end:t,range:r}=n;return{range:r,offset:e,end:t,length:t-e}}var He;(function(n){n[n.Before=0]="Before",n[n.After=1]="After",n[n.OverlapFront=2]="OverlapFront",n[n.OverlapBack=3]="OverlapBack",n[n.Inside=4]="Inside",n[n.Outside=5]="Outside"})(He||(He={}));function cd(n,e){if(n.end.line<e.start.line||n.end.line===e.start.line&&n.end.character<=e.start.character)return He.Before;if(n.start.line>e.end.line||n.start.line===e.end.line&&n.start.character>=e.end.character)return He.After;const t=n.start.line>e.start.line||n.start.line===e.start.line&&n.start.character>=e.start.character,r=n.end.line<e.end.line||n.end.line===e.end.line&&n.end.character<=e.end.character;return t&&r?He.Inside:t?He.OverlapBack:r?He.OverlapFront:He.Outside}function dd(n,e){return cd(n,e)>He.After}const fd=/^[\w\p{L}]$/u;function hd(n,e){if(n){const t=pd(n,!0);if(t&&Aa(t,e))return t;if(_l(n)){const r=n.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=n.content[i];if(Aa(s,e))return s}}}}function Aa(n,e){return wl(n)&&e.includes(n.tokenType.name)}function pd(n,e=!0){for(;n.container;){const t=n.container;let r=t.content.indexOf(n);for(;r>0;){r--;const i=t.content[r];if(e||!i.hidden)return i}n=t}}class Ll extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function tr(n){throw new Error("Error! The input value was not handled.")}const lr="AbstractRule",ur="AbstractType",_i="Condition",Ea="TypeDefinition",Li="ValueLiteral",fn="AbstractElement";function md(n){return M.isInstance(n,fn)}const cr="ArrayLiteral",dr="ArrayType",hn="BooleanLiteral";function gd(n){return M.isInstance(n,hn)}const pn="Conjunction";function yd(n){return M.isInstance(n,pn)}const mn="Disjunction";function Td(n){return M.isInstance(n,mn)}const fr="Grammar",Oi="GrammarImport",gn="InferredType";function Ol(n){return M.isInstance(n,gn)}const yn="Interface";function bl(n){return M.isInstance(n,yn)}const bi="NamedArgument",Tn="Negation";function Rd(n){return M.isInstance(n,Tn)}const hr="NumberLiteral",pr="Parameter",Rn="ParameterReference";function vd(n){return M.isInstance(n,Rn)}const vn="ParserRule";function we(n){return M.isInstance(n,vn)}const mr="ReferenceType",_r="ReturnType";function Ad(n){return M.isInstance(n,_r)}const An="SimpleType";function Ed(n){return M.isInstance(n,An)}const gr="StringLiteral",wt="TerminalRule";function $t(n){return M.isInstance(n,wt)}const En="Type";function Pl(n){return M.isInstance(n,En)}const Pi="TypeAttribute",yr="UnionType",kn="Action";function gi(n){return M.isInstance(n,kn)}const $n="Alternatives";function Ml(n){return M.isInstance(n,$n)}const xn="Assignment";function yt(n){return M.isInstance(n,xn)}const Sn="CharacterRange";function kd(n){return M.isInstance(n,Sn)}const In="CrossReference";function Hs(n){return M.isInstance(n,In)}const Cn="EndOfFile";function $d(n){return M.isInstance(n,Cn)}const Nn="Group";function zs(n){return M.isInstance(n,Nn)}const wn="Keyword";function Tt(n){return M.isInstance(n,wn)}const _n="NegatedToken";function xd(n){return M.isInstance(n,_n)}const Ln="RegexToken";function Sd(n){return M.isInstance(n,Ln)}const On="RuleCall";function Rt(n){return M.isInstance(n,On)}const bn="TerminalAlternatives";function Id(n){return M.isInstance(n,bn)}const Pn="TerminalGroup";function Cd(n){return M.isInstance(n,Pn)}const Mn="TerminalRuleCall";function Nd(n){return M.isInstance(n,Mn)}const Dn="UnorderedGroup";function Dl(n){return M.isInstance(n,Dn)}const Fn="UntilToken";function wd(n){return M.isInstance(n,Fn)}const Gn="Wildcard";function _d(n){return M.isInstance(n,Gn)}class Fl extends Nl{getAllTypes(){return[fn,lr,ur,kn,$n,cr,dr,xn,hn,Sn,_i,pn,In,mn,Cn,fr,Oi,Nn,gn,yn,wn,bi,_n,Tn,hr,pr,Rn,vn,mr,Ln,_r,On,An,gr,bn,Pn,wt,Mn,En,Pi,Ea,yr,Dn,Fn,Li,Gn]}computeIsSubtype(e,t){switch(e){case kn:case $n:case xn:case Sn:case In:case Cn:case Nn:case wn:case _n:case Ln:case On:case bn:case Pn:case Mn:case Dn:case Fn:case Gn:return this.isSubtype(fn,t);case cr:case hr:case gr:return this.isSubtype(Li,t);case dr:case mr:case An:case yr:return this.isSubtype(Ea,t);case hn:return this.isSubtype(_i,t)||this.isSubtype(Li,t);case pn:case mn:case Tn:case Rn:return this.isSubtype(_i,t);case gn:case yn:case En:return this.isSubtype(ur,t);case vn:return this.isSubtype(lr,t)||this.isSubtype(ur,t);case wt:return this.isSubtype(lr,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return ur;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return lr;case"Grammar:usedGrammars":return fr;case"NamedArgument:parameter":case"ParameterReference:parameter":return pr;case"TerminalRuleCall:rule":return wt;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case fn:return{name:fn,properties:[{name:"cardinality"},{name:"lookahead"}]};case cr:return{name:cr,properties:[{name:"elements",defaultValue:[]}]};case dr:return{name:dr,properties:[{name:"elementType"}]};case hn:return{name:hn,properties:[{name:"true",defaultValue:!1}]};case pn:return{name:pn,properties:[{name:"left"},{name:"right"}]};case mn:return{name:mn,properties:[{name:"left"},{name:"right"}]};case fr:return{name:fr,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case Oi:return{name:Oi,properties:[{name:"path"}]};case gn:return{name:gn,properties:[{name:"name"}]};case yn:return{name:yn,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case bi:return{name:bi,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case Tn:return{name:Tn,properties:[{name:"value"}]};case hr:return{name:hr,properties:[{name:"value"}]};case pr:return{name:pr,properties:[{name:"name"}]};case Rn:return{name:Rn,properties:[{name:"parameter"}]};case vn:return{name:vn,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case mr:return{name:mr,properties:[{name:"referenceType"}]};case _r:return{name:_r,properties:[{name:"name"}]};case An:return{name:An,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case gr:return{name:gr,properties:[{name:"value"}]};case wt:return{name:wt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case En:return{name:En,properties:[{name:"name"},{name:"type"}]};case Pi:return{name:Pi,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case yr:return{name:yr,properties:[{name:"types",defaultValue:[]}]};case kn:return{name:kn,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case $n:return{name:$n,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case xn:return{name:xn,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case Sn:return{name:Sn,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case In:return{name:In,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case Cn:return{name:Cn,properties:[{name:"cardinality"},{name:"lookahead"}]};case Nn:return{name:Nn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case wn:return{name:wn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case _n:return{name:_n,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Ln:return{name:Ln,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case On:return{name:On,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case bn:return{name:bn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Pn:return{name:Pn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Mn:return{name:Mn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Dn:return{name:Dn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Fn:return{name:Fn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Gn:return{name:Gn,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const M=new Fl;function Ld(n){for(const[e,t]of Object.entries(n))e.startsWith("$")||(Array.isArray(t)?t.forEach((r,i)=>{se(r)&&(r.$container=n,r.$containerProperty=e,r.$containerIndex=i)}):se(t)&&(t.$container=n,t.$containerProperty=e))}function yi(n,e){let t=n;for(;t;){if(e(t))return t;t=t.$container}}function et(n){const t=ls(n).$document;if(!t)throw new Error("AST node has no document.");return t}function ls(n){for(;n.$container;)n=n.$container;return n}function qs(n,e){if(!n)throw new Error("Node must be an AstNode.");const t=e==null?void 0:e.range;return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=n[i];if(se(s)){if(r.keyIndex++,ka(s,t))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const a=r.arrayIndex++,o=s[a];if(se(o)&&ka(o,t))return{done:!1,value:o}}r.arrayIndex=0}}r.keyIndex++}return ve})}function nr(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new js(n,t=>qs(t,e))}function Lt(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new js(n,t=>qs(t,e),{includeRoot:!0})}function ka(n,e){var t;if(!e)return!0;const r=(t=n.$cstNode)===null||t===void 0?void 0:t.range;return r?dd(r,e):!1}function Gl(n){return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const t=e.keys[e.keyIndex];if(!t.startsWith("$")){const r=n[t];if(Ue(r))return e.keyIndex++,{done:!1,value:{reference:r,container:n,property:t}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(Ue(s))return{done:!1,value:{reference:s,container:n,property:t,index:i}}}e.arrayIndex=0}}e.keyIndex++}return ve})}function Od(n,e){const t=n.getTypeMetaData(e.$type),r=e;for(const i of t.properties)i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=Ul(i.defaultValue))}function Ul(n){return Array.isArray(n)?[...n.map(Ul)]:n}function w(n){return n.charCodeAt(0)}function Mi(n,e){Array.isArray(n)?n.forEach(function(t){e.push(t)}):e.push(n)}function un(n,e){if(n[e]===!0)throw"duplicate flag "+e;n[e],n[e]=!0}function Nt(n){if(n===void 0)throw Error("Internal Error - Should never get here!");return!0}function bd(){throw Error("Internal Error - Should never get here!")}function $a(n){return n.type==="Character"}const zr=[];for(let n=w("0");n<=w("9");n++)zr.push(n);const qr=[w("_")].concat(zr);for(let n=w("a");n<=w("z");n++)qr.push(n);for(let n=w("A");n<=w("Z");n++)qr.push(n);const xa=[w(" "),w("\f"),w(`
|
|
2
2
|
`),w("\r"),w(" "),w("\v"),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w("\u2028"),w("\u2029"),w(" "),w(" "),w(" "),w("\uFEFF")],Pd=/[0-9a-fA-F]/,Tr=/[0-9]/,Md=/[1-9]/;class Bl{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");const t=this.disjunction();this.consumeChar("/");const r={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":un(r,"global");break;case"i":un(r,"ignoreCase");break;case"m":un(r,"multiLine");break;case"u":un(r,"unicode");break;case"y":un(r,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:t,loc:this.loc(0)}}disjunction(){const e=[],t=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){const e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){const e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let t;switch(this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead";break}Nt(t);const r=this.disjunction();return this.consumeChar(")"),{type:t,value:r,loc:this.loc(e)}}return bd()}quantifier(e=!1){let t;const r=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":const i=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:i,atMost:i};break;case",":let s;this.isDigit()?(s=this.integerIncludingZero(),t={atLeast:i,atMost:s}):t={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&t===void 0)return;Nt(t);break}if(!(e===!0&&t===void 0)&&Nt(t))return this.peekChar(0)==="?"?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(r),t}atom(){let e;const t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}if(e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),Nt(e))return e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[w(`
|
|
3
3
|
`),w("\r"),w("\u2028"),w("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=zr;break;case"D":e=zr,t=!0;break;case"s":e=xa;break;case"S":e=xa,t=!0;break;case"w":e=qr;break;case"W":e=qr,t=!0;break}if(Nt(e))return{type:"Set",value:e,complement:t}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=w("\f");break;case"n":e=w(`
|
|
4
4
|
`);break;case"r":e=w("\r");break;case"t":e=w(" ");break;case"v":e=w("\v");break}if(Nt(e))return{type:"Character",value:e}}controlLetterEscapeAtom(){this.consumeChar("c");const e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:w("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){const e=this.popChar();return{type:"Character",value:w(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case`
|
package/dist/assets/{xychartDiagram-PRI3JC2R-C0KJkN_M.js → xychartDiagram-PRI3JC2R-DbHFFLEQ.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as n,s as gi,g as xi,q as Xt,p as di,a as pi,b as fi,l as Nt,I as yi,d as mi,y as bi,F as Ct,E as Yt,G as Ai,L as wi,h as Ci,M as Si}from"./mermaid.core-
|
|
1
|
+
import{_ as n,s as gi,g as xi,q as Xt,p as di,a as pi,b as fi,l as Nt,I as yi,d as mi,y as bi,F as Ct,E as Yt,G as Ai,L as wi,h as Ci,M as Si}from"./mermaid.core-B7KFw-gr.js";import{o as Bt,n as Wt,q as zt}from"./index-Btz90Jgh.js";var mt=function(){var s=n(function(W,r,u,g){for(u=u||{},g=W.length;g--;u[W[g]]=r);return u},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],e=[1,3],a=[1,5],c=[1,6],d=[1,7],m=[1,5,10,12,14,16,18,19,21,23,34,35,36],b=[1,25],P=[1,26],I=[1,28],R=[1,29],L=[1,30],z=[1,31],F=[1,32],D=[1,33],V=[1,34],f=[1,35],C=[1,36],l=[1,37],M=[1,43],B=[1,42],U=[1,47],X=[1,50],h=[1,10,12,14,16,18,19,21,23,34,35,36],k=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],w=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],S=[1,64],$={trace:n(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:n(function(r,u,g,x,A,o,nt){var p=o.length-1;switch(A){case 5:x.setOrientation(o[p]);break;case 9:x.setDiagramTitle(o[p].text.trim());break;case 12:x.setLineData({text:"",type:"text"},o[p]);break;case 13:x.setLineData(o[p-1],o[p]);break;case 14:x.setBarData({text:"",type:"text"},o[p]);break;case 15:x.setBarData(o[p-1],o[p]);break;case 16:this.$=o[p].trim(),x.setAccTitle(this.$);break;case 17:case 18:this.$=o[p].trim(),x.setAccDescription(this.$);break;case 19:this.$=o[p-1];break;case 20:this.$=[Number(o[p-2]),...o[p]];break;case 21:this.$=[Number(o[p])];break;case 22:x.setXAxisTitle(o[p]);break;case 23:x.setXAxisTitle(o[p-1]);break;case 24:x.setXAxisTitle({type:"text",text:""});break;case 25:x.setXAxisBand(o[p]);break;case 26:x.setXAxisRangeData(Number(o[p-2]),Number(o[p]));break;case 27:this.$=o[p-1];break;case 28:this.$=[o[p-2],...o[p]];break;case 29:this.$=[o[p]];break;case 30:x.setYAxisTitle(o[p]);break;case 31:x.setYAxisTitle(o[p-1]);break;case 32:x.setYAxisTitle({type:"text",text:""});break;case 33:x.setYAxisRangeData(Number(o[p-2]),Number(o[p]));break;case 37:this.$={text:o[p],type:"text"};break;case 38:this.$={text:o[p],type:"text"};break;case 39:this.$={text:o[p],type:"markdown"};break;case 40:this.$=o[p];break;case 41:this.$=o[p-1]+""+o[p];break}},"anonymous"),table:[s(t,i,{3:1,4:2,7:4,5:e,34:a,35:c,36:d}),{1:[3]},s(t,i,{4:2,7:4,3:8,5:e,34:a,35:c,36:d}),s(t,i,{4:2,7:4,6:9,3:10,5:e,8:[1,11],34:a,35:c,36:d}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},s(m,[2,34]),s(m,[2,35]),s(m,[2,36]),{1:[2,1]},s(t,i,{4:2,7:4,3:21,5:e,34:a,35:c,36:d}),{1:[2,3]},s(m,[2,5]),s(t,[2,7],{4:22,34:a,35:c,36:d}),{11:23,37:24,38:b,39:P,40:27,41:I,42:R,43:L,44:z,45:F,46:D,47:V,48:f,49:C,50:l},{11:39,13:38,24:M,27:B,29:40,30:41,37:24,38:b,39:P,40:27,41:I,42:R,43:L,44:z,45:F,46:D,47:V,48:f,49:C,50:l},{11:45,15:44,27:U,33:46,37:24,38:b,39:P,40:27,41:I,42:R,43:L,44:z,45:F,46:D,47:V,48:f,49:C,50:l},{11:49,17:48,24:X,37:24,38:b,39:P,40:27,41:I,42:R,43:L,44:z,45:F,46:D,47:V,48:f,49:C,50:l},{11:52,17:51,24:X,37:24,38:b,39:P,40:27,41:I,42:R,43:L,44:z,45:F,46:D,47:V,48:f,49:C,50:l},{20:[1,53]},{22:[1,54]},s(h,[2,18]),{1:[2,2]},s(h,[2,8]),s(h,[2,9]),s(k,[2,37],{40:55,41:I,42:R,43:L,44:z,45:F,46:D,47:V,48:f,49:C,50:l}),s(k,[2,38]),s(k,[2,39]),s(w,[2,40]),s(w,[2,42]),s(w,[2,43]),s(w,[2,44]),s(w,[2,45]),s(w,[2,46]),s(w,[2,47]),s(w,[2,48]),s(w,[2,49]),s(w,[2,50]),s(w,[2,51]),s(h,[2,10]),s(h,[2,22],{30:41,29:56,24:M,27:B}),s(h,[2,24]),s(h,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:b,39:P,40:27,41:I,42:R,43:L,44:z,45:F,46:D,47:V,48:f,49:C,50:l},s(h,[2,11]),s(h,[2,30],{33:60,27:U}),s(h,[2,32]),{31:[1,61]},s(h,[2,12]),{17:62,24:X},{25:63,27:S},s(h,[2,14]),{17:65,24:X},s(h,[2,16]),s(h,[2,17]),s(w,[2,41]),s(h,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},s(h,[2,31]),{27:[1,69]},s(h,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},s(h,[2,15]),s(h,[2,26]),s(h,[2,27]),{11:59,32:72,37:24,38:b,39:P,40:27,41:I,42:R,43:L,44:z,45:F,46:D,47:V,48:f,49:C,50:l},s(h,[2,33]),s(h,[2,19]),{25:73,27:S},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:n(function(r,u){if(u.recoverable)this.trace(r);else{var g=new Error(r);throw g.hash=u,g}},"parseError"),parse:n(function(r){var u=this,g=[0],x=[],A=[null],o=[],nt=this.table,p="",lt=0,Et=0,hi=2,It=1,li=o.slice.call(arguments,1),_=Object.create(this.lexer),Y={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(Y.yy[dt]=this.yy[dt]);_.setInput(r,Y.yy),Y.yy.lexer=_,Y.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var pt=_.yylloc;o.push(pt);var ci=_.options&&_.options.ranges;typeof Y.yy.parseError=="function"?this.parseError=Y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ui(v){g.length=g.length-2*v,A.length=A.length-v,o.length=o.length-v}n(ui,"popStack");function Vt(){var v;return v=x.pop()||_.lex()||It,typeof v!="number"&&(v instanceof Array&&(x=v,v=x.pop()),v=u.symbols_[v]||v),v}n(Vt,"lex");for(var T,H,E,ft,q={},ct,O,Mt,ut;;){if(H=g[g.length-1],this.defaultActions[H]?E=this.defaultActions[H]:((T===null||typeof T>"u")&&(T=Vt()),E=nt[H]&&nt[H][T]),typeof E>"u"||!E.length||!E[0]){var yt="";ut=[];for(ct in nt[H])this.terminals_[ct]&&ct>hi&&ut.push("'"+this.terminals_[ct]+"'");_.showPosition?yt="Parse error on line "+(lt+1)+`:
|
|
2
2
|
`+_.showPosition()+`
|
|
3
3
|
Expecting `+ut.join(", ")+", got '"+(this.terminals_[T]||T)+"'":yt="Parse error on line "+(lt+1)+": Unexpected "+(T==It?"end of input":"'"+(this.terminals_[T]||T)+"'"),this.parseError(yt,{text:_.match,token:this.terminals_[T]||T,line:_.yylineno,loc:pt,expected:ut})}if(E[0]instanceof Array&&E.length>1)throw new Error("Parse Error: multiple actions possible at state: "+H+", token: "+T);switch(E[0]){case 1:g.push(T),A.push(_.yytext),o.push(_.yylloc),g.push(E[1]),T=null,Et=_.yyleng,p=_.yytext,lt=_.yylineno,pt=_.yylloc;break;case 2:if(O=this.productions_[E[1]][1],q.$=A[A.length-O],q._$={first_line:o[o.length-(O||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(O||1)].first_column,last_column:o[o.length-1].last_column},ci&&(q._$.range=[o[o.length-(O||1)].range[0],o[o.length-1].range[1]]),ft=this.performAction.apply(q,[p,Et,lt,Y.yy,E[1],A,o].concat(li)),typeof ft<"u")return ft;O&&(g=g.slice(0,-1*O*2),A=A.slice(0,-1*O),o=o.slice(0,-1*O)),g.push(this.productions_[E[1]][0]),A.push(q.$),o.push(q._$),Mt=nt[g[g.length-2]][g[g.length-1]],g.push(Mt);break;case 3:return!0}}return!0},"parse")},Lt=function(){var W={EOF:1,parseError:n(function(u,g){if(this.yy.parser)this.yy.parser.parseError(u,g);else throw new Error(u)},"parseError"),setInput:n(function(r,u){return this.yy=u||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:n(function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var u=r.match(/(?:\r\n?|\n).*/g);return u?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},"input"),unput:n(function(r){var u=r.length,g=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-u),this.offset-=u;var x=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),g.length-1&&(this.yylineno-=g.length-1);var A=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:g?(g.length===x.length?this.yylloc.first_column:0)+x[x.length-g.length].length-g[0].length:this.yylloc.first_column-u},this.options.ranges&&(this.yylloc.range=[A[0],A[0]+this.yyleng-u]),this.yyleng=this.yytext.length,this},"unput"),more:n(function(){return this._more=!0,this},"more"),reject:n(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
4
|
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:n(function(r){this.unput(this.match.slice(r))},"less"),pastInput:n(function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:n(function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:n(function(){var r=this.pastInput(),u=new Array(r.length+1).join("-");return r+this.upcomingInput()+`
|
package/dist/index.html
CHANGED
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
padding: 0;
|
|
13
13
|
}
|
|
14
14
|
</style>
|
|
15
|
-
<script type="module" crossorigin src="/assets/index-
|
|
16
|
-
<link rel="stylesheet" crossorigin href="/assets/index
|
|
15
|
+
<script type="module" crossorigin src="/assets/index-Btz90Jgh.js"></script>
|
|
16
|
+
<link rel="stylesheet" crossorigin href="/assets/index--0bUybG5.css">
|
|
17
17
|
</head>
|
|
18
18
|
<body>
|
|
19
19
|
<div id="root" class="h-screen w-screen flex"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@langgraph-js/ui",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.9.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"tailwindcss": "^4.1.14",
|
|
63
63
|
"tw-animate-css": "^1.4.0",
|
|
64
64
|
"zod": "^4",
|
|
65
|
-
"@langgraph-js/sdk": "4.
|
|
65
|
+
"@langgraph-js/sdk": "4.6.0"
|
|
66
66
|
},
|
|
67
67
|
"scripts": {
|
|
68
68
|
"dev": "vite",
|
|
@@ -1,27 +1,154 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import React, { useState } from "react";
|
|
2
2
|
import { useChat } from "@langgraph-js/sdk/react";
|
|
3
3
|
import { formatTime, getHistoryContent } from "@langgraph-js/sdk";
|
|
4
|
-
import { RefreshCw, X, RotateCcw, Trash2 } from "lucide-react";
|
|
4
|
+
import { RefreshCw, X, RotateCcw, Trash2, ChevronLeft, ChevronRight, Filter, XCircle, MoreHorizontal } from "lucide-react";
|
|
5
5
|
|
|
6
6
|
interface HistoryListProps {
|
|
7
7
|
onClose: () => void;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
const HistoryList: React.FC<HistoryListProps> = ({ onClose }) => {
|
|
11
|
-
const {
|
|
11
|
+
const {
|
|
12
|
+
historyList,
|
|
13
|
+
historyPagination,
|
|
14
|
+
historyFilter,
|
|
15
|
+
currentChatId,
|
|
16
|
+
refreshSessionList,
|
|
17
|
+
createNewChat,
|
|
18
|
+
deleteHistoryChat,
|
|
19
|
+
toHistoryChat,
|
|
20
|
+
setHistoryPage,
|
|
21
|
+
setHistoryPageSize,
|
|
22
|
+
setHistoryFilter,
|
|
23
|
+
resetHistoryFilter,
|
|
24
|
+
} = useChat();
|
|
25
|
+
|
|
26
|
+
const [showFilter, setShowFilter] = useState(false);
|
|
27
|
+
const [metadataInput, setMetadataInput] = useState("");
|
|
28
|
+
const [showPageSizeMenu, setShowPageSizeMenu] = useState(false);
|
|
29
|
+
|
|
30
|
+
const pagination = historyPagination;
|
|
31
|
+
const filter = historyFilter;
|
|
32
|
+
|
|
33
|
+
const handlePageChange = (newPage: number) => {
|
|
34
|
+
if (newPage < 1) return;
|
|
35
|
+
const totalPages = Math.ceil(pagination.total / pagination.pageSize);
|
|
36
|
+
if (newPage > totalPages && historyList.length < pagination.pageSize) return;
|
|
37
|
+
setHistoryPage(newPage);
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const handleApplyFilter = () => {
|
|
41
|
+
let parsedMetadata = null;
|
|
42
|
+
if (metadataInput.trim()) {
|
|
43
|
+
try {
|
|
44
|
+
parsedMetadata = JSON.parse(metadataInput);
|
|
45
|
+
} catch (e) {
|
|
46
|
+
alert("Invalid JSON format for metadata");
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
setHistoryFilter({ metadata: parsedMetadata });
|
|
51
|
+
setShowFilter(false);
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
const handleClearFilter = () => {
|
|
55
|
+
setMetadataInput("");
|
|
56
|
+
resetHistoryFilter();
|
|
57
|
+
setShowFilter(false);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const totalPages = Math.ceil(pagination.total / pagination.pageSize);
|
|
61
|
+
|
|
12
62
|
return (
|
|
13
|
-
<section className="bg-white h-full flex flex-col
|
|
14
|
-
<div className="px-5 flex justify-between items-center py-6">
|
|
15
|
-
<div className="flex items-center gap-
|
|
63
|
+
<section className="bg-white h-full flex flex-col">
|
|
64
|
+
<div className="px-5 flex justify-between items-center py-6 border-b border-gray-100">
|
|
65
|
+
<div className="flex items-center gap-2">
|
|
16
66
|
<h3 className="m-0 text-base font-semibold text-gray-700">历史记录</h3>
|
|
17
67
|
</div>
|
|
18
|
-
<
|
|
19
|
-
<
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
<
|
|
23
|
-
|
|
68
|
+
<div className="flex gap-1.5">
|
|
69
|
+
<button className="p-2 rounded-lg bg-gray-100 hover:bg-gray-300 transition-colors flex items-center justify-center group" onClick={() => setShowFilter(!showFilter)} title="筛选">
|
|
70
|
+
<Filter className={`w-4 h-4 text-gray-600 ${showFilter ? "text-blue-500" : ""}`} />
|
|
71
|
+
</button>
|
|
72
|
+
<button className="p-2 rounded-lg bg-gray-100 hover:bg-gray-300 transition-colors flex items-center justify-center group" onClick={refreshSessionList} title="刷新列表">
|
|
73
|
+
<RefreshCw className="w-4 h-4 text-gray-600 group-hover:rotate-180 transition-transform duration-300" />
|
|
74
|
+
</button>
|
|
75
|
+
<button className="p-2 rounded-lg bg-gray-100 hover:bg-gray-300 transition-colors flex items-center justify-center group" onClick={onClose} title="关闭">
|
|
76
|
+
<X className="w-4 h-4 text-red-500" />
|
|
77
|
+
</button>
|
|
78
|
+
</div>
|
|
24
79
|
</div>
|
|
80
|
+
|
|
81
|
+
{/* 筛选面板 */}
|
|
82
|
+
{showFilter && (
|
|
83
|
+
<div className="px-5 py-3 bg-gray-50 border-b border-gray-100">
|
|
84
|
+
<div className="flex flex-col gap-3">
|
|
85
|
+
<div>
|
|
86
|
+
<label className="block text-xs font-medium text-gray-600 mb-1">状态筛选</label>
|
|
87
|
+
<select
|
|
88
|
+
value={filter.status || "all"}
|
|
89
|
+
onChange={(e) => setHistoryFilter({ status: e.target.value === "all" ? null : (e.target.value as any) })}
|
|
90
|
+
className="w-full px-3 py-2 text-sm border border-gray-200 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500"
|
|
91
|
+
>
|
|
92
|
+
<option value="all">全部状态</option>
|
|
93
|
+
<option value="idle">空闲</option>
|
|
94
|
+
<option value="busy">忙碌</option>
|
|
95
|
+
<option value="interrupted">中断</option>
|
|
96
|
+
<option value="error">错误</option>
|
|
97
|
+
</select>
|
|
98
|
+
</div>
|
|
99
|
+
|
|
100
|
+
<div>
|
|
101
|
+
<label className="block text-xs font-medium text-gray-600 mb-1">排序字段</label>
|
|
102
|
+
<select
|
|
103
|
+
value={filter.sortBy}
|
|
104
|
+
onChange={(e) => setHistoryFilter({ sortBy: e.target.value as any })}
|
|
105
|
+
className="w-full px-3 py-2 text-sm border border-gray-200 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500"
|
|
106
|
+
>
|
|
107
|
+
<option value="updated_at">更新时间</option>
|
|
108
|
+
<option value="created_at">创建时间</option>
|
|
109
|
+
<option value="thread_id">会话 ID</option>
|
|
110
|
+
<option value="status">状态</option>
|
|
111
|
+
</select>
|
|
112
|
+
</div>
|
|
113
|
+
|
|
114
|
+
<div>
|
|
115
|
+
<label className="block text-xs font-medium text-gray-600 mb-1">排序顺序</label>
|
|
116
|
+
<select
|
|
117
|
+
value={filter.sortOrder}
|
|
118
|
+
onChange={(e) => setHistoryFilter({ sortOrder: e.target.value as any })}
|
|
119
|
+
className="w-full px-3 py-2 text-sm border border-gray-200 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500"
|
|
120
|
+
>
|
|
121
|
+
<option value="desc">降序</option>
|
|
122
|
+
<option value="asc">升序</option>
|
|
123
|
+
</select>
|
|
124
|
+
</div>
|
|
125
|
+
|
|
126
|
+
<div>
|
|
127
|
+
<label className="block text-xs font-medium text-gray-600 mb-1">元数据 (JSON 格式)</label>
|
|
128
|
+
<textarea
|
|
129
|
+
value={metadataInput}
|
|
130
|
+
onChange={(e) => setMetadataInput(e.target.value)}
|
|
131
|
+
placeholder='{"key": "value"}'
|
|
132
|
+
className="w-full px-3 py-2 text-sm border border-gray-200 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 resize-none"
|
|
133
|
+
rows={3}
|
|
134
|
+
/>
|
|
135
|
+
</div>
|
|
136
|
+
|
|
137
|
+
<div className="flex gap-2">
|
|
138
|
+
<button onClick={handleApplyFilter} className="flex-1 px-4 py-2 text-sm font-medium text-white bg-blue-500 hover:bg-blue-600 rounded-lg transition-colors">
|
|
139
|
+
应用筛选
|
|
140
|
+
</button>
|
|
141
|
+
<button
|
|
142
|
+
onClick={handleClearFilter}
|
|
143
|
+
className="flex-1 px-4 py-2 text-sm font-medium text-gray-600 bg-white border border-gray-200 hover:bg-gray-100 rounded-lg transition-colors"
|
|
144
|
+
>
|
|
145
|
+
清除筛选
|
|
146
|
+
</button>
|
|
147
|
+
</div>
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
150
|
+
)}
|
|
151
|
+
|
|
25
152
|
<div className="flex-1 overflow-y-auto px-4 py-2">
|
|
26
153
|
<div
|
|
27
154
|
className="cursor-pointer mb-3"
|
|
@@ -33,56 +160,134 @@ const HistoryList: React.FC<HistoryListProps> = ({ onClose }) => {
|
|
|
33
160
|
<div className="text-sm text-gray-700 font-medium truncate">New Chat</div>
|
|
34
161
|
</div>
|
|
35
162
|
</div>
|
|
163
|
+
|
|
36
164
|
{historyList.length === 0 ? (
|
|
37
165
|
<div className="text-center text-gray-400 py-10 text-sm">暂无历史记录</div>
|
|
38
166
|
) : (
|
|
39
167
|
<div className="flex flex-col gap-2">
|
|
40
|
-
{historyList
|
|
41
|
-
|
|
42
|
-
|
|
168
|
+
{historyList.map((thread) => (
|
|
169
|
+
<div
|
|
170
|
+
className={`flex justify-between items-center px-4 py-3 rounded-xl transition-colors ${
|
|
171
|
+
thread.thread_id === currentChatId ? "bg-blue-50/80" : "bg-gray-50/60 hover:bg-gray-200/80"
|
|
172
|
+
}`}
|
|
173
|
+
key={thread.thread_id}
|
|
174
|
+
>
|
|
43
175
|
<div
|
|
44
|
-
className=
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
176
|
+
className="flex-1 min-w-0 mr-2"
|
|
177
|
+
onClick={() => {
|
|
178
|
+
toHistoryChat(thread);
|
|
179
|
+
}}
|
|
48
180
|
>
|
|
49
|
-
<div
|
|
50
|
-
|
|
181
|
+
<div className="text-sm text-gray-700 mb-1 truncate max-w-[180px]">{getHistoryContent(thread)}</div>
|
|
182
|
+
<div className="flex gap-3 text-xs text-gray-400">
|
|
183
|
+
<span className="truncate max-w-[100px]">{formatTime(new Date(thread.created_at))}</span>
|
|
184
|
+
<span
|
|
185
|
+
className={`truncate max-w-[60px] ${
|
|
186
|
+
thread.status === "error"
|
|
187
|
+
? "text-red-500"
|
|
188
|
+
: thread.status === "interrupted"
|
|
189
|
+
? "text-orange-500"
|
|
190
|
+
: thread.status === "busy"
|
|
191
|
+
? "text-blue-500"
|
|
192
|
+
: "text-gray-400"
|
|
193
|
+
}`}
|
|
194
|
+
>
|
|
195
|
+
{thread.status}
|
|
196
|
+
</span>
|
|
197
|
+
</div>
|
|
198
|
+
</div>
|
|
199
|
+
<div className="flex gap-1.5 shrink-0">
|
|
200
|
+
<button
|
|
201
|
+
className="p-2 rounded-lg bg-white/60 hover:bg-gray-200 transition-colors flex items-center justify-center group"
|
|
51
202
|
onClick={() => {
|
|
52
203
|
toHistoryChat(thread);
|
|
53
204
|
}}
|
|
205
|
+
title="恢复对话"
|
|
54
206
|
>
|
|
55
|
-
<
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
207
|
+
<RotateCcw className="w-3.5 h-3.5 text-gray-600 group-hover:-rotate-180 transition-transform duration-300" />
|
|
208
|
+
</button>
|
|
209
|
+
<button
|
|
210
|
+
className="p-2 rounded-lg bg-white/60 hover:bg-gray-200 transition-colors flex items-center justify-center group"
|
|
211
|
+
onClick={async () => {
|
|
212
|
+
await deleteHistoryChat(thread);
|
|
213
|
+
}}
|
|
214
|
+
title="删除对话"
|
|
215
|
+
>
|
|
216
|
+
<Trash2 className="w-3.5 h-3.5 text-red-500" />
|
|
217
|
+
</button>
|
|
218
|
+
</div>
|
|
219
|
+
</div>
|
|
220
|
+
))}
|
|
221
|
+
</div>
|
|
222
|
+
)}
|
|
223
|
+
</div>
|
|
224
|
+
|
|
225
|
+
{/* 合并的分页控制 */}
|
|
226
|
+
{historyList.length > 0 && (
|
|
227
|
+
<div className="px-5 py-3 bg-gray-50 border-t border-gray-100">
|
|
228
|
+
<div className="flex items-center justify-between">
|
|
229
|
+
{/* 每页显示数量 */}
|
|
230
|
+
<div className="relative">
|
|
231
|
+
<button
|
|
232
|
+
onClick={() => setShowPageSizeMenu(!showPageSizeMenu)}
|
|
233
|
+
className="flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-gray-600 bg-white border border-gray-200 rounded-lg hover:bg-gray-100 transition-colors"
|
|
234
|
+
title="每页显示数量"
|
|
235
|
+
>
|
|
236
|
+
<span>{pagination.pageSize}</span> 条
|
|
237
|
+
</button>
|
|
238
|
+
|
|
239
|
+
{showPageSizeMenu && (
|
|
240
|
+
<div className="absolute bottom-full left-0 mb-1 w-24 bg-white border border-gray-200 rounded-lg shadow-lg z-10">
|
|
241
|
+
{[5, 10, 20, 50].map((size) => (
|
|
62
242
|
<button
|
|
63
|
-
|
|
243
|
+
key={size}
|
|
64
244
|
onClick={() => {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
title="恢复对话"
|
|
68
|
-
>
|
|
69
|
-
<RotateCcw className="w-3.5 h-3.5 text-gray-600 group-hover:-rotate-180 transition-transform duration-300" />
|
|
70
|
-
</button>
|
|
71
|
-
<button
|
|
72
|
-
className="p-2 rounded-lg bg-white/60 hover:bg-gray-200 transition-colors flex items-center justify-center group"
|
|
73
|
-
onClick={async () => {
|
|
74
|
-
await deleteHistoryChat(thread);
|
|
245
|
+
setHistoryPageSize(size);
|
|
246
|
+
setShowPageSizeMenu(false);
|
|
75
247
|
}}
|
|
76
|
-
|
|
248
|
+
className="w-full px-3 py-2 text-xs text-left hover:bg-gray-100 transition-colors first:rounded-t-lg last:rounded-b-lg"
|
|
77
249
|
>
|
|
78
|
-
|
|
250
|
+
{size} 条
|
|
79
251
|
</button>
|
|
80
|
-
|
|
252
|
+
))}
|
|
81
253
|
</div>
|
|
82
|
-
)
|
|
254
|
+
)}
|
|
255
|
+
</div>
|
|
256
|
+
|
|
257
|
+
{/* 页码信息 - 使用更紧凑的显示 */}
|
|
258
|
+
<div className="flex items-center gap-1.5 px-2 py-1.5 text-xs text-gray-600">
|
|
259
|
+
<span className="font-medium">{pagination.page}</span>
|
|
260
|
+
<span className="text-gray-400">/</span>
|
|
261
|
+
<span className="text-gray-400">{totalPages}</span>
|
|
262
|
+
</div>
|
|
263
|
+
|
|
264
|
+
{/* 分页按钮 */}
|
|
265
|
+
<div className="flex items-center gap-1">
|
|
266
|
+
<button
|
|
267
|
+
onClick={() => handlePageChange(pagination.page - 1)}
|
|
268
|
+
disabled={pagination.page === 1}
|
|
269
|
+
className={`p-1.5 rounded-lg transition-colors ${
|
|
270
|
+
pagination.page === 1 ? "bg-gray-200 text-gray-400 cursor-not-allowed" : "bg-white hover:bg-gray-200 text-gray-600 border border-gray-200"
|
|
271
|
+
}`}
|
|
272
|
+
title="上一页"
|
|
273
|
+
>
|
|
274
|
+
<ChevronLeft className="w-4 h-4" />
|
|
275
|
+
</button>
|
|
276
|
+
|
|
277
|
+
<button
|
|
278
|
+
onClick={() => handlePageChange(pagination.page + 1)}
|
|
279
|
+
disabled={historyList.length < pagination.pageSize}
|
|
280
|
+
className={`p-1.5 rounded-lg transition-colors ${
|
|
281
|
+
historyList.length < pagination.pageSize ? "bg-gray-200 text-gray-400 cursor-not-allowed" : "bg-white hover:bg-gray-200 text-gray-600 border border-gray-200"
|
|
282
|
+
}`}
|
|
283
|
+
title="下一页"
|
|
284
|
+
>
|
|
285
|
+
<ChevronRight className="w-4 h-4" />
|
|
286
|
+
</button>
|
|
287
|
+
</div>
|
|
83
288
|
</div>
|
|
84
|
-
|
|
85
|
-
|
|
289
|
+
</div>
|
|
290
|
+
)}
|
|
86
291
|
</section>
|
|
87
292
|
);
|
|
88
293
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { RenderMessage } from "@langgraph-js/sdk";
|
|
3
3
|
import { UsageMetadata } from "./UsageMetadata";
|
|
4
|
-
import {
|
|
4
|
+
import { getTextContent, getThinkingContent } from "@langgraph-js/sdk";
|
|
5
5
|
import { Response } from "@/components/ai-elements/response";
|
|
6
6
|
import { Reasoning } from "./Reasoning";
|
|
7
7
|
interface MessageAIProps {
|
|
@@ -9,13 +9,16 @@ interface MessageAIProps {
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
const MessageAI: React.FC<MessageAIProps> = ({ message }) => {
|
|
12
|
+
const thinkingContent = getThinkingContent(message);
|
|
13
|
+
/** @ts-ignore */
|
|
14
|
+
const rawTextContents = getTextContent(message);
|
|
12
15
|
return (
|
|
13
16
|
<div className="flex flex-col w-[80%] bg-white rounded-2xl px-5 py-4 border border-gray-200">
|
|
14
17
|
<div className="text-xs font-medium text-gray-500 mb-3">{message.name}</div>
|
|
15
|
-
{
|
|
18
|
+
{thinkingContent ? <Reasoning reasoning_content={thinkingContent} className="mb-4" /> : null}
|
|
16
19
|
|
|
17
20
|
<div className="markdown-body max-w-none">
|
|
18
|
-
<Response>{
|
|
21
|
+
<Response>{rawTextContents}</Response>
|
|
19
22
|
</div>
|
|
20
23
|
<UsageMetadata response_metadata={message.response_metadata as any} usage_metadata={message.usage_metadata || {}} spend_time={message.spend_time} id={message.id} />
|
|
21
24
|
</div>
|
|
@@ -9,12 +9,12 @@ import {
|
|
|
9
9
|
} from "../../components/ai-elements/chain-of-thought";
|
|
10
10
|
import { RenderMessage } from "@langgraph-js/sdk";
|
|
11
11
|
|
|
12
|
-
export const Reasoning = (props: {
|
|
12
|
+
export const Reasoning = (props: { reasoning_content: string; className?: string }) => {
|
|
13
13
|
return (
|
|
14
14
|
<ChainOfThought defaultOpen className={props.className}>
|
|
15
15
|
<ChainOfThoughtHeader>思考内容</ChainOfThoughtHeader>
|
|
16
16
|
<ChainOfThoughtContent>
|
|
17
|
-
<ChainOfThoughtStep label={(props.
|
|
17
|
+
<ChainOfThoughtStep label={(props.reasoning_content as string) || ""} status="complete" />
|
|
18
18
|
</ChainOfThoughtContent>
|
|
19
19
|
</ChainOfThought>
|
|
20
20
|
);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{U as a,C as n}from"./mermaid.core-BpzyNF0N.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-B4BG7PRW-3Je1T-6D.js";import{_ as i}from"./mermaid.core-BpzyNF0N.js";import"./index-DuV4Cs93.js";import"./chunk-FMBD7UC4-DkqBqoF9.js";import"./chunk-55IACEB6-CEUhaTkt.js";import"./chunk-QN33PNHL-DSoehSAx.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-B4BG7PRW-3Je1T-6D.js";import{_ as i}from"./mermaid.core-BpzyNF0N.js";import"./index-DuV4Cs93.js";import"./chunk-FMBD7UC4-DkqBqoF9.js";import"./chunk-55IACEB6-CEUhaTkt.js";import"./chunk-QN33PNHL-DSoehSAx.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as r}from"./index-DuV4Cs93.js";var e=4;function a(o){return r(o,e)}export{a as c};
|