@maudecode/kanvil 0.5.0 → 0.5.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/apps/server/dist/{auth-Cs_whzgk.mjs → auth-Bm6cIseE.mjs} +16 -10
- package/apps/server/dist/client.mjs +10 -9
- package/apps/server/dist/{config-DKuNQY5b.mjs → config-CrJuk5mY.mjs} +1 -1
- package/apps/server/dist/index.mjs +4 -4
- package/apps/server/dist/migrate.mjs +1 -1
- package/apps/server/dist/recover.mjs +3 -3
- package/apps/server/dist/{src-DptOUNRd.mjs → src-D80LNZKP.mjs} +5 -2
- package/apps/web/dist/assets/{CompositeItem-CXqewtEL.js → CompositeItem-Tueq2VKR.js} +1 -1
- package/apps/web/dist/assets/{Trans-B1rRlWca.js → Trans-BgU0eWAX.js} +1 -1
- package/apps/web/dist/assets/admin-settings-Ckis3XJG.js +1 -0
- package/apps/web/dist/assets/{archive-restore-76sStk8K.js → archive-restore-CSpoH6mS.js} +1 -1
- package/apps/web/dist/assets/{az-B7OgHoaE.js → az-DUcDY8Bp.js} +1 -1
- package/apps/web/dist/assets/{corner-left-up-PD-73Nae.js → corner-left-up-C3OGlXIB.js} +1 -1
- package/apps/web/dist/assets/{de-B-bv38Q0.js → de-89C1V8Ut.js} +1 -1
- package/apps/web/dist/assets/{default-bQFGTwIp.js → default-Dnep8Yat.js} +1 -1
- package/apps/web/dist/assets/{delivery-settings-BvMeOsCS.js → delivery-settings-cMldZ9K7.js} +1 -1
- package/apps/web/dist/assets/{el-BQHQHQgX.js → el-D6CICkhi.js} +1 -1
- package/apps/web/dist/assets/{ellipsis-GF1HwTDb.js → ellipsis-lJJU8zB7.js} +1 -1
- package/apps/web/dist/assets/{es-f5Xr8ldr.js → es-B20Izib2.js} +1 -1
- package/apps/web/dist/assets/{forms-BlEL8C_P.js → forms--87R7VQW.js} +1 -1
- package/apps/web/dist/assets/{fr-DSR0htnl.js → fr-DVlGnGsu.js} +1 -1
- package/apps/web/dist/assets/{hi-BaAJEWuW.js → hi-D1F5Pi_I.js} +1 -1
- package/apps/web/dist/assets/{highlight-DXT2xgt8.js → highlight-ygDJPvRy.js} +1 -1
- package/apps/web/dist/assets/{id-kxogWcip.js → id-LESXKW7G.js} +1 -1
- package/apps/web/dist/assets/index-Bn-MADyj.css +2 -0
- package/apps/web/dist/assets/index-Ds3IHeIi.js +17 -0
- package/apps/web/dist/assets/{invitations-BPik3J_G.js → invitations-C5WbdDUQ.js} +1 -1
- package/apps/web/dist/assets/{it-C_qk40U6.js → it-CgRGAs6u.js} +1 -1
- package/apps/web/dist/assets/{item-TCHuZNK6.js → item-BD1Poxfs.js} +1 -1
- package/apps/web/dist/assets/{ja-Dn5h64V9.js → ja-B7arhzgX.js} +1 -1
- package/apps/web/dist/assets/{ko-CjaoEPuG.js → ko-Ro_UonyA.js} +1 -1
- package/apps/web/dist/assets/{label-settings-DZTorNDm.js → label-settings-BaikCfal.js} +1 -1
- package/apps/web/dist/assets/{markdown-blocks-BQLO-H_7.js → markdown-blocks-toSPlHSc.js} +1 -1
- package/apps/web/dist/assets/{member-directory-Dx_jQYfI.js → member-directory-BjUy1KuK.js} +1 -1
- package/apps/web/dist/assets/{mk-jLeGD50T.js → mk-DR3kmrIp.js} +1 -1
- package/apps/web/dist/assets/{nl-AVtC5ygT.js → nl-D3uRJJLT.js} +1 -1
- package/apps/web/dist/assets/{pl-Dup1h_Y1.js → pl-CtzDOLdV.js} +1 -1
- package/apps/web/dist/assets/{project-lifecycle-n1ZZbYfu.js → project-lifecycle-BBHcRi6p.js} +1 -1
- package/apps/web/dist/assets/project-settings-BaYuxYjg.js +1 -0
- package/apps/web/dist/assets/{pt-BR-Cm04EWM-.js → pt-BR-FarXHHuf.js} +1 -1
- package/apps/web/dist/assets/{public-project-BivDjU_a.js → public-project-DGf3nkg2.js} +1 -1
- package/apps/web/dist/assets/{rotate-ccw-CSaKhZYt.js → rotate-ccw-Byx7O3RH.js} +1 -1
- package/apps/web/dist/assets/{ru-IeycXsyE.js → ru-DHMEVxvB.js} +1 -1
- package/apps/web/dist/assets/{search-Ble6WSEU.js → search-DwsPEC4E.js} +35 -35
- package/apps/web/dist/assets/{send-BLMZ8gQ0.js → send-DlGV2XQS.js} +1 -1
- package/apps/web/dist/assets/settings-C_sN8Y1h.js +1 -0
- package/apps/web/dist/assets/{sliders-horizontal-Db6kRvuw.js → sliders-horizontal-CEHGGft_.js} +1 -1
- package/apps/web/dist/assets/{switch-BeX-0Fwq.js → switch-B_rsZYBf.js} +1 -1
- package/apps/web/dist/assets/{table-UJp5S9yy.js → table-2AEfwytk.js} +1 -1
- package/apps/web/dist/assets/{ticket-detail-C24opfNW.js → ticket-detail-C2l8nwF-.js} +2 -2
- package/apps/web/dist/assets/ticket-editor-B0UB98HS.js +2 -0
- package/apps/web/dist/assets/ticket-list-D_MHudj1.js +6 -0
- package/apps/web/dist/assets/{ticket-list-controls-fYBottFC.js → ticket-list-controls-jKg4i-NA.js} +1 -1
- package/apps/web/dist/assets/{tr-DtT_dKUK.js → tr-CjdSDu0z.js} +1 -1
- package/apps/web/dist/assets/{uk-CsbeHSS6.js → uk-C8od6u_H.js} +1 -1
- package/apps/web/dist/assets/{upload-DUEg04Nj.js → upload-BeTAGU_W.js} +1 -1
- package/apps/web/dist/assets/{useQueries-5lW2C5Sb.js → useQueries-BtRgTciJ.js} +1 -1
- package/apps/web/dist/assets/{vi-rkf1BOLx.js → vi-BwdBtgfS.js} +1 -1
- package/apps/web/dist/assets/{visual-editor-DkFLjouD.js → visual-editor-CzB_qwvB.js} +3 -3
- package/apps/web/dist/assets/{workspace-settings-Bcsp-VoJ.js → workspace-settings-DOr9j8X1.js} +1 -1
- package/apps/web/dist/assets/{zh-CN-Xo-QId5w.js → zh-CN-DM-UoFmL.js} +1 -1
- package/apps/web/dist/assets/{zh-TW-DEnTqjbn.js → zh-TW-q2nrwFjt.js} +1 -1
- package/apps/web/dist/index.html +8 -8
- package/docs/api.md +3 -1
- package/docs/cli.md +1 -1
- package/package.json +1 -1
- package/apps/web/dist/assets/admin-settings-DE3MfBFE.js +0 -1
- package/apps/web/dist/assets/index-CYVrs22O.js +0 -17
- package/apps/web/dist/assets/index-DyQNFS69.css +0 -2
- package/apps/web/dist/assets/project-settings-B_Ih5kiz.js +0 -1
- package/apps/web/dist/assets/settings-CH48qQK2.js +0 -1
- package/apps/web/dist/assets/ticket-editor--d_bG9C1.js +0 -2
- package/apps/web/dist/assets/ticket-list-DRbZWYHf.js +0 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{Nn as t,mn as n,r}from"./default-bQFGTwIp.js";import{Di as i,Ea as a,Ei as o,Ga as s,J as c,Ma as l,Mi as u,N as d,Ni as f,Oi as p,Oo as m,P as h,Ta as g,Y as _,cn as v,fr as y,ji as b,ka as x,ln as S,on as ee,sn as C}from"./search-Ble6WSEU.js";import{n as te}from"./forms-BlEL8C_P.js";import{en as w}from"./index-CYVrs22O.js";import{n as ne,r as re}from"./highlight-DXT2xgt8.js";import{_ as ie,c as ae,d as oe,f as se,g as ce,h as le,m as ue,p as de,u as fe}from"./ticket-editor--d_bG9C1.js";var pe={name:`between-horizontal-end`,size:24,node:[[`rect`,{width:`13`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`11xb64`}],[`path`,{d:`m22 15-3-3 3-3`,key:`26chmm`}],[`rect`,{width:`13`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`k6ky7n`}]],aliases:[`between-horizonal-end`]};pe.node;var me=s(pe),he={name:`between-vertical-end`,size:24,node:[[`rect`,{width:`7`,height:`13`,x:`3`,y:`3`,rx:`1`,key:`1fdu0f`}],[`path`,{d:`m9 22 3-3 3 3`,key:`17z65a`}],[`rect`,{width:`7`,height:`13`,x:`14`,y:`3`,rx:`1`,key:`1squn4`}]]};he.node;var T=s(he),ge={name:`grid-2x2-x`,size:24,node:[[`path`,{d:`M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3`,key:`11za1p`}],[`path`,{d:`m16.5 16.5 5 5`,key:`zc9lw7`}],[`path`,{d:`m16.5 21.5 5-5`,key:`1fr29m`}]],aliases:[`grid-2-x-2-x`]};ge.node;var _e=s(ge),ve={name:`table-columns-split`,size:24,node:[[`path`,{d:`M14 14v2`,key:`w2a1xv`}],[`path`,{d:`M14 20v2`,key:`1lq872`}],[`path`,{d:`M14 2v2`,key:`6buw04`}],[`path`,{d:`M14 8v2`,key:`i67w9a`}],[`path`,{d:`M2 15h8`,key:`82wtch`}],[`path`,{d:`M2 3h6a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H2`,key:`up0l64`}],[`path`,{d:`M2 9h8`,key:`yelfik`}],[`path`,{d:`M22 15h-4`,key:`1es58f`}],[`path`,{d:`M22 3h-2a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h2`,key:`pdjoqf`}],[`path`,{d:`M22 9h-4`,key:`1luja7`}],[`path`,{d:`M5 3v18`,key:`14hmio`}]]};ve.node;var ye=s(ve),be={name:`table-rows-split`,size:24,node:[[`path`,{d:`M14 10h2`,key:`1lstlu`}],[`path`,{d:`M15 22v-8`,key:`1fwwgm`}],[`path`,{d:`M15 2v4`,key:`1044rn`}],[`path`,{d:`M2 10h2`,key:`1r8dkt`}],[`path`,{d:`M20 10h2`,key:`1ug425`}],[`path`,{d:`M3 19h18`,key:`awlh7x`}],[`path`,{d:`M3 22v-6a2 2 135 0 1 2-2h14a2 2 45 0 1 2 2v6`,key:`ibqhof`}],[`path`,{d:`M3 2v2a2 2 45 0 0 2 2h14a2 2 135 0 0 2-2V2`,key:`1uenja`}],[`path`,{d:`M8 10h2`,key:`66od0`}],[`path`,{d:`M9 22v-8`,key:`fmnu31`}],[`path`,{d:`M9 2v4`,key:`j1yeou`}]]};be.node;var xe=s(be),Se={name:`table`,size:24,node:[[`path`,{d:`M12 3v18`,key:`108xh3`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M3 15h18`,key:`5xshup`}]]};Se.node;var Ce=s(Se),we={name:`text-quote`,size:24,node:[[`path`,{d:`M17 5H3`,key:`1cn7zz`}],[`path`,{d:`M21 12H8`,key:`scolzb`}],[`path`,{d:`M21 19H8`,key:`13qgcb`}],[`path`,{d:`M3 12v7`,key:`1ri8j3`}]]};we.node;var Te=s(we),E=e(t(),1),Ee=e(m(),1),D=r(),De=a(),Oe=g();function ke(e){this.content=e}ke.prototype={constructor:ke,find:function(e){for(var t=0;t<this.content.length;t+=2)if(this.content[t]===e)return t;return-1},get:function(e){var t=this.find(e);return t==-1?void 0:this.content[t+1]},update:function(e,t,n){var r=n&&n!=e?this.remove(n):this,i=r.find(e),a=r.content.slice();return i==-1?a.push(n||e,t):(a[i+1]=t,n&&(a[i]=n)),new ke(a)},remove:function(e){var t=this.find(e);if(t==-1)return this;var n=this.content.slice();return n.splice(t,2),new ke(n)},addToStart:function(e,t){return new ke([e,t].concat(this.remove(e).content))},addToEnd:function(e,t){var n=this.remove(e).content.slice();return n.push(e,t),new ke(n)},addBefore:function(e,t,n){var r=this.remove(t),i=r.content.slice(),a=r.find(e);return i.splice(a==-1?i.length:a,0,t,n),new ke(i)},forEach:function(e){for(var t=0;t<this.content.length;t+=2)e(this.content[t],this.content[t+1])},prepend:function(e){return e=ke.from(e),e.size?new ke(e.content.concat(this.subtract(e).content)):this},append:function(e){return e=ke.from(e),e.size?new ke(this.subtract(e).content.concat(e.content)):this},subtract:function(e){var t=this;e=ke.from(e);for(var n=0;n<e.content.length;n+=2)t=t.remove(e.content[n]);return t},toObject:function(){var e={};return this.forEach(function(t,n){e[t]=n}),e},get size(){return this.content.length>>1}},ke.from=function(e){if(e instanceof ke)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new ke(t)};function Ae(e,t,n){for(let r=0;;r++){if(r==e.childCount||r==t.childCount)return e.childCount==t.childCount?null:n;let i=e.child(r),a=t.child(r);if(i==a)n+=i.nodeSize;else{if(!i.sameMarkup(a))return n;if(i.isText&&i.text!=a.text){let e=i.text,t=a.text,r=0;for(;e[r]==t[r];r++)n++;return r&&r<e.length&&r<t.length&&Ne(e.charCodeAt(r-1))&&Me(e.charCodeAt(r))&&n--,n}if(i.content.size||a.content.size){let e=Ae(i.content,a.content,n+1);if(e!=null)return e}n+=i.nodeSize}}}function je(e,t,n,r){for(let i=e.childCount,a=t.childCount;;){if(i==0||a==0)return i==a?null:{a:n,b:r};let o=e.child(--i),s=t.child(--a),c=o.nodeSize;if(o==s)n-=c,r-=c;else{if(!o.sameMarkup(s))return{a:n,b:r};if(o.isText&&o.text!=s.text){let e=o.text,t=s.text,i=e.length,a=t.length;for(;i>0&&a>0&&e[i-1]==t[a-1];)i--,a--,n--,r--;return i&&a&&i<e.length&&Ne(e.charCodeAt(i-1))&&Me(e.charCodeAt(i))&&(n++,r++),{a:n,b:r}}if(o.content.size||s.content.size){let e=je(o.content,s.content,n-1,r-1);if(e)return e}n-=c,r-=c}}}function Me(e){return e>=56320&&e<57344}function Ne(e){return e>=55296&&e<56320}var O=class e{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let t=0;t<e.length;t++)this.size+=e[t].nodeSize}nodesBetween(e,t,n,r=0,i){for(let a=0,o=0;o<t;a++){let s=this.content[a],c=o+s.nodeSize;if(c>e&&n(s,r+o,i||null,a)!==!1&&s.content.size){let i=o+1;s.nodesBetween(Math.max(0,e-i),Math.min(s.content.size,t-i),n,r+i)}o=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i=``,a=!0;return this.nodesBetween(e,t,(o,s)=>{let c=o.isText?o.text.slice(Math.max(e,s)-s,t-s):o.isLeaf?r?typeof r==`function`?r(o):r:o.type.spec.leafText?o.type.spec.leafText(o):``:``;o.isBlock&&(o.isLeaf&&c||o.isTextblock)&&n&&(a?a=!1:i+=n),i+=c},0),i}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,r=t.firstChild,i=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),a=1);a<t.content.length;a++)i.push(t.content[a]);return new e(i,this.size+t.size)}cut(t,n=this.size){if(t==0&&n==this.size)return this;let r=[],i=0;if(n>t)for(let e=0,a=0;a<n;e++){let o=this.content[e],s=a+o.nodeSize;s>t&&((a<t||s>n)&&(o=o.isText?o.cut(Math.max(0,t-a),Math.min(o.text.length,n-a)):o.cut(Math.max(0,t-a-1),Math.min(o.content.size,n-a-1))),r.push(o),i+=o.nodeSize),a=s}return new e(r,i)}cutByIndex(t,n){return t==n?e.empty:t==0&&n==this.content.length?this:new e(this.content.slice(t,n))}replaceChild(t,n){let r=this.content[t];if(r==n)return this;let i=this.content.slice(),a=this.size+n.nodeSize-r.nodeSize;return i[t]=n,new e(i,a)}addToStart(t){return new e([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new e(this.content.concat(t),this.size+t.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<this.content.length;t++)if(!this.content[t].eq(e.content[t]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let t=this.content[e];if(!t)throw RangeError(`Index `+e+` out of range for `+this);return t}maybeChild(e){return this.content[e]||null}forEach(e){for(let t=0,n=0;t<this.content.length;t++){let r=this.content[t];e(r,n,t),n+=r.nodeSize}}findDiffStart(e,t=0){return Ae(this,e,t)}findDiffEnd(e,t=this.size,n=e.size){return je(this,e,t,n)}findIndex(e){if(e==0)return Fe(0,e);if(e==this.size)return Fe(this.content.length,e);if(e>this.size||e<0)throw RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=this.child(t),i=n+r.nodeSize;if(i>=e)return i==e?Fe(t+1,i):Fe(t,n);n=i}}toString(){return`<`+this.toStringInner()+`>`}toStringInner(){return this.content.join(`, `)}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(t,n){if(!n)return e.empty;if(!Array.isArray(n))throw RangeError(`Invalid input for Fragment.fromJSON`);return e.fromArray(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return e.empty;let n,r=0;for(let e=0;e<t.length;e++){let i=t[e];r+=i.nodeSize,e&&i.isText&&t[e-1].sameMarkup(i)?(n||=t.slice(0,e),n[n.length-1]=i.withText(n[n.length-1].text+i.text)):n&&n.push(i)}return new e(n||t,r)}static from(t){if(!t)return e.empty;if(t instanceof e)return t;if(Array.isArray(t))return this.fromArray(t);if(t.attrs)return new e([t],t.nodeSize);throw RangeError(`Can not convert `+t+` to a Fragment`+(t.nodesBetween?` (looks like multiple versions of prosemirror-model were loaded)`:``))}};O.empty=new O([],0);var Pe={index:0,offset:0};function Fe(e,t){return Pe.index=e,Pe.offset=t,Pe}function Ie(e,t){if(e===t)return!0;if(!(e&&typeof e==`object`)||!(t&&typeof t==`object`))return!1;let n=Array.isArray(e);if(Array.isArray(t)!=n)return!1;if(n){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!Ie(e[n],t[n]))return!1}else{for(let n in e)if(!(n in t)||!Ie(e[n],t[n]))return!1;for(let n in t)if(!(n in e))return!1}return!0}var k=class e{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(this.eq(i))return e;if(this.type.excludes(i.type))t||=e.slice(0,r);else if(i.type.excludes(this.type))return e;else!n&&i.type.rank>this.type.rank&&(t||=e.slice(0,r),t.push(this),n=!0),t&&t.push(i)}return t||=e.slice(),n||t.push(this),t}removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e.slice(0,t).concat(e.slice(t+1));return e}isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}eq(e){return this==e||this.type==e.type&&Ie(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Mark.fromJSON`);let n=e.marks[t.type];if(!n)throw RangeError(`There is no mark type ${t.type} in this schema`);return n.create(t.attrs)}static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].eq(t[n]))return!1;return!0}static setFrom(t){if(!t||Array.isArray(t)&&t.length==0)return e.none;if(t instanceof e)return[t];let n=t.slice();return n.sort((e,t)=>e.type.rank-t.type.rank),n}};k.none=[];var Le=class extends Error{},A=class e{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let r=ze(this.content,t+this.openStart,n,this.openStart+1,this.openEnd+1);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e(Re(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+`(`+this.openStart+`,`+this.openEnd+`)`}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(t,n){if(!n)return e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!=`number`||typeof i!=`number`)throw RangeError(`Invalid input for Slice.fromJSON`);return new e(O.fromJSON(t,n.content),r,i)}static maxOpen(t,n=!0){let r=0,i=0;for(let e=t.firstChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.firstChild)r++;for(let e=t.lastChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.lastChild)i++;return new e(t,r,i)}};A.empty=new A(O.empty,0,0);function Re(e,t,n){let{index:r,offset:i}=e.findIndex(t),a=e.maybeChild(r),{index:o,offset:s}=e.findIndex(n);if(i==t||a.isText){if(s!=n&&!e.child(o).isText)throw RangeError(`Removing non-flat range`);return e.cut(0,t).append(e.cut(n))}if(r!=o)throw RangeError(`Removing non-flat range`);return e.replaceChild(r,a.copy(Re(a.content,t-i-1,n-i-1)))}function ze(e,t,n,r,i,a){let{index:o,offset:s}=e.findIndex(t),c=e.maybeChild(o);if(s==t||c.isText)return a&&r<=0&&i<=0&&!a.canReplace(o,o,n)?null:e.cut(0,t).append(n).append(e.cut(t));let l=ze(c.content,t-s-1,n,o==0?r-1:0,o==e.childCount-1?i-1:0,c);return l&&e.replaceChild(o,c.copy(l))}function Be(e,t,n){if(n.openStart>e.depth)throw new Le(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new Le(`Inconsistent open depths`);return Ve(e,t,n,0)}function Ve(e,t,n,r){let i=e.index(r),a=e.node(r);if(i==t.index(r)&&r<e.depth-n.openStart){let o=Ve(e,t,n,r+1);return a.copy(a.content.replaceChild(i,o))}if(!n.content.size)return Ke(a,Je(e,t,r));if(!n.openStart&&!n.openEnd&&e.depth==r&&t.depth==r){let r=e.parent,i=r.content;return Ke(r,i.cut(0,e.parentOffset).append(n.content).append(i.cut(t.parentOffset)))}{let{start:i,end:o}=Ye(n,e);return Ke(a,qe(e,i,o,t,r))}}function He(e,t){if(!t.type.compatibleContent(e.type))throw new Le(`Cannot join `+t.type.name+` onto `+e.type.name)}function Ue(e,t,n){let r=e.node(n);return He(r,t.node(n)),r}function We(e,t){let n=t.length-1;n>=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function Ge(e,t,n,r){let i=(t||e).node(n),a=0,o=t?t.index(n):i.childCount;e&&(a=e.index(n),e.depth>n?a++:e.textOffset&&(We(e.nodeAfter,r),a++));for(let e=a;e<o;e++)We(i.child(e),r);t&&t.depth==n&&t.textOffset&&We(t.nodeBefore,r)}function Ke(e,t){if(!e.type.validContent(t))throw new Le(`Invalid content for node `+e.type.name);return e.copy(t)}function qe(e,t,n,r,i){let a=e.depth>i&&Ue(e,t,i+1),o=r.depth>i&&Ue(n,r,i+1),s=[];return Ge(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(He(a,o),We(Ke(a,qe(e,t,n,r,i+1)),s)):(a&&We(Ke(a,Je(e,t,i+1)),s),Ge(t,n,i,s),o&&We(Ke(o,Je(n,r,i+1)),s)),Ge(r,null,i,s),new O(s)}function Je(e,t,n){let r=[];return Ge(null,e,n,r),e.depth>n&&We(Ke(Ue(e,t,n+1),Je(e,t,n+1)),r),Ge(t,null,n,r),new O(r)}function Ye(e,t){let n=t.depth-e.openStart,r=t.node(n).copy(e.content);for(let e=n-1;e>=0;e--)r=t.node(e).copy(O.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var Xe=class e{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position before the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position after the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[t*3],r=t==0?0:this.path[t*3-1]+1;for(let t=0;t<e;t++)r+=n.child(t).nodeSize;return r}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return k.none;if(this.textOffset)return e.child(t).marks;let n=e.maybeChild(t-1),r=e.maybeChild(t);if(!n){let e=n;n=r,r=e}let i=n.marks;for(var a=0;a<i.length;a++)i[a].type.spec.inclusive===!1&&(!r||!i[a].isInSet(r.marks))&&(i=i[a--].removeFromSet(i));return i}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let n=t.marks,r=e.parent.maybeChild(e.index());for(var i=0;i<n.length;i++)n[i].type.spec.inclusive===!1&&(!r||!n[i].isInSet(r.marks))&&(n=n[i--].removeFromSet(n));return n}sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(let n=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);n>=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new et(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e=``;for(let t=1;t<=this.depth;t++)e+=(e?`/`:``)+this.node(t).type.name+`_`+this.index(t-1);return e+`:`+this.parentOffset}static resolve(t,n){if(!(n>=0&&n<=t.content.size))throw RangeError(`Position `+n+` out of range`);let r=[],i=0,a=n;for(let e=t;;){let{index:t,offset:n}=e.content.findIndex(a),o=a-n;if(r.push(e,t,i+n),!o||(e=e.child(t),e.isText))break;a=o-1,i+=n+1}return new e(n,r,a)}static resolveCached(t,n){let r=$e.get(t);if(r)for(let e=0;e<r.elts.length;e++){let t=r.elts[e];if(t.pos==n)return t}else $e.set(t,r=new Ze);let i=r.elts[r.i]=e.resolve(t,n);return r.i=(r.i+1)%Qe,i}},Ze=class{constructor(){this.elts=[],this.i=0}},Qe=12,$e=new WeakMap,et=class{constructor(e,t,n){this.$from=e,this.$to=t,this.depth=n}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}},tt=Object.create(null),nt=class e{constructor(e,t,n,r=k.none){this.type=e,this.attrs=t,this.marks=r,this.content=n||O.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,t,n,r=0){this.content.nodesBetween(e,t,n,r,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,``)}textBetween(e,t,n,r){return this.content.textBetween(e,t,n,r)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,t,n){return this.type==e&&Ie(this.attrs,t||e.defaultAttrs||tt)&&k.sameSet(this.marks,n||k.none)}copy(t=null){return t==this.content?this:new e(this.type,this.attrs,t,this.marks)}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.content,t)}cut(e,t=this.content.size){return e==0&&t==this.content.size?this:this.copy(this.content.cut(e,t))}slice(e,t=this.content.size,n=!1){if(e==t)return A.empty;let r=this.resolve(e),i=this.resolve(t),a=n?0:r.sharedDepth(t),o=r.start(a);return new A(r.node(a).content.cut(r.pos-o,i.pos-o),r.depth-a,i.depth-a)}replace(e,t,n){return Be(this.resolve(e),this.resolve(t),n)}nodeAt(e){for(let t=this;;){let{index:n,offset:r}=t.content.findIndex(e);if(t=t.maybeChild(n),!t)return null;if(r==e||t.isText)return t;e-=r+1}}childAfter(e){let{index:t,offset:n}=this.content.findIndex(e);return{node:this.content.maybeChild(t),index:t,offset:n}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:t,offset:n}=this.content.findIndex(e);if(n<e)return{node:this.content.child(t),index:t,offset:n};let r=this.content.child(t-1);return{node:r,index:t-1,offset:n-r.nodeSize}}resolve(e){return Xe.resolveCached(this,e)}resolveNoCache(e){return Xe.resolve(this,e)}rangeHasMark(e,t,n){let r=!1;return t>e&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+=`(`+this.content.toStringInner()+`)`),it(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw Error(`Called contentMatchAt on a node with invalid content`);return t}canReplace(e,t,n=O.empty,r=0,i=n.childCount){let a=this.contentMatchAt(e).matchFragment(n,r,i),o=a&&a.matchFragment(this.content,t);if(!o||!o.validEnd)return!1;for(let e=r;e<i;e++)if(!this.type.allowsMarks(n.child(e).marks))return!1;return!0}canReplaceWith(e,t,n,r){if(r&&!this.type.allowsMarks(r))return!1;let i=this.contentMatchAt(e).matchType(n),a=i&&i.matchFragment(this.content,t);return a?a.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),at(this.type.attrs,this.attrs,`node`,this.type.name);let e=k.none;for(let t=0;t<this.marks.length;t++){let n=this.marks[t];at(n.type.attrs,n.attrs,`mark`,n.type.name),e=n.addToSet(e)}if(!k.sameSet(e,this.marks))throw RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(e=>e.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Node.fromJSON`);let n;if(t.marks){if(!Array.isArray(t.marks))throw RangeError(`Invalid mark data for Node.fromJSON`);n=t.marks.map(e.markFromJSON)}if(t.type==`text`){if(typeof t.text!=`string`)throw RangeError(`Invalid text node in JSON`);return e.text(t.text,n)}let r=O.fromJSON(e,t.content);return e.nodeType(t.type).create(t.attrs,r,n)}};nt.prototype.text=void 0;var rt=class e extends nt{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw RangeError(`Empty text nodes are not allowed`);this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):it(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.text,t)}withText(t){return t==this.text?this:new e(this.type,this.attrs,t,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function it(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}function at(e,t,n,r){for(let i in t)if(!(i in e))throw RangeError(`Unsupported attribute ${i} for ${n} of type ${r}`);for(let n in e)e[n].validate&&e[n].validate(t[n])}var ot=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new st(t,n);if(r.next==null)return e.empty;let i=ct(r);r.next&&r.err(`Unexpected trailing text`);let a=vt(ht(i));return yt(a,r),a}matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==e)return this.next[t].next;return null}matchFragment(e,t=0,n=e.childCount){let r=this;for(let i=t;r&&i<n;i++)r=r.matchType(e.child(i).type);return r}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this.next[e];if(!(t.isText||t.hasRequiredAttrs()))return t}return null}compatible(e){for(let t=0;t<this.next.length;t++)for(let n=0;n<e.next.length;n++)if(this.next[t].type==e.next[n].type)return!0;return!1}fillBefore(e,t=!1,n=0){let r=[this];function i(a,o){let s=a.matchFragment(e,n);if(s&&(!t||s.validEnd))return O.from(o.map(e=>e.createAndFill()));for(let e=0;e<a.next.length;e++){let{type:t,next:n}=a.next[e];if(!(t.isText||t.hasRequiredAttrs())&&r.indexOf(n)==-1){r.push(n);let e=i(n,o.concat(t));if(e)return e}}return null}return i(this,[])}findWrapping(e){for(let t=0;t<this.wrapCache.length;t+=2)if(this.wrapCache[t]==e)return this.wrapCache[t+1];let t=this.computeWrapping(e);return this.wrapCache.push(e,t),t}computeWrapping(e){let t=Object.create(null),n=[{match:this,type:null,via:null}];for(;n.length;){let r=n.shift(),i=r.match;if(i.matchType(e)){let e=[];for(let t=r;t.type;t=t.via)e.push(t.type);return e.reverse()}for(let e=0;e<i.next.length;e++){let{type:a,next:o}=i.next[e];!a.isLeaf&&!a.hasRequiredAttrs()&&!(a.name in t)&&(!r.type||o.validEnd)&&(n.push({match:a.contentMatch,type:a,via:r}),t[a.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(n){e.push(n);for(let r=0;r<n.next.length;r++)e.indexOf(n.next[r].next)==-1&&t(n.next[r].next)}return t(this),e.map((t,n)=>{let r=n+(t.validEnd?`*`:` `)+` `;for(let n=0;n<t.next.length;n++)r+=(n?`, `:``)+t.next[n].type.name+`->`+e.indexOf(t.next[n].next);return r}).join(`
|
|
1
|
+
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{Nn as t,mn as n,r}from"./default-Dnep8Yat.js";import{Di as i,Do as a,Ea as o,Ei as s,Ga as c,J as l,Ma as u,Mi as d,N as f,Ni as p,Oi as m,P as h,Ta as g,Y as _,cn as v,fr as y,ji as b,ka as x,ln as S,on as ee,sn as C}from"./search-DwsPEC4E.js";import{n as te}from"./forms--87R7VQW.js";import{en as w}from"./index-Ds3IHeIi.js";import{n as ne,r as re}from"./highlight-ygDJPvRy.js";import{_ as ie,c as ae,d as oe,f as se,g as ce,h as le,m as ue,p as de,u as fe}from"./ticket-editor-B0UB98HS.js";var pe={name:`between-horizontal-end`,size:24,node:[[`rect`,{width:`13`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`11xb64`}],[`path`,{d:`m22 15-3-3 3-3`,key:`26chmm`}],[`rect`,{width:`13`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`k6ky7n`}]],aliases:[`between-horizonal-end`]};pe.node;var me=c(pe),he={name:`between-vertical-end`,size:24,node:[[`rect`,{width:`7`,height:`13`,x:`3`,y:`3`,rx:`1`,key:`1fdu0f`}],[`path`,{d:`m9 22 3-3 3 3`,key:`17z65a`}],[`rect`,{width:`7`,height:`13`,x:`14`,y:`3`,rx:`1`,key:`1squn4`}]]};he.node;var T=c(he),ge={name:`grid-2x2-x`,size:24,node:[[`path`,{d:`M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3`,key:`11za1p`}],[`path`,{d:`m16.5 16.5 5 5`,key:`zc9lw7`}],[`path`,{d:`m16.5 21.5 5-5`,key:`1fr29m`}]],aliases:[`grid-2-x-2-x`]};ge.node;var _e=c(ge),ve={name:`table-columns-split`,size:24,node:[[`path`,{d:`M14 14v2`,key:`w2a1xv`}],[`path`,{d:`M14 20v2`,key:`1lq872`}],[`path`,{d:`M14 2v2`,key:`6buw04`}],[`path`,{d:`M14 8v2`,key:`i67w9a`}],[`path`,{d:`M2 15h8`,key:`82wtch`}],[`path`,{d:`M2 3h6a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H2`,key:`up0l64`}],[`path`,{d:`M2 9h8`,key:`yelfik`}],[`path`,{d:`M22 15h-4`,key:`1es58f`}],[`path`,{d:`M22 3h-2a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h2`,key:`pdjoqf`}],[`path`,{d:`M22 9h-4`,key:`1luja7`}],[`path`,{d:`M5 3v18`,key:`14hmio`}]]};ve.node;var ye=c(ve),be={name:`table-rows-split`,size:24,node:[[`path`,{d:`M14 10h2`,key:`1lstlu`}],[`path`,{d:`M15 22v-8`,key:`1fwwgm`}],[`path`,{d:`M15 2v4`,key:`1044rn`}],[`path`,{d:`M2 10h2`,key:`1r8dkt`}],[`path`,{d:`M20 10h2`,key:`1ug425`}],[`path`,{d:`M3 19h18`,key:`awlh7x`}],[`path`,{d:`M3 22v-6a2 2 135 0 1 2-2h14a2 2 45 0 1 2 2v6`,key:`ibqhof`}],[`path`,{d:`M3 2v2a2 2 45 0 0 2 2h14a2 2 135 0 0 2-2V2`,key:`1uenja`}],[`path`,{d:`M8 10h2`,key:`66od0`}],[`path`,{d:`M9 22v-8`,key:`fmnu31`}],[`path`,{d:`M9 2v4`,key:`j1yeou`}]]};be.node;var xe=c(be),Se={name:`table`,size:24,node:[[`path`,{d:`M12 3v18`,key:`108xh3`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M3 15h18`,key:`5xshup`}]]};Se.node;var Ce=c(Se),we={name:`text-quote`,size:24,node:[[`path`,{d:`M17 5H3`,key:`1cn7zz`}],[`path`,{d:`M21 12H8`,key:`scolzb`}],[`path`,{d:`M21 19H8`,key:`13qgcb`}],[`path`,{d:`M3 12v7`,key:`1ri8j3`}]]};we.node;var Te=c(we),E=e(t(),1),Ee=e(a(),1),D=r(),De=o(),Oe=g();function ke(e){this.content=e}ke.prototype={constructor:ke,find:function(e){for(var t=0;t<this.content.length;t+=2)if(this.content[t]===e)return t;return-1},get:function(e){var t=this.find(e);return t==-1?void 0:this.content[t+1]},update:function(e,t,n){var r=n&&n!=e?this.remove(n):this,i=r.find(e),a=r.content.slice();return i==-1?a.push(n||e,t):(a[i+1]=t,n&&(a[i]=n)),new ke(a)},remove:function(e){var t=this.find(e);if(t==-1)return this;var n=this.content.slice();return n.splice(t,2),new ke(n)},addToStart:function(e,t){return new ke([e,t].concat(this.remove(e).content))},addToEnd:function(e,t){var n=this.remove(e).content.slice();return n.push(e,t),new ke(n)},addBefore:function(e,t,n){var r=this.remove(t),i=r.content.slice(),a=r.find(e);return i.splice(a==-1?i.length:a,0,t,n),new ke(i)},forEach:function(e){for(var t=0;t<this.content.length;t+=2)e(this.content[t],this.content[t+1])},prepend:function(e){return e=ke.from(e),e.size?new ke(e.content.concat(this.subtract(e).content)):this},append:function(e){return e=ke.from(e),e.size?new ke(this.subtract(e).content.concat(e.content)):this},subtract:function(e){var t=this;e=ke.from(e);for(var n=0;n<e.content.length;n+=2)t=t.remove(e.content[n]);return t},toObject:function(){var e={};return this.forEach(function(t,n){e[t]=n}),e},get size(){return this.content.length>>1}},ke.from=function(e){if(e instanceof ke)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new ke(t)};function Ae(e,t,n){for(let r=0;;r++){if(r==e.childCount||r==t.childCount)return e.childCount==t.childCount?null:n;let i=e.child(r),a=t.child(r);if(i==a)n+=i.nodeSize;else{if(!i.sameMarkup(a))return n;if(i.isText&&i.text!=a.text){let e=i.text,t=a.text,r=0;for(;e[r]==t[r];r++)n++;return r&&r<e.length&&r<t.length&&Ne(e.charCodeAt(r-1))&&Me(e.charCodeAt(r))&&n--,n}if(i.content.size||a.content.size){let e=Ae(i.content,a.content,n+1);if(e!=null)return e}n+=i.nodeSize}}}function je(e,t,n,r){for(let i=e.childCount,a=t.childCount;;){if(i==0||a==0)return i==a?null:{a:n,b:r};let o=e.child(--i),s=t.child(--a),c=o.nodeSize;if(o==s)n-=c,r-=c;else{if(!o.sameMarkup(s))return{a:n,b:r};if(o.isText&&o.text!=s.text){let e=o.text,t=s.text,i=e.length,a=t.length;for(;i>0&&a>0&&e[i-1]==t[a-1];)i--,a--,n--,r--;return i&&a&&i<e.length&&Ne(e.charCodeAt(i-1))&&Me(e.charCodeAt(i))&&(n++,r++),{a:n,b:r}}if(o.content.size||s.content.size){let e=je(o.content,s.content,n-1,r-1);if(e)return e}n-=c,r-=c}}}function Me(e){return e>=56320&&e<57344}function Ne(e){return e>=55296&&e<56320}var O=class e{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let t=0;t<e.length;t++)this.size+=e[t].nodeSize}nodesBetween(e,t,n,r=0,i){for(let a=0,o=0;o<t;a++){let s=this.content[a],c=o+s.nodeSize;if(c>e&&n(s,r+o,i||null,a)!==!1&&s.content.size){let i=o+1;s.nodesBetween(Math.max(0,e-i),Math.min(s.content.size,t-i),n,r+i)}o=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i=``,a=!0;return this.nodesBetween(e,t,(o,s)=>{let c=o.isText?o.text.slice(Math.max(e,s)-s,t-s):o.isLeaf?r?typeof r==`function`?r(o):r:o.type.spec.leafText?o.type.spec.leafText(o):``:``;o.isBlock&&(o.isLeaf&&c||o.isTextblock)&&n&&(a?a=!1:i+=n),i+=c},0),i}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,r=t.firstChild,i=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),a=1);a<t.content.length;a++)i.push(t.content[a]);return new e(i,this.size+t.size)}cut(t,n=this.size){if(t==0&&n==this.size)return this;let r=[],i=0;if(n>t)for(let e=0,a=0;a<n;e++){let o=this.content[e],s=a+o.nodeSize;s>t&&((a<t||s>n)&&(o=o.isText?o.cut(Math.max(0,t-a),Math.min(o.text.length,n-a)):o.cut(Math.max(0,t-a-1),Math.min(o.content.size,n-a-1))),r.push(o),i+=o.nodeSize),a=s}return new e(r,i)}cutByIndex(t,n){return t==n?e.empty:t==0&&n==this.content.length?this:new e(this.content.slice(t,n))}replaceChild(t,n){let r=this.content[t];if(r==n)return this;let i=this.content.slice(),a=this.size+n.nodeSize-r.nodeSize;return i[t]=n,new e(i,a)}addToStart(t){return new e([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new e(this.content.concat(t),this.size+t.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<this.content.length;t++)if(!this.content[t].eq(e.content[t]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let t=this.content[e];if(!t)throw RangeError(`Index `+e+` out of range for `+this);return t}maybeChild(e){return this.content[e]||null}forEach(e){for(let t=0,n=0;t<this.content.length;t++){let r=this.content[t];e(r,n,t),n+=r.nodeSize}}findDiffStart(e,t=0){return Ae(this,e,t)}findDiffEnd(e,t=this.size,n=e.size){return je(this,e,t,n)}findIndex(e){if(e==0)return Fe(0,e);if(e==this.size)return Fe(this.content.length,e);if(e>this.size||e<0)throw RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=this.child(t),i=n+r.nodeSize;if(i>=e)return i==e?Fe(t+1,i):Fe(t,n);n=i}}toString(){return`<`+this.toStringInner()+`>`}toStringInner(){return this.content.join(`, `)}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(t,n){if(!n)return e.empty;if(!Array.isArray(n))throw RangeError(`Invalid input for Fragment.fromJSON`);return e.fromArray(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return e.empty;let n,r=0;for(let e=0;e<t.length;e++){let i=t[e];r+=i.nodeSize,e&&i.isText&&t[e-1].sameMarkup(i)?(n||=t.slice(0,e),n[n.length-1]=i.withText(n[n.length-1].text+i.text)):n&&n.push(i)}return new e(n||t,r)}static from(t){if(!t)return e.empty;if(t instanceof e)return t;if(Array.isArray(t))return this.fromArray(t);if(t.attrs)return new e([t],t.nodeSize);throw RangeError(`Can not convert `+t+` to a Fragment`+(t.nodesBetween?` (looks like multiple versions of prosemirror-model were loaded)`:``))}};O.empty=new O([],0);var Pe={index:0,offset:0};function Fe(e,t){return Pe.index=e,Pe.offset=t,Pe}function Ie(e,t){if(e===t)return!0;if(!(e&&typeof e==`object`)||!(t&&typeof t==`object`))return!1;let n=Array.isArray(e);if(Array.isArray(t)!=n)return!1;if(n){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!Ie(e[n],t[n]))return!1}else{for(let n in e)if(!(n in t)||!Ie(e[n],t[n]))return!1;for(let n in t)if(!(n in e))return!1}return!0}var k=class e{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(this.eq(i))return e;if(this.type.excludes(i.type))t||=e.slice(0,r);else if(i.type.excludes(this.type))return e;else!n&&i.type.rank>this.type.rank&&(t||=e.slice(0,r),t.push(this),n=!0),t&&t.push(i)}return t||=e.slice(),n||t.push(this),t}removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e.slice(0,t).concat(e.slice(t+1));return e}isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}eq(e){return this==e||this.type==e.type&&Ie(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Mark.fromJSON`);let n=e.marks[t.type];if(!n)throw RangeError(`There is no mark type ${t.type} in this schema`);return n.create(t.attrs)}static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].eq(t[n]))return!1;return!0}static setFrom(t){if(!t||Array.isArray(t)&&t.length==0)return e.none;if(t instanceof e)return[t];let n=t.slice();return n.sort((e,t)=>e.type.rank-t.type.rank),n}};k.none=[];var Le=class extends Error{},A=class e{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let r=ze(this.content,t+this.openStart,n,this.openStart+1,this.openEnd+1);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e(Re(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+`(`+this.openStart+`,`+this.openEnd+`)`}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(t,n){if(!n)return e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!=`number`||typeof i!=`number`)throw RangeError(`Invalid input for Slice.fromJSON`);return new e(O.fromJSON(t,n.content),r,i)}static maxOpen(t,n=!0){let r=0,i=0;for(let e=t.firstChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.firstChild)r++;for(let e=t.lastChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.lastChild)i++;return new e(t,r,i)}};A.empty=new A(O.empty,0,0);function Re(e,t,n){let{index:r,offset:i}=e.findIndex(t),a=e.maybeChild(r),{index:o,offset:s}=e.findIndex(n);if(i==t||a.isText){if(s!=n&&!e.child(o).isText)throw RangeError(`Removing non-flat range`);return e.cut(0,t).append(e.cut(n))}if(r!=o)throw RangeError(`Removing non-flat range`);return e.replaceChild(r,a.copy(Re(a.content,t-i-1,n-i-1)))}function ze(e,t,n,r,i,a){let{index:o,offset:s}=e.findIndex(t),c=e.maybeChild(o);if(s==t||c.isText)return a&&r<=0&&i<=0&&!a.canReplace(o,o,n)?null:e.cut(0,t).append(n).append(e.cut(t));let l=ze(c.content,t-s-1,n,o==0?r-1:0,o==e.childCount-1?i-1:0,c);return l&&e.replaceChild(o,c.copy(l))}function Be(e,t,n){if(n.openStart>e.depth)throw new Le(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new Le(`Inconsistent open depths`);return Ve(e,t,n,0)}function Ve(e,t,n,r){let i=e.index(r),a=e.node(r);if(i==t.index(r)&&r<e.depth-n.openStart){let o=Ve(e,t,n,r+1);return a.copy(a.content.replaceChild(i,o))}if(!n.content.size)return Ke(a,Je(e,t,r));if(!n.openStart&&!n.openEnd&&e.depth==r&&t.depth==r){let r=e.parent,i=r.content;return Ke(r,i.cut(0,e.parentOffset).append(n.content).append(i.cut(t.parentOffset)))}{let{start:i,end:o}=Ye(n,e);return Ke(a,qe(e,i,o,t,r))}}function He(e,t){if(!t.type.compatibleContent(e.type))throw new Le(`Cannot join `+t.type.name+` onto `+e.type.name)}function Ue(e,t,n){let r=e.node(n);return He(r,t.node(n)),r}function We(e,t){let n=t.length-1;n>=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function Ge(e,t,n,r){let i=(t||e).node(n),a=0,o=t?t.index(n):i.childCount;e&&(a=e.index(n),e.depth>n?a++:e.textOffset&&(We(e.nodeAfter,r),a++));for(let e=a;e<o;e++)We(i.child(e),r);t&&t.depth==n&&t.textOffset&&We(t.nodeBefore,r)}function Ke(e,t){if(!e.type.validContent(t))throw new Le(`Invalid content for node `+e.type.name);return e.copy(t)}function qe(e,t,n,r,i){let a=e.depth>i&&Ue(e,t,i+1),o=r.depth>i&&Ue(n,r,i+1),s=[];return Ge(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(He(a,o),We(Ke(a,qe(e,t,n,r,i+1)),s)):(a&&We(Ke(a,Je(e,t,i+1)),s),Ge(t,n,i,s),o&&We(Ke(o,Je(n,r,i+1)),s)),Ge(r,null,i,s),new O(s)}function Je(e,t,n){let r=[];return Ge(null,e,n,r),e.depth>n&&We(Ke(Ue(e,t,n+1),Je(e,t,n+1)),r),Ge(t,null,n,r),new O(r)}function Ye(e,t){let n=t.depth-e.openStart,r=t.node(n).copy(e.content);for(let e=n-1;e>=0;e--)r=t.node(e).copy(O.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var Xe=class e{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position before the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position after the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[t*3],r=t==0?0:this.path[t*3-1]+1;for(let t=0;t<e;t++)r+=n.child(t).nodeSize;return r}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return k.none;if(this.textOffset)return e.child(t).marks;let n=e.maybeChild(t-1),r=e.maybeChild(t);if(!n){let e=n;n=r,r=e}let i=n.marks;for(var a=0;a<i.length;a++)i[a].type.spec.inclusive===!1&&(!r||!i[a].isInSet(r.marks))&&(i=i[a--].removeFromSet(i));return i}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let n=t.marks,r=e.parent.maybeChild(e.index());for(var i=0;i<n.length;i++)n[i].type.spec.inclusive===!1&&(!r||!n[i].isInSet(r.marks))&&(n=n[i--].removeFromSet(n));return n}sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(let n=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);n>=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new et(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e=``;for(let t=1;t<=this.depth;t++)e+=(e?`/`:``)+this.node(t).type.name+`_`+this.index(t-1);return e+`:`+this.parentOffset}static resolve(t,n){if(!(n>=0&&n<=t.content.size))throw RangeError(`Position `+n+` out of range`);let r=[],i=0,a=n;for(let e=t;;){let{index:t,offset:n}=e.content.findIndex(a),o=a-n;if(r.push(e,t,i+n),!o||(e=e.child(t),e.isText))break;a=o-1,i+=n+1}return new e(n,r,a)}static resolveCached(t,n){let r=$e.get(t);if(r)for(let e=0;e<r.elts.length;e++){let t=r.elts[e];if(t.pos==n)return t}else $e.set(t,r=new Ze);let i=r.elts[r.i]=e.resolve(t,n);return r.i=(r.i+1)%Qe,i}},Ze=class{constructor(){this.elts=[],this.i=0}},Qe=12,$e=new WeakMap,et=class{constructor(e,t,n){this.$from=e,this.$to=t,this.depth=n}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}},tt=Object.create(null),nt=class e{constructor(e,t,n,r=k.none){this.type=e,this.attrs=t,this.marks=r,this.content=n||O.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,t,n,r=0){this.content.nodesBetween(e,t,n,r,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,``)}textBetween(e,t,n,r){return this.content.textBetween(e,t,n,r)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,t,n){return this.type==e&&Ie(this.attrs,t||e.defaultAttrs||tt)&&k.sameSet(this.marks,n||k.none)}copy(t=null){return t==this.content?this:new e(this.type,this.attrs,t,this.marks)}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.content,t)}cut(e,t=this.content.size){return e==0&&t==this.content.size?this:this.copy(this.content.cut(e,t))}slice(e,t=this.content.size,n=!1){if(e==t)return A.empty;let r=this.resolve(e),i=this.resolve(t),a=n?0:r.sharedDepth(t),o=r.start(a);return new A(r.node(a).content.cut(r.pos-o,i.pos-o),r.depth-a,i.depth-a)}replace(e,t,n){return Be(this.resolve(e),this.resolve(t),n)}nodeAt(e){for(let t=this;;){let{index:n,offset:r}=t.content.findIndex(e);if(t=t.maybeChild(n),!t)return null;if(r==e||t.isText)return t;e-=r+1}}childAfter(e){let{index:t,offset:n}=this.content.findIndex(e);return{node:this.content.maybeChild(t),index:t,offset:n}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:t,offset:n}=this.content.findIndex(e);if(n<e)return{node:this.content.child(t),index:t,offset:n};let r=this.content.child(t-1);return{node:r,index:t-1,offset:n-r.nodeSize}}resolve(e){return Xe.resolveCached(this,e)}resolveNoCache(e){return Xe.resolve(this,e)}rangeHasMark(e,t,n){let r=!1;return t>e&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+=`(`+this.content.toStringInner()+`)`),it(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw Error(`Called contentMatchAt on a node with invalid content`);return t}canReplace(e,t,n=O.empty,r=0,i=n.childCount){let a=this.contentMatchAt(e).matchFragment(n,r,i),o=a&&a.matchFragment(this.content,t);if(!o||!o.validEnd)return!1;for(let e=r;e<i;e++)if(!this.type.allowsMarks(n.child(e).marks))return!1;return!0}canReplaceWith(e,t,n,r){if(r&&!this.type.allowsMarks(r))return!1;let i=this.contentMatchAt(e).matchType(n),a=i&&i.matchFragment(this.content,t);return a?a.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),at(this.type.attrs,this.attrs,`node`,this.type.name);let e=k.none;for(let t=0;t<this.marks.length;t++){let n=this.marks[t];at(n.type.attrs,n.attrs,`mark`,n.type.name),e=n.addToSet(e)}if(!k.sameSet(e,this.marks))throw RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(e=>e.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Node.fromJSON`);let n;if(t.marks){if(!Array.isArray(t.marks))throw RangeError(`Invalid mark data for Node.fromJSON`);n=t.marks.map(e.markFromJSON)}if(t.type==`text`){if(typeof t.text!=`string`)throw RangeError(`Invalid text node in JSON`);return e.text(t.text,n)}let r=O.fromJSON(e,t.content);return e.nodeType(t.type).create(t.attrs,r,n)}};nt.prototype.text=void 0;var rt=class e extends nt{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw RangeError(`Empty text nodes are not allowed`);this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):it(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.text,t)}withText(t){return t==this.text?this:new e(this.type,this.attrs,t,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function it(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}function at(e,t,n,r){for(let i in t)if(!(i in e))throw RangeError(`Unsupported attribute ${i} for ${n} of type ${r}`);for(let n in e)e[n].validate&&e[n].validate(t[n])}var ot=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new st(t,n);if(r.next==null)return e.empty;let i=ct(r);r.next&&r.err(`Unexpected trailing text`);let a=vt(ht(i));return yt(a,r),a}matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==e)return this.next[t].next;return null}matchFragment(e,t=0,n=e.childCount){let r=this;for(let i=t;r&&i<n;i++)r=r.matchType(e.child(i).type);return r}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this.next[e];if(!(t.isText||t.hasRequiredAttrs()))return t}return null}compatible(e){for(let t=0;t<this.next.length;t++)for(let n=0;n<e.next.length;n++)if(this.next[t].type==e.next[n].type)return!0;return!1}fillBefore(e,t=!1,n=0){let r=[this];function i(a,o){let s=a.matchFragment(e,n);if(s&&(!t||s.validEnd))return O.from(o.map(e=>e.createAndFill()));for(let e=0;e<a.next.length;e++){let{type:t,next:n}=a.next[e];if(!(t.isText||t.hasRequiredAttrs())&&r.indexOf(n)==-1){r.push(n);let e=i(n,o.concat(t));if(e)return e}}return null}return i(this,[])}findWrapping(e){for(let t=0;t<this.wrapCache.length;t+=2)if(this.wrapCache[t]==e)return this.wrapCache[t+1];let t=this.computeWrapping(e);return this.wrapCache.push(e,t),t}computeWrapping(e){let t=Object.create(null),n=[{match:this,type:null,via:null}];for(;n.length;){let r=n.shift(),i=r.match;if(i.matchType(e)){let e=[];for(let t=r;t.type;t=t.via)e.push(t.type);return e.reverse()}for(let e=0;e<i.next.length;e++){let{type:a,next:o}=i.next[e];!a.isLeaf&&!a.hasRequiredAttrs()&&!(a.name in t)&&(!r.type||o.validEnd)&&(n.push({match:a.contentMatch,type:a,via:r}),t[a.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(n){e.push(n);for(let r=0;r<n.next.length;r++)e.indexOf(n.next[r].next)==-1&&t(n.next[r].next)}return t(this),e.map((t,n)=>{let r=n+(t.validEnd?`*`:` `)+` `;for(let n=0;n<t.next.length;n++)r+=(n?`, `:``)+t.next[n].type.name+`->`+e.indexOf(t.next[n].next);return r}).join(`
|
|
2
2
|
`)}};ot.empty=new ot(!0);var st=class{constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==``&&this.tokens.pop(),this.tokens[0]==``&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw SyntaxError(e+` (in content expression '`+this.string+`')`)}};function ct(e){let t=[];do t.push(lt(e));while(e.eat(`|`));return t.length==1?t[0]:{type:`choice`,exprs:t}}function lt(e){let t=[];do t.push(ut(e));while(e.next&&e.next!=`)`&&e.next!=`|`);return t.length==1?t[0]:{type:`seq`,exprs:t}}function ut(e){let t=mt(e);for(;;)if(e.eat(`+`))t={type:`plus`,expr:t};else if(e.eat(`*`))t={type:`star`,expr:t};else if(e.eat(`?`))t={type:`opt`,expr:t};else if(e.eat(`{`))t=ft(e,t);else break;return t}function dt(e){/\D/.test(e.next)&&e.err(`Expected number, got '`+e.next+`'`);let t=Number(e.next);return e.pos++,t}function ft(e,t){let n=dt(e),r=n;return e.eat(`,`)&&(r=e.next==`}`?-1:dt(e)),e.eat(`}`)||e.err(`Unclosed braced range`),{type:`range`,min:n,max:r,expr:t}}function pt(e,t){let n=e.nodeTypes,r=n[t];if(r)return[r];let i=[];for(let e in n){let r=n[e];r.isInGroup(t)&&i.push(r)}return i.length==0&&e.err(`No node type or group '`+t+`' found`),i}function mt(e){if(e.eat(`(`)){let t=ct(e);return e.eat(`)`)||e.err(`Missing closing paren`),t}if(/\W/.test(e.next))e.err(`Unexpected token '`+e.next+`'`);else{let t=pt(e,e.next).map(t=>(e.inline==null?e.inline=t.isInline:e.inline!=t.isInline&&e.err(`Mixing inline and block content`),{type:`name`,value:t}));return e.pos++,t.length==1?t[0]:{type:`choice`,exprs:t}}}function ht(e){let t=[[]];return i(a(e,0),n()),t;function n(){return t.push([])-1}function r(e,n,r){let i={term:r,to:n};return t[e].push(i),i}function i(e,t){e.forEach(e=>e.to=t)}function a(e,t){if(e.type==`choice`)return e.exprs.reduce((e,n)=>e.concat(a(n,t)),[]);if(e.type==`seq`)for(let r=0;;r++){let o=a(e.exprs[r],t);if(r==e.exprs.length-1)return o;i(o,t=n())}else if(e.type==`star`){let o=n();return r(t,o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`plus`){let o=n();return i(a(e.expr,t),o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`opt`)return[r(t)].concat(a(e.expr,t));else if(e.type==`range`){let o=t;for(let t=0;t<e.min;t++){let t=n();i(a(e.expr,o),t),o=t}if(e.max==-1)i(a(e.expr,o),o);else for(let t=e.min;t<e.max;t++){let t=n();r(o,t),i(a(e.expr,o),t),o=t}return[r(o)]}else if(e.type==`name`)return[r(t,void 0,e.value)];else throw Error(`Unknown expr type`)}}function gt(e,t){return t-e}function _t(e,t){let n=[];return r(t),n.sort(gt);function r(t){let i=e[t];if(i.length==1&&!i[0].term)return r(i[0].to);n.push(t);for(let e=0;e<i.length;e++){let{term:t,to:a}=i[e];!t&&n.indexOf(a)==-1&&r(a)}}}function vt(e){let t=Object.create(null);return n(_t(e,0));function n(r){let i=[];r.forEach(t=>{e[t].forEach(({term:t,to:n})=>{if(!t)return;let r;for(let e=0;e<i.length;e++)i[e][0]==t&&(r=i[e][1]);_t(e,n).forEach(e=>{r||i.push([t,r=[]]),r.indexOf(e)==-1&&r.push(e)})})});let a=t[r.join(`,`)]=new ot(r.indexOf(e.length-1)>-1);for(let e=0;e<i.length;e++){let r=i[e][1].sort(gt);a.next.push({type:i[e][0],next:t[r.join(`,`)]||n(r)})}return a}}function yt(e,t){for(let n=0,r=[e];n<r.length;n++){let e=r[n],i=!e.validEnd,a=[];for(let t=0;t<e.next.length;t++){let{type:n,next:o}=e.next[t];a.push(n.name),i&&!(n.isText||n.hasRequiredAttrs())&&(i=!1),r.indexOf(o)==-1&&r.push(o)}i&&t.err(`Only non-generatable nodes (`+a.join(`, `)+`) in a required position (see https://prosemirror.net/docs/guide/#generatable)`)}}function bt(e){let t=Object.create(null);for(let n in e){let r=e[n];if(!r.hasDefault)return null;t[n]=r.default}return t}function xt(e,t){let n=Object.create(null);for(let r in e){let i=e[r],a=t&&t[r];if(a===void 0){if(i.hasDefault)a=i.default;else throw RangeError(`No value supplied for attribute `+r)}else i.validate&&i.validate(a);n[r]=a}return n}function St(e,t){let n=Object.create(null);if(t)for(let r in t)n[r]=new Tt(e,r,t[r]);return n}var Ct=class e{constructor(e,t,n){this.name=e,this.schema=t,this.spec=n,this.markSet=null,this.groups=n.group?n.group.split(` `):[],this.attrs=St(e,n.attrs),this.defaultAttrs=bt(this.attrs),this.contentMatch=null,this.inlineContent=null,this.isBlock=!(n.inline||e==`text`),this.isText=e==`text`}get isInline(){return!this.isBlock}get isTextblock(){return this.isBlock&&this.inlineContent}get isLeaf(){return this.contentMatch==ot.empty}get isAtom(){return this.isLeaf||!!this.spec.atom}isInGroup(e){return this.groups.indexOf(e)>-1}get whitespace(){return this.spec.whitespace||(this.spec.code?`pre`:`normal`)}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:xt(this.attrs,e)}create(e=null,t,n){if(this.isText)throw Error(`NodeType.create can't construct text nodes`);return new nt(this,this.computeAttrs(e),O.from(t),k.setFrom(n))}createChecked(e=null,t,n){return t=O.from(t),this.checkContent(t),new nt(this,this.computeAttrs(e),t,k.setFrom(n))}createAndFill(e=null,t,n){if(e=this.computeAttrs(e),t=O.from(t),t.size){let e=this.contentMatch.fillBefore(t);if(!e)return null;t=e.append(t)}let r=this.contentMatch.matchFragment(t),i=r&&r.fillBefore(O.empty,!0);return i?new nt(this,e,t.append(i),k.setFrom(n)):null}validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.validEnd)return!1;for(let t=0;t<e.childCount;t++)if(!this.allowsMarks(e.child(t).marks))return!1;return!0}checkContent(e){if(!this.validContent(e))throw RangeError(`Invalid content for node ${this.name}: ${e.toString().slice(0,50)}`)}checkAttrs(e){}allowsMarkType(e){return this.markSet==null||this.markSet.indexOf(e)>-1}allowsMarks(e){if(this.markSet==null)return!0;for(let t=0;t<e.length;t++)if(!this.allowsMarkType(e[t].type))return!1;return!0}allowedMarks(e){if(this.markSet==null)return e;let t;for(let n=0;n<e.length;n++)this.allowsMarkType(e[n].type)?t&&t.push(e[n]):t||=e.slice(0,n);return t?t.length?t:k.none:e}static compile(t,n){let r=Object.create(null);t.forEach((t,i)=>r[t]=new e(t,n,i));let i=n.spec.topNode||`doc`;if(!r[i])throw RangeError(`Schema is missing its top node type ('`+i+`')`);if(!r.text)throw RangeError(`Every schema needs a 'text' type`);for(let e in r.text.attrs)throw RangeError(`The text node type should not have attributes`);return r}};function wt(e,t,n){let r=n.split(`|`);return n=>{let i=n===null?`null`:typeof n;if(r.indexOf(i)<0)throw RangeError(`Expected value of type ${r} for attribute ${t} on type ${e}, got ${i}`)}}var Tt=class{constructor(e,t,n){this.hasDefault=Object.prototype.hasOwnProperty.call(n,`default`),this.default=n.default,this.validate=typeof n.validate==`string`?wt(e,t,n.validate):n.validate}get isRequired(){return!this.hasDefault}},Et=class e{constructor(e,t,n,r){this.name=e,this.rank=t,this.schema=n,this.spec=r,this.attrs=St(e,r.attrs),this.excluded=null;let i=bt(this.attrs);this.instance=i?new k(this,i):null}create(e=null){return!e&&this.instance?this.instance:new k(this,xt(this.attrs,e))}static compile(t,n){let r=Object.create(null),i=0;return t.forEach((t,a)=>r[t]=new e(t,i++,n,a)),r}removeFromSet(e){for(var t=0;t<e.length;t++)e[t].type==this&&(e=e.slice(0,t).concat(e.slice(t+1)),t--);return e}isInSet(e){for(let t=0;t<e.length;t++)if(e[t].type==this)return e[t]}excludes(e){return this.excluded.indexOf(e)>-1}},Dt=class{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let t=this.spec={};for(let n in e)t[n]=e[n];t.nodes=ke.from(e.nodes),t.marks=ke.from(e.marks||{}),this.nodes=Ct.compile(this.spec.nodes,this),this.marks=Et.compile(this.spec.marks,this);let n=Object.create(null);for(let e in this.nodes){if(e in this.marks)throw RangeError(e+` can not be both a node and a mark`);let t=this.nodes[e],r=t.spec.content||``,i=t.spec.marks;if(t.contentMatch=n[r]||(n[r]=ot.parse(r,this.nodes)),t.inlineContent=t.contentMatch.inlineContent,t.spec.linebreakReplacement){if(this.linebreakReplacement)throw RangeError(`Multiple linebreak nodes defined`);if(!t.isInline||!t.isLeaf)throw RangeError(`Linebreak replacement nodes must be inline leaf nodes`);this.linebreakReplacement=t}t.markSet=i==`_`?null:i?Ot(this,i.split(` `)):i==``||!t.inlineContent?[]:null}for(let e in this.marks){let t=this.marks[e],n=t.spec.excludes;t.excluded=n==null?[t]:n==``?[]:Ot(this,n.split(` `))}this.nodeFromJSON=e=>nt.fromJSON(this,e),this.markFromJSON=e=>k.fromJSON(this,e),this.topNodeType=this.nodes[this.spec.topNode||`doc`],this.cached.wrappings=Object.create(null)}node(e,t=null,n,r){if(typeof e==`string`)e=this.nodeType(e);else if(!(e instanceof Ct))throw RangeError(`Invalid node type: `+e);else if(e.schema!=this)throw RangeError(`Node type from different schema used (`+e.name+`)`);return e.createChecked(t,n,r)}text(e,t){let n=this.nodes.text;return new rt(n,n.defaultAttrs,e,k.setFrom(t))}mark(e,t){return typeof e==`string`&&(e=this.marks[e]),e.create(t)}nodeType(e){let t=this.nodes[e];if(!t)throw RangeError(`Unknown node type: `+e);return t}};function Ot(e,t){let n=[];for(let r=0;r<t.length;r++){let i=t[r],a=e.marks[i],o=a;if(a)n.push(a);else for(let t in e.marks){let r=e.marks[t];(i==`_`||r.spec.group&&r.spec.group.split(` `).indexOf(i)>-1)&&n.push(o=r)}if(!o)throw SyntaxError(`Unknown mark type: '`+t[r]+`'`)}return n}function kt(e){return e.tag!=null}function At(e){return e.style!=null}var jt=class e{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let n=this.matchedStyles=[];t.forEach(e=>{if(kt(e))this.tags.push(e);else if(At(e)){let t=/[^=]*/.exec(e.style)[0];n.indexOf(t)<0&&n.push(t),this.styles.push(e)}}),this.normalizeLists=!this.tags.some(t=>{if(!/^(ul|ol)\b/.test(t.tag)||!t.node)return!1;let n=e.nodes[t.node];return n.contentMatch.matchType(n)})}parse(e,t={}){let n=new Bt(this,t,!1);return n.addAll(e,k.none,t.from,t.to),n.finish()}parseSlice(e,t={}){let n=new Bt(this,t,!0);return n.addAll(e,k.none,t.from,t.to),A.maxOpen(n.finish())}matchTag(e,t,n){for(let r=n?this.tags.indexOf(n)+1:0;r<this.tags.length;r++){let n=this.tags[r];if(Ht(e,n.tag)&&(n.namespace===void 0||e.namespaceURI==n.namespace)&&(!n.context||t.matchesContext(n.context))){if(n.getAttrs){let t=n.getAttrs(e);if(t===!1)continue;n.attrs=t||void 0}return n}}}matchStyle(e,t,n,r){for(let i=r?this.styles.indexOf(r)+1:0;i<this.styles.length;i++){let r=this.styles[i],a=r.style;if(!(a.indexOf(e)!=0||r.context&&!n.matchesContext(r.context)||a.length>e.length&&(a.charCodeAt(e.length)!=61||a.slice(e.length+1)!=t))){if(r.getAttrs){let e=r.getAttrs(t);if(e===!1)continue;r.attrs=e||void 0}return r}}}static schemaRules(e){let t=[];function n(e){let n=e.priority==null?50:e.priority,r=0;for(;r<t.length;r++){let e=t[r];if((e.priority==null?50:e.priority)<n)break}t.splice(r,0,e)}for(let t in e.marks){let r=e.marks[t].spec.parseDOM;r&&r.forEach(e=>{n(e=Ut(e)),e.mark||e.ignore||e.clearMark||(e.mark=t)})}for(let t in e.nodes){let r=e.nodes[t].spec.parseDOM;r&&r.forEach(e=>{n(e=Ut(e)),e.node||e.ignore||e.mark||(e.node=t)})}return t}static fromSchema(t){return t.cached.domParser||(t.cached.domParser=new e(t,e.schemaRules(t)))}},Mt={address:!0,article:!0,aside:!0,blockquote:!0,body:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},Nt={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},Pt={ol:!0,ul:!0},Ft=1,It=2,Lt=4;function Rt(e,t,n){return t==null?e&&e.whitespace==`pre`?3:n&-5:(t?Ft:0)|(t===`full`?It:0)}var zt=class{constructor(e,t,n,r,i,a){this.type=e,this.attrs=t,this.marks=n,this.solid=r,this.options=a,this.content=[],this.activeMarks=k.none,this.match=i||(a&Lt?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(O.from(e));if(t)this.match=this.type.contentMatch.matchFragment(t);else{let t=this.type.contentMatch,n;return(n=t.findWrapping(e.type))?(this.match=t,n):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&Ft)){let e=this.content[this.content.length-1],t;if(e&&e.isText&&(t=/[ \t\r\n\u000c]+$/.exec(e.text))){let n=e;e.text.length==t[0].length?this.content.pop():this.content[this.content.length-1]=n.withText(n.text.slice(0,n.text.length-t[0].length))}}let t=O.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(O.empty,!0))),this.type?this.type.create(this.attrs,t,this.marks):t}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!Mt.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}},Bt=class{constructor(e,t,n){this.parser=e,this.options=t,this.isOpen=n,this.open=0,this.localPreserveWS=!1;let r=t.topNode,i,a=Rt(null,t.preserveWhitespace,0)|(n?Lt:0);i=r?new zt(r.type,r.attrs,k.none,!0,t.topMatch||r.type.contentMatch,a):n?new zt(null,null,k.none,!0,null,a):new zt(e.schema.topNodeType,null,k.none,!0,null,a),this.nodes=[i],this.find=t.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,t){e.nodeType==3?this.addTextNode(e,t):e.nodeType==1&&this.addElement(e,t)}addTextNode(e,t){let n=e.nodeValue,r=this.top,i=r.options&It?`full`:this.localPreserveWS||(r.options&Ft)>0,{schema:a}=this.parser;if(i===`full`||r.inlineContext(e)||/[^ \t\r\n\u000c]/.test(n)){if(!i){if(n=n.replace(/[ \t\r\n\u000c]+/g,` `),/^[ \t\r\n\u000c]/.test(n)&&this.open==this.nodes.length-1){let t=r.content[r.content.length-1],i=e.previousSibling;(!t||i&&i.nodeName==`BR`||t.isText&&/[ \t\r\n\u000c]$/.test(t.text))&&(n=n.slice(1))}}else if(i===`full`)n=n.replace(/\r\n?/g,`
|
|
3
3
|
`);else if(a.linebreakReplacement&&/[\r\n]/.test(n)&&this.top.findWrapping(a.linebreakReplacement.create())){let e=n.split(/\r?\n|\r/);for(let n=0;n<e.length;n++)n&&this.insertNode(a.linebreakReplacement.create(),t,!0),e[n]&&this.insertNode(a.text(e[n]),t,!/\S/.test(e[n]));n=``}else n=n.replace(/\r?\n|\r/g,` `);n&&this.insertNode(a.text(n),t,!/\S/.test(n)),this.findInText(e)}else this.findInside(e)}addElement(e,t,n){let r=this.localPreserveWS,i=this.top;(e.tagName==`PRE`||/pre/.test(e.style&&e.style.whiteSpace))&&(this.localPreserveWS=!0);let a=e.nodeName.toLowerCase(),o;Pt.hasOwnProperty(a)&&this.parser.normalizeLists&&Vt(e);let s=this.options.ruleFromNode&&this.options.ruleFromNode(e)||(o=this.parser.matchTag(e,this,n));out:if(s?s.ignore:Nt.hasOwnProperty(a))this.findInside(e),this.ignoreFallback(e,t);else if(!s||s.skip||s.closeParent){s&&s.closeParent?this.open=Math.max(0,this.open-1):s&&s.skip.nodeType&&(e=s.skip);let n,r=this.needsBlock;if(Mt.hasOwnProperty(a))i.content.length&&i.content[0].isInline&&this.open&&(this.open--,i=this.top),n=!0,i.type||(this.needsBlock=!0);else if(!e.firstChild){this.leafFallback(e,t);break out}let o=s&&s.skip?t:this.readStyles(e,t);o&&this.addAll(e,o),n&&this.sync(i),this.needsBlock=r}else{let n=this.readStyles(e,t);n&&this.addElementByRule(e,s,n,s.consuming===!1?o:void 0)}this.localPreserveWS=r}leafFallback(e,t){e.nodeName==`BR`&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(e.ownerDocument.createTextNode(`
|
|
4
4
|
`),t)}ignoreFallback(e,t){e.nodeName==`BR`&&(!this.top.type||!this.top.type.inlineContent)&&this.findPlace(this.parser.schema.text(`-`),t,!0)}readStyles(e,t){let n=e.style;if(n&&n.length)for(let e=0;e<this.parser.matchedStyles.length;e++){let r=this.parser.matchedStyles[e],i=n.getPropertyValue(r);if(i)for(let e;;){let n=this.parser.matchStyle(r,i,this,e);if(!n)break;if(n.ignore)return null;if(t=n.clearMark?t.filter(e=>!n.clearMark(e)):t.concat(this.parser.schema.marks[n.mark].create(n.attrs)),n.consuming===!1)e=n;else break}}return t}addElementByRule(e,t,n,r){let i,a;if(t.node){if(a=this.parser.schema.nodes[t.node],a.isLeaf)this.insertNode(a.create(t.attrs),n,e.nodeName==`BR`)||this.leafFallback(e,n);else{let e=this.enter(a,t.attrs||null,n,t.preserveWhitespace);e&&(i=!0,n=e)}}else{let e=this.parser.schema.marks[t.mark];n=n.concat(e.create(t.attrs))}let o=this.top;if(a&&a.isLeaf)this.findInside(e);else if(r)this.addElement(e,n,r);else if(t.getContent)this.findInside(e),t.getContent(e,this.parser.schema).forEach(e=>this.insertNode(e,n,!1));else{let r=e;typeof t.contentElement==`string`?r=e.querySelector(t.contentElement):typeof t.contentElement==`function`?r=t.contentElement(e):t.contentElement&&(r=t.contentElement),this.findAround(e,r,!0),this.addAll(r,n),this.findAround(e,r,!1)}i&&this.sync(o)&&this.open--}addAll(e,t,n,r){let i=n||0;for(let a=n?e.childNodes[n]:e.firstChild,o=r==null?null:e.childNodes[r];a!=o;a=a.nextSibling,++i)this.findAtPoint(e,i),this.addDOM(a,t);this.findAtPoint(e,i)}findPlace(e,t,n){let r,i;for(let t=this.open,a=0;t>=0;t--){let o=this.nodes[t],s=o.findWrapping(e);if(s&&(!r||r.length>s.length+a)&&(r=s,i=o,!s.length))break;if(o.solid){if(n)break;a+=2}}if(!r)return null;this.sync(i);for(let e=0;e<r.length;e++)t=this.enterInner(r[e],null,t,!1);return t}insertNode(e,t,n){if(e.isInline&&this.needsBlock&&!this.top.type){let e=this.textblockFromContext();e&&(t=this.enterInner(e,null,t))}let r=this.findPlace(e,t,n);if(r){this.closeExtra();let t=this.top;t.match&&=t.match.matchType(e.type);let n=k.none;for(let i of r.concat(e.marks))(t.type?t.type.allowsMarkType(i.type):Wt(i.type,e.type))&&(n=i.addToSet(n));return t.content.push(e.mark(n)),!0}return!1}enter(e,t,n,r){let i=this.findPlace(e.create(t),n,!1);return i&&=this.enterInner(e,t,n,!0,r),i}enterInner(e,t,n,r=!1,i){this.closeExtra();let a=this.top;a.match=a.match&&a.match.matchType(e);let o=Rt(e,i,a.options);a.options&Lt&&a.content.length==0&&(o|=Lt);let s=k.none;return n=n.filter(t=>!(a.type?a.type.allowsMarkType(t.type):Wt(t.type,e))||(s=t.addToSet(s),!1)),this.nodes.push(new zt(e,t,s,r,null,o)),this.open++,n}closeExtra(e=!1){let t=this.nodes.length-1;if(t>this.open){for(;t>this.open;t--)this.nodes[t-1].content.push(this.nodes[t].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let t=this.open;t>=0;t--)if(this.nodes[t]==e)return this.open=t,!0;else this.localPreserveWS&&(this.nodes[t].options|=Ft);return!1}get currentPos(){this.closeExtra();let e=0;for(let t=this.open;t>=0;t--){let n=this.nodes[t].content;for(let t=n.length-1;t>=0;t--)e+=n[t].nodeSize;t&&e++}return e}findAtPoint(e,t){if(this.find)for(let n=0;n<this.find.length;n++)this.find[n].node==e&&this.find[n].offset==t&&(this.find[n].pos=this.currentPos)}findInside(e){if(this.find)for(let t=0;t<this.find.length;t++)this.find[t].pos==null&&e.nodeType==1&&e.contains(this.find[t].node)&&(this.find[t].pos=this.currentPos)}findAround(e,t,n){if(e!=t&&this.find)for(let r=0;r<this.find.length;r++)this.find[r].pos==null&&e.nodeType==1&&e.contains(this.find[r].node)&&t.compareDocumentPosition(this.find[r].node)&(n?2:4)&&(this.find[r].pos=this.currentPos)}findInText(e){if(this.find)for(let t=0;t<this.find.length;t++)this.find[t].node==e&&(this.find[t].pos=this.currentPos-(e.nodeValue.length-this.find[t].offset))}matchesContext(e){if(e.indexOf(`|`)>-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let t=e.split(`/`),n=this.options.context,r=!this.isOpen&&(!n||n.parent.type==this.nodes[0].type),i=-(n?n.depth+1:0)+ +!r,a=(e,o)=>{for(;e>=0;e--){let s=t[e];if(s==``){if(e==t.length-1||e==0)continue;for(;o>=i;o--)if(a(e-1,o))return!0;return!1}{let e=o>0||o==0&&r?this.nodes[o].type:n&&o>=i?n.node(o-i).type:null;if(!e||e.name!=s&&!e.isInGroup(s))return!1;o--}}return!0};return a(t.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let t=e.depth;t>=0;t--){let n=e.node(t).contentMatchAt(e.indexAfter(t)).defaultType;if(n&&n.isTextblock&&n.defaultAttrs)return n}for(let e in this.parser.schema.nodes){let t=this.parser.schema.nodes[e];if(t.isTextblock&&t.defaultAttrs)return t}}};function Vt(e){for(let t=e.firstChild,n=null;t;t=t.nextSibling){let e=t.nodeType==1?t.nodeName.toLowerCase():null;e&&Pt.hasOwnProperty(e)&&n?(n.appendChild(t),t=n):e==`li`?n=t:e&&(n=null)}}function Ht(e,t){return(e.matches||e.msMatchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector).call(e,t)}function Ut(e){let t={};for(let n in e)t[n]=e[n];return t}function Wt(e,t){let n=t.schema.nodes;for(let r in n){let i=n[r];if(!i.allowsMarkType(e))continue;let a=[],o=e=>{a.push(e);for(let n=0;n<e.edgeCount;n++){let{type:r,next:i}=e.edge(n);if(r==t||a.indexOf(i)<0&&o(i))return!0}};if(o(i.contentMatch))return!0}}var Gt=class e{constructor(e,t){this.nodes=e,this.marks=t}serializeFragment(e,t={},n){n||=qt(t).createDocumentFragment();let r=n,i=[];return e.forEach(e=>{if(i.length||e.marks.length){let n=0,a=0;for(;n<i.length&&a<e.marks.length;){let t=e.marks[a];if(!this.marks[t.type.name])a++;else{if(!t.eq(i[n][0])||t.type.spec.spanning===!1)break;n++,a++}}for(;n<i.length;)r=i.pop()[1];for(;a<e.marks.length;){let n=e.marks[a++],o=this.serializeMark(n,e.isInline,t);o&&(i.push([n,r]),r.appendChild(o.dom),r=o.contentDOM||o.dom)}}r.appendChild(this.serializeNodeInner(e,t))}),n}serializeNodeInner(e,t){if(e.isText)return qt(t).createTextNode(e.text);let{dom:n,contentDOM:r}=Zt(qt(t),this.nodes[e.type.name](e),null,e.attrs);if(r){if(e.isLeaf)throw RangeError(`Content hole not allowed in a leaf node spec`);this.serializeFragment(e.content,t,r)}return n}serializeNode(e,t={}){let n=this.serializeNodeInner(e,t);for(let r=e.marks.length-1;r>=0;r--){let i=this.serializeMark(e.marks[r],e.isInline,t);i&&((i.contentDOM||i.dom).appendChild(n),n=i.dom)}return n}serializeMark(e,t,n={}){let r=this.marks[e.type.name];return r&&Zt(qt(n),r(e,t),null,e.attrs)}static renderSpec(e,t,n=null,r){return typeof t==`string`?{dom:e.createTextNode(t)}:Zt(e,t,n,r)}static fromSchema(t){return t.cached.domSerializer||(t.cached.domSerializer=new e(this.nodesFromSchema(t),this.marksFromSchema(t)))}static nodesFromSchema(e){let t=Kt(e.nodes);return t.text||=e=>e.text,t}static marksFromSchema(e){return Kt(e.marks)}};function Kt(e){let t={};for(let n in e){let r=e[n].spec.toDOM;r&&(t[n]=r)}return t}function qt(e){return e.document||window.document}var Jt=new WeakMap;function Yt(e){let t=Jt.get(e);return t===void 0&&Jt.set(e,t=Xt(e)),t}function Xt(e){let t=null;function n(e){if(e&&typeof e==`object`){if(Array.isArray(e)){if(typeof e[0]==`string`)t||=[],t.push(e);else for(let t=0;t<e.length;t++)n(e[t])}else for(let t in e)n(e[t])}}return n(e),t}function Zt(e,t,n,r){if(t.nodeType==1)return{dom:t};if(t.dom&&t.dom.nodeType==1)return t;let i=t[0],a;if(typeof i!=`string`)throw RangeError(`Invalid array passed to renderSpec`);if(r&&(a=Yt(r))&&a.indexOf(t)>-1)throw RangeError(`Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.`);let o=i.indexOf(` `);o>0&&(n=i.slice(0,o),i=i.slice(o+1));let s,c=n?e.createElementNS(n,i):e.createElement(i),l=t[1],u=1;if(l&&typeof l==`object`&&l.nodeType==null&&!Array.isArray(l)){u=2;for(let e in l)if(l[e]!=null){let t=e.indexOf(` `);t>0?c.setAttributeNS(e.slice(0,t),e.slice(t+1),l[e]):e==`style`&&c.style?c.style.cssText=l[e]:c.setAttribute(e,l[e])}}for(let i=u;i<t.length;i++){let a=t[i];if(a===0){if(i<t.length-1||i>u)throw RangeError(`Content hole must be the only child of its parent node`);return{dom:c,contentDOM:c}}if(typeof a==`string`)c.appendChild(e.createTextNode(a));else{let{dom:t,contentDOM:i}=Zt(e,a,n,r);if(c.appendChild(t),i){if(s)throw RangeError(`Multiple content holes`);s=i}}}return{dom:c,contentDOM:s}}var Qt=65535,$t=2**16;function en(e,t){return e+t*$t}function tn(e){return e&Qt}function nn(e){return(e-(e&Qt))/$t}var rn=1,an=2,on=4,sn=8,cn=class{constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}get deleted(){return(this.delInfo&sn)>0}get deletedBefore(){return(this.delInfo&5)>0}get deletedAfter(){return(this.delInfo&6)>0}get deletedAcross(){return(this.delInfo&on)>0}},ln=class e{constructor(t,n=!1){if(this.ranges=t,this.inverted=n,!t.length&&e.empty)return e.empty}recover(e){let t=0,n=tn(e);if(!this.inverted)for(let e=0;e<n;e++)t+=this.ranges[e*3+2]-this.ranges[e*3+1];return this.ranges[n*3]+t+nn(e)}mapResult(e,t=1){return this._map(e,t,!1)}map(e,t=1){return this._map(e,t,!0)}_map(e,t,n){let r=0,i=this.inverted?2:1,a=this.inverted?1:2;for(let o=0;o<this.ranges.length;o+=3){let s=this.ranges[o]-(this.inverted?r:0);if(s>e)break;let c=this.ranges[o+i],l=this.ranges[o+a],u=s+c;if(e<=u){let i=c?e==s?-1:e==u?1:t:t,a=s+r+(i<0?0:l);if(n)return a;let d=e==(t<0?s:u)?null:en(o/3,e-s),f=0;return c&&(f|=e==s?an:e==u?rn:on,(t<0?e!=s:e!=u)&&(f|=sn)),new cn(a,f,d)}r+=l-c}return n?e+r:new cn(e+r,0,null)}touches(e,t){let n=0,r=tn(t),i=this.inverted?2:1,a=this.inverted?1:2;for(let t=0;t<this.ranges.length;t+=3){let o=this.ranges[t]-(this.inverted?n:0);if(o>e)break;let s=this.ranges[t+i];if(e<=o+s&&t==r*3)return!0;n+=this.ranges[t+a]-s}return!1}forEach(e){let t=this.inverted?2:1,n=this.inverted?1:2;for(let r=0,i=0;r<this.ranges.length;r+=3){let a=this.ranges[r],o=a-(this.inverted?i:0),s=a+(this.inverted?0:i),c=this.ranges[r+t],l=this.ranges[r+n];e(o,o+c,s,s+l),i+=l-c}}invert(){return new e(this.ranges,!this.inverted)}toString(){return(this.inverted?`-`:``)+JSON.stringify(this.ranges)}static offset(t){return t==0?e.empty:new e(t<0?[0,-t,0]:[0,0,t])}};ln.empty=new ln([]);var un=class e{constructor(e,t,n=0,r=e?e.length:0){this.mirror=t,this.from=n,this.to=r,this._maps=e||[],this.ownData=!(e||t)}get maps(){return this._maps}slice(t=0,n=this.maps.length){return new e(this._maps,this.mirror,t,n)}appendMap(e,t){this.ownData||=(this._maps=this._maps.slice(),this.mirror=this.mirror&&this.mirror.slice(),!0),this.to=this._maps.push(e),t!=null&&this.setMirror(this._maps.length-1,t)}appendMapping(e){for(let t=0,n=this._maps.length;t<e._maps.length;t++){let r=e.getMirror(t);this.appendMap(e._maps[t],r!=null&&r<t?n+r:void 0)}}getMirror(e){if(this.mirror){for(let t=0;t<this.mirror.length;t++)if(this.mirror[t]==e)return this.mirror[t+(t%2?-1:1)]}}setMirror(e,t){this.mirror||=[],this.mirror.push(e,t)}appendMappingInverted(e){for(let t=e.maps.length-1,n=this._maps.length+e._maps.length;t>=0;t--){let r=e.getMirror(t);this.appendMap(e._maps[t].invert(),r!=null&&r>t?n-r-1:void 0)}}invert(){let t=new e;return t.appendMappingInverted(this),t}map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let n=this.from;n<this.to;n++)e=this._maps[n].map(e,t);return e}mapResult(e,t=1){return this._map(e,t,!1)}_map(e,t,n){let r=0;for(let n=this.from;n<this.to;n++){let i=this._maps[n].mapResult(e,t);if(i.recover!=null){let t=this.getMirror(n);if(t!=null&&t>n&&t<this.to){n=t,e=this._maps[t].recover(i.recover);continue}}r|=i.delInfo,e=i.pos}return n?e:new cn(e,r,null)}},dn=Object.create(null),fn=class{getMap(){return ln.empty}merge(e){return null}static fromJSON(e,t){if(!t||!t.stepType)throw RangeError(`Invalid input for Step.fromJSON`);let n=dn[t.stepType];if(!n)throw RangeError(`No step type ${t.stepType} defined`);return n.fromJSON(e,t)}static jsonID(e,t){if(e in dn)throw RangeError(`Duplicate use of step JSON ID `+e);return dn[e]=t,t.prototype.jsonID=e,t}},pn=class e{constructor(e,t){this.doc=e,this.failed=t}static ok(t){return new e(t,null)}static fail(t){return new e(null,t)}static fromReplace(t,n,r,i){try{return e.ok(t.replace(n,r,i))}catch(t){if(t instanceof Le)return e.fail(t.message);throw t}}};function mn(e,t,n){let r=[];for(let i=0;i<e.childCount;i++){let a=e.child(i);a.content.size&&(a=a.copy(mn(a.content,t,a))),a.isInline&&(a=t(a,n,i)),r.push(a)}return O.fromArray(r)}var hn=class e extends fn{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=e.resolve(this.from),r=n.node(n.sharedDepth(this.to)),i=new A(mn(t.content,(e,t)=>!e.isAtom||!t.type.allowsMarkType(this.mark.type)?e:e.mark(this.mark.addToSet(e.marks)),r),t.openStart,t.openEnd);return pn.fromReplace(e,this.from,this.to,i)}invert(){return new gn(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`addMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for AddMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};fn.jsonID(`addMark`,hn);var gn=class e extends fn{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=new A(mn(t.content,e=>e.mark(this.mark.removeFromSet(e.marks)),e),t.openStart,t.openEnd);return pn.fromReplace(e,this.from,this.to,n)}invert(){return new hn(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`removeMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for RemoveMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};fn.jsonID(`removeMark`,gn);var _n=class e extends fn{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return pn.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return pn.fromReplace(e,this.pos,this.pos+1,new A(O.from(n),0,+!t.isLeaf))}invert(t){let n=t.nodeAt(this.pos);if(n){let t=this.mark.addToSet(n.marks);if(t.length==n.marks.length){for(let r=0;r<n.marks.length;r++)if(!n.marks[r].isInSet(t))return new e(this.pos,n.marks[r]);return new e(this.pos,this.mark)}}return new vn(this.pos,this.mark)}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new e(n.pos,this.mark)}toJSON(){return{stepType:`addNodeMark`,pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for AddNodeMarkStep.fromJSON`);return new e(n.pos,t.markFromJSON(n.mark))}};fn.jsonID(`addNodeMark`,_n);var vn=class e extends fn{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return pn.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.removeFromSet(t.marks));return pn.fromReplace(e,this.pos,this.pos+1,new A(O.from(n),0,+!t.isLeaf))}invert(e){let t=e.nodeAt(this.pos);return!t||!this.mark.isInSet(t.marks)?this:new _n(this.pos,this.mark)}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new e(n.pos,this.mark)}toJSON(){return{stepType:`removeNodeMark`,pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for RemoveNodeMarkStep.fromJSON`);return new e(n.pos,t.markFromJSON(n.mark))}};fn.jsonID(`removeNodeMark`,vn);var yn=class e extends fn{constructor(e,t,n,r=!1){super(),this.from=e,this.to=t,this.slice=n,this.structure=r}apply(e){return this.structure&&xn(e,this.from,this.to)?pn.fail(`Structure replace would overwrite content`):pn.fromReplace(e,this.from,this.to,this.slice)}getMap(){return new ln([this.from,this.to-this.from,this.slice.size])}invert(t){return new e(this.from,this.from+this.slice.size,t.slice(this.from,this.to))}map(t){let n=t.mapResult(this.to,-1),r=this.from==this.to&&e.MAP_BIAS<0?n:t.mapResult(this.from,1);return r.deletedAcross&&n.deletedAcross?null:new e(r.pos,Math.max(r.pos,n.pos),this.slice,this.structure)}merge(t){if(!(t instanceof e)||t.structure||this.structure)return null;if(this.from+this.slice.size==t.from&&!this.slice.openEnd&&!t.slice.openStart){let n=this.slice.size+t.slice.size==0?A.empty:new A(this.slice.content.append(t.slice.content),this.slice.openStart,t.slice.openEnd);return new e(this.from,this.to+(t.to-t.from),n,this.structure)}if(t.to==this.from&&!this.slice.openStart&&!t.slice.openEnd){let n=this.slice.size+t.slice.size==0?A.empty:new A(t.slice.content.append(this.slice.content),t.slice.openStart,this.slice.openEnd);return new e(t.from,this.to,n,this.structure)}return null}toJSON(){let e={stepType:`replace`,from:this.from,to:this.to};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for ReplaceStep.fromJSON`);return new e(n.from,n.to,A.fromJSON(t,n.slice),!!n.structure)}};yn.MAP_BIAS=1,fn.jsonID(`replace`,yn);var bn=class e extends fn{constructor(e,t,n,r,i,a,o=!1){super(),this.from=e,this.to=t,this.gapFrom=n,this.gapTo=r,this.slice=i,this.insert=a,this.structure=o}apply(e){if(this.structure&&(xn(e,this.from,this.gapFrom)||xn(e,this.gapTo,this.to)))return pn.fail(`Structure gap-replace would overwrite content`);let t=e.slice(this.gapFrom,this.gapTo);if(t.openStart||t.openEnd)return pn.fail(`Gap is not a flat range`);let n=this.slice.insertAt(this.insert,t.content);return n?pn.fromReplace(e,this.from,this.to,n):pn.fail(`Content does not fit in gap`)}getMap(){return new ln([this.from,this.gapFrom-this.from,this.insert,this.gapTo,this.to-this.gapTo,this.slice.size-this.insert])}invert(t){let n=this.gapTo-this.gapFrom;return new e(this.from,this.from+this.slice.size+n,this.from+this.insert,this.from+this.insert+n,t.slice(this.from,this.to).removeBetween(this.gapFrom-this.from,this.gapTo-this.from),this.gapFrom-this.from,this.structure)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1),i=this.from==this.gapFrom?n.pos:t.map(this.gapFrom,-1),a=this.to==this.gapTo?r.pos:t.map(this.gapTo,1);return n.deletedAcross&&r.deletedAcross||i<n.pos||a>r.pos?null:new e(n.pos,r.pos,i,a,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:`replaceAround`,from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`||typeof n.gapFrom!=`number`||typeof n.gapTo!=`number`||typeof n.insert!=`number`)throw RangeError(`Invalid input for ReplaceAroundStep.fromJSON`);return new e(n.from,n.to,n.gapFrom,n.gapTo,A.fromJSON(t,n.slice),n.insert,!!n.structure)}};fn.jsonID(`replaceAround`,bn);function xn(e,t,n){let r=e.resolve(t),i=n-t,a=r.depth;for(;i>0&&a>0&&r.indexAfter(a)==r.node(a).childCount;)a--,i--;if(i>0){let e=r.node(a).maybeChild(r.indexAfter(a));for(;i>0;){if(!e||e.isLeaf)return!0;e=e.firstChild,i--}}return!1}function Sn(e,t,n,r){let i=[],a=[],o,s;e.doc.nodesBetween(t,n,(e,c,l)=>{if(!e.isInline)return;let u=e.marks;if(!r.isInSet(u)&&l.type.allowsMarkType(r.type)){let l=Math.max(c,t),d=Math.min(c+e.nodeSize,n),f=r.addToSet(u);for(let e=0;e<u.length;e++)u[e].isInSet(f)||(o&&o.to==l&&o.mark.eq(u[e])?o.to=d:i.push(o=new gn(l,d,u[e])));s&&s.to==l?s.to=d:a.push(s=new hn(l,d,r))}}),i.forEach(t=>e.step(t)),a.forEach(t=>e.step(t))}function Cn(e,t,n,r){let i=[],a=0;e.doc.nodesBetween(t,n,(e,o)=>{if(!e.isInline)return;a++;let s=null;if(r instanceof Et){let t=e.marks,n;for(;n=r.isInSet(t);)(s||=[]).push(n),t=n.removeFromSet(t)}else r?r.isInSet(e.marks)&&(s=[r]):s=e.marks;if(s&&s.length){let r=Math.min(o+e.nodeSize,n);for(let e=0;e<s.length;e++){let n=s[e],c;for(let e=0;e<i.length;e++){let t=i[e];t.step==a-1&&n.eq(i[e].style)&&(c=t)}c?(c.to=r,c.step=a):i.push({style:n,from:Math.max(o,t),to:r,step:a})}}}),i.forEach(t=>e.step(new gn(t.from,t.to,t.style)))}function wn(e,t,n,r=n.contentMatch,i=!0){let a=e.doc.nodeAt(t),o=[],s=t+1;for(let t=0;t<a.childCount;t++){let c=a.child(t),l=s+c.nodeSize,u=r.matchType(c.type);if(!u)o.push(new yn(s,l,A.empty));else{r=u;for(let t=0;t<c.marks.length;t++)n.allowsMarkType(c.marks[t].type)||e.step(new gn(s,l,c.marks[t]));if(i&&c.isText&&n.whitespace!=`pre`){let e,t=/\r?\n|\r/g,r;for(;e=t.exec(c.text);)r||=new A(O.from(n.schema.text(` `,n.allowedMarks(c.marks))),0,0),o.push(new yn(s+e.index,s+e.index+e[0].length,r))}}s=l}if(!r.validEnd){let t=r.fillBefore(O.empty,!0);e.replace(s,s,new A(t,0,0))}for(let t=o.length-1;t>=0;t--)e.step(o[t])}function Tn(e,t,n){return(t==0||e.canReplace(t,e.childCount))&&(n==e.childCount||e.canReplace(0,n))}function En(e){let t=e.parent.content.cutByIndex(e.startIndex,e.endIndex);for(let n=e.depth,r=0,i=0;;--n){let a=e.$from.node(n),o=e.$from.index(n)+r,s=e.$to.indexAfter(n)-i;if(n<e.depth&&a.canReplace(o,s,t))return n;if(n==0||a.type.spec.isolating||!Tn(a,o,s))break;o&&(r=1),s<a.childCount&&(i=1)}return null}function Dn(e,t,n){let{$from:r,$to:i,depth:a}=t,o=r.before(a+1),s=i.after(a+1),c=o,l=s,u=O.empty,d=0;for(let e=a,t=!1;e>n;e--)t||r.index(e)>0?(t=!0,u=O.from(r.node(e).copy(u)),d++):c--;let f=O.empty,p=0;for(let e=a,t=!1;e>n;e--)t||i.after(e+1)<i.end(e)?(t=!0,f=O.from(i.node(e).copy(f)),p++):l++;e.step(new bn(c,l,o,s,new A(u.append(f),d,p),u.size-d,!0))}function On(e,t,n=null,r=e){let i=An(e,t),a=i&&jn(r,t);return a?i.map(kn).concat({type:t,attrs:n}).concat(a.map(kn)):null}function kn(e){return{type:e,attrs:null}}function An(e,t){let{parent:n,startIndex:r,endIndex:i}=e,a=n.contentMatchAt(r).findWrapping(t);if(!a)return null;let o=a.length?a[0]:t;return n.canReplaceWith(r,i,o)?a:null}function jn(e,t){let{parent:n,startIndex:r,endIndex:i}=e,a=n.child(r),o=t.contentMatch.findWrapping(a.type);if(!o)return null;let s=(o.length?o[o.length-1]:t).contentMatch;for(let e=r;s&&e<i;e++)s=s.matchType(n.child(e).type);return!s||!s.validEnd?null:o}function Mn(e,t,n){let r=O.empty;for(let e=n.length-1;e>=0;e--){if(r.size){let t=n[e].type.contentMatch.matchFragment(r);if(!t||!t.validEnd)throw RangeError(`Wrapper type given to Transform.wrap does not form valid content of its parent wrapper`)}r=O.from(n[e].type.create(n[e].attrs,r))}let i=t.start,a=t.end;e.step(new bn(i,a,i,a,new A(r,0,0),n.length,!0))}function Nn(e,t,n,r,i){if(!r.isTextblock)throw RangeError(`Type given to setBlockType should be a textblock`);let a=e.steps.length;e.doc.nodesBetween(t,n,(t,n)=>{let o=typeof i==`function`?i(t):i;if(t.isTextblock&&!t.hasMarkup(r,o)&&In(e.doc,e.mapping.slice(a).map(n),r)){let i=null;if(r.schema.linebreakReplacement){let e=r.whitespace==`pre`,t=!!r.contentMatch.matchType(r.schema.linebreakReplacement);e&&!t?i=!1:!e&&t&&(i=!0)}i===!1&&Fn(e,t,n,a),wn(e,e.mapping.slice(a).map(n,1),r,void 0,i===null);let s=e.mapping.slice(a),c=s.map(n,1),l=s.map(n+t.nodeSize,1);return e.step(new bn(c,l,c+1,l-1,new A(O.from(r.create(o,null,t.marks)),0,0),1,!0)),i===!0&&Pn(e,t,n,a),!1}})}function Pn(e,t,n,r){t.forEach((i,a)=>{if(i.isText){let o,s=/\r?\n|\r/g;for(;o=s.exec(i.text);){let i=e.mapping.slice(r).map(n+1+a+o.index);e.replaceWith(i,i+1,t.type.schema.linebreakReplacement.create())}}})}function Fn(e,t,n,r){t.forEach((i,a)=>{if(i.type==i.type.schema.linebreakReplacement){let i=e.mapping.slice(r).map(n+1+a);e.replaceWith(i,i+1,t.type.schema.text(`
|
|
@@ -204,5 +204,5 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
|
|
|
204
204
|
`);if(a.length<2)return;let o=a[1];if(!/^[ \t|:]*-[ \t|:-]*$/.test(o)||!o.includes(`|`))return;let s=dT(i);if(s===i)return;let c=n.blockTokens(s)[0];if(c?.type!==`table`||!c.raw)return;let l=c.raw.split(`
|
|
205
205
|
`).length,u=e.split(`
|
|
206
206
|
`).slice(0,l).join(`
|
|
207
|
-
`);return{...c,raw:u}}},addCommands(){return{insertTable:({rows:e=3,cols:t=3,withHeaderRow:n=!0}={})=>({tr:r,dispatch:i,editor:a})=>{let o=oT(a.schema,e,t,n);if(i){let e=r.selection.from+1;r.replaceSelectionWith(o).scrollIntoView().setSelection(M.near(r.doc.resolve(e)))}return!0},addColumnBefore:()=>({state:e,dispatch:t})=>FC(e,t),addColumnAfter:()=>({state:e,dispatch:t})=>IC(e,t),deleteColumn:()=>({state:e,dispatch:t})=>{let n=ad(e.selection.$from,e=>e.type.name===`table`);return RC(e,t&&(e=>{n&&lT(e,n.pos),t(e)}))},addRowBefore:()=>({state:e,dispatch:t})=>VC(e,t),addRowAfter:()=>({state:e,dispatch:t})=>HC(e,t),deleteRow:()=>({state:e,dispatch:t})=>{let n=ad(e.selection.$from,e=>e.type.name===`table`);return WC(e,t&&(e=>{n&&lT(e,n.pos),t(e)}))},deleteTable:()=>({state:e,dispatch:t})=>rw(e,t),mergeCells:()=>({state:e,dispatch:t})=>qC(e,t),splitCell:()=>({state:e,dispatch:t})=>JC(e,t),toggleHeaderColumn:()=>({state:e,dispatch:t})=>$C(`column`)(e,t),toggleHeaderRow:()=>({state:e,dispatch:t})=>$C(`row`)(e,t),toggleHeaderCell:()=>({state:e,dispatch:t})=>ew(e,t),mergeOrSplit:()=>({state:e,dispatch:t})=>qC(e,t)?!0:JC(e,t),setCellAttribute:(e,t)=>({state:n,dispatch:r})=>XC(e,t)(n,r),goToNextCell:()=>({state:e,dispatch:t})=>nw(1)(e,t),goToPreviousCell:()=>({state:e,dispatch:t})=>nw(-1)(e,t),fixTables:()=>({state:e,dispatch:t})=>(t&&jC(e),!0),setCellSelection:e=>({tr:t,dispatch:n})=>{if(n){let n=$.create(t.doc,e.anchorCell,e.headCell);t.setSelection(n)}return!0}}},addKeyboardShortcuts(){return{Tab:()=>this.editor.commands.goToNextCell()?!0:this.editor.can().addRowAfter()?this.editor.chain().addRowAfter().goToNextCell().run():!1,"Shift-Tab":()=>this.editor.commands.goToPreviousCell(),Backspace:cT,"Mod-Backspace":cT,Delete:cT,"Mod-Delete":cT}},addProseMirrorPlugins(){return[...this.options.resizable&&this.editor.isEditable?[Ew({handleWidth:this.options.handleWidth,cellMinWidth:this.options.cellMinWidth,defaultCellMinWidth:this.options.cellMinWidth,View:this.options.View,lastColumnResizable:this.options.lastColumnResizable})]:[],Bw({allowTableNodeSelection:this.options.allowTableNodeSelection}),yT()]},addNodeView(){let e=this.options.resizable&&this.editor.isEditable,t=this.options.View;return e||!t?null:({node:e,view:n,HTMLAttributes:r})=>{let i=U(this.options.HTMLAttributes,r);return new t(e,this.options.cellMinWidth,n,i)}},extendNodeSchema(e){return{tableRole:H(V(e,`tableRole`,{name:e.name,options:e.options,storage:e.storage}))}}}),xT=W.create({name:`tableKit`,addExtensions(){let e=[];return this.options.table!==!1&&e.push(bT.configure(this.options.table)),this.options.tableCell!==!1&&e.push(Zw.configure(this.options.tableCell)),this.options.tableHeader!==!1&&e.push(Qw.configure(this.options.tableHeader)),this.options.tableRow!==!1&&e.push($w.configure(this.options.tableRow)),e}});function ST(e,t=[]){return e.flatMap(e=>{let n=[...t,...e.properties?e.properties.className:[]];return e.children?ST(e.children,n):{text:e.value,classes:n}})}function CT(e){return e.value||e.children||[]}function wT(e){return!!re.getLanguage(e)}function TT({doc:e,name:t,lowlight:n,defaultLanguage:r}){let i=[];return rd(e,e=>e.type.name===t).forEach(e=>{let t=e.pos+1,a=e.node.attrs.language||r,o=n.listLanguages();ST(a&&(o.includes(a)||wT(a)||n.registered?.call(n,a))?CT(n.highlight(a,e.node.textContent)):CT(n.highlightAuto(e.node.textContent))).forEach(e=>{let n=t+e.text.length;if(e.classes.length){let r=cc.inline(t,n,{class:e.classes.join(` `)});i.push(r)}t=n})}),R.create(e,i)}function ET(e){return typeof e==`function`}function DT({name:e,lowlight:t,defaultLanguage:n}){if(![`highlight`,`highlightAuto`,`listLanguages`].every(e=>ET(t[e])))throw Error(`You should provide an instance of lowlight to use the code-block-lowlight extension`);let r=new P({key:new F(`lowlight`),state:{init:(r,{doc:i})=>TT({doc:i,name:e,lowlight:t,defaultLanguage:n}),apply:(r,i,a,o)=>{let s=a.selection.$head.parent.type.name,c=o.selection.$head.parent.type.name,l=rd(a.doc,t=>t.type.name===e),u=rd(o.doc,t=>t.type.name===e);return r.docChanged&&([s,c].includes(e)||u.length!==l.length||r.steps.some(e=>e.from!==void 0&&e.to!==void 0&&l.some(t=>t.pos>=e.from&&t.pos+t.node.nodeSize<=e.to)))?TT({doc:r.doc,name:e,lowlight:t,defaultLanguage:n}):i.map(r.mapping,r.doc)}},props:{decorations(e){return r.getState(e)}}});return r}var OT=Sv.extend({addOptions(){return{...this.parent?.call(this),lowlight:{},languageClassPrefix:`language-`,exitOnTripleEnter:!0,exitOnArrowDown:!0,exitOnArrowUp:!0,defaultLanguage:null,enableTabIndentation:!1,tabSize:4,HTMLAttributes:{}}},addProseMirrorPlugins(){return[...this.parent?.call(this)||[],DT({name:this.name,lowlight:this.options.lowlight,defaultLanguage:this.options.defaultLanguage})]}}),kT=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,AT=G.create({name:`image`,addOptions(){return{inline:!1,allowBase64:!1,HTMLAttributes:{},resize:!1}},inline(){return this.options.inline},group(){return this.options.inline?`inline`:`block`},draggable:!0,addAttributes(){return{src:{default:null},alt:{default:null},title:{default:null},width:{default:null},height:{default:null}}},parseHTML(){return[{tag:this.options.allowBase64?`img[src]`:`img[src]:not([src^="data:"])`}]},renderHTML({HTMLAttributes:e}){return[`img`,U(this.options.HTMLAttributes,e)]},parseMarkdown:(e,t)=>t.createNode(`image`,{src:e.href,title:e.title,alt:e.text}),renderMarkdown:e=>{let t=e.attrs?.src??``,n=e.attrs?.alt??``,r=e.attrs?.title??``;return r?``:``},addNodeView(){if(!this.options.resize||!this.options.resize.enabled||typeof document>`u`)return null;let{directions:e,minWidth:t,minHeight:n,alwaysPreserveAspectRatio:r}=this.options.resize,i=new Set([`src`,`width`,`height`]);return({node:a,getPos:o,HTMLAttributes:s,editor:c})=>{let l=document.createElement(`img`);l.draggable=!1;let u=U(this.options.HTMLAttributes,s);Object.entries(u).forEach(([e,t])=>{if(t!=null)switch(e){case`src`:case`width`:case`height`:break;default:l.setAttribute(e,t)}}),u.src!==null&&(l.src=u.src);let d={...s},f=e=>{typeof e==`string`&&e!==``?l.getAttribute(`src`)!==e&&(l.src=e):(l.hasAttribute(`src`)&&l.removeAttribute(`src`),l.src!==``&&(l.src=``))};f(s.src);let p=new ym({element:l,editor:c,node:a,getPos:o,onResize:(e,t)=>{l.style.width=`${e}px`,l.style.height=`${t}px`},onCommit:(e,t)=>{let n=o();n!==void 0&&this.editor.chain().setNodeSelection(n).updateAttributes(this.name,{width:e,height:t}).run()},onUpdate:e=>{if(e.type!==a.type)return!1;let t=Cd(e,c.extensionManager.attributes.filter(t=>t.type===e.type.name));return Object.keys(d).forEach(e=>{!i.has(e)&&!(e in t)&&l.removeAttribute(e)}),Object.entries(t).forEach(([e,t])=>{i.has(e)||(t==null?l.removeAttribute(e):l.setAttribute(e,t))}),f(t.src),d=t,!0},options:{directions:e,min:{width:t,height:n},preserveAspectRatio:r===!0}}),m=p.dom,h=()=>{m.style.visibility=``,m.style.pointerEvents=``};return m.style.visibility=`hidden`,m.style.pointerEvents=`none`,l.complete&&l.naturalWidth>0?h():(l.onload=h,l.onerror=h),p}},addCommands(){return{setImage:e=>({commands:t})=>t.insertContent({type:this.name,attrs:e})}},addInputRules(){return[hm({find:kT,type:this.type,getAttributes:e=>{let[,,t,n,r]=e;return{src:n,alt:t,title:r}}})]}});function jT({placeholder:e=``,extra:t=[]}={}){return[rC.configure({codeBlock:!1,hardBreak:!1,link:{openOnClick:!1,isAllowedUri:(e,{defaultValidate:t})=>e.startsWith(`mention:`)||t(e)}}),wv.extend({addKeyboardShortcuts(){return{"Shift-Enter":()=>this.editor.commands.setHardBreak()}}}),OT.configure({lowlight:ne}),cS,sS.configure({nested:!0,a11y:{checkboxLabel:e=>e.textContent}}),xT.configure({table:{resizable:!1}}),AT.configure({allowBase64:!1}),YS.configure({placeholder:e}),$_,...t]}var MT=new Q_({extensions:jT()}),NT=i().use(
|
|
208
|
-
A --> B`}]}).run()},{key:`divider`,get label(){return n(`detail.markdown.block.divider`)},icon:
|
|
207
|
+
`);return{...c,raw:u}}},addCommands(){return{insertTable:({rows:e=3,cols:t=3,withHeaderRow:n=!0}={})=>({tr:r,dispatch:i,editor:a})=>{let o=oT(a.schema,e,t,n);if(i){let e=r.selection.from+1;r.replaceSelectionWith(o).scrollIntoView().setSelection(M.near(r.doc.resolve(e)))}return!0},addColumnBefore:()=>({state:e,dispatch:t})=>FC(e,t),addColumnAfter:()=>({state:e,dispatch:t})=>IC(e,t),deleteColumn:()=>({state:e,dispatch:t})=>{let n=ad(e.selection.$from,e=>e.type.name===`table`);return RC(e,t&&(e=>{n&&lT(e,n.pos),t(e)}))},addRowBefore:()=>({state:e,dispatch:t})=>VC(e,t),addRowAfter:()=>({state:e,dispatch:t})=>HC(e,t),deleteRow:()=>({state:e,dispatch:t})=>{let n=ad(e.selection.$from,e=>e.type.name===`table`);return WC(e,t&&(e=>{n&&lT(e,n.pos),t(e)}))},deleteTable:()=>({state:e,dispatch:t})=>rw(e,t),mergeCells:()=>({state:e,dispatch:t})=>qC(e,t),splitCell:()=>({state:e,dispatch:t})=>JC(e,t),toggleHeaderColumn:()=>({state:e,dispatch:t})=>$C(`column`)(e,t),toggleHeaderRow:()=>({state:e,dispatch:t})=>$C(`row`)(e,t),toggleHeaderCell:()=>({state:e,dispatch:t})=>ew(e,t),mergeOrSplit:()=>({state:e,dispatch:t})=>qC(e,t)?!0:JC(e,t),setCellAttribute:(e,t)=>({state:n,dispatch:r})=>XC(e,t)(n,r),goToNextCell:()=>({state:e,dispatch:t})=>nw(1)(e,t),goToPreviousCell:()=>({state:e,dispatch:t})=>nw(-1)(e,t),fixTables:()=>({state:e,dispatch:t})=>(t&&jC(e),!0),setCellSelection:e=>({tr:t,dispatch:n})=>{if(n){let n=$.create(t.doc,e.anchorCell,e.headCell);t.setSelection(n)}return!0}}},addKeyboardShortcuts(){return{Tab:()=>this.editor.commands.goToNextCell()?!0:this.editor.can().addRowAfter()?this.editor.chain().addRowAfter().goToNextCell().run():!1,"Shift-Tab":()=>this.editor.commands.goToPreviousCell(),Backspace:cT,"Mod-Backspace":cT,Delete:cT,"Mod-Delete":cT}},addProseMirrorPlugins(){return[...this.options.resizable&&this.editor.isEditable?[Ew({handleWidth:this.options.handleWidth,cellMinWidth:this.options.cellMinWidth,defaultCellMinWidth:this.options.cellMinWidth,View:this.options.View,lastColumnResizable:this.options.lastColumnResizable})]:[],Bw({allowTableNodeSelection:this.options.allowTableNodeSelection}),yT()]},addNodeView(){let e=this.options.resizable&&this.editor.isEditable,t=this.options.View;return e||!t?null:({node:e,view:n,HTMLAttributes:r})=>{let i=U(this.options.HTMLAttributes,r);return new t(e,this.options.cellMinWidth,n,i)}},extendNodeSchema(e){return{tableRole:H(V(e,`tableRole`,{name:e.name,options:e.options,storage:e.storage}))}}}),xT=W.create({name:`tableKit`,addExtensions(){let e=[];return this.options.table!==!1&&e.push(bT.configure(this.options.table)),this.options.tableCell!==!1&&e.push(Zw.configure(this.options.tableCell)),this.options.tableHeader!==!1&&e.push(Qw.configure(this.options.tableHeader)),this.options.tableRow!==!1&&e.push($w.configure(this.options.tableRow)),e}});function ST(e,t=[]){return e.flatMap(e=>{let n=[...t,...e.properties?e.properties.className:[]];return e.children?ST(e.children,n):{text:e.value,classes:n}})}function CT(e){return e.value||e.children||[]}function wT(e){return!!re.getLanguage(e)}function TT({doc:e,name:t,lowlight:n,defaultLanguage:r}){let i=[];return rd(e,e=>e.type.name===t).forEach(e=>{let t=e.pos+1,a=e.node.attrs.language||r,o=n.listLanguages();ST(a&&(o.includes(a)||wT(a)||n.registered?.call(n,a))?CT(n.highlight(a,e.node.textContent)):CT(n.highlightAuto(e.node.textContent))).forEach(e=>{let n=t+e.text.length;if(e.classes.length){let r=cc.inline(t,n,{class:e.classes.join(` `)});i.push(r)}t=n})}),R.create(e,i)}function ET(e){return typeof e==`function`}function DT({name:e,lowlight:t,defaultLanguage:n}){if(![`highlight`,`highlightAuto`,`listLanguages`].every(e=>ET(t[e])))throw Error(`You should provide an instance of lowlight to use the code-block-lowlight extension`);let r=new P({key:new F(`lowlight`),state:{init:(r,{doc:i})=>TT({doc:i,name:e,lowlight:t,defaultLanguage:n}),apply:(r,i,a,o)=>{let s=a.selection.$head.parent.type.name,c=o.selection.$head.parent.type.name,l=rd(a.doc,t=>t.type.name===e),u=rd(o.doc,t=>t.type.name===e);return r.docChanged&&([s,c].includes(e)||u.length!==l.length||r.steps.some(e=>e.from!==void 0&&e.to!==void 0&&l.some(t=>t.pos>=e.from&&t.pos+t.node.nodeSize<=e.to)))?TT({doc:r.doc,name:e,lowlight:t,defaultLanguage:n}):i.map(r.mapping,r.doc)}},props:{decorations(e){return r.getState(e)}}});return r}var OT=Sv.extend({addOptions(){return{...this.parent?.call(this),lowlight:{},languageClassPrefix:`language-`,exitOnTripleEnter:!0,exitOnArrowDown:!0,exitOnArrowUp:!0,defaultLanguage:null,enableTabIndentation:!1,tabSize:4,HTMLAttributes:{}}},addProseMirrorPlugins(){return[...this.parent?.call(this)||[],DT({name:this.name,lowlight:this.options.lowlight,defaultLanguage:this.options.defaultLanguage})]}}),kT=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,AT=G.create({name:`image`,addOptions(){return{inline:!1,allowBase64:!1,HTMLAttributes:{},resize:!1}},inline(){return this.options.inline},group(){return this.options.inline?`inline`:`block`},draggable:!0,addAttributes(){return{src:{default:null},alt:{default:null},title:{default:null},width:{default:null},height:{default:null}}},parseHTML(){return[{tag:this.options.allowBase64?`img[src]`:`img[src]:not([src^="data:"])`}]},renderHTML({HTMLAttributes:e}){return[`img`,U(this.options.HTMLAttributes,e)]},parseMarkdown:(e,t)=>t.createNode(`image`,{src:e.href,title:e.title,alt:e.text}),renderMarkdown:e=>{let t=e.attrs?.src??``,n=e.attrs?.alt??``,r=e.attrs?.title??``;return r?``:``},addNodeView(){if(!this.options.resize||!this.options.resize.enabled||typeof document>`u`)return null;let{directions:e,minWidth:t,minHeight:n,alwaysPreserveAspectRatio:r}=this.options.resize,i=new Set([`src`,`width`,`height`]);return({node:a,getPos:o,HTMLAttributes:s,editor:c})=>{let l=document.createElement(`img`);l.draggable=!1;let u=U(this.options.HTMLAttributes,s);Object.entries(u).forEach(([e,t])=>{if(t!=null)switch(e){case`src`:case`width`:case`height`:break;default:l.setAttribute(e,t)}}),u.src!==null&&(l.src=u.src);let d={...s},f=e=>{typeof e==`string`&&e!==``?l.getAttribute(`src`)!==e&&(l.src=e):(l.hasAttribute(`src`)&&l.removeAttribute(`src`),l.src!==``&&(l.src=``))};f(s.src);let p=new ym({element:l,editor:c,node:a,getPos:o,onResize:(e,t)=>{l.style.width=`${e}px`,l.style.height=`${t}px`},onCommit:(e,t)=>{let n=o();n!==void 0&&this.editor.chain().setNodeSelection(n).updateAttributes(this.name,{width:e,height:t}).run()},onUpdate:e=>{if(e.type!==a.type)return!1;let t=Cd(e,c.extensionManager.attributes.filter(t=>t.type===e.type.name));return Object.keys(d).forEach(e=>{!i.has(e)&&!(e in t)&&l.removeAttribute(e)}),Object.entries(t).forEach(([e,t])=>{i.has(e)||(t==null?l.removeAttribute(e):l.setAttribute(e,t))}),f(t.src),d=t,!0},options:{directions:e,min:{width:t,height:n},preserveAspectRatio:r===!0}}),m=p.dom,h=()=>{m.style.visibility=``,m.style.pointerEvents=``};return m.style.visibility=`hidden`,m.style.pointerEvents=`none`,l.complete&&l.naturalWidth>0?h():(l.onload=h,l.onerror=h),p}},addCommands(){return{setImage:e=>({commands:t})=>t.insertContent({type:this.name,attrs:e})}},addInputRules(){return[hm({find:kT,type:this.type,getAttributes:e=>{let[,,t,n,r]=e;return{src:n,alt:t,title:r}}})]}});function jT({placeholder:e=``,extra:t=[]}={}){return[rC.configure({codeBlock:!1,hardBreak:!1,link:{openOnClick:!1,isAllowedUri:(e,{defaultValidate:t})=>e.startsWith(`mention:`)||t(e)}}),wv.extend({addKeyboardShortcuts(){return{"Shift-Enter":()=>this.editor.commands.setHardBreak()}}}),OT.configure({lowlight:ne}),cS,sS.configure({nested:!0,a11y:{checkboxLabel:e=>e.textContent}}),xT.configure({table:{resizable:!1}}),AT.configure({allowBase64:!1}),YS.configure({placeholder:e}),$_,...t]}var MT=new Q_({extensions:jT()}),NT=i().use(m).use(s),PT=e=>JSON.stringify(NT.parse(e),(e,t)=>e===`position`?void 0:t),FT=new Map;function IT(e){let t=FT.get(e);if(t!==void 0)return t;let n=!1;try{n=PT(e)===PT(MT.serialize(MT.parse(e)))}catch{}return FT.size>50&&FT.clear(),FT.set(e,n),n}var LT=new WeakMap;function RT(e,t=e.state.doc){let n=LT.get(t);return n===void 0&&(n=(e.markdown?.serialize(t.toJSON())??``).replace(/^\n+/,``).replace(/\n+$/,``),LT.set(t,n)),n}var zT=e=>W.create({name:`markdownLimit`,addProseMirrorPlugins(){let{editor:t}=this;return[new P({filterTransaction:(n,r)=>{if(!n.docChanged)return!0;let i=RT(t,n.doc).length;return i<=e||i<=RT(t,r.doc).length}})]}});function BT(e){let[t]=(0,E.useState)(()=>IT(e.value)),{onUnsupported:n}=e;return(0,E.useEffect)(()=>{t||n()},[t,n]),t?(0,D.jsx)(KT,{...e}):null}var VT={heading:e=>e.toggleHeading({level:3}),bold:e=>e.toggleBold(),italic:e=>e.toggleItalic(),link:e=>e,bullets:e=>e.toggleBulletList(),numbers:e=>e.toggleOrderedList(),tasks:e=>e.toggleTaskList(),code:e=>e.toggleCodeBlock()},HT={heading:`heading`,bold:`bold`,italic:`italic`,link:`link`,bullets:`bulletList`,numbers:`orderedList`,tasks:`taskList`,code:`codeBlock`},UT=[{key:`quote`,get label(){return n(`detail.markdown.block.quote`)},icon:Te,run:e=>e.chain().focus().toggleBlockquote().run()},{key:`table`,get label(){return n(`detail.markdown.block.table`)},icon:Ce,run:e=>e.chain().focus().insertTable({rows:3,cols:3,withHeaderRow:!0}).run()},{key:`diagram`,get label(){return n(`detail.markdown.block.diagram`)},icon:w,run:e=>e.chain().focus().insertContent({type:`codeBlock`,attrs:{language:`mermaid`},content:[{type:`text`,text:`flowchart LR
|
|
208
|
+
A --> B`}]}).run()},{key:`divider`,get label(){return n(`detail.markdown.block.divider`)},icon:u,run:e=>e.chain().focus().setHorizontalRule().run()}],WT=[{key:`addRow`,icon:me,run:e=>e.addRowAfter()},{key:`addColumn`,icon:T,run:e=>e.addColumnAfter()},{key:`deleteRow`,icon:xe,run:e=>e.deleteRow()},{key:`deleteColumn`,icon:ye,run:e=>e.deleteColumn()},{key:`deleteTable`,icon:_e,run:e=>e.deleteTable()}],GT={slash:new F(`slash-menu`),mention:new F(`mention-menu`)};function KT({id:e,label:t,value:r,onChange:i,placeholder:a,rows:o,maxLength:s,flush:c,groupClassName:u,footer:m,members:g,onUpload:v,onUnsupported:S}){let ee=`${e}-visual`,[C,w]=(0,E.useState)(null),[ne,re]=(0,E.useState)(null),pe=(0,E.useRef)({onChange:i,keyDown:()=>!1,files:()=>!1}),me=(0,E.useRef)(r),[he]=(0,E.useState)(()=>jT({placeholder:a,extra:[W.create({name:`suggestionMenus`,addProseMirrorPlugins(){return[`slash`,`mention`].map(e=>{let t=t=>w({kind:e,query:t.query,range:t.range,rect:()=>t.clientRect?.()??null});return og({editor:this.editor,pluginKey:GT[e],char:e===`slash`?`/`:`@`,allow:({state:e})=>!e.selection.$from.parent.type.spec.code,render:()=>({onStart:t,onUpdate:t,onExit:()=>w(null)})})})}}),zT(s)]})),T=Rh({extensions:he,content:r,contentType:`markdown`,editorProps:{attributes:{id:ee,role:`textbox`,"aria-multiline":`true`,"aria-label":t,"data-slot":`input-group-control`,class:x(`markdown min-h-[var(--rows)] w-full max-w-none px-3 py-2.5 outline-none caret-primary`,c&&`px-1 py-3 text-base leading-7`),style:`--rows: ${o*(c?1.75:1.5)}rem`},handleKeyDown:(e,t)=>pe.current.keyDown(t),handlePaste:(e,t)=>pe.current.files(oe(t.clipboardData)),handleDrop:(e,t)=>pe.current.files(oe(t.dataTransfer))},onUpdate:({editor:e})=>{let t=RT(e);me.current=t,pe.current.onChange(t)}});(0,E.useEffect)(()=>{r!==me.current&&(me.current=r,IT(r)?T.commands.setContent(r,{contentType:`markdown`,emitUpdate:!1}):S())},[T,r,S]);let ge=Ph({editor:T,selector:({editor:e})=>({active:d.filter(t=>e.isActive(HT[t])),table:e.isActive(`table`),empty:e.state.selection.empty})}),_e=le(t,v,e=>{T.chain().focus().insertContent(e,{contentType:`markdown`}).run()}),ve=[...[`heading`,`bullets`,`numbers`,`tasks`,`code`].map(e=>({key:e,label:b[e].label,icon:se[e],run:t=>{VT[e](t.chain().focus()).run()}})),...UT,...v?[{key:`file`,label:n(`detail.markdown.block.file`),icon:ie,run:_e.pick}]:[]],ye=C?.query.toLowerCase()??``,be=C?.kind===`mention`?de(g??[],ye).map(ue):C?.kind===`slash`?ve.filter(e=>e.label.toLowerCase().includes(ye)).map(e=>({key:e.key,content:(0,D.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,D.jsx)(e.icon,{className:`size-4 text-muted-foreground`,"aria-hidden":`true`}),e.label]})})):[],xe=ce(be.map(e=>e.key)),Se=`${e}-suggestions`,Ce=!!C&&be.length>0&&(C.kind===`slash`||!!g),we=()=>{C&&sg(T.view,GT[C.kind]),w(null)};(0,E.useEffect)(()=>{let e=document.getElementById(ee);if(!e)return;let t={"aria-autocomplete":`list`,"aria-controls":Ce?Se:null,"aria-activedescendant":Ce&&xe.active?`${Se}-${xe.active}`:null};for(let[n,r]of Object.entries(t))r?e.setAttribute(n,r):e.removeAttribute(n)},[ee,Ce,Se,xe.active]);let Te=e=>{if(!C)return;let t=C.range;if(w(null),C.kind===`mention`){let n=g?.find(t=>t.userId===e);if(!n)return;T.chain().focus().insertContentAt(t,[{type:`text`,text:`@${n.name}`,marks:[{type:`link`,attrs:{href:`mention:${n.userId}`}}]},{type:`text`,text:` `}]).run()}else T.chain().focus().deleteRange(t).run(),ve.find(t=>t.key===e)?.run(T)},Ee=()=>{let{from:e}=T.state.selection,t=T.view.coordsAtPos(e);re({href:String(T.getAttributes(`link`).href??``),rect:new DOMRect(t.left,t.top,0,t.bottom-t.top)})},De=e=>{e===`link`?Ee():VT[e](T.chain().focus()).run()};return(0,E.useEffect)(()=>{pe.current={onChange:i,files:e=>!e.length||!v?!1:(_e.send(e),!0),keyDown:e=>{if(Ce&&xe.handleKey(e,Te,we))return e.stopPropagation(),!0;if(e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&!e.isComposing)return te(T.view.dom.closest(`form`)),!0;let t=p(e);return!t||t===`link`&&T.state.selection.empty?!1:(e.stopPropagation(),De(t),!0)}}}),(0,D.jsxs)(y,{className:u,children:[(0,D.jsx)(ae,{label:t,flush:c,onApply:De,pressed:e=>ge.active.includes(e),...v?{upload:_e}:{},children:ge.table&&WT.map(e=>(0,D.jsx)(l,{label:n(`detail.markdown.table.${e.key}`),size:`icon-sm`,tabIndex:-1,className:`text-muted-foreground hover:text-foreground`,onClick:()=>e.run(T.chain().focus()).run(),children:(0,D.jsx)(e.icon,{})},e.key))}),(0,D.jsx)(jh,{editor:T,className:`w-full`}),(0,D.jsx)(fe,{id:Se,label:C?.kind===`mention`?n(`detail.markdown.mention`):n(`detail.markdown.insertBlock`),open:Ce,anchor:{getBoundingClientRect:()=>C?.rect()??new DOMRect},options:be,active:xe.active,onHighlight:xe.setHighlight,onChoose:Te,onDismiss:we}),(0,D.jsx)(f,{open:!!ne,onOpenChange:e=>{e||re(null)},children:(0,D.jsx)(h,{anchor:{getBoundingClientRect:()=>ne?.rect??new DOMRect},align:`start`,className:`w-[min(22rem,calc(100vw-2rem))] p-3`,children:(0,D.jsx)(`form`,{onSubmit:e=>{e.preventDefault(),e.stopPropagation();let t=ne?.href.trim()??``,n=T.chain().focus().extendMarkRange(`link`);t?ge.empty&&!T.isActive(`link`)?n.insertContent({type:`text`,text:t,marks:[{type:`link`,attrs:{href:t}}]}).run():n.setLink({href:t}).run():n.unsetLink().run(),re(null)},children:(0,D.jsx)(_,{label:n(`detail.markdown.linkAddress`),labelHidden:!0,placeholder:`https://`,value:ne?.href??``,onChange:e=>ne&&re({...ne,href:e.target.value}),autoFocus:!0})})})}),m]})}export{BT as default};
|
package/apps/web/dist/assets/{workspace-settings-Bcsp-VoJ.js → workspace-settings-DOr9j8X1.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{J as t,K as n,Nn as r,Qt as i,Y as a,Yt as o,an as s,bt as c,c as l,et as u,mn as d,q as f,r as p,xt as m,yt as h}from"./default-bQFGTwIp.js";import{$ as g,B as ee,G as te,H as _,Hi as v,J as y,Ji as b,K as x,Oa as S,Pt as C,Q as w,V as T,X as E,Y as D,Zi as O,at as k,di as A,it as j,nt as M,q as N,qa as P,qi as F,ra as I,vt as L}from"./search-Ble6WSEU.js";import{g as R}from"./item-TCHuZNK6.js";import{a as z,c as B}from"./project-lifecycle-n1ZZbYfu.js";import{n as V,r as H}from"./CompositeItem-CXqewtEL.js";import{t as U}from"./invitations-BPik3J_G.js";import{t as ne}from"./upload-DUEg04Nj.js";import{Ht as W,c as re,i as G,n as K,o as ie,r as q,s as ae,t as oe}from"./index-CYVrs22O.js";import{n as J,r as Y,t as X}from"./member-directory-Dx_jQYfI.js";import{t as se}from"./label-settings-DZTorNDm.js";var Z=e(r(),1),Q=p();function $({workspaceId:e,canEdit:t,authority:n}){let r=P(v.query(`list_workspace_roles`,{workspaceId:e})),i=O(`create_workspace_role`),a=O(`update_workspace_role`),o=O(`delete_workspace_role`),[s,l]=(0,Z.useState)(null),[u,f]=(0,Z.useState)(null),p=r.data??[],m=i.isPending||a.isPending,g=e=>n.capabilities.includes(e),_=e=>(e.id!==`admin`||n.admin)&&e.permissions.every(g);function b(e){i.reset(),a.reset(),l({role:e,name:e?.name??``,permissions:e?[...e.permissions]:[]})}function A(t,n,r){return t?a.mutateAsync({workspaceId:e,roleId:t.id,expectedVersion:t.version,name:n,permissions:r}):i.mutateAsync({workspaceId:e,name:n,permissions:r})}async function M(t,n){await o.mutateAsync({workspaceId:e,roleId:t.id,expectedVersion:t.version,...n?{reassignTo:n}:{}}),f(null),S.success(d(`settings.roles.deleted`))}let F=u?p.filter(e=>e.id!==u.role.id&&_(e)):[];return(0,Q.jsxs)(`section`,{children:[(0,Q.jsx)(j,{title:d(`settings.roles.title`),action:t&&(0,Q.jsx)(y,{label:d(`settings.roles.new`),variant:`default`,onClick:()=>b(null),children:(0,Q.jsx)(R,{})})}),(0,Q.jsx)(x,{error:r.error}),r.isPending?(0,Q.jsx)(E,{}):p.length?p.map(e=>{let n=t&&!e.seeded&&_(e);return(0,Q.jsxs)(K,{compact:!0,title:(0,Q.jsxs)(`span`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,Q.jsx)(`span`,{dir:`auto`,className:`min-w-0`,children:J(e)}),e.seeded&&(0,Q.jsx)(`span`,{className:`shrink-0 text-xs font-normal text-muted-foreground`,children:d(`settings.roles.builtIn`)})]}),description:e.permissions.length?e.permissions.map(e=>h[e].label).join(` · `):d(`settings.roles.readOnly`),children:[(0,Q.jsx)(`span`,{className:`text-xs whitespace-nowrap text-muted-foreground tabular-nums`,children:d(`settings.roles.memberships`,{count:e.assigned})}),n&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(y,{label:d(`settings.roles.editNamed`,{name:J(e)}),onClick:()=>b(e),children:(0,Q.jsx)(H,{})}),e.assigned?(0,Q.jsx)(y,{label:d(`settings.roles.deleteNamed`,{name:J(e)}),onClick:()=>{o.reset(),f({role:e,reassignTo:`reader`})},children:(0,Q.jsx)(V,{})}):(0,Q.jsx)(T,{label:d(`settings.roles.deleteNamed`,{name:J(e)}),icon:(0,Q.jsx)(V,{}),danger:!0,description:d(`settings.roles.deleteUnused`,{name:J(e)}),onConfirm:()=>M(e)})]})]},e.id)}):!r.error&&(0,Q.jsx)(te,{title:d(`settings.roles.empty`)}),(0,Q.jsx)(w,{title:s?.role?d(`settings.roles.edit`):d(`settings.roles.new`),open:!!s,onOpenChange:e=>{e||l(null)},busy:m,children:s&&(0,Q.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),A(s.role,s.name.trim(),s.permissions).then(()=>{l(null),S.success(d(`settings.roles.saved`))}).catch(()=>{})},children:[(0,Q.jsx)(D,{label:d(`settings.roles.name`),value:s.name,onChange:e=>l({...s,name:e.target.value}),maxLength:40,required:!0,autoFocus:!0}),(0,Q.jsxs)(`fieldset`,{className:`mb-4`,children:[(0,Q.jsx)(`legend`,{className:`mb-1 text-sm font-medium`,children:d(`settings.roles.actions`)}),(0,Q.jsx)(`p`,{className:`mt-0 mb-1 text-xs text-muted-foreground`,children:d(`settings.roles.everyoneReads`)}),c.map(e=>(0,Q.jsx)(ee,{label:h[e].label,description:h[e].description,checked:s.permissions.includes(e),disabled:m||!g(e),onCheckedChange:t=>l({...s,permissions:t?[...s.permissions,e]:s.permissions.filter(t=>t!==e)})},e))]}),s.role&&s.role.assigned>0&&(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:d(`settings.roles.changesApply`,{count:s.role.assigned})}),(0,Q.jsx)(N,{error:i.error??a.error,pending:m,submitLabel:d(`settings.roles.save`),submitDisabled:!s.name.trim(),onCancel:()=>l(null)})]})}),(0,Q.jsx)(w,{title:d(`settings.roles.delete`),open:!!u,onOpenChange:e=>{e||f(null)},busy:o.isPending,children:u&&(0,Q.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),M(u.role,u.reassignTo).catch(()=>{})},children:[(0,Q.jsx)(`p`,{className:`mt-0 text-sm text-muted-foreground`,children:d(`settings.roles.reassignDescription`,{count:u.role.assigned,name:J(u.role)})}),(0,Q.jsx)(k,{label:d(`settings.roles.moveTo`),value:u.reassignTo,onValueChange:e=>e&&f({...u,reassignTo:e}),children:F.map(e=>(0,Q.jsx)(C,{value:e.id,children:J(e)},e.id))}),(0,Q.jsx)(N,{error:o.error,pending:o.isPending,danger:!0,submitLabel:d(`settings.roles.delete`),pendingLabel:d(`settings.lifecycle.deleting`),onCancel:()=>f(null)})]})})]})}var ce=[`tickets`,`workflow`,`fields`,`labels`,`relations`,`comments`,`evidence`,`links`],le=()=>d(`admin.import.notExport`),ue=e=>e?.status===`running`,de=e=>e.issues.some(e=>e.severity===`error`);function fe(e){let{done:t,failed:n,total:r}=e.progress,i={status:a[e.status],done:t,failed:n,count:r};return d(n?`admin.import.progressFailed`:`admin.import.progress`,i)}function pe({workspaceId:e}){let[t,n]=(0,Z.useState)(!1),[r,i]=(0,Z.useState)(null),a=P({...v.query(`list_imports`,{workspaceId:e}),refetchInterval:e=>e.state.data?.some(ue)?2e3:!1}),o=e=>{i(e),n(!0)};return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(K,{title:d(`admin.import.title`),description:d(`admin.import.description`),children:(0,Q.jsxs)(A,{onClick:()=>o(null),children:[(0,Q.jsx)(ne,{}),d(`admin.import.action`)]})}),a.data?.map(e=>(0,Q.jsx)(K,{compact:!0,title:(0,Q.jsxs)(Q.Fragment,{children:[e.name,` `,(0,Q.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:e.key})]}),description:(0,Q.jsxs)(Q.Fragment,{children:[fe(e),` · `,(0,Q.jsx)(M,{value:e.updatedAt})]}),children:(0,Q.jsx)(A,{size:`sm`,variant:`ghost`,"aria-label":d(`admin.import.detailsOf`,{name:e.name}),onClick:()=>o(e.id),children:d(`admin.import.details`)})},e.id)),(0,Q.jsx)(w,{title:d(`admin.import.action`),open:t,onOpenChange:n,children:r?(0,Q.jsx)(Se,{workspaceId:e,runId:r,onClose:()=>n(!1)}):(0,Q.jsx)(be,{workspaceId:e,onStarted:i,onCancel:()=>n(!1)})})]})}var me=[`file`,...f],he=e=>e===`file`?d(`admin.import.exportFile`):n[e].label,ge={edition:`cloud`,signIn:`password`,baseUrl:``,workspace:``,email:``,username:``,password:``,apiKey:``,token:``},_e=e=>({name:`baseUrl`,label:d(`admin.import.siteUrl`),type:`url`,placeholder:e}),ve={linear:()=>[{name:`token`,label:d(`admin.import.apiKey`),type:`password`}],jira:({edition:e})=>[{name:`edition`,label:d(`admin.import.jiraEdition`),choices:u},_e(e===`cloud`?`https://example.atlassian.net`:`https://jira.example.com`),...e===`cloud`?[{name:`email`,label:d(`admin.import.accountEmail`),type:`email`},{name:`token`,label:d(`admin.import.apiToken`),type:`password`}]:[{name:`token`,label:d(`admin.import.personalToken`),type:`password`}]],trello:()=>[{name:`apiKey`,label:d(`admin.import.apiKey`),type:`password`},{name:`token`,label:d(`admin.import.token`),type:`password`}],plane:()=>[{..._e(`https://api.plane.so`),label:d(`admin.import.apiUrl`)},{name:`workspace`,label:d(`admin.import.workspaceSlug`),placeholder:`my-team`},{name:`token`,label:d(`admin.import.apiToken`),type:`password`}],planka:({signIn:e})=>[_e(`https://planka.example.com`),{name:`signIn`,label:d(`admin.import.signInWith`),choices:m},...e===`password`?[{name:`username`,label:d(`admin.import.username`)},{name:`password`,label:d(`admin.import.password`),type:`password`}]:[{name:`token`,label:d(`admin.import.apiKey`),type:`password`}]],kaneo:()=>[_e(`https://kaneo.example.com`),{name:`token`,label:d(`admin.import.apiKey`),type:`password`}]},ye=(e,t)=>/^[A-Z][A-Z0-9]{1,9}$/.test(e)?e:re(t);function be({workspaceId:e,onStarted:r,onCancel:a}){let[s,c]=(0,Z.useState)(`file`),[l,u]=(0,Z.useState)(ge),[f,p]=(0,Z.useState)(),[m,h]=(0,Z.useState)(``),[g,te]=(0,Z.useState)(!0),[_,v]=(0,Z.useState)(),[y,b]=(0,Z.useState)(),[S,w]=(0,Z.useState)(),[T,E]=(0,Z.useState)(``),[A,j]=(0,Z.useState)(``),[M,P]=(0,Z.useState)(`workspace`),[F,I]=(0,Z.useState)(),L=O(`list_import_source_projects`),R=O(`preview_import`),z=O(`preview_source_import`),B=O(`start_import`),V=(0,Z.useRef)(0),H=()=>{V.current+=1,I(void 0),R.reset(),z.reset()},U=e=>t=>{e(t),H()},ne=()=>{H(),p(void 0),h(``),L.reset()},W=e=>{e&&(h(e.ref),E(e.name),j(ye(e.key,e.name)),H())},re=e=>t=>{u(n=>({...n,[e]:t})),w(void 0),ne()},G=s===`file`?[]:ve[s](l),K=s===`file`?void 0:t.safeParse({provider:s,...Object.fromEntries(G.map(e=>[e.name,l[e.name]]))}),q=K?.success?K.data:void 0,oe=s===`file`?!!_:!!m,J=!!F&&!de(F),Y=s!==`file`&&!f,X=e=>V.current===e,se=s===`file`?R:z,$=s===`file`?void 0:n[s];return(0,Q.jsxs)(`form`,{onSubmit:t=>{t.preventDefault();let n=V.current;J?B.mutateAsync({workspaceId:e,importId:F.id,expectedVersion:F.version}).then(e=>r(e.id)).catch(()=>{}):Y&&!q?w(Error(K?.error?.issues[0]?.message??d(`admin.import.checkConnection`))):q&&Y?L.mutateAsync({workspaceId:e,source:q}).then(e=>{X(n)&&(p(e),W(e[0]))}).catch(()=>{}):q?z.mutateAsync({workspaceId:e,key:A,name:T,visibility:M,source:q,sourceProject:m,includeComments:g}).then(e=>{X(n)&&I(e)}).catch(()=>{}):_&&R.mutateAsync({workspaceId:e,key:A,name:T,visibility:M,bundle:_}).then(e=>{X(n)&&I(e)}).catch(()=>{})},children:[(0,Q.jsx)(k,{label:d(`admin.import.source`),value:s,onValueChange:e=>{let t=me.find(t=>t===e);t&&(c(t),v(void 0),b(void 0),u(ge),w(void 0),ne())},children:me.map(e=>(0,Q.jsx)(C,{value:e,children:he(e)},e))}),s===`file`?(0,Q.jsx)(D,{label:d(`admin.import.file`),type:`file`,accept:`application/json,.json`,required:!0,onChange:e=>{let t=e.currentTarget.files?.[0];if(v(void 0),H(),b(void 0),!t)return;let n=V.current;t.text().then(e=>{let t=JSON.parse(e);if(!o.pick({format:!0}).safeParse(t).success)throw Error(le());let r=i.parse(t);V.current===n&&(v(r),E(r.project.name),j(ye(r.project.key,r.project.name)))}).catch(e=>{V.current===n&&b(e instanceof SyntaxError?Error(le()):e)})}}):(0,Q.jsxs)(Q.Fragment,{children:[G.map(e=>e.choices?(0,Q.jsx)(k,{label:e.label,value:l[e.name],onValueChange:t=>{t!==null&&re(e.name)(t)},children:Object.entries(e.choices).map(([e,t])=>(0,Q.jsx)(C,{value:e,children:t},e))},e.name):(0,Q.jsx)(D,{label:e.label,type:e.type??`text`,required:!0,autoComplete:`off`,placeholder:e.placeholder,value:l[e.name],onChange:t=>re(e.name)(t.target.value)},e.name)),(0,Q.jsx)(`p`,{className:`-mt-2 mb-4 text-xs text-muted-foreground`,children:$?.setup}),(0,Q.jsx)(x,{error:S??L.error}),f&&$&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(k,{label:$.project,value:m,onValueChange:e=>W(f.find(t=>t.ref===e)),children:f.map(e=>(0,Q.jsxs)(C,{value:e.ref,children:[e.group&&(0,Q.jsxs)(`span`,{className:`text-muted-foreground`,children:[e.group,` /`]}),` `,e.name,` `,(0,Q.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:e.key})]},e.ref))}),f.length===0&&(0,Q.jsx)(`p`,{className:`-mt-2 mb-4 text-sm text-muted-foreground`,children:d(`admin.import.noProjects`,{label:$.project})}),(0,Q.jsx)(ee,{label:d(`admin.import.includeComments`),checked:g,onCheckedChange:U(te)})]})]}),(0,Q.jsx)(x,{error:y}),oe&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(D,{label:d(`admin.import.projectName`),value:T,onChange:e=>U(E)(e.target.value),required:!0,maxLength:120}),(0,Q.jsx)(ie,{value:A,onChange:U(j)}),(0,Q.jsx)(ae,{value:M,onChange:U(P)})]}),F&&(0,Q.jsx)(xe,{run:F}),(0,Q.jsx)(N,{error:se.error??B.error,pending:L.isPending||se.isPending||B.isPending,submitLabel:d(J?`admin.import.start`:Y?`admin.import.connect`:`admin.import.preview`),pendingLabel:d(J?`admin.import.starting`:Y?`admin.import.connecting`:`admin.import.checking`),submitDisabled:Y?!1:!oe||!!F&&!J,onCancel:a})]})}function xe({run:e}){let t=e.members.filter(e=>e.userId),n=e.members.filter(e=>!e.userId),r=[...ce.map(t=>[d(`admin.import.count.${t}`),e.counts[t]?String(e.counts[t]):``]),[d(`admin.import.matched`),s(t.map(e=>e.name))],[d(`admin.import.unmatched`),s(n.map(e=>e.name))]];return(0,Q.jsxs)(`section`,{"aria-label":d(`admin.import.previewLabel`),className:`mt-2 border-t pt-3`,children:[(0,Q.jsx)(B,{rows:r}),e.issues.length>0&&(0,Q.jsx)(`ul`,{className:`m-0 list-none space-y-1.5 p-0 text-sm`,children:e.issues.map(e=>(0,Q.jsxs)(`li`,{className:e.severity===`error`?`text-destructive`:`text-muted-foreground`,children:[(0,Q.jsx)(`span`,{className:`sr-only`,children:e.severity===`error`?d(`admin.import.errorPrefix`):d(`admin.import.notePrefix`)}),e.message]},e.message))})]})}function Se({workspaceId:e,runId:t,onClose:n}){let r=P({...v.query(`get_import`,{workspaceId:e,importId:t}),refetchInterval:e=>ue(e.state.data)?1e3:!1}),i=O(`cancel_import`);if(r.error)return(0,Q.jsx)(x,{error:r.error});let a=r.data;if(!a)return(0,Q.jsx)(E,{});let{done:o,failed:s,total:c}=a.progress,l=c?Math.round((o+s)/c*100):0;return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`p`,{className:`mt-0 mb-2 text-sm`,children:[a.name,` `,(0,Q.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:a.key})]}),(0,Q.jsxs)(`div`,{className:`my-3`,children:[(0,Q.jsx)(`div`,{role:`progressbar`,"aria-label":d(`admin.import.progressLabel`),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":l,className:`h-1.5 overflow-hidden rounded-full bg-border`,children:(0,Q.jsx)(`div`,{className:`h-full bg-primary transition-[width] duration-300`,style:{width:`${l}%`}})}),(0,Q.jsx)(`p`,{role:`status`,className:`mt-2 mb-0 text-sm text-muted-foreground tabular-nums`,children:fe(a)})]}),a.errors.length>0&&(0,Q.jsx)(`ul`,{"aria-label":d(`admin.import.notImported`),className:`m-0 list-none space-y-1 p-0 text-sm`,children:a.errors.map((e,t)=>(0,Q.jsxs)(`li`,{className:`text-destructive`,children:[e.label,`: `,e.message]},t))}),(0,Q.jsx)(x,{error:i.error}),(0,Q.jsxs)(g,{children:[a.status===`running`&&(0,Q.jsx)(A,{disabled:i.isPending,onClick:()=>void i.mutateAsync({workspaceId:e,importId:a.id,expectedVersion:a.version}).catch(()=>{}),children:d(`admin.import.stop`)}),a.projectId&&a.status!==`running`&&(0,Q.jsx)(A,{variant:`default`,render:(0,Q.jsx)(W,{to:`/projects/$projectId`,params:{projectId:a.projectId}}),onClick:n,children:d(`admin.import.openProject`)})]})]})}function Ce({workspace:e,people:t,canTransfer:n}){let[r,i]=(0,Z.useState)(!1),[a,o]=(0,Z.useState)(``),s=O(`transfer_workspace`),c=t.find(t=>t.userId===e.ownerId),l=t.filter(t=>t.role===`admin`&&!t.disabled&&t.userId!==e.ownerId),u=l.find(e=>e.email===a);return(0,Q.jsx)(K,{title:d(`settings.workspace.owner`),description:c?`${c.name} · ${c.email}`:e.ownerId?void 0:d(`settings.workspace.noOwner`),children:n&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(A,{onClick:()=>{o(``),i(!0)},children:d(`settings.workspace.transfer`)}),(0,Q.jsx)(w,{title:d(`settings.workspace.transfer`),open:r,onOpenChange:e=>{i(e),e||s.reset()},busy:s.isPending,children:(0,Q.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),u&&s.mutateAsync({workspaceId:e.id,expectedVersion:e.version,userId:u.userId}).then(()=>{i(!1),S.success(d(`settings.workspace.transferred`,{name:u.name,workspace:e.name}))}).catch(()=>{})},children:[l.length?(0,Q.jsx)(Y,{people:l,value:a,onChange:o,disabled:s.isPending,label:d(`settings.workspace.newOwner`),anyAccount:!1}):(0,Q.jsx)(`p`,{className:`mt-0 text-sm text-muted-foreground`,children:d(`settings.workspace.noEligible`)}),(0,Q.jsxs)(`p`,{className:`mt-0 text-sm text-muted-foreground`,children:[u?d(`settings.workspace.chosenCan`,{name:u.name}):d(`settings.workspace.newOwnerCan`),` `,c?d(`settings.workspace.ownerStays`,{name:c.name}):``]}),(0,Q.jsx)(N,{error:s.error,pending:s.isPending,submitLabel:d(`settings.workspace.transfer`),pendingLabel:d(`settings.workspace.transferring`),submitDisabled:!u,onCancel:()=>i(!1)})]})})]})})}function we({workspaceId:e,section:t}){let n=b(),r=I(),i=F(),a=r.data?.find(t=>t.id===e),o=P({...v.query(`list_workspace_members`,{workspaceId:e}),enabled:!!a?.role}),s=P({...v.query(`list_workspace_roles`,{workspaceId:e}),enabled:!!a?.role}),c=O(`update_workspace`),u=O(`set_workspace_member`);if(r.isPending)return(0,Q.jsx)(E,{});if(!a?.role)return(0,Q.jsxs)(te,{title:d(`settings.workspace.unavailable`),children:[(0,Q.jsx)(x,{error:r.error}),(0,Q.jsx)(A,{render:(0,Q.jsx)(W,{to:`/`}),children:d(`settings.workspace.backToProjects`)})]});let f=l(a),p={admin:a.role===`admin`,capabilities:f},m=f.includes(`workspace.manage`),h=a.ownerId===n.id||n.admin,g=i.data?.filter(e=>e.workspaceId===a.id).length??0;return(0,Q.jsx)(Q.Fragment,{children:(0,Q.jsxs)(q,{title:d(`settings.workspace.title`),section:t,children:[(0,Q.jsxs)(G,{value:`general`,children:[(0,Q.jsx)(`section`,{children:(0,Q.jsx)(oe,{name:a.name,description:a.description,nameLabel:d(`settings.workspace.name`),canEdit:m,version:a.version,pending:c.isPending,error:c.error,editLabel:d(`settings.workspace.edit`),badges:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(L,{variant:`secondary`,className:`ml-0.5 font-mono text-[10px] font-normal`,children:a.slug}),(0,Q.jsx)(_,{label:d(`settings.workspace.copyKey`),value:a.slug,size:`icon-xs`})]}),onSave:t=>c.mutateAsync({workspaceId:e,expectedVersion:a.version,name:t.name,description:t.description}).then(()=>S.success(d(`settings.workspace.saved`)))})}),(0,Q.jsxs)(`section`,{children:[(0,Q.jsx)(K,{title:d(`settings.workspace.projects`),description:d(`settings.workspace.projectCount`,{count:g}),children:(0,Q.jsx)(A,{render:(0,Q.jsx)(W,{to:`/`}),children:d(`settings.workspace.viewProjects`)})}),(0,Q.jsx)(Ce,{workspace:a,people:o.data??[],canTransfer:h}),(0,Q.jsx)(K,{title:d(`settings.workspace.members`),description:d(`settings.workspace.membersDescription`),children:(0,Q.jsx)(A,{render:(0,Q.jsx)(W,{to:`/workspaces/$workspaceId/settings`,params:{workspaceId:e},search:{section:`members`}}),children:d(`settings.workspace.manageMembers`)})}),f.includes(`ticket.write`)&&(0,Q.jsx)(pe,{workspaceId:e}),h&&(0,Q.jsx)(z,{workspace:a})]})]}),(0,Q.jsxs)(G,{value:`members`,children:[(0,Q.jsx)(X,{people:o.data??[],pending:u.isPending,loading:o.isPending,error:o.error,canAdmin:f.includes(`member.manage`),ownerId:a.ownerId,scope:`workspace`,roles:s.data,authority:p,onChange:(t,n)=>u.mutateAsync({workspaceId:e,email:t,role:n})}),f.includes(`invitation.manage`)&&(0,Q.jsx)(U,{workspaceId:e})]}),(0,Q.jsx)(G,{value:`roles`,children:(0,Q.jsx)($,{workspaceId:e,canEdit:m,authority:p})}),(0,Q.jsx)(G,{value:`labels`,children:(0,Q.jsx)(se,{owner:{workspaceId:e},canAdmin:m})})]})})}export{we as WorkspaceSettings};
|
|
1
|
+
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{J as t,K as n,Nn as r,Qt as i,Y as a,Yt as o,an as s,bt as c,c as l,et as u,mn as d,q as f,r as p,xt as m,yt as h}from"./default-Dnep8Yat.js";import{$ as g,B as ee,G as te,H as _,Hi as v,J as y,Ji as b,K as x,Oa as S,Pt as C,Q as w,V as T,X as E,Y as D,Zi as O,at as k,di as A,it as j,nt as M,q as N,qa as P,qi as F,ra as I,vt as L}from"./search-DwsPEC4E.js";import{g as R}from"./item-BD1Poxfs.js";import{a as z,c as B}from"./project-lifecycle-BBHcRi6p.js";import{n as V,r as H}from"./CompositeItem-Tueq2VKR.js";import{t as U}from"./invitations-C5WbdDUQ.js";import{t as ne}from"./upload-BeTAGU_W.js";import{Ht as W,c as re,i as G,n as K,o as ie,r as q,s as ae,t as oe}from"./index-Ds3IHeIi.js";import{n as J,r as Y,t as X}from"./member-directory-BjUy1KuK.js";import{t as se}from"./label-settings-BaikCfal.js";var Z=e(r(),1),Q=p();function $({workspaceId:e,canEdit:t,authority:n}){let r=P(v.query(`list_workspace_roles`,{workspaceId:e})),i=O(`create_workspace_role`),a=O(`update_workspace_role`),o=O(`delete_workspace_role`),[s,l]=(0,Z.useState)(null),[u,f]=(0,Z.useState)(null),p=r.data??[],m=i.isPending||a.isPending,g=e=>n.capabilities.includes(e),_=e=>(e.id!==`admin`||n.admin)&&e.permissions.every(g);function b(e){i.reset(),a.reset(),l({role:e,name:e?.name??``,permissions:e?[...e.permissions]:[]})}function A(t,n,r){return t?a.mutateAsync({workspaceId:e,roleId:t.id,expectedVersion:t.version,name:n,permissions:r}):i.mutateAsync({workspaceId:e,name:n,permissions:r})}async function M(t,n){await o.mutateAsync({workspaceId:e,roleId:t.id,expectedVersion:t.version,...n?{reassignTo:n}:{}}),f(null),S.success(d(`settings.roles.deleted`))}let F=u?p.filter(e=>e.id!==u.role.id&&_(e)):[];return(0,Q.jsxs)(`section`,{children:[(0,Q.jsx)(j,{title:d(`settings.roles.title`),action:t&&(0,Q.jsx)(y,{label:d(`settings.roles.new`),variant:`default`,onClick:()=>b(null),children:(0,Q.jsx)(R,{})})}),(0,Q.jsx)(x,{error:r.error}),r.isPending?(0,Q.jsx)(E,{}):p.length?p.map(e=>{let n=t&&!e.seeded&&_(e);return(0,Q.jsxs)(K,{compact:!0,title:(0,Q.jsxs)(`span`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,Q.jsx)(`span`,{dir:`auto`,className:`min-w-0`,children:J(e)}),e.seeded&&(0,Q.jsx)(`span`,{className:`shrink-0 text-xs font-normal text-muted-foreground`,children:d(`settings.roles.builtIn`)})]}),description:e.permissions.length?e.permissions.map(e=>h[e].label).join(` · `):d(`settings.roles.readOnly`),children:[(0,Q.jsx)(`span`,{className:`text-xs whitespace-nowrap text-muted-foreground tabular-nums`,children:d(`settings.roles.memberships`,{count:e.assigned})}),n&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(y,{label:d(`settings.roles.editNamed`,{name:J(e)}),onClick:()=>b(e),children:(0,Q.jsx)(H,{})}),e.assigned?(0,Q.jsx)(y,{label:d(`settings.roles.deleteNamed`,{name:J(e)}),onClick:()=>{o.reset(),f({role:e,reassignTo:`reader`})},children:(0,Q.jsx)(V,{})}):(0,Q.jsx)(T,{label:d(`settings.roles.deleteNamed`,{name:J(e)}),icon:(0,Q.jsx)(V,{}),danger:!0,description:d(`settings.roles.deleteUnused`,{name:J(e)}),onConfirm:()=>M(e)})]})]},e.id)}):!r.error&&(0,Q.jsx)(te,{title:d(`settings.roles.empty`)}),(0,Q.jsx)(w,{title:s?.role?d(`settings.roles.edit`):d(`settings.roles.new`),open:!!s,onOpenChange:e=>{e||l(null)},busy:m,children:s&&(0,Q.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),A(s.role,s.name.trim(),s.permissions).then(()=>{l(null),S.success(d(`settings.roles.saved`))}).catch(()=>{})},children:[(0,Q.jsx)(D,{label:d(`settings.roles.name`),value:s.name,onChange:e=>l({...s,name:e.target.value}),maxLength:40,required:!0,autoFocus:!0}),(0,Q.jsxs)(`fieldset`,{className:`mb-4`,children:[(0,Q.jsx)(`legend`,{className:`mb-1 text-sm font-medium`,children:d(`settings.roles.actions`)}),(0,Q.jsx)(`p`,{className:`mt-0 mb-1 text-xs text-muted-foreground`,children:d(`settings.roles.everyoneReads`)}),c.map(e=>(0,Q.jsx)(ee,{label:h[e].label,description:h[e].description,checked:s.permissions.includes(e),disabled:m||!g(e),onCheckedChange:t=>l({...s,permissions:t?[...s.permissions,e]:s.permissions.filter(t=>t!==e)})},e))]}),s.role&&s.role.assigned>0&&(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:d(`settings.roles.changesApply`,{count:s.role.assigned})}),(0,Q.jsx)(N,{error:i.error??a.error,pending:m,submitLabel:d(`settings.roles.save`),submitDisabled:!s.name.trim(),onCancel:()=>l(null)})]})}),(0,Q.jsx)(w,{title:d(`settings.roles.delete`),open:!!u,onOpenChange:e=>{e||f(null)},busy:o.isPending,children:u&&(0,Q.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),M(u.role,u.reassignTo).catch(()=>{})},children:[(0,Q.jsx)(`p`,{className:`mt-0 text-sm text-muted-foreground`,children:d(`settings.roles.reassignDescription`,{count:u.role.assigned,name:J(u.role)})}),(0,Q.jsx)(k,{label:d(`settings.roles.moveTo`),value:u.reassignTo,onValueChange:e=>e&&f({...u,reassignTo:e}),children:F.map(e=>(0,Q.jsx)(C,{value:e.id,children:J(e)},e.id))}),(0,Q.jsx)(N,{error:o.error,pending:o.isPending,danger:!0,submitLabel:d(`settings.roles.delete`),pendingLabel:d(`settings.lifecycle.deleting`),onCancel:()=>f(null)})]})})]})}var ce=[`tickets`,`workflow`,`fields`,`labels`,`relations`,`comments`,`evidence`,`links`],le=()=>d(`admin.import.notExport`),ue=e=>e?.status===`running`,de=e=>e.issues.some(e=>e.severity===`error`);function fe(e){let{done:t,failed:n,total:r}=e.progress,i={status:a[e.status],done:t,failed:n,count:r};return d(n?`admin.import.progressFailed`:`admin.import.progress`,i)}function pe({workspaceId:e}){let[t,n]=(0,Z.useState)(!1),[r,i]=(0,Z.useState)(null),a=P({...v.query(`list_imports`,{workspaceId:e}),refetchInterval:e=>e.state.data?.some(ue)?2e3:!1}),o=e=>{i(e),n(!0)};return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(K,{title:d(`admin.import.title`),description:d(`admin.import.description`),children:(0,Q.jsxs)(A,{onClick:()=>o(null),children:[(0,Q.jsx)(ne,{}),d(`admin.import.action`)]})}),a.data?.map(e=>(0,Q.jsx)(K,{compact:!0,title:(0,Q.jsxs)(Q.Fragment,{children:[e.name,` `,(0,Q.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:e.key})]}),description:(0,Q.jsxs)(Q.Fragment,{children:[fe(e),` · `,(0,Q.jsx)(M,{value:e.updatedAt})]}),children:(0,Q.jsx)(A,{size:`sm`,variant:`ghost`,"aria-label":d(`admin.import.detailsOf`,{name:e.name}),onClick:()=>o(e.id),children:d(`admin.import.details`)})},e.id)),(0,Q.jsx)(w,{title:d(`admin.import.action`),open:t,onOpenChange:n,children:r?(0,Q.jsx)(Se,{workspaceId:e,runId:r,onClose:()=>n(!1)}):(0,Q.jsx)(be,{workspaceId:e,onStarted:i,onCancel:()=>n(!1)})})]})}var me=[`file`,...f],he=e=>e===`file`?d(`admin.import.exportFile`):n[e].label,ge={edition:`cloud`,signIn:`password`,baseUrl:``,workspace:``,email:``,username:``,password:``,apiKey:``,token:``},_e=e=>({name:`baseUrl`,label:d(`admin.import.siteUrl`),type:`url`,placeholder:e}),ve={linear:()=>[{name:`token`,label:d(`admin.import.apiKey`),type:`password`}],jira:({edition:e})=>[{name:`edition`,label:d(`admin.import.jiraEdition`),choices:u},_e(e===`cloud`?`https://example.atlassian.net`:`https://jira.example.com`),...e===`cloud`?[{name:`email`,label:d(`admin.import.accountEmail`),type:`email`},{name:`token`,label:d(`admin.import.apiToken`),type:`password`}]:[{name:`token`,label:d(`admin.import.personalToken`),type:`password`}]],trello:()=>[{name:`apiKey`,label:d(`admin.import.apiKey`),type:`password`},{name:`token`,label:d(`admin.import.token`),type:`password`}],plane:()=>[{..._e(`https://api.plane.so`),label:d(`admin.import.apiUrl`)},{name:`workspace`,label:d(`admin.import.workspaceSlug`),placeholder:`my-team`},{name:`token`,label:d(`admin.import.apiToken`),type:`password`}],planka:({signIn:e})=>[_e(`https://planka.example.com`),{name:`signIn`,label:d(`admin.import.signInWith`),choices:m},...e===`password`?[{name:`username`,label:d(`admin.import.username`)},{name:`password`,label:d(`admin.import.password`),type:`password`}]:[{name:`token`,label:d(`admin.import.apiKey`),type:`password`}]],kaneo:()=>[_e(`https://kaneo.example.com`),{name:`token`,label:d(`admin.import.apiKey`),type:`password`}]},ye=(e,t)=>/^[A-Z][A-Z0-9]{1,9}$/.test(e)?e:re(t);function be({workspaceId:e,onStarted:r,onCancel:a}){let[s,c]=(0,Z.useState)(`file`),[l,u]=(0,Z.useState)(ge),[f,p]=(0,Z.useState)(),[m,h]=(0,Z.useState)(``),[g,te]=(0,Z.useState)(!0),[_,v]=(0,Z.useState)(),[y,b]=(0,Z.useState)(),[S,w]=(0,Z.useState)(),[T,E]=(0,Z.useState)(``),[A,j]=(0,Z.useState)(``),[M,P]=(0,Z.useState)(`workspace`),[F,I]=(0,Z.useState)(),L=O(`list_import_source_projects`),R=O(`preview_import`),z=O(`preview_source_import`),B=O(`start_import`),V=(0,Z.useRef)(0),H=()=>{V.current+=1,I(void 0),R.reset(),z.reset()},U=e=>t=>{e(t),H()},ne=()=>{H(),p(void 0),h(``),L.reset()},W=e=>{e&&(h(e.ref),E(e.name),j(ye(e.key,e.name)),H())},re=e=>t=>{u(n=>({...n,[e]:t})),w(void 0),ne()},G=s===`file`?[]:ve[s](l),K=s===`file`?void 0:t.safeParse({provider:s,...Object.fromEntries(G.map(e=>[e.name,l[e.name]]))}),q=K?.success?K.data:void 0,oe=s===`file`?!!_:!!m,J=!!F&&!de(F),Y=s!==`file`&&!f,X=e=>V.current===e,se=s===`file`?R:z,$=s===`file`?void 0:n[s];return(0,Q.jsxs)(`form`,{onSubmit:t=>{t.preventDefault();let n=V.current;J?B.mutateAsync({workspaceId:e,importId:F.id,expectedVersion:F.version}).then(e=>r(e.id)).catch(()=>{}):Y&&!q?w(Error(K?.error?.issues[0]?.message??d(`admin.import.checkConnection`))):q&&Y?L.mutateAsync({workspaceId:e,source:q}).then(e=>{X(n)&&(p(e),W(e[0]))}).catch(()=>{}):q?z.mutateAsync({workspaceId:e,key:A,name:T,visibility:M,source:q,sourceProject:m,includeComments:g}).then(e=>{X(n)&&I(e)}).catch(()=>{}):_&&R.mutateAsync({workspaceId:e,key:A,name:T,visibility:M,bundle:_}).then(e=>{X(n)&&I(e)}).catch(()=>{})},children:[(0,Q.jsx)(k,{label:d(`admin.import.source`),value:s,onValueChange:e=>{let t=me.find(t=>t===e);t&&(c(t),v(void 0),b(void 0),u(ge),w(void 0),ne())},children:me.map(e=>(0,Q.jsx)(C,{value:e,children:he(e)},e))}),s===`file`?(0,Q.jsx)(D,{label:d(`admin.import.file`),type:`file`,accept:`application/json,.json`,required:!0,onChange:e=>{let t=e.currentTarget.files?.[0];if(v(void 0),H(),b(void 0),!t)return;let n=V.current;t.text().then(e=>{let t=JSON.parse(e);if(!o.pick({format:!0}).safeParse(t).success)throw Error(le());let r=i.parse(t);V.current===n&&(v(r),E(r.project.name),j(ye(r.project.key,r.project.name)))}).catch(e=>{V.current===n&&b(e instanceof SyntaxError?Error(le()):e)})}}):(0,Q.jsxs)(Q.Fragment,{children:[G.map(e=>e.choices?(0,Q.jsx)(k,{label:e.label,value:l[e.name],onValueChange:t=>{t!==null&&re(e.name)(t)},children:Object.entries(e.choices).map(([e,t])=>(0,Q.jsx)(C,{value:e,children:t},e))},e.name):(0,Q.jsx)(D,{label:e.label,type:e.type??`text`,required:!0,autoComplete:`off`,placeholder:e.placeholder,value:l[e.name],onChange:t=>re(e.name)(t.target.value)},e.name)),(0,Q.jsx)(`p`,{className:`-mt-2 mb-4 text-xs text-muted-foreground`,children:$?.setup}),(0,Q.jsx)(x,{error:S??L.error}),f&&$&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(k,{label:$.project,value:m,onValueChange:e=>W(f.find(t=>t.ref===e)),children:f.map(e=>(0,Q.jsxs)(C,{value:e.ref,children:[e.group&&(0,Q.jsxs)(`span`,{className:`text-muted-foreground`,children:[e.group,` /`]}),` `,e.name,` `,(0,Q.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:e.key})]},e.ref))}),f.length===0&&(0,Q.jsx)(`p`,{className:`-mt-2 mb-4 text-sm text-muted-foreground`,children:d(`admin.import.noProjects`,{label:$.project})}),(0,Q.jsx)(ee,{label:d(`admin.import.includeComments`),checked:g,onCheckedChange:U(te)})]})]}),(0,Q.jsx)(x,{error:y}),oe&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(D,{label:d(`admin.import.projectName`),value:T,onChange:e=>U(E)(e.target.value),required:!0,maxLength:120}),(0,Q.jsx)(ie,{value:A,onChange:U(j)}),(0,Q.jsx)(ae,{value:M,onChange:U(P)})]}),F&&(0,Q.jsx)(xe,{run:F}),(0,Q.jsx)(N,{error:se.error??B.error,pending:L.isPending||se.isPending||B.isPending,submitLabel:d(J?`admin.import.start`:Y?`admin.import.connect`:`admin.import.preview`),pendingLabel:d(J?`admin.import.starting`:Y?`admin.import.connecting`:`admin.import.checking`),submitDisabled:Y?!1:!oe||!!F&&!J,onCancel:a})]})}function xe({run:e}){let t=e.members.filter(e=>e.userId),n=e.members.filter(e=>!e.userId),r=[...ce.map(t=>[d(`admin.import.count.${t}`),e.counts[t]?String(e.counts[t]):``]),[d(`admin.import.matched`),s(t.map(e=>e.name))],[d(`admin.import.unmatched`),s(n.map(e=>e.name))]];return(0,Q.jsxs)(`section`,{"aria-label":d(`admin.import.previewLabel`),className:`mt-2 border-t pt-3`,children:[(0,Q.jsx)(B,{rows:r}),e.issues.length>0&&(0,Q.jsx)(`ul`,{className:`m-0 list-none space-y-1.5 p-0 text-sm`,children:e.issues.map(e=>(0,Q.jsxs)(`li`,{className:e.severity===`error`?`text-destructive`:`text-muted-foreground`,children:[(0,Q.jsx)(`span`,{className:`sr-only`,children:e.severity===`error`?d(`admin.import.errorPrefix`):d(`admin.import.notePrefix`)}),e.message]},e.message))})]})}function Se({workspaceId:e,runId:t,onClose:n}){let r=P({...v.query(`get_import`,{workspaceId:e,importId:t}),refetchInterval:e=>ue(e.state.data)?1e3:!1}),i=O(`cancel_import`);if(r.error)return(0,Q.jsx)(x,{error:r.error});let a=r.data;if(!a)return(0,Q.jsx)(E,{});let{done:o,failed:s,total:c}=a.progress,l=c?Math.round((o+s)/c*100):0;return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`p`,{className:`mt-0 mb-2 text-sm`,children:[a.name,` `,(0,Q.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:a.key})]}),(0,Q.jsxs)(`div`,{className:`my-3`,children:[(0,Q.jsx)(`div`,{role:`progressbar`,"aria-label":d(`admin.import.progressLabel`),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":l,className:`h-1.5 overflow-hidden rounded-full bg-border`,children:(0,Q.jsx)(`div`,{className:`h-full bg-primary transition-[width] duration-300`,style:{width:`${l}%`}})}),(0,Q.jsx)(`p`,{role:`status`,className:`mt-2 mb-0 text-sm text-muted-foreground tabular-nums`,children:fe(a)})]}),a.errors.length>0&&(0,Q.jsx)(`ul`,{"aria-label":d(`admin.import.notImported`),className:`m-0 list-none space-y-1 p-0 text-sm`,children:a.errors.map((e,t)=>(0,Q.jsxs)(`li`,{className:`text-destructive`,children:[e.label,`: `,e.message]},t))}),(0,Q.jsx)(x,{error:i.error}),(0,Q.jsxs)(g,{children:[a.status===`running`&&(0,Q.jsx)(A,{disabled:i.isPending,onClick:()=>void i.mutateAsync({workspaceId:e,importId:a.id,expectedVersion:a.version}).catch(()=>{}),children:d(`admin.import.stop`)}),a.projectId&&a.status!==`running`&&(0,Q.jsx)(A,{variant:`default`,render:(0,Q.jsx)(W,{to:`/projects/$projectId`,params:{projectId:a.projectId}}),onClick:n,children:d(`admin.import.openProject`)})]})]})}function Ce({workspace:e,people:t,canTransfer:n}){let[r,i]=(0,Z.useState)(!1),[a,o]=(0,Z.useState)(``),s=O(`transfer_workspace`),c=t.find(t=>t.userId===e.ownerId),l=t.filter(t=>t.role===`admin`&&!t.disabled&&t.userId!==e.ownerId),u=l.find(e=>e.email===a);return(0,Q.jsx)(K,{title:d(`settings.workspace.owner`),description:c?`${c.name} · ${c.email}`:e.ownerId?void 0:d(`settings.workspace.noOwner`),children:n&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(A,{onClick:()=>{o(``),i(!0)},children:d(`settings.workspace.transfer`)}),(0,Q.jsx)(w,{title:d(`settings.workspace.transfer`),open:r,onOpenChange:e=>{i(e),e||s.reset()},busy:s.isPending,children:(0,Q.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),u&&s.mutateAsync({workspaceId:e.id,expectedVersion:e.version,userId:u.userId}).then(()=>{i(!1),S.success(d(`settings.workspace.transferred`,{name:u.name,workspace:e.name}))}).catch(()=>{})},children:[l.length?(0,Q.jsx)(Y,{people:l,value:a,onChange:o,disabled:s.isPending,label:d(`settings.workspace.newOwner`),anyAccount:!1}):(0,Q.jsx)(`p`,{className:`mt-0 text-sm text-muted-foreground`,children:d(`settings.workspace.noEligible`)}),(0,Q.jsxs)(`p`,{className:`mt-0 text-sm text-muted-foreground`,children:[u?d(`settings.workspace.chosenCan`,{name:u.name}):d(`settings.workspace.newOwnerCan`),` `,c?d(`settings.workspace.ownerStays`,{name:c.name}):``]}),(0,Q.jsx)(N,{error:s.error,pending:s.isPending,submitLabel:d(`settings.workspace.transfer`),pendingLabel:d(`settings.workspace.transferring`),submitDisabled:!u,onCancel:()=>i(!1)})]})})]})})}function we({workspaceId:e,section:t}){let n=b(),r=I(),i=F(),a=r.data?.find(t=>t.id===e),o=P({...v.query(`list_workspace_members`,{workspaceId:e}),enabled:!!a?.role}),s=P({...v.query(`list_workspace_roles`,{workspaceId:e}),enabled:!!a?.role}),c=O(`update_workspace`),u=O(`set_workspace_member`);if(r.isPending)return(0,Q.jsx)(E,{});if(!a?.role)return(0,Q.jsxs)(te,{title:d(`settings.workspace.unavailable`),children:[(0,Q.jsx)(x,{error:r.error}),(0,Q.jsx)(A,{render:(0,Q.jsx)(W,{to:`/`}),children:d(`settings.workspace.backToProjects`)})]});let f=l(a),p={admin:a.role===`admin`,capabilities:f},m=f.includes(`workspace.manage`),h=a.ownerId===n.id||n.admin,g=i.data?.filter(e=>e.workspaceId===a.id).length??0;return(0,Q.jsx)(Q.Fragment,{children:(0,Q.jsxs)(q,{title:d(`settings.workspace.title`),section:t,children:[(0,Q.jsxs)(G,{value:`general`,children:[(0,Q.jsx)(`section`,{children:(0,Q.jsx)(oe,{name:a.name,description:a.description,nameLabel:d(`settings.workspace.name`),canEdit:m,version:a.version,pending:c.isPending,error:c.error,editLabel:d(`settings.workspace.edit`),badges:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(L,{variant:`secondary`,className:`ml-0.5 font-mono text-[10px] font-normal`,children:a.slug}),(0,Q.jsx)(_,{label:d(`settings.workspace.copyKey`),value:a.slug,size:`icon-xs`})]}),onSave:t=>c.mutateAsync({workspaceId:e,expectedVersion:a.version,name:t.name,description:t.description}).then(()=>S.success(d(`settings.workspace.saved`)))})}),(0,Q.jsxs)(`section`,{children:[(0,Q.jsx)(K,{title:d(`settings.workspace.projects`),description:d(`settings.workspace.projectCount`,{count:g}),children:(0,Q.jsx)(A,{render:(0,Q.jsx)(W,{to:`/`}),children:d(`settings.workspace.viewProjects`)})}),(0,Q.jsx)(Ce,{workspace:a,people:o.data??[],canTransfer:h}),(0,Q.jsx)(K,{title:d(`settings.workspace.members`),description:d(`settings.workspace.membersDescription`),children:(0,Q.jsx)(A,{render:(0,Q.jsx)(W,{to:`/workspaces/$workspaceId/settings`,params:{workspaceId:e},search:{section:`members`}}),children:d(`settings.workspace.manageMembers`)})}),f.includes(`ticket.write`)&&(0,Q.jsx)(pe,{workspaceId:e}),h&&(0,Q.jsx)(z,{workspace:a})]})]}),(0,Q.jsxs)(G,{value:`members`,children:[(0,Q.jsx)(X,{people:o.data??[],pending:u.isPending,loading:o.isPending,error:o.error,canAdmin:f.includes(`member.manage`),ownerId:a.ownerId,scope:`workspace`,roles:s.data,authority:p,onChange:(t,n)=>u.mutateAsync({workspaceId:e,email:t,role:n})}),f.includes(`invitation.manage`)&&(0,Q.jsx)(U,{workspaceId:e})]}),(0,Q.jsx)(G,{value:`roles`,children:(0,Q.jsx)($,{workspaceId:e,canEdit:m,authority:p})}),(0,Q.jsx)(G,{value:`labels`,children:(0,Q.jsx)(se,{owner:{workspaceId:e},canAdmin:m})})]})})}export{we as WorkspaceSettings};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e,l as t,o as n,s as r}from"./en-US-DKYSujv3.js";import{t as i}from"./isSameWeek-2ftYGvBT.js";import{Dt as a}from"./index-
|
|
1
|
+
import{c as e,l as t,o as n,s as r}from"./en-US-DKYSujv3.js";import{t as i}from"./isSameWeek-2ftYGvBT.js";import{Dt as a}from"./index-Ds3IHeIi.js";var o={lessThanXSeconds:{one:`不到 1 秒`,other:`不到 {{count}} 秒`},xSeconds:{one:`1 秒`,other:`{{count}} 秒`},halfAMinute:`半分钟`,lessThanXMinutes:{one:`不到 1 分钟`,other:`不到 {{count}} 分钟`},xMinutes:{one:`1 分钟`,other:`{{count}} 分钟`},xHours:{one:`1 小时`,other:`{{count}} 小时`},aboutXHours:{one:`大约 1 小时`,other:`大约 {{count}} 小时`},xDays:{one:`1 天`,other:`{{count}} 天`},aboutXWeeks:{one:`大约 1 个星期`,other:`大约 {{count}} 个星期`},xWeeks:{one:`1 个星期`,other:`{{count}} 个星期`},aboutXMonths:{one:`大约 1 个月`,other:`大约 {{count}} 个月`},xMonths:{one:`1 个月`,other:`{{count}} 个月`},aboutXYears:{one:`大约 1 年`,other:`大约 {{count}} 年`},xYears:{one:`1 年`,other:`{{count}} 年`},overXYears:{one:`超过 1 年`,other:`超过 {{count}} 年`},almostXYears:{one:`将近 1 年`,other:`将近 {{count}} 年`}},s=(e,t,n)=>{let r,i=o[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,String(t)),n?.addSuffix?n.comparison&&n.comparison>0?r+`内`:r+`前`:r},c={date:t({formats:{full:`y'年'M'月'd'日' EEEE`,long:`y'年'M'月'd'日'`,medium:`yyyy-MM-dd`,short:`yy-MM-dd`},defaultWidth:`full`}),time:t({formats:{full:`zzzz a h:mm:ss`,long:`z a h:mm:ss`,medium:`a h:mm:ss`,short:`a h:mm`},defaultWidth:`full`}),dateTime:t({formats:{full:`{{date}} {{time}}`,long:`{{date}} {{time}}`,medium:`{{date}} {{time}}`,short:`{{date}} {{time}}`},defaultWidth:`full`})};function l(e,t,n){return i(e,t,n)?`eeee p`:e.getTime()>t.getTime()?`'下个'eeee p`:`'上个'eeee p`}var u={lastWeek:l,yesterday:`'昨天' p`,today:`'今天' p`,tomorrow:`'明天' p`,nextWeek:l,other:`PP p`},d={code:`zh-CN`,formatDistance:s,formatLong:c,formatRelative:(e,t,n,r)=>{let i=u[e];return typeof i==`function`?i(t,n,r):i},localize:{ordinalNumber:(e,t)=>{let n=Number(e);switch(t?.unit){case`date`:return n.toString()+`日`;case`hour`:return n.toString()+`时`;case`minute`:return n.toString()+`分`;case`second`:return n.toString()+`秒`;default:return`第 `+n.toString()}},era:e({values:{narrow:[`前`,`公元`],abbreviated:[`前`,`公元`],wide:[`公元前`,`公元`]},defaultWidth:`wide`}),quarter:e({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`第一季`,`第二季`,`第三季`,`第四季`],wide:[`第一季度`,`第二季度`,`第三季度`,`第四季度`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:e({values:{narrow:[`一`,`二`,`三`,`四`,`五`,`六`,`七`,`八`,`九`,`十`,`十一`,`十二`],abbreviated:[`1月`,`2月`,`3月`,`4月`,`5月`,`6月`,`7月`,`8月`,`9月`,`10月`,`11月`,`12月`],wide:[`一月`,`二月`,`三月`,`四月`,`五月`,`六月`,`七月`,`八月`,`九月`,`十月`,`十一月`,`十二月`]},defaultWidth:`wide`}),day:e({values:{narrow:[`日`,`一`,`二`,`三`,`四`,`五`,`六`],short:[`日`,`一`,`二`,`三`,`四`,`五`,`六`],abbreviated:[`周日`,`周一`,`周二`,`周三`,`周四`,`周五`,`周六`],wide:[`星期日`,`星期一`,`星期二`,`星期三`,`星期四`,`星期五`,`星期六`]},defaultWidth:`wide`}),dayPeriod:e({values:{narrow:{am:`上`,pm:`下`,midnight:`凌晨`,noon:`午`,morning:`早`,afternoon:`下午`,evening:`晚`,night:`夜`},abbreviated:{am:`上午`,pm:`下午`,midnight:`凌晨`,noon:`中午`,morning:`早晨`,afternoon:`中午`,evening:`晚上`,night:`夜间`},wide:{am:`上午`,pm:`下午`,midnight:`凌晨`,noon:`中午`,morning:`早晨`,afternoon:`中午`,evening:`晚上`,night:`夜间`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`上`,pm:`下`,midnight:`凌晨`,noon:`午`,morning:`早`,afternoon:`下午`,evening:`晚`,night:`夜`},abbreviated:{am:`上午`,pm:`下午`,midnight:`凌晨`,noon:`中午`,morning:`早晨`,afternoon:`中午`,evening:`晚上`,night:`夜间`},wide:{am:`上午`,pm:`下午`,midnight:`凌晨`,noon:`中午`,morning:`早晨`,afternoon:`中午`,evening:`晚上`,night:`夜间`}},defaultFormattingWidth:`wide`})},match:{ordinalNumber:n({matchPattern:/^(第\s*)?\d+(日|时|分|秒)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:r({matchPatterns:{narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^(前)/i,/^(公元)/i]},defaultParseWidth:`any`}),quarter:r({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:r({matchPatterns:{narrow:/^(一|二|三|四|五|六|七|八|九|十[二一]?)/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]?|\d|1[0-2])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一]?)月/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^(一|1(?!\d))/i,/^(二|2)/i,/^(三|3)/i,/^(四|4)/i,/^(五|5)/i,/^(六|6)/i,/^(七|7)/i,/^(八|8)/i,/^(九|9)/i,/^(十(?!(一|二))|10)/i,/^(十一|11)/i,/^(十二|12)/i]},defaultParseWidth:`any`}),day:r({matchPatterns:{narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},defaultParseWidth:`any`}),dayPeriod:r({matchPatterns:{any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},defaultParseWidth:`any`})},options:{weekStartsOn:1,firstWeekContainsDate:4},labels:{labelDayButton:(e,t,n,r)=>{let i=(r??new a(n)).format(e,`PPPP`);return t.today&&(i=`今天,${i}`),t.selected&&(i=`${i},已选择`),i},labelMonthDropdown:`选择月份`,labelNext:`前往下个月`,labelPrevious:`前往上个月`,labelWeekNumber:e=>`第 ${e} 周`,labelYearDropdown:`选择年份`,labelGrid:(e,t,n)=>(n??new a(t)).formatMonthYear(e),labelGridcell:(e,t,n,r)=>{let i=(r??new a(n)).format(e,`PPPP`);return t?.today&&(i=`今天,${i}`),i},labelNav:`导航栏`,labelWeekNumberHeader:`周数`,labelWeekday:(e,t,n)=>(n??new a(t)).format(e,`cccc`)}};export{d as zhCN};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e,l as t,o as n,s as r}from"./en-US-DKYSujv3.js";import{Dt as i}from"./index-
|
|
1
|
+
import{c as e,l as t,o as n,s as r}from"./en-US-DKYSujv3.js";import{Dt as i}from"./index-Ds3IHeIi.js";var a={lessThanXSeconds:{one:`少於 1 秒`,other:`少於 {{count}} 秒`},xSeconds:{one:`1 秒`,other:`{{count}} 秒`},halfAMinute:`半分鐘`,lessThanXMinutes:{one:`少於 1 分鐘`,other:`少於 {{count}} 分鐘`},xMinutes:{one:`1 分鐘`,other:`{{count}} 分鐘`},xHours:{one:`1 小時`,other:`{{count}} 小時`},aboutXHours:{one:`大約 1 小時`,other:`大約 {{count}} 小時`},xDays:{one:`1 天`,other:`{{count}} 天`},aboutXWeeks:{one:`大約 1 個星期`,other:`大約 {{count}} 個星期`},xWeeks:{one:`1 個星期`,other:`{{count}} 個星期`},aboutXMonths:{one:`大約 1 個月`,other:`大約 {{count}} 個月`},xMonths:{one:`1 個月`,other:`{{count}} 個月`},aboutXYears:{one:`大約 1 年`,other:`大約 {{count}} 年`},xYears:{one:`1 年`,other:`{{count}} 年`},overXYears:{one:`超過 1 年`,other:`超過 {{count}} 年`},almostXYears:{one:`將近 1 年`,other:`將近 {{count}} 年`}},o=(e,t,n)=>{let r,i=a[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,String(t)),n?.addSuffix?n.comparison&&n.comparison>0?r+`內`:r+`前`:r},s={date:t({formats:{full:`y'年'M'月'd'日' EEEE`,long:`y'年'M'月'd'日'`,medium:`yyyy-MM-dd`,short:`yy-MM-dd`},defaultWidth:`full`}),time:t({formats:{full:`zzzz a h:mm:ss`,long:`z a h:mm:ss`,medium:`a h:mm:ss`,short:`a h:mm`},defaultWidth:`full`}),dateTime:t({formats:{full:`{{date}} {{time}}`,long:`{{date}} {{time}}`,medium:`{{date}} {{time}}`,short:`{{date}} {{time}}`},defaultWidth:`full`})},c={lastWeek:`'上個'eeee p`,yesterday:`'昨天' p`,today:`'今天' p`,tomorrow:`'明天' p`,nextWeek:`'下個'eeee p`,other:`P`},l={code:`zh-TW`,formatDistance:o,formatLong:s,formatRelative:(e,t,n,r)=>c[e],localize:{ordinalNumber:(e,t)=>{let n=Number(e);switch(t?.unit){case`date`:return n+`日`;case`hour`:return n+`時`;case`minute`:return n+`分`;case`second`:return n+`秒`;default:return`第 `+n}},era:e({values:{narrow:[`前`,`公元`],abbreviated:[`前`,`公元`],wide:[`公元前`,`公元`]},defaultWidth:`wide`}),quarter:e({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`第一刻`,`第二刻`,`第三刻`,`第四刻`],wide:[`第一刻鐘`,`第二刻鐘`,`第三刻鐘`,`第四刻鐘`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:e({values:{narrow:[`一`,`二`,`三`,`四`,`五`,`六`,`七`,`八`,`九`,`十`,`十一`,`十二`],abbreviated:[`1月`,`2月`,`3月`,`4月`,`5月`,`6月`,`7月`,`8月`,`9月`,`10月`,`11月`,`12月`],wide:[`一月`,`二月`,`三月`,`四月`,`五月`,`六月`,`七月`,`八月`,`九月`,`十月`,`十一月`,`十二月`]},defaultWidth:`wide`}),day:e({values:{narrow:[`日`,`一`,`二`,`三`,`四`,`五`,`六`],short:[`日`,`一`,`二`,`三`,`四`,`五`,`六`],abbreviated:[`週日`,`週一`,`週二`,`週三`,`週四`,`週五`,`週六`],wide:[`星期日`,`星期一`,`星期二`,`星期三`,`星期四`,`星期五`,`星期六`]},defaultWidth:`wide`}),dayPeriod:e({values:{narrow:{am:`上`,pm:`下`,midnight:`凌晨`,noon:`午`,morning:`早`,afternoon:`下午`,evening:`晚`,night:`夜`},abbreviated:{am:`上午`,pm:`下午`,midnight:`凌晨`,noon:`中午`,morning:`早晨`,afternoon:`中午`,evening:`晚上`,night:`夜間`},wide:{am:`上午`,pm:`下午`,midnight:`凌晨`,noon:`中午`,morning:`早晨`,afternoon:`中午`,evening:`晚上`,night:`夜間`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`上`,pm:`下`,midnight:`凌晨`,noon:`午`,morning:`早`,afternoon:`下午`,evening:`晚`,night:`夜`},abbreviated:{am:`上午`,pm:`下午`,midnight:`凌晨`,noon:`中午`,morning:`早晨`,afternoon:`中午`,evening:`晚上`,night:`夜間`},wide:{am:`上午`,pm:`下午`,midnight:`凌晨`,noon:`中午`,morning:`早晨`,afternoon:`中午`,evening:`晚上`,night:`夜間`}},defaultFormattingWidth:`wide`})},match:{ordinalNumber:n({matchPattern:/^(第\s*)?\d+(日|時|分|秒)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:r({matchPatterns:{narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^(前)/i,/^(公元)/i]},defaultParseWidth:`any`}),quarter:r({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻鐘/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:r({matchPatterns:{narrow:/^(一|二|三|四|五|六|七|八|九|十[二一]?)/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]?|\d|1[0-2])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一]?)月/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^(一|1(?!\d))/i,/^(二|2)/i,/^(三|3)/i,/^(四|4)/i,/^(五|5)/i,/^(六|6)/i,/^(七|7)/i,/^(八|8)/i,/^(九|9)/i,/^(十(?!(一|二))|10)/i,/^(十一|11)/i,/^(十二|12)/i]},defaultParseWidth:`any`}),day:r({matchPatterns:{narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^週[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},defaultParseWidth:`any`}),dayPeriod:r({matchPatterns:{any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨)/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},defaultParseWidth:`any`})},options:{weekStartsOn:1,firstWeekContainsDate:4},labels:{labelDayButton:(e,t,n,r)=>{let a=(r??new i(n)).format(e,`PPPP`);return t.today&&(a=`今天,${a}`),t.selected&&(a=`${a},已選取`),a},labelMonthDropdown:`選擇月份`,labelNext:`前往下個月`,labelPrevious:`前往上個月`,labelWeekNumber:e=>`第 ${e} 週`,labelYearDropdown:`選擇年份`,labelGrid:(e,t,n)=>(n??new i(t)).formatMonthYear(e),labelGridcell:(e,t,n,r)=>{let a=(r??new i(n)).format(e,`PPPP`);return t?.today&&(a=`今天,${a}`),a},labelNav:`導覽列`,labelWeekNumberHeader:`週數`,labelWeekday:(e,t,n)=>(n??new i(t)).format(e,`cccc`)}};export{l as zhTW};
|
package/apps/web/dist/index.html
CHANGED
|
@@ -20,20 +20,20 @@
|
|
|
20
20
|
<meta name="twitter:image" content="/brand/social.png" />
|
|
21
21
|
<meta name="description" content="Kanvil — self-hosted ticketing for people and agents." />
|
|
22
22
|
<title>Kanvil</title>
|
|
23
|
-
<script type="module" crossorigin src="/assets/index-
|
|
23
|
+
<script type="module" crossorigin src="/assets/index-Ds3IHeIi.js"></script>
|
|
24
24
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-COiEfhsA.js">
|
|
25
25
|
<link rel="modulepreload" crossorigin href="/assets/core-jXc03Sty.js">
|
|
26
26
|
<link rel="modulepreload" crossorigin href="/assets/en-EnSRisMz.js">
|
|
27
27
|
<link rel="modulepreload" crossorigin href="/assets/preload-helper-BLdHbfdN.js">
|
|
28
|
-
<link rel="modulepreload" crossorigin href="/assets/default-
|
|
28
|
+
<link rel="modulepreload" crossorigin href="/assets/default-Dnep8Yat.js">
|
|
29
29
|
<link rel="modulepreload" crossorigin href="/assets/toDate-B3HYxwtT.js">
|
|
30
|
-
<link rel="modulepreload" crossorigin href="/assets/search-
|
|
31
|
-
<link rel="modulepreload" crossorigin href="/assets/item-
|
|
32
|
-
<link rel="modulepreload" crossorigin href="/assets/Trans-
|
|
33
|
-
<link rel="modulepreload" crossorigin href="/assets/forms
|
|
34
|
-
<link rel="modulepreload" crossorigin href="/assets/CompositeItem-
|
|
30
|
+
<link rel="modulepreload" crossorigin href="/assets/search-DwsPEC4E.js">
|
|
31
|
+
<link rel="modulepreload" crossorigin href="/assets/item-BD1Poxfs.js">
|
|
32
|
+
<link rel="modulepreload" crossorigin href="/assets/Trans-BgU0eWAX.js">
|
|
33
|
+
<link rel="modulepreload" crossorigin href="/assets/forms--87R7VQW.js">
|
|
34
|
+
<link rel="modulepreload" crossorigin href="/assets/CompositeItem-Tueq2VKR.js">
|
|
35
35
|
<link rel="modulepreload" crossorigin href="/assets/en-US-DKYSujv3.js">
|
|
36
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
36
|
+
<link rel="stylesheet" crossorigin href="/assets/index-Bn-MADyj.css">
|
|
37
37
|
</head>
|
|
38
38
|
<body>
|
|
39
39
|
<div id="root"></div>
|
package/docs/api.md
CHANGED
|
@@ -4,6 +4,8 @@ The HTTP API, MCP tools, and apps execute the same ticket operations and permiss
|
|
|
4
4
|
|
|
5
5
|
Runnable MCP and durable realtime examples, plus the worker ownership sequence, are in [examples](../examples/README.md).
|
|
6
6
|
|
|
7
|
+
The typed client's `api.call` and `api.callPublic` accept an optional `AbortSignal` as their third argument. Its query helpers pass React Query cancellation to the transport, so obsolete list reads stop downloading and aborted reads are not retried.
|
|
8
|
+
|
|
7
9
|
## Authentication
|
|
8
10
|
|
|
9
11
|
Browser and native clients use Better Auth sessions with local login or configured OIDC. Public registration is closed. Initial owner setup requires `KANVIL_SETUP_TOKEN` and is available only before any account exists.
|
|
@@ -24,7 +26,7 @@ Reuse the same UUID `requestId` when retrying a write. Reusing it with a differe
|
|
|
24
26
|
|
|
25
27
|
Signed-in sessions may make `KANVIL_SESSION_WRITE_LIMIT` write requests per minute (120 by default) to `/api/v1`, and MCP OAuth clients get the same budget for write tools; exceeding it returns `429 rate_limited` with a `Retry-After` header. This counter is per application process. API keys have a separate limit of 600 requests per minute per key across HTTP and MCP. An instance operator can set `KANVIL_API_KEY_RATE_LIMIT_ENABLED=false` and restart the server to disable that limit for existing and new keys. The default is `true`; restoring it enforces the limit again. Session, MCP OAuth, and sign-in limits are unchanged, as are key expiration, revocation, scopes, and account permissions. Authentication rereads each key and skips timestamp-only bookkeeping writes. When a key is unlimited, authentication leaves its stored `last_request` and `updated_at` unchanged; enabled rate limits and usage quotas still consume their allowance synchronously and atomically. A request that consumed a key's last use is admitted even when a concurrent request finds the key exhausted and deletes it first.
|
|
26
28
|
|
|
27
|
-
Claims require an eligible ticket and current version. Successful claiming moves it to In progress. Renew an unexpired claim using its ID and the same credential. Once a ticket has been claimed, machine ticket updates and evidence submissions require a current matching claim ID, including after release. Recovery without `reschedule` lifts that requirement and increments the ticket version, publishing `ticket.updated` with `changedFields: ["claimRequired"]`, so a ticket left outside To do (for example, In review after its work merged) accepts ordinary worker writes again; a write that still names the recovered claim ID returns `409 claim_conflict`. Submit completion and evidence before releasing ownership. Human sessions can edit and reschedule work without a machine claim. Release unexpired ownership after the worker stops or completes. The ticket response exposes `canReleaseClaim` for the exact credential or client identity; sharing an account does not confer ownership. An expired claim remains blocking until a caller with `claim` scope and `ticket.write` permission confirms the old worker stopped and explicitly calls `recover_claim` with its ID, a reason, and `confirmedStopped: true`. Administrator access is not required for expired claims. If a worker has stopped while its claim is still live, for example after revoking its credential, a caller with `project.manage` and `admin` scope can explicitly pass `cancelActive: true` to cancel it before expiry. This still requires `confirmedStopped: true` and a reason, and the recovery event records the cancellation. Without that flag, live claims remain protected. Recovery does not automatically reschedule work or grant a replacement claim. To resume without a human session, explicitly pass `reschedule: true` and the ticket's current `expectedVersion` to `recover_claim`; this returns it to To do and increments its version atomically with recovery. Then call `get_ticket` and `claim_ticket` with the new version for a fresh claim ID. A missing version returns `400 validation_error`, and a stale one returns `409 version_conflict`, leaving the claim and status unchanged. Initial claims and renewals accept `leaseSeconds` of at least 30, bounded by `KANVIL_CLAIM_MAX_LEASE_SECONDS`, which defaults to 86400 (24 hours). The default lease remains 300 seconds, or the configured maximum if smaller. A request above the configured maximum returns `400 validation_error`; renew before expiry to keep ownership.
|
|
29
|
+
Claims require an eligible ticket and current version. Successful claiming moves it to In progress. Renew an unexpired claim using its ID and the same credential. Once a ticket has been claimed, machine ticket updates and evidence submissions require a current matching claim ID, including after release. Recovery without `reschedule` lifts that requirement and increments the ticket version, publishing `ticket.updated` with `changedFields: ["claimRequired"]`, so a ticket left outside To do (for example, In review after its work merged) accepts ordinary worker writes again; a write that still names the recovered claim ID returns `409 claim_conflict`. Submit completion and evidence before releasing ownership. Human sessions can edit and reschedule work without a machine claim. Release unexpired ownership after the worker stops or completes. The ticket response exposes `canReleaseClaim` for the exact credential or client identity; sharing an account does not confer ownership. An expired claim remains blocking until a caller with `claim` scope and `ticket.write` permission confirms the old worker stopped and explicitly calls `recover_claim` with its ID, a reason, and `confirmedStopped: true`. Administrator access is not required for expired claims. If a worker has stopped while its claim is still live, for example after revoking its credential, a caller with `project.manage` and `admin` scope can explicitly pass `cancelActive: true` to cancel it before expiry. This still requires `confirmedStopped: true` and a reason, and the recovery event records the cancellation. Without that flag, live claims remain protected. Recovery does not automatically reschedule work or grant a replacement claim. To resume without a human session, explicitly pass `reschedule: true` and the ticket's current `expectedVersion` to `recover_claim`; this returns it to To do and increments its version atomically with recovery. Then call `get_ticket` and `claim_ticket` with the new version for a fresh claim ID. A missing version returns `400 validation_error`, and a stale one returns `409 version_conflict`, leaving the claim and status unchanged. A ticket that still requires ownership but has no claim left, for example one released outside To do or recovered by an older server that kept the requirement, is recovered the same way without a `claimId`: pass a reason, `confirmedStopped: true`, and the ticket's current `expectedVersion`, which this form requires. Without `reschedule` it lifts the requirement so ordinary worker writes pass again; with `reschedule: true` it returns the ticket to To do for a fresh claim. Both increment the version, and the `claim.recovered` event records `claimId: null`. If the ticket has any claim, live or expired, this form returns `409 claim_conflict` with the claim in `details.claimId`; if it does not require ownership, it returns `409 claim_not_required`. Neither changes the ticket. Initial claims and renewals accept `leaseSeconds` of at least 30, bounded by `KANVIL_CLAIM_MAX_LEASE_SECONDS`, which defaults to 86400 (24 hours). The default lease remains 300 seconds, or the configured maximum if smaller. A request above the configured maximum returns `400 validation_error`; renew before expiry to keep ownership.
|
|
28
30
|
|
|
29
31
|
Evidence records identify the submitting account and supplied commit. A reported passing outcome is an assertion by that identity, not independent verification by Kanvil.
|
|
30
32
|
|
package/docs/cli.md
CHANGED
|
@@ -63,7 +63,7 @@ JSON
|
|
|
63
63
|
kanvil task delete APP-12 --profile work --expected-version 7 --yes
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
Use the version returned by a read or write. The CLI never fetches a newer version to bypass a conflict. Claims retain the server's readiness, ownership and lease rules; include `claimId` in an update when the operation requires it. Once a lease expires, renew and release refuse it; after confirming the old worker stopped, any writer with `claim` scope can run `claim recover` with the claim ID, a reason and `confirmedStopped: true`. Recovery never reschedules or reclaims on its own: pass `reschedule: true` with the ticket's current version to return it to To do, then read the ticket and `claim acquire` at the new version. `cancelActive: true` cancels a live claim only for project managers whose credential has `admin` scope. See [writes and ownership](api.md#writes-and-ownership) for the full policy. Deletion requires an explicit version and `--yes`; noninteractive invocations receive no confirmation prompt.
|
|
66
|
+
Use the version returned by a read or write. The CLI never fetches a newer version to bypass a conflict. Claims retain the server's readiness, ownership and lease rules; include `claimId` in an update when the operation requires it. Once a lease expires, renew and release refuse it; after confirming the old worker stopped, any writer with `claim` scope can run `claim recover` with the claim ID, a reason and `confirmedStopped: true`. Recovery never reschedules or reclaims on its own: pass `reschedule: true` with the ticket's current version to return it to To do, then read the ticket and `claim acquire` at the new version. When a ticket still requires ownership but no claim is left, for example after a release outside To do, omit the claim ID and pass `--expected-version` with the ticket's current version to lift the requirement, or to reschedule it with `reschedule: true`. `cancelActive: true` cancels a live claim only for project managers whose credential has `admin` scope. See [writes and ownership](api.md#writes-and-ownership) for the full policy. Deletion requires an explicit version and `--yes`; noninteractive invocations receive no confirmation prompt.
|
|
67
67
|
|
|
68
68
|
The typed client retries a transport failure once for reads and receipted writes, using the identical request body, request ID and expected version. HTTP errors, including conflicts, are never retried. For a retry across CLI invocations, supply the original `--request-id UUID` (or `requestId` in JSON) and unchanged input. If both transport attempts fail, the outcome may be unknown: reconcile by reading or replaying that same request ID; do not submit a new write identity blindly. Requests have a finite transport timeout.
|
|
69
69
|
|