fuli-context 0.7.3 → 0.7.4-beta.1
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/README.md +170 -18
- package/README.zh-CN.md +146 -12
- package/compose.graphiti.yml +2 -0
- package/dist/web/assets/{AboutPage-qeO_vm0T.js → AboutPage-CftRexSY.js} +1 -1
- package/dist/web/assets/{ConnectionsPage-DO0GR9Xg.js → ConnectionsPage-D5J91x6d.js} +1 -1
- package/dist/web/assets/{useMinimumLoadingDisplay-BpCyBeko.css → KnowledgeEditDialog-DWUV_NPp.css} +1 -1
- package/dist/web/assets/KnowledgeEditDialog-wotVahvr.js +1 -0
- package/dist/web/assets/{KnowledgeInspector-Bjhdu2mf.css → KnowledgeInspector--1NujtXW.css} +1 -1
- package/dist/web/assets/KnowledgeInspector-BzkW0mVs.js +1 -0
- package/dist/web/assets/KnowledgeOrganizerPage-BebUDiHt.js +1 -0
- package/dist/web/assets/KnowledgePage-OUT07aKH.js +1 -0
- package/dist/web/assets/KnowledgeWorkspace-1pHJ0MNZ.js +4 -0
- package/dist/web/assets/{OverviewPage-CmCcDCAs.js → OverviewPage-CHE6XhdS.js} +1 -1
- package/dist/web/assets/PersonalProfilePage-B7T09bow.css +1 -0
- package/dist/web/assets/PersonalProfilePage-CXXiabUy.js +1 -0
- package/dist/web/assets/PersonalProjectsPage-d2wYGW8n.js +1 -0
- package/dist/web/assets/PublicProjectsPage-hxLShtnZ.js +1 -0
- package/dist/web/assets/{ReviewPage-B3vnZ6gn.js → ReviewPage-DUeyu7E8.js} +1 -1
- package/dist/web/assets/{SearchableSelect-ih69qbcS.js → SearchableSelect-C5RiB5F8.js} +1 -1
- package/dist/web/assets/SettingsPage-BMuASSzQ.js +1 -0
- package/dist/web/assets/SettingsPage-CAfz4qiV.css +1 -0
- package/dist/web/assets/WritingTastePage-B9BCYIwQ.js +1 -0
- package/dist/web/assets/WritingTastePage-DSgvTH6x.css +1 -0
- package/dist/web/assets/{console-DE40hXGC.js → console-DMvHxKf9.js} +1 -1
- package/dist/web/assets/conversation-launcher-settings-Dnlcw7Rj.js +1 -0
- package/dist/web/assets/{i18n-CDxBs1sz.js → i18n-CWfd8Dtt.js} +1 -1
- package/dist/web/assets/{identity-BCxb1mcy.js → identity-C9mLdR8L.js} +1 -1
- package/dist/web/assets/index-F5e2sQ7p.js +2 -0
- package/dist/web/assets/{index-CCOGfZzE.css → index-X2j29j8i.css} +1 -1
- package/dist/web/assets/{model-CCMdt10Q.js → model-CsYAR8O3.js} +1 -1
- package/dist/web/assets/paths-CDREouhi.js +1 -0
- package/dist/web/assets/useApi-CROJJdhE-BLQiPVw0.js +1 -0
- package/dist/web/assets/vue-router-DN8x6iY1.js +1 -0
- package/dist/web/index.html +7 -6
- package/graph-provider/fuli_graph/app.py +238 -2
- package/graph-provider/fuli_graph/auth.py +18 -0
- package/graph-provider/fuli_graph/collaboration_context.py +253 -17
- package/graph-provider/fuli_graph/common_knowledge.py +6 -2
- package/graph-provider/fuli_graph/config.py +5 -0
- package/graph-provider/fuli_graph/graph_models.py +6 -0
- package/graph-provider/fuli_graph/graph_projection.py +14 -0
- package/graph-provider/fuli_graph/graph_query.py +27 -3
- package/graph-provider/fuli_graph/knowledge_management.py +19 -1
- package/graph-provider/fuli_graph/knowledge_search.py +11 -0
- package/graph-provider/fuli_graph/models.py +15 -2
- package/graph-provider/fuli_graph/personal_global_preference_models.py +234 -0
- package/graph-provider/fuli_graph/personal_global_preferences.py +1247 -0
- package/graph-provider/fuli_graph/project_action_models.py +22 -0
- package/graph-provider/fuli_graph/project_knowledge.py +121 -2
- package/graph-provider/fuli_graph/provider_values.py +24 -0
- package/graph-provider/fuli_graph/runtime.py +78 -0
- package/graph-provider/fuli_graph/search_projection.py +14 -1
- package/graph-provider/fuli_graph/store_knowledge.py +116 -2
- package/graph-provider/fuli_graph/workflow_candidate_models.py +168 -0
- package/graph-provider/fuli_graph/workflow_candidates.py +996 -0
- package/graph-provider/fuli_graph/workflow_observation_models.py +30 -0
- package/graph-provider/fuli_graph/workflow_observations.py +84 -0
- package/graph-provider/pyproject.toml +1 -1
- package/npm-shrinkwrap.json +18 -18
- package/package.json +4 -4
- package/skills/capturing-session-knowledge/SKILL.md +32 -5
- package/skills/flreview/SKILL.md +4 -3
- package/src/agent-tools/graph-definitions.js +136 -20
- package/src/agent-tools/graph-handlers.js +10 -4
- package/src/cli/command-registry.js +1 -1
- package/src/cli/local-runtime-command.js +69 -2
- package/src/graphiti/agent-knowledge-workflows.js +497 -16
- package/src/graphiti/collaboration-preference-projection.js +162 -0
- package/src/graphiti/federated-application.js +155 -161
- package/src/graphiti/federated-search-support.js +102 -0
- package/src/graphiti/knowledge-provider-mapping.js +15 -0
- package/src/graphiti/provider-client.js +162 -10
- package/src/graphiti/related-project-suggestions.js +109 -0
- package/src/graphiti/runtime-config.js +14 -0
- package/src/graphiti/source-marker.js +2 -2
- package/src/graphiti/user-taste-skill.js +241 -0
- package/src/graphiti/workflow-candidate-mapping.js +87 -0
- package/src/graphiti/workflow-observation.js +82 -0
- package/src/graphiti/writing-taste-profile-workflow.js +25 -0
- package/src/graphiti/writing-taste-profile.js +490 -0
- package/src/http/graph-api-router.js +15 -2
- package/src/mcp/context-resources.js +158 -0
- package/src/mcp/create-mcp-server.js +39 -5
- package/src/mcp/instructions.js +5 -7
- package/src/mcp/session-id.js +60 -0
- package/src/mcp/task-context-registry.js +15 -3
- package/src/mcp/tool-annotations.js +8 -1
- package/src/mcp/tool-result.js +28 -4
- package/src/server.js +0 -1
- package/src/setup/claude-code-config.js +17 -6
- package/src/setup/graph-runtime.js +20 -2
- package/src/system/runtime-settings.js +121 -2
- package/src/system/system-service.js +5 -1
- package/dist/web/assets/KnowledgeInspector-DEW5lA1m.js +0 -1
- package/dist/web/assets/KnowledgeOrganizerPage-BkM568Ld.js +0 -1
- package/dist/web/assets/KnowledgePage-BAT4aZIm.js +0 -1
- package/dist/web/assets/KnowledgeWorkspace-DyGtBz--.js +0 -4
- package/dist/web/assets/PersonalProfilePage-C42mwKN8.js +0 -1
- package/dist/web/assets/PersonalProfilePage-CdmEzyvZ.css +0 -1
- package/dist/web/assets/PersonalProjectsPage-BwaXR62K.js +0 -1
- package/dist/web/assets/PublicProjectsPage-egKBulOq.js +0 -1
- package/dist/web/assets/SettingsPage-C6ouU0sR.css +0 -1
- package/dist/web/assets/SettingsPage-oLE8mNs5.js +0 -1
- package/dist/web/assets/index-BzhNfzU_.js +0 -2
- package/dist/web/assets/paths-DwHeiGMT.js +0 -1
- package/dist/web/assets/useMinimumLoadingDisplay-HdI7XAmu.js +0 -1
- package/dist/web/assets/vue-router-Drfl1F8i.js +0 -1
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{$ as e,D as t,E as n,F as r,L as i,O as a,Q as o,R as s,_ as c,a as l,b as u,c as d,d as f,f as p,g as m,h,j as g,k as _,l as v,m as y,n as b,p as x,q as S,s as C,tt as w,u as T,x as E,y as D}from"./i18n-CWfd8Dtt.js";import{a as O,o as k,r as A,t as ee}from"./console-DMvHxKf9.js";import{h as j,m as te}from"./useApi-CROJJdhE-BLQiPVw0.js";import{t as M}from"./vue-router-DN8x6iY1.js";import{n as N,t as P}from"./paths-CDREouhi.js";import{t as ne}from"./SearchableSelect-C5RiB5F8.js";import{n as F,r as re,t as ie}from"./identity-C9mLdR8L.js";import{a as ae,i as I,n as L,r as oe,t as R}from"./KnowledgeEditDialog-wotVahvr.js";import{n as se,t as ce}from"./KnowledgeInspector-BzkW0mVs.js";import{C as le,D as ue,E as de,S as fe,_ as pe,b as me,d as he,f as ge,g as _e,h as ve,l as ye,m as be,s as xe,u as Se,v as z,w as Ce,y as we}from"./model-CsYAR8O3.js";function Te(e,t){let n=null;function r(){n=null,e()}return{schedule(){n!==null&&clearTimeout(n),n=setTimeout(r,t)},flush(){n!==null&&(clearTimeout(n),r())},cancel(){n!==null&&(clearTimeout(n),n=null)}}}var Ee={value:()=>{}};function De(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+``)||r in n||/[\s.]/.test(r))throw Error(`illegal type: `+r);n[r]=[]}return new Oe(n)}function Oe(e){this._=e}function ke(e,t){return e.trim().split(/^|\s+/).map(function(e){var n=``,r=e.indexOf(`.`);if(r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}Oe.prototype=De.prototype={constructor:Oe,on:function(e,t){var n=this._,r=ke(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=Ae(n[i],e.name)))return i;return}if(t!=null&&typeof t!=`function`)throw Error(`invalid callback: `+t);for(;++a<o;)if(i=(e=r[a]).type)n[i]=B(n[i],e.name,t);else if(t==null)for(i in n)n[i]=B(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new Oe(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(a=this._[e],r=0,i=a.length;r<i;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};function Ae(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function B(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=Ee,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var V={svg:`http://www.w3.org/2000/svg`,xhtml:`http://www.w3.org/1999/xhtml`,xlink:`http://www.w3.org/1999/xlink`,xml:`http://www.w3.org/XML/1998/namespace`,xmlns:`http://www.w3.org/2000/xmlns/`};function H(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),V.hasOwnProperty(t)?{space:V[t],local:e}:e}function U(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function je(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Me(e){var t=H(e);return(t.local?je:U)(t)}function Ne(){}function W(e){return e==null?Ne:function(){return this.querySelector(e)}}function Pe(e){typeof e!=`function`&&(e=W(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=Array(o),c,l,u=0;u<o;++u)(c=a[u])&&(l=e.call(c,c.__data__,u,a))&&(`__data__`in c&&(l.__data__=c.__data__),s[u]=l);return new G(r,this._parents)}function Fe(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Ie(){return[]}function Le(e){return e==null?Ie:function(){return this.querySelectorAll(e)}}function Re(e){return function(){return Fe(e.apply(this,arguments))}}function ze(e){e=typeof e==`function`?Re(e):Le(e);for(var t=this._groups,n=t.length,r=[],i=[],a=0;a<n;++a)for(var o=t[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&(r.push(e.call(c,c.__data__,l,o)),i.push(c));return new G(r,i)}function Be(e){return function(){return this.matches(e)}}function Ve(e){return function(t){return t.matches(e)}}var He=Array.prototype.find;function Ue(e){return function(){return He.call(this.children,e)}}function We(){return this.firstElementChild}function Ge(e){return this.select(e==null?We:Ue(typeof e==`function`?e:Ve(e)))}var Ke=Array.prototype.filter;function qe(){return Array.from(this.children)}function Je(e){return function(){return Ke.call(this.children,e)}}function Ye(e){return this.selectAll(e==null?qe:Je(typeof e==`function`?e:Ve(e)))}function Xe(e){typeof e!=`function`&&(e=Be(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new G(r,this._parents)}function Ze(e){return Array(e.length)}function Qe(){return new G(this._enter||this._groups.map(Ze),this._parents)}function $e(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}$e.prototype={constructor:$e,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function et(e){return function(){return e}}function tt(e,t,n,r,i,a){for(var o=0,s,c=t.length,l=a.length;o<l;++o)(s=t[o])?(s.__data__=a[o],r[o]=s):n[o]=new $e(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function nt(e,t,n,r,i,a,o){var s,c,l=new Map,u=t.length,d=a.length,f=Array(u),p;for(s=0;s<u;++s)(c=t[s])&&(f[s]=p=o.call(c,c.__data__,s,t)+``,l.has(p)?i[s]=c:l.set(p,c));for(s=0;s<d;++s)p=o.call(e,a[s],s,a)+``,(c=l.get(p))?(r[s]=c,c.__data__=a[s],l.delete(p)):n[s]=new $e(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function rt(e){return e.__data__}function it(e,t){if(!arguments.length)return Array.from(this,rt);var n=t?nt:tt,r=this._parents,i=this._groups;typeof e!=`function`&&(e=et(e));for(var a=i.length,o=Array(a),s=Array(a),c=Array(a),l=0;l<a;++l){var u=r[l],d=i[l],f=d.length,p=at(e.call(u,u&&u.__data__,l,r)),m=p.length,h=s[l]=Array(m),g=o[l]=Array(m);n(u,d,h,g,c[l]=Array(f),p,t);for(var _=0,v=0,y,b;_<m;++_)if(y=h[_]){for(_>=v&&(v=_+1);!(b=g[v])&&++v<m;);y._next=b||null}}return o=new G(o,r),o._enter=s,o._exit=c,o}function at(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function ot(){return new G(this._exit||this._groups.map(Ze),this._parents)}function st(e,t,n){var r=this.enter(),i=this,a=this.exit();return typeof e==`function`?(r=e(r),r&&=r.selection()):r=r.append(e+``),t!=null&&(i=t(i),i&&=i.selection()),n==null?a.remove():n(a),r&&i?r.merge(i).order():i}function ct(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,a=r.length,o=Math.min(i,a),s=Array(i),c=0;c<o;++c)for(var l=n[c],u=r[c],d=l.length,f=s[c]=Array(d),p,m=0;m<d;++m)(p=l[m]||u[m])&&(f[m]=p);for(;c<i;++c)s[c]=n[c];return new G(s,this._parents)}function lt(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function ut(e){e||=dt;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;a<r;++a){for(var o=n[a],s=o.length,c=i[a]=Array(s),l,u=0;u<s;++u)(l=o[u])&&(c[u]=l);c.sort(t)}return new G(i,this._parents).order()}function dt(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function ft(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function pt(){return Array.from(this)}function mt(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function ht(){let e=0;for(let t of this)++e;return e}function gt(){return!this.node()}function _t(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i=t[n],a=0,o=i.length,s;a<o;++a)(s=i[a])&&e.call(s,s.__data__,a,i);return this}function vt(e){return function(){this.removeAttribute(e)}}function yt(e){return function(){this.removeAttributeNS(e.space,e.local)}}function bt(e,t){return function(){this.setAttribute(e,t)}}function xt(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function St(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Ct(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function wt(e,t){var n=H(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?yt:vt:typeof t==`function`?n.local?Ct:St:n.local?xt:bt)(n,t))}function Tt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Et(e){return function(){this.style.removeProperty(e)}}function Dt(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Ot(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function kt(e,t,n){return arguments.length>1?this.each((t==null?Et:typeof t==`function`?Ot:Dt)(e,t,n??``)):At(this.node(),e)}function At(e,t){return e.style.getPropertyValue(t)||Tt(e).getComputedStyle(e,null).getPropertyValue(t)}function jt(e){return function(){delete this[e]}}function Mt(e,t){return function(){this[e]=t}}function Nt(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Pt(e,t){return arguments.length>1?this.each((t==null?jt:typeof t==`function`?Nt:Mt)(e,t)):this.node()[e]}function Ft(e){return e.trim().split(/^|\s+/)}function It(e){return e.classList||new Lt(e)}function Lt(e){this._node=e,this._names=Ft(e.getAttribute(`class`)||``)}Lt.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function Rt(e,t){for(var n=It(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function zt(e,t){for(var n=It(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function Bt(e){return function(){Rt(this,e)}}function Vt(e){return function(){zt(this,e)}}function Ht(e,t){return function(){(t.apply(this,arguments)?Rt:zt)(this,e)}}function Ut(e,t){var n=Ft(e+``);if(arguments.length<2){for(var r=It(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?Ht:t?Bt:Vt)(n,t))}function Wt(){this.textContent=``}function Gt(e){return function(){this.textContent=e}}function Kt(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function qt(e){return arguments.length?this.each(e==null?Wt:(typeof e==`function`?Kt:Gt)(e)):this.node().textContent}function Jt(){this.innerHTML=``}function Yt(e){return function(){this.innerHTML=e}}function Xt(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function Zt(e){return arguments.length?this.each(e==null?Jt:(typeof e==`function`?Xt:Yt)(e)):this.node().innerHTML}function Qt(){this.nextSibling&&this.parentNode.appendChild(this)}function $t(){return this.each(Qt)}function en(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function tn(){return this.each(en)}function nn(e){var t=typeof e==`function`?e:Me(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function rn(){return null}function an(e,t){var n=typeof e==`function`?e:Me(e),r=t==null?rn:typeof t==`function`?t:W(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function on(){var e=this.parentNode;e&&e.removeChild(this)}function sn(){return this.each(on)}function cn(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function ln(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function un(e){return this.select(e?ln:cn)}function dn(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function fn(e){return function(t){e.call(this,t,this.__data__)}}function pn(e){return e.trim().split(/^|\s+/).map(function(e){var t=``,n=e.indexOf(`.`);return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function mn(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n<i;++n)a=t[n],(!e.type||a.type===e.type)&&a.name===e.name?this.removeEventListener(a.type,a.listener,a.options):t[++r]=a;++r?t.length=r:delete this.__on}}}function hn(e,t,n){return function(){var r=this.__on,i,a=fn(t);if(r){for(var o=0,s=r.length;o<s;++o)if((i=r[o]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=n),i.value=t;return}}this.addEventListener(e.type,a,n),i={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(i):this.__on=[i]}}function gn(e,t,n){var r=pn(e+``),i,a=r.length,o;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<a;++i)if((o=r[i]).type===u.type&&o.name===u.name)return u.value}return}for(s=t?hn:mn,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function _n(e,t,n){var r=Tt(e),i=r.CustomEvent;typeof i==`function`?i=new i(t,n):(i=r.document.createEvent(`Event`),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function vn(e,t){return function(){return _n(this,e,t)}}function yn(e,t){return function(){return _n(this,e,t.apply(this,arguments))}}function bn(e,t){return this.each((typeof t==`function`?yn:vn)(e,t))}function*xn(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var Sn=[null];function G(e,t){this._groups=e,this._parents=t}function Cn(){return new G([[document.documentElement]],Sn)}function wn(){return this}G.prototype=Cn.prototype={constructor:G,select:Pe,selectAll:ze,selectChild:Ge,selectChildren:Ye,filter:Xe,data:it,enter:Qe,exit:ot,join:st,merge:ct,selection:wn,order:lt,sort:ut,call:ft,nodes:pt,node:mt,size:ht,empty:gt,each:_t,attr:wt,style:kt,property:Pt,classed:Ut,text:qt,html:Zt,raise:$t,lower:tn,append:nn,insert:an,remove:sn,clone:un,datum:dn,on:gn,dispatch:bn,[Symbol.iterator]:xn};function K(e){return typeof e==`string`?new G([[document.querySelector(e)]],[document.documentElement]):new G([[e]],Sn)}function Tn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function En(e,t){if(e=Tn(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}var Dn={passive:!1},On={capture:!0,passive:!1};function kn(e){e.stopImmediatePropagation()}function An(e){e.preventDefault(),e.stopImmediatePropagation()}function jn(e){var t=e.document.documentElement,n=K(e).on(`dragstart.drag`,An,On);`onselectstart`in t?n.on(`selectstart.drag`,An,On):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect=`none`)}function Mn(e,t){var n=e.document.documentElement,r=K(e).on(`dragstart.drag`,null);t&&(r.on(`click.drag`,An,On),setTimeout(function(){r.on(`click.drag`,null)},0)),`onselectstart`in n?r.on(`selectstart.drag`,null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var Nn=e=>()=>e;function Pn(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}Pn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Fn(e){return!e.ctrlKey&&!e.button}function In(){return this.parentNode}function Ln(e,t){return t??{x:e.x,y:e.y}}function Rn(){return navigator.maxTouchPoints||`ontouchstart`in this}function zn(){var e=Fn,t=In,n=Ln,r=Rn,i={},a=De(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,Dn).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!(u||!e.call(this,n,r))){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&(K(n.view).on(`mousemove.drag`,m,On).on(`mouseup.drag`,h,On),jn(n.view),kn(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(An(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){K(e.view).on(`mousemove.drag mouseup.drag`,null),Mn(e.view,l),An(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r)){var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s,c;for(s=0;s<o;++s)(c=y(this,a,n,r,i[s].identifier,i[s]))&&(kn(n),c(`start`,n,i[s]))}}function _(e){var t=e.changedTouches,n=t.length,r,a;for(r=0;r<n;++r)(a=i[t[r].identifier])&&(An(e),a(`drag`,e,t[r]))}function v(e){var t=e.changedTouches,n=t.length,r,a;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),r=0;r<n;++r)(a=i[t[r].identifier])&&(kn(e),a(`end`,e,t[r]))}function y(e,t,r,s,c,l){var u=a.copy(),d=En(l||r,t),p,m,h;if((h=n.call(e,new Pn(`beforestart`,{sourceEvent:r,target:f,identifier:c,active:o,x:d[0],y:d[1],dx:0,dy:0,dispatch:u}),s))!=null)return p=h.x-d[0]||0,m=h.y-d[1]||0,function n(r,a,l){var g=d,_;switch(r){case`start`:i[c]=n,_=o++;break;case`end`:delete i[c],--o;case`drag`:d=En(l||a,t),_=o;break}u.call(r,e,new Pn(r,{sourceEvent:a,subject:h,target:f,identifier:c,active:_,x:d[0]+p,y:d[1]+m,dx:d[0]-g[0],dy:d[1]-g[1],dispatch:u}),s)}}return f.filter=function(t){return arguments.length?(e=typeof t==`function`?t:Nn(!!t),f):e},f.container=function(e){return arguments.length?(t=typeof e==`function`?e:Nn(e),f):t},f.subject=function(e){return arguments.length?(n=typeof e==`function`?e:Nn(e),f):n},f.touchable=function(e){return arguments.length?(r=typeof e==`function`?e:Nn(!!e),f):r},f.on=function(){var e=a.on.apply(a,arguments);return e===a?f:e},f.clickDistance=function(e){return arguments.length?(d=(e=+e)*e,f):Math.sqrt(d)},f}function Bn(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Vn(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Hn(){}var Un=.7,Wn=1/Un,Gn=`\\s*([+-]?\\d+)\\s*`,Kn=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,qn=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,Jn=/^#([0-9a-f]{3,8})$/,Yn=RegExp(`^rgb\\(${Gn},${Gn},${Gn}\\)$`),Xn=RegExp(`^rgb\\(${qn},${qn},${qn}\\)$`),Zn=RegExp(`^rgba\\(${Gn},${Gn},${Gn},${Kn}\\)$`),Qn=RegExp(`^rgba\\(${qn},${qn},${qn},${Kn}\\)$`),$n=RegExp(`^hsl\\(${Kn},${qn},${qn}\\)$`),er=RegExp(`^hsla\\(${Kn},${qn},${qn},${Kn}\\)$`),tr={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Bn(Hn,or,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:nr,formatHex:nr,formatHex8:rr,formatHsl:ir,formatRgb:ar,toString:ar});function nr(){return this.rgb().formatHex()}function rr(){return this.rgb().formatHex8()}function ir(){return vr(this).formatHsl()}function ar(){return this.rgb().formatRgb()}function or(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=Jn.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?sr(t):n===3?new q(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?cr(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?cr(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Yn.exec(e))?new q(t[1],t[2],t[3],1):(t=Xn.exec(e))?new q(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Zn.exec(e))?cr(t[1],t[2],t[3],t[4]):(t=Qn.exec(e))?cr(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=$n.exec(e))?_r(t[1],t[2]/100,t[3]/100,1):(t=er.exec(e))?_r(t[1],t[2]/100,t[3]/100,t[4]):tr.hasOwnProperty(e)?sr(tr[e]):e===`transparent`?new q(NaN,NaN,NaN,0):null}function sr(e){return new q(e>>16&255,e>>8&255,e&255,1)}function cr(e,t,n,r){return r<=0&&(e=t=n=NaN),new q(e,t,n,r)}function lr(e){return e instanceof Hn||(e=or(e)),e?(e=e.rgb(),new q(e.r,e.g,e.b,e.opacity)):new q}function ur(e,t,n,r){return arguments.length===1?lr(e):new q(e,t,n,r??1)}function q(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Bn(q,ur,Vn(Hn,{brighter(e){return e=e==null?Wn:Wn**+e,new q(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Un:Un**+e,new q(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new q(hr(this.r),hr(this.g),hr(this.b),mr(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:dr,formatHex:dr,formatHex8:fr,formatRgb:pr,toString:pr}));function dr(){return`#${gr(this.r)}${gr(this.g)}${gr(this.b)}`}function fr(){return`#${gr(this.r)}${gr(this.g)}${gr(this.b)}${gr((isNaN(this.opacity)?1:this.opacity)*255)}`}function pr(){let e=mr(this.opacity);return`${e===1?`rgb(`:`rgba(`}${hr(this.r)}, ${hr(this.g)}, ${hr(this.b)}${e===1?`)`:`, ${e})`}`}function mr(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function hr(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function gr(e){return e=hr(e),(e<16?`0`:``)+e.toString(16)}function _r(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new br(e,t,n,r)}function vr(e){if(e instanceof br)return new br(e.h,e.s,e.l,e.opacity);if(e instanceof Hn||(e=or(e)),!e)return new br;if(e instanceof br)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n<r)*6:n===a?(r-t)/s+2:(t-n)/s+4,s/=c<.5?a+i:2-a-i,o*=60):s=c>0&&c<1?0:o,new br(o,s,c,e.opacity)}function yr(e,t,n,r){return arguments.length===1?vr(e):new br(e,t,n,r??1)}function br(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Bn(br,yr,Vn(Hn,{brighter(e){return e=e==null?Wn:Wn**+e,new br(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Un:Un**+e,new br(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new q(Cr(e>=240?e-240:e+120,i,r),Cr(e,i,r),Cr(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new br(xr(this.h),Sr(this.s),Sr(this.l),mr(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=mr(this.opacity);return`${e===1?`hsl(`:`hsla(`}${xr(this.h)}, ${Sr(this.s)*100}%, ${Sr(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function xr(e){return e=(e||0)%360,e<0?e+360:e}function Sr(e){return Math.max(0,Math.min(1,e||0))}function Cr(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var wr=e=>()=>e;function Tr(e,t){return function(n){return e+n*t}}function Er(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function Dr(e){return(e=+e)==1?Or:function(t,n){return n-t?Er(t,n,e):wr(isNaN(t)?n:t)}}function Or(e,t){var n=t-e;return n?Tr(e,n):wr(isNaN(e)?t:e)}var kr=(function e(t){var n=Dr(t);function r(e,t){var r=n((e=ur(e)).r,(t=ur(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=Or(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function Ar(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var jr=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Mr=new RegExp(jr.source,`g`);function Nr(e){return function(){return e}}function Pr(e){return function(t){return e(t)+``}}function Fr(e,t){var n=jr.lastIndex=Mr.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=jr.exec(e))&&(i=Mr.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:Ar(r,i)})),n=Mr.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?Pr(c[0].x):Nr(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}var Ir=180/Math.PI,Lr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Rr(e,t,n,r,i,a){var o,s,c;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),e*r<t*n&&(e=-e,t=-t,c=-c,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*Ir,skewX:Math.atan(c)*Ir,scaleX:o,scaleY:s}}var zr;function Br(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?Lr:Rr(t.a,t.b,t.c,t.d,t.e,t.f)}function Vr(e){return e==null||(zr||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),zr.setAttribute(`transform`,e),!(e=zr.transform.baseVal.consolidate()))?Lr:(e=e.matrix,Rr(e.a,e.b,e.c,e.d,e.e,e.f))}function Hr(e,t,n,r){function i(e){return e.length?e.pop()+` `:``}function a(e,r,i,a,o,s){if(e!==i||r!==a){var c=o.push(`translate(`,null,t,null,n);s.push({i:c-4,x:Ar(e,i)},{i:c-2,x:Ar(r,a)})}else(i||a)&&o.push(`translate(`+i+t+a+n)}function o(e,t,n,a){e===t?t&&n.push(i(n)+`rotate(`+t+r):(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:Ar(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:Ar(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:Ar(e,n)},{i:s-2,x:Ar(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t<n;)r[(a=i[t]).i]=a.x(e);return r.join(``)}}}var Ur=Hr(Br,`px, `,`px)`,`deg)`),Wr=Hr(Vr,`, `,`)`,`)`),Gr=1e-12;function Kr(e){return((e=Math.exp(e))+1/e)/2}function qr(e){return((e=Math.exp(e))-1/e)/2}function Jr(e){return((e=Math.exp(2*e))-1)/(e+1)}var Yr=(function e(t,n,r){function i(e,i){var a=e[0],o=e[1],s=e[2],c=i[0],l=i[1],u=i[2],d=c-a,f=l-o,p=d*d+f*f,m,h;if(p<Gr)h=Math.log(u/s)/t,m=function(e){return[a+e*d,o+e*f,s*Math.exp(t*e*h)]};else{var g=Math.sqrt(p),_=(u*u-s*s+r*p)/(2*s*n*g),v=(u*u-s*s-r*p)/(2*u*n*g),y=Math.log(Math.sqrt(_*_+1)-_);h=(Math.log(Math.sqrt(v*v+1)-v)-y)/t,m=function(e){var r=e*h,i=Kr(y),c=s/(n*g)*(i*Jr(t*r+y)-qr(y));return[a+c*d,o+c*f,s*i/Kr(t*r+y)]}}return m.duration=h*1e3*t/Math.SQRT2,m}return i.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},i})(Math.SQRT2,2,4),Xr=0,Zr=0,Qr=0,$r=1e3,ei,ti,ni=0,ri=0,ii=0,ai=typeof performance==`object`&&performance.now?performance:Date,oi=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function si(){return ri||=(oi(ci),ai.now()+ii)}function ci(){ri=0}function li(){this._call=this._time=this._next=null}li.prototype=ui.prototype={constructor:li,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?si():+n)+(t==null?0:+t),!this._next&&ti!==this&&(ti?ti._next=this:ei=this,ti=this),this._call=e,this._time=n,hi()},stop:function(){this._call&&(this._call=null,this._time=1/0,hi())}};function ui(e,t,n){var r=new li;return r.restart(e,t,n),r}function di(){si(),++Xr;for(var e=ei,t;e;)(t=ri-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Xr}function fi(){ri=(ni=ai.now())+ii,Xr=Zr=0;try{di()}finally{Xr=0,mi(),ri=0}}function pi(){var e=ai.now(),t=e-ni;t>$r&&(ii-=t,ni=e)}function mi(){for(var e,t=ei,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:ei=n);ti=e,hi(r)}function hi(e){Xr||(Zr&&=clearTimeout(Zr),e-ri>24?(e<1/0&&(Zr=setTimeout(fi,e-ai.now()-ii)),Qr&&=clearInterval(Qr)):(Qr||=(ni=ai.now(),setInterval(pi,$r)),Xr=1,oi(fi)))}function gi(e,t,n){var r=new li;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var _i=De(`start`,`end`,`cancel`,`interrupt`),vi=[];function yi(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;Ci(e,n,{name:t,index:r,group:i,on:_i,tween:vi,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function bi(e,t){var n=Si(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function xi(e,t){var n=Si(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function Si(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function Ci(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=ui(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return gi(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l<t&&(f.state=6,f.timer.stop(),f.on.call(`cancel`,e,e.__data__,f.index,f.group),delete r[l])}if(gi(function(){n.state===3&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(a))}),n.state=2,n.on.call(`start`,e,e.__data__,n.index,n.group),n.state===2){for(n.state=3,i=Array(d=n.tween.length),l=0,u=-1;l<d;++l)(f=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(i[++u]=f);i.length=u+1}}function s(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(c),n.state=5,1),a=-1,o=i.length;++a<o;)i[a].call(e,r);n.state===5&&(n.on.call(`end`,e,e.__data__,n.index,n.group),c())}function c(){for(var i in n.state=6,n.timer.stop(),delete r[t],r)return;delete e.__transition}}function wi(e,t){var n=e.__transition,r,i,a=!0,o;if(n){for(o in t=t==null?null:t+``,n){if((r=n[o]).name!==t){a=!1;continue}i=r.state>2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function Ti(e){return this.each(function(){wi(this,e)})}function Ei(e,t){var n,r;return function(){var i=xi(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function Di(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=xi(this,e),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:t,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===t){i[c]=s;break}c===l&&i.push(s)}a.tween=i}}function Oi(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=Si(this.node(),n).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((t==null?Ei:Di)(n,e,t))}function ki(e,t,n){var r=e._id;return e.each(function(){var e=xi(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return Si(e,r).value[t]}}function Ai(e,t){var n;return(typeof t==`number`?Ar:t instanceof or?kr:(n=or(t))?(t=n,kr):Fr)(e,t)}function ji(e){return function(){this.removeAttribute(e)}}function Mi(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Ni(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttribute(e);return o===i?null:o===r?a:a=t(r=o,n)}}function Pi(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttributeNS(e.space,e.local);return o===i?null:o===r?a:a=t(r=o,n)}}function Fi(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttribute(e):(o=this.getAttribute(e),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function Ii(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function Li(e,t){var n=H(e),r=n===`transform`?Wr:Ai;return this.attrTween(e,typeof t==`function`?(n.local?Ii:Fi)(n,r,ki(this,`attr.`+e,t)):t==null?(n.local?Mi:ji)(n):(n.local?Pi:Ni)(n,r,t))}function Ri(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function zi(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Bi(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&zi(e,i)),n}return i._value=t,i}function Vi(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Ri(e,i)),n}return i._value=t,i}function Hi(e,t){var n=`attr.`+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!=`function`)throw Error();var r=H(e);return this.tween(n,(r.local?Bi:Vi)(r,t))}function Ui(e,t){return function(){bi(this,e).delay=+t.apply(this,arguments)}}function Wi(e,t){return t=+t,function(){bi(this,e).delay=t}}function Gi(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?Ui:Wi)(t,e)):Si(this.node(),t).delay}function Ki(e,t){return function(){xi(this,e).duration=+t.apply(this,arguments)}}function qi(e,t){return t=+t,function(){xi(this,e).duration=t}}function Ji(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?Ki:qi)(t,e)):Si(this.node(),t).duration}function Yi(e,t){if(typeof t!=`function`)throw Error();return function(){xi(this,e).ease=t}}function Xi(e){var t=this._id;return arguments.length?this.each(Yi(t,e)):Si(this.node(),t).ease}function Zi(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();xi(this,e).ease=n}}function Qi(e){if(typeof e!=`function`)throw Error();return this.each(Zi(this._id,e))}function $i(e){typeof e!=`function`&&(e=Be(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new Oa(r,this._parents,this._name,this._id)}function ea(e){if(e._id!==this._id)throw Error();for(var t=this._groups,n=e._groups,r=t.length,i=n.length,a=Math.min(r,i),o=Array(r),s=0;s<a;++s)for(var c=t[s],l=n[s],u=c.length,d=o[s]=Array(u),f,p=0;p<u;++p)(f=c[p]||l[p])&&(d[p]=f);for(;s<r;++s)o[s]=t[s];return new Oa(o,this._parents,this._name,this._id)}function ta(e){return(e+``).trim().split(/^|\s+/).every(function(e){var t=e.indexOf(`.`);return t>=0&&(e=e.slice(0,t)),!e||e===`start`})}function na(e,t,n){var r,i,a=ta(t)?bi:xi;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function ra(e,t){var n=this._id;return arguments.length<2?Si(this.node(),n).on.on(e):this.each(na(n,e,t))}function ia(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function aa(){return this.on(`end.remove`,ia(this._id))}function oa(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=W(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o<i;++o)for(var s=r[o],c=s.length,l=a[o]=Array(c),u,d,f=0;f<c;++f)(u=s[f])&&(d=e.call(u,u.__data__,f,s))&&(`__data__`in u&&(d.__data__=u.__data__),l[f]=d,yi(l[f],t,n,f,l,Si(u,n)));return new Oa(a,this._parents,t,n)}function sa(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Le(e));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,d=0;d<l;++d)if(u=c[d]){for(var f=e.call(u,u.__data__,d,c),p,m=Si(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&yi(p,t,n,h,f,m);a.push(f),o.push(u)}return new Oa(a,o,t,n)}var ca=Cn.prototype.constructor;function la(){return new ca(this._groups,this._parents)}function ua(e,t){var n,r,i;return function(){var a=At(this,e),o=(this.style.removeProperty(e),At(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function da(e){return function(){this.style.removeProperty(e)}}function fa(e,t,n){var r,i=n+``,a;return function(){var o=At(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function pa(e,t,n){var r,i,a;return function(){var o=At(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),At(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function ma(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=xi(this,e),l=c.on,u=c.value[a]==null?s||=da(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function ha(e,t,n){var r=(e+=``)==`transform`?Ur:Ai;return t==null?this.styleTween(e,ua(e,r)).on(`end.style.`+e,da(e)):typeof t==`function`?this.styleTween(e,pa(e,r,ki(this,`style.`+e,t))).each(ma(this._id,e)):this.styleTween(e,fa(e,r,t),n).on(`end.style.`+e,null)}function ga(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function _a(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&ga(e,a,n)),r}return a._value=t,a}function va(e,t,n){var r=`style.`+(e+=``);if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!=`function`)throw Error();return this.tween(r,_a(e,t,n??``))}function ya(e){return function(){this.textContent=e}}function ba(e){return function(){var t=e(this);this.textContent=t??``}}function xa(e){return this.tween(`text`,typeof e==`function`?ba(ki(this,`text`,e)):ya(e==null?``:e+``))}function Sa(e){return function(t){this.textContent=e.call(this,t)}}function Ca(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&Sa(r)),t}return r._value=e,r}function wa(e){var t=`text`;if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!=`function`)throw Error();return this.tween(t,Ca(e))}function Ta(){for(var e=this._name,t=this._id,n=Aa(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)if(c=o[l]){var u=Si(c,t);yi(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Oa(r,this._parents,e,n)}function Ea(){var e,t,n=this,r=n._id,i=n.size();return new Promise(function(a,o){var s={value:o},c={value:function(){--i===0&&a()}};n.each(function(){var n=xi(this,r),i=n.on;i!==e&&(t=(e=i).copy(),t._.cancel.push(s),t._.interrupt.push(s),t._.end.push(c)),n.on=t}),i===0&&a()})}var Da=0;function Oa(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function ka(e){return Cn().transition(e)}function Aa(){return++Da}var ja=Cn.prototype;Oa.prototype=ka.prototype={constructor:Oa,select:oa,selectAll:sa,selectChild:ja.selectChild,selectChildren:ja.selectChildren,filter:$i,merge:ea,selection:la,transition:Ta,call:ja.call,nodes:ja.nodes,node:ja.node,size:ja.size,empty:ja.empty,each:ja.each,on:ra,attr:Li,attrTween:Hi,style:ha,styleTween:va,text:xa,textTween:wa,remove:aa,tween:Oi,delay:Gi,duration:Ji,ease:Xi,easeVarying:Qi,end:Ea,[Symbol.iterator]:ja[Symbol.iterator]};function Ma(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Na={time:null,delay:0,duration:250,ease:Ma};function Pa(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function Fa(e){var t,n;e instanceof Oa?(t=e._id,e=e._name):(t=Aa(),(n=Na).time=si(),e=e==null?null:e+``);for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&yi(c,e,t,l,o,n||Pa(c,t));return new Oa(r,this._parents,e,t)}Cn.prototype.interrupt=Ti,Cn.prototype.transition=Fa;var{abs:Ia,max:La,min:Ra}=Math;[`w`,`e`].map(za),[`n`,`s`].map(za),[`n`,`w`,`e`,`s`,`nw`,`ne`,`sw`,`se`].map(za);function za(e){return{type:e}}function Ba(e,t){var n,r=1;e??=0,t??=0;function i(){var i,a=n.length,o,s=0,c=0;for(i=0;i<a;++i)o=n[i],s+=o.x,c+=o.y;for(s=(s/a-e)*r,c=(c/a-t)*r,i=0;i<a;++i)o=n[i],o.x-=s,o.y-=c}return i.initialize=function(e){n=e},i.x=function(t){return arguments.length?(e=+t,i):e},i.y=function(e){return arguments.length?(t=+e,i):t},i.strength=function(e){return arguments.length?(r=+e,i):r},i}function Va(e){let t=+this._x.call(null,e),n=+this._y.call(null,e);return Ha(this.cover(t,n),t,n,e)}function Ha(e,t,n,r){if(isNaN(t)||isNaN(n))return e;var i,a=e._root,o={data:r},s=e._x0,c=e._y0,l=e._x1,u=e._y1,d,f,p,m,h,g,_,v;if(!a)return e._root=o,e;for(;a.length;)if((h=t>=(d=(s+l)/2))?s=d:l=d,(g=n>=(f=(c+u)/2))?c=f:u=f,i=a,!(a=a[_=g<<1|h]))return i[_]=o,e;if(p=+e._x.call(null,a.data),m=+e._y.call(null,a.data),t===p&&n===m)return o.next=a,i?i[_]=o:e._root=o,e;do i=i?i[_]=[,,,,]:e._root=[,,,,],(h=t>=(d=(s+l)/2))?s=d:l=d,(g=n>=(f=(c+u)/2))?c=f:u=f;while((_=g<<1|h)==(v=(m>=f)<<1|p>=d));return i[v]=a,i[_]=o,e}function Ua(e){var t,n,r=e.length,i,a,o=Array(r),s=Array(r),c=1/0,l=1/0,u=-1/0,d=-1/0;for(n=0;n<r;++n)isNaN(i=+this._x.call(null,t=e[n]))||isNaN(a=+this._y.call(null,t))||(o[n]=i,s[n]=a,i<c&&(c=i),i>u&&(u=i),a<l&&(l=a),a>d&&(d=a));if(c>u||l>d)return this;for(this.cover(c,l).cover(u,d),n=0;n<r;++n)Ha(this,o[n],s[n],e[n]);return this}function Wa(e,t){if(isNaN(e=+e)||isNaN(t=+t))return this;var n=this._x0,r=this._y0,i=this._x1,a=this._y1;if(isNaN(n))i=(n=Math.floor(e))+1,a=(r=Math.floor(t))+1;else{for(var o=i-n||1,s=this._root,c,l;n>e||e>=i||r>t||t>=a;)switch(l=(t<r)<<1|e<n,c=[,,,,],c[l]=s,s=c,o*=2,l){case 0:i=n+o,a=r+o;break;case 1:n=i-o,a=r+o;break;case 2:i=n+o,r=a-o;break;case 3:n=i-o,r=a-o;break}this._root&&this._root.length&&(this._root=s)}return this._x0=n,this._y0=r,this._x1=i,this._y1=a,this}function Ga(){var e=[];return this.visit(function(t){if(!t.length)do e.push(t.data);while(t=t.next)}),e}function Ka(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function J(e,t,n,r,i){this.node=e,this.x0=t,this.y0=n,this.x1=r,this.y1=i}function qa(e,t,n){var r,i=this._x0,a=this._y0,o,s,c,l,u=this._x1,d=this._y1,f=[],p=this._root,m,h;for(p&&f.push(new J(p,i,a,u,d)),n==null?n=1/0:(i=e-n,a=t-n,u=e+n,d=t+n,n*=n);m=f.pop();)if(!(!(p=m.node)||(o=m.x0)>u||(s=m.y0)>d||(c=m.x1)<i||(l=m.y1)<a))if(p.length){var g=(o+c)/2,_=(s+l)/2;f.push(new J(p[3],g,_,c,l),new J(p[2],o,_,g,l),new J(p[1],g,s,c,_),new J(p[0],o,s,g,_)),(h=(t>=_)<<1|e>=g)&&(m=f[f.length-1],f[f.length-1]=f[f.length-1-h],f[f.length-1-h]=m)}else{var v=e-+this._x.call(null,p.data),y=t-+this._y.call(null,p.data),b=v*v+y*y;if(b<n){var x=Math.sqrt(n=b);i=e-x,a=t-x,u=e+x,d=t+x,r=p.data}}return r}function Ja(e){if(isNaN(u=+this._x.call(null,e))||isNaN(d=+this._y.call(null,e)))return this;var t,n=this._root,r,i,a,o=this._x0,s=this._y0,c=this._x1,l=this._y1,u,d,f,p,m,h,g,_;if(!n)return this;if(n.length)for(;;){if((m=u>=(f=(o+c)/2))?o=f:c=f,(h=d>=(p=(s+l)/2))?s=p:l=p,t=n,!(n=n[g=h<<1|m]))return this;if(!n.length)break;(t[g+1&3]||t[g+2&3]||t[g+3&3])&&(r=t,_=g)}for(;n.data!==e;)if(i=n,!(n=n.next))return this;return(a=n.next)&&delete n.next,i?(a?i.next=a:delete i.next,this):t?(a?t[g]=a:delete t[g],(n=t[0]||t[1]||t[2]||t[3])&&n===(t[3]||t[2]||t[1]||t[0])&&!n.length&&(r?r[_]=n:this._root=n),this):(this._root=a,this)}function Ya(e){for(var t=0,n=e.length;t<n;++t)this.remove(e[t]);return this}function Xa(){return this._root}function Za(){var e=0;return this.visit(function(t){if(!t.length)do++e;while(t=t.next)}),e}function Qa(e){var t=[],n,r=this._root,i,a,o,s,c;for(r&&t.push(new J(r,this._x0,this._y0,this._x1,this._y1));n=t.pop();)if(!e(r=n.node,a=n.x0,o=n.y0,s=n.x1,c=n.y1)&&r.length){var l=(a+s)/2,u=(o+c)/2;(i=r[3])&&t.push(new J(i,l,u,s,c)),(i=r[2])&&t.push(new J(i,a,u,l,c)),(i=r[1])&&t.push(new J(i,l,o,s,u)),(i=r[0])&&t.push(new J(i,a,o,l,u))}return this}function $a(e){var t=[],n=[],r;for(this._root&&t.push(new J(this._root,this._x0,this._y0,this._x1,this._y1));r=t.pop();){var i=r.node;if(i.length){var a,o=r.x0,s=r.y0,c=r.x1,l=r.y1,u=(o+c)/2,d=(s+l)/2;(a=i[0])&&t.push(new J(a,o,s,u,d)),(a=i[1])&&t.push(new J(a,u,s,c,d)),(a=i[2])&&t.push(new J(a,o,d,u,l)),(a=i[3])&&t.push(new J(a,u,d,c,l))}n.push(r)}for(;r=n.pop();)e(r.node,r.x0,r.y0,r.x1,r.y1);return this}function eo(e){return e[0]}function to(e){return arguments.length?(this._x=e,this):this._x}function no(e){return e[1]}function ro(e){return arguments.length?(this._y=e,this):this._y}function io(e,t,n){var r=new ao(t??eo,n??no,NaN,NaN,NaN,NaN);return e==null?r:r.addAll(e)}function ao(e,t,n,r,i,a){this._x=e,this._y=t,this._x0=n,this._y0=r,this._x1=i,this._y1=a,this._root=void 0}function oo(e){for(var t={data:e.data},n=t;e=e.next;)n=n.next={data:e.data};return t}var Y=io.prototype=ao.prototype;Y.copy=function(){var e=new ao(this._x,this._y,this._x0,this._y0,this._x1,this._y1),t=this._root,n,r;if(!t)return e;if(!t.length)return e._root=oo(t),e;for(n=[{source:t,target:e._root=[,,,,]}];t=n.pop();)for(var i=0;i<4;++i)(r=t.source[i])&&(r.length?n.push({source:r,target:t.target[i]=[,,,,]}):t.target[i]=oo(r));return e},Y.add=Va,Y.addAll=Ua,Y.cover=Wa,Y.data=Ga,Y.extent=Ka,Y.find=qa,Y.remove=Ja,Y.removeAll=Ya,Y.root=Xa,Y.size=Za,Y.visit=Qa,Y.visitAfter=$a,Y.x=to,Y.y=ro;function X(e){return function(){return e}}function so(e){return(e()-.5)*1e-6}function co(e){return e.x+e.vx}function lo(e){return e.y+e.vy}function uo(e){var t,n,r,i=1,a=1;typeof e!=`function`&&(e=X(e==null?1:+e));function o(){for(var e,o=t.length,c,l,u,d,f,p,m=0;m<a;++m)for(c=io(t,co,lo).visitAfter(s),e=0;e<o;++e)l=t[e],f=n[l.index],p=f*f,u=l.x+l.vx,d=l.y+l.vy,c.visit(h);function h(e,t,n,a,o){var s=e.data,c=e.r,m=f+c;if(s){if(s.index>l.index){var h=u-s.x-s.vx,g=d-s.y-s.vy,_=h*h+g*g;_<m*m&&(h===0&&(h=so(r),_+=h*h),g===0&&(g=so(r),_+=g*g),_=(m-(_=Math.sqrt(_)))/_*i,l.vx+=(h*=_)*(m=(c*=c)/(p+c)),l.vy+=(g*=_)*m,s.vx-=h*(m=1-m),s.vy-=g*m)}return}return t>u+m||a<u-m||n>d+m||o<d-m}}function s(e){if(e.data)return e.r=n[e.data.index];for(var t=e.r=0;t<4;++t)e[t]&&e[t].r>e.r&&(e.r=e[t].r)}function c(){if(t){var r,i=t.length,a;for(n=Array(i),r=0;r<i;++r)a=t[r],n[a.index]=+e(a,r,t)}}return o.initialize=function(e,n){t=e,r=n,c()},o.iterations=function(e){return arguments.length?(a=+e,o):a},o.strength=function(e){return arguments.length?(i=+e,o):i},o.radius=function(t){return arguments.length?(e=typeof t==`function`?t:X(+t),c(),o):e},o}function fo(e){return e.index}function po(e,t){var n=e.get(t);if(!n)throw Error(`node not found: `+t);return n}function mo(e){var t=fo,n=d,r,i=X(30),a,o,s,c,l,u=1;e??=[];function d(e){return 1/Math.min(s[e.source.index],s[e.target.index])}function f(t){for(var n=0,i=e.length;n<u;++n)for(var o=0,s,d,f,p,m,h,g;o<i;++o)s=e[o],d=s.source,f=s.target,p=f.x+f.vx-d.x-d.vx||so(l),m=f.y+f.vy-d.y-d.vy||so(l),h=Math.sqrt(p*p+m*m),h=(h-a[o])/h*t*r[o],p*=h,m*=h,f.vx-=p*(g=c[o]),f.vy-=m*g,d.vx+=p*(g=1-g),d.vy+=m*g}function p(){if(o){var n,i=o.length,l=e.length,u=new Map(o.map((e,n)=>[t(e,n,o),e])),d;for(n=0,s=Array(i);n<l;++n)d=e[n],d.index=n,typeof d.source!=`object`&&(d.source=po(u,d.source)),typeof d.target!=`object`&&(d.target=po(u,d.target)),s[d.source.index]=(s[d.source.index]||0)+1,s[d.target.index]=(s[d.target.index]||0)+1;for(n=0,c=Array(l);n<l;++n)d=e[n],c[n]=s[d.source.index]/(s[d.source.index]+s[d.target.index]);r=Array(l),m(),a=Array(l),h()}}function m(){if(o)for(var t=0,i=e.length;t<i;++t)r[t]=+n(e[t],t,e)}function h(){if(o)for(var t=0,n=e.length;t<n;++t)a[t]=+i(e[t],t,e)}return f.initialize=function(e,t){o=e,l=t,p()},f.links=function(t){return arguments.length?(e=t,p(),f):e},f.id=function(e){return arguments.length?(t=e,f):t},f.iterations=function(e){return arguments.length?(u=+e,f):u},f.strength=function(e){return arguments.length?(n=typeof e==`function`?e:X(+e),m(),f):n},f.distance=function(e){return arguments.length?(i=typeof e==`function`?e:X(+e),h(),f):i},f}var ho=1664525,go=1013904223,_o=4294967296;function vo(){let e=1;return()=>(e=(ho*e+go)%_o)/_o}function yo(e){return e.x}function bo(e){return e.y}var xo=10,So=Math.PI*(3-Math.sqrt(5));function Co(e){var t,n=1,r=.001,i=1-r**(1/300),a=0,o=.6,s=new Map,c=ui(d),l=De(`tick`,`end`),u=vo();e??=[];function d(){f(),l.call(`tick`,t),n<r&&(c.stop(),l.call(`end`,t))}function f(r){var c,l=e.length,u;r===void 0&&(r=1);for(var d=0;d<r;++d)for(n+=(a-n)*i,s.forEach(function(e){e(n)}),c=0;c<l;++c)u=e[c],u.fx==null?u.x+=u.vx*=o:(u.x=u.fx,u.vx=0),u.fy==null?u.y+=u.vy*=o:(u.y=u.fy,u.vy=0);return t}function p(){for(var t=0,n=e.length,r;t<n;++t){if(r=e[t],r.index=t,r.fx!=null&&(r.x=r.fx),r.fy!=null&&(r.y=r.fy),isNaN(r.x)||isNaN(r.y)){var i=xo*Math.sqrt(.5+t),a=t*So;r.x=i*Math.cos(a),r.y=i*Math.sin(a)}(isNaN(r.vx)||isNaN(r.vy))&&(r.vx=r.vy=0)}}function m(t){return t.initialize&&t.initialize(e,u),t}return p(),t={tick:f,restart:function(){return c.restart(d),t},stop:function(){return c.stop(),t},nodes:function(n){return arguments.length?(e=n,p(),s.forEach(m),t):e},alpha:function(e){return arguments.length?(n=+e,t):n},alphaMin:function(e){return arguments.length?(r=+e,t):r},alphaDecay:function(e){return arguments.length?(i=+e,t):+i},alphaTarget:function(e){return arguments.length?(a=+e,t):a},velocityDecay:function(e){return arguments.length?(o=1-e,t):1-o},randomSource:function(e){return arguments.length?(u=e,s.forEach(m),t):u},force:function(e,n){return arguments.length>1?(n==null?s.delete(e):s.set(e,m(n)),t):s.get(e)},find:function(t,n,r){var i=0,a=e.length,o,s,c,l,u;for(r==null?r=1/0:r*=r,i=0;i<a;++i)l=e[i],o=t-l.x,s=n-l.y,c=o*o+s*s,c<r&&(u=l,r=c);return u},on:function(e,n){return arguments.length>1?(l.on(e,n),t):l.on(e)}}}function wo(){var e,t,n,r,i=X(-30),a,o=1,s=1/0,c=.81;function l(n){var i,a=e.length,o=io(e,yo,bo).visitAfter(d);for(r=n,i=0;i<a;++i)t=e[i],o.visit(f)}function u(){if(e){var t,n=e.length,r;for(a=Array(n),t=0;t<n;++t)r=e[t],a[r.index]=+i(r,t,e)}}function d(e){var t=0,n,r,i=0,o,s,c;if(e.length){for(o=s=c=0;c<4;++c)(n=e[c])&&(r=Math.abs(n.value))&&(t+=n.value,i+=r,o+=r*n.x,s+=r*n.y);e.x=o/i,e.y=s/i}else{n=e,n.x=n.data.x,n.y=n.data.y;do t+=a[n.data.index];while(n=n.next)}e.value=t}function f(e,i,l,u){if(!e.value)return!0;var d=e.x-t.x,f=e.y-t.y,p=u-i,m=d*d+f*f;if(p*p/c<m)return m<s&&(d===0&&(d=so(n),m+=d*d),f===0&&(f=so(n),m+=f*f),m<o&&(m=Math.sqrt(o*m)),t.vx+=d*e.value*r/m,t.vy+=f*e.value*r/m),!0;if(!(e.length||m>=s)){(e.data!==t||e.next)&&(d===0&&(d=so(n),m+=d*d),f===0&&(f=so(n),m+=f*f),m<o&&(m=Math.sqrt(o*m)));do e.data!==t&&(p=a[e.data.index]*r/m,t.vx+=d*p,t.vy+=f*p);while(e=e.next)}}return l.initialize=function(t,r){e=t,n=r,u()},l.strength=function(e){return arguments.length?(i=typeof e==`function`?e:X(+e),u(),l):i},l.distanceMin=function(e){return arguments.length?(o=e*e,l):Math.sqrt(o)},l.distanceMax=function(e){return arguments.length?(s=e*e,l):Math.sqrt(s)},l.theta=function(e){return arguments.length?(c=e*e,l):Math.sqrt(c)},l}function To(e,t,n){var r,i=X(.1),a,o;typeof e!=`function`&&(e=X(+e)),t??=0,n??=0;function s(e){for(var i=0,s=r.length;i<s;++i){var c=r[i],l=c.x-t||1e-6,u=c.y-n||1e-6,d=Math.sqrt(l*l+u*u),f=(o[i]-d)*a[i]*e/d;c.vx+=l*f,c.vy+=u*f}}function c(){if(r){var t,n=r.length;for(a=Array(n),o=Array(n),t=0;t<n;++t)o[t]=+e(r[t],t,r),a[t]=isNaN(o[t])?0:+i(r[t],t,r)}}return s.initialize=function(e){r=e,c()},s.strength=function(e){return arguments.length?(i=typeof e==`function`?e:X(+e),c(),s):i},s.radius=function(t){return arguments.length?(e=typeof t==`function`?t:X(+t),c(),s):e},s.x=function(e){return arguments.length?(t=+e,s):t},s.y=function(e){return arguments.length?(n=+e,s):n},s}function Eo(e){var t=X(.1),n,r,i;typeof e!=`function`&&(e=X(e==null?0:+e));function a(e){for(var t=0,a=n.length,o;t<a;++t)o=n[t],o.vx+=(i[t]-o.x)*r[t]*e}function o(){if(n){var a,o=n.length;for(r=Array(o),i=Array(o),a=0;a<o;++a)r[a]=isNaN(i[a]=+e(n[a],a,n))?0:+t(n[a],a,n)}}return a.initialize=function(e){n=e,o()},a.strength=function(e){return arguments.length?(t=typeof e==`function`?e:X(+e),o(),a):t},a.x=function(t){return arguments.length?(e=typeof t==`function`?t:X(+t),o(),a):e},a}function Do(e){var t=X(.1),n,r,i;typeof e!=`function`&&(e=X(e==null?0:+e));function a(e){for(var t=0,a=n.length,o;t<a;++t)o=n[t],o.vy+=(i[t]-o.y)*r[t]*e}function o(){if(n){var a,o=n.length;for(r=Array(o),i=Array(o),a=0;a<o;++a)r[a]=isNaN(i[a]=+e(n[a],a,n))?0:+t(n[a],a,n)}}return a.initialize=function(e){n=e,o()},a.strength=function(e){return arguments.length?(t=typeof e==`function`?e:X(+e),o(),a):t},a.y=function(t){return arguments.length?(e=typeof t==`function`?t:X(+t),o(),a):e},a}var Oo=e=>()=>e;function ko(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function Ao(e,t,n){this.k=e,this.x=t,this.y=n}Ao.prototype={constructor:Ao,scale:function(e){return e===1?this:new Ao(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Ao(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var jo=new Ao(1,0,0);Mo.prototype=Ao.prototype;function Mo(e){for(;!e.__zoom;)if(!(e=e.parentNode))return jo;return e.__zoom}function No(e){e.stopImmediatePropagation()}function Po(e){e.preventDefault(),e.stopImmediatePropagation()}function Fo(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function Io(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute(`viewBox`)?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Lo(){return this.__zoom||jo}function Ro(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function zo(){return navigator.maxTouchPoints||`ontouchstart`in this}function Bo(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function Vo(){var e=Fo,t=Io,n=Bo,r=Ro,i=zo,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=Yr,l=De(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,Lo).on(`wheel.zoom`,w,{passive:!1}).on(`mousedown.zoom`,T).on(`dblclick.zoom`,E).filter(i).on(`touchstart.zoom`,D).on(`touchmove.zoom`,O).on(`touchend.zoom touchcancel.zoom`,k).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,Lo),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(jo.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new Ao(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new Ao(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new Ao(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new C(e,t)}function C(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}C.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=K(this.that).datum();l.call(e,this.that,new ko(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function w(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=En(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],wi(this),s.start();Po(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function T(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=K(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=En(t,i),l=t.clientX,u=t.clientY;jn(t.view),No(t),a.mouse=[c,this.__zoom.invert(c)],wi(this),a.start();function d(e){if(Po(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=En(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),Mn(e.view,a.moved),Po(e),a.event(e).end()}}function E(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=En(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);Po(r),s>0?K(this).transition().duration(s).call(x,d,c,r):K(this).call(_.transform,d,c,r)}}function D(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(No(t),s=0;s<i;++s)c=r[s],l=En(c,this),l=[l,this.__zoom.invert(l),c.identifier],a.touch0?!a.touch1&&a.touch0[2]!==l[2]&&(a.touch1=l,a.taps=0):(a.touch0=l,o=!0,a.taps=1+!!u);u&&=clearTimeout(u),o&&(a.taps<2&&(d=l[0],u=setTimeout(function(){u=null},p)),wi(this),a.start())}}function O(e,...t){if(this.__zooming){var r=S(this,t).event(e),i=e.changedTouches,a=i.length,s,c,l,u;for(Po(e),s=0;s<a;++s)c=i[s],l=En(c,this),r.touch0&&r.touch0[2]===c.identifier?r.touch0[0]=l:r.touch1&&r.touch1[2]===c.identifier&&(r.touch1[0]=l);if(c=r.that.__zoom,r.touch1){var d=r.touch0[0],f=r.touch0[1],p=r.touch1[0],m=r.touch1[1],h=(h=p[0]-d[0])*h+(h=p[1]-d[1])*h,g=(g=m[0]-f[0])*g+(g=m[1]-f[1])*g;c=v(c,Math.sqrt(h/g)),l=[(d[0]+p[0])/2,(d[1]+p[1])/2],u=[(f[0]+m[0])/2,(f[1]+m[1])/2]}else if(r.touch0)l=r.touch0[0],u=r.touch0[1];else return;r.zoom(`touch`,n(y(c,l,u),r.extent,o))}}function k(e,...t){if(this.__zooming){var n=S(this,t).event(e),r=e.changedTouches,i=r.length,a,o;for(No(e),f&&clearTimeout(f),f=setTimeout(function(){f=null},p),a=0;a<i;++a)o=r[a],n.touch0&&n.touch0[2]===o.identifier?delete n.touch0:n.touch1&&n.touch1[2]===o.identifier&&delete n.touch1;if(n.touch1&&!n.touch0&&(n.touch0=n.touch1,delete n.touch1),n.touch0)n.touch0[1]=this.__zoom.invert(n.touch0[0]);else if(n.end(),n.taps===2&&(o=En(o,this),Math.hypot(d[0]-o[0],d[1]-o[1])<g)){var s=K(this).on(`dblclick.zoom`);s&&s.apply(this,arguments)}}}return _.wheelDelta=function(e){return arguments.length?(r=typeof e==`function`?e:Oo(+e),_):r},_.filter=function(t){return arguments.length?(e=typeof t==`function`?t:Oo(!!t),_):e},_.touchable=function(e){return arguments.length?(i=typeof e==`function`?e:Oo(!!e),_):i},_.extent=function(e){return arguments.length?(t=typeof e==`function`?e:Oo([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),_):t},_.scaleExtent=function(e){return arguments.length?(a[0]=+e[0],a[1]=+e[1],_):[a[0],a[1]]},_.translateExtent=function(e){return arguments.length?(o[0][0]=+e[0][0],o[1][0]=+e[1][0],o[0][1]=+e[0][1],o[1][1]=+e[1][1],_):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},_.constrain=function(e){return arguments.length?(n=e,_):n},_.duration=function(e){return arguments.length?(s=+e,_):s},_.interpolate=function(e){return arguments.length?(c=e,_):c},_.on=function(){var e=l.on.apply(l,arguments);return e===l?_:e},_.clickDistance=function(e){return arguments.length?(h=(e=+e)*e,_):Math.sqrt(h)},_.tapDistance=function(e){return arguments.length?(g=+e,_):g},_}var Ho=`0 0 24 24`,Z={assessment:`M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20ZM8 12l2.7 2.7L16 9`,code:`M8 9l-4 3 4 3M16 9l4 3-4 3M14 5l-4 14`,decision:`M5 4h14v16H5zM8 12l2.5 2.5L16 9`,folder:`M3 6h7l2 2h9v11H3z`,hierarchy:`M9 3h6v4H9zM4 17h6v4H4zM14 17h6v4h-6zM12 7v5M7 12h10M7 12v5M17 12v5`,link:`M10 13a5 5 0 0 0 7.5.5l3-3a5 5 0 0 0-7-7l-1.8 1.7M14 11a5 5 0 0 0-7.5-.5l-3 3a5 5 0 0 0 7 7l1.8-1.7`,measure:`M4 16 16 4l4 4L8 20zM13 7l4 4M10 10l2 2M7 13l4 4`,purpose:`M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20ZM12 18a6 6 0 1 0 0-12 6 6 0 0 0 0 12ZM12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4`,scope:`M8 3H3v5M16 3h5v5M3 16v5h5M21 16v5h-5`,shield:`M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10ZM9 12l2 2 4-4`,source:`M6 3h8l4 4v14H6zM14 3v5h4M9 13h6M9 17h6`,transfer:`M4 7h11M12 4l3 3-3 3M20 17H9M12 14l-3 3 3 3`},Uo={PART_OF:{messageKey:`PART_OF`,iconPath:Z.hierarchy},HAS_SOURCE:{messageKey:`HAS_SOURCE`,iconPath:Z.source},HAS_PURPOSE:{messageKey:`HAS_PURPOSE`,iconPath:Z.purpose},HAS_SCOPE:{messageKey:`HAS_SCOPE`,iconPath:Z.scope},GOVERNS:{messageKey:`GOVERNS`,iconPath:Z.shield},HAS_TECHNICAL_SUMMARY:{messageKey:`HAS_TECHNICAL_SUMMARY`,iconPath:Z.code},ASSESSED_AS:{messageKey:`ASSESSED_AS`,iconPath:Z.assessment},MEASURES:{messageKey:`MEASURES`,iconPath:Z.measure},CONTAINS_PROJECT:{messageKey:`CONTAINS_PROJECT`,iconPath:Z.folder},USES_KNOWLEDGE_FROM:{messageKey:`USES_KNOWLEDGE_FROM`,iconPath:Z.transfer},USES_EXTERNAL_KNOWLEDGE:{messageKey:`USES_EXTERNAL_KNOWLEDGE`,iconPath:Z.transfer},DEPENDS_ON:{messageKey:`DEPENDS_ON`,iconPath:Z.link},PROVIDES_TO:{messageKey:`PROVIDES_TO`,iconPath:Z.transfer},SHARES_CAPABILITY_WITH:{messageKey:`SHARES_CAPABILITY_WITH`,iconPath:Z.link},RELATED_TO:{messageKey:`RELATED_TO`,iconPath:Z.link},HAS_DECISION:{messageKey:`HAS_DECISION`,iconPath:Z.decision}},Wo={messageKey:`fallback`,iconPath:Z.link},Go=RegExp(`\\b(${Object.keys(Uo).join(`|`)})\\b`,`g`);function Ko(e){let t=Uo[e.trim().toUpperCase()]??Wo,n=`knowledge.domain.relations.${t.messageKey}`;return{type:e,label:l(`${n}.label`),description:l(`${n}.description`),iconPath:t.iconPath}}function qo(e){return e.replace(Go,e=>l(`knowledge.domain.relations.quoted`,{label:Ko(e).label}))}function Jo(e){let t=new Set,n=[];for(let r of e){let e=r.trim().toUpperCase();!e||t.has(e)||(t.add(e),n.push(Ko(r)))}return n}var Yo=[`#537966`,`#867550`,`#65758a`,`#8a655f`,`#6f6a88`,`#598080`,`#8a765f`],Xo=.18,Zo=5,Qo=1.5;function $o(e,t,n={}){let r=typeof n==`function`?{onNodeSelect:n}:n,i=Math.max(e.clientWidth||0,760),a=Math.max(e.clientHeight||0,520),o=t.nodes.map(e=>({...e})),s=new Set(o.map(({id:e})=>e)),c=t.edges.map(es).filter(({sourceId:e,targetId:t})=>s.has(e)&&s.has(t)),u=K(e);u.selectAll(`*`).remove(),u.attr(`viewBox`,`0 0 ${i} ${a}`).attr(`preserveAspectRatio`,`xMidYMid meet`);let d=`graph-arrow-${Math.random().toString(36).slice(2)}`;u.append(`defs`).append(`marker`).attr(`id`,d).attr(`viewBox`,`0 -5 10 10`).attr(`refX`,28).attr(`refY`,0).attr(`markerWidth`,5).attr(`markerHeight`,5).attr(`orient`,`auto`).append(`path`).attr(`d`,`M0,-5L10,0L0,5`).attr(`class`,`graph-arrow`);let f=u.append(`g`).attr(`class`,`graph-viewport`),p=f.append(`g`).attr(`class`,`graph-edges`),m=f.append(`g`).attr(`class`,`graph-edge-labels`),h=f.append(`g`).attr(`class`,`graph-nodes`),g=p.selectAll(`line.graph-edge`).data(c).join(`line`).attr(`class`,e=>[`graph-edge`,e.invalid_at?`historical`:null,is(e)?`human-change-pending`:null,e.human_change_status===`viewed`?`human-change-viewed`:null].filter(Boolean).join(` `)).attr(`marker-end`,`url(#${d})`),_=p.selectAll(`line.graph-edge-hit`).data(c).join(`line`).attr(`class`,`graph-edge-hit`).attr(`role`,`button`).attr(`tabindex`,0).attr(`aria-label`,e=>{let t=Ko(e.type);return`${t.label}:${qo(e.fact||t.description)}`});_.append(`title`).text(e=>{let t=Ko(e.type);return`${t.label}:${qo(e.fact||t.description)}`});let v=c.length<=90?m.selectAll(`g.graph-edge-label`).data(c).join(`g`).attr(`class`,`graph-edge-label`).attr(`data-relation-type`,e=>e.type):m.selectAll(`g.graph-edge-label`);v.append(`rect`).attr(`class`,`graph-edge-label-bg`).attr(`x`,e=>-os(e)/2).attr(`y`,-10).attr(`width`,os).attr(`height`,20).attr(`rx`,10),v.append(`path`).attr(`class`,`graph-edge-label-icon`).attr(`d`,e=>Ko(e.type).iconPath).attr(`transform`,e=>`translate(${-os(e)/2+6},-6) scale(.5)`),v.append(`text`).attr(`class`,`graph-edge-label-text`).attr(`x`,e=>-os(e)/2+22).attr(`y`,3.5).text(e=>Ko(e.type).label),v.append(`title`).text(e=>{let t=Ko(e.type);return`${t.label}:${t.description}`});let y=h.selectAll(`g.graph-node`).data(o).join(`g`).attr(`class`,e=>[`graph-node`,$(e)?`project-node`:null,is(e)?`human-change-pending`:null,e.human_change_status===`viewed`?`human-change-viewed`:null].filter(Boolean).join(` `)).attr(`tabindex`,0).attr(`role`,`button`).attr(`aria-label`,e=>`${qo(e.name)},ID ${F(e)}`);y.filter(e=>!$(e)).append(`circle`).attr(`class`,`graph-node-shape`).attr(`r`,e=>10+Math.min(7,as(e.id,c))).attr(`fill`,e=>rs(e.type)),y.filter($).append(`circle`).attr(`class`,`graph-project-ring`).attr(`r`,24),y.filter($).append(`circle`).attr(`class`,`graph-node-shape`).attr(`r`,19),y.filter($).append(`path`).attr(`class`,`graph-project-icon`).attr(`d`,`M-9,-7H-3L0,-4H9V7H-9Z`),y.filter(is).append(`circle`).attr(`class`,`graph-node-human-marker`).attr(`cx`,e=>$(e)?20:12).attr(`cy`,e=>$(e)?-20:-12).attr(`r`,4),y.append(`text`).attr(`class`,`graph-node-label`).attr(`y`,e=>$(e)?39:26+Math.min(7,as(e.id,c))).text(e=>ss(qo(e.name),22)),y.append(`text`).attr(`class`,`graph-node-id`).attr(`y`,e=>$(e)?51:38+Math.min(7,as(e.id,c))).text(e=>`#${F(e)}`);let b=y.append(`g`).attr(`class`,`graph-search-badge`).attr(`transform`,e=>`translate(0,${$(e)?-36:-28})`);b.append(`rect`).attr(`x`,-15).attr(`y`,-8).attr(`width`,30).attr(`height`,15).attr(`rx`,4),b.append(`text`).attr(`y`,3).text(l(`knowledge.domain.graph.hit`)),y.append(`title`).text(e=>[qo(e.name),e.type,`ID: ${e.id}`,$(e)?l(`knowledge.domain.graph.projectMarked`):null,is(e)?e.human_change_status===`unseen`?l(`knowledge.domain.graph.humanUnseen`):l(`knowledge.domain.graph.humanViewed`):null].filter(Boolean).join(`
|
|
2
|
+
`));let x=Vo().scaleExtent([Xo,Zo]).on(`zoom`,e=>f.attr(`transform`,e.transform.toString()));u.call(x).on(`dblclick.zoom`,null);let S=Co(o).force(`link`,mo(c).id(({id:e})=>e).distance(118).strength(.42)).force(`charge`,wo().strength(-390).distanceMax(620)).force(`collide`,uo().radius(e=>$(e)?58:38+Math.min(10,as(e.id,c)))).force(`project-focus`,To(e=>$(e)?70:210,i/2,a/2).strength(e=>$(e)?.55:.008)).force(`center`,Ba(i/2,a/2)).force(`x`,Eo(i/2).strength(.025)).force(`y`,Do(a/2).strength(.025)).stop();for(let e=0;e<220;e+=1)S.tick();w();let C=zn().on(`start`,(e,t)=>{e.sourceEvent?.stopPropagation(),t.dragMoved=!1,t.fx=t.x,t.fy=t.y}).on(`drag`,function(e,t){t.dragMoved=!0,t.fx=e.x,t.fy=e.y,t.x=e.x,t.y=e.y,K(this).classed(`pinned`,!0),w()}).on(`end`,function(e,t){t.dragMoved?(t.fx=t.x,t.fy=t.y):(t.fx=null,t.fy=null,K(this).classed(`pinned`,!1)),delete t.dragMoved});return y.call(C),y.on(`click`,(e,t)=>{e.stopPropagation(),T(t)}).on(`keydown`,(e,t)=>{e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),T(t))}).on(`dblclick`,(e,t)=>{e.stopPropagation(),t.fx=null,t.fy=null,K(e.currentTarget).classed(`pinned`,!1),S.alpha(.35).restart(),window.setTimeout(()=>S.stop(),700)}),_.on(`click`,(e,t)=>{e.stopPropagation(),D(t)}).on(`keydown`,(e,t)=>{e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),D(t))}),u.on(`click.selection`,t=>{t.target===e&&A()}),j(o,0),{zoomIn:()=>ee(1.32),zoomOut:()=>ee(.76),fit:()=>j(o),reset:()=>{A(),u.transition().duration(220).call(x.transform,jo)},selectItem(e,t){if(e===`entity`){let e=o.find(e=>e.id===t);return e?(E(e),j([e]),!0):!1}let n=c.find(e=>e.id===t);return n?(O(n),j([ns(n.source),ns(n.target)]),!0):!1},focusByNames(e,{projectOnly:t=!1,searchMatch:n=!1}={}){let r=o.filter(n=>e.has(n.name)&&(!t||$(n)));if(!r.length)return n?k({nodeIds:new Set,edgeIds:new Set,selectedNodeId:null,selectedEdgeId:null,searchMatch:n}):A(),0;let i=new Set(r.map(({id:e})=>e));return k({nodeIds:i,edgeIds:new Set(c.filter(({sourceId:e,targetId:t})=>i.has(e)&&i.has(t)).map(({id:e})=>e)),selectedNodeId:null,selectedEdgeId:null,searchMatch:n}),j(r),r.length},clearSelection:A,destroy(){S.stop(),u.on(`.zoom`,null).on(`.selection`,null),u.selectAll(`*`).remove()}};function w(){g.attr(`x1`,e=>Q(e.source,`x`)).attr(`y1`,e=>Q(e.source,`y`)).attr(`x2`,e=>Q(e.target,`x`)).attr(`y2`,e=>Q(e.target,`y`)),_.attr(`x1`,e=>Q(e.source,`x`)).attr(`y1`,e=>Q(e.source,`y`)).attr(`x2`,e=>Q(e.target,`x`)).attr(`y2`,e=>Q(e.target,`y`)),v.attr(`transform`,e=>`translate(${(Q(e.source,`x`)+Q(e.target,`x`))/2},${(Q(e.source,`y`)+Q(e.target,`y`))/2-5})`),y.attr(`transform`,e=>`translate(${e.x??i/2},${e.y??a/2})`)}function T(e){E(e),r.onNodeSelect?.(e)}function E(e){let t=new Set([e.id]),n=new Set;for(let r of c)r.sourceId!==e.id&&r.targetId!==e.id||(n.add(r.id),t.add(r.sourceId),t.add(r.targetId));k({nodeIds:t,edgeIds:n,selectedNodeId:e.id,selectedEdgeId:null})}function D(e){O(e),r.onEdgeSelect?.(e.raw)}function O(e){k({nodeIds:new Set([e.sourceId,e.targetId]),edgeIds:new Set([e.id]),selectedNodeId:null,selectedEdgeId:e.id})}function k({nodeIds:e,edgeIds:t,selectedNodeId:n,selectedEdgeId:r,searchMatch:i=!1}){y.classed(`selected`,({id:e})=>e===n).classed(`related`,({id:t})=>e.has(t)&&t!==n).classed(`dimmed`,({id:t})=>!e.has(t)).classed(`search-match`,({id:t})=>i&&e.has(t)),g.classed(`selected`,({id:e})=>e===r).classed(`related`,({id:e})=>t.has(e)).classed(`dimmed`,({id:e})=>t.size>0?!t.has(e):!0).classed(`search-match`,({id:e})=>i&&t.has(e)),v.classed(`selected`,({id:e})=>e===r).classed(`related`,({id:e})=>t.has(e)).classed(`dimmed`,({id:e})=>t.size>0?!t.has(e):!0).classed(`search-match`,({id:e})=>i&&t.has(e))}function A(){y.classed(`selected related dimmed search-match`,!1),g.classed(`selected related dimmed search-match`,!1),v.classed(`selected related dimmed search-match`,!1)}function ee(e){u.transition().duration(180).call(x.scaleBy,e)}function j(e,t=220){if(!e.length)return;let n=e.map(({x:e})=>e??i/2),r=e.map(({y:e})=>e??a/2),o=Math.min(...n),s=Math.max(...n),c=Math.min(...r),l=Math.max(...r),d=Math.max(s-o,90),f=Math.max(l-c,90),p=Math.max(Xo,Math.min(Qo,.82/Math.max(d/i,f/a))),m=(o+s)/2,h=(c+l)/2,g=jo.translate(i/2-p*m,a/2-p*h).scale(p);t?u.transition().duration(t).call(x.transform,g):u.call(x.transform,g)}}function es(e,t){let n=ts(e.source),r=ts(e.target);return{id:e.id||`edge-${t}-${n}-${r}`,sourceId:n,targetId:r,source:n,target:r,type:e.type,fact:e.fact,invalid_at:e.invalid_at,human_change_status:e.human_change_status,raw:e}}function ts(e){return typeof e==`object`&&e?e.id:e}function ns(e){if(typeof e==`object`&&e)return e;throw Error(`Graph edge endpoint was not linked: ${e}`)}function Q(e,t){return ns(e)[t]??0}function rs(e){return Yo[Math.floor(cs(e)*Yo.length)%Yo.length]}function $(e){return e?.type===`PersonalProject`||e?.type===`RelatedPersonalProject`}function is(e){return e?.human_change_status===`unseen`||e?.human_change_status===`viewed`}function as(e,t){return t.reduce((t,n)=>t+Number(n.sourceId===e||n.targetId===e),0)}function os(e){return Math.max(54,31+[...Ko(e.type).label].length*10)}function ss(e,t){return e.length>t?`${e.slice(0,t-1)}…`:e}function cs(e=``){let t=2166136261;for(let n of e)t=Math.imul(t^n.charCodeAt(0),16777619);return(t>>>0)%1e4/1e4}var ls=[`aria-label`],us=E({__name:`GraphCanvas`,props:{graph:{},selectedItem:{}},emits:[`selectNode`,`selectEdge`],setup(e,{expose:i,emit:s}){let u=e,d=s,f=S(null),p=null;a(m),r(()=>u.graph,m,{deep:!1}),r(()=>b(),m),r([()=>u.selectedItem?.itemKind,()=>u.selectedItem?.id],h),t(()=>p?.destroy()),i({zoomIn:()=>p?.zoomIn(),zoomOut:()=>p?.zoomOut(),fit:()=>p?.fit(),reset:()=>p?.reset(),clearSelection:()=>p?.clearSelection(),selectItem:(e,t)=>p?.selectItem(e,t)??!1,focusByNames:(e,t)=>p?.focusByNames(e,t)??0});async function m(){await n(),f.value&&(p?.destroy(),p=$o(f.value,u.graph,{onNodeSelect:e=>d(`selectNode`,e),onEdgeSelect:e=>d(`selectEdge`,e)}),h())}function h(){let e=u.selectedItem;e&&p?.selectItem(e.itemKind,e.id)}return(e,t)=>(_(),c(`svg`,{id:`knowledge-graph`,ref_key:`svg`,ref:f,class:`knowledge-graph-canvas`,viewBox:`0 0 1000 620`,role:`img`,"aria-label":o(l)(`knowledge.workspace.graph.aria`)},null,8,ls))}}),ds={key:0,class:`graph-relation-legend`},fs=[`viewBox`],ps={class:`graph-relation-legend-panel`},ms=[`viewBox`],hs=[`d`],gs=E({__name:`GraphRelationLegend`,props:{relationTypes:{}},setup(e){let t=e,n=x(()=>Jo(t.relationTypes));return(e,t)=>n.value.length?(_(),c(`details`,ds,[y(`summary`,null,[(_(),c(`svg`,{viewBox:o(Ho),"aria-hidden":`true`},[...t[0]||=[y(`path`,{d:`M5 5h4v4H5zM15 15h4v4h-4zM9 7h4a4 4 0 0 1 4 4v4`},null,-1)]],8,fs)),y(`span`,null,w(o(l)(`knowledge.workspace.graph.legend`)),1),y(`small`,null,w(n.value.length),1),t[1]||=y(`i`,{"aria-hidden":`true`},null,-1)]),y(`div`,ps,[y(`header`,null,[y(`strong`,null,w(o(l)(`knowledge.workspace.graph.legend`)),1),y(`span`,null,w(o(l)(`knowledge.workspace.graph.legendCopy`)),1)]),y(`ul`,null,[(_(!0),c(p,null,g(n.value,e=>(_(),c(`li`,{key:e.type},[(_(),c(`svg`,{viewBox:o(Ho),"aria-hidden":`true`},[y(`path`,{d:e.iconPath},null,8,hs)],8,ms)),y(`span`,null,[y(`strong`,null,w(e.label),1),y(`small`,null,w(e.description),1)])]))),128))])])])):m(``,!0)}}),_s=[`aria-label`],vs=[`aria-label`],ys=[`aria-selected`],bs=[`aria-selected`],xs={key:1,id:`directory-panel-knowledge`,class:`directory-tab-panel`,role:`tabpanel`,"aria-labelledby":`directory-tab-knowledge`},Ss={class:`directory-section-heading`},Cs={class:`directory-section-copy`},ws=[`aria-label`],Ts=[`aria-pressed`],Es=[`aria-pressed`],Ds=[`aria-pressed`],Os={class:`directory-section-count`},ks={class:`knowledge-table-head`,"aria-hidden":`true`},As={class:`knowledge-column-content`},js={class:`knowledge-column-quadrant`},Ms={class:`knowledge-column-review`},Ns={class:`knowledge-column-type`},Ps={class:`knowledge-column-source`},Fs={class:`knowledge-column-time`},Is={class:`knowledge-column-validity`},Ls=[`data-item-key`,`onClick`],Rs={class:`knowledge-row-content`},zs={class:`knowledge-row-title`},Bs={class:`knowledge-row-type`},Vs={class:`knowledge-row-source`},Hs={class:`knowledge-row-time`},Us={class:`empty-state`},Ws={key:2,id:`directory-panel-materials`,class:`directory-tab-panel`,role:`tabpanel`,"aria-labelledby":`directory-tab-materials`},Gs={class:`directory-section-heading`},Ks={class:`directory-section-copy`},qs={class:`directory-section-count`},Js=[`data-item-key`,`onClick`],Ys={class:`project-material-copy`},Xs={class:`project-material-type`},Zs={class:`project-material-link`},Qs={class:`empty-state`},$s=E({__name:`KnowledgeDirectoryPanel`,props:{personalProjectsOnly:{type:Boolean},directorySection:{},knowledgeTabCount:{},materialTabCount:{},contentStatus:{},currentItemCount:{},historicalItemCount:{},allItems:{},visibleItems:{},projectMaterialItems:{},visibleProjectMaterialItems:{},selectedItem:{},listResetKey:{},sourceLabel:{type:Function}},emits:[`change-section`,`update-status`,`select-item`],setup(t,{emit:n}){let r=t,a=n;function s(e){return`${e.itemKind}:${e.id}`}let d=x(()=>r.selectedItem?r.visibleItems.findIndex(e=>s(e)===s(r.selectedItem)):-1),f=x(()=>r.selectedItem?r.visibleProjectMaterialItems.findIndex(e=>s(e)===s(r.selectedItem)):-1);return(n,r)=>(_(),c(`section`,{class:e([`knowledge-directory-panel`,{"has-directory-tabs":t.personalProjectsOnly}]),"aria-label":t.directorySection===`materials`?o(l)(`knowledge.workspace.workspace.view.materialDirectory`):o(l)(`knowledge.workspace.workspace.view.knowledgeDirectory`)},[t.personalProjectsOnly?(_(),c(`div`,{key:0,class:`directory-kind-tabs`,role:`tablist`,"aria-label":o(l)(`knowledge.workspace.workspace.view.directoryTypeAria`)},[y(`button`,{id:`directory-tab-knowledge`,class:`directory-kind-tab`,type:`button`,role:`tab`,"aria-controls":`directory-panel-knowledge`,"aria-selected":t.directorySection===`knowledge`,onClick:r[0]||=e=>a(`change-section`,`knowledge`)},[y(`span`,null,w(o(l)(`knowledge.workspace.workspace.view.knowledgeContent`)),1),y(`small`,null,w(t.knowledgeTabCount),1)],8,ys),y(`button`,{id:`directory-tab-materials`,class:`directory-kind-tab`,type:`button`,role:`tab`,"aria-controls":`directory-panel-materials`,"aria-selected":t.directorySection===`materials`,onClick:r[1]||=e=>a(`change-section`,`materials`)},[y(`span`,null,w(o(l)(`knowledge.workspace.workspace.view.projectMaterials`)),1),y(`small`,null,w(t.materialTabCount),1)],8,bs)],8,vs)):m(``,!0),t.directorySection===`knowledge`?(_(),c(`div`,xs,[y(`header`,Ss,[y(`div`,Cs,[y(`strong`,null,w(o(l)(`knowledge.workspace.workspace.view.knowledgeContent`)),1),y(`span`,null,w(o(l)(`knowledge.workspace.workspace.view.knowledgeCopy`)),1)]),y(`div`,{class:`knowledge-status-filter`,role:`group`,"aria-label":o(l)(`knowledge.workspace.workspace.view.knowledgeStatusAria`)},[y(`button`,{class:`knowledge-status-option`,"data-status":`current`,type:`button`,"aria-pressed":t.contentStatus===`current`,onClick:r[2]||=e=>a(`update-status`,`current`)},[D(w(o(l)(`common.status.current`))+` `,1),y(`span`,null,w(t.currentItemCount),1)],8,Ts),y(`button`,{class:`knowledge-status-option`,"data-status":`historical`,type:`button`,"aria-pressed":t.contentStatus===`historical`,onClick:r[3]||=e=>a(`update-status`,`historical`)},[D(w(o(l)(`common.status.invalid`))+` `,1),y(`span`,null,w(t.historicalItemCount),1)],8,Es),y(`button`,{class:`knowledge-status-option`,"data-status":`all`,type:`button`,"aria-pressed":t.contentStatus===`all`,onClick:r[4]||=e=>a(`update-status`,`all`)},[D(w(o(l)(`common.status.all`))+` `,1),y(`span`,null,w(t.allItems.length),1)],8,Ds)],8,ws),y(`small`,Os,w(o(l)(`common.counts.items`,{count:t.visibleItems.length})),1)]),u(se,{class:`knowledge-directory-virtual-list`,items:t.visibleItems,"row-height":68,"active-index":d.value,"reset-key":t.listResetKey,"item-key":s,label:o(l)(`knowledge.workspace.workspace.view.knowledgeDirectory`)},{header:i(()=>[y(`div`,ks,[y(`span`,As,w(o(l)(`knowledge.workspace.workspace.view.columns.content`)),1),y(`span`,js,w(o(l)(`knowledge.workspace.workspace.view.columns.quadrant`)),1),y(`span`,Ms,w(o(l)(`knowledge.workspace.workspace.view.columns.review`)),1),y(`span`,Ns,w(o(l)(`knowledge.workspace.workspace.view.columns.type`)),1),y(`span`,Ps,w(o(l)(`knowledge.workspace.workspace.view.columns.source`)),1),y(`span`,Fs,w(o(l)(`knowledge.workspace.workspace.view.columns.updated`)),1),y(`span`,Is,w(o(l)(`knowledge.workspace.workspace.view.columns.validity`)),1)])]),default:i(({item:n})=>[y(`button`,{class:e([`knowledge-row`,{selected:t.selectedItem?.itemKind===n.itemKind&&t.selectedItem?.id===n.id}]),type:`button`,"data-item-key":s(n),onClick:e=>a(`select-item`,n)},[y(`span`,Rs,[y(`span`,zs,[y(`strong`,null,w(n.title),1),n.humanChangeStatus===`unseen`||n.humanChangeStatus===`viewed`?(_(),c(`em`,{key:0,class:e([`human-change-badge`,`state-${n.humanChangeStatus}`])},w(o(he)(n.humanChangeStatus)),3)):m(``,!0)]),y(`small`,null,w(n.profileAspect?`${o(le)(n.profileAspect)} · ${n.body}`:n.body),1)]),y(`span`,{class:e([`knowledge-row-quadrant`,n.originQuadrant])},w(o(de)(n.originQuadrant)),3),y(`span`,{class:e([`knowledge-review-state`,`state-${o(pe)(n)}`])},w(o(ue)(n)),3),y(`span`,Bs,w(n.type),1),y(`span`,Vs,w(t.sourceLabel(n)),1),y(`span`,Hs,w(o(Se)(o(z)(n))),1),y(`span`,{class:e([`knowledge-status`,n.invalidAt?`historical`:`current`])},w(n.invalidAt?o(l)(`common.status.invalid`):o(l)(`knowledge.workspace.workspace.view.active`)),3)],10,Ls)]),empty:i(()=>[y(`div`,Us,w(t.allItems.length?o(l)(`knowledge.workspace.workspace.view.noFilteredKnowledge`):o(l)(`knowledge.workspace.workspace.view.noKnowledge`)),1)]),_:1},8,[`items`,`active-index`,`reset-key`,`label`])])):(_(),c(`div`,Ws,[y(`header`,Gs,[y(`div`,Ks,[y(`strong`,null,w(o(l)(`knowledge.workspace.workspace.view.projectMaterials`)),1),y(`span`,null,w(o(l)(`knowledge.workspace.workspace.view.materialCopy`)),1)]),y(`small`,qs,w(o(l)(`common.counts.items`,{count:t.visibleProjectMaterialItems.length})),1)]),u(se,{class:`project-material-virtual-list`,items:t.visibleProjectMaterialItems,"row-height":61,"active-index":f.value,"reset-key":t.listResetKey,"item-key":s,label:o(l)(`knowledge.workspace.workspace.view.materialDirectory`)},{default:i(({item:n})=>[y(`button`,{class:e([`project-material-row`,{selected:t.selectedItem?.itemKind===n.itemKind&&t.selectedItem?.id===n.id}]),type:`button`,"data-item-key":s(n),onClick:e=>a(`select-item`,n)},[y(`span`,Ys,[y(`strong`,null,w(n.itemKind===`entity`?n.title:n.type),1),y(`small`,null,w(n.body),1)]),y(`span`,Xs,w(o(Ce)(n)),1),y(`span`,Zs,w(o(l)(`knowledge.workspace.workspace.view.viewDetails`)),1)],10,Js)]),empty:i(()=>[y(`div`,Qs,w(t.projectMaterialItems.length?o(l)(`knowledge.workspace.workspace.view.noFilteredMaterials`):o(l)(`knowledge.workspace.workspace.view.noMaterials`)),1)]),_:1},8,[`items`,`active-index`,`reset-key`,`label`])]))],10,_s))}}),ec={key:0,open:``,class:`project-dialog knowledge-project-dialog vue-dialog`},tc={class:`project-dialog-shell`},nc={class:`project-dialog-header`},rc={class:`knowledge-project-source`},ic={class:`knowledge-project-mode`},ac=[`disabled`],oc={key:0,class:`knowledge-project-fields`},sc={class:`full-width`},cc={key:1,class:`knowledge-project-fields`},lc={class:`full-width`},uc={key:2,class:`knowledge-project-relation`},dc={class:`toggle-row`},fc={class:`knowledge-project-preview`},pc={key:0,class:`knowledge-project-compare`},mc={key:1,class:`knowledge-project-conflict-options`},hc={class:`knowledge-project-reason`},gc={key:3,class:`publish-dialog-error`,role:`alert`},_c={class:`knowledge-project-actions`},vc=[`disabled`],yc=E({__name:`KnowledgeProjectDialog`,props:{item:{},personalSpaceId:{},personalProjectId:{},projects:{}},emits:[`close`,`saved`],setup(t,{emit:n}){let i=t,a=n,p=ee(),h=S(`create`),g=S(``),v=S(``),b=S(``),E=S(``),k=S(!0),A=S(`RELATED_TO`),j=S(`defer`),te=S(``),M=S(null),N=S(!1),P=S(!1),F=S(``),ae=S(!1),I=0,L=x(()=>i.item?.itemKind===`entity`?i.item.raw:null),oe=x(()=>i.item?.assignments.at(0)?.project_id??i.item?.evidence.find(({personal_project_id:e})=>e)?.personal_project_id??i.personalProjectId??null),R=x(()=>i.projects.filter(({project_id:e})=>e!==oe.value)),se=x(()=>R.value.map(e=>({value:e.project_id,label:e.profile.name,meta:`#${ie(e.project_id,26)}`,search:re(e.project_id)}))),ce=x(()=>R.value.find(({project_id:e})=>e===g.value)??null),le=x(()=>{if(h.value===`create`)return{label:l(`projects.knowledgeDialog.previews.create.label`),title:l(`projects.knowledgeDialog.previews.create.title`),copy:oe.value?l(`projects.knowledgeDialog.previews.create.linkedCopy`):l(`projects.knowledgeDialog.previews.create.ownedCopy`)};if(N.value)return{label:l(`projects.knowledgeDialog.previews.checking.label`),title:l(`projects.knowledgeDialog.previews.checking.title`),copy:l(`projects.knowledgeDialog.previews.checking.copy`)};if(!M.value)return{label:l(`projects.knowledgeDialog.previews.waiting.label`),title:l(`projects.knowledgeDialog.previews.waiting.title`),copy:l(`projects.knowledgeDialog.previews.waiting.copy`)};let e=Object.fromEntries([`none`,`already_linked`,`exact_duplicate`,`conflict`].map(e=>[e,[l(`projects.knowledgeDialog.previews.outcomes.${e}.title`),l(`projects.knowledgeDialog.previews.outcomes.${e}.copy`)]])),[t,n]=e[M.value.match.kind]??e.none;return{label:t,title:n,copy:M.value.match.reason}}),ue=x(()=>{let e=h.value===`existing`?l(`projects.knowledgeDialog.relationActors.sourceProject`):l(`projects.knowledgeDialog.relationActors.newProject`),t=h.value===`existing`?l(`projects.knowledgeDialog.relationActors.targetProject`):l(`projects.knowledgeDialog.relationActors.sourceProject`);return{RELATED_TO:l(`projects.knowledgeDialog.relations.related`,{object:t}),PART_OF:l(`projects.knowledgeDialog.relations.partOf`,{subject:e,object:t}),USES_KNOWLEDGE_FROM:l(`projects.knowledgeDialog.relations.usesKnowledge`,{subject:e,object:t}),DEPENDS_ON:l(`projects.knowledgeDialog.relations.dependsOn`,{subject:e,object:t}),PROVIDES_TO:l(`projects.knowledgeDialog.relations.providesTo`,{subject:e,object:t}),SHARES_CAPABILITY_WITH:l(`projects.knowledgeDialog.relations.sharesCapability`,{object:t}),SUCCESSOR_OF:l(`projects.knowledgeDialog.relations.successorOf`,{subject:e,object:t})}}),de=x(()=>Object.entries(ue.value).map(([e,t])=>({value:e,label:t}))),fe=x(()=>P.value?l(`projects.knowledgeDialog.actions.processing`):h.value===`create`?l(`projects.knowledgeDialog.actions.create`):M.value?.match.kind===`exact_duplicate`?l(`projects.knowledgeDialog.actions.reuse`):l(`projects.knowledgeDialog.actions.add`)),pe=x(()=>P.value||h.value===`existing`&&(N.value||!M.value));r(()=>i.item,e=>{I+=1,M.value=null,N.value=!1,F.value=``,h.value=`create`,ae.value=!1;let t=e?.itemKind===`entity`?e.raw:null;v.value=t?.name??``,b.value=ge(t?.name??``),E.value=t?.summary??``,te.value=t?l(`projects.knowledgeDialog.defaultReason`,{name:t.name}):``,k.value=!0,A.value=`RELATED_TO`,j.value=`defer`,g.value=R.value[0]?.project_id??``},{immediate:!0}),r(v,e=>{ae.value||(b.value=ge(e))}),r([h,g,()=>i.item],()=>{h.value===`existing`?me():(I+=1,M.value=null,N.value=!1,F.value=``)});async function me(){let e=i.item;if(!e||e.itemKind!==`entity`||!g.value)return;let t=++I;N.value=!0,M.value=null,F.value=``;try{let n=await O(`/api/knowledge/entity/${encodeURIComponent(e.id)}/project-action/preview`,{personalSpaceId:i.personalSpaceId,targetProjectId:g.value});if(t!==I||i.item?.id!==e.id)return;M.value=n,n.match.kind===`conflict`&&(j.value=`defer`)}catch(e){if(t!==I)return;ve(_e(e)),p.reportError(e)}finally{t===I&&(N.value=!1)}}async function he(){let e=i.item;if(!(!e||e.itemKind!==`entity`)){if(h.value===`create`&&(!v.value.trim()||!b.value.trim()))return ve(l(`projects.knowledgeDialog.errors.projectIdentityRequired`));if(h.value===`existing`&&!g.value)return ve(l(`projects.knowledgeDialog.errors.targetRequired`));if(h.value===`existing`&&!M.value)return ve(l(`projects.knowledgeDialog.errors.previewRequired`));if(!te.value.trim())return ve(l(`projects.knowledgeDialog.errors.reasonRequired`));P.value=!0,F.value=``;try{let t=await O(`/api/knowledge/entity/${encodeURIComponent(e.id)}/project-action`,{personalSpaceId:i.personalSpaceId,mode:h.value,targetProjectId:h.value===`existing`?g.value:null,newProjectId:h.value===`create`?b.value.trim():null,newProjectName:h.value===`create`?v.value.trim():null,newProjectPurpose:h.value===`create`?E.value.trim():null,keepSourceRelation:!!(oe.value&&k.value),relationType:A.value,conflictResolution:j.value,reason:te.value.trim()}),n=h.value===`create`?v.value.trim():ce.value?.profile.name??l(`projects.knowledgeDialog.relationActors.targetProject`);a(`close`),a(`saved`,t,n)}catch(e){ve(_e(e)),p.reportError(e)}finally{P.value=!1}}}function ge(e){return e.normalize(`NFKC`).toLocaleLowerCase().replace(/[^\p{L}\p{N}]+/gu,`-`).replace(/^-+|-+$/g,``).slice(0,128)||`new-project`}function _e(e){let t=e instanceof Error?e.message:String(e);try{let e=JSON.parse(t);return e.message??e.detail??t}catch{return t}}function ve(e){F.value=e}return(n,r)=>t.item?(_(),c(`dialog`,ec,[y(`div`,tc,[y(`header`,nc,[y(`div`,null,[r[16]||=y(`p`,{class:`eyebrow`},`PERSONAL PROJECT`,-1),y(`h3`,null,w(o(l)(`projects.knowledgeDialog.title`)),1),y(`p`,null,w(o(l)(`projects.knowledgeDialog.intro`)),1)]),y(`button`,{class:`secondary-action`,type:`button`,onClick:r[0]||=e=>a(`close`)},w(o(l)(`common.actions.close`)),1)]),y(`form`,{class:`knowledge-project-form`,onSubmit:f(he,[`prevent`])},[y(`div`,rc,[y(`span`,null,w(o(l)(`projects.knowledgeDialog.sourceNode`)),1),y(`strong`,null,w(L.value?.name),1),y(`p`,null,w(L.value?.summary||o(l)(`common.status.noDescription`)),1)]),y(`fieldset`,ic,[y(`legend`,null,w(o(l)(`projects.knowledgeDialog.chooseAction`)),1),y(`label`,null,[s(y(`input`,{"onUpdate:modelValue":r[1]||=e=>h.value=e,type:`radio`,value:`create`},null,512),[[d,h.value]]),y(`span`,null,[y(`strong`,null,w(o(l)(`projects.knowledgeDialog.createNew`)),1),y(`small`,null,w(o(l)(`projects.knowledgeDialog.createNewCopy`)),1)])]),y(`label`,{class:e({disabled:R.value.length===0})},[s(y(`input`,{"onUpdate:modelValue":r[2]||=e=>h.value=e,type:`radio`,value:`existing`,disabled:R.value.length===0},null,8,ac),[[d,h.value]]),y(`span`,null,[y(`strong`,null,w(o(l)(`projects.knowledgeDialog.addExisting`)),1),y(`small`,null,w(o(l)(`projects.knowledgeDialog.addExistingCopy`)),1)])],2)]),h.value===`create`?(_(),c(`section`,oc,[y(`label`,null,[D(w(o(l)(`projects.knowledgeDialog.projectName`))+` `,1),s(y(`input`,{"onUpdate:modelValue":r[3]||=e=>v.value=e,maxlength:`512`,required:``},null,512),[[T,v.value]])]),y(`label`,null,[D(w(o(l)(`projects.knowledgeDialog.projectId`))+` `,1),s(y(`input`,{"onUpdate:modelValue":r[4]||=e=>b.value=e,maxlength:`128`,required:``,onInput:r[5]||=e=>ae.value=!0},null,544),[[T,b.value]])]),y(`label`,sc,[D(w(o(l)(`projects.knowledgeDialog.purpose`))+` `,1),s(y(`textarea`,{"onUpdate:modelValue":r[6]||=e=>E.value=e,maxlength:`4096`,rows:`3`},null,512),[[T,E.value]])])])):(_(),c(`section`,cc,[y(`label`,lc,[D(w(o(l)(`projects.knowledgeDialog.targetPersonalProject`))+` `,1),u(ne,{modelValue:g.value,"onUpdate:modelValue":r[7]||=e=>g.value=e,options:se.value,label:o(l)(`projects.knowledgeDialog.targetPersonalProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`])])])),oe.value?(_(),c(`section`,uc,[y(`label`,dc,[s(y(`input`,{"onUpdate:modelValue":r[8]||=e=>k.value=e,type:`checkbox`},null,512),[[C,k.value]]),y(`span`,null,[y(`strong`,null,w(o(l)(`projects.knowledgeDialog.preserveRelation`)),1),y(`small`,null,w(o(l)(`projects.knowledgeDialog.preserveRelationCopy`)),1)])]),y(`label`,null,[D(w(o(l)(`projects.knowledgeDialog.projectRelation`))+` `,1),u(ne,{modelValue:A.value,"onUpdate:modelValue":r[9]||=e=>A.value=e,options:de.value,label:o(l)(`projects.knowledgeDialog.projectRelation`),disabled:!k.value},null,8,[`modelValue`,`options`,`label`,`disabled`])])])):m(``,!0),y(`section`,fc,[y(`div`,null,[y(`span`,null,w(le.value.label),1),y(`strong`,null,w(le.value.title),1),y(`p`,null,w(le.value.copy),1)]),M.value&&[`exact_duplicate`,`conflict`].includes(M.value.match.kind)?(_(),c(`div`,pc,[y(`article`,null,[y(`span`,null,w(o(l)(`projects.knowledgeDialog.currentNode`)),1),y(`strong`,null,w(M.value.item_name),1),y(`p`,null,w(M.value.item_summary||o(l)(`common.status.noDescription`)),1)]),y(`article`,null,[y(`span`,null,w(o(l)(`projects.knowledgeDialog.targetContent`)),1),y(`strong`,null,w(M.value.match.item_name||o(l)(`projects.knowledgeDialog.targetContentFallback`)),1),y(`p`,null,w(M.value.match.item_summary||o(l)(`common.status.noDescription`)),1)])])):m(``,!0),M.value?.match.kind===`conflict`?(_(),c(`fieldset`,mc,[y(`legend`,null,w(o(l)(`projects.knowledgeDialog.conflictResolution`)),1),y(`label`,null,[s(y(`input`,{"onUpdate:modelValue":r[10]||=e=>j.value=e,type:`radio`,value:`defer`},null,512),[[d,j.value]]),D(` `+w(o(l)(`projects.knowledgeDialog.defer`)),1)]),y(`label`,null,[s(y(`input`,{"onUpdate:modelValue":r[11]||=e=>j.value=e,type:`radio`,value:`keep_target`},null,512),[[d,j.value]]),D(` `+w(o(l)(`projects.knowledgeDialog.keepTarget`)),1)]),y(`label`,null,[s(y(`input`,{"onUpdate:modelValue":r[12]||=e=>j.value=e,type:`radio`,value:`use_source`},null,512),[[d,j.value]]),D(` `+w(o(l)(`projects.knowledgeDialog.useSource`)),1)]),y(`label`,null,[s(y(`input`,{"onUpdate:modelValue":r[13]||=e=>j.value=e,type:`radio`,value:`coexist`},null,512),[[d,j.value]]),D(` `+w(o(l)(`projects.knowledgeDialog.coexist`)),1)])])):m(``,!0)]),y(`label`,hc,[D(w(o(l)(`projects.knowledgeDialog.operationReason`))+` `,1),s(y(`textarea`,{"onUpdate:modelValue":r[14]||=e=>te.value=e,maxlength:`2048`,rows:`3`,required:``},null,512),[[T,te.value]])]),F.value?(_(),c(`p`,gc,w(F.value),1)):m(``,!0),y(`div`,_c,[y(`button`,{class:`secondary-action`,type:`button`,onClick:r[15]||=e=>a(`close`)},w(o(l)(`common.actions.cancel`)),1),y(`button`,{class:`primary-action`,type:`submit`,disabled:pe.value},w(fe.value),9,vc)])],32)])])):m(``,!0)}}),bc={key:0,open:``,class:`project-profile-dialog vue-dialog`},xc={class:`project-profile-dialog-header`},Sc=[`disabled`],Cc={class:`project-profile-fields`},wc={value:`planned`},Tc={value:`active`},Ec={value:`maintenance`},Dc={value:`archived`},Oc={class:`project-profile-wide-field`},kc=[`placeholder`],Ac={class:`project-profile-wide-field`},jc=[`placeholder`],Mc={class:`project-profile-wide-field`},Nc=[`placeholder`],Pc={class:`project-profile-wide-field`},Fc=[`placeholder`],Ic={class:`project-source-editor`},Lc={key:0,class:`project-source-list`},Rc=[`onUpdate:modelValue`],zc=[`onUpdate:modelValue`],Bc=[`value`],Vc={class:`project-source-wide-field`},Hc=[`onUpdate:modelValue`,`placeholder`],Uc={class:`project-source-wide-field`},Wc=[`onUpdate:modelValue`],Gc=[`onUpdate:modelValue`],Kc={value:`normal`},qc={value:`private`},Jc={value:`restricted`},Yc=[`onClick`],Xc={key:1,class:`project-source-empty`},Zc={class:`project-profile-state-note`},Qc={key:0,class:`project-profile-error`,role:`alert`},$c={class:`project-profile-dialog-actions`},el=[`disabled`],tl=[`disabled`],nl=E({__name:`PersonalProjectProfileDialog`,props:{project:{},materialType:{}},emits:[`close`,`saved`],setup(e,{emit:t}){let i=e,a=t,u=S(``),d=S(``),h=S(``),b=S(``),C=S(`planned`),E=S(``),D=S([]),O=S(``),A=S(!1),ee=S(null),j=S(null),te=S(null),M=S(null),N=new Set([`ProjectPurpose`,`ProjectScope`,`ProjectSource`,`ProjectBoundary`,`ProjectAssessment`,`AssessmentDimension`,`PersonalProject`,`RelatedPersonalProject`]),P=x(()=>{let e=i.materialType??``;return N.has(e)?l(`projects.profileDialog.materialTypes.${e}`):l(`projects.profileDialog.materialTypes.fallback`)}),ne=[`prd`,`product_document`,`technical_document`,`frontend_repository`,`backend_repository`,`repository`,`design`,`runbook`,`monitoring`,`issue_tracker`,`other`],F=x(()=>ne.map(e=>[e,e===`prd`?`PRD`:l(`projects.profileDialog.sourceTypes.${e}`)])),re=new Set(ne),ie=new Set([`normal`,`private`,`restricted`]);r(()=>[i.project,i.materialType],async([e])=>{if(!e)return;let t=e.profile;u.value=t.name,d.value=t.purpose??``,h.value=t.scope??``,b.value=t.technical_summary??``,C.value=t.lifecycle??`planned`,E.value=(t.boundaries??[]).map(e=>String(e)).join(`
|
|
3
|
+
`),D.value=(t.sources??[]).map(ae),O.value=``,await n(),le()},{immediate:!0});function ae(e,t){let n=typeof e.kind==`string`&&re.has(e.kind)?e.kind:`other`,r=typeof e.sensitivity==`string`&&ie.has(e.sensitivity)?e.sensitivity:`normal`;return{key:I(e.key)||`source-${t+1}`,kind:n,title:I(e.title)||I(e.name),uri:I(e.uri),summary:I(e.summary),sensitivity:r}}function I(e){return typeof e==`string`?e:``}function L(e){return e.trim()||null}function oe(){return[...new Set(E.value.split(`
|
|
4
|
+
`).map(e=>e.trim()).filter(Boolean))].slice(0,64)}function R(){D.value.push({key:`source-${Date.now().toString(36)}-${D.value.length+1}`,kind:`other`,title:``,uri:``,summary:``,sensitivity:`normal`})}function se(e){D.value.splice(e,1)}async function ce(){if(!i.project||A.value)return;let e=u.value.trim();if(!e){O.value=l(`projects.profileDialog.errors.nameRequired`);return}if(D.value.some(e=>!e.title.trim())){O.value=l(`projects.profileDialog.errors.sourceNameRequired`);return}A.value=!0,O.value=``;try{let t=await k(`/api/personal-projects`,{personalSpaceId:i.project.personal_space_id,projectId:i.project.project_id,profile:{name:e,purpose:L(d.value),scope:L(h.value),technicalSummary:L(b.value),lifecycle:C.value,sources:D.value.map(e=>({key:e.key,kind:e.kind,title:e.title.trim(),uri:L(e.uri),summary:L(e.summary),sensitivity:e.sensitivity})),boundaries:oe(),assessment:i.project.profile.assessment??null}});a(`saved`,t),a(`close`)}catch(e){O.value=e instanceof Error?e.message:l(`projects.profileDialog.errors.saveFailed`)}finally{A.value=!1}}function le(){i.materialType===`ProjectPurpose`?ee.value?.focus():i.materialType===`ProjectScope`?j.value?.focus():i.materialType===`ProjectBoundary`?te.value?.focus():i.materialType===`ProjectSource`&&M.value?.focus()}return(t,n)=>e.project?(_(),c(`dialog`,bc,[y(`form`,{class:`project-profile-dialog-shell`,onSubmit:f(ce,[`prevent`])},[y(`header`,xc,[y(`div`,null,[n[8]||=y(`p`,{class:`eyebrow`},`PROJECT MATERIAL`,-1),y(`h3`,null,w(o(l)(`projects.profileDialog.title`,{material:P.value})),1),y(`p`,null,w(o(l)(`projects.profileDialog.intro`)),1)]),y(`button`,{class:`secondary-action`,type:`button`,disabled:A.value,onClick:n[0]||=e=>a(`close`)},w(o(l)(`common.actions.close`)),9,Sc)]),y(`div`,Cc,[y(`label`,null,[y(`span`,null,w(o(l)(`projects.profileDialog.projectName`)),1),s(y(`input`,{"onUpdate:modelValue":n[1]||=e=>u.value=e,name:`project-name`,maxlength:`160`,required:``},null,512),[[T,u.value]])]),y(`label`,null,[y(`span`,null,w(o(l)(`projects.profileDialog.lifecycle`)),1),s(y(`select`,{"onUpdate:modelValue":n[2]||=e=>C.value=e,name:`project-lifecycle`},[y(`option`,wc,w(o(l)(`projects.profileDialog.lifecycles.planned`)),1),y(`option`,Tc,w(o(l)(`projects.profileDialog.lifecycles.active`)),1),y(`option`,Ec,w(o(l)(`projects.profileDialog.lifecycles.maintenance`)),1),y(`option`,Dc,w(o(l)(`projects.profileDialog.lifecycles.archived`)),1)],512),[[v,C.value]])]),y(`label`,Oc,[y(`span`,null,w(o(l)(`projects.profileDialog.purpose`)),1),s(y(`textarea`,{ref_key:`purposeField`,ref:ee,"onUpdate:modelValue":n[3]||=e=>d.value=e,name:`project-purpose`,maxlength:`4096`,rows:`4`,placeholder:o(l)(`projects.profileDialog.purposePlaceholder`)},null,8,kc),[[T,d.value]])]),y(`label`,Ac,[y(`span`,null,w(o(l)(`projects.profileDialog.scope`)),1),s(y(`textarea`,{ref_key:`scopeField`,ref:j,"onUpdate:modelValue":n[4]||=e=>h.value=e,name:`project-scope`,maxlength:`4096`,rows:`4`,placeholder:o(l)(`projects.profileDialog.scopePlaceholder`)},null,8,jc),[[T,h.value]])]),y(`label`,Mc,[y(`span`,null,w(o(l)(`projects.profileDialog.technicalSummary`)),1),s(y(`textarea`,{"onUpdate:modelValue":n[5]||=e=>b.value=e,name:`project-technical-summary`,maxlength:`4096`,rows:`4`,placeholder:o(l)(`projects.profileDialog.technicalPlaceholder`)},null,8,Nc),[[T,b.value]])]),y(`label`,Pc,[y(`span`,null,w(o(l)(`projects.profileDialog.boundary`)),1),s(y(`textarea`,{ref_key:`boundariesField`,ref:te,"onUpdate:modelValue":n[6]||=e=>E.value=e,name:`project-boundaries`,maxlength:`8192`,rows:`5`,placeholder:o(l)(`projects.profileDialog.boundaryPlaceholder`)},null,8,Fc),[[T,E.value]]),y(`small`,null,w(o(l)(`projects.profileDialog.boundaryHint`)),1)])]),y(`section`,Ic,[y(`div`,{ref_key:`sourcesHeading`,ref:M,class:`project-source-editor-heading`,tabindex:`-1`},[y(`div`,null,[y(`h4`,null,w(o(l)(`projects.profileDialog.sources`)),1),y(`p`,null,w(o(l)(`projects.profileDialog.sourcesCopy`)),1)]),y(`button`,{class:`secondary-action`,type:`button`,onClick:R},w(o(l)(`projects.profileDialog.addSource`)),1)],512),D.value.length?(_(),c(`div`,Lc,[(_(!0),c(p,null,g(D.value,(e,t)=>(_(),c(`article`,{key:e.key,class:`project-source-row`},[y(`label`,null,[y(`span`,null,w(o(l)(`projects.profileDialog.sourceName`)),1),s(y(`input`,{"onUpdate:modelValue":t=>e.title=t,maxlength:`512`,required:``},null,8,Rc),[[T,e.title]])]),y(`label`,null,[y(`span`,null,w(o(l)(`projects.profileDialog.sourceType`)),1),s(y(`select`,{"onUpdate:modelValue":t=>e.kind=t},[(_(!0),c(p,null,g(F.value,([e,t])=>(_(),c(`option`,{key:e,value:e},w(t),9,Bc))),128))],8,zc),[[v,e.kind]])]),y(`label`,Vc,[y(`span`,null,w(o(l)(`projects.profileDialog.sourceUri`)),1),s(y(`input`,{"onUpdate:modelValue":t=>e.uri=t,maxlength:`2048`,placeholder:o(l)(`projects.profileDialog.sourceUriPlaceholder`)},null,8,Hc),[[T,e.uri]])]),y(`label`,Uc,[y(`span`,null,w(o(l)(`projects.profileDialog.sourceSummary`)),1),s(y(`textarea`,{"onUpdate:modelValue":t=>e.summary=t,maxlength:`4096`,rows:`2`},null,8,Wc),[[T,e.summary]])]),y(`label`,null,[y(`span`,null,w(o(l)(`projects.profileDialog.sensitivity`)),1),s(y(`select`,{"onUpdate:modelValue":t=>e.sensitivity=t},[y(`option`,Kc,w(o(l)(`projects.profileDialog.sensitivities.normal`)),1),y(`option`,qc,w(o(l)(`projects.profileDialog.sensitivities.private`)),1),y(`option`,Jc,w(o(l)(`projects.profileDialog.sensitivities.restricted`)),1)],8,Gc),[[v,e.sensitivity]])]),y(`button`,{class:`text-action project-source-remove`,type:`button`,onClick:e=>se(t)},w(o(l)(`common.actions.remove`)),9,Yc)]))),128))])):(_(),c(`p`,Xc,w(o(l)(`projects.profileDialog.noSources`)),1))]),y(`p`,Zc,w(o(l)(`projects.profileDialog.stateBoundary`)),1),O.value?(_(),c(`p`,Qc,w(O.value),1)):m(``,!0),y(`footer`,$c,[y(`button`,{class:`secondary-action`,type:`button`,disabled:A.value,onClick:n[7]||=e=>a(`close`)},w(o(l)(`common.actions.cancel`)),9,el),y(`button`,{class:`primary-action`,type:`submit`,disabled:A.value},w(A.value?o(l)(`projects.profileDialog.saving`):o(l)(`projects.profileDialog.save`)),9,tl)])],32)])):m(``,!0)}}),rl={key:0,open:``,class:`publish-dialog vue-dialog`},il={class:`publish-dialog-shell`},al={class:`publish-dialog-intro`},ol={class:`publish-release-fields`},sl=[`placeholder`],cl=[`placeholder`],ll=[`aria-label`],ul={key:0,class:`publish-dialog-error`,role:`alert`},dl={class:`publish-dialog-actions`},fl=[`disabled`],pl=[`disabled`],ml=E({__name:`PublishProjectDialog`,props:{project:{}},emits:[`close`,`published`],setup(e,{emit:t}){let n=e,i=t,a=ee(),u=S(``),d=S(``),f=S(``),p=S(!1),h=x(()=>a.state?.projects.find(({publication_key:e})=>e&&e===n.project?.publication_key)??null),g=x(()=>h.value?.current_release?.version??null),v=x(()=>a.state?.providers?.workspaces?.find(({status:e})=>e===`ready`)?.providerUrl??null);r(()=>n.project,e=>{e&&(u.value=C(g.value),d.value=``,f.value=``)},{immediate:!0});async function b(){if(n.project){if(!v.value){f.value=l(`projects.publishDialog.errors.providerUnavailable`);return}if(!u.value.trim()){f.value=l(`projects.publishDialog.errors.versionRequired`);return}if(!d.value.trim()){f.value=l(`projects.publishDialog.errors.summaryRequired`);return}p.value=!0,f.value=``;try{await O(`/api/projects/publish`,{personalSpaceId:a.activePersonalSpace?.id,localProjectId:n.project.project_id,providerUrl:v.value,releaseVersion:u.value.trim(),updateSummary:d.value.trim()}),a.notify(l(`projects.publishDialog.published`,{name:n.project.profile.name,version:u.value.trim()})),await a.refresh(),i(`close`),i(`published`)}catch(e){f.value=e instanceof Error?e.message:l(`projects.publishDialog.errors.failed`),a.reportError(e)}finally{p.value=!1}}}function C(e){if(!e||e===`legacy`)return`v1.0.0`;let t=e.match(/^(v?)(\d+)\.(\d+)\.(\d+)$/);return t?`${t[1]}${t[2]}.${t[3]}.${Number(t[4])+1}`:``}return(t,n)=>e.project?(_(),c(`dialog`,rl,[y(`div`,il,[n[3]||=y(`p`,{class:`eyebrow`},`PUBLICATION`,-1),y(`h3`,null,w(o(l)(`projects.publishDialog.title`)),1),y(`p`,al,[y(`strong`,null,w(e.project.profile.name),1),y(`span`,null,w(o(l)(`projects.publishDialog.warning`)),1)]),y(`div`,ol,[y(`label`,null,[y(`span`,null,w(o(l)(`projects.publishDialog.version`)),1),s(y(`input`,{"onUpdate:modelValue":n[0]||=e=>u.value=e,maxlength:`64`,placeholder:o(l)(`projects.publishDialog.versionPlaceholder`)},null,8,sl),[[T,u.value]]),y(`small`,null,w(g.value?o(l)(`projects.publishDialog.currentVersion`,{version:g.value}):o(l)(`projects.publishDialog.firstRelease`)),1)]),y(`label`,null,[y(`span`,null,w(o(l)(`projects.publishDialog.summary`)),1),s(y(`textarea`,{"onUpdate:modelValue":n[1]||=e=>d.value=e,maxlength:`4096`,rows:`4`,placeholder:o(l)(`projects.publishDialog.summaryPlaceholder`)},null,8,cl),[[T,d.value]])])]),y(`div`,{class:`publish-impact`,"aria-label":o(l)(`projects.publishDialog.impactAria`)},[y(`div`,null,[y(`strong`,null,w(o(l)(`projects.publishDialog.discoverable`)),1),y(`span`,null,w(o(l)(`projects.publishDialog.discoverableCopy`)),1)]),y(`div`,null,[y(`strong`,null,w(o(l)(`projects.publishDialog.owner`)),1),y(`span`,null,w(o(l)(`projects.publishDialog.ownerCopy`)),1)]),y(`div`,null,[y(`strong`,null,w(o(l)(`projects.publishDialog.syncProfile`)),1),y(`span`,null,w(o(l)(`projects.publishDialog.syncProfileCopy`)),1)])],8,ll),f.value?(_(),c(`p`,ul,w(f.value),1)):m(``,!0),y(`div`,dl,[y(`button`,{class:`secondary-action`,type:`button`,disabled:p.value,onClick:n[2]||=e=>i(`close`)},w(o(l)(`common.actions.cancel`)),9,fl),y(`button`,{class:`primary-action`,type:`button`,disabled:p.value,onClick:b},w(p.value?o(l)(`projects.publishDialog.publishing`):o(l)(`projects.publishDialog.confirm`)),9,pl)])])])):m(``,!0)}}),hl=E({__name:`KnowledgeWorkspaceDialogs`,props:{editingItem:{},confirmingItem:{},projectActionItem:{},publishingProject:{},managingProject:{},managingMaterialType:{},personalSpaceId:{},editingProjectId:{},confirmingProjectId:{},currentProjectId:{},projects:{},replacementItems:{}},emits:[`close-edit`,`close-confirm`,`close-project-action`,`close-publish`,`close-profile`,`refresh`,`project-saved`,`profile-saved`],setup(e,{emit:t}){let n=t;function r(e,t){n(`project-saved`,e,t)}function i(e){n(`profile-saved`,e)}return(t,a)=>(_(),c(p,null,[u(R,{item:e.editingItem,"personal-space-id":e.personalSpaceId,"personal-project-id":e.editingProjectId,projects:e.projects,"replacement-items":e.replacementItems,onClose:a[0]||=e=>n(`close-edit`),onSaved:a[1]||=e=>n(`refresh`)},null,8,[`item`,`personal-space-id`,`personal-project-id`,`projects`,`replacement-items`]),u(L,{item:e.confirmingItem,"personal-space-id":e.personalSpaceId,"personal-project-id":e.confirmingProjectId,onClose:a[2]||=e=>n(`close-confirm`),onSaved:a[3]||=e=>n(`refresh`)},null,8,[`item`,`personal-space-id`,`personal-project-id`]),u(yc,{item:e.projectActionItem,"personal-space-id":e.personalSpaceId,"personal-project-id":e.currentProjectId,projects:e.projects,onClose:a[4]||=e=>n(`close-project-action`),onSaved:r},null,8,[`item`,`personal-space-id`,`personal-project-id`,`projects`]),u(ml,{project:e.publishingProject,onClose:a[5]||=e=>n(`close-publish`),onPublished:a[6]||=e=>n(`refresh`)},null,8,[`project`]),u(nl,{project:e.managingProject,"material-type":e.managingMaterialType,onClose:a[7]||=e=>n(`close-profile`),onSaved:i},null,8,[`project`,`material-type`])],64))}}),gl=[`aria-label`],_l=[`aria-label`],vl=E({__name:`ProjectHierarchyAside`,props:{parents:{},activeProjectName:{},spaceId:{}},setup(e){let t=e;function n(){return t.activeProjectName||l(`knowledge.workspace.hierarchy.currentProject`)}return(t,r)=>e.parents.length?(_(),c(`aside`,{key:0,class:`project-hierarchy-aside`,"aria-label":o(l)(`knowledge.workspace.hierarchy.aria`)},[y(`header`,null,[y(`span`,null,w(o(l)(`knowledge.workspace.hierarchy.level`)),1),y(`strong`,null,w(o(l)(`knowledge.workspace.hierarchy.parents`)),1),y(`small`,null,w(o(l)(`common.counts.projects`,{count:e.parents.length})),1)]),y(`p`,null,w(o(l)(`knowledge.workspace.hierarchy.belongsTo`,{name:n()})),1),y(`nav`,{"aria-label":o(l)(`knowledge.workspace.hierarchy.listAria`)},[(_(!0),c(p,null,g(e.parents,t=>(_(),h(o(M),{key:t.nodeId,class:`project-parent-link`,to:o(N)(e.spaceId,`graph`,t.projectId),"aria-label":o(l)(`knowledge.workspace.hierarchy.openParent`,{name:t.name})},{default:i(()=>[r[0]||=y(`span`,{class:`project-parent-icon`,"aria-hidden":`true`},[y(`svg`,{viewBox:`0 0 24 24`},[y(`path`,{d:`M3 6h7l2 2h9v11H3zM12 16V9M9 12l3-3 3 3`})])],-1),y(`span`,null,[y(`small`,null,w(o(l)(`knowledge.workspace.hierarchy.parents`)),1),y(`strong`,null,w(t.name),1),y(`em`,null,w(o(l)(`knowledge.workspace.hierarchy.belongsToParent`,{name:n()})),1)]),r[1]||=y(`b`,{"aria-hidden":`true`},`→`,-1)]),_:2},1032,[`to`,`aria-label`]))),128))],8,_l)],8,gl)):m(``,!0)}}),yl=15,bl=4;async function xl({personalSpaceId:e,projects:t,query:n,baseline:r,signal:i,limit:a=yl,request:o=A}){let s=Cl(r),c=t.slice(0,a),l=[];for(let t=0;t<c.length;t+=bl){i?.throwIfAborted();let r=c.slice(t,t+bl);l.push(...await Promise.all(r.map(async t=>{try{let r=wl(await o(`/api/search?${new URLSearchParams({personalSpaceId:e,personalProjectId:t.project_id,q:n,limit:`30`})}`,{signal:i})).filter(({key:e})=>!s.has(e));return r.length?{status:`matched`,project:t,count:r.length,score:Math.max(...r.map(({score:e})=>e??0))}:{status:`empty`,project:t}}catch(e){if(i?.aborted)throw e;return{status:`failed`,project:t}}})))}return{matches:l.filter(e=>e.status===`matched`).sort((e,t)=>t.score-e.score||t.count-e.count||e.project.profile.name.localeCompare(t.project.profile.name)),checked:l.length,total:t.length,failed:l.filter(({status:e})=>e===`failed`).length}}function Sl(e){let t=e.failed?l(`knowledge.domain.discovery.failedSuffix`,{count:e.failed}):``;return e.matches.length?l(`knowledge.domain.discovery.matches`,{failure:t}):e.total?e.failed===e.checked?l(`knowledge.domain.discovery.allFailed`):e.checked<e.total?l(`knowledge.domain.discovery.checkedPartial`,{checked:e.checked,total:e.total,failure:t}):l(`knowledge.domain.discovery.checkedAll`,{failure:t}):l(`knowledge.domain.discovery.noOtherProjects`)}function Cl(e){return new Set(wl(e).map(({key:e})=>e))}function wl(e){return[...(e.entities??[]).map(e=>({key:`entity:${e.id}`,score:e.score})),...(e.facts??[]).map(e=>({key:`fact:${e.id}`,score:e.score}))]}function Tl(e,t){if(!t)return{graph:e,parents:[]};let n=e.nodes.find(e=>e.type===`PersonalProject`&&e.attributes?.projectId===t);if(!n)return{graph:e,parents:[]};let r=new Map(e.nodes.map(e=>[e.id,e])),i=new Map;for(let t of e.edges){if(t.type!==`PART_OF`||El(t.source)!==n.id)continue;let e=r.get(El(t.target));if(!e||!Dl(e))continue;let a=e.attributes?.projectId;typeof a!=`string`||!a||i.has(e.id)||i.set(e.id,{projectId:a,name:e.name,summary:e.summary||l(`knowledge.domain.hierarchy.parentSummary`),nodeId:e.id,relationId:t.id})}if(!i.size)return{graph:e,parents:[]};let a=new Set(i.keys()),o=e.nodes.filter(({id:e})=>!a.has(e)),s=new Set(o.map(({id:e})=>e)),c=e.edges.filter(e=>s.has(El(e.source))&&s.has(El(e.target)));return{graph:{...e,nodes:o,edges:c},parents:[...i.values()]}}function El(e){return typeof e==`object`&&e?e.id:e}function Dl(e){return e.type===`PersonalProject`||e.type===`RelatedPersonalProject`}var Ol={class:`view graph-view vue-knowledge-view`},kl={class:`knowledge-view-heading`},Al=[`aria-label`],jl=[`aria-selected`],Ml=[`aria-selected`],Nl={class:`muted`},Pl={class:`graph-toolbar`},Fl={key:0,class:`personal-context-picker`},Il={class:`personal-context-panel`},Ll={class:`personal-context-list`},Rl=[`value`,`checked`],zl=[`aria-label`],Bl=[`placeholder`,`aria-label`,`value`],Vl={class:`graph-view-actions`},Hl=[`aria-label`],Ul=[`aria-label`],Wl=[`aria-label`],Gl={key:1,class:`knowledge-layout`},Kl={class:`graph-canvas-panel`},ql={key:0,class:`graph-search-status`,"aria-live":`polite`},Jl={class:`graph-search-status-kicker`},Yl={class:`graph-search-status-title`},Xl={class:`graph-search-status-copy`},Zl={key:0,class:`graph-search-suggestions`},Ql={key:2,class:`graph-empty`},$l={key:2,class:`graph-hint`},eu=E({__name:`KnowledgeWorkspace`,props:{personalProjectsOnly:{type:Boolean,default:!1}},setup(a){let s=a,d=ee(),v=te(),b=j(),C=S(!1),T=S(null),E=oe(),O=I(x(()=>E||C.value&&!T.value)),k=S(null),F=S(null),L=S(qt(v.query.q)),R=S(``),se=S(null),le=S(null),ue=S(null),pe=S(null),he=S(null),Se=S(null),z=S(null),Ee=new Set,De=0,Oe=0,ke=null,Ae=null,B=x(()=>v.params.mode===`graph`?`graph`:`directory`),V=x(()=>s.personalProjectsOnly?`personal`:v.params.scope===`public`?`public`:`personal`),H=x(()=>String(v.params.spaceId??d.activePersonalSpace?.id??``)),U=x(()=>{let e=v.params.projectId;return typeof e==`string`&&e?e:null}),je=x(()=>Jt(v.query.context)),Me=x(()=>JSON.stringify([s.personalProjectsOnly,V.value,H.value,U.value,je.value])),Ne=x(()=>_e(T.value)),W=x(()=>s.personalProjectsOnly?we(T.value):[]),Pe=x(()=>{let e=L.value.trim().toLocaleLowerCase();return e?W.value.filter(t=>[t.title,t.body,t.type,Ce(t)].some(t=>t.toLocaleLowerCase().includes(e))):W.value}),Fe=x(()=>[...W.value,...Ne.value]),Ie=x(()=>s.personalProjectsOnly?B.value===`directory`&&k.value?ge(k.value)?`materials`:`knowledge`:qt(v.query.section)===`materials`?`materials`:`knowledge`:`knowledge`),Le=x(()=>[...new Set(Ne.value.map(({type:e})=>e))].sort()),Re=x(()=>[{value:`all`,label:l(`knowledge.workspace.workspace.filters.allTypes`)},...Le.value.map(e=>({value:e,label:e}))]),ze=x(()=>[{value:`all`,label:l(`knowledge.workspace.workspace.filters.allQuadrants`)},...[`known_known`,`known_unknown`,`unknown_known`,`unknown_unknown`].map(e=>({value:e,label:de(e)}))]),Be=x(()=>[{value:`all`,label:l(`knowledge.workspace.workspace.filters.allKnowledge`)},{value:`profile`,label:l(`knowledge.workspace.workspace.filters.preferences`)},{value:`regular`,label:l(`knowledge.workspace.workspace.filters.projectKnowledge`)}]),Ve=x(()=>[{value:`all`,label:l(`knowledge.workspace.workspace.filters.allHumanStates`)},{value:`human_changed`,label:l(`knowledge.workspace.workspace.filters.allHumanChanged`)},{value:`unseen`,label:l(`knowledge.workspace.workspace.filters.agentUnseen`)},{value:`viewed`,label:l(`knowledge.workspace.workspace.filters.viewedPending`)},{value:`reviewed`,label:l(`knowledge.workspace.workspace.filters.agentReviewed`)}]),He=x(()=>{let e=qt(v.query.status);return e===`historical`||e===`all`?e:`current`}),Ue=x(()=>({query:L.value,type:qt(v.query.type)||`all`,quadrant:qt(v.query.quadrant)||`all`,profile:qt(v.query.profile)||`all`,status:He.value,humanChange:qt(v.query.human)||`all`})),We=x(()=>JSON.stringify([Ie.value,Ue.value])),Ge=x(()=>ye(Ne.value,Ue.value)),Ke=x(()=>Ne.value.filter(({invalidAt:e})=>!e).length),qe=x(()=>Ne.value.length-Ke.value),Je=x(()=>He.value===`current`?Ke.value:He.value===`historical`?qe.value:Ne.value.length),Ye=x(()=>He.value===`current`?l(`common.status.current`):He.value===`historical`?l(`common.status.invalid`):l(`knowledge.workspace.workspace.status.all`)),Xe=x(()=>T.value?xe(T.value):null),Ze=x(()=>Xe.value?Tl(Xe.value,U.value):null),Qe=x(()=>Ze.value?.graph??null),$e=x(()=>Ze.value?.parents??[]),et=x(()=>Qe.value?.edges.map(({type:e})=>e)??[]),tt=x(()=>{if(!T.value)return C.value?l(`common.status.loadingKnowledge`):l(`knowledge.workspace.workspace.status.graphUnread`);if(B.value===`graph`){let e=Qe.value;return R.value||l(`knowledge.workspace.workspace.counts.graph`,{nodes:e?.nodes.length??0,edges:e?.edges.length??0})}return Ie.value===`materials`?Pe.value.length===W.value.length?l(`knowledge.workspace.workspace.counts.materials`,{count:W.value.length}):l(`knowledge.workspace.workspace.counts.visibleMaterials`,{visible:Pe.value.length,total:W.value.length}):Ge.value.length===Je.value?l(`knowledge.workspace.workspace.counts.knowledge`,{status:Ye.value,count:Je.value}):l(`knowledge.workspace.workspace.counts.visibleKnowledge`,{status:Ye.value,visible:Ge.value.length,total:Je.value})}),nt=x(()=>String(Ne.value.length)),rt=x(()=>String(W.value.length)),it=x(()=>(d.state?.personalProjects??[]).filter(({personal_space_id:e})=>e===H.value)),at=x(()=>it.value.filter(({project_id:e})=>e!==U.value)),ot=x(()=>{let e=d.state;if(!e)return[];let t=e.personalSpaces.flatMap(t=>[{key:Kt(`personal`,t.id,null),scope:`personal`,spaceId:t.id,projectId:null,providerUrl:null,label:l(`knowledge.workspace.workspace.spaces.allPersonalProjects`,{name:t.name})},...(e.personalProjects??[]).filter(({personal_space_id:e})=>e===t.id).map(e=>({key:Kt(`personal`,t.id,e.project_id),scope:`personal`,spaceId:t.id,projectId:e.project_id,providerUrl:null,label:l(`knowledge.workspace.workspace.spaces.personalProject`,{name:e.profile.name})}))]);if(s.personalProjectsOnly)return t;let n=e.projects.map(e=>({key:Kt(`public`,e.id,null),scope:`public`,spaceId:e.id,projectId:null,providerUrl:e.providerUrl,label:l(`knowledge.workspace.workspace.spaces.publicProject`,{name:e.name})}));return[...t,...n]}),st=x(()=>Kt(V.value,H.value,U.value)),ct=x(()=>ot.value.map(e=>{let t=e.projectId??e.spaceId;return{value:e.key,label:e.label,meta:`#${ie(t,26)}`,search:re(t)}})),lt=x(()=>V.value===`personal`),ut=x(()=>d.state?.personalProjects?.find(({project_id:e})=>e===U.value)??null),dt=x(()=>Bt(k.value)),ft=x(()=>z.value?z.value.checking?l(`knowledge.workspace.workspace.discovery.checking`):z.value.result?Sl(z.value.result):l(`knowledge.workspace.workspace.discovery.retry`):``),pt=Te(()=>{Tt()},300);r([()=>d.state,()=>v.name,()=>v.params.mode,()=>v.params.spaceId],async([e])=>{e&&await mt()},{immediate:!0}),r([()=>d.state,Me],async([e])=>{e&&await ht()},{immediate:!0}),r(()=>qt(v.query.q),e=>{e===L.value||Ee.has(e)||(pt.cancel(),Dt(),L.value=e,Ot(),B.value===`graph`&&e.trim()&&T.value&&!C.value&&Ae===Me.value&&kt(e.trim()))},{flush:`sync`}),r(B,async()=>{pt.cancel(),Dt(),Ot(),await n(),Nt(),Tt()}),r([()=>v.params.itemKind,()=>v.params.itemId],()=>Nt()),t(()=>{pt.cancel(),Dt()});async function mt(){let e=d.activePersonalSpace;if(e){if(v.name===`knowledge-default`){await b.replace(P(`personal`,e.id,`directory`));return}if(H.value===`current`){let t=s.personalProjectsOnly?N(e.id,B.value,U.value):P(V.value,e.id,B.value,{projectId:U.value});await b.replace({path:t,query:v.query});return}v.params.mode!==`directory`&&v.params.mode!==`graph`&&await yt(s.personalProjectsOnly?`graph`:`directory`,!0)}}async function ht(){if(!H.value||H.value===`current`)return;let e=Me.value,t=++De;Dt(),C.value=!0,k.value=null,Ot();try{let r=U.value&&V.value===`personal`?await gt():await _t(U.value);if(t!==De)return;T.value=r,Ae=e,Nt(),B.value===`graph`&&L.value.trim()&&(await n(),kt(L.value.trim()))}catch(e){if(t!==De)return;T.value=null,Ae=null,d.reportError(e)}finally{t===De&&(C.value=!1)}}async function gt(){let[e,...t]=await Promise.all([_t(U.value),...je.value.map(e=>_t(e))]);return me([e,...t])}function _t(e){let t=new URLSearchParams({spaceId:H.value,limit:`360`});if(V.value===`public`){let e=vt();e?.providerUrl&&t.set(`providerUrl`,e.providerUrl)}return e&&t.set(`personalProjectId`,e),A(`/api/graph?${t}`)}function vt(){return d.state?.projects.find(({id:e})=>e===H.value)??null}async function yt(e,t=!1){let n=k.value,r=s.personalProjectsOnly?N(H.value,e,U.value,{itemKind:n?.itemKind,itemId:n?.id}):P(V.value,H.value,e,{projectId:U.value,itemKind:n?.itemKind,itemId:n?.id}),i={...v.query};e===`graph`?delete i.section:s.personalProjectsOnly&&n&&(ge(n)?i.section=`materials`:delete i.section),await b[t?`replace`:`push`]({path:r,query:i})}async function bt(e){if(!s.personalProjectsOnly||e===Ie.value)return;k.value=null;let t={...v.query};e===`materials`?t.section=`materials`:delete t.section,await b.push({path:N(H.value,`directory`,U.value),query:t})}async function xt(e){let t=ot.value.find(({key:t})=>t===e);if(!t)return;let n=s.personalProjectsOnly?N(t.spaceId,B.value,t.projectId):P(t.scope,t.spaceId,B.value,{projectId:t.projectId});await b.push({path:n})}async function St(e,t){let n={...v.query};!t||t===`all`&&e!==`status`||e===`status`&&t===`current`?delete n[e]:n[e]=t,await b.replace({query:n})}function Ct(e){L.value=e,Dt(),Ot(),pt.schedule()}function wt(){pt.cancel(),Tt()}async function Tt(){let e=L.value,t=e.trim();if(await Et(e),!(L.value!==e||B.value===`directory`)){if(!t){Dt(),Ot();return}C.value||!T.value||Ae!==Me.value||await kt(t)}}async function Et(e){if(qt(v.query.q)!==e){Ee.add(e);try{await St(`q`,e)}catch(e){d.reportError(e)}finally{await n(),Ee.delete(e)}}}function Dt(){Oe+=1,ke?.abort(),ke=null}function Ot(){R.value=``,z.value=null,F.value?.clearSelection();let e=k.value;B.value===`graph`&&e&&F.value?.selectItem(e.itemKind,e.id)}async function kt(e){let t=d.activePersonalSpace?.id;if(!t)return;Dt();let n=Oe,r=new AbortController;ke=r,z.value=null,R.value=l(`knowledge.workspace.workspace.search.searching`);let i=new URLSearchParams({personalSpaceId:t,q:e,limit:`30`});U.value&&i.set(`personalProjectId`,U.value);for(let e of je.value)i.append(`contextPersonalProjectId`,e);V.value===`public`&&i.append(`projectId`,H.value);try{let a=await A(`/api/search?${i}`,{signal:r.signal});if(n!==Oe)return;let o=a.facts??[],s=new Set([...(a.entities??[]).map(({name:e})=>e),...o.flatMap(({source_entity:e,target_entity:t})=>[e,t])]),c=F.value?.focusByNames(s,{searchMatch:!0})??0;if(c){R.value=l(`knowledge.workspace.workspace.search.results`,{entities:a.entities?.length??0,relationships:o.length,nodes:c});return}R.value=l(`knowledge.workspace.workspace.search.noResults`);let u=V.value===`personal`&&!U.value;if(z.value={query:e,checking:u,result:null},!u)return;let d=await xl({personalSpaceId:t,projects:it.value,query:e,baseline:a,signal:r.signal});if(n!==Oe)return;z.value={query:e,checking:!1,result:d}}catch(e){if(r.signal.aborted||n!==Oe)return;R.value=l(`knowledge.workspace.workspace.search.failed`),d.reportError(e)}finally{ke===r&&(ke=null)}}async function At(e){k.value=e;let t=s.personalProjectsOnly?N(H.value,B.value,U.value,{itemKind:e.itemKind,itemId:e.id}):P(V.value,H.value,B.value,{projectId:U.value,itemKind:e.itemKind,itemId:e.id}),n={...v.query};B.value===`directory`&&s.personalProjectsOnly&&(ge(e)?n.section=`materials`:delete n.section),await b.replace({path:t,query:n})}function jt(e){At(Fe.value.find(({itemKind:t,id:n})=>t===`entity`&&n===e.id)??ve(e))}function Mt(e){At(Fe.value.find(({itemKind:t,id:n})=>t===`relationship`&&n===e.id)??be(e,new Map(T.value?.nodes.map(e=>[e.id,e.name])??[])))}function Nt(){let e=v.params.itemKind,t=v.params.itemId;if(typeof e!=`string`||typeof t!=`string`){k.value=null;return}let r=Fe.value.find(n=>n.itemKind===e&&n.id===t),i=e===`entity`?T.value?.nodes.find(({id:e})=>e===t):T.value?.edges.find(({id:e})=>e===t);if(k.value=r??(e===`entity`&&i?ve(i):e===`relationship`&&i?be(i,new Map(T.value?.nodes.map(e=>[e.id,e.name])??[])):null),k.value&&B.value===`directory`){let e=Gt(k.value);n(()=>{let t=[...document.querySelectorAll(`[data-item-key]`)].find(t=>t.dataset.itemKey===e);t?.scrollIntoView?.({block:`center`}),t?.focus({preventScroll:!0})})}}function Pt(e){let t=e.currentTarget,n=new Set(je.value);t.checked?n.add(t.value):n.delete(t.value),St(`context`,[...n])}async function Ft(e){await b.push(N(H.value,B.value,e))}async function It(e,t){let n=s.personalProjectsOnly?N(H.value,t,U.value,{itemKind:e.itemKind,itemId:e.id}):P(V.value,H.value,t,{projectId:U.value,itemKind:e.itemKind,itemId:e.id}),r={...v.query};if(t===`directory`&&s.personalProjectsOnly&&ge(e)?r.section=`materials`:delete r.section,t===`directory`&&!ge(e)&&!ye([e],Ue.value).length)for(let e of[`q`,`type`,`quadrant`,`profile`,`status`,`human`])delete r[e];await b.push({path:n,query:r})}async function Lt(e){let t=s.personalProjectsOnly?N(H.value,`directory`,U.value,{itemKind:e.itemKind,itemId:e.id}):P(V.value,H.value,`directory`,{projectId:U.value,itemKind:e.itemKind,itemId:e.id}),n={...v.query};for(let e of[`q`,`type`,`quadrant`,`profile`,`human`,`section`])delete n[e];e.invalidAt?n.status=`historical`:delete n.status,await b.push({path:t,query:n})}function Rt(e){let t=Bt(e);if(!t){d.reportError(Error(l(`knowledge.workspace.workspace.errors.projectUnknown`)));return}Se.value=e.itemKind===`entity`?e.type:`PersonalProject`,he.value=t}function zt(e){return e?.profileAspect?null:U.value}function Bt(e){if(!e||!ge(e))return null;let t=fe(e),n=U.value,r=new Set;if(e.itemKind===`entity`)r.add(e.id);else{let t=e.raw;r.add(typeof t.source==`string`?t.source:t.source.id),r.add(typeof t.target==`string`?t.target:t.target.id)}for(let e of T.value?.nodes??[]){if(!r.has(e.id))continue;let t=e.attributes?.projectId;typeof t==`string`&&t&&r.add(t)}if(!t&&!n)for(let e of T.value?.edges??[]){if(!String(e.id).startsWith(`project-profile-edge:`))continue;let t=typeof e.source==`string`?e.source:e.source.id,n=typeof e.target==`string`?e.target:e.target.id;if(!r.has(t)&&!r.has(n))continue;let i=r.has(t)?n:t,a=(T.value?.nodes.find(({id:e})=>e===i))?.attributes?.projectId;typeof a==`string`&&a&&r.add(a)}let i=t??n??[...r].find(e=>d.state?.personalProjects?.some(({project_id:t})=>t===e));return d.state?.personalProjects?.find(({project_id:e})=>e===i)??null}async function Vt(e){await d.refresh(),await ht(),d.notify(l(`knowledge.workspace.workspace.notices.materialUpdated`,{name:e.profile.name}))}function Ht(e){let t=d.state?.personalProjects?.find(({project_id:t})=>t===e);t&&(pe.value=t)}async function Ut(e,t){let n={created:l(`knowledge.workspace.workspace.notices.projectCreated`,{name:t}),linked:l(`knowledge.workspace.workspace.notices.linked`,{name:t}),already_linked:l(`knowledge.workspace.workspace.notices.alreadyLinked`,{name:t}),duplicate_reused:l(`knowledge.workspace.workspace.notices.duplicateReused`,{name:t}),conflict_pending:l(`knowledge.workspace.workspace.notices.conflictPending`,{name:t}),conflict_resolved:l(`knowledge.workspace.workspace.notices.conflictResolved`)};await d.refresh(),await ht(),d.notify(n[e.status]??l(`knowledge.workspace.workspace.notices.scopeUpdated`))}function Wt(e){if(e.profileAspect)return`${e.preferenceScope===`project`?l(`knowledge.workspace.workspace.source.projectPreference`):l(`knowledge.workspace.workspace.source.personalGlobal`)} · ${e.evidence.length?l(`common.counts.sources`,{count:e.evidence.length}):l(`knowledge.workspace.workspace.source.noSources`)}`;let t=e.assignments.at(0),n=e.evidence.find(({personal_project_id:e})=>e)?.personal_project_id,r=t?.project_id??n,i=d.state?.personalProjects?.find(({project_id:e})=>e===r)?.profile.name;return`${i?l(`knowledge.workspace.workspace.source.primaryProject`,{name:i}):l(`knowledge.workspace.workspace.source.personalGlobal`)} · ${l(`common.counts.sources`,{count:e.evidence.length})}`}function Gt(e){return`${e.itemKind}:${e.id}`}function Kt(e,t,n){return JSON.stringify([e,t,n])}function qt(e){return typeof e==`string`?e:``}function Jt(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`):typeof e==`string`?[e]:[]}return(t,n)=>(_(),c(`section`,Ol,[y(`div`,kl,[y(`div`,{class:`knowledge-mode-switch`,role:`tablist`,"aria-label":o(l)(`knowledge.workspace.workspace.view.modeAria`)},[y(`button`,{type:`button`,role:`tab`,"aria-selected":B.value===`directory`,onClick:n[0]||=e=>yt(`directory`)},w(o(l)(`knowledge.workspace.workspace.view.directory`)),9,jl),y(`button`,{type:`button`,role:`tab`,"aria-selected":B.value===`graph`,onClick:n[1]||=e=>yt(`graph`)},w(o(l)(`knowledge.workspace.workspace.view.graph`)),9,Ml)],8,Al),y(`span`,Nl,w(tt.value),1)]),y(`div`,Pl,[u(ne,{"model-value":st.value,options:ct.value,label:o(l)(`knowledge.workspace.workspace.view.graphSpace`),"control-id":`graph-space`,searchable:``,"onUpdate:modelValue":xt},null,8,[`model-value`,`options`,`label`]),U.value&&at.value.length?(_(),c(`details`,Fl,[y(`summary`,null,[D(w(o(l)(`knowledge.workspace.workspace.view.borrowProjects`))+` `,1),y(`span`,null,w(je.value.length?o(l)(`knowledge.workspace.workspace.view.selectedContexts`,{count:je.value.length}):o(l)(`knowledge.workspace.workspace.view.noneSelected`)),1),n[23]||=y(`i`,{class:`searchable-select-arrow`,"aria-hidden":`true`},null,-1)]),y(`div`,Il,[y(`strong`,null,w(o(l)(`knowledge.workspace.workspace.view.currentContext`)),1),y(`p`,null,w(o(l)(`knowledge.workspace.workspace.view.contextCopy`)),1),y(`div`,Ll,[(_(!0),c(p,null,g(at.value,e=>(_(),c(`label`,{key:e.project_id,class:`personal-context-option`},[y(`input`,{type:`checkbox`,value:e.project_id,checked:je.value.includes(e.project_id),onChange:Pt},null,40,Rl),y(`span`,null,[y(`strong`,null,w(e.profile.name),1),y(`small`,null,w(o(l)(`knowledge.workspace.workspace.view.currentScopeOnly`)),1)])]))),128))])])])):m(``,!0),y(`form`,{class:`search-form`,role:`search`,"aria-label":o(l)(`knowledge.workspace.workspace.search.aria`),onSubmit:f(wt,[`prevent`])},[y(`input`,{type:`search`,placeholder:B.value===`directory`&&Ie.value===`materials`?o(l)(`knowledge.workspace.workspace.search.materialsPlaceholder`):o(l)(`knowledge.workspace.workspace.search.contentPlaceholder`),"aria-label":B.value===`directory`&&Ie.value===`materials`?o(l)(`knowledge.workspace.workspace.search.materialsPlaceholder`):o(l)(`knowledge.workspace.workspace.search.knowledgeAria`),autocomplete:`off`,enterkeyhint:`search`,value:L.value,onInput:n[2]||=e=>Ct(e.currentTarget.value)},null,40,Bl)],40,zl),B.value===`directory`&&Ie.value===`knowledge`?(_(),c(p,{key:1},[u(ne,{"model-value":Ue.value.type,options:Re.value,label:o(l)(`knowledge.workspace.workspace.view.contentType`),"control-id":`knowledge-type-filter`,"onUpdate:modelValue":n[3]||=e=>St(`type`,e)},null,8,[`model-value`,`options`,`label`]),u(ne,{"model-value":Ue.value.quadrant,options:ze.value,label:o(l)(`knowledge.workspace.workspace.view.discoveryQuadrant`),"control-id":`knowledge-quadrant-filter`,"onUpdate:modelValue":n[4]||=e=>St(`quadrant`,e)},null,8,[`model-value`,`options`,`label`]),u(ne,{"model-value":Ue.value.profile,options:Be.value,label:o(l)(`knowledge.workspace.workspace.view.classification`),"control-id":`knowledge-profile-filter`,"onUpdate:modelValue":n[5]||=e=>St(`profile`,e)},null,8,[`model-value`,`options`,`label`]),u(ne,{"model-value":Ue.value.humanChange,options:Ve.value,label:o(l)(`knowledge.workspace.workspace.view.humanChangeStatus`),"control-id":`knowledge-human-change-filter`,"onUpdate:modelValue":n[6]||=e=>St(`human`,e)},null,8,[`model-value`,`options`,`label`])],64)):m(``,!0),y(`div`,Vl,[a.personalProjectsOnly&&ut.value&&o(d).state?.capabilities?.publishProject?(_(),c(`button`,{key:0,class:`toolbar-action`,type:`button`,onClick:n[7]||=e=>pe.value=ut.value},w(o(l)(`knowledge.workspace.workspace.view.publishProject`)),1)):m(``,!0),B.value===`graph`?(_(),c(`div`,{key:1,class:`graph-controls`,role:`group`,"aria-label":o(l)(`knowledge.workspace.workspace.view.graphControls`)},[y(`button`,{class:`toolbar-action`,type:`button`,"aria-label":o(l)(`knowledge.workspace.workspace.view.zoomOut`),onClick:n[8]||=e=>F.value?.zoomOut()},`−`,8,Ul),y(`button`,{class:`toolbar-action`,type:`button`,"aria-label":o(l)(`knowledge.workspace.workspace.view.zoomIn`),onClick:n[9]||=e=>F.value?.zoomIn()},`+`,8,Wl),y(`button`,{class:`toolbar-action`,type:`button`,onClick:n[10]||=e=>F.value?.fit()},w(o(l)(`knowledge.workspace.workspace.view.fit`)),1),y(`button`,{class:`toolbar-action`,type:`button`,onClick:n[11]||=e=>F.value?.reset()},w(o(l)(`knowledge.workspace.workspace.view.reset`)),1)],8,Hl)):m(``,!0),y(`button`,{class:`toolbar-action`,type:`button`,onClick:ht},w(o(l)(`common.actions.refresh`)),1)])]),o(O)?(_(),h(ae,{key:0,label:o(l)(`common.status.loadingKnowledge`)},null,8,[`label`])):(_(),c(`div`,Gl,[B.value===`directory`?(_(),h($s,{key:0,"personal-projects-only":a.personalProjectsOnly,"directory-section":Ie.value,"knowledge-tab-count":nt.value,"material-tab-count":rt.value,"content-status":He.value,"current-item-count":Ke.value,"historical-item-count":qe.value,"all-items":Ne.value,"visible-items":Ge.value,"project-material-items":W.value,"visible-project-material-items":Pe.value,"selected-item":k.value,"list-reset-key":We.value,"source-label":Wt,onChangeSection:bt,onUpdateStatus:n[12]||=e=>St(`status`,e),onSelectItem:At},null,8,[`personal-projects-only`,`directory-section`,`knowledge-tab-count`,`material-tab-count`,`content-status`,`current-item-count`,`historical-item-count`,`all-items`,`visible-items`,`project-material-items`,`visible-project-material-items`,`selected-item`,`list-reset-key`])):(_(),c(`div`,{key:1,class:e([`graph-stage`,{"has-parent-projects":$e.value.length}])},[u(vl,{parents:$e.value,"active-project-name":ut.value?.profile.name,"space-id":H.value},null,8,[`parents`,`active-project-name`,`space-id`]),y(`div`,Kl,[z.value?(_(),c(`aside`,ql,[y(`span`,Jl,w(o(l)(`knowledge.workspace.workspace.discovery.noHitKicker`)),1),y(`strong`,Yl,w(o(l)(`knowledge.workspace.workspace.discovery.noResults`,{query:z.value.query})),1),y(`p`,Xl,w(ft.value),1),z.value.result?.matches.length?(_(),c(`div`,Zl,[(_(!0),c(p,null,g(z.value.result.matches.slice(0,5),e=>(_(),h(o(M),{key:e.project.project_id,class:`graph-search-suggestion`,to:{path:o(N)(H.value,`graph`,e.project.project_id),query:{q:z.value.query}}},{default:i(()=>[y(`span`,null,[y(`strong`,null,w(e.project.profile.name),1),y(`small`,null,w(o(l)(`knowledge.workspace.workspace.discovery.candidateCount`,{count:e.count})),1)]),y(`b`,null,w(o(l)(`knowledge.workspace.workspace.discovery.enterProject`)),1)]),_:2},1032,[`to`]))),128))])):m(``,!0)])):m(``,!0),u(gs,{"relation-types":et.value},null,8,[`relation-types`]),Qe.value?.nodes.length?(_(),h(us,{key:1,ref_key:`graphCanvas`,ref:F,graph:Qe.value,"selected-item":k.value,onSelectNode:jt,onSelectEdge:Mt},null,8,[`graph`,`selected-item`])):(_(),c(`div`,Ql,w(C.value?o(l)(`common.status.loadingKnowledge`):o(l)(`knowledge.workspace.workspace.view.noGraph`)),1))])],2)),u(ce,{item:k.value,graph:T.value,editable:lt.value,"current-project-id":U.value,"can-publish-project":o(d).state?.capabilities?.publishProject,"can-manage-project":!!dt.value,mode:B.value,onConfirm:n[13]||=e=>se.value=e,onEdit:n[14]||=e=>le.value=e,onCreateProject:n[15]||=e=>ue.value=e,onOpenProject:Ft,onPublishProject:Ht,onOpenDirectory:n[16]||=e=>It(e,`directory`),onOpenGraph:n[17]||=e=>It(e,`graph`),onOpenReplacement:Lt,onManageProject:Rt},null,8,[`item`,`graph`,`editable`,`current-project-id`,`can-publish-project`,`can-manage-project`,`mode`])])),B.value===`graph`?(_(),c(`p`,$l,w(o(l)(`knowledge.workspace.workspace.view.graphHint`)),1)):m(``,!0),u(hl,{"editing-item":le.value,"confirming-item":se.value,"project-action-item":ue.value,"publishing-project":pe.value,"managing-project":he.value,"managing-material-type":Se.value,"personal-space-id":o(d).activePersonalSpace?.id??H.value,"editing-project-id":zt(le.value),"confirming-project-id":zt(se.value),"current-project-id":U.value,projects:o(d).state?.personalProjects??[],"replacement-items":Ne.value,onCloseEdit:n[18]||=e=>le.value=null,onCloseConfirm:n[19]||=e=>se.value=null,onCloseProjectAction:n[20]||=e=>ue.value=null,onClosePublish:n[21]||=e=>pe.value=null,onCloseProfile:n[22]||=e=>he.value=null,onRefresh:ht,onProjectSaved:Ut,onProfileSaved:Vt},null,8,[`editing-item`,`confirming-item`,`project-action-item`,`publishing-project`,`managing-project`,`managing-material-type`,`personal-space-id`,`editing-project-id`,`confirming-project-id`,`current-project-id`,`projects`,`replacement-items`])]))}});export{eu as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,L as t,Q as n,_ as r,a as i,b as a,k as o,m as s,p as c,tt as l,x as u,y as d}from"./i18n-
|
|
1
|
+
import{$ as e,L as t,Q as n,_ as r,a as i,b as a,k as o,m as s,p as c,tt as l,x as u,y as d}from"./i18n-CWfd8Dtt.js";import{t as f}from"./console-DMvHxKf9.js";import{t as p}from"./vue-router-DN8x6iY1.js";import{n as m,t as h}from"./paths-CDREouhi.js";var g={class:`view overview-view`},_=[`aria-label`],v={class:`overview-summary-label`},y={class:`overview-summary-name`},b={class:`overview-summary-meta`},x={class:`overview-summary-action`},S={class:`overview-summary-label`},C={class:`overview-summary-value`},w={class:`overview-summary-meta`},T={class:`overview-summary-action`},E={class:`overview-summary-label`},D={class:`overview-summary-value overview-shared-value`},O={class:`overview-summary-meta`},k={class:`overview-summary-action`},A={class:`two-column`},j={class:`section-block`},M={class:`section-title`},N={class:`flow-list`},P={class:`section-block`},F={class:`section-title`},I={class:`provider-list`},L={class:`provider-row`},R={class:`provider-state`},z={class:`provider-row`},B={class:`provider-state`},V=u({__name:`OverviewPage`,setup(u){let V=f(),H=c(()=>V.state),U=c(()=>V.activePersonalSpace),W=c(()=>U.value?.id??H.value?.activePersonalSpaceId??`current`),G=c(()=>h(`personal`,W.value,`directory`)),K=c(()=>m(W.value,`graph`)),q=c(()=>H.value?.providers?.workspaces??[]),J=c(()=>q.value.filter(({status:e})=>e===`ready`).length),Y=c(()=>V.publicRuntimeStatus===`ready`?`/public-projects`:`/connections`),X=c(()=>V.runtimeStatus===`error`?i(`pages.overview.personalSpaceUnavailable`):V.runtimeStatus===`ready`?i(`pages.overview.personalSpaceLocal`):i(`pages.overview.personalSpaceLoading`)),Z=c(()=>V.publicRuntimeStatus===`error`?i(`pages.overview.publicUnavailable`):V.publicRuntimeStatus===`ready`?String(H.value?.projects.length??0):i(`pages.overview.publicDisconnected`)),Q=c(()=>V.publicRuntimeStatus===`error`?i(`pages.overview.publicUnavailableCopy`):V.publicRuntimeStatus===`ready`?(H.value?.projects.length??0)===0?i(`pages.overview.noSharedProjects`):i(`pages.overview.sharedSubscriptions`,{count:H.value?.subscriptions.length??0}):i(`pages.overview.publicDisconnectedCopy`)),$=c(()=>V.publicRuntimeStatus===`error`?i(`pages.overview.checkConnection`):V.publicRuntimeStatus===`ready`?i(`pages.overview.browseSharedProjects`):i(`pages.overview.connectPublic`));return(c,u)=>(o(),r(`section`,g,[s(`nav`,{class:`overview-summary`,"aria-label":n(i)(`pages.overview.metricsAria`)},[a(n(p),{class:`overview-summary-card overview-space-card`,to:G.value},{default:t(()=>[s(`span`,v,l(n(i)(`pages.overview.currentPersonalSpace`)),1),s(`strong`,y,l(U.value?.name??n(i)(`pages.overview.personalSpaceFallback`)),1),s(`span`,b,[s(`i`,{class:e([`overview-status-dot`,n(V).runtimeStatus===`ready`?`ready`:n(V).runtimeStatus]),"aria-hidden":`true`},null,2),d(` `+l(X.value),1)]),s(`span`,x,[d(l(n(i)(`pages.overview.openKnowledge`))+` `,1),u[0]||=s(`span`,{"aria-hidden":`true`},`→`,-1)])]),_:1},8,[`to`]),a(n(p),{class:`overview-summary-card overview-personal-projects-card`,to:K.value},{default:t(()=>[s(`span`,S,l(n(i)(`pages.overview.personalProjects`)),1),s(`strong`,C,l(H.value?.personalProjects?.length??0),1),s(`span`,w,l(n(i)(`pages.overview.personalProjectsCopy`)),1),s(`span`,T,[d(l(n(i)(`pages.overview.viewPersonalProjects`))+` `,1),u[1]||=s(`span`,{"aria-hidden":`true`},`→`,-1)])]),_:1},8,[`to`]),a(n(p),{class:e([`overview-summary-card overview-shared-projects-card`,`is-${n(V).publicRuntimeStatus}`]),to:Y.value},{default:t(()=>[s(`span`,E,l(n(i)(`pages.overview.sharedProjects`)),1),s(`strong`,D,l(Z.value),1),s(`span`,O,l(Q.value),1),s(`span`,k,[d(l($.value)+` `,1),u[2]||=s(`span`,{"aria-hidden":`true`},`→`,-1)])]),_:1},8,[`class`,`to`])],8,_),s(`div`,A,[s(`section`,j,[s(`div`,M,[s(`h3`,null,l(n(i)(`pages.overview.dataFlow`)),1)]),s(`ol`,N,[s(`li`,null,[u[3]||=s(`span`,null,`1`,-1),s(`div`,null,[s(`strong`,null,l(n(i)(`pages.overview.flow.identifyTitle`)),1),s(`p`,null,l(n(i)(`pages.overview.flow.identifyCopy`)),1)])]),s(`li`,null,[u[4]||=s(`span`,null,`2`,-1),s(`div`,null,[s(`strong`,null,l(n(i)(`pages.overview.flow.structureTitle`)),1),s(`p`,null,l(n(i)(`pages.overview.flow.structureCopy`)),1)])]),s(`li`,null,[u[5]||=s(`span`,null,`3`,-1),s(`div`,null,[s(`strong`,null,l(n(i)(`pages.overview.flow.routeTitle`)),1),s(`p`,null,l(n(i)(`pages.overview.flow.routeCopy`)),1)])])])]),s(`section`,P,[s(`div`,F,[s(`h3`,null,l(n(i)(`pages.overview.serviceStatus`)),1)]),s(`div`,I,[s(`div`,L,[s(`i`,{class:e({error:H.value?.providers?.personal?.status!==`ready`})},null,2),s(`div`,null,[s(`strong`,null,l(n(i)(`pages.overview.localKnowledge`)),1),u[6]||=s(`span`,null,`Graphiti / Neo4j`,-1)]),s(`span`,R,l(H.value?.providers?.personal?.status===`ready`?n(i)(`common.status.connected`):n(i)(`common.status.connectionError`)),1)]),s(`div`,z,[s(`i`,{class:e(n(V).publicRuntimeStatus)},null,2),s(`div`,null,[s(`strong`,null,l(n(i)(`pages.overview.publicService`)),1),s(`span`,null,l(n(V).publicRuntimeStatus===`ready`?n(i)(`pages.overview.sharedServicesReady`,{count:J.value||q.value.length}):n(V).publicRuntimeStatus===`error`?n(i)(`pages.overview.publicTemporarilyUnavailable`):n(i)(`pages.overview.publicOfflineLocalUnaffected`)),1)]),s(`span`,B,l(n(V).publicRuntimeStatus===`ready`?n(i)(`common.status.connected`):n(V).publicRuntimeStatus===`error`?n(i)(`common.status.connectionError`):n(i)(`common.status.notConnected`)),1)])])])])]))}});export{V as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.conflict-resolution-dialog.vue-dialog[data-v-dee70ac5]{width:min(1180px,100vw - 48px)}.conflict-resolution-shell[data-v-dee70ac5]{overflow:auto}.conflict-pair-context[data-v-dee70ac5]{flex-wrap:wrap;gap:8px;padding:14px 0;display:flex}.conflict-pair-context span[data-v-dee70ac5]{color:#747d77;border:1px solid #e1e5e2;border-radius:999px;padding:6px 9px;font-size:10px}.conflict-pair-context strong[data-v-dee70ac5]{color:#3c4941;margin-left:4px}.conflict-comparison[data-v-dee70ac5]{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.conflict-side[data-v-dee70ac5]{background:#f9fbfa;border:1px solid #dfe5e1;border-radius:10px;align-content:start;gap:8px;min-width:0;padding:16px;display:grid}.conflict-side-left[data-v-dee70ac5]{background:#f1f8fd;border-color:#b8d8ef}.conflict-side-right[data-v-dee70ac5]{background:#f7f4fd;border-color:#d2c6ef}.conflict-side-heading[data-v-dee70ac5]{color:#69736c;justify-content:space-between;gap:12px;font-size:10px;display:flex}.conflict-side h4[data-v-dee70ac5],.conflict-side p[data-v-dee70ac5]{margin:0}.conflict-side h4[data-v-dee70ac5]{color:#2f3d35;font-size:14px}.conflict-side p[data-v-dee70ac5]{color:#45524a;white-space:pre-wrap;min-height:48px;font-size:12px;line-height:1.6}.conflict-side small[data-v-dee70ac5]{color:#7c857f;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.text-action[data-v-dee70ac5]{color:#52705f;background:0 0;border:0;justify-self:start;padding:0;font-size:10px}.conflict-difference[data-v-dee70ac5]{background:#fbfcfb;border:1px solid #e5e7e5;border-radius:9px;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px;padding:12px;display:grid}.conflict-difference>div[data-v-dee70ac5]{align-content:start;gap:7px;min-width:0;display:grid}.conflict-difference span[data-v-dee70ac5]{color:#7a837d;font-size:9px;font-weight:700}.conflict-difference p[data-v-dee70ac5]{flex-wrap:wrap;gap:5px;margin:0;display:flex}.conflict-difference b[data-v-dee70ac5]{color:#46534b;background:#e9efeb;border-radius:5px;padding:4px 7px;font-size:10px;font-weight:600}.conflict-difference .muted[data-v-dee70ac5]{color:#929993;font-size:10px;display:block}.conflict-resolution-options[data-v-dee70ac5]{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.conflict-resolution-options>button[data-v-dee70ac5]{color:#3d4942;text-align:left;background:#fff;border:1px solid #dfe4e0;border-radius:9px;align-content:start;gap:6px;min-height:86px;padding:12px;display:grid;position:relative}.conflict-resolution-options>button[aria-pressed=true][data-v-dee70ac5]{background:#f1f7f3;border-color:#7ba08a;box-shadow:inset 0 0 0 1px #7ba08a}.conflict-resolution-options strong[data-v-dee70ac5]{font-size:11px}.conflict-resolution-options span[data-v-dee70ac5]{color:#7a837d;font-size:9px;line-height:1.45}.conflict-resolution-options em[data-v-dee70ac5]{color:#376047;background:#dcecdf;border-radius:999px;padding:2px 5px;font-size:8px;font-style:normal;position:absolute;top:8px;right:8px}.conflict-resolution-detail[data-v-dee70ac5],.conflict-impact-preview[data-v-dee70ac5]{background:#fafcfb;border:1px solid #dfe5e1;border-radius:9px;gap:10px;margin-top:12px;padding:13px;display:grid}.conflict-resolution-detail label[data-v-dee70ac5],.conflict-resolution-reason[data-v-dee70ac5]{color:#5f6962;gap:6px;font-size:10px;font-weight:600;display:grid}.conflict-resolution-detail textarea[data-v-dee70ac5],.conflict-resolution-reason textarea[data-v-dee70ac5],.conflict-resolution-detail select[data-v-dee70ac5]{width:100%}.conflict-inline-options[data-v-dee70ac5]{align-items:center;gap:6px;display:flex}.conflict-inline-options span[data-v-dee70ac5]{color:#667169;margin-right:4px;font-size:10px}.conflict-inline-options button[data-v-dee70ac5]{color:#58645c;background:#fff;border:1px solid #d9dfdb;border-radius:6px;padding:5px 8px;font-size:10px}.conflict-inline-options button[aria-pressed=true][data-v-dee70ac5]{color:#315141;background:#eaf2ed;border-color:#789986}.conflict-impact-preview[data-v-dee70ac5]{background:#fffaf0;border-color:#f0d99d}.conflict-impact-preview span[data-v-dee70ac5]{color:#826b37;text-transform:uppercase;font-size:9px;font-weight:700}.conflict-impact-preview p[data-v-dee70ac5]{color:#554d3c;margin:0;font-size:11px;line-height:1.55}.conflict-resolution-reason[data-v-dee70ac5]{margin-top:12px}.conflict-resolution-actions>div[data-v-dee70ac5]{gap:8px;display:flex}@media (width<=900px){.conflict-comparison[data-v-dee70ac5],.conflict-difference[data-v-dee70ac5]{grid-template-columns:1fr}.conflict-resolution-options[data-v-dee70ac5]{grid-template-columns:repeat(2,minmax(0,1fr))}}.writing-taste-milestone[data-v-d56b0112]{background:#f7f9f7;border:1px solid #d8dfda;border-radius:11px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;margin-top:12px;padding:14px 15px;display:grid;box-shadow:0 7px 20px #3142380a}.writing-taste-milestone.status-preview_ready[data-v-d56b0112],.writing-taste-milestone.status-active[data-v-d56b0112]{background:#f4f8f5;border-color:#cbd9d0}.writing-taste-milestone__mark[data-v-d56b0112]{background:#e4ebe6;border-radius:10px;justify-content:center;align-items:end;gap:3px;width:40px;height:40px;padding:8px;display:flex}.writing-taste-milestone__mark span[data-v-d56b0112]{background:#668372;border-radius:3px 3px 1px 1px;width:5px}.writing-taste-milestone__mark span[data-v-d56b0112]:first-child{height:9px}.writing-taste-milestone__mark span[data-v-d56b0112]:nth-child(2){height:16px}.writing-taste-milestone__mark span[data-v-d56b0112]:nth-child(3){height:23px}.writing-taste-milestone__copy[data-v-d56b0112]{gap:5px;min-width:0;display:grid}.writing-taste-milestone__heading[data-v-d56b0112]{align-items:center;gap:8px;display:flex}.writing-taste-milestone h2[data-v-d56b0112],.writing-taste-milestone p[data-v-d56b0112]{margin:0}.writing-taste-milestone h2[data-v-d56b0112]{color:#304138;font-size:14px}.writing-taste-milestone__heading>span[data-v-d56b0112]{color:#5c7064;background:#e2e9e4;border-radius:999px;padding:2px 7px;font-size:9px;font-weight:750}.writing-taste-milestone p[data-v-d56b0112]{color:#707b74;font-size:10px;line-height:1.5}.writing-taste-milestone__progress[data-v-d56b0112]{background:#e0e5e1;border-radius:999px;width:min(300px,100%);height:3px;overflow:hidden}.writing-taste-milestone__progress i[data-v-d56b0112]{border-radius:inherit;background:#6f8e7c;height:100%;transition:width .18s;display:block}.writing-taste-milestone__metrics[data-v-d56b0112]{color:#7c857f;gap:12px;font-size:9px;display:flex}.writing-taste-milestone__action[data-v-d56b0112]{color:#395347;background:#fff;border:1px solid #bdcbc2;border-radius:8px;align-items:center;gap:8px;padding:8px 11px;font-size:10px;font-weight:750;text-decoration:none;display:inline-flex}.writing-taste-milestone__action[data-v-d56b0112]:hover{background:#f9fbf9;border-color:#8fa697}@media (width<=760px){.writing-taste-milestone[data-v-d56b0112]{grid-template-columns:auto minmax(0,1fr)}.writing-taste-milestone__action[data-v-d56b0112]{grid-column:2;justify-self:start}}.preference-conflict-alert[data-v-7fb5a54c]{background:#f7f9f7;border:1px solid #d6ddd8;border-radius:11px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;margin-top:12px;padding:12px 14px;display:grid;box-shadow:0 7px 20px #3142380d}.preference-conflict-alert-icon[data-v-7fb5a54c]{color:#fff;background:#52685b;border-radius:50%;place-items:center;width:30px;height:30px;font-size:16px;font-weight:800;display:grid}.preference-conflict-alert>div[data-v-7fb5a54c]:nth-child(2){gap:2px;display:grid}.preference-conflict-alert span[data-v-7fb5a54c]{color:#65736b;letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:800}.preference-conflict-alert h2[data-v-7fb5a54c],.preference-conflict-alert p[data-v-7fb5a54c]{margin:0}.preference-conflict-alert h2[data-v-7fb5a54c]{color:#344239;font-size:14px}.preference-conflict-alert p[data-v-7fb5a54c]{color:#6f7972;font-size:10px;line-height:1.5}.preference-conflict-workbench[data-v-7fb5a54c]{flex:1;min-height:0;padding:18px 0 4px;overflow:auto}.preference-conflict-workbench>header[data-v-7fb5a54c]{justify-content:space-between;align-items:flex-end;gap:24px;padding:0 2px 14px;display:flex}.preference-conflict-workbench h2[data-v-7fb5a54c],.preference-conflict-workbench p[data-v-7fb5a54c]{margin:0}.preference-conflict-workbench h2[data-v-7fb5a54c]{color:#2e3d35;font-size:17px}.preference-conflict-workbench>header>p[data-v-7fb5a54c]{color:#778079;text-align:right;max-width:520px;font-size:10px;line-height:1.55}.preference-conflict-list[data-v-7fb5a54c]{gap:12px;display:grid}.preference-conflict-card[data-v-7fb5a54c]{background:#fff;border:1px solid #d9dfdb;border-radius:11px;gap:12px;padding:15px;display:grid;box-shadow:0 7px 20px #2d3d340a}.preference-conflict-card-heading[data-v-7fb5a54c],.preference-conflict-card footer[data-v-7fb5a54c]{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.preference-conflict-card-heading>div[data-v-7fb5a54c]{gap:3px;display:grid}.preference-conflict-card-heading>div[data-v-7fb5a54c]:last-child{justify-items:end}.preference-conflict-card-heading span[data-v-7fb5a54c],.preference-conflict-card footer span[data-v-7fb5a54c]{color:#7d8780;text-transform:uppercase;font-size:9px;font-weight:700}.preference-conflict-card-heading h3[data-v-7fb5a54c]{color:#344239;margin:0;font-size:14px}.preference-conflict-card-heading strong[data-v-7fb5a54c]{color:#53685b;font-size:10px}.preference-conflict-pair[data-v-7fb5a54c]{grid-template-columns:minmax(0,1fr) 26px minmax(0,1fr);align-items:stretch;gap:8px;display:grid}.preference-conflict-pair>section[data-v-7fb5a54c]{background:#fff;border:1px solid #e0e5e1;border-radius:8px;align-content:start;gap:6px;min-width:0;padding:12px;display:grid}.preference-conflict-pair>section[data-v-7fb5a54c]:first-child{background:#f5fafe;border-color:#c7ddec}.preference-conflict-pair>section[data-v-7fb5a54c]:last-child{background:#faf8fd;border-color:#d8ceeb}.preference-conflict-pair span[data-v-7fb5a54c],.preference-conflict-pair small[data-v-7fb5a54c]{color:#7d8780;font-size:9px}.preference-conflict-pair strong[data-v-7fb5a54c]{color:#35423a;font-size:11px}.preference-conflict-pair p[data-v-7fb5a54c]{color:#566159;font-size:10px;line-height:1.55}.preference-conflict-pair>i[data-v-7fb5a54c]{color:#9b9486;text-align:center;align-self:center;font-size:14px;font-style:normal}.preference-conflict-card footer[data-v-7fb5a54c]{border-top:1px solid #e5e9e6;padding-top:11px}.preference-conflict-card footer>div[data-v-7fb5a54c]{gap:4px;display:grid}.preference-conflict-card footer p[data-v-7fb5a54c]{color:#5d625d;font-size:10px}.preference-conflict-card footer small[data-v-7fb5a54c]{color:#758079;font-size:9px}.preference-conflict-card footer button[data-v-7fb5a54c]{flex:none}.preference-conflict-card footer .preference-conflict-actions[data-v-7fb5a54c]{justify-content:flex-end;align-items:center;gap:8px;display:flex}.preference-conflict-card footer .preference-conflict-actions .secondary-action[data-v-7fb5a54c]{color:#5e665f;background:#f5f7f5}.personal-profile-row.ai-resolved-conflict[data-v-7fb5a54c]{background:#f6fbf8;border-color:#b8d5c3}.personal-profile-row.ai-resolved-conflict .personal-profile-origin strong[data-v-7fb5a54c]{color:#39724f}.personal-profile-inspector[data-v-7fb5a54c] .inspector-classification.state-pending,.personal-profile-inspector[data-v-7fb5a54c] .inspector-classification.state-needs_review{background:#f5f7f5;border-color:#d8dfda}.personal-profile-inspector[data-v-7fb5a54c] .inspector-classification.state-pending strong,.personal-profile-inspector[data-v-7fb5a54c] .inspector-classification.state-needs_review strong{color:#53645a}@media (width<=860px){.preference-conflict-alert[data-v-7fb5a54c]{grid-template-columns:auto minmax(0,1fr)}.preference-conflict-alert>button[data-v-7fb5a54c]{grid-column:1/-1}.preference-conflict-workbench>header[data-v-7fb5a54c],.preference-conflict-card-heading[data-v-7fb5a54c],.preference-conflict-card footer[data-v-7fb5a54c]{flex-direction:column;align-items:stretch}.preference-conflict-workbench>header>p[data-v-7fb5a54c]{text-align:left}.preference-conflict-card-heading>div[data-v-7fb5a54c]:last-child{justify-items:start}.preference-conflict-pair[data-v-7fb5a54c]{grid-template-columns:1fr}.preference-conflict-card footer .preference-conflict-actions[data-v-7fb5a54c]{flex-wrap:wrap;justify-content:flex-start}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,F as t,L as n,Q as r,R as i,_ as a,a as o,b as s,et as c,f as l,g as u,h as d,j as f,k as p,l as m,m as h,n as g,p as _,q as v,tt as y,u as b,x,y as S}from"./i18n-CWfd8Dtt.js";import{a as ee,i as C,r as w,t as te}from"./console-DMvHxKf9.js";import{t as T}from"./vue-router-DN8x6iY1.js";import{t as E}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as D}from"./SearchableSelect-C5RiB5F8.js";import{a as ne,i as O,n as k,t as A}from"./KnowledgeEditDialog-wotVahvr.js";import{n as re,t as ie}from"./KnowledgeInspector-BzkW0mVs.js";import{C as j,D as ae,E as oe,_ as M,u as N,v as P,x as se}from"./model-CsYAR8O3.js";function ce(e,t=[]){let n=[],r=e.filter(e=>!e.invalidAt);for(let e=0;e<r.length;e+=1)for(let i=e+1;i<r.length;i+=1){let a=r[e],s=r[i];if(!U(a,s)||!W(a,s)||G(a,s))continue;let[c,l]=ue(a,s),u=B(L(c),L(l)),d=H(u)?`complementary`:`review`,f=t.find(e=>e.status===`ai_pending`&&F(e,c,l))??null;n.push({id:q(c,l),preferenceKey:I(c),scopeKey:R(c),scopeLabel:z(c),left:c,right:l,difference:u,relation:d,recommendedAction:d===`complementary`?`merge`:null,reason:o(`preferences.shared.conflictReason`,{key:I(c)}),aiRecord:f})}return n.sort((e,t)=>{let n=g();return e.scopeKey.localeCompare(t.scopeKey,n)||e.preferenceKey.localeCompare(t.preferenceKey,n)})}function le(e){return[e.left_item_id,e.right_item_id]}function F(e,t,n){let r=new Set([`${e.left_item_kind}:${e.left_item_id}`,`${e.right_item_kind}:${e.right_item_id}`]);return r.has(`${t.itemKind}:${t.id}`)&&r.has(`${n.itemKind}:${n.id}`)}function I(e){let t=e.raw.attributes??{};return String(t.preferenceKey??t.preference_key??e.title).trim()}function L(e){return e.body.trim()}function R(e){return e.preferenceScope===`project`&&e.preferenceProjectId?`project:${e.preferenceProjectId}`:`global`}function z(e){return e.preferenceScope===`project`&&e.preferenceProjectId?o(`preferences.shared.projectScope`,{project:e.preferenceProjectId}):o(`preferences.shared.personalGlobal`)}function B(e,t){let n=J(e),r=J(t),i=new Set,a=[],o=[];for(let e of n){let t=r.findIndex((t,n)=>!i.has(n)&&de(e,t));if(t<0){o.push(e);continue}i.add(t),a.push(Y(e,r[t]))}return{shared:a,leftOnly:o,rightOnly:r.filter((e,t)=>!i.has(t)),similarity:a.length/Math.max(n.length,r.length,1)}}function V(e,t){let n=[...J(e)];for(let e of J(t)){let t=n.findIndex(t=>de(t,e));if(t<0){n.push(e);continue}n[t]=Y(n[t],e)}if(!n.length)return``;let r=n.some(e=>e.length>24)?`;`:`、`;return n.join(r)}function H(e){return e.shared.length>0&&(e.leftOnly.length===0||e.rightOnly.length===0)}function U(e,t){return R(e)===R(t)}function W(e,t){return X(I(e))===X(I(t))}function G(e,t){return X(L(e))===X(L(t))}function ue(e,t){let n=K(e),r=K(t);return n===r?e.id.localeCompare(t.id)<=0?[e,t]:[t,e]:n<=r?[e,t]:[t,e]}function K(e){let t=P(e);if(!t)return 0;let n=new Date(t).getTime();return Number.isNaN(n)?0:n}function q(e,t){return[e.itemKind,e.id,t.itemKind,t.id].join(`:`)}function J(e){return e.split(/[\n\r,,、;;。.!!??]+/u).map(e=>e.trim()).filter(Boolean)}function de(e,t){let n=X(e),r=X(t);if(n===r)return!0;let i=n.length<=r.length?n:r,a=i===n?r:n;return i.length>=2&&a.includes(i)}function Y(e,t){return X(e).length>=X(t).length?e:t}function X(e){return String(e??``).trim().toLocaleLowerCase().replace(/[“”‘’"'`]/gu,``).replace(/\s+/gu,` `)}var fe={key:0,open:``,class:`project-dialog conflict-resolution-dialog vue-dialog`},pe={class:`project-dialog-shell conflict-resolution-shell`},Z={class:`project-dialog-header`},me=[`disabled`],he=[`aria-label`],Q=[`aria-label`],ge={class:`conflict-side conflict-side-left`},_e={class:`conflict-side-heading`},ve={class:`conflict-side conflict-side-right`},ye={class:`conflict-side-heading`},$=[`aria-label`],be={key:0},xe={key:1,class:`muted`},Se={key:0},Ce={key:1,class:`muted`},we={key:0},Te={key:1,class:`muted`},Ee=[`aria-label`],De=[`aria-pressed`],Oe={key:0},ke=[`aria-pressed`],Ae=[`aria-pressed`],je=[`disabled`,`aria-pressed`],Me={key:0,class:`conflict-resolution-detail`},Ne=[`aria-label`],Pe=[`aria-pressed`],Fe=[`aria-pressed`],Ie={key:1,class:`conflict-resolution-detail`},Le=[`aria-label`],Re=[`aria-pressed`],ze=[`aria-pressed`],Be={value:``,disabled:``},Ve=[`value`],He={class:`conflict-impact-preview`},Ue={class:`conflict-resolution-reason`},We={key:2,class:`dialog-error`},Ge={class:`project-dialog-actions conflict-resolution-actions`},Ke=[`disabled`],qe=[`disabled`],Je=E(x({__name:`PreferenceConflictDialog`,props:{conflict:{},personalSpaceId:{},projects:{}},emits:[`close`,`resolved`,`edit`],setup(e,{emit:n}){let s=e,c=n,d=te(),g=v(null),x=v(`right`),w=v(`right`),T=v(``),E=v(``),D=v(``),ne=v(``),O=v(!1),k=v(``),A=_(()=>{let e=s.conflict;if(!e)return[];let t=w.value===`left`?e.left:e.right;return s.projects.filter(({project_id:e})=>t.preferenceScope!==`project`||e!==t.preferenceProjectId)}),re=_(()=>A.value.length>0),ie=_(()=>{let e=s.conflict;if(!e||!g.value)return o(`preferences.dialog.impact.choose`);if(g.value===`merge`){let t=x.value===`left`?e.left:e.right,n=x.value===`left`?e.right:e.left;return o(`preferences.dialog.impact.merge`,{target:t.title,historical:n.title})}if(g.value===`keep_left`||g.value===`keep_right`){let t=g.value===`keep_left`?e.left:e.right,n=g.value===`keep_left`?e.right:e.left;return o(`preferences.dialog.impact.keep`,{kept:t.title,historical:n.title})}let t=w.value===`left`?e.left:e.right,n=A.value.find(({project_id:e})=>e===T.value);return n?o(`preferences.dialog.impact.split`,{item:t.title,project:n.profile.name}):o(`preferences.dialog.impact.chooseProject`)});t(()=>s.conflict,e=>{e&&(x.value=`right`,w.value=`right`,E.value=V(L(e.right),L(e.left)),g.value=e.recommendedAction,T.value=``,k.value=``,ae(e.recommendedAction))},{immediate:!0}),t([w,A],()=>{T.value&&A.value.some(({project_id:e})=>e===T.value)||(T.value=A.value[0]?.project_id??``)},{immediate:!0});function j(e){g.value=e,(!D.value.trim()||D.value===ne.value)&&ae(e)}function ae(e){let t=s.conflict,n=t&&e?F(e,t):``;ne.value=n,D.value=n}async function oe(){let e=s.conflict;if(!e||!g.value)return I(o(`preferences.dialog.errors.actionRequired`));if(!D.value.trim())return I(o(`preferences.dialog.errors.reasonRequired`));if(g.value===`merge`&&!E.value.trim())return I(o(`preferences.dialog.errors.mergedValueRequired`));if(g.value===`split_scope`&&!T.value)return I(o(`preferences.dialog.errors.projectRequired`));O.value=!0,k.value=``;try{g.value===`merge`?await M(e):g.value===`split_scope`?await ce(e):await se(e,g.value),e.aiRecord&&await ee(`/api/preference-conflicts/${encodeURIComponent(e.aiRecord.id)}/complete`,{personalSpaceId:s.personalSpaceId,resolution:g.value,reason:D.value.trim()}),d.notify(o(`preferences.dialog.resolved`)),c(`resolved`),c(`close`)}catch(e){k.value=e instanceof Error?e.message:o(`preferences.dialog.errors.failed`),d.reportError(e)}finally{O.value=!1}}async function M(e){let t=x.value===`left`?e.left:e.right,n=x.value===`left`?e.right:e.left,r={personalSpaceId:s.personalSpaceId,personalProjectId:null,action:`update`,reason:D.value.trim()};t.itemKind===`entity`?(r.name=t.title,r.summary=E.value.trim()):r.fact=E.value.trim(),t.classificationExplicit&&t.originQuadrant!==`unclassified`&&(r.originQuadrant=t.originQuadrant,r.confirmationStatus=`confirmed`,r.confirmationBasis={existenceReason:o(`preferences.dialog.audit.mergedFromConflict`,{reason:e.reason}),quadrantReason:t.confirmationBasis?.quadrant_reason||t.reasoningSummary||o(`preferences.dialog.audit.keepQuadrant`),proposedBy:t.confirmationBasis?.proposed_by?le(t.confirmationBasis.proposed_by):{kind:`import`,label:o(`preferences.dialog.audit.historicalRecord`)},confirmedBy:{kind:`user`,label:o(`preferences.dialog.audit.user`)},confirmedAt:new Date().toISOString()}),await C(`/api/knowledge/${t.itemKind}/${encodeURIComponent(t.id)}`,r),await C(`/api/knowledge/${n.itemKind}/${encodeURIComponent(n.id)}`,{personalSpaceId:s.personalSpaceId,personalProjectId:null,action:`invalidate`,reason:D.value.trim(),replacementItemId:t.id,replacementItemKind:t.itemKind})}async function se(e,t){let n=t===`keep_left`?e.left:e.right,r=t===`keep_left`?e.right:e.left;await C(`/api/knowledge/${r.itemKind}/${encodeURIComponent(r.id)}`,{personalSpaceId:s.personalSpaceId,personalProjectId:null,action:`invalidate`,reason:D.value.trim(),replacementItemId:n.id,replacementItemKind:n.itemKind})}async function ce(e){let t=w.value===`left`?e.left:e.right;await ee(`/api/knowledge/${t.itemKind}/${encodeURIComponent(t.id)}/preference-scope`,{personalSpaceId:s.personalSpaceId,scope:`project`,projectId:T.value,reason:D.value.trim()})}function le(e){return{kind:e.kind,label:e.label??null}}function F(e,t){return e===`merge`?o(`preferences.dialog.defaultReason.merge`):e===`keep_left`?o(`preferences.dialog.defaultReason.keepLeft`,{title:t.left.title}):e===`keep_right`?o(`preferences.dialog.defaultReason.keepRight`,{title:t.right.title}):o(`preferences.dialog.defaultReason.split`)}function I(e){k.value=e}return(t,n)=>e.conflict?(p(),a(`dialog`,fe,[h(`div`,pe,[h(`header`,Z,[h(`div`,null,[n[15]||=h(`p`,{class:`eyebrow`},`CONFLICT RESOLUTION`,-1),h(`h3`,null,y(r(o)(`preferences.dialog.title`)),1),h(`p`,null,y(r(o)(`preferences.dialog.intro`,{reason:e.conflict.reason})),1)]),h(`button`,{class:`secondary-action`,type:`button`,disabled:O.value,onClick:n[0]||=e=>c(`close`)},y(r(o)(`common.actions.close`)),9,me)]),h(`section`,{class:`conflict-pair-context`,"aria-label":r(o)(`preferences.dialog.basisAria`)},[h(`span`,null,[S(y(r(o)(`preferences.dialog.preferenceKey`))+` `,1),h(`strong`,null,y(e.conflict.preferenceKey),1)]),h(`span`,null,[S(y(r(o)(`preferences.dialog.effectiveScope`))+` `,1),h(`strong`,null,y(e.conflict.scopeLabel),1)]),h(`span`,null,[S(y(r(o)(`preferences.dialog.suggestion`))+` `,1),h(`strong`,null,y(e.conflict.recommendedAction===`merge`?r(o)(`preferences.dialog.mergeSuggestion`):r(o)(`preferences.dialog.reviewSuggestion`)),1)])],8,he),h(`section`,{class:`conflict-comparison`,"aria-label":r(o)(`preferences.dialog.comparisonAria`)},[h(`article`,ge,[h(`div`,_e,[h(`span`,null,y(r(o)(`preferences.dialog.older`)),1),h(`time`,null,y(r(N)(r(P)(e.conflict.left))),1)]),h(`h4`,null,y(e.conflict.left.title),1),h(`p`,null,y(r(L)(e.conflict.left)),1),h(`small`,null,y(r(o)(`preferences.dialog.sourceCount`,{count:e.conflict.left.evidence.length}))+` · `+y(e.conflict.left.id),1),h(`button`,{class:`text-action`,type:`button`,onClick:n[1]||=t=>c(`edit`,e.conflict.left)},y(r(o)(`preferences.dialog.editA`)),1)]),h(`article`,ve,[h(`div`,ye,[h(`span`,null,y(r(o)(`preferences.dialog.newer`)),1),h(`time`,null,y(r(N)(r(P)(e.conflict.right))),1)]),h(`h4`,null,y(e.conflict.right.title),1),h(`p`,null,y(r(L)(e.conflict.right)),1),h(`small`,null,y(r(o)(`preferences.dialog.sourceCount`,{count:e.conflict.right.evidence.length}))+` · `+y(e.conflict.right.id),1),h(`button`,{class:`text-action`,type:`button`,onClick:n[2]||=t=>c(`edit`,e.conflict.right)},y(r(o)(`preferences.dialog.editB`)),1)])],8,Q),h(`section`,{class:`conflict-difference`,"aria-label":r(o)(`preferences.dialog.differenceAria`)},[h(`div`,null,[h(`span`,null,y(r(o)(`preferences.dialog.shared`)),1),e.conflict.difference.shared.length?(p(),a(`p`,be,[(p(!0),a(l,null,f(e.conflict.difference.shared,e=>(p(),a(`b`,{key:e},y(e),1))),128))])):(p(),a(`p`,xe,y(r(o)(`preferences.dialog.noShared`)),1))]),h(`div`,null,[h(`span`,null,y(r(o)(`preferences.dialog.onlyA`)),1),e.conflict.difference.leftOnly.length?(p(),a(`p`,Se,[(p(!0),a(l,null,f(e.conflict.difference.leftOnly,e=>(p(),a(`b`,{key:e},y(e),1))),128))])):(p(),a(`p`,Ce,y(r(o)(`preferences.dialog.noUnique`)),1))]),h(`div`,null,[h(`span`,null,y(r(o)(`preferences.dialog.onlyB`)),1),e.conflict.difference.rightOnly.length?(p(),a(`p`,we,[(p(!0),a(l,null,f(e.conflict.difference.rightOnly,e=>(p(),a(`b`,{key:e},y(e),1))),128))])):(p(),a(`p`,Te,y(r(o)(`preferences.dialog.noUnique`)),1))])],8,$),h(`section`,{class:`conflict-resolution-options`,"aria-label":r(o)(`preferences.dialog.actionsAria`)},[h(`button`,{type:`button`,"aria-pressed":g.value===`merge`,onClick:n[3]||=e=>j(`merge`)},[h(`strong`,null,y(r(o)(`preferences.dialog.actions.merge`)),1),h(`span`,null,y(r(o)(`preferences.dialog.actions.mergeCopy`)),1),e.conflict.recommendedAction===`merge`?(p(),a(`em`,Oe,y(r(o)(`preferences.dialog.actions.recommended`)),1)):u(``,!0)],8,De),h(`button`,{type:`button`,"aria-pressed":g.value===`keep_left`,onClick:n[4]||=e=>j(`keep_left`)},[h(`strong`,null,y(r(o)(`preferences.dialog.actions.keepA`)),1),h(`span`,null,y(r(o)(`preferences.dialog.actions.keepACopy`)),1)],8,ke),h(`button`,{type:`button`,"aria-pressed":g.value===`keep_right`,onClick:n[5]||=e=>j(`keep_right`)},[h(`strong`,null,y(r(o)(`preferences.dialog.actions.keepB`)),1),h(`span`,null,y(r(o)(`preferences.dialog.actions.keepBCopy`)),1)],8,Ae),h(`button`,{type:`button`,disabled:!re.value,"aria-pressed":g.value===`split_scope`,onClick:n[6]||=e=>j(`split_scope`)},[h(`strong`,null,y(r(o)(`preferences.dialog.actions.split`)),1),h(`span`,null,y(re.value?r(o)(`preferences.dialog.actions.splitCopy`):r(o)(`preferences.dialog.actions.noProjects`)),1)],8,je)],8,Ee),g.value===`merge`?(p(),a(`section`,Me,[h(`div`,{class:`conflict-inline-options`,role:`group`,"aria-label":r(o)(`preferences.dialog.mergeIdentityAria`)},[h(`span`,null,y(r(o)(`preferences.dialog.canonicalIdentity`)),1),h(`button`,{type:`button`,"aria-pressed":x.value===`left`,onClick:n[7]||=e=>x.value=`left`},y(r(o)(`preferences.dialog.identityA`)),9,Pe),h(`button`,{type:`button`,"aria-pressed":x.value===`right`,onClick:n[8]||=e=>x.value=`right`},y(r(o)(`preferences.dialog.identityB`)),9,Fe)],8,Ne),h(`label`,null,[S(y(r(o)(`preferences.dialog.mergedContent`))+` `,1),i(h(`textarea`,{"onUpdate:modelValue":n[9]||=e=>E.value=e,rows:`4`,maxlength:`4096`},null,512),[[b,E.value]])])])):u(``,!0),g.value===`split_scope`?(p(),a(`section`,Ie,[h(`div`,{class:`conflict-inline-options`,role:`group`,"aria-label":r(o)(`preferences.dialog.splitRecordAria`)},[h(`span`,null,y(r(o)(`preferences.dialog.adjustRecord`)),1),h(`button`,{type:`button`,"aria-pressed":w.value===`left`,onClick:n[10]||=e=>w.value=`left`},` A `,8,Re),h(`button`,{type:`button`,"aria-pressed":w.value===`right`,onClick:n[11]||=e=>w.value=`right`},` B `,8,ze)],8,Le),h(`label`,null,[S(y(r(o)(`preferences.dialog.projectOnly`))+` `,1),i(h(`select`,{"onUpdate:modelValue":n[12]||=e=>T.value=e},[h(`option`,Be,y(r(o)(`preferences.dialog.chooseProject`)),1),(p(!0),a(l,null,f(A.value,e=>(p(),a(`option`,{key:e.project_id,value:e.project_id},y(e.profile.name),9,Ve))),128))],512),[[m,T.value]])])])):u(``,!0),h(`section`,He,[h(`span`,null,y(r(o)(`preferences.dialog.impactTitle`)),1),h(`p`,null,y(ie.value),1)]),h(`label`,Ue,[S(y(r(o)(`preferences.dialog.reason`))+` `,1),i(h(`textarea`,{"onUpdate:modelValue":n[13]||=e=>D.value=e,rows:`2`,maxlength:`2000`},null,512),[[b,D.value]])]),k.value?(p(),a(`p`,We,y(k.value),1)):u(``,!0),h(`footer`,Ge,[h(`span`,null,y(r(o)(`preferences.dialog.pendingCopy`)),1),h(`div`,null,[h(`button`,{class:`secondary-action`,type:`button`,disabled:O.value,onClick:n[14]||=e=>c(`close`)},y(r(o)(`preferences.dialog.defer`)),9,Ke),h(`button`,{class:`primary-action`,type:`button`,disabled:O.value||!g.value,onClick:oe},y(O.value?r(o)(`preferences.dialog.processing`):r(o)(`preferences.dialog.confirm`)),9,qe)])])])])):u(``,!0)}}),[[`__scopeId`,`data-v-dee70ac5`]]),Ye=[`aria-label`],Xe={class:`writing-taste-milestone__copy`},Ze={class:`writing-taste-milestone__heading`},Qe={class:`writing-taste-milestone__progress`,"aria-hidden":`true`},$e={class:`writing-taste-milestone__metrics`},et=E(x({__name:`WritingTasteMilestone`,props:{profile:{}},setup(t){let i=t,s=_(()=>i.profile?.ready===!0),l=_(()=>i.profile?.status===`active`?o(`writingTaste.milestone.activeTitle`):i.profile?.status===`preview_ready`?o(`writingTaste.milestone.previewTitle`):o(`writingTaste.milestone.collectingTitle`)),f=_(()=>s.value?o(`writingTaste.milestone.readyCopy`):o(`writingTaste.milestone.collectingCopy`)),m=_(()=>{let e=i.profile?.readiness;if(!e)return 0;let t=[g(e.rule_count,e.thresholds.rule_count),g(e.evidence_count,e.thresholds.evidence_count),g(e.session_count,e.thresholds.session_count),g(e.observation_day_count,e.thresholds.observation_day_count)];return Math.round(t.reduce((e,t)=>e+t,0)/t.length*100)});function g(e,t){return t<=0?1:Math.min(Math.max(e/t,0),1)}return(i,g)=>t.profile?(p(),a(`section`,{key:0,class:e([`writing-taste-milestone`,`status-${t.profile.status}`]),"aria-label":r(o)(`writingTaste.milestone.aria`)},[g[1]||=h(`div`,{class:`writing-taste-milestone__mark`,"aria-hidden":`true`},[h(`span`),h(`span`),h(`span`)],-1),h(`div`,Xe,[h(`div`,Ze,[h(`h2`,null,y(l.value),1),h(`span`,null,y(r(o)(`writingTaste.status.${t.profile.status}`)),1)]),h(`p`,null,y(f.value),1),h(`div`,Qe,[h(`i`,{style:c({width:`${m.value}%`})},null,4)]),h(`div`,$e,[h(`small`,null,y(r(o)(`writingTaste.milestone.rules`,{current:t.profile.readiness.rule_count,target:t.profile.readiness.thresholds.rule_count})),1),h(`small`,null,y(r(o)(`writingTaste.milestone.sessions`,{current:t.profile.readiness.session_count,target:t.profile.readiness.thresholds.session_count})),1)])]),s.value?(p(),d(r(T),{key:0,class:`writing-taste-milestone__action`,to:`/preferences/writing`},{default:n(()=>[S(y(r(o)(`writingTaste.milestone.open`))+` `,1),g[0]||=h(`span`,{"aria-hidden":`true`},`→`,-1)]),_:1})):u(``,!0)],10,Ye)):u(``,!0)}}),[[`__scopeId`,`data-v-d56b0112`]]),tt={class:`view vue-personal-profile`},nt=[`aria-label`],rt=[`aria-label`,`aria-pressed`],it=[`aria-label`,`aria-pressed`],at=[`aria-label`,`aria-pressed`],ot={key:0},st={key:1},ct=[`aria-label`,`aria-pressed`],lt=[`aria-label`],ut={class:`personal-profile-toolbar`},dt={class:`personal-profile-filter-groups`},ft=[`aria-label`],pt=[`aria-pressed`,`onClick`],mt={class:`personal-profile-toolbar-actions`},ht={key:0,class:`muted`},gt={key:1,class:`muted`},_t={key:2,class:`muted`},vt=[`aria-label`],yt={class:`preference-conflict-list`},bt={class:`preference-conflict-card-heading`},xt={class:`preference-conflict-pair`},St={key:0},Ct={class:`preference-conflict-actions`},wt=[`disabled`,`onClick`],Tt=[`onClick`],Et={key:0,class:`empty-state`},Dt={key:3,class:`personal-profile-layout`},Ot={class:`personal-profile-table-head`,"aria-hidden":`true`},kt=[`onClick`],At={class:`personal-profile-copy`},jt={class:`personal-profile-origin`},Mt={class:`empty-state`},Nt=E(x({__name:`PersonalProfilePage`,setup(i){let c=te(),m=v(null),b=v(null),x=v(!1),C=O(_(()=>x.value&&!m.value)),T=v(`all`),E=v(`all`),F=v(`all`),I=v(!1),R=v(null),z=v(null),B=v(null),V=v(null),H=v([]),U=v(``),W=_(()=>se(m.value)),G=_(()=>ce(W.value,H.value)),ue=_(()=>new Set(G.value.flatMap(({left:e,right:t})=>[e.id,t.id]))),K=_(()=>new Set(H.value.filter(({status:e,resolved_by:t})=>e===`resolved`&&t===`agent`).flatMap(le))),q=_(()=>W.value.filter(e=>$(e)&&(F.value===`all`||M(e)===F.value))),J=_(()=>JSON.stringify([T.value,E.value,F.value,I.value])),de=_(()=>R.value?q.value.findIndex(({id:e,itemKind:t})=>e===R.value?.id&&t===R.value?.itemKind):-1),Y=_(()=>G.value.filter(({left:e,right:t})=>$(e)||$(t))),X=_(()=>[[`all`,o(`preferences.profile.filters.all`)],[`taste`,o(`preferences.profile.filters.taste`)],[`personality`,o(`preferences.profile.filters.personality`)],[`judgment_preference`,o(`preferences.profile.filters.judgment`)]]),fe=_(()=>{let e=new Map((c.state?.personalProjects??[]).map(e=>[e.project_id,e.profile.name])),t=[...new Set(W.value.filter(({preferenceScope:e,preferenceProjectId:t})=>e===`project`&&!!t).map(({preferenceProjectId:e})=>e))].sort((t,n)=>(e.get(t)??t).localeCompare(e.get(n)??n,g()));return[{value:`all`,label:o(`preferences.profile.scopes.all`),meta:o(`common.counts.items`,{count:W.value.length})},{value:`global`,label:o(`preferences.profile.scopes.global`),meta:o(`common.counts.items`,{count:W.value.filter(({preferenceScope:e})=>e!==`project`).length})},...t.map(t=>({value:`project:${t}`,label:e.get(t)??t,meta:o(`preferences.profile.scopes.projectMeta`,{count:W.value.filter(({preferenceScope:e,preferenceProjectId:n})=>e===`project`&&n===t).length}),search:t}))]}),pe=_(()=>W.value.filter(e=>M(e)===`confirmed`).length),Z=_(()=>W.value.filter(e=>M(e)===`pending`).length),me=_(()=>W.value.filter(e=>M(e)===`agent_confirmed`).length),he=_(()=>I.value?o(`preferences.profile.summaryGuidance.conflicts`):F.value===`pending`?o(`preferences.profile.summaryGuidance.pending`):F.value===`confirmed`?o(`preferences.profile.summaryGuidance.confirmed`):F.value===`agent_confirmed`?o(`preferences.profile.summaryGuidance.agentConfirmed`):o(`preferences.profile.summaryGuidance.default`));t(()=>c.activePersonalSpace?.id,e=>{e&&Q(e)},{immediate:!0}),t([T,E,F,I],()=>{R.value&&!q.value.some(({id:e})=>e===R.value?.id)&&(R.value=null)}),t(fe,e=>{e.some(({value:e})=>e===E.value)||(E.value=`all`)});async function Q(e=c.activePersonalSpace?.id){if(e){x.value=!0;try{let t=new URLSearchParams({spaceId:e,limit:`500`}),n=new URLSearchParams({personalSpaceId:e,limit:`500`}),r=new URLSearchParams({personalSpaceId:e,limit:`500`}),[i,a,o]=await Promise.all([w(`/api/graph?${t}`),w(`/api/preference-conflicts?${n}`),w(`/api/writing-taste-profile?${r}`).catch(()=>null)]);m.value=i,H.value=Array.isArray(a)?a:[],b.value=ge(o)?o:null,R.value&&=W.value.find(({id:e})=>e===R.value?.id)??null}catch(e){m.value=null,b.value=null,c.reportError(e)}finally{x.value=!1}}}function ge(e){if(!e||typeof e!=`object`)return!1;let t=e;return[`collecting`,`preview_ready`,`active`].includes(t.status??``)&&!!t.readiness&&Array.isArray(t.rules)}function _e(e){let t=ae(e),n=G.value.find(({left:t,right:n})=>t.id===e.id||n.id===e.id);return n?.aiRecord?`${t} · ${o(`preferences.profile.statusSuffix.aiPending`)}`:n?`${t} · ${o(`preferences.profile.statusSuffix.conflict`)}`:K.value.has(e.id)?`${t} · ${o(`preferences.profile.statusSuffix.aiResolved`)}`:t}function ve(e){return`${e.itemKind}:${e.id}`}function ye(e){if(e.preferenceScope!==`project`||!e.preferenceProjectId)return o(`preferences.shared.personalGlobal`);let t=c.state?.personalProjects?.find(({project_id:t})=>t===e.preferenceProjectId);return o(`preferences.shared.projectOnly`,{project:t?.profile.name??e.preferenceProjectId})}function $(e){if(T.value!==`all`&&e.profileAspect!==T.value||E.value===`global`&&e.preferenceScope===`project`)return!1;if(E.value.startsWith(`project:`)){let t=E.value.slice(8);return e.preferenceScope===`project`&&e.preferenceProjectId===t}return!0}function be(e){if(e.scopeKey===`global`)return o(`preferences.shared.personalGlobal`);let t=e.scopeKey.slice(8),n=c.state?.personalProjects?.find(({project_id:e})=>e===t);return o(`preferences.shared.projectOnly`,{project:n?.profile.name??t})}function xe(e){T.value=e.profileAspect??`all`,E.value=e.preferenceScope===`project`&&e.preferenceProjectId?`project:${e.preferenceProjectId}`:`global`,I.value=!1,R.value=e}function Se(e){V.value=null,B.value=e}function Ce(e){let t=!I.value&&F.value===e?`all`:e;I.value=!1,F.value=t,t!==`all`&&(R.value=q.value.at(0)??null)}function we(e=!1){let t=e||!I.value;I.value=t,t&&(F.value=`all`,R.value=null)}async function Te(e){let t=c.activePersonalSpace?.id;if(!(!t||e.aiRecord)){U.value=e.id;try{let n=await ee(`/api/preference-conflicts/defer`,{personalSpaceId:t,conflictId:e.id,preferenceKey:e.preferenceKey,preferenceScope:e.left.preferenceScope??`global`,preferenceProjectId:e.left.preferenceProjectId,leftItemId:e.left.id,leftItemKind:e.left.itemKind,rightItemId:e.right.id,rightItemKind:e.right.itemKind,reason:o(`preferences.profile.deferReason`)});H.value=[n,...H.value.filter(({id:e})=>e!==n.id)],c.notify(o(`preferences.profile.deferNotice`))}catch(e){c.reportError(e)}finally{U.value=``}}}return(t,i)=>(p(),a(`section`,tt,[h(`div`,{class:`personal-profile-summary`,"aria-label":r(o)(`preferences.profile.summaryAria`)},[h(`button`,{type:`button`,class:`profile-summary-action state-confirmed`,"aria-label":r(o)(`preferences.profile.summary.confirmedAria`,{count:pe.value}),"aria-pressed":!I.value&&F.value===`confirmed`,onClick:i[0]||=e=>Ce(`confirmed`)},[h(`strong`,null,y(pe.value),1),S(y(r(o)(`preferences.profile.summary.confirmed`))+` `,1),h(`small`,null,y(r(o)(`preferences.profile.summary.viewRecords`)),1)],8,rt),h(`button`,{type:`button`,class:`profile-summary-action state-agent-confirmed`,"aria-label":r(o)(`preferences.profile.summary.agentConfirmedAria`,{count:me.value}),"aria-pressed":!I.value&&F.value===`agent_confirmed`,onClick:i[1]||=e=>Ce(`agent_confirmed`)},[h(`strong`,null,y(me.value),1),S(y(r(o)(`preferences.profile.summary.agentConfirmed`))+` `,1),h(`small`,null,y(r(o)(`preferences.profile.summary.belowHuman`)),1)],8,it),h(`button`,{type:`button`,class:`profile-summary-action state-pending`,"aria-label":r(o)(`preferences.profile.summary.pendingAria`,{count:Z.value}),"aria-pressed":!I.value&&F.value===`pending`,onClick:i[2]||=e=>Ce(`pending`)},[h(`strong`,null,y(Z.value),1),S(y(r(o)(`preferences.profile.summary.pending`))+` `,1),Z.value?(p(),a(`small`,ot,y(r(o)(`preferences.profile.summary.reviewAndConfirm`)),1)):(p(),a(`small`,st,y(r(o)(`preferences.profile.summary.viewRecords`)),1))],8,at),h(`button`,{type:`button`,class:`profile-summary-action state-conflict`,"aria-label":G.value.length?r(o)(`preferences.profile.summary.conflictAria`,{count:G.value.length}):r(o)(`preferences.profile.summary.noConflictsAria`),"aria-pressed":I.value,onClick:i[3]||=e=>we()},[h(`strong`,null,y(G.value.length),1),S(y(r(o)(`preferences.profile.summary.conflicts`))+` `,1),h(`small`,null,y(G.value.length?r(o)(`preferences.profile.summary.reviewAndHandle`):r(o)(`preferences.profile.summary.viewRecords`)),1)],8,ct),h(`p`,null,y(he.value),1)],8,nt),s(et,{profile:b.value},null,8,[`profile`]),G.value.length&&!I.value&&F.value===`all`?(p(),a(`section`,{key:0,class:`preference-conflict-alert`,"aria-label":r(o)(`preferences.profile.alert.aria`)},[i[15]||=h(`div`,{class:`preference-conflict-alert-icon`,"aria-hidden":`true`},`!`,-1),h(`div`,null,[h(`span`,null,y(r(o)(`preferences.profile.alert.kicker`)),1),h(`h2`,null,y(r(o)(`preferences.profile.alert.title`,{count:G.value.length})),1),h(`p`,null,y(r(o)(`preferences.profile.alert.copy`)),1)]),h(`button`,{class:`primary-action`,type:`button`,onClick:i[4]||=e=>we(!0)},y(r(o)(`preferences.profile.alert.action`)),1)],8,lt)):u(``,!0),h(`div`,ut,[h(`div`,dt,[h(`div`,{class:`personal-profile-filters`,role:`group`,"aria-label":r(o)(`preferences.profile.filters.aspectAria`)},[(p(!0),a(l,null,f(X.value,([e,t])=>(p(),a(`button`,{key:e,type:`button`,"aria-pressed":T.value===e,onClick:t=>T.value=e},y(t),9,pt))),128))],8,ft),s(D,{modelValue:E.value,"onUpdate:modelValue":i[5]||=e=>E.value=e,class:`personal-profile-scope-filter`,"control-id":`personal-profile-scope`,label:r(o)(`preferences.profile.filters.scopeLabel`),options:fe.value,"search-placeholder":r(o)(`preferences.profile.filters.scopeSearch`)},null,8,[`modelValue`,`label`,`options`,`search-placeholder`])]),h(`div`,mt,[I.value?(p(),a(`span`,ht,y(r(o)(`preferences.profile.filters.conflictsCount`,{visible:Y.value.length,total:G.value.length})),1)):F.value===`all`?(p(),a(`span`,_t,y(q.value.length===W.value.length?r(o)(`preferences.profile.filters.personalUnderstanding`,{count:W.value.length}):r(o)(`preferences.profile.filters.visibleCount`,{visible:q.value.length,total:W.value.length})),1)):(p(),a(`span`,gt,y(r(o)(`preferences.profile.filters.reviewCount`,{count:q.value.length,status:F.value===`pending`?r(o)(`preferences.profile.summary.pending`):F.value===`agent_confirmed`?r(o)(`preferences.profile.summary.agentConfirmed`):r(o)(`preferences.profile.summary.confirmed`)})),1)),h(`button`,{class:`toolbar-action`,type:`button`,onClick:i[6]||=e=>Q()},y(r(o)(`common.actions.refresh`)),1)])]),r(C)?(p(),d(ne,{key:1,label:r(o)(`preferences.profile.directory.loading`)},null,8,[`label`])):I.value?(p(),a(`section`,{key:2,class:`preference-conflict-workbench`,"aria-label":r(o)(`preferences.profile.workbench.aria`)},[h(`header`,null,[h(`div`,null,[i[16]||=h(`p`,{class:`eyebrow`},`CONFLICT WORKBENCH`,-1),h(`h2`,null,y(r(o)(`preferences.profile.workbench.title`)),1)]),h(`p`,null,y(r(o)(`preferences.profile.workbench.copy`)),1)]),h(`div`,yt,[(p(!0),a(l,null,f(Y.value,(e,t)=>(p(),a(`article`,{key:e.id,class:`preference-conflict-card`},[h(`div`,bt,[h(`div`,null,[h(`span`,null,y(r(o)(`preferences.profile.workbench.group`,{index:t+1})),1),h(`h3`,null,y(e.preferenceKey),1)]),h(`div`,null,[h(`span`,null,y(be(e)),1),h(`strong`,null,y(e.aiRecord?r(o)(`preferences.profile.workbench.aiPending`):e.recommendedAction===`merge`?r(o)(`preferences.profile.workbench.mergeSuggested`):r(o)(`preferences.profile.workbench.humanReview`)),1)])]),h(`div`,xt,[h(`section`,null,[h(`span`,null,y(r(o)(`preferences.profile.workbench.older`)),1),h(`strong`,null,y(e.left.title),1),h(`p`,null,y(r(L)(e.left)),1),h(`small`,null,y(r(N)(r(P)(e.left))),1)]),i[17]||=h(`i`,{"aria-hidden":`true`},`↔`,-1),h(`section`,null,[h(`span`,null,y(r(o)(`preferences.profile.workbench.newer`)),1),h(`strong`,null,y(e.right.title),1),h(`p`,null,y(r(L)(e.right)),1),h(`small`,null,y(r(N)(r(P)(e.right))),1)])]),h(`footer`,null,[h(`div`,null,[h(`span`,null,y(r(o)(`preferences.profile.workbench.reason`)),1),h(`p`,null,y(e.reason),1),e.difference.rightOnly.length?(p(),a(`small`,St,y(r(o)(`preferences.profile.workbench.additions`,{values:e.difference.rightOnly.join(`、`)})),1)):u(``,!0)]),h(`div`,Ct,[h(`button`,{class:`secondary-action`,type:`button`,disabled:!!e.aiRecord||U.value===e.id,onClick:t=>Te(e)},y(e.aiRecord?r(o)(`preferences.profile.workbench.deferred`):U.value===e.id?r(o)(`preferences.profile.workbench.deferring`):r(o)(`preferences.profile.workbench.defer`)),9,wt),h(`button`,{class:`primary-action`,type:`button`,onClick:t=>V.value=e},y(r(o)(`preferences.profile.workbench.handleNow`)),9,Tt)])])]))),128))]),x.value||!Y.value.length?(p(),a(`div`,Et,y(x.value?r(o)(`preferences.profile.workbench.loading`):G.value.length?r(o)(`preferences.profile.workbench.noFiltered`):r(o)(`preferences.profile.workbench.empty`)),1)):u(``,!0)],8,vt)):(p(),a(`div`,Dt,[s(re,{class:`personal-profile-directory`,items:q.value,"row-height":76,"active-index":de.value,"reset-key":J.value,"item-key":ve,label:r(o)(`preferences.profile.directory.aria`)},{header:n(()=>[h(`div`,Ot,[h(`span`,null,y(r(o)(`preferences.profile.directory.aspect`)),1),h(`span`,null,y(r(o)(`preferences.profile.directory.content`)),1),h(`span`,null,y(r(o)(`preferences.profile.directory.statusScopeSource`)),1),h(`span`,null,y(r(o)(`preferences.profile.directory.updated`)),1)])]),default:n(({item:t})=>[h(`button`,{class:e([`personal-profile-row`,{selected:R.value?.id===t.id,"pending-review":r(M)(t)===`pending`,"ai-resolved-conflict":K.value.has(t.id)}]),type:`button`,onClick:e=>R.value=t},[h(`span`,{class:e([`profile-aspect-mark`,t.profileAspect])},y(r(j)(t.profileAspect)),3),h(`span`,At,[h(`strong`,null,y(t.title),1),h(`small`,null,y(t.body),1)]),h(`span`,jt,[h(`strong`,{class:e({"has-conflict":ue.value.has(t.id)})},y(_e(t)),3),h(`small`,null,y(r(oe)(t.originQuadrant))+` · `+y(ye(t))+` · `+y(r(o)(`preferences.profile.directory.sourceCount`,{count:t.evidence.length})),1)]),h(`time`,null,y(r(N)(r(P)(t))),1)],10,kt)]),empty:n(()=>[h(`div`,Mt,y(W.value.length?r(o)(`preferences.profile.directory.noFiltered`):r(o)(`preferences.profile.directory.empty`)),1)]),_:1},8,[`items`,`active-index`,`reset-key`,`label`]),s(ie,{class:`personal-profile-inspector`,item:R.value,graph:m.value,editable:``,onConfirm:i[7]||=e=>z.value=e,onEdit:i[8]||=e=>B.value=e,onOpenReplacement:xe},null,8,[`item`,`graph`])])),s(A,{item:B.value,"personal-space-id":r(c).activePersonalSpace?.id??``,"personal-project-id":null,projects:r(c).state?.personalProjects??[],"replacement-items":W.value,onClose:i[9]||=e=>B.value=null,onSaved:i[10]||=e=>Q()},null,8,[`item`,`personal-space-id`,`projects`,`replacement-items`]),s(k,{item:z.value,"personal-space-id":r(c).activePersonalSpace?.id??``,"personal-project-id":null,onClose:i[11]||=e=>z.value=null,onSaved:i[12]||=e=>Q()},null,8,[`item`,`personal-space-id`]),s(Je,{conflict:V.value,"personal-space-id":r(c).activePersonalSpace?.id??``,projects:r(c).state?.personalProjects??[],onClose:i[13]||=e=>V.value=null,onResolved:i[14]||=e=>Q(),onEdit:Se},null,8,[`conflict`,`personal-space-id`,`projects`])]))}}),[[`__scopeId`,`data-v-7fb5a54c`]]);export{Nt as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as e,k as t,x as n}from"./i18n-CWfd8Dtt.js";import{t as r}from"./KnowledgeWorkspace-1pHJ0MNZ.js";var i=n({__name:`PersonalProjectsPage`,setup(n){return(n,i)=>(t(),e(r,{"personal-projects-only":``}))}});export{i as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,Q as t,R as n,_ as r,a as i,b as a,d as ee,f as o,g as s,j as c,k as l,m as u,n as te,p as d,q as f,tt as p,u as ne,x as re,y as m}from"./i18n-CWfd8Dtt.js";import{a as h,n as g,r as _,t as ie}from"./console-DMvHxKf9.js";import{h as ae}from"./useApi-CROJJdhE-BLQiPVw0.js";import{t as oe}from"./paths-CDREouhi.js";import{t as v}from"./SearchableSelect-C5RiB5F8.js";import{r as y,t as b}from"./identity-C9mLdR8L.js";var se={class:`view`},ce={class:`space-heading public-space-heading`},le=[`aria-label`],ue={class:`project-grid`},de={class:`project-card-heading`},fe={class:`project-card-heading-actions`},pe=[`onClick`],me={class:`completion-badge`},he={class:`project-purpose`},ge={class:`evidence-row`},_e={key:0,class:`muted`},ve={class:`project-access`},ye={class:`muted`},be={key:0,class:`project-release-meta`},xe={class:`project-card-footer`},Se=[`onClick`],x=[`onClick`],S={key:0,class:`empty-state project-empty`},C={class:`project-section`},w={class:`section-toolbar compact-toolbar relation-section-toolbar`},T=[`disabled`],E={class:`compact-relation-preview`,"aria-live":`polite`},D={key:0},O={key:1},k={class:`primary-action`,type:`submit`},A=[`open`],j={key:0,class:`project-dialog-shell`},Ce={class:`project-dialog-header`},we={class:`project-latest-release`},Te={key:0},Ee={key:1,class:`muted`},De={class:`project-detail-columns`},Oe={key:0,class:`muted`},ke={key:1,class:`muted`},Ae={key:0,class:`muted`},je={class:`project-dialog-actions`},Me=[`open`],Ne={key:0,class:`project-dialog-shell`},Pe={class:`project-dialog-header`},Fe=[`disabled`],Ie={class:`project-delete-confirmation`},Le=[`disabled`],Re={key:0,class:`publish-dialog-error`,role:`alert`},ze={class:`project-dialog-actions`},Be=[`disabled`],M=re({__name:`PublicProjectsPage`,setup(re){let M=ie(),Ve=ae(),N=f(null),P=f([]),F=f([]),I=f(!1),L=f(!1),R=f(``),z=f(``),B=f(`RELATED_TO`),V=f(null),H=f(``),U=f(!1),W=f(``),G=d(()=>M.state?.projects??[]),K=d(()=>new Set((M.state?.subscriptions??[]).map(({provider_url:e,project_id:t})=>`${e}::${t}`))),q=d(()=>G.value.filter(({role:e,isOwner:t})=>e===`maintainer`||t)),He=d(()=>q.value.map(e=>({value:e.id,label:e.name,meta:`#${b(e.id,26)}`,search:y(e.id)}))),Ue=d(()=>{let e=G.value.find(({id:e})=>e===R.value);return G.value.filter(({id:t,providerUrl:n})=>t!==e?.id&&n===e?.providerUrl)}),We=d(()=>Ue.value.map(e=>({value:e.id,label:e.name,meta:`#${b(e.id,26)}`,search:y(e.id)}))),Ge=d(()=>G.value.find(({id:e})=>e===R.value)??null),Ke=d(()=>G.value.find(({id:e})=>e===z.value)??null),J=d(()=>X.value.find(({value:e})=>e===B.value)?.label??i(`pages.publicProjects.relationLabels.relatedTo`)),Y=d(()=>!!(V.value&&H.value===V.value.name)),X=d(()=>[{value:`PART_OF`,label:i(`pages.publicProjects.relationLabels.partOf`)},{value:`USES_KNOWLEDGE_FROM`,label:i(`pages.publicProjects.relationLabels.usesKnowledgeFrom`)},{value:`DEPENDS_ON`,label:i(`pages.publicProjects.relationLabels.dependsOn`)},{value:`PROVIDES_TO`,label:i(`pages.publicProjects.relationLabels.providesTo`)},{value:`SHARES_CAPABILITY_WITH`,label:i(`pages.publicProjects.relationLabels.sharesCapabilityWith`)},{value:`SUCCESSOR_OF`,label:i(`pages.publicProjects.relationLabels.successorOf`)},{value:`RELATED_TO`,label:i(`pages.publicProjects.relationLabels.relatedTo`)}]);function Z(e){return`${e.providerUrl}::${e.id}`}function Q(e){return e.profile?.purpose||e.profile?.scope||e.profile?.technical_summary||e.description||i(`pages.publicProjects.fallbackDescription`)}async function qe(e){try{if(K.value.has(Z(e))){let t=new URLSearchParams({personalSpaceId:M.activePersonalSpace?.id??``,providerUrl:e.providerUrl});await g(`/api/subscriptions/${encodeURIComponent(e.id)}?${t}`),M.notify(i(`pages.publicProjects.unsubscribed`,{name:e.name}))}else await h(`/api/subscriptions`,{personalSpaceId:M.activePersonalSpace?.id,projectId:e.id,providerUrl:e.providerUrl,projectName:e.name}),M.notify(i(`pages.publicProjects.subscribed`,{name:e.name}));await M.refresh()}catch(e){M.reportError(e)}}async function Je(e){N.value=e,P.value=[],F.value=[],I.value=!0;try{let t=new URLSearchParams({providerUrl:e.providerUrl}),[n,r]=await Promise.all([_(`/api/projects/${encodeURIComponent(e.id)}/releases?${t}`),_(`/api/project-relations?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl})}`)]);P.value=n.releases??[],F.value=r.relations??[]}catch(e){M.reportError(e)}finally{I.value=!1}}async function Ye(e){N.value=null,await Ve.push(oe(`public`,e.id,`graph`))}function Xe(e){V.value=e,H.value=``,W.value=``}function Ze(){U.value||(V.value=null,H.value=``,W.value=``)}async function Qe(){let e=V.value;if(!e||!Y.value){W.value=i(`pages.publicProjects.deleteNameRequired`);return}U.value=!0,W.value=``;try{let t=new URLSearchParams({providerUrl:e.providerUrl});await g(`/api/projects/${encodeURIComponent(e.id)}?${t}`),N.value=null,V.value=null,M.notify(i(`pages.publicProjects.deleted`,{name:e.name})),await M.refresh()}catch(e){W.value=e instanceof Error?e.message:i(`pages.publicProjects.deleteFailed`),M.reportError(e)}finally{U.value=!1}}async function $e(){let e=G.value.find(({id:e})=>e===R.value),t=G.value.find(({id:e})=>e===z.value);if(!e||!t){M.reportError(Error(i(`pages.publicProjects.chooseRelationProjects`)));return}try{await h(`/api/project-relations`,{sourceProjectId:e.id,targetProjectId:t.id,providerUrl:e.providerUrl,relationType:B.value,note:null}),L.value=!1,R.value=``,z.value=``,M.notify(B.value===`PART_OF`?i(`pages.publicProjects.parentRelationSubmitted`):i(`pages.publicProjects.relationCreated`))}catch(e){M.reportError(e)}}function $(e){return e?new Date(e).toLocaleString(te()):i(`pages.publicProjects.timeNotRecorded`)}return(te,d)=>(l(),r(`section`,se,[u(`div`,ce,[d[8]||=u(`span`,{class:`space-heading-icon`,"aria-hidden":`true`},[u(`span`,{class:`nav-icon nav-icon-public-project`})],-1),u(`div`,null,[u(`p`,null,p(t(i)(`pages.publicProjects.intro`)),1)]),u(`div`,{class:`public-space-stats`,"aria-label":t(i)(`pages.publicProjects.overviewAria`)},[u(`span`,null,[u(`strong`,null,p(G.value.length),1),m(p(t(i)(`pages.publicProjects.discoverable`)),1)]),u(`span`,null,[u(`strong`,null,p(t(M).state?.subscriptions.length??0),1),m(p(t(i)(`pages.publicProjects.subscribedCount`)),1)])],8,le)]),u(`div`,ue,[(l(!0),r(o,null,c(G.value,n=>(l(),r(`article`,{key:Z(n),class:`project-card`},[u(`div`,de,[u(`div`,null,[d[9]||=u(`p`,{class:`eyebrow`},`PUBLIC PROJECT`,-1),u(`h4`,null,p(n.name),1)]),u(`div`,fe,[n.can_manage?(l(),r(`button`,{key:0,class:`management-action`,type:`button`,onClick:e=>Xe(n)},p(t(i)(`pages.publicProjects.manage`)),9,pe)):s(``,!0),u(`div`,me,[u(`strong`,null,p(n.profile?.assessment?.score??`—`),1),u(`span`,null,p(n.profile?.assessment?t(i)(`pages.publicProjects.coverage`):t(i)(`pages.publicProjects.noSummary`)),1)])])]),u(`p`,he,p(Q(n)),1),u(`div`,ge,[(l(!0),r(o,null,c(n.profile?.sources??[],(e,n)=>(l(),r(`span`,{key:n,class:`status-chip`},p(e.kind??t(i)(`pages.publicProjects.material`)),1))),128)),n.profile?.sources?.length?s(``,!0):(l(),r(`span`,_e,p(t(i)(`pages.publicProjects.noSources`)),1))]),u(`div`,ve,[u(`span`,{class:e([`status-chip`,{owner:n.isOwner}])},p(n.isOwner?`Owner`:n.role??`Reader`),3),u(`span`,ye,p(n.isOwner?t(i)(`pages.publicProjects.publishedByYou`):t(i)(`pages.publicProjects.publiclyDiscoverable`)),1),n.current_release?(l(),r(`span`,be,[u(`strong`,null,p(n.current_release.version),1),u(`span`,null,p($(n.current_release.published_at)),1)])):s(``,!0)]),u(`footer`,xe,[u(`button`,{class:`secondary-action`,type:`button`,onClick:e=>qe(n)},p(K.value.has(Z(n))?t(i)(`pages.publicProjects.unsubscribe`):t(i)(`pages.publicProjects.subscribe`)),9,Se),u(`button`,{class:`primary-action`,type:`button`,onClick:e=>Je(n)},p(t(i)(`common.actions.viewDetails`)),9,x)])]))),128)),G.value.length?s(``,!0):(l(),r(`div`,S,p(t(i)(`pages.publicProjects.noProjects`)),1))]),u(`section`,C,[u(`div`,w,[u(`div`,null,[d[10]||=u(`p`,{class:`eyebrow`},`PROJECT RELATIONS`,-1),u(`h3`,null,p(t(i)(`pages.publicProjects.relationsTitle`)),1),u(`p`,null,p(t(i)(`pages.publicProjects.relationsCopy`)),1)]),u(`button`,{class:`primary-action`,type:`button`,disabled:!q.value.length,onClick:d[0]||=e=>L.value=!L.value},p(t(i)(`pages.publicProjects.addRelation`)),9,T)]),L.value?(l(),r(`form`,{key:0,class:`relation-composer relation-composer-form compact-relation-form`,onSubmit:ee($e,[`prevent`])},[u(`label`,null,[m(p(t(i)(`pages.publicProjects.sourceProject`))+` `,1),a(v,{modelValue:R.value,"onUpdate:modelValue":d[1]||=e=>R.value=e,options:He.value,label:t(i)(`pages.publicProjects.sourceProjectLabel`),placeholder:t(i)(`pages.publicProjects.chooseProject`),searchable:``,required:``,onChange:d[2]||=e=>z.value=``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),u(`label`,null,[m(p(t(i)(`pages.publicProjects.relation`))+` `,1),a(v,{modelValue:B.value,"onUpdate:modelValue":d[3]||=e=>B.value=e,options:X.value,label:t(i)(`pages.publicProjects.relationTypeLabel`)},null,8,[`modelValue`,`options`,`label`])]),u(`label`,null,[m(p(t(i)(`pages.publicProjects.targetProject`))+` `,1),a(v,{modelValue:z.value,"onUpdate:modelValue":d[4]||=e=>z.value=e,options:We.value,label:t(i)(`pages.publicProjects.targetProjectLabel`),placeholder:t(i)(`pages.publicProjects.chooseProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),u(`div`,E,[u(`span`,null,p(t(i)(`pages.publicProjects.preview`)),1),u(`strong`,null,p(Ge.value?.name||t(i)(`pages.publicProjects.sourceProject`))+` `+p(J.value)+` `+p(Ke.value?.name||t(i)(`pages.publicProjects.targetProject`)),1),B.value===`PART_OF`?(l(),r(`p`,D,p(t(i)(`pages.publicProjects.parentConfirmation`)),1)):(l(),r(`p`,O,p(t(i)(`pages.publicProjects.relationBoundary`)),1))]),u(`button`,k,p(t(i)(`pages.publicProjects.addRelation`)),1)],32)):s(``,!0)]),u(`dialog`,{open:!!N.value,class:`project-dialog vue-dialog`},[N.value?(l(),r(`div`,j,[u(`header`,Ce,[u(`div`,null,[d[11]||=u(`p`,{class:`eyebrow`},`PUBLIC PROJECT`,-1),u(`h3`,null,p(N.value.name),1),u(`p`,null,p(Q(N.value)),1)]),u(`button`,{class:`secondary-action`,type:`button`,onClick:d[5]||=e=>N.value=null},p(t(i)(`common.actions.close`)),1)]),u(`section`,we,[d[12]||=u(`p`,{class:`eyebrow`},`LATEST RELEASE`,-1),u(`h4`,null,p(t(i)(`pages.publicProjects.latestRelease`)),1),N.value.current_release?(l(),r(`p`,Te,[u(`strong`,null,p(N.value.current_release.version),1),m(` · `+p($(N.value.current_release.published_at)),1)])):(l(),r(`p`,Ee,p(t(i)(`pages.publicProjects.noRelease`)),1))]),u(`div`,De,[u(`section`,null,[u(`h4`,null,p(t(i)(`pages.publicProjects.releaseHistory`)),1),I.value?(l(),r(`p`,Oe,p(t(i)(`pages.publicProjects.loading`)),1)):s(``,!0),(l(!0),r(o,null,c(P.value,e=>(l(),r(`article`,{key:e.version,class:`project-release-item`},[u(`strong`,null,p(e.version),1),u(`p`,null,p(e.update_summary),1),u(`small`,null,p($(e.published_at)),1)]))),128)),!I.value&&!P.value.length?(l(),r(`p`,ke,p(t(i)(`pages.publicProjects.noReleaseHistory`)),1)):s(``,!0)]),u(`section`,null,[u(`h4`,null,p(t(i)(`pages.publicProjects.relationsTitle`)),1),(l(!0),r(o,null,c(F.value,e=>(l(),r(`article`,{key:e.id,class:`project-detail-relation`},[u(`strong`,null,p(e.relation_type),1),u(`small`,null,p(e.status??`active`),1)]))),128)),!I.value&&!F.value.length?(l(),r(`p`,Ae,p(t(i)(`pages.publicProjects.noRelations`)),1)):s(``,!0)])]),u(`footer`,je,[u(`span`,null,p(t(i)(`pages.publicProjects.contentManagementSeparated`)),1),u(`button`,{class:`primary-action`,type:`button`,onClick:d[6]||=e=>Ye(N.value)},p(t(i)(`pages.publicProjects.viewGraph`)),1)])])):s(``,!0)],8,A),u(`dialog`,{open:!!V.value,class:`project-dialog vue-dialog`},[V.value?(l(),r(`div`,Ne,[u(`header`,Pe,[u(`div`,null,[d[13]||=u(`p`,{class:`eyebrow`},`DESTRUCTIVE ACTION`,-1),u(`h3`,null,p(t(i)(`pages.publicProjects.deleteTitle`)),1),u(`p`,null,p(t(i)(`pages.publicProjects.deleteCopy`)),1)]),u(`button`,{class:`secondary-action`,type:`button`,disabled:U.value,onClick:Ze},p(t(i)(`common.actions.close`)),9,Fe)]),u(`label`,Ie,[m(p(t(i)(`pages.publicProjects.enterFullName`))+` `,1),u(`strong`,null,p(V.value.name),1),n(u(`input`,{"onUpdate:modelValue":d[7]||=e=>H.value=e,autocomplete:`off`,disabled:U.value},null,8,Le),[[ne,H.value]])]),W.value?(l(),r(`p`,Re,p(W.value),1)):s(``,!0),u(`footer`,ze,[u(`span`,null,p(t(i)(`pages.publicProjects.deleteWarning`)),1),u(`button`,{class:`reject`,type:`button`,disabled:!Y.value||U.value,onClick:Qe},p(U.value?t(i)(`pages.publicProjects.deleting`):t(i)(`pages.publicProjects.deletePermanently`)),9,Be)])])):s(``,!0)],8,Me)]))}});export{M as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{F as e,Q as t,_ as n,a as r,b as i,f as a,g as o,j as s,k as c,m as l,p as u,q as d,tt as f,x as p}from"./i18n-
|
|
1
|
+
import{F as e,Q as t,_ as n,a as r,b as i,f as a,g as o,j as s,k as c,m as l,p as u,q as d,tt as f,x as p}from"./i18n-CWfd8Dtt.js";import{a as m,r as h,t as g}from"./console-DMvHxKf9.js";import{t as _}from"./SearchableSelect-C5RiB5F8.js";import{r as v,t as y}from"./identity-C9mLdR8L.js";import{u as b}from"./model-CsYAR8O3.js";var x={class:`view`},S={class:`section-title`},C={class:`review-list`},w={class:`review-stage`},T={class:`review-meta`},E={class:`review-actions stacked-actions`},D=[`onClick`],O=[`onClick`],k=[`onClick`],A={key:0,class:`empty-state`},j={key:0,class:`project-section`},M={class:`section-toolbar`},N={class:`review-list`},P={class:`review-stage`},F={class:`review-meta`},I={class:`review-actions`},L=[`onClick`],R=[`onClick`],z={key:0,class:`empty-state`},B=p({__name:`ReviewPage`,setup(p){let B=g(),V=d([]),H=d([]),U=d(``),W=d(!1),G=u(()=>(B.state?.projects??[]).filter(({role:e})=>e===`maintainer`)),K=u(()=>G.value.map(e=>({value:e.id,label:e.name,meta:`#${y(e.id,26)}`,search:v(e.id)}))),q=u(()=>G.value.find(({id:e})=>e===U.value)??null);e(()=>B.state,e=>{e&&(U.value||=G.value[0]?.id??``,J())},{immediate:!0}),e(U,()=>void X());async function J(){W.value=!0,await Promise.all([Y(),X()]),W.value=!1}async function Y(){let e=B.activePersonalSpace?.id;if(e)try{let t=await h(`/api/personal-review?${new URLSearchParams({personalSpaceId:e,status:`pending`})}`);V.value=t.drafts??[]}catch(e){B.reportError(e)}}async function X(){let e=q.value;if(!e){H.value=[];return}try{let t=await h(`/api/review?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl,status:`pending`})}`);H.value=t.proposals??[]}catch(e){H.value=[],B.reportError(e)}}async function Z(e,t){try{await m(`/api/personal-review/${encodeURIComponent(e.id)}/decision`,{decision:t}),await Promise.all([Y(),B.refresh()])}catch(e){B.reportError(e)}}async function Q(e,t){let n=q.value;if(n)try{await m(`/api/review/${encodeURIComponent(e.id)}/decision`,{projectId:n.id,providerUrl:n.providerUrl,decision:t,note:null}),await X()}catch(e){B.reportError(e)}}return(e,u)=>(c(),n(`section`,x,[l(`div`,S,[l(`h3`,null,f(t(r)(`pages.review.personalTitle`)),1),l(`p`,null,f(t(r)(`pages.review.personalCopy`)),1)]),l(`div`,C,[(c(!0),n(a,null,s(V.value,e=>(c(),n(`article`,{key:e.id,class:`review-item review-item-detailed`},[l(`div`,null,[l(`div`,w,f(t(r)(`pages.review.beforePublic`)),1),l(`h4`,null,f(e.episode.name),1),l(`p`,null,f(e.episode.summary||e.episode.source_description),1),l(`div`,T,[l(`span`,null,f(t(r)(`common.counts.entities`,{count:e.episode.entities?.length??0})),1),l(`span`,null,f(t(r)(`common.counts.relationships`,{count:e.episode.relationships?.length??0})),1),l(`span`,null,f(t(b)(e.created_at)),1)])]),l(`div`,E,[l(`button`,{class:`secondary-action`,type:`button`,onClick:t=>Z(e,`keep_personal`)},f(t(r)(`pages.review.keepPersonal`)),9,D),l(`button`,{class:`reject`,type:`button`,onClick:t=>Z(e,`ignore`)},f(t(r)(`pages.review.ignore`)),9,O),t(B).state?.capabilities?.submitKnowledge?(c(),n(`button`,{key:0,class:`approve`,type:`button`,onClick:t=>Z(e,`submit_public`)},f(t(r)(`pages.review.submitPublic`)),9,k)):o(``,!0)])]))),128)),!W.value&&!V.value.length?(c(),n(`div`,A,f(t(r)(`pages.review.noPersonalDrafts`)),1)):o(``,!0)]),t(B).state?.capabilities?.reviewProposals?(c(),n(`section`,j,[l(`div`,M,[l(`div`,null,[l(`h3`,null,f(t(r)(`pages.review.publicTitle`)),1),l(`p`,null,f(t(r)(`pages.review.publicCopy`)),1)]),i(_,{modelValue:U.value,"onUpdate:modelValue":u[0]||=e=>U.value=e,options:K.value,label:t(r)(`pages.review.projectLabel`),"control-id":`review-project`,searchable:``},null,8,[`modelValue`,`options`,`label`])]),l(`div`,N,[(c(!0),n(a,null,s(H.value,e=>(c(),n(`article`,{key:e.id,class:`review-item`},[l(`div`,null,[l(`div`,P,f(t(r)(`pages.review.maintainerReview`)),1),l(`h4`,null,f(e.episode.name),1),l(`p`,null,f(e.episode.summary||e.episode.source_description),1),l(`div`,F,[l(`span`,null,f(t(b)(e.created_at)),1)])]),l(`div`,I,[l(`button`,{class:`reject`,type:`button`,onClick:t=>Q(e,`reject`)},f(t(r)(`pages.review.reject`)),9,L),l(`button`,{class:`approve`,type:`button`,onClick:t=>Q(e,`approve`)},f(t(r)(`pages.review.approve`)),9,R)])]))),128)),!W.value&&!H.value.length?(c(),n(`div`,z,f(t(r)(`pages.review.noProposals`)),1)):o(``,!0)])])):o(``,!0)]))}});export{B as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,D as t,E as n,F as r,O as i,P as a,Q as o,R as s,_ as c,a as l,d as u,f as d,g as f,j as p,k as m,m as h,n as ee,p as g,q as _,tt as v,u as y,x as b}from"./i18n-
|
|
1
|
+
import{$ as e,D as t,E as n,F as r,O as i,P as a,Q as o,R as s,_ as c,a as l,d as u,f as d,g as f,j as p,k as m,m as h,n as ee,p as g,q as _,tt as v,u as y,x as b}from"./i18n-CWfd8Dtt.js";var x=[`data-select-id`],S=[`value`,`name`,`required`,`disabled`],C=[`value`,`disabled`],w=[`aria-expanded`,`aria-controls`,`aria-label`,`disabled`],T={class:`searchable-select-current`},E={class:`searchable-select-current-label`},D={key:0,class:`searchable-select-current-meta`},O=[`hidden`],k={key:0,class:`searchable-select-search`},te=[`placeholder`,`aria-label`],ne=[`id`],re=[`aria-selected`,`disabled`,`onClick`],ie={class:`searchable-select-option-copy`},ae={key:0},A={key:1,class:`searchable-select-empty`},j=b({__name:`SearchableSelect`,props:{modelValue:{},options:{},label:{},controlId:{default:void 0},placeholder:{default:void 0},searchPlaceholder:{default:void 0},searchable:{type:Boolean,default:void 0},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},name:{default:void 0}},emits:[`update:modelValue`,`change`],setup(b,{emit:j}){let M=b,N=j,P=_(null),F=_(null),I=_(null),L=_(null),R=_(!1),z=_(!1),B=_(``),V=a().replace(/[^A-Za-z0-9_-]/g,``),H=g(()=>M.label),U=g(()=>M.placeholder??l(`common.searchableSelect.placeholder`)),W=g(()=>M.searchPlaceholder??l(`common.searchableSelect.searchPlaceholder`)),G=g(()=>`${M.controlId||`searchable-select-${V}`}-options`),K=g(()=>M.options.find(({value:e})=>e===M.modelValue)??null),q=g(()=>M.searchable??M.options.length>5),J=g(()=>{let e=ee(),t=B.value.trim().toLocaleLowerCase(e);return t?M.options.filter(n=>[n.label,n.value,n.meta,n.search].filter(Boolean).join(` `).toLocaleLowerCase(e).includes(t)):M.options});r(()=>M.disabled,e=>{e&&X()}),i(()=>{document.addEventListener(`pointerdown`,Z)}),t(()=>{document.removeEventListener(`pointerdown`,Z)});async function oe(){R.value?X():await Y()}async function Y(){M.disabled||(B.value=``,pe(),R.value=!0,await n(),q.value?I.value?.focus():fe()?.focus())}function X({restoreFocus:e=!1}={}){R.value=!1,z.value=!1,B.value=``,e&&n(()=>F.value?.focus())}function se(e){M.disabled||e.disabled||(N(`update:modelValue`,e.value),N(`change`,e.value),X({restoreFocus:!0}))}function ce(e){[`ArrowDown`,`Enter`,` `].includes(e.key)&&(e.preventDefault(),Y())}function le(e){if(e.key===`Escape`){e.preventDefault(),X({restoreFocus:!0});return}if(e.key===`ArrowDown`){e.preventDefault(),$()?.focus();return}e.key===`Enter`&&(e.preventDefault(),$()?.click())}function ue(e){if(e.key===`Escape`){e.preventDefault(),X({restoreFocus:!0});return}if(![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key))return;e.preventDefault();let t=Q(),n=t.indexOf(e.currentTarget);t[e.key===`Home`?0:e.key===`End`?t.length-1:e.key===`ArrowDown`?Math.min(t.length-1,n+1):Math.max(0,n-1)]?.focus()}function Z(e){R.value&&!P.value?.contains(e.target)&&X()}function de(e){let t=e.relatedTarget;t&&P.value?.contains(t)||queueMicrotask(()=>{R.value&&!P.value?.contains(document.activeElement)&&X()})}function Q(){return[...L.value?.querySelectorAll(`.searchable-select-option:not(:disabled)`)??[]]}function $(){return Q()[0]??null}function fe(){return Q().find(e=>e.getAttribute(`aria-selected`)===`true`)??$()}function pe(){let e=F.value?.getBoundingClientRect();z.value=!!(e&&window.innerHeight-e.bottom<270&&e.top>270)}return(t,n)=>(m(),c(`div`,{ref_key:`root`,ref:P,class:e([`searchable-select`,{open:R.value,"open-up":z.value,disabled:b.disabled}]),"data-select-id":b.controlId,onFocusout:de},[h(`select`,{class:`searchable-select-native`,value:b.modelValue,name:b.name,required:b.required,disabled:b.disabled,tabindex:`-1`,"aria-hidden":`true`},[(m(!0),c(d,null,p(b.options,e=>(m(),c(`option`,{key:e.value,value:e.value,disabled:e.disabled},v(e.label),9,C))),128))],8,S),h(`button`,{ref_key:`trigger`,ref:F,type:`button`,class:`searchable-select-trigger`,role:`combobox`,"aria-haspopup":`listbox`,"aria-expanded":R.value,"aria-controls":G.value,"aria-label":H.value,disabled:b.disabled,onPointerdown:n[0]||=u(()=>{},[`stop`]),onClick:u(oe,[`stop`]),onKeydown:ce},[h(`span`,T,[h(`span`,E,v(K.value?.label||U.value),1),K.value?.meta?(m(),c(`small`,D,v(K.value.meta),1)):f(``,!0)]),n[3]||=h(`i`,{class:`searchable-select-arrow`,"aria-hidden":`true`},null,-1)],40,w),h(`div`,{class:`searchable-select-panel`,hidden:!R.value},[q.value?(m(),c(`div`,k,[s(h(`input`,{ref_key:`searchInput`,ref:I,"onUpdate:modelValue":n[1]||=e=>B.value=e,type:`search`,autocomplete:`off`,placeholder:W.value,"aria-label":o(l)(`common.searchableSelect.searchAria`,{label:H.value}),onKeydown:le},null,40,te),[[y,B.value]])])):f(``,!0),h(`div`,{id:G.value,ref_key:`optionsList`,ref:L,class:`searchable-select-options`,role:`listbox`},[(m(!0),c(d,null,p(J.value,e=>(m(),c(`button`,{key:e.value,type:`button`,class:`searchable-select-option`,role:`option`,"aria-selected":e.value===b.modelValue,disabled:e.disabled,onMousedown:n[2]||=u(()=>{},[`prevent`]),onClick:t=>se(e),onKeydown:ue},[h(`span`,ie,[h(`strong`,null,v(e.label),1),e.meta?(m(),c(`small`,ae,v(e.meta),1)):f(``,!0)]),n[4]||=h(`i`,{class:`searchable-select-check`,"aria-hidden":`true`},null,-1)],40,re))),128))],8,ne),J.value.length===0?(m(),c(`p`,A,v(o(l)(`common.searchableSelect.noMatches`)),1)):f(``,!0)],8,O)],42,x))}});export{j as t};
|