@fieldia/viewer 0.19.1 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -0
- package/bundle/fieldia.ar.js +2 -2
- package/bundle/fieldia.ar.js.map +2 -2
- package/bundle/fieldia.choice.js +5 -0
- package/bundle/fieldia.choice.js.map +7 -0
- package/bundle/fieldia.de.js +2 -2
- package/bundle/fieldia.de.js.map +2 -2
- package/bundle/fieldia.filters.js +5 -0
- package/bundle/fieldia.filters.js.map +7 -0
- package/bundle/fieldia.fr.js +2 -2
- package/bundle/fieldia.fr.js.map +2 -2
- package/bundle/fieldia.head.js +5 -0
- package/bundle/fieldia.head.js.map +7 -0
- package/bundle/fieldia.js +44 -44
- package/bundle/fieldia.js.map +4 -4
- package/bundle/fieldia.path.js +5 -0
- package/bundle/fieldia.path.js.map +7 -0
- package/bundle/fieldia.text.js +24 -0
- package/bundle/fieldia.text.js.map +7 -0
- package/package.json +7 -3
- package/src/index.d.mts +2 -1
- package/src/index.d.ts +2 -1
- package/src/index.js +6 -1
- package/src/index.js.map +1 -1
- package/src/index.mjs +1 -0
- package/src/index.mjs.map +1 -1
- package/src/lib/button-parts.d.mts +30 -0
- package/src/lib/button-parts.d.ts +30 -0
- package/src/lib/button-parts.js +24 -0
- package/src/lib/button-parts.js.map +1 -0
- package/src/lib/button-parts.mjs +18 -0
- package/src/lib/button-parts.mjs.map +1 -0
- package/src/lib/dialog-window.d.mts +11 -0
- package/src/lib/dialog-window.d.ts +11 -0
- package/src/lib/dialog-window.js +86 -0
- package/src/lib/dialog-window.js.map +1 -0
- package/src/lib/dialog-window.mjs +82 -0
- package/src/lib/dialog-window.mjs.map +1 -0
- package/src/lib/dialog.d.mts +14 -3
- package/src/lib/dialog.d.ts +14 -3
- package/src/lib/dialog.js +84 -14
- package/src/lib/dialog.js.map +1 -1
- package/src/lib/dialog.mjs +85 -15
- package/src/lib/dialog.mjs.map +1 -1
- package/src/lib/filter-bar.d.mts +39 -0
- package/src/lib/filter-bar.d.ts +39 -0
- package/src/lib/filter-bar.js +290 -0
- package/src/lib/filter-bar.js.map +1 -0
- package/src/lib/filter-bar.mjs +287 -0
- package/src/lib/filter-bar.mjs.map +1 -0
- package/src/lib/filter-styles.d.mts +4 -0
- package/src/lib/filter-styles.d.ts +4 -0
- package/src/lib/filter-styles.js +63 -0
- package/src/lib/filter-styles.js.map +1 -0
- package/src/lib/filter-styles.mjs +59 -0
- package/src/lib/filter-styles.mjs.map +1 -0
- package/src/lib/filters-part.d.mts +8 -0
- package/src/lib/filters-part.d.ts +8 -0
- package/src/lib/filters-part.js +14 -0
- package/src/lib/filters-part.js.map +1 -0
- package/src/lib/filters-part.mjs +9 -0
- package/src/lib/filters-part.mjs.map +1 -0
- package/src/lib/group-styles.d.mts +9 -0
- package/src/lib/group-styles.d.ts +9 -0
- package/src/lib/group-styles.js +64 -0
- package/src/lib/group-styles.js.map +1 -0
- package/src/lib/group-styles.mjs +60 -0
- package/src/lib/group-styles.mjs.map +1 -0
- package/src/lib/head-part.d.mts +15 -0
- package/src/lib/head-part.d.ts +15 -0
- package/src/lib/head-part.js +26 -0
- package/src/lib/head-part.js.map +1 -0
- package/src/lib/head-part.mjs +16 -0
- package/src/lib/head-part.mjs.map +1 -0
- package/src/lib/head-styles.d.mts +28 -0
- package/src/lib/head-styles.d.ts +28 -0
- package/src/lib/head-styles.js +320 -0
- package/src/lib/head-styles.js.map +1 -0
- package/src/lib/head-styles.mjs +316 -0
- package/src/lib/head-styles.mjs.map +1 -0
- package/src/lib/labels.d.mts +29 -0
- package/src/lib/labels.d.ts +29 -0
- package/src/lib/labels.js +16 -0
- package/src/lib/labels.js.map +1 -1
- package/src/lib/labels.mjs +16 -0
- package/src/lib/labels.mjs.map +1 -1
- package/src/lib/list-styles.d.mts +1 -1
- package/src/lib/list-styles.d.ts +1 -1
- package/src/lib/list-styles.js +88 -1
- package/src/lib/list-styles.js.map +1 -1
- package/src/lib/list-styles.mjs +88 -1
- package/src/lib/list-styles.mjs.map +1 -1
- package/src/lib/list.d.mts +16 -1
- package/src/lib/list.d.ts +16 -1
- package/src/lib/list.js +281 -51
- package/src/lib/list.js.map +1 -1
- package/src/lib/list.mjs +282 -52
- package/src/lib/list.mjs.map +1 -1
- package/src/lib/locales/ar.js +16 -0
- package/src/lib/locales/ar.js.map +1 -1
- package/src/lib/locales/ar.mjs +16 -0
- package/src/lib/locales/ar.mjs.map +1 -1
- package/src/lib/locales/de.js +16 -0
- package/src/lib/locales/de.js.map +1 -1
- package/src/lib/locales/de.mjs +16 -0
- package/src/lib/locales/de.mjs.map +1 -1
- package/src/lib/locales/fr.js +16 -0
- package/src/lib/locales/fr.js.map +1 -1
- package/src/lib/locales/fr.mjs +16 -0
- package/src/lib/locales/fr.mjs.map +1 -1
- package/src/lib/look.d.mts +1 -1
- package/src/lib/look.d.ts +1 -1
- package/src/lib/look.js +3 -0
- package/src/lib/look.js.map +1 -1
- package/src/lib/look.mjs +3 -0
- package/src/lib/look.mjs.map +1 -1
- package/src/lib/record-bar.d.mts +10 -1
- package/src/lib/record-bar.d.ts +10 -1
- package/src/lib/record-bar.js +15 -7
- package/src/lib/record-bar.js.map +1 -1
- package/src/lib/record-bar.mjs +14 -7
- package/src/lib/record-bar.mjs.map +1 -1
- package/src/lib/record-head.d.mts +58 -0
- package/src/lib/record-head.d.ts +58 -0
- package/src/lib/record-head.js +245 -0
- package/src/lib/record-head.js.map +1 -0
- package/src/lib/record-head.mjs +240 -0
- package/src/lib/record-head.mjs.map +1 -0
- package/src/lib/rich-button.d.mts +12 -0
- package/src/lib/rich-button.d.ts +12 -0
- package/src/lib/rich-button.js +186 -0
- package/src/lib/rich-button.js.map +1 -0
- package/src/lib/rich-button.mjs +183 -0
- package/src/lib/rich-button.mjs.map +1 -0
- package/src/lib/section-head.d.mts +26 -0
- package/src/lib/section-head.d.ts +26 -0
- package/src/lib/section-head.js +65 -0
- package/src/lib/section-head.js.map +1 -0
- package/src/lib/section-head.mjs +56 -0
- package/src/lib/section-head.mjs.map +1 -0
- package/src/lib/section-tools.d.mts +12 -0
- package/src/lib/section-tools.d.ts +12 -0
- package/src/lib/section-tools.js +124 -0
- package/src/lib/section-tools.js.map +1 -0
- package/src/lib/section-tools.mjs +121 -0
- package/src/lib/section-tools.mjs.map +1 -0
- package/src/lib/viewer-parts.d.mts +33 -0
- package/src/lib/viewer-parts.d.ts +33 -0
- package/src/lib/viewer-parts.js +75 -0
- package/src/lib/viewer-parts.js.map +1 -0
- package/src/lib/viewer-parts.mjs +70 -0
- package/src/lib/viewer-parts.mjs.map +1 -0
- package/src/lib/viewer.d.mts +30 -7
- package/src/lib/viewer.d.ts +30 -7
- package/src/lib/viewer.js +317 -97
- package/src/lib/viewer.js.map +1 -1
- package/src/lib/viewer.mjs +319 -99
- package/src/lib/viewer.mjs.map +1 -1
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*! Fieldia 0.20.0 · path · MIT · https://fieldia.dev */
|
|
2
|
+
(globalThis.FieldiaParts = globalThis.FieldiaParts || []).push(["path", "0.20.0", function (__fieldia) {
|
|
3
|
+
"use strict";var part=(()=>{var Ve=Object.create;var J=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var Xe=Object.getOwnPropertyNames;var Ge=Object.getPrototypeOf,Qe=Object.prototype.hasOwnProperty;var W=(r,c)=>()=>{try{return c||r((c={exports:{}}).exports,c),c.exports}catch(m){throw c=0,m}},Ye=(r,c)=>{for(var m in c)J(r,m,{get:c[m],enumerable:!0})},ye=(r,c,m,P)=>{if(c&&typeof c=="object"||typeof c=="function")for(let x of Xe(c))!Qe.call(r,x)&&x!==m&&J(r,x,{get:()=>c[x],enumerable:!(P=Je(c,x))||P.enumerable});return r};var q=(r,c,m)=>(m=r!=null?Ve(Ge(r)):{},ye(c||!r||!r.__esModule?J(m,"default",{value:r,enumerable:!0}):m,r)),Ze=r=>ye(J({},"__esModule",{value:!0}),r);var ke=W((it,ve)=>{"use strict";ve.exports=__fieldia[6]});var Ae=W((ot,Re)=>{"use strict";Re.exports=__fieldia[7]});var Se=W((dt,Ee)=>{"use strict";Ee.exports=__fieldia[8]});var Pe=W((lt,Le)=>{"use strict";Le.exports=__fieldia[11]});var Te=W((st,De)=>{"use strict";De.exports=__fieldia[15]});var rt={};Ye(rt,{pathPickerWidget:()=>Ie});var $e=q(ke()),pe=q(Ae()),h=q(Se()),Me=q(Pe());var X=q(Te()),et=".fd-path>.fd-path-input{padding-inline-end:34px}.fd-path-chevron{position:absolute;inset-block:0;inset-inline-end:5px;display:grid;place-items:center;width:24px;color:var(--fd-text);cursor:pointer}.fd-path-chevron .fd-icon{width:24px;height:24px;margin:4px 0 0;stroke-width:1.1;translate:.5px 0;color:color-mix(in srgb,var(--fd-text) 82%,var(--fd-surface))}.fd-path:has(>.fd-path-input[readonly])>.fd-path-chevron{display:none}.fd-form .fd-field[data-quiet] .fd-path:not(:focus-within)>.fd-path-chevron{visibility:hidden}@media(hover:hover){.fd-form .fd-field[data-quiet] .fd-path:hover>.fd-path-chevron{visibility:visible}.fd-form .fd-field[data-quiet] .fd-path:hover>.fd-path-input:not([readonly],:focus){border-color:var(--fd-border-strong)}}.fd-form .fd-field[data-quiet] .fd-path.fd-combo>.fd-path-input[aria-expanded=true]:focus{box-shadow:0 0 0 1px var(--fd-accent),0 0 0 3px color-mix(in srgb,var(--fd-accent) 20%,transparent)}.fd-path-callout{box-sizing:border-box;margin:0;padding:8px 0;overflow-x:hidden;overflow-y:auto;border:0;border-radius:0 0 2px 2px;background:var(--fd-surface);color:var(--fd-text);font-family:var(--fd-font);font-size:14px;line-height:20px;text-align:start;box-shadow:0 3.2px 7.2px #0002,0 .6px 1.8px #0000001c}.fd-path-callout.fd-path-callout::-webkit-scrollbar{width:15px}.fd-path-callout.fd-path-callout::-webkit-scrollbar-track:vertical{margin-block:8px;border:0;background:transparent}.fd-path-callout.fd-path-callout::-webkit-scrollbar-thumb:vertical{border:solid transparent;border-width:3px 3px 3px 4px;border-radius:8px;background:color-mix(in srgb,var(--fd-text) 20%,var(--fd-surface)) padding-box}[dir=rtl] .fd-path-callout.fd-path-callout::-webkit-scrollbar-thumb:vertical{border-width:3px 4px 3px 3px}.fd-path-callout.fd-path-callout::-webkit-scrollbar-thumb:vertical:hover{background-color:color-mix(in srgb,var(--fd-text) 40%,var(--fd-surface))}.fd-path-callout.fd-path-callout::-webkit-scrollbar-button{display:none}@supports not selector(::-webkit-scrollbar){.fd-path-callout{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--fd-text) 20%,transparent) transparent}}.fd-path-heading{height:26px;padding-inline-start:43px;font-weight:600;line-height:26px;white-space:nowrap}.fd-path-row{display:grid;grid-template-columns:minmax(0,1fr);height:24px;margin:0 0 2px;padding-inline:8px;line-height:24px;white-space:nowrap;cursor:pointer}.fd-path-row:has(>.fd-path-aside){grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.fd-path-name{position:relative;min-width:0;padding-inline-start:calc(35px + var(--fd-depth, 0) * 16px);overflow:hidden;text-overflow:ellipsis}.fd-path-aside{min-width:0;padding-inline-end:12px;text-align:end;overflow:hidden;text-overflow:ellipsis}.fd-path-words,.fd-path-aside>span{unicode-bidi:plaintext}.fd-path-twist{position:absolute;inset-block:0;inset-inline-start:calc(9px + var(--fd-depth, 0) * 16px);display:grid;place-items:center;width:20px;padding:0;border:0;background:none;color:var(--fd-text);cursor:pointer}.fd-path-twist .fd-icon{width:20px;height:20px;margin:0;stroke-width:1.2}.fd-path-twist .fd-icon[data-icon=chevron-right]:dir(rtl){transform:scaleX(-1)}.fd-path-divider{height:1px;margin-block:8px 11px;margin-inline:20px;background:var(--fd-border)}.fd-path-empty{padding:3px 43px}@media(hover:hover){.fd-path-row:hover{background:color-mix(in srgb,var(--fd-text) 5%,transparent)}}.fd-path-row[data-active]{background:var(--fd-accent-soft)}.fd-path-row[data-active]>:is(.fd-path-name,.fd-path-aside){outline:1px solid var(--fd-focus);outline-offset:-1px;box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--fd-focus) 14%,transparent)}.fd-path-callout{container-type:inline-size}@container (max-width: 400px){.fd-path-row:has(>.fd-path-aside){grid-template-columns:minmax(0,1fr);height:auto;line-height:20px;padding-block:2px}.fd-path-aside{padding-inline:calc(35px + var(--fd-depth, 0) * 16px) 12px;text-align:start;font-size:12px;line-height:16px}}";function Be(r){(0,X.installPartStyles)(r,"fieldia-path-styles",et,X.PART_RANK.picker)}var le=500,tt=10,nt=180,_e=r=>`recent:${r}`,se=r=>r.path?.length?r.path:[r.label],ce=r=>r.join(""),Ie=({form:r,name:c,field:m,node:P,id:x,document:$,labels:Ce,locale:Ue,preferences:We})=>{Be($);let D=(0,h.wordsFor)(Ce,Ue),u=(0,h.maker)($),G=m.type==="many2one"?m.relation:"",T=P.options??{},qe=typeof T.separator=="string"&&T.separator?T.separator:"\\",Q=typeof T.suggestions=="number"?Math.max(0,Math.trunc(T.suggestions)):5,Y=T.tree!==!1,A=e=>e?se(e).join(qe):"",fe=`${x}-tree`,he=`${x}-suggestions`,o=u("input",{id:x,class:"fd-input fd-combo-input fd-path-input",autocomplete:"off",role:"combobox","aria-autocomplete":"list","aria-haspopup":"tree","aria-expanded":"false","aria-controls":fe});P.placeholder&&(o.placeholder=P.placeholder);let z=u("span",{class:"fd-path-chevron","aria-hidden":"true"}),ue=(0,pe.drawIcon)($,"chevron-down");ue&&z.append(ue);let E=u("div",{id:fe,role:"tree",class:"fd-path-tree","aria-label":m.label}),Z=u("div",{class:"fd-empty fd-path-empty",role:"status"}),w=u("div",{class:"fd-path-callout",hidden:""},E,Z),ee=u("div",{class:"fd-combo fd-path"},o,z,w),H=(0,$e.floatUnder)(o,w,{sameWidth:!0,maxHeight:278,gap:0}),g=null,k=!1,B=!1,b=null,M=null,K=[],I=new Map,C=new Map,y=new Set,s=[],S=-1,_=!1,v=null,te=0,ne,re=We;function ge(){let e=re?.get(_e(G));return Array.isArray(e)?e.map(t=>{let n=C.get(String(t&&typeof t=="object"&&!Array.isArray(t)?t.id:t))?.record;if(n)return n;if(t&&typeof t=="object"&&!Array.isArray(t)&&(typeof t.id=="number"||typeof t.id=="string")&&typeof t.label=="string"){let i=Array.isArray(t.path)?t.path.filter(a=>typeof a=="string"):void 0;return{id:t.id,label:t.label,...i?.length?{path:i}:{},...typeof t.aside=="string"?{aside:t.aside}:{}}}return null}).filter(t=>t!==null&&(!b||b.length>=le||C.has(String(t.id)))):[]}function ze(e){if(!re||!G)return;let t=[e,...ge().filter(n=>n.id!==e.id)].slice(0,tt);re.set(_e(G),t.map(n=>({id:n.id,label:n.label,...n.path?{path:n.path}:{},...n.aside?{aside:n.aside}:{}})))}function He(){if(!Q)return[];let e=ge(),t=e.slice(0,Q);return!g||t.some(n=>n.id===g?.id)?t:[g,...e.filter(n=>n.id!==g?.id)].slice(0,Q)}function Ke(e){b=e,K=[],I.clear(),C.clear();for(let t of e){let n=se(t),i=null;n.forEach((l,p)=>{let d=ce(n.slice(0,p+1)),f=I.get(d);f||(f={key:d,name:l,record:null,depth:p,parent:i,children:[]},I.set(d,f),(i?i.children:K).push(f)),i=f});let a=I.get(ce(n));a&&!a.record&&(a.record=t,C.set(String(t.id),a))}}function me(){return Y?(M??(M=r.search(c,"",le).then(e=>{Ke(e),ae(g)},()=>{M=null})),M):Promise.resolve()}function ae(e){let t=e?C.get(String(e.id))??I.get(ce(se(e))):void 0;for(t=t?.parent??void 0;t;t=t.parent??void 0)y.add(t.key)}function ie(e,t,n,i,a,l={}){let p=u("span",{class:"fd-path-name"}),d=l.branch;if(d?.children.length){let V=y.has(d.key),de=u("button",{type:"button",class:"fd-path-twist",tabindex:"-1","aria-label":(0,h.fillIn)(V?D.collapseNamed:D.expandNamed,{name:d.name}),title:(0,h.fillIn)(V?D.collapseNamed:D.expandNamed,{name:d.name})}),we=(0,pe.drawIcon)($,V?"chevron-down":"chevron-right");we&&de.append(we),de.addEventListener("click",Fe=>{Fe.stopPropagation(),F(d,!V)}),p.append(de)}p.append(u("span",{class:"fd-path-words"},i));let f=u("div",{id:e,role:"treeitem",class:"fd-path-row","aria-selected":"false","aria-level":String(a),style:`--fd-depth: ${a-1}`},p);l.set&&(f.setAttribute("aria-setsize",String(l.set)),f.setAttribute("aria-posinset",String(l.at))),d?.children.length&&f.setAttribute("aria-expanded",String(y.has(d.key)));let U=l.aside??n?.aside;U&&f.append(u("span",{class:"fd-path-aside"},u("span",{},U))),n||f.setAttribute("data-branch-only","");let be={id:e,key:t,record:n,element:f,...d?{branch:d}:{}};return f.addEventListener("click",()=>xe(be)),be}function N(e){let t=e??(_?s[S]?.key:void 0);if(s=[],E.replaceChildren(),v)v.forEach((a,l)=>s.push(ie(`${x}-m-${l}`,`m:${a.id}`,a,A(a),1,{set:v?.length,at:l+1}))),E.append(...s.map(a=>a.element));else{let a=He();if(a.length){let l=u("div",{role:"group",class:"fd-path-group","aria-labelledby":he},u("div",{id:he,class:"fd-path-heading"},D.suggestions));a.forEach((p,d)=>{let f=ie(`${x}-s-${d}`,`s:${p.id}`,p,A(p),1,{set:a.length,at:d+1});s.push(f),l.append(f.element)}),E.append(l)}if(b&&K.length){a.length&&E.append(u("div",{class:"fd-path-divider","aria-hidden":"true"}));let l=p=>p.forEach((d,f)=>{let U=ie(`${x}-t-${Ne(d)}`,`t:${d.key}`,d.record,d.name,d.depth+1,{branch:d,set:p.length,at:f+1});s.push(U),E.append(U.element),d.children.length&&y.has(d.key)&&l(d.children)});l(K)}}let n=!s.length;(0,h.setHidden)(E,n),(0,h.setHidden)(Z,!n||!v&&!b&&!!M),Z.textContent=n?D.noResults:"";let i=t===void 0?-1:s.findIndex(a=>a.key===t);i<0&&g&&(i=s.findIndex(a=>a.record?.id===g?.id)),L(i<0?s.length?0:-1:i),H.place()}let O=new Map,Ne=e=>(O.has(e.key)||O.set(e.key,O.size),O.get(e.key));function L(e){S=e,s.forEach((t,n)=>{(0,h.setAttr)(t.element,"aria-selected",String(n===e)),(0,h.setAttr)(t.element,"data-active",n===e?"":null)}),e>=0&&s[e]?(o.setAttribute("aria-activedescendant",s[e].id),(0,Me.scrollToRow)(w,s[e].element)):o.removeAttribute("aria-activedescendant")}function oe(){k||!w.hidden||(v=null,_=!1,y.clear(),ae(g),H.show(),o.setAttribute("aria-expanded","true"),N(),Y&&!b&&me().then(()=>!w.hidden&&!v&&N()))}function R(){clearTimeout(ne),te++,H.hide(),o.setAttribute("aria-expanded","false"),o.removeAttribute("aria-activedescendant"),S=-1,v=null}function j(){B=!1,o.value=A(g)}function xe(e){if(!e.record){e.branch&&F(e.branch,!y.has(e.branch.key));return}let t=e.record;R(),ze(t),B=!1,r.setValue(c,t),o.value=A(t)}function F(e,t){t?y.add(e.key):y.delete(e.key),N(`t:${e.key}`)}function Oe(e){clearTimeout(ne);let t=++te,n=e.trim().toLocaleLowerCase(),i=a=>{t!==te||$.activeElement!==o||(v=n?a:null,w.hidden&&(H.show(),o.setAttribute("aria-expanded","true")),N(s[S]?.key),n&&L(s.length?0:-1))};if(!n)return i([]);ne=setTimeout(async()=>{Y&&await me();let a=b&&b.length<le?b:null,l=a?a.filter(p=>A(p).toLocaleLowerCase().includes(n)||p.label.toLocaleLowerCase().includes(n)):await r.search(c,e.trim(),50).catch(()=>[]);i(l)},b?0:nt)}let je=()=>getComputedStyle(ee).direction==="rtl"||(0,h.rightToLeft)(ee)?"ArrowLeft":"ArrowRight";return o.addEventListener("input",()=>{k||(B=!0,Oe(o.value))}),o.addEventListener("click",()=>{w.hidden&&oe()}),z.addEventListener("mousedown",e=>e.preventDefault()),z.addEventListener("click",()=>{k||(o.focus(),w.hidden?oe():R())}),w.addEventListener("mousedown",e=>e.preventDefault()),o.addEventListener("keydown",e=>{if(k)return;if(!!w.hidden){(e.key==="ArrowDown"||e.key==="ArrowUp"||e.key==="F4")&&(e.preventDefault(),oe());return}let n=s[S];switch(e.key){case"ArrowDown":case"ArrowUp":if(e.preventDefault(),e.altKey&&e.key==="ArrowUp")return R(),void j();_=!0,L(Math.max(0,Math.min(s.length-1,S+(e.key==="ArrowDown"?1:-1))));return;case"Home":case"End":if(!s.length)return;e.preventDefault(),_=!0,L(e.key==="Home"?0:s.length-1);return;case"PageDown":case"PageUp":e.preventDefault(),_=!0,L(Math.max(0,Math.min(s.length-1,S+(e.key==="PageDown"?8:-8))));return;case"ArrowLeft":case"ArrowRight":{let i=n?.branch;if(!i||v)return;if(e.preventDefault(),_=!0,e.key===je()){if(!i.children.length)return;if(!y.has(i.key))return F(i,!0);let l=s.findIndex(p=>p.branch===i.children[0]);l>=0&&L(l)}else if(i.children.length&&y.has(i.key))F(i,!1);else if(i.parent){let l=s.findIndex(p=>p.branch===i.parent);l>=0&&L(l)}return}case"Enter":e.preventDefault(),n&&xe(n);return;case"Escape":e.preventDefault(),e.stopPropagation(),R(),j();return;case"Tab":R(),j();return}}),o.addEventListener("blur",()=>{R();let e=B&&o.value.trim()===""&&g!==null;B=!1,e?r.setValue(c,null):j()}),{element:ee,focus:()=>o.focus(),destroy:()=>R(),update(e){let t=e.value??null,n=t?.id!==g?.id;g=t,n&&b&&ae(g),k=e.readonly,o.readOnly!==k&&(o.readOnly=k),k&&R(),!B&&o.value!==A(g)&&(o.value=A(g)),(0,h.setAttr)(o,"aria-invalid",String(e.invalid)),(0,h.setAttr)(o,"aria-required",String(e.required)),(0,h.setAttr)(o,"aria-describedby",e.describedBy||null)}}};return Ze(rt);})();
|
|
4
|
+
return part; }]);
|
|
5
|
+
//# sourceMappingURL=fieldia.path.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["fieldia-shared:6", "fieldia-shared:7", "fieldia-shared:8", "fieldia-shared:11", "fieldia-shared:15", "../../../../fieldia.path.ts", "../../../../libs/widgets/src/lib/path-picker.ts", "../../../../libs/widgets/src/lib/styles-path.ts"],
|
|
4
|
+
"sourcesContent": ["module.exports = __fieldia[6];", "module.exports = __fieldia[7];", "module.exports = __fieldia[8];", "module.exports = __fieldia[11];", "module.exports = __fieldia[15];", "export * from \"/home/rthm/IWork/fieldia-dev/fieldia-lanes/wi-join/libs/widgets/src/lib/path-part.ts\";", "import type { JsonValue, RelatedRecord } from '@fieldia/core';\nimport { floatUnder } from './float';\nimport { drawIcon } from './icons';\nimport { fillIn, maker, rightToLeft, setAttr, setHidden, wordsFor } from './kind-parts';\nimport { scrollToRow } from './pick-list';\nimport { installPathStyles } from './styles-path';\nimport type { PreferenceStore } from './preferences';\nimport type { Widget, WidgetFactory } from './widgets';\n\n/**\n * A path picker (`\"widget\": \"path\"` on a many2one): a record of a tree \u2014 an\n * area, an iteration \u2014 shown as its path, \"Portal\\Sprint 14\", as a work\n * tracker shows one. Its list, as wide as its box, holds:\n *\n * - \"Suggestions\": the value, and the person's latest picks of the model\n * before it, kept in the viewer's preferences under `recent:<model>`\n * (`fieldia:recent:<model>` in the browser's storage) \u2014 up to\n * `options.suggestions`, 5 unless said, none at 0;\n * - the tree of every record (an empty search, up to 500), built from each\n * one's `path` (RelatedRecord.path: its names from the top down), folded to\n * the value's branch, unless `options.tree` is false;\n * - each row's `aside` (an iteration's dates) at its end.\n *\n * Typing shows the records whose path has the words typed, flat, each with\n * its whole path. `options.separator` joins a path's names: \"\\\" unless said.\n *\n * A combobox (`aria-haspopup=\"tree\"`) whose list is a tree, its suggestions a\n * group named by their heading. \u2193 and \u2191 move, \u2192 opens a branch or goes to its\n * first child, \u2190 closes it or goes to its parent (the other way round right\n * to left), Home and End go to the first and the last, Enter picks, Escape\n * puts back what the box showed and closes, Tab leaves keeping the value.\n * The focus stays in the box all along; the row reached is its active one.\n */\n\n/** As many records as the tree is built from: a tree of more is searched, as typed. */\nconst TREE_LIMIT = 500;\n/** As many latest picks as are kept for a model. */\nconst KEPT = 10;\nconst DEBOUNCE_MS = 180;\n\n/** Where the person's latest picks of a model are kept in the viewer's preferences. */\nexport const recentPicksKey = (model: string): string => `recent:${model}`;\n\ninterface Branch {\n key: string;\n name: string;\n record: RelatedRecord | null;\n depth: number;\n parent: Branch | null;\n children: Branch[];\n}\n\ninterface Row {\n id: string;\n /** Who it is, whatever its place: a suggestion, a branch of the tree, a match, by its record or its path. */\n key: string;\n /** The record it picks; none for a branch the tree names but has no record of. */\n record: RelatedRecord | null;\n branch?: Branch;\n element: HTMLElement;\n}\n\nconst names = (record: RelatedRecord): string[] => (record.path?.length ? record.path : [record.label]);\nconst keyOf = (path: readonly string[]) => path.join('\\u0001');\n\nexport const pathPickerWidget: WidgetFactory = ({ form, name, field, node, id, document: doc, labels, locale, preferences }) => {\n installPathStyles(doc);\n const words = wordsFor(labels, locale);\n const make = maker(doc);\n const relation = field.type === 'many2one' ? field.relation : '';\n const options = node.options ?? {};\n const separator = typeof options['separator'] === 'string' && options['separator'] ? options['separator'] : '\\\\';\n const suggesting = typeof options['suggestions'] === 'number' ? Math.max(0, Math.trunc(options['suggestions'])) : 5;\n const withTree = options['tree'] !== false;\n const textOf = (record: RelatedRecord | null | undefined) => (record ? names(record).join(separator) : '');\n\n const treeId = `${id}-tree`;\n const headingId = `${id}-suggestions`;\n const input = make('input', { id, class: 'fd-input fd-combo-input fd-path-input', autocomplete: 'off', role: 'combobox', 'aria-autocomplete': 'list', 'aria-haspopup': 'tree', 'aria-expanded': 'false', 'aria-controls': treeId });\n if (node.placeholder) input.placeholder = node.placeholder;\n const chevron = make('span', { class: 'fd-path-chevron', 'aria-hidden': 'true' });\n const down = drawIcon(doc, 'chevron-down');\n if (down) chevron.append(down);\n const tree = make('div', { id: treeId, role: 'tree', class: 'fd-path-tree', 'aria-label': field.label });\n const empty = make('div', { class: 'fd-empty fd-path-empty', role: 'status' });\n const callout = make('div', { class: 'fd-path-callout', hidden: '' }, tree, empty);\n const element = make('div', { class: 'fd-combo fd-path' }, input, chevron, callout);\n const floating = floatUnder(input, callout, { sameWidth: true, maxHeight: 278, gap: 0 });\n\n let current: RelatedRecord | null = null;\n let readonly = false;\n /** The person's own words in the box, not yet a pick. */\n let editing = false;\n let records: RelatedRecord[] | null = null;\n let loading: Promise<void> | null = null;\n let roots: Branch[] = [];\n const byKey = new Map<string, Branch>();\n const byId = new Map<string, Branch>();\n const unfolded = new Set<string>();\n let rows: Row[] = [];\n let active = -1;\n /** Whether the person has moved from the row reached as the list opened. */\n let moved = false;\n /** The records the words typed found: null while nothing is typed. */\n let matches: RelatedRecord[] | null = null;\n let seq = 0;\n let timer: ReturnType<typeof setTimeout> | undefined;\n\n // ---- the person's latest picks --------------------------------------------\n const store: PreferenceStore | undefined = preferences;\n function recent(): RelatedRecord[] {\n const kept = store?.get(recentPicksKey(relation));\n if (!Array.isArray(kept)) return [];\n return kept\n .map((item): RelatedRecord | null => {\n // A pick kept as its id, or as the record it was; the tree's own, when it has it, is the newer.\n const known = byId.get(String(item && typeof item === 'object' && !Array.isArray(item) ? item['id'] : item))?.record;\n if (known) return known;\n if (item && typeof item === 'object' && !Array.isArray(item) && (typeof item['id'] === 'number' || typeof item['id'] === 'string') && typeof item['label'] === 'string') {\n const path = Array.isArray(item['path']) ? item['path'].filter((n): n is string => typeof n === 'string') : undefined;\n return { id: item['id'], label: item['label'], ...(path?.length ? { path } : {}), ...(typeof item['aside'] === 'string' ? { aside: item['aside'] } : {}) };\n }\n return null;\n })\n // One the whole tree no longer holds is gone; a tree too big to hold whole may simply not show it.\n .filter((record): record is RelatedRecord => record !== null && (!records || records.length >= TREE_LIMIT || byId.has(String(record.id))));\n }\n function remember(record: RelatedRecord) {\n if (!store || !relation) return;\n const kept = [record, ...recent().filter((r) => r.id !== record.id)].slice(0, KEPT);\n store.set(\n recentPicksKey(relation),\n kept.map((r) => ({ id: r.id, label: r.label, ...(r.path ? { path: r.path } : {}), ...(r.aside ? { aside: r.aside } : {}) })) as unknown as JsonValue\n );\n }\n /** The value and the latest picks: in the order picked when the value is among the first of them, else the value first. */\n function suggestions(): RelatedRecord[] {\n if (!suggesting) return [];\n const latest = recent();\n const first = latest.slice(0, suggesting);\n if (!current || first.some((r) => r.id === current?.id)) return first;\n return [current, ...latest.filter((r) => r.id !== current?.id)].slice(0, suggesting);\n }\n\n // ---- the tree -------------------------------------------------------------\n function build(found: RelatedRecord[]) {\n records = found;\n roots = [];\n byKey.clear();\n byId.clear();\n for (const record of found) {\n const path = names(record);\n let parent: Branch | null = null;\n path.forEach((part, depth) => {\n const key = keyOf(path.slice(0, depth + 1));\n let branch = byKey.get(key);\n if (!branch) {\n branch = { key, name: part, record: null, depth, parent, children: [] };\n byKey.set(key, branch);\n (parent ? parent.children : roots).push(branch);\n }\n parent = branch;\n });\n const own = byKey.get(keyOf(path));\n if (own && !own.record) {\n own.record = record;\n byId.set(String(record.id), own);\n }\n }\n }\n function load(): Promise<void> {\n if (!withTree) return Promise.resolve();\n loading ??= form.search(name, '', TREE_LIMIT).then(\n (found) => {\n build(found);\n foldTo(current);\n },\n () => {\n loading = null; // asked again the next time it opens\n }\n );\n return loading;\n }\n /** Folded to the value's branch: every branch above it open. */\n function foldTo(record: RelatedRecord | null) {\n let branch = record ? (byId.get(String(record.id)) ?? byKey.get(keyOf(names(record)))) : undefined;\n for (branch = branch?.parent ?? undefined; branch; branch = branch.parent ?? undefined) unfolded.add(branch.key);\n }\n\n // ---- drawing --------------------------------------------------------------\n function row(rowId: string, key: string, record: RelatedRecord | null, text: string, level: number, extra: { branch?: Branch; set?: number; at?: number; aside?: string } = {}): Row {\n const nameCell = make('span', { class: 'fd-path-name' });\n const branch = extra.branch;\n if (branch?.children.length) {\n const open = unfolded.has(branch.key);\n const twist = make('button', { type: 'button', class: 'fd-path-twist', tabindex: '-1', 'aria-label': fillIn(open ? words.collapseNamed : words.expandNamed, { name: branch.name }), title: fillIn(open ? words.collapseNamed : words.expandNamed, { name: branch.name }) });\n const icon = drawIcon(doc, open ? 'chevron-down' : 'chevron-right');\n if (icon) twist.append(icon);\n twist.addEventListener('click', (event) => {\n event.stopPropagation();\n toggle(branch, !open);\n });\n nameCell.append(twist);\n }\n nameCell.append(make('span', { class: 'fd-path-words' }, text));\n const element = make('div', { id: rowId, role: 'treeitem', class: 'fd-path-row', 'aria-selected': 'false', 'aria-level': String(level), style: `--fd-depth: ${level - 1}` }, nameCell);\n if (extra.set) {\n element.setAttribute('aria-setsize', String(extra.set));\n element.setAttribute('aria-posinset', String(extra.at));\n }\n if (branch?.children.length) element.setAttribute('aria-expanded', String(unfolded.has(branch.key)));\n const aside = extra.aside ?? record?.aside;\n if (aside) element.append(make('span', { class: 'fd-path-aside' }, make('span', {}, aside)));\n if (!record) element.setAttribute('data-branch-only', '');\n const made: Row = { id: rowId, key, record, element, ...(branch ? { branch } : {}) };\n element.addEventListener('click', () => choose(made));\n return made;\n }\n\n function draw(keep?: string) {\n const was = keep ?? (moved ? rows[active]?.key : undefined);\n rows = [];\n tree.replaceChildren();\n if (matches) {\n matches.forEach((record, i) => rows.push(row(`${id}-m-${i}`, `m:${record.id}`, record, textOf(record), 1, { set: matches?.length, at: i + 1 })));\n tree.append(...rows.map((r) => r.element));\n } else {\n const suggested = suggestions();\n if (suggested.length) {\n const group = make('div', { role: 'group', class: 'fd-path-group', 'aria-labelledby': headingId }, make('div', { id: headingId, class: 'fd-path-heading' }, words.suggestions));\n suggested.forEach((record, i) => {\n const made = row(`${id}-s-${i}`, `s:${record.id}`, record, textOf(record), 1, { set: suggested.length, at: i + 1 });\n rows.push(made);\n group.append(made.element);\n });\n tree.append(group);\n }\n if (records && roots.length) {\n if (suggested.length) tree.append(make('div', { class: 'fd-path-divider', 'aria-hidden': 'true' }));\n const walk = (branches: Branch[]) =>\n branches.forEach((branch, i) => {\n const made = row(`${id}-t-${byKeyIndex(branch)}`, `t:${branch.key}`, branch.record, branch.name, branch.depth + 1, { branch, set: branches.length, at: i + 1 });\n rows.push(made);\n tree.append(made.element);\n if (branch.children.length && unfolded.has(branch.key)) walk(branch.children);\n });\n walk(roots);\n }\n }\n const nothing = !rows.length;\n setHidden(tree, nothing);\n setHidden(empty, !nothing || (!matches && !records && !!loading));\n empty.textContent = nothing ? words.noResults : '';\n // The row reached before stays reached; else the value's, else the first.\n let at = was === undefined ? -1 : rows.findIndex((r) => r.key === was);\n if (at < 0 && current) at = rows.findIndex((r) => r.record?.id === current?.id);\n reach(at < 0 ? (rows.length ? 0 : -1) : at);\n floating.place();\n }\n const keys = new Map<string, number>();\n const byKeyIndex = (branch: Branch) => {\n if (!keys.has(branch.key)) keys.set(branch.key, keys.size);\n return keys.get(branch.key);\n };\n\n function reach(at: number) {\n active = at;\n rows.forEach((r, i) => {\n setAttr(r.element, 'aria-selected', String(i === at));\n setAttr(r.element, 'data-active', i === at ? '' : null);\n });\n if (at >= 0 && rows[at]) {\n input.setAttribute('aria-activedescendant', rows[at].id);\n scrollToRow(callout, rows[at].element);\n } else input.removeAttribute('aria-activedescendant');\n }\n\n // ---- opening, picking, closing ---------------------------------------------\n function open() {\n if (readonly || !callout.hidden) return;\n matches = null;\n moved = false;\n // Folded again to the value's branch, as each opening starts.\n unfolded.clear();\n foldTo(current);\n floating.show();\n input.setAttribute('aria-expanded', 'true');\n draw();\n // The tree arrives: drawn again, the row reached kept.\n if (withTree && !records) void load().then(() => !callout.hidden && !matches && draw());\n }\n function close() {\n clearTimeout(timer);\n seq++;\n floating.hide();\n input.setAttribute('aria-expanded', 'false');\n input.removeAttribute('aria-activedescendant');\n active = -1;\n matches = null;\n }\n function restore() {\n editing = false;\n input.value = textOf(current);\n }\n function choose(made: Row) {\n if (!made.record) {\n if (made.branch) toggle(made.branch, !unfolded.has(made.branch.key));\n return;\n }\n const record = made.record;\n close();\n remember(record);\n editing = false;\n form.setValue(name, record);\n input.value = textOf(record);\n }\n function toggle(branch: Branch, on: boolean) {\n if (on) unfolded.add(branch.key);\n else unfolded.delete(branch.key);\n draw(`t:${branch.key}`);\n }\n\n /** The records whose path has the words typed: the tree's own, or the data source's for a tree too big to hold. */\n function lookUp(query: string) {\n clearTimeout(timer);\n const mine = ++seq;\n const wanted = query.trim().toLocaleLowerCase();\n const show = (found: RelatedRecord[]) => {\n if (mine !== seq || doc.activeElement !== input) return;\n matches = wanted ? found : null;\n if (callout.hidden) {\n floating.show();\n input.setAttribute('aria-expanded', 'true');\n }\n draw(rows[active]?.key);\n if (wanted) reach(rows.length ? 0 : -1);\n };\n if (!wanted) return show([]);\n timer = setTimeout(async () => {\n if (withTree) await load();\n const all = records && records.length < TREE_LIMIT ? records : null;\n const found = all\n ? all.filter((record) => textOf(record).toLocaleLowerCase().includes(wanted) || record.label.toLocaleLowerCase().includes(wanted))\n : await form.search(name, query.trim(), 50).catch(() => [] as RelatedRecord[]);\n show(found);\n }, records ? 0 : DEBOUNCE_MS);\n }\n\n const forward = () => (getComputedStyle(element).direction === 'rtl' || rightToLeft(element) ? 'ArrowLeft' : 'ArrowRight');\n input.addEventListener('input', () => {\n if (readonly) return;\n editing = true;\n lookUp(input.value);\n });\n input.addEventListener('click', () => {\n if (callout.hidden) open();\n });\n chevron.addEventListener('mousedown', (event) => event.preventDefault());\n chevron.addEventListener('click', () => {\n if (readonly) return;\n input.focus();\n if (callout.hidden) open();\n else close();\n });\n // The list never takes the focus from the box: a press on a row or its scroll bar keeps it there.\n callout.addEventListener('mousedown', (event) => event.preventDefault());\n input.addEventListener('keydown', (event) => {\n if (readonly) return;\n const shown = !callout.hidden;\n if (!shown) {\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp' || event.key === 'F4') {\n event.preventDefault();\n open();\n }\n return;\n }\n const here = rows[active];\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n event.preventDefault();\n if (event.altKey && event.key === 'ArrowUp') return void (close(), restore());\n moved = true;\n reach(Math.max(0, Math.min(rows.length - 1, active + (event.key === 'ArrowDown' ? 1 : -1))));\n return;\n case 'Home':\n case 'End':\n if (!rows.length) return;\n event.preventDefault();\n moved = true;\n reach(event.key === 'Home' ? 0 : rows.length - 1);\n return;\n case 'PageDown':\n case 'PageUp':\n event.preventDefault();\n moved = true;\n reach(Math.max(0, Math.min(rows.length - 1, active + (event.key === 'PageDown' ? 8 : -8))));\n return;\n case 'ArrowLeft':\n case 'ArrowRight': {\n // On the tree's rows the arrows walk the tree; on a suggestion or a match they move in the words typed.\n const branch = here?.branch;\n if (!branch || matches) return;\n event.preventDefault();\n moved = true;\n const opening = event.key === forward();\n if (opening) {\n if (!branch.children.length) return;\n if (!unfolded.has(branch.key)) return toggle(branch, true);\n const child = rows.findIndex((r) => r.branch === branch.children[0]);\n if (child >= 0) reach(child);\n } else if (branch.children.length && unfolded.has(branch.key)) toggle(branch, false);\n else if (branch.parent) {\n const parent = rows.findIndex((r) => r.branch === branch.parent);\n if (parent >= 0) reach(parent);\n }\n return;\n }\n case 'Enter':\n event.preventDefault();\n if (here) choose(here);\n return;\n case 'Escape':\n event.preventDefault();\n // Only the list closes: not a dialog the field is in.\n event.stopPropagation();\n close();\n restore();\n return;\n case 'Tab':\n close();\n restore();\n return;\n }\n });\n input.addEventListener('blur', () => {\n close();\n // Emptied and left: no value.\n const emptied = editing && input.value.trim() === '' && current !== null;\n editing = false;\n if (emptied) form.setValue(name, null);\n else restore();\n });\n\n return {\n element,\n focus: () => input.focus(),\n destroy: () => close(),\n update(state) {\n const value = (state.value as RelatedRecord | null | undefined) ?? null;\n const changed = value?.id !== current?.id;\n current = value;\n if (changed && records) foldTo(current);\n readonly = state.readonly;\n if (input.readOnly !== readonly) input.readOnly = readonly;\n if (readonly) close();\n if (!editing && input.value !== textOf(current)) input.value = textOf(current);\n setAttr(input, 'aria-invalid', String(state.invalid));\n setAttr(input, 'aria-required', String(state.required));\n setAttr(input, 'aria-describedby', state.describedBy || null);\n },\n } satisfies Widget;\n};\n", "import { installPartStyles, PART_RANK } from './styles';\n\n/**\n * A path picker (path-picker.ts): its chevron, its list of suggestions and its\n * tree, measured from a work tracker's. The path part's sheet, put in its\n * place among Fieldia's \u2014 after the pickers' \u2014 the first time a page draws one\n * (installPartStyles, PART_RANK.picker).\n */\nexport const PATH_CSS = /* css */ `.fd-path>.fd-path-input{padding-inline-end:34px}.fd-path-chevron{position:absolute;inset-block:0;inset-inline-end:5px;display:grid;place-items:center;width:24px;color:var(--fd-text);cursor:pointer}.fd-path-chevron .fd-icon{width:24px;height:24px;margin:4px 0 0;stroke-width:1.1;translate:.5px 0;color:color-mix(in srgb,var(--fd-text) 82%,var(--fd-surface))}.fd-path:has(>.fd-path-input[readonly])>.fd-path-chevron{display:none}.fd-form .fd-field[data-quiet] .fd-path:not(:focus-within)>.fd-path-chevron{visibility:hidden}@media(hover:hover){.fd-form .fd-field[data-quiet] .fd-path:hover>.fd-path-chevron{visibility:visible}.fd-form .fd-field[data-quiet] .fd-path:hover>.fd-path-input:not([readonly],:focus){border-color:var(--fd-border-strong)}}.fd-form .fd-field[data-quiet] .fd-path.fd-combo>.fd-path-input[aria-expanded=true]:focus{box-shadow:0 0 0 1px var(--fd-accent),0 0 0 3px color-mix(in srgb,var(--fd-accent) 20%,transparent)}.fd-path-callout{box-sizing:border-box;margin:0;padding:8px 0;overflow-x:hidden;overflow-y:auto;border:0;border-radius:0 0 2px 2px;background:var(--fd-surface);color:var(--fd-text);font-family:var(--fd-font);font-size:14px;line-height:20px;text-align:start;box-shadow:0 3.2px 7.2px #0002,0 .6px 1.8px #0000001c}.fd-path-callout.fd-path-callout::-webkit-scrollbar{width:15px}.fd-path-callout.fd-path-callout::-webkit-scrollbar-track:vertical{margin-block:8px;border:0;background:transparent}.fd-path-callout.fd-path-callout::-webkit-scrollbar-thumb:vertical{border:solid transparent;border-width:3px 3px 3px 4px;border-radius:8px;background:color-mix(in srgb,var(--fd-text) 20%,var(--fd-surface)) padding-box}[dir=rtl] .fd-path-callout.fd-path-callout::-webkit-scrollbar-thumb:vertical{border-width:3px 4px 3px 3px}.fd-path-callout.fd-path-callout::-webkit-scrollbar-thumb:vertical:hover{background-color:color-mix(in srgb,var(--fd-text) 40%,var(--fd-surface))}.fd-path-callout.fd-path-callout::-webkit-scrollbar-button{display:none}@supports not selector(::-webkit-scrollbar){.fd-path-callout{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--fd-text) 20%,transparent) transparent}}.fd-path-heading{height:26px;padding-inline-start:43px;font-weight:600;line-height:26px;white-space:nowrap}.fd-path-row{display:grid;grid-template-columns:minmax(0,1fr);height:24px;margin:0 0 2px;padding-inline:8px;line-height:24px;white-space:nowrap;cursor:pointer}.fd-path-row:has(>.fd-path-aside){grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.fd-path-name{position:relative;min-width:0;padding-inline-start:calc(35px + var(--fd-depth, 0) * 16px);overflow:hidden;text-overflow:ellipsis}.fd-path-aside{min-width:0;padding-inline-end:12px;text-align:end;overflow:hidden;text-overflow:ellipsis}.fd-path-words,.fd-path-aside>span{unicode-bidi:plaintext}.fd-path-twist{position:absolute;inset-block:0;inset-inline-start:calc(9px + var(--fd-depth, 0) * 16px);display:grid;place-items:center;width:20px;padding:0;border:0;background:none;color:var(--fd-text);cursor:pointer}.fd-path-twist .fd-icon{width:20px;height:20px;margin:0;stroke-width:1.2}.fd-path-twist .fd-icon[data-icon=chevron-right]:dir(rtl){transform:scaleX(-1)}.fd-path-divider{height:1px;margin-block:8px 11px;margin-inline:20px;background:var(--fd-border)}.fd-path-empty{padding:3px 43px}@media(hover:hover){.fd-path-row:hover{background:color-mix(in srgb,var(--fd-text) 5%,transparent)}}.fd-path-row[data-active]{background:var(--fd-accent-soft)}.fd-path-row[data-active]>:is(.fd-path-name,.fd-path-aside){outline:1px solid var(--fd-focus);outline-offset:-1px;box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--fd-focus) 14%,transparent)}.fd-path-callout{container-type:inline-size}@container (max-width: 400px){.fd-path-row:has(>.fd-path-aside){grid-template-columns:minmax(0,1fr);height:auto;line-height:20px;padding-block:2px}.fd-path-aside{padding-inline:calc(35px + var(--fd-depth, 0) * 16px) 12px;text-align:start;font-size:12px;line-height:16px}}`;\n\n/** The sheet in a document, once, in its place among Fieldia's. */\nexport function installPathStyles(doc: Document): void {\n installPartStyles(doc, 'fieldia-path-styles', PATH_CSS, PART_RANK.picker);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["require__", "__commonJSMin", "exports", "module", "require__", "__commonJSMin", "exports", "module", "require__", "__commonJSMin", "exports", "module", "require__", "__commonJSMin", "exports", "module", "require__", "__commonJSMin", "exports", "module", "fieldia_path_exports", "__export", "pathPickerWidget", "import_float", "import_icons", "import_kind_parts", "import_pick_list", "import_styles", "PATH_CSS", "installPathStyles", "doc", "TREE_LIMIT", "KEPT", "DEBOUNCE_MS", "recentPicksKey", "model", "names", "record", "keyOf", "path", "pathPickerWidget", "form", "name", "field", "node", "id", "doc", "labels", "locale", "preferences", "installPathStyles", "words", "make", "relation", "options", "separator", "suggesting", "withTree", "textOf", "treeId", "headingId", "input", "chevron", "down", "tree", "empty", "callout", "element", "floating", "current", "readonly", "editing", "records", "loading", "roots", "byKey", "byId", "unfolded", "rows", "active", "moved", "matches", "seq", "timer", "store", "recent", "kept", "item", "known", "n", "remember", "r", "suggestions", "latest", "first", "build", "found", "parent", "part", "depth", "key", "branch", "own", "load", "foldTo", "row", "rowId", "text", "level", "extra", "nameCell", "open", "twist", "icon", "event", "toggle", "aside", "made", "choose", "draw", "keep", "was", "i", "suggested", "group", "walk", "branches", "byKeyIndex", "nothing", "at", "reach", "keys", "close", "restore", "on", "lookUp", "query", "mine", "wanted", "show", "all", "forward", "here", "child", "emptied", "state", "value", "changed"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/*! Fieldia 0.20.0 · text · MIT · https://fieldia.dev */
|
|
2
|
+
(globalThis.FieldiaParts = globalThis.FieldiaParts || []).push(["text", "0.20.0", function (__fieldia) {
|
|
3
|
+
"use strict";var part=(()=>{var cn=Object.create;var Ae=Object.defineProperty;var fn=Object.getOwnPropertyDescriptor;var un=Object.getOwnPropertyNames;var pn=Object.getPrototypeOf,hn=Object.prototype.hasOwnProperty;var fe=(e,n)=>()=>{try{return n||e((n={exports:{}}).exports,n),n.exports}catch(r){throw n=0,r}},mn=(e,n)=>{for(var r in n)Ae(e,r,{get:n[r],enumerable:!0})},pt=(e,n,r,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let d of un(n))!hn.call(e,d)&&d!==r&&Ae(e,d,{get:()=>n[d],enumerable:!(i=fn(n,d))||i.enumerable});return e};var D=(e,n,r)=>(r=e!=null?cn(pn(e)):{},pt(n||!e||!e.__esModule?Ae(r,"default",{value:e,enumerable:!0}):r,e)),xn=e=>pt(Ae({},"__esModule",{value:!0}),e);var ve=fe((On,ht)=>{"use strict";ht.exports=__fieldia[7]});var $e=fe((_n,mt)=>{"use strict";mt.exports=__fieldia[8]});var Re=fe((Dn,xt)=>{"use strict";xt.exports=__fieldia[9]});var Lt=fe((zn,Et)=>{"use strict";Et.exports=__fieldia[16]});var Xe=fe((Pn,Ot)=>{"use strict";Ot.exports=__fieldia[13]});var Dt=fe((Fn,_t)=>{"use strict";_t.exports=__fieldia[15]});var Gt=fe((Yn,Ft)=>{"use strict";Ft.exports=__fieldia[10]});var Nn={};mn(Nn,{decorateLinks:()=>Le,formattedText:()=>ze,htmlToMarkdown:()=>Ie,linksWidget:()=>Ut,markdownLoses:()=>Oe,markdownToHtml:()=>Te,modernHtml:()=>Pt,textMenu:()=>ae});var Ze=D(ve()),Ee=D($e()),Je=D(Re());var gn={"&":"&","<":"<",">":">",'"':""","'":"'"},P=e=>e.replace(/[&<>"']/g,n=>gn[n]),gt=/^(https?:\/\/|mailto:)[^\s<>"]+$/i,bn=/^(https:\/\/[^\s<>"]+|data:image\/(png|jpeg|gif|webp);base64,[A-Za-z0-9+/=]+)$/i,vt=/\bhttps?:\/\/[^\s<>"\uE000]*[^\s<>".,;:!?)\]'*_~\uE000]/gi;function Ge(e){let n=[],r=d=>`\uE000${n.push(d)-1}\uE000`,i=e.replace(/\uE000/g,"").replace(/(`+)([\s\S]*?[^`])\1(?!`)/g,(d,l,f)=>r(`<code>${P(f.replace(/^ (.*) $/,"$1"))}</code>`)).replace(/\\([\\`*_{}[\]()#+\-.!~<>|])/g,(d,l)=>r(P(l)));for(i=i.replace(/!\[([^\]]*)\]\(\s*<?([^\s)>]+)>?\s*\)/g,(d,l,f)=>bn.test(f)?r(`<img src="${P(f)}" alt="${P(l)}">`):gt.test(f)?r(`<a href="${P(f)}">${P(l||f)}</a>`):d),i=i.replace(/\[([^\]]+)\]\(\s*<?([^\s)>]+)>?\s*\)/g,(d,l,f)=>gt.test(f)?r(`<a href="${P(f)}">${bt(P(l))}</a>`):d),i=i.replace(/<((?:https?:\/\/|mailto:)[^\s<>]+)>/gi,(d,l)=>r(`<a href="${P(l)}">${P(l)}</a>`)),i=i.replace(vt,d=>r(`<a href="${P(d)}">${P(d)}</a>`)),i=bt(P(i));/\uE000\d+\uE000/.test(i);)i=i.replace(/\uE000(\d+)\uE000/g,(d,l)=>n[Number(l)]);return i}function bt(e){return e.replace(/(\*\*|__)(?=\S)([\s\S]*?\S)\1/g,"<strong>$2</strong>").replace(/(^|[^\w*])\*(?=\S)([^*]*?\S)\*(?![\w*])/g,"$1<em>$2</em>").replace(/(^|[^\w_])_(?=\S)([^_]*?\S)_(?![\w_])/g,"$1<em>$2</em>").replace(/~~(?=\S)([\s\S]*?\S)~~/g,"<s>$1</s>").replace(/==(?=\S)([\s\S]*?\S)==/g,`<span style="background-color: ${kn};">$1</span>`)}var kn="rgb(255, 255, 0)",ue=/^( *)([-*+]|\d{1,9}[.)])( +|$)(.*)$/,kt=/^ {0,3}(`{3,}|~{3,})\s*([\w+-]*)\s*$/,yt=/^ {0,3}(#{1,4})(?: +(.*?))?(?: +#+)? *$/,Ce=/^ {0,3}> ?(.*)$/,yn=/^ {0,3}([-*_])( *\1){2,} *$/;function Te(e){return Ne(e.replace(/\r\n?/g,`
|
|
4
|
+
`).replace(/\t/g," ").split(`
|
|
5
|
+
`))}function Ne(e){let n=[],r=0;for(;r<e.length;){let i=e[r];if(!i.trim()){r++;continue}let d=kt.exec(i);if(d){let s=[];for(r++;r<e.length&&!e[r].trim().startsWith(d[1]);)s.push(e[r++]);r++,n.push(`<pre><code>${P(s.join(`
|
|
6
|
+
`))}</code></pre>`);continue}let l=yt.exec(i);if(l){n.push(`<h${l[1].length}>${Ge(l[2]??"")}</h${l[1].length}>`),r++;continue}if(Ce.test(i)){let s=[];for(;r<e.length&&Ce.test(e[r]);)s.push(Ce.exec(e[r++])[1]);n.push(`<blockquote>${Ne(s)}</blockquote>`);continue}if(ue.test(i)&&!yn.test(i)){let[s,k]=wn(e,r);n.push(s),r=k;continue}let f=[];for(;r<e.length&&e[r].trim()&&!(f.length&&(kt.test(e[r])||yt.test(e[r])||Ce.test(e[r])||ue.test(e[r])));)f.push(e[r++]);n.push(`<p>${Tt(f)}</p>`)}return n.join("")}function Tt(e){return e.map((n,r)=>{let i=r===e.length-1,d=!i&&(/ {2,}$/.test(n)||/\\$/.test(n)),l=n.trim().replace(/\\$/,i?"\\":"");return Ge(l)+(i?"":d?"<br>":`
|
|
7
|
+
`)}).join("")}function wn(e,n){let r=ue.exec(e[n]),i=r[1].length,d=/\d/.test(r[2]),l=[],f=n;for(;f<e.length;){let k=ue.exec(e[f]);if(!k||k[1].length!==i||(d?!/\d/.test(k[2])||k[2].slice(-1)!==r[2].slice(-1):k[2]!==r[2]))break;let m=[k[4]],x=i+k[2].length+Math.max(1,k[3].length);for(f++;f<e.length;){let w=e[f];if(!w.trim()){if(f+1<e.length&&e[f+1].search(/\S/)>=Math.min(x,i+2)){m.push(""),f++;continue}break}let v=w.search(/\S/);if(v<Math.min(x,i+2)&&(ue.test(w)||v<=i))break;m.push(w.slice(Math.min(v,x))),f++}let E=d?null:/^\[( |x|X)\] +(.*)$/.exec(m[0]);E&&(m[0]=E[2]);let u=m.length===1||!m.slice(1).some(w=>w.trim())?Ge(m[0].trim()):vn(m);l.push(E?`<li data-task="${E[1]===" "?"open":"done"}">${u}</li>`:`<li>${u}</li>`)}for(;f<e.length&&!e[f].trim()&&f+1<e.length&&ue.exec(e[f+1])?.[1].length===i;)f++;let s=d?"ol":"ul";return[`<${s}>${l.join("")}</${s}>`,f]}function vn(e){let n=e.findIndex((i,d)=>d>0&&ue.test(i));if(n===-1)return Ne(e).replace(/^<p>([\s\S]*)<\/p>$/,"$1");let r=e.slice(0,n).filter(i=>i.trim());return Tt(r)+Ne(e.slice(n))}var Tn=new Set(["P","DIV","H1","H2","H3","H4","UL","OL","LI","BLOCKQUOTE","PRE"]),wt=e=>e.replace(/([\\`*_[\]<~])/g,"\\$1").replace(/^(\s*)([#>+-])(?=\s)/gm,"$1\\$2").replace(/^(\s*\d+)\.(?=\s)/gm,"$1\\.");function Ie(e,n=globalThis.document){let r=n.createElement("template");return r.innerHTML=e,He(r.content,"").replace(/\n{3,}/g,`
|
|
8
|
+
|
|
9
|
+
`).trim()}function He(e,n){let r=[],i=[],d=()=>{let l=qe(i).trim();l&&r.push(l),i=[]};for(let l of[...e.childNodes])if(l.nodeType===Node.ELEMENT_NODE&&Tn.has(l.tagName)){d();let f=En(l,n);f.trim()&&r.push(f)}else i.push(l);return d(),r.join(`
|
|
10
|
+
|
|
11
|
+
`)}function En(e,n){let r=e.tagName;if(/^H[1-4]$/.test(r))return`${"#".repeat(Number(r[1]))} ${qe([...e.childNodes]).trim()}`;if(r==="PRE")return"```\n"+(e.textContent??"").replace(/\n$/,"")+"\n```";if(r==="BLOCKQUOTE")return He(e,n).split(`
|
|
12
|
+
`).map(i=>i?`> ${i}`:">").join(`
|
|
13
|
+
`);if(r==="UL"||r==="OL"){let i=0;return[...e.children].filter(d=>d.tagName==="LI").map(d=>{i++;let l=d.getAttribute("data-task"),f=r==="OL"?`${i}.`:"-",s=r==="UL"&&(l==="open"||l==="done")?`[${l==="done"?"x":" "}] `:"",k=" ".repeat(f.length+1),m=He(d,n).replace(/\n\n(?=\s*([-*+]|\d+\.) )/g,`
|
|
14
|
+
`);return`${f} ${s}${m.split(`
|
|
15
|
+
`).map((x,E)=>E&&x?k+x:x).join(`
|
|
16
|
+
`)}`}).join(`
|
|
17
|
+
`)}return He(e,n)}function qe(e){return e.map(Ln).join("")}function Ln(e){if(e.nodeType===Node.TEXT_NODE)return wt((e.textContent??"").replace(/\s*\n\s*/g," "));if(e.nodeType!==Node.ELEMENT_NODE)return"";let n=e,r=()=>qe([...n.childNodes]),i=d=>{let l=r(),[,f,s,k]=/^(\s*)([\s\S]*?)(\s*)$/.exec(l);return s?`${f}${d}${s}${d}${k}`:l};switch(n.tagName){case"BR":return`\\
|
|
18
|
+
`;case"STRONG":case"B":return i("**");case"EM":case"I":return i("*");case"S":case"STRIKE":case"DEL":return i("~~");case"CODE":{let d=n.textContent??"",l="`".repeat((d.match(/`+/g)??[""]).reduce((f,s)=>Math.max(f,s.length),0)+1);return l.length>1||/^`|`$/.test(d)?`${l} ${d} ${l}`:`\`${d}\``}case"A":{let d=n.getAttribute("href")??"",l=r();return d?n.textContent!==d?`[${l}](${d})`:(d.match(vt)??[])[0]===d?d:`<${d}>`:l}case"SPAN":return Fe(n)?i("=="):r();case"IMG":return`??""})`;default:return r()}}function Oe(e,n=globalThis.document){let r=n.createElement("template");return r.innerHTML=e,[...r.content.querySelectorAll("*")].some(i=>i.tagName==="U"||i.hasAttribute("data-mention")||i.hasAttribute("data-record")||i.hasAttribute("style")&&!Fe(i)||i.tagName==="SPAN"&&i.attributes.length>0&&!Fe(i))}function Fe(e){if(e.tagName!=="SPAN"||e.attributes.length!==1)return!1;let n=e.style;return!!n?.backgroundColor&&n.length===1}var Mt=D(ve()),re=D(Lt()),St=new Set(["highlight","colour","size","heading","emoji"]),At=new Set(["bold","italic","underline","strike"]);function $t(e,n){return n[{bold:"bold",italic:"italic",underline:"underline",bulletList:"bulletList",numberList:"numberList",highlight:"highlight",colour:"textColour",emoji:"emoji",outdent:"outdent",indent:"indent",strike:"strike",size:"textSize",code:"code",mention:"mention",reference:"linkRecordNamed",clearFormatting:"clearFormatting",image:"image",link:"link",unlink:"removeLink",taskList:"taskList",heading:"heading",attach:"attachFile"}[e]]}var Mn={italic:'<path d="M7 2.5h5.5M3.5 13.5H9M9.8 2.5l-3.6 11"/>',underline:'<path d="M4.5 2v5.5a3.5 3.5 0 0 0 7 0V2M3.5 14.5h9"/>',bulletList:'<path d="M5 4.5h13M5 7.5h13M5 10.5h13M5 13.5h13" stroke-width="1" stroke-linecap="butt"/><g class="fd-text-accent"><rect x="2" y="4" width="1" height="1"/><rect x="2" y="7" width="1" height="1"/><rect x="2" y="10" width="1" height="1"/><rect x="2" y="13" width="1" height="1"/></g>',numberList:'<path d="M5 4.5h12M5 8.5h12M5 12.5h12" stroke-width="1" stroke-linecap="butt"/><path class="fd-text-accent-line" stroke-width=".8" d="M1.6 3.6l1-.6v3M1.4 7.4c.3-.5 1.6-.4 1.4.4-.1.5-1.4 1-1.4 1.7h1.6M1.4 11.1h1.4l-.7.9c.5 0 .8.3.8.7s-.4.7-.8.7c-.3 0-.6-.1-.7-.3"/>',highlight:'<path d="M1.6 2.6c.3-.4.8-.6 1.3-.6.8 0 1.3.5 1.3 1.3V6.6M4.2 4.4c-1.9-.1-2.9.4-2.9 1.2 0 .6.4 1 1 1 1 0 1.9-.6 1.9-1.6M5.9 .9v5.7M5.9 4.3c.2-.9.8-1.4 1.5-1.4.9 0 1.4.8 1.4 1.9s-.5 1.9-1.4 1.9c-.7 0-1.3-.5-1.5-1.4"/><path d="M5.4 13.4l.7-2.6 6.6-6.6 1.9 1.9-6.6 6.6z"/><rect class="fd-text-swatch" x="1.2" y="13" width="9.6" height="2.2" rx=".3"/>',colour:'<path d="M1.8 13.5L6.5 1.2l4.7 12.3M3.3 9.5h6.4" stroke-width="1"/><rect class="fd-text-swatch" x="1" y="15" width="11" height="2"/>',emoji:'<defs><radialGradient id="fd-face" cy=".22" r=".85"><stop stop-color="#fffbd2"/><stop offset=".3" stop-color="#fde24f"/><stop offset=".62" stop-color="#fbc12b"/><stop offset="1" stop-color="#ea8a0b"/></radialGradient></defs><circle class="fd-text-face" cx="8" cy="8" r="7.4" fill="url(#fd-face)"/><path class="fd-text-smile" d="M5.2 10.4q2.8 1.7 5.6 0"/><ellipse class="fd-text-dot" cx="5.8" cy="6.7" rx=".6" ry="1.1"/><ellipse class="fd-text-dot" cx="10.2" cy="6.7" rx=".6" ry="1.1"/>',outdent:'<path d="M8 3.5h6.5M8 6.5h6.5M8 9.5h6.5M8 12.5h6.5"/><path class="fd-text-accent-line" d="M6 8H1.5M3.5 6L1.5 8l2 2"/>',indent:'<path d="M8 3.5h6.5M8 6.5h6.5M8 9.5h6.5M8 12.5h6.5"/><path class="fd-text-accent-line" d="M1.5 8H6M4 6l2 2-2 2"/>',size:'<path d="M2 14l2.8-7.4L7.6 14M3 11.6h3.6M10 14l3.7-12.6L17.4 14M11.2 10h5"/>',code:'<path d="M4 4L.5 7.5 4 11M12 4l3.5 3.5L12 11M9.8 2.5L6.6 13.5" stroke-width="1"/>',clearFormatting:'<path d="M4.6 9.8L7.5 1.2l2.9 8.6M5.4 7.5h4.2" stroke-width="1"/><g class="fd-text-eraser" transform="rotate(-45 10.5 11)"><rect x="5.5" y="8.9" width="2.7" height="4.2" rx=".8"/><rect x="9" y="8.9" width="6.5" height="4.2" rx=".8"/></g>',image:'<rect x="1.5" y="3" width="13" height="10" rx=".6"/><path class="fd-text-accent-fill" d="M2 12.5l3.6-4 2.6 2.6 2-1.8 3.8 3.2z"/><circle cx="11" cy="6" r="1"/>',link:'<g stroke-width="1"><rect x="2.3" y="3.5" width="9.4" height="6" rx="3"/><rect x="7.6" y="6.5" width="9.3" height="6" rx="3"/></g>',unlink:'<g stroke-width="1"><rect x="2.3" y="3.5" width="9.4" height="6" rx="3"/><path d="M11.7 6.5h2.2a3 3 0 0 1 0 6h-3.3"/></g><path class="fd-text-cross" d="M13.5 12.5l4 4M17.5 12.5l-4 4"/>',taskList:'<path d="M7 3.5h7.5M7 8h7.5M7 12.5h7.5"/><path class="fd-text-accent-line" d="M1.5 3.5l1.2 1.2L5 2.2M1.5 8l1.2 1.2L5 6.7"/><rect x="1.6" y="11" width="3" height="3" rx=".4"/>',heading:'<path d="M1.4 8.2L3.9 1.6l2.5 6.6M2.3 5.9h3.2"/><path d="M5.4 13.4l.7-2.6 6.6-6.6 1.9 1.9-6.6 6.6z"/>'},Sn={highlight:'<path d="M1.6 2.6c.3-.4.8-.6 1.3-.6.8 0 1.3.5 1.3 1.3V6.6M4.2 4.4c-1.9-.1-2.9.4-2.9 1.2 0 .6.4 1 1 1 1 0 1.9-.6 1.9-1.6M5.9 .9v5.7M5.9 4.3c.2-.9.8-1.4 1.5-1.4.9 0 1.4.8 1.4 1.9s-.5 1.9-1.4 1.9c-.7 0-1.3-.5-1.5-1.4"/><path d="M5.4 13.4l.7-2.6 6.6-6.6 1.9 1.9-6.6 6.6z"/>',link:'<path d="M6.5 5H4.8a3 3 0 0 0 0 6h1.7M9.5 5h1.7a3 3 0 0 1 0 6H9.5M5.5 8h5"/>',code:'<path d="M5.2 5.2L2.8 7.7l2.4 2.4M11.8 5.2l2.4 2.5-2.4 2.4M10.4 3.2L7 12.6" stroke-width="1"/>',bulletList:'<path d="M5.5 3.5h9M5.5 8h9M5.5 12.5h9"/><g class="fd-text-ink"><circle cx="2.2" cy="3.5" r=".9"/><circle cx="2.2" cy="8" r=".9"/><circle cx="2.2" cy="12.5" r=".9"/></g>',taskList:'<path d="M7 3.5h7.5M7 8h7.5M7 12.5h7.5M1.5 3.5l1.1 1.1L4.8 2.4M1.5 8l1.1 1.1 2.2-2.2M1.5 12.5l1.1 1.1 2.2-2.2"/>'},Ve="http://www.w3.org/2000/svg",An=0;function Ue(e,n,r,i,d="rich"){if(n==="bold"||n==="strike"){let m=e.createElement("span");return m.className=`fd-text-glyph fd-text-glyph-${n}`,m.setAttribute("aria-hidden","true"),m.textContent=n==="bold"?"B":"ab",m}let l={mention:"mention",reference:i??"hash",attach:"attach"},f=l[n]?(0,Mt.drawIcon)(e,l[n],r):null;if(f)return f.classList.add("fd-text-icon"),f;let s=e.createElementNS(Ve,"svg");s.setAttribute("viewBox",n==="size"?"0 0 20 16":"0 0 16 16"),s.setAttribute("aria-hidden","true"),s.setAttribute("focusable","false"),s.setAttribute("class",`fd-text-icon fd-text-icon-${n}`);let k=(d==="markdown"?Sn[n]:void 0)??Mn[n]??"";return s.innerHTML=n==="emoji"?k.replace(/fd-face/g,`fd-face${++An}`):k,s}function _e(e){let n=e.createElementNS(Ve,"svg");return n.setAttribute("viewBox","0 0 12 12"),n.setAttribute("aria-hidden","true"),n.setAttribute("class","fd-text-chevron"),n.innerHTML='<path d="M.5 3.5L6 9l5.5-5.5"/>',n}function Rt(e){let n=e.createElementNS(Ve,"svg");return n.setAttribute("viewBox","0 0 16 16"),n.setAttribute("aria-hidden","true"),n.setAttribute("class","fd-text-icon"),n.innerHTML='<circle cx="1.5" cy="8" r="0.5"/><circle cx="8" cy="8" r="0.5"/><circle cx="14.5" cy="8" r="0.5"/>',n}var Ct=[[3,"#ffff00"],[10,"#b4f0a8"],[4,"#9eecf2"],[9,"#ffb3d0"],[2,"#ffd08a"],[0,null]],Ht=[[1,"#d13438"],[2,"#ca5010"],[10,"#107c10"],[8,"#0078d4"],[5,"#8764b8"],[7,"#038387"],[0,null]],Nt=[12,14,16,20,28],It=["\u{1F600}","\u{1F642}","\u{1F609}","\u{1F60D}","\u{1F60E}","\u{1F914}","\u{1F622}","\u{1F620}","\u{1F44D}","\u{1F44E}","\u{1F44F}","\u{1F64F}","\u{1F389}","\u2705","\u274C","\u26A0\uFE0F","\u{1F525}","\u{1F41B}","\u{1F4A1}","\u{1F680}"];function Ke(e,n){let r=e.createElement("span");return r.className="fd-text-colour",r.setAttribute("aria-hidden","true"),n?r.style.background=n:r.classList.add("fd-text-colour-none"),r}var $n=0;function ae(e,n,r){let i=e.createElement("div");i.className=`fd-text-menu${r.className?` ${r.className}`:""}`,i.id=`fd-text-menu-${++$n}`,i.setAttribute("role","menu"),i.setAttribute("aria-label",r.label),i.hidden=!0,n.setAttribute("aria-haspopup","menu"),n.setAttribute("aria-expanded","false"),n.setAttribute("aria-controls",i.id);let d=[],l=x=>{!i.contains(x.target)&&!n.contains(x.target)&&m(!1)},f=x=>{if(!d.length)return;let E=(x+d.length)%d.length;d.forEach((u,w)=>u.tabIndex=w===E?0:-1),d[E].focus()};function s(){(r.within??n.closest(".fd-form, .fd-theme")??e.body).append(i),Object.assign(i.style,{position:"absolute",top:"0px",left:"0px"});let[E,u,w]=[n.getBoundingClientRect(),i.getBoundingClientRect(),i.offsetWidth],v=getComputedStyle(n).direction==="rtl",L=(r.align??"start")==="end",R=e.documentElement.clientWidth||w,p=L!==v?E.right-w:E.left,T=Math.max(8,Math.min(p,R-w-8));Object.assign(i.style,{top:`${E.bottom-u.top}px`,left:`${T-u.left}px`})}function k(x,E={}){d=x.map(w=>{let v=e.createElement("button");v.type="button",v.className="fd-text-menu-item",v.setAttribute("role",w.checked===void 0?"menuitem":"menuitemradio"),w.checked!==void 0&&v.setAttribute("aria-checked",String(w.checked)),v.tabIndex=-1;let L=e.createElement("span");return L.className="fd-text-menu-words",L.textContent=w.label,r.grid&&v.setAttribute("aria-label",w.label),v.append(...w.lead?[w.lead]:[],...r.grid?[]:[L]),v.addEventListener("mousedown",R=>R.preventDefault()),v.addEventListener("click",()=>{m(!0),w.run()}),v}),i.replaceChildren(...d),i.hidden=!1,n.setAttribute("aria-expanded","true"),n.classList.add("fd-pressed"),s(),e.addEventListener("pointerdown",l,!0);let u=d.findIndex(w=>w.getAttribute("aria-checked")==="true");E.focus!=="none"?f(E.focus==="checked"&&u>=0?u:0):d[0]&&(d[0].tabIndex=0)}function m(x=!0){if(i.hidden)return;x&&n.focus(),i.hidden=!0,n.setAttribute("aria-expanded","false"),n.classList.remove("fd-pressed"),e.removeEventListener("pointerdown",l,!0);let E=n.parentElement;E&&i.parentElement!==E&&E.append(i);for(let u of["position","top","left"])i.style.removeProperty(u)}return i.addEventListener("keydown",x=>{let E=d.indexOf(e.activeElement),u=getComputedStyle(i).direction==="rtl",v={ArrowDown:1,ArrowUp:-1,...r.grid?{ArrowRight:u?-1:1,ArrowLeft:u?1:-1}:{}}[x.key];v!==void 0?(x.preventDefault(),f(E+v)):x.key==="Home"||x.key==="End"?(x.preventDefault(),f(x.key==="Home"?0:d.length-1)):x.key==="Escape"?(x.preventDefault(),x.stopPropagation(),m(!0)):x.key==="Tab"&&m(!1)}),{element:i,open:k,close:m,isOpen:()=>!i.hidden}}var de=D(Xe());var De=D(Dt()),Rn='.fd-field-tool{display:inline-grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:2px;background:none;color:var(--fd-text);cursor:pointer;font:inherit}.fd-field-tool:hover{background:var(--fd-text-hover)}.fd-field-tool:active{background:var(--fd-text-pressed)}.fd-field-tool:focus-visible{outline:1px solid var(--fd-focus);outline-offset:-1px}.fd-field-tool svg{width:18px;height:18px;stroke-width:1.34}.fd-text{position:relative;display:grid;min-width:0;--fd-text-pad-x: 5px}.fd-text[hidden]{display:none}.fd-text-box{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid var(--fd-border);border-radius:2px;background:var(--fd-surface)}.fd-text-box:focus-within{border-color:var(--fd-focus)}.fd-text-area{position:relative;min-height:85px;padding:5px var(--fd-text-pad-x);line-height:20px;color:var(--fd-text);outline:none;overflow-wrap:anywhere;cursor:text}.fd-text-area.fd-blank:not(:focus):before{content:attr(data-placeholder);position:absolute;color:var(--fd-muted);font-style:italic;pointer-events:none}.fd-form :is(.fd-text-area,.fd-md-input,.fd-md-preview,.fd-md-view):focus-visible{outline:none}.fd-text-area[contenteditable=false]{cursor:default}:is(.fd-text-area,.fd-md-view,.fd-md-preview) :is(p,ul,ol,blockquote,pre,h1,h2,h3,h4){margin:0 0 6px}:is(.fd-text-area,.fd-md-view,.fd-md-preview)>:last-child{margin-block-end:0}:is(.fd-text-area,.fd-md-view,.fd-md-preview)>*{unicode-bidi:plaintext}:is(.fd-text-area,.fd-md-view,.fd-md-preview) :is(ul,ol){padding-inline-start:24px}:is(.fd-text-area,.fd-md-view,.fd-md-preview) a{color:var(--fd-text-link);text-decoration:underline}:is(.fd-md-view,.fd-md-preview) a{padding-block:4px}:is(.fd-text-area,.fd-md-view,.fd-md-preview) code{padding:0 3px;border-radius:2px;background:var(--fd-text-fill);font:13px/1.4 ui-monospace,SF Mono,Menlo,Consolas,monospace}:is(.fd-text-area,.fd-md-view,.fd-md-preview) pre{padding:8px 10px;background:var(--fd-text-fill);overflow-x:auto}:is(.fd-text-area,.fd-md-view,.fd-md-preview) pre code{padding:0;background:none}:is(.fd-text-area,.fd-md-view,.fd-md-preview) blockquote{padding-inline-start:10px;border-inline-start:3px solid var(--fd-border);color:var(--fd-muted)}:is(.fd-text-area,.fd-md-view,.fd-md-preview) img{max-width:100%;height:auto}:is(.fd-text-area,.fd-md-view,.fd-md-preview) li[data-task]{list-style:none;position:relative}:is(.fd-text-area,.fd-md-view,.fd-md-preview) li[data-task]:before{content:"";position:absolute;inset-inline-start:-20px;inset-block-start:4px;width:12px;height:12px;border:1px solid var(--fd-border-strong);border-radius:2px;background:var(--fd-surface)}:is(.fd-text-area,.fd-md-view,.fd-md-preview) li[data-task=done]:before{background:var(--fd-accent);border-color:var(--fd-accent);box-shadow:inset 0 0 0 2px var(--fd-surface)}:is(.fd-text-area,.fd-md-view,.fd-md-preview) li[data-task=done]{text-decoration:line-through;color:var(--fd-muted)}:is(.fd-text-area,.fd-md-view,.fd-md-preview) :is([data-mention],[data-record]){color:var(--fd-text-link);font-weight:600}.fd-text[data-toolbar=focus]:not(:where([data-editor=markdown])){padding-block-end:17px}.fd-text[data-toolbar=focus]>.fd-text-box{border-color:transparent;background:transparent;border-radius:max(var(--fd-control-radius, 2px),4px)}.fd-text[data-toolbar=focus]:focus-within>.fd-text-box{background:var(--fd-surface)}.fd-text[data-toolbar=focus]>.fd-text-box:hover{border-color:var(--fd-border)}.fd-text[data-toolbar=focus]:focus-within>.fd-text-box{border-color:var(--fd-focus)}.fd-text[data-toolbar=focus]:not(:focus-within) .fd-text-bar{display:none}.fd-text[data-toolbar=focus]:not(:focus-within) .fd-text-area{min-height:48px}.fd-text:not([data-switch=always]):not(:focus-within) .fd-text-switch{display:none}.fd-text-under{display:flex;flex-wrap:wrap;align-items:start;justify-content:flex-end;gap:0 12px;min-width:0}.fd-text-under:empty,.fd-text-under:not(:has(.fd-text-switch)):has(>.fd-text-say:empty){display:none}.fd-text-say{flex:1 1 auto;margin:2px 0 0;color:var(--fd-muted);font-size:12px;line-height:16px}.fd-text-say:empty{display:none}.fd-text-switch{margin:2px 0 0;padding:0;border:0;background:none;color:var(--fd-text-link);font:12px/16px var(--fd-font);text-decoration:underline;cursor:pointer}.fd-text-switch:focus-visible,.fd-links-empty-link:focus-visible,.fd-md-preview-switch:focus-visible,.fd-links-name:focus-visible{outline:1px solid var(--fd-focus);outline-offset:1px}.fd-text-ask{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-block-start:6px;padding:8px 10px;border-radius:2px;background:var(--fd-warning-soft);color:var(--fd-text);font-size:13px}.fd-text-bar{display:flex;align-items:center;gap:3px;min-width:0;padding:0 12px 5px 6px;padding-inline:6px 12px;overflow:hidden}.fd-text[data-bar-at=top] .fd-text-box>.fd-text-bar{padding-block:5px 0}.fd-text-tool{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;padding:0;border:0;border-radius:2px;background:none;color:var(--fd-text);font:inherit;cursor:pointer}.fd-text-tool[hidden]{display:none}.fd-text-tool-choice{width:46px;justify-content:flex-start;padding-inline-start:5px}.fd-text-tool-choice[data-tool=size]{width:56px;padding-inline-start:10px}.fd-text-tool-choice[data-tool=size]>.fd-text-chevron{margin-inline-start:6px}.fd-text-icon-size{width:20px}.fd-text-tool:hover{background:var(--fd-text-hover)}.fd-text-tool[data-idle]{color:color-mix(in srgb,var(--fd-text) 48%,var(--fd-surface))}.fd-text-tool[data-idle] .fd-text-cross{opacity:.5}.fd-text-tool:is([aria-pressed=true],.fd-pressed,[aria-expanded=true]){background:var(--fd-text-pressed)}.fd-text-tool:focus-visible,.fd-text-menu-item:focus-visible,.fd-links-add:focus-visible,.fd-links-remove:focus-visible{outline:1px solid var(--fd-focus);outline-offset:-1px;box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--fd-focus) 25%,transparent)}.fd-text-icon{width:16px;height:16px;flex:none;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}.fd-text-tool>svg.fd-icon{stroke-width:1.6}.fd-text-accent{fill:var(--fd-accent);stroke:none}.fd-text-ink{fill:currentColor;stroke:none}.fd-text-accent-line{stroke:var(--fd-accent)}.fd-text-accent-fill{fill:var(--fd-accent);stroke:none}.fd-text-icon-highlight .fd-text-swatch{fill:#ff0;stroke:none}.fd-text-icon-colour .fd-text-swatch{fill:#e81123;stroke:none}.fd-text-face{stroke:none}.fd-text-dot{fill:#7a4304;stroke:none}.fd-text-icon-emoji .fd-text-smile{stroke:#a0640c;stroke-width:1}.fd-text-eraser{fill:#e68497;stroke:none}.fd-text-cross{stroke:#e81123;stroke-width:1.2}.fd-text-glyph-bold{font:700 16px/1 var(--fd-font)}.fd-text-glyph-strike{font:400 15px/1 var(--fd-font);text-decoration:line-through;text-decoration-thickness:1px}.fd-text-icon-emoji{width:20px;height:20px}.fd-text-chevron{width:12px;height:12px;margin-inline-start:4px;fill:none;stroke:currentColor;stroke-width:1}.fd-text-tool-choice>.fd-text-chevron{color:var(--fd-muted)}.fd-md-card{display:grid;min-width:0;margin-block:12px 11px;margin-inline:calc(-1 * var(--fd-group-inset, 0px));padding:20px 16px;border-radius:4px;background:var(--fd-surface);box-shadow:var(--fd-depth-4)}.fd-text:not([data-editor=markdown])>.fd-md-card,.fd-text:not([data-editor=rich])>.fd-text-box{display:none}.fd-md-input,.fd-md-preview{display:block;width:100%;min-width:0;min-height:84px;box-sizing:border-box;margin:0;padding:1px 4px 4px;border:1px solid var(--fd-border);border-radius:4px;background:var(--fd-surface);color:var(--fd-text);font:14px/20px var(--fd-font);resize:vertical}.fd-md-input:focus,.fd-md-preview:focus{outline:none;border-color:var(--fd-focus)}.fd-md-card :is(.fd-md-input,.fd-md-preview),.fd-md-card :is(.fd-md-input,.fd-md-preview):focus{border-color:var(--fd-border);resize:none}.fd-md-card .fd-text-bar :is(.fd-text-accent,.fd-text-accent-fill){fill:currentColor}.fd-md-card .fd-text-bar .fd-text-accent-line{stroke:currentColor}.fd-md-card .fd-text-tool-choice>.fd-text-chevron{color:inherit;stroke-width:1.3;margin-inline:8px -4px}.fd-md-input[hidden],.fd-md-preview[hidden]{display:none}.fd-md-hint{display:flex;flex-wrap:wrap;align-items:center;gap:0 4px;margin:7px 0 0;color:var(--fd-muted);font-size:12px;line-height:16px}.fd-md-hint>.fd-icon{width:12px;height:12px;stroke-width:2}.fd-md-supported{color:var(--fd-text-link)}.fd-md-row{display:flex;align-items:center;min-width:0;margin-block-start:2px}.fd-md-row>.fd-text-bar{flex:1 1 auto;padding:0}.fd-md-preview-switch{display:inline-flex;align-items:center;gap:8px;flex:none;margin-inline-start:auto;padding:0 0 0 8px;padding-inline:8px 0;border:0;background:none;color:var(--fd-text);font:14px/20px var(--fd-font);cursor:pointer}.fd-md-track{position:relative;width:40px;height:20px;box-sizing:border-box;border:1px solid var(--fd-muted);border-radius:10px;background:var(--fd-surface)}.fd-md-track:after{content:"";position:absolute;inset-block-start:3px;inset-inline-start:4px;width:12px;height:12px;border-radius:50%;background:var(--fd-muted);transition:inset-inline-start .1s ease}.fd-md-preview-switch[aria-checked=true]>.fd-md-track{border-color:var(--fd-accent);background:var(--fd-accent)}.fd-md-preview-switch[aria-checked=true]>.fd-md-track:after{inset-inline-start:22px;background:var(--fd-accent-text, #fff)}.fd-md-field{position:relative;display:grid;min-width:0}.fd-md-view{min-height:50px;box-sizing:border-box;padding:2px 9px;border:1px solid transparent;border-radius:2px;line-height:20px;overflow-wrap:anywhere;cursor:text;outline:none}.fd-md-view:hover{border-color:var(--fd-border)}.fd-md-view:focus-visible{border-color:var(--fd-focus)}.fd-md-view[aria-readonly=true]{cursor:default;border-color:transparent}.fd-md-view.fd-blank:before{content:attr(data-placeholder);color:var(--fd-muted);font-style:italic}.fd-md-view[hidden]{display:none}.fd-form .fd-field:has(>.fd-md-field>.fd-field-tools:empty):has(>.fd-md-field>.fd-md-view.fd-blank:not([data-placeholder],[hidden])){display:none}.fd-form .fd-section[data-head]>.fd-grid:has(>.fd-field:only-child>.fd-md-field>.fd-field-tools:empty):has(>.fd-field:only-child>.fd-md-field>.fd-md-view.fd-blank:not([data-placeholder],[hidden])){padding-block-start:0}.fd-form .fd-section[data-head]:has(>.fd-grid>.fd-field:only-child>.fd-md-field>.fd-field-tools:empty):has(>.fd-grid>.fd-field:only-child>.fd-md-field>.fd-md-view.fd-blank:not([data-placeholder],[hidden])){margin-block-end:-3px}.fd-field-tools{display:flex;justify-content:flex-end;gap:2px}.fd-field-tools:not(:has(>:not([hidden]))){display:none}.fd-section-tools .fd-field-tool[hidden]{display:none}.fd-form .fd-section[data-head]>.fd-grid>.fd-field :is(.fd-text[data-toolbar=focus]>.fd-text-box,.fd-md-view){margin-inline:2px}.fd-form .fd-section[data-head]>.fd-grid>.fd-field .fd-text[data-toolbar=focus]>.fd-text-box{margin-block-start:1px}.fd-form .fd-section[data-head]>.fd-grid>.fd-field>.fd-label .fd-lock-wrap{height:16px;vertical-align:top;align-items:center}.fd-form .fd-section[data-head]>.fd-grid>.fd-field>.fd-label .fd-lock{height:16px}.fd-text-menu{z-index:60;display:grid;min-width:160px;box-sizing:border-box;padding:8px 0;border-radius:2px;background:var(--fd-surface);color:var(--fd-text);box-shadow:var(--fd-depth-8)}.fd-text-menu[hidden]{display:none}.fd-text-menu-item{display:flex;align-items:center;gap:10px;min-height:31px;box-sizing:border-box;padding:0 16px;padding-inline:16px;border:0;background:none;color:var(--fd-text);font:14px/20px var(--fd-font);text-align:start;white-space:nowrap;cursor:pointer}.fd-text-menu-item:hover,.fd-text-menu-item:focus-visible{background:var(--fd-text-hover)}.fd-text-menu-item>:is(svg,.fd-text-colour){width:16px;height:16px;flex:none}.fd-text-menu-item>svg.fd-icon{stroke-width:1.6}.fd-text-menu-item[aria-checked=true]{font-weight:600}.fd-text-colour{display:inline-block;box-sizing:border-box;border:1px solid color-mix(in srgb,var(--fd-text) 25%,transparent);border-radius:2px}.fd-text-colour-none{background:linear-gradient(to top right,transparent calc(50% - 1px),#d13438 calc(50% - 1px),#d13438 calc(50% + 1px),transparent calc(50% + 1px))}.fd-text-emoji{grid-template-columns:repeat(5,36px);min-width:0;padding:6px}.fd-text-emoji>.fd-text-menu-item{justify-content:center;min-height:32px;padding:0;font-size:18px}.fd-links-menu{width:223px}.fd-links-menu .fd-text-menu-item{gap:12px;padding-inline:14px}.fd-text-suggest{position:absolute;z-index:50;inset-inline-start:0;inset-block-start:100%;min-width:220px;max-width:100%;max-height:240px;overflow:auto;margin:4px 0 0;padding:4px 0;list-style:none;border-radius:2px;background:var(--fd-surface);box-shadow:var(--fd-depth-8)}.fd-text-suggest>li{padding:6px 12px;cursor:pointer}.fd-text-suggest>li[aria-selected=true]{background:var(--fd-accent-soft)}.fd-text-suggest>li.fd-empty{color:var(--fd-muted);cursor:default}.fd-links-box{display:grid;justify-items:start;min-width:0}.fd-links-add{display:inline-flex;align-items:center;gap:8px;height:31px;padding:0 13px;border:0;border-radius:2px;background:none;color:var(--fd-text);font:600 14px/20px var(--fd-font);cursor:pointer}.fd-links-add:hover{background:var(--fd-text-hover)}.fd-links-add:is(.fd-pressed,[aria-expanded=true]){background:var(--fd-text-pressed)}.fd-links-add>.fd-text-chevron{width:12px;height:12px;margin:0;stroke-width:1.2}.fd-links-add[hidden],.fd-links-list[hidden]{display:none}.fd-links-list{justify-self:stretch;display:grid;margin:0;padding:0;list-style:none}.fd-links-list>li{display:flex;align-items:center;gap:8px;min-height:32px;padding-inline:13px 0;border-block-end:1px solid var(--fd-border)}.fd-links-name{flex:1 1 auto;min-width:0;padding:0;border:0;background:none;color:var(--fd-text-link);font:inherit;text-align:start;overflow-wrap:anywhere;cursor:pointer}span.fd-links-name{color:var(--fd-text);cursor:default}.fd-links-remove{display:inline-grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:2px;background:none;color:var(--fd-text);cursor:pointer}.fd-links-remove:hover{background:var(--fd-text-hover)}.fd-links-remove>svg{width:14px;height:14px}.fd-links-help{position:relative;justify-self:stretch;display:block;padding:10px 12px;padding-inline:50px 12px;background:var(--fd-text-help);font-size:14px;line-height:17px;overflow-wrap:anywhere}.fd-links-help>p{margin:0}.fd-links-help-tile{display:grid;place-items:center;border-radius:2px;color:#fff;background:linear-gradient(color-mix(in srgb,var(--fd-tile) 88%,#fff),var(--fd-tile))}.fd-links-help-tile>.fd-icon{width:18px;height:18px;margin:0;stroke-width:1.6}.fd-links-help[hidden],.fd-links-empty[hidden]{display:none}.fd-links-empty{justify-self:stretch;padding:10px;background:var(--fd-text-help);line-height:17px}.fd-links-empty-link{padding:0;border:0;background:none;color:var(--fd-text-link);font:14px/17px var(--fd-font);text-align:start;text-decoration:underline;cursor:pointer}';function je(e){(0,De.installPartStyles)(e,"fieldia-editor-styles",Rn,De.PART_RANK.text)}var Cn=0,jt=e=>!e.replace(/<br\s*\/?>|<\/?(p|div|span)>| |\s/gi,"");function ze(e,n={}){je(e);let r=(0,Ee.maker)(e),i=n.labels??Je.WIDGET_LABELS.en,d=++Cn,l=n.references??[],f=n.toolbar??"always",s=n.editor??"rich",k=!1,m=null,x=r("div",{class:"fd-text","data-editor":s,"data-toolbar":f,"data-bar-at":n.toolbarAt??(f==="focus"?"bottom":"top")});n.switchEditor==="always"&&x.setAttribute("data-switch","always");let E=t=>{n.labelledBy?t.setAttribute("aria-labelledby",n.labelledBy):n.label&&t.setAttribute("aria-label",n.label)},u=r("div",{class:"fd-text-area",role:"textbox","aria-multiline":"true",contenteditable:"true",id:s==="rich"?n.id:void 0});E(u),n.placeholder&&(u.setAttribute("data-placeholder",n.placeholder),u.setAttribute("aria-placeholder",n.placeholder));let w=r("input",{class:"fd-input",type:"url",placeholder:"https://","aria-label":i.linkAddress}),v=r("button",{type:"button",class:"fd-button fd-link-apply"},i.applyLink),L=r("div",{class:"fd-link-row",hidden:""},w,v),R=r("div",{class:"fd-text-box"}),p=r("textarea",{class:"fd-md-input",rows:"3",spellcheck:"true",id:s==="markdown"?n.id:void 0});E(p),n.placeholder&&(p.placeholder=n.placeholder);let T=r("div",{class:"fd-md-preview",hidden:"",tabindex:"0",role:"document"});E(T);let C=(0,Ze.drawIcon)(e,"info"),ie=r("p",{class:"fd-md-hint",id:`fd-md-hint-${d}`},...C?[C]:[],r("span",{class:"fd-md-supported"},i.markdownSupported),` ${i.pasteOrSelect}`);p.setAttribute("aria-describedby",ie.id);let A=r("button",{type:"button",role:"switch",class:"fd-md-preview-switch","aria-checked":"false"},r("span",{class:"fd-md-track","aria-hidden":"true"}),r("span",{},i.preview)),z=r("div",{class:"fd-md-row"}),Y=r("div",{class:"fd-md-card"},p,T,ie,z),q=r("p",{class:"fd-text-say",role:"status","aria-live":"polite"}),X=r("button",{type:"button",class:"fd-text-switch"}),W=r("div",{class:"fd-text-under"},q,...n.switchEditor?[X]:[]),ee=r("span",{},i.formattingLost),J=r("button",{type:"button",class:"fd-button fd-button-link"},i.switchAnyway),Z=r("button",{type:"button",class:"fd-button fd-button-link"},i.cancel),B=r("div",{class:"fd-text-ask",role:"group","aria-label":i.switchToMarkdown,hidden:""},ee,J,Z),g=r("ul",{class:"fd-text-suggest",role:"listbox",id:`fd-text-suggest-${d}`,hidden:"","aria-label":i.search});x.append(R,Y,W,B,g);let M;function _(t){q.textContent="",q.textContent=t,clearTimeout(M),M=setTimeout(()=>q.textContent="",6e3)}function h(){let t=s==="rich"?(0,de.sanitizeHtml)(u.innerHTML,e):(0,de.sanitizeHtml)(Te(p.value),e),a=jt(t)?null:t;u.classList.toggle("fd-blank",s==="rich"&&!u.textContent?.trim()&&!u.querySelector("img, li")),a!==m&&(m=a,n.onInput?.(a))}function H(t){let a=t?(0,de.sanitizeHtml)(t,e):"";if(s==="rich")u.innerHTML!==a&&(u.innerHTML=a),u.classList.toggle("fd-blank",!u.textContent?.trim()&&!u.querySelector("img, li"));else{let o=Ie(a,e);p.value!==o&&(p.value=o),A.getAttribute("aria-checked")==="true"&&(T.innerHTML=a)}}let F=null,V=()=>{u.focus();let t=e.getSelection();F&&t&&(t.removeAllRanges(),t.addRange(F))},N=(t,a)=>{V(),e.execCommand?.(t,!1,a),h()},pe=()=>{let t=F?.commonAncestorContainer??e.getSelection()?.anchorNode??null,o=(t?.nodeType===Node.TEXT_NODE?t.parentElement:t)?.closest?.("a");return o&&u.contains(o)?o:null};function se(t,a=t,o=""){let[c,b]=[p.selectionStart,p.selectionEnd],$=p.value.slice(c,b)||o;p.setRangeText(`${t}${$}${a}`,c,b,"end"),p.setSelectionRange(c+t.length,c+t.length+$.length),p.focus(),h()}function he(t){let a=p.value,o=a.lastIndexOf(`
|
|
19
|
+
`,p.selectionStart-1)+1,c=a.indexOf(`
|
|
20
|
+
`,p.selectionEnd),b=c===-1?a.length:c,$=a.slice(o,b).split(`
|
|
21
|
+
`).map((S,ne)=>t(ne)+S.replace(/^(#{1,4} |[-*+] (\[[ xX]\] )?|\d+\. )/,""));p.setRangeText($.join(`
|
|
22
|
+
`),o,b,"end"),p.focus(),h()}function We(t){p.setRangeText(t,p.selectionStart,p.selectionEnd,"end"),p.focus(),h()}let me=r("input",{type:"file",accept:"image/png,image/jpeg,image/gif,image/webp",hidden:"",tabindex:"-1","aria-hidden":"true"});x.append(me);let Kt=2*1024*1024;function Ye(t){if(!/^image\/(png|jpeg|gif|webp)$/.test(t.type)||t.size>Kt)return;let a=new FileReader;a.addEventListener("load",()=>{let o=String(a.result);if(s==="rich"){V();let c=r("img",{src:o,alt:t.name});e.execCommand?.("insertHTML",!1,c.outerHTML),h()}else We(`![${t.name.replace(/[[\]]/g,"")}](${o})`)}),a.readAsDataURL(t)}me.addEventListener("change",()=>{for(let t of me.files??[])Ye(t);me.value=""}),p.addEventListener("paste",t=>{let a=[...t.clipboardData?.files??[]].filter(o=>o.type.startsWith("image/"));a.length&&(t.preventDefault(),a.forEach(Ye))});function Xt(t,a){if(_(""),s==="markdown"&&A.getAttribute("aria-checked")==="true"&&it(!1),s==="markdown")return Jt(t,a);switch(t){case"bold":return N("bold");case"italic":return N("italic");case"underline":return N("underline");case"strike":return N("strikeThrough");case"bulletList":return N("insertUnorderedList");case"numberList":return N("insertOrderedList");case"outdent":return N("outdent");case"indent":return N("indent");case"clearFormatting":return N("removeFormat");case"code":{V();let o=e.getSelection()?.toString()||i.code.toLowerCase();return e.execCommand?.("insertHTML",!1,`<code>${o.replace(/[&<>]/g,c=>({"&":"&","<":"<",">":">"})[c])}</code>`),h()}case"taskList":{N("insertUnorderedList");let o=e.getSelection()?.anchorNode?.parentElement?.closest("li");return o&&u.contains(o)&&o.setAttribute("data-task","open"),h()}case"image":case"attach":return me.click();case"link":return L.hidden=!1,w.value=pe()?.getAttribute("href")??"",w.setAttribute("aria-invalid","false"),w.focus();case"unlink":{let o=pe();if(!o)return _(i.cursorInLink);V();let c=e.createRange();c.selectNodeContents(o);let b=e.getSelection();return b?.removeAllRanges(),b?.addRange(c),e.execCommand?.("unlink",!1),h()}case"mention":return Se("@");case"reference":return Se(a?.key??"#");default:return}}function Jt(t,a){switch(t){case"bold":return se("**");case"italic":return se("*");case"strike":return se("~~");case"code":return se("`");case"highlight":return se("==");case"link":{let o=p.selectionStart,c=p.value.slice(o,p.selectionEnd)||i.link.toLowerCase();return p.setRangeText(`[${c}](https://)`,o,p.selectionEnd,"end"),p.setSelectionRange(o+c.length+3,o+c.length+11),p.focus(),h()}case"bulletList":return he(()=>"- ");case"numberList":return he(o=>`${o+1}. `);case"taskList":return he(()=>"- [ ] ");case"image":case"attach":return me.click();case"mention":return Se("@");case"reference":return Se(a?.key??"#");default:return}}function Zt(t){let a=i.colourNames.split("|"),o=s==="markdown";switch(t){case"highlight":return Ct.map(([c,b])=>({label:a[c],lead:Ke(e,b),run:()=>tt("hiliteColor",b??"transparent")}));case"colour":return Ht.map(([c,b])=>({label:a[c],lead:Ke(e,b),run:()=>tt("foreColor",b??"inherit")}));case"size":return Nt.map(c=>({label:`${c}px`,run:()=>Qt(c)}));case"heading":return[1,2,3].map(c=>({label:(0,Ee.fillIn)(i.headingLevel,{n:c}),run:()=>o?he(()=>`${"#".repeat(c)} `):N("formatBlock",`<h${c}>`)})).concat(o?[]:[{label:i.paragraph,run:()=>N("formatBlock","<p>")}]);case"emoji":return It.map(c=>({label:c,run:()=>o?We(c):N("insertText",c)}));default:return[]}}function et(){for(let t of[...u.querySelectorAll("[style]:not(span)")]){let a=["color","background-color","font-size"].filter(c=>t.style.getPropertyValue(c));if(!a.length)continue;let o=r("span");for(let c of a)o.style.setProperty(c,t.style.getPropertyValue(c)),t.style.removeProperty(c);o.append(...t.childNodes),t.append(o),t.getAttribute("style")?.trim()||t.removeAttribute("style")}}let tt=(t,a)=>{V(),e.execCommand?.("styleWithCSS",!1,"true"),e.execCommand?.(t,!1,a),et(),h()};function Qt(t){V(),e.execCommand?.("styleWithCSS",!1,"false"),e.execCommand?.("fontSize",!1,"7");for(let a of[...u.querySelectorAll('font[size="7"]')]){let o=r("span",{style:`font-size: ${t}px;`},...a.childNodes);a.replaceWith(o)}for(let a of[...u.querySelectorAll('[style*="xxx-large"]')])a.style.fontSize=`${t}px`;et(),h()}function Yt(t){let a=[];for(let o of t){if(o==="mention"&&!n.mention||o==="unlink"&&s==="markdown")continue;let c=o==="reference"?[...l]:[void 0];for(let b of c){let $=b?(0,Ee.fillIn)(i.linkRecordNamed,{kind:en(b.label)}):$t(o,i),S=St.has(o)&&!(o==="highlight"&&s==="markdown"),ne=S&&o!=="emoji",I=r("button",{type:"button",class:`fd-text-tool${ne?" fd-text-tool-choice":""}`,"data-tool":o,"aria-label":$,title:$,tabindex:"-1"},Ue(e,o,n.icons,b?.icon,s));S&&(ne&&I.append(_e(e)),I.setAttribute("aria-haspopup","menu"),I.setAttribute("aria-expanded","false")),At.has(o)&&s==="rich"&&I.setAttribute("aria-pressed","false"),b&&I.setAttribute("data-key",b.key),I.addEventListener("mousedown",y=>y.preventDefault());let oe={tool:o,label:$,button:I,press(y){if(!S)return Xt(o,b);(y===I?oe.menu??(oe.menu=ae(e,I,{label:$,grid:o==="emoji",className:o==="emoji"?"fd-text-emoji":void 0,within:x})):tn(y,$,o)).open(Zt(o))}};I.addEventListener("click",()=>oe.press(I)),a.push(oe)}}return a}function en(t){return/^[A-Z][a-z]/.test(t)&&i===Je.WIDGET_LABELS.en?t[0].toLowerCase()+t.slice(1):t}let nt=new Map;function tn(t,a,o){let c=nt.get(o);return c||(c=ae(e,t,{label:a,align:"end",grid:o==="emoji",className:o==="emoji"?"fd-text-emoji":void 0,within:x}),nt.set(o,c)),c}function rt(t,a=[]){let o=r("div",{class:"fd-text-bar",role:"toolbar","aria-label":i.formatting}),c=Yt(t),b=r("button",{type:"button",class:"fd-text-tool fd-text-more","aria-label":i.moreTools,title:i.moreTools,tabindex:"-1",hidden:""},Rt(e));b.addEventListener("mousedown",y=>y.preventDefault());let $=ae(e,b,{label:i.moreTools,align:"end",within:x});b.addEventListener("click",()=>$.open(c.filter(y=>y.button.hidden).map(y=>({label:y.label,lead:Ue(e,y.tool,n.icons,y.button.getAttribute("data-key")?l.find(O=>O.key===y.button.getAttribute("data-key"))?.icon:void 0,s),run:()=>y.press(b)})))),o.append(...c.map(y=>y.button),b,...a);for(let y of a)y.matches("button")&&(y.tabIndex=-1);c[0]?c[0].button.tabIndex=0:a[0]&&(a[0].tabIndex=0);let S=()=>[...c.map(y=>y.button),b,...a.filter(y=>y.matches("button"))].filter(y=>!y.hidden);o.addEventListener("keydown",y=>{let O=S(),U=O.indexOf(e.activeElement);if(U<0)return;let ke=getComputedStyle(o).direction==="rtl",Pe={ArrowRight:ke?-1:1,ArrowLeft:ke?1:-1,Home:-U,End:O.length-1-U}[y.key];if(Pe===void 0)return;y.preventDefault();let ye=O[(U+Pe+O.length)%O.length];for(let ce of O)ce.tabIndex=ce===ye?0:-1;ye.focus()});let ne=()=>{if(!o.clientWidth)return;for(let K of c)K.button.hidden=!1;b.hidden=!0;let y=o.clientWidth-parseFloat(getComputedStyle(o).paddingInlineStart||"0")-parseFloat(getComputedStyle(o).paddingInlineEnd||"0"),O=parseFloat(getComputedStyle(o).columnGap||"0")||0,U=c.map(K=>K.button.offsetWidth+O),ke=a.reduce((K,we)=>K+we.offsetWidth+O,0);if(U.reduce((K,we)=>K+we,0)+ke-O<=y)return;b.hidden=!1;let ye=ke+b.offsetWidth+O,ce=0;for(;ce<c.length&&ye+U[ce]-O<=y;)ye+=U[ce++];c.forEach((K,we)=>K.button.hidden=we>=ce),S().some(K=>K.tabIndex===0)||((S()[0]??b).tabIndex=0)},I=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>ne());return I?.observe(o),{bar:o,stops:c,fit:ne,reflect:()=>{for(let y of c){if(y.tool==="unlink"){let U=!pe();y.button.toggleAttribute("data-idle",U),y.button.title=U?`${y.label} \u2014 ${i.cursorInLink}`:y.label}if(!y.button.hasAttribute("aria-pressed"))continue;let O=y.tool==="strike"?"strikeThrough":y.tool;y.button.setAttribute("aria-pressed",String(!!e.queryCommandState?.(O)))}},destroy:()=>I?.disconnect()}}let Q=null,xe=null,nn=()=>n.editor!=="markdown"&&n.tools?n.tools:re.RICH_TOOLS,rn=()=>n.editor==="markdown"&&n.tools?n.tools:re.MARKDOWN_TOOLS;function on(){!Q&&f!=="never"&&(Q=rt(nn()),Q.reflect());let t=[u,L];Q&&(x.getAttribute("data-bar-at")==="top"?t.unshift(Q.bar):t.push(Q.bar)),R.replaceChildren(...t)}function an(){xe||(xe=rt(rn(),[A])),z.replaceChildren(xe.bar)}function it(t){A.setAttribute("aria-checked",String(t)),t&&(T.innerHTML=Le((0,de.sanitizeHtml)(Te(p.value),e),e)),T.style.minHeight=t?`${p.offsetHeight}px`:"",p.hidden=t,T.hidden=!t,(t?T:p).focus()}A.addEventListener("click",()=>it(A.getAttribute("aria-checked")!=="true"));function Be(t,a=!1){if(t===s)return;if(t==="markdown"&&a&&m&&Oe(m,e)){B.hidden=!1,Z.focus();return}let o=m;s=t,x.setAttribute("data-editor",s),n.id&&(u.id=s==="rich"?n.id:"",p.id=s==="markdown"?n.id:"",u.id||u.removeAttribute("id"),p.id||p.removeAttribute("id")),at(),H(o),n.onSwitch?.(s)}J.addEventListener("click",()=>{B.hidden=!0,Be("markdown"),p.focus()});let ot=()=>{B.hidden=!0,X.focus()};Z.addEventListener("click",ot),B.addEventListener("keydown",t=>{t.key==="Escape"&&(t.preventDefault(),t.stopPropagation(),ot())}),X.addEventListener("click",()=>{Be(s==="rich"?"markdown":"rich",!0),B.hidden&&(s==="rich"?u:p).focus()});function at(){R.hidden=s!=="rich",Y.hidden=s!=="markdown",s==="rich"?on():an(),X.textContent=s==="rich"?i.switchToMarkdown:i.switchToRich,(s==="rich"?Q:xe)?.fit()}v.addEventListener("click",()=>{let t=(0,de.linkAddress)(w.value);if(!t){w.setAttribute("aria-invalid","true");return}w.setAttribute("aria-invalid","false"),V(),e.getSelection()?.isCollapsed?e.execCommand?.("insertHTML",!1,r("a",{href:t},t).outerHTML):e.execCommand?.("createLink",!1,t),L.hidden=!0,h()}),w.addEventListener("keydown",t=>{t.key==="Enter"?(t.preventDefault(),v.click()):t.key==="Escape"&&(t.preventDefault(),t.stopPropagation(),L.hidden=!0,V())});let dt=[...n.mention?["@"]:[],...l.map(t=>t.key)],te=[],ge=0,st=0,be=null,le=()=>{g.hidden=!0,te=[],be=null;for(let t of[u,p])t.removeAttribute("aria-activedescendant")};function Se(t){s==="rich"?(V(),e.execCommand?.("insertText",!1,t)):We(t),lt()}function dn(){if(!dt.length)return null;let t=new RegExp(`(?:^|\\s)([${dt.map($=>$.replace(/[\\\]^-]/g,"\\$&")).join("")}])([\\p{L}\\p{N}._-]*)$`,"u");if(s==="markdown"){let $=p.value.slice(0,p.selectionStart),S=t.exec($);return S?{key:S[1],query:S[2],start:$.length-S[2].length-1}:null}let a=e.getSelection(),o=a?.anchorNode;if(!a?.isCollapsed||o?.nodeType!==Node.TEXT_NODE||!u.contains(o))return null;let c=(o.textContent??"").slice(0,a.anchorOffset),b=t.exec(c);return b?{key:b[1],query:b[2],start:c.length-b[2].length-1,node:o}:null}async function lt(){let t=dn();if(!t)return le();let a=t.key==="@"&&n.mention?n.mention.search:l.find(b=>b.key===t.key)?.search;if(!a)return le();let o=++st,c=await a(t.query);o===st&&(te=c.slice(0,8),ge=0,be={key:t.key,start:t.start,node:t.node},ct())}function ct(){let t=s==="rich"?u:p;g.replaceChildren(...te.length?te.map((a,o)=>{let c=r("li",{role:"option",id:`${g.id}-${o}`,"aria-selected":String(o===ge)},sn(a));return c.addEventListener("mousedown",b=>b.preventDefault()),c.addEventListener("click",()=>ft(a)),c}):[r("li",{class:"fd-empty"},i.noResults)]),g.hidden=!1,t.setAttribute("aria-controls",g.id),te.length&&t.setAttribute("aria-activedescendant",`${g.id}-${ge}`)}let sn=t=>be?.key==="@"?t.label:`${be?.key??""}${t.id} ${t.label}`;function ft(t){let a=be;if(!a)return;let o=l.find(oe=>oe.key===a.key),c=a.key==="@"?`@${t.label}`:`${a.key}${t.id}`;if(s==="markdown")return p.setRangeText(`${c} `,a.start,p.selectionStart,"end"),le(),p.focus(),h();let b=a.node,$=e.getSelection();if(!b||!$)return le();let S=e.createRange();S.setStart(b,a.start),S.setEnd(b,Math.min($.anchorOffset,b.length)),S.deleteContents();let ne=r("span",a.key==="@"?{"data-mention":String(t.id)}:{"data-record":String(t.id),...o?.model?{"data-model":o.model}:{}},c),I=e.createTextNode("\xA0");S.insertNode(I),S.insertNode(ne),S.setStartAfter(I),S.collapse(!0),$.removeAllRanges(),$.addRange(S),le(),u.focus(),h()}let ln=t=>{if(g.hidden||!te.length)return!1;if(t.key==="ArrowDown"||t.key==="ArrowUp")ge=(ge+(t.key==="ArrowDown"?1:-1)+te.length)%te.length,ct();else if(t.key==="Enter"&&!t.ctrlKey&&!t.metaKey||t.key==="Tab")ft(te[ge]);else if(t.key==="Escape")le();else return!1;return t.preventDefault(),t.stopPropagation(),!0};for(let t of[u,p])t.addEventListener("keydown",a=>{ln(a)||n.onKey?.(a)}),t.addEventListener("input",()=>{_(""),h(),lt()});u.addEventListener("blur",()=>{s==="rich"&&u.innerHTML!==(m??"")&&m!==null&&(u.innerHTML=m),setTimeout(()=>{x.contains(e.activeElement)||le()})}),u.addEventListener("click",t=>{let a=t.target.closest?.("li[data-task]");if(!a||k)return;let o=a.getBoundingClientRect();(getComputedStyle(a).direction==="rtl"?o.right-t.clientX:t.clientX-o.left)>18||(a.setAttribute("data-task",a.getAttribute("data-task")==="done"?"open":"done"),h())});let ut=()=>{let t=e.getSelection();!t?.rangeCount||!u.contains(t.anchorNode)||(F=t.getRangeAt(0).cloneRange(),Q?.reflect())};return e.addEventListener("selectionchange",ut),at(),H(null),{element:x,input:()=>s==="rich"?u:p,editor:()=>s,value:()=>m,setValue(t){let a=t?(0,de.sanitizeHtml)(t,e):null,o=a&&!jt(a)?a:null,c=x.contains(e.activeElement);o===m&&c||(m=o,H(o))},setEditor:Be,setReadonly(t){k=t,u.setAttribute("contenteditable",String(!t)),u.setAttribute("aria-readonly",String(t)),p.readOnly=t;for(let a of[Q,xe])a&&(a.bar.hidden=t);W.hidden=t,t&&(L.hidden=!0)},focus:()=>(s==="rich"?u:A.getAttribute("aria-checked")==="true"?T:p).focus(),say:_,destroy(){clearTimeout(M),e.removeEventListener("selectionchange",ut),Q?.destroy(),xe?.destroy()}}}function Le(e,n){let r=n.createElement("template");r.innerHTML=e;for(let d of r.content.querySelectorAll("a[href]")){if(!/^https?:/i.test(d.getAttribute("href")??""))continue;d.setAttribute("target","_blank"),d.setAttribute("rel","noopener noreferrer");let l=(0,Ze.drawIcon)(n,"external");l&&(l.classList.add("fd-external"),d.after(l))}let i=n.createElement("div");return i.append(r.content),i.innerHTML}var Qe=D(ve()),j=D($e()),Wt=D(Re()),Bt=D(Xe());var Hn=e=>typeof e=="string"&&re.TEXT_TOOLS.includes(e),zt=e=>e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null;function Pt(e){let{form:n,name:r,node:i,id:d,document:l,labels:f=Wt.WIDGET_LABELS.en}=e,s=(0,j.maker)(l),k=i.options??{},m=k.editor==="markdown"?"markdown":"rich",x=k.toolbar===!1||k.toolbar==="never"?"never":k.toolbar==="focus"?"focus":"always",E=Array.isArray(k.tools)?k.tools.filter(Hn):void 0,u=zt(k.mention),w=typeof u?.model=="string"?u.model:null,v=(Array.isArray(k.references)?k.references:[]).flatMap(g=>{let M=zt(g);if(!M||typeof M.key!="string"||typeof M.model!="string"||typeof M.label!="string")return[];let _=M.model;return[{key:M.key,label:M.label,model:_,...typeof M.icon=="string"?{icon:M.icon}:{},search:h=>n.search(r,h,8,{model:_})}]}),L=m==="rich",R=!1,p=null,T=ze(l,{id:m==="rich"?d:`${d}-markdown`,labelledBy:`${d}-label`,placeholder:i.placeholder,labels:f,editor:m,tools:E,toolbar:x,...typeof k.toolbarAt=="string"?{toolbarAt:k.toolbarAt==="top"?"top":"bottom"}:{},switchEditor:k.switchEditor===!0,...w?{mention:{search:g=>n.search(r,g,8,{model:w})}}:{},references:v,onInput:g=>n.setValue(r,g),onKey(g){return g.key!=="Escape"||m!=="markdown"||!L?!1:(g.preventDefault(),g.stopPropagation(),B(!1),!0)}});if(m==="rich")return{element:T.element,focus:()=>T.focus(),destroy:()=>T.destroy(),update(g){R=g.readonly,T.setValue(typeof g.value=="string"?g.value:null),T.setReadonly(g.readonly);let M=T.input();(0,j.setAttr)(M,"aria-invalid",String(g.invalid)),(0,j.setAttr)(M,"aria-describedby",g.describedBy||null)}};let C=s("div",{class:"fd-md-view",id:d,role:"textbox","aria-multiline":"true","aria-readonly":"false",tabindex:"0","aria-labelledby":`${d}-label`});i.placeholder&&C.setAttribute("data-placeholder",i.placeholder);let ie=()=>l.getElementById(`${d}-label`)?.textContent?.trim()||n.page.fields[r]?.label||r,A=s("button",{type:"button",class:"fd-field-tool","data-tool":"edit"}),z=s("button",{type:"button",class:"fd-field-tool","data-tool":"done",hidden:""}),Y=(0,Qe.drawIcon)(l,"edit"),q=(0,Qe.drawIcon)(l,"check");Y&&A.append(Y),q&&z.append(q);let X=s("div",{class:"fd-field-tools"},A,z),W=s("div",{class:"fd-md-field"},X,C,T.element);T.element.hidden=!0;let ee=()=>{let g=(0,j.fillIn)(f.editNamed,{name:ie()});(0,j.setAttr)(A,"aria-label",g),(0,j.setAttr)(A,"title",g),(0,j.setAttr)(z,"aria-label",f.doneEditing),(0,j.setAttr)(z,"title",f.doneEditing)};ee();function J(g){let M=g?(0,Bt.sanitizeHtml)(g,l):"",_=Le(M,l);C.innerHTML!==_&&(C.innerHTML=_),C.classList.toggle("fd-blank",!M)}function Z(){L||R||(L=!0,p=n.getState().values[r]??null,T.setValue(p),C.hidden=!0,T.element.hidden=!1,A.hidden=!0,z.hidden=!1,W.setAttribute("data-editing",""),T.focus())}function B(g){L&&(L=!1,g||n.setValue(r,p),C.hidden=!1,T.element.hidden=!0,A.hidden=R,z.hidden=!0,W.removeAttribute("data-editing"),J(n.getState().values[r]??null),C.focus())}return A.addEventListener("click",Z),z.addEventListener("click",()=>B(!0)),C.addEventListener("click",g=>{g.target.closest?.("a")||Z()}),C.addEventListener("keydown",g=>{g.key!=="Enter"||g.target.closest?.("a")||(g.preventDefault(),Z())}),{element:W,tools:[A,z],focus:()=>L?T.focus():C.focus(),destroy:()=>T.destroy(),update(g){R=g.readonly;let M=typeof g.value=="string"?g.value:null;L?T.setValue(M):J(M),T.setReadonly(g.readonly),R&&L&&B(!0),A.hidden=R||L,(0,j.setAttr)(C,"aria-readonly",String(R)),(0,j.setAttr)(C,"tabindex",R?"-1":"0"),ee();for(let _ of[C,T.input()])(0,j.setAttr)(_,"aria-invalid",String(g.invalid)),(0,j.setAttr)(_,"aria-describedby",g.describedBy||null)}}}var Me=D(ve()),G=D($e()),qt=D(Re()),Vt=D(Gt());var Ut=({form:e,name:n,field:r,node:i,id:d,document:l,labels:f=qt.WIDGET_LABELS.en,dialogs:s})=>{je(l);let k=r,m=(0,G.maker)(l),x=i.options??{},E=h=>typeof x[h]=="string"&&x[h].trim()?x[h]:null,u=x.add==="menu",w=E("addLabel")??f.addLink,v=m("button",{type:"button",class:"fd-links-add"},m("span",{},w));u&&v.append(_e(l));let L=u?ae(l,v,{label:w,align:"end",className:"fd-links-menu"}):null,R=m("ul",{class:"fd-links-list"}),p=E("help"),T=typeof x.helpIcon=="string"?(0,Me.drawIcon)(l,x.helpIcon):null,C=typeof x.helpTile=="string"&&/^#[0-9a-fA-F]{6}$/.test(x.helpTile)?x.helpTile:null,ie=T&&C?m("span",{class:"fd-links-help-icon fd-links-help-tile","aria-hidden":"true"},T):T;T&&C?ie?.style.setProperty("--fd-tile",C):T?.classList.add("fd-links-help-icon");let A=p?m("div",{class:"fd-links-help"},...ie?[ie]:[],m("p",{},...(0,Vt.linkedWords)(l,p))):null,z=E("emptyLink"),Y=z?m("button",{type:"button",class:"fd-links-empty-link"},z):null,q=Y?m("div",{class:"fd-links-empty"},Y):null,X=m("div",{class:"fd-links-box",id:d,role:"group"},v,...L?[L.element]:[],R,...A?[A]:[],...q?[q]:[]),W=!1,ee=[],J=()=>e.getState().values[n]??[],Z=h=>{!h||J().some(H=>H.id===h.id)||e.setValue(n,[...J(),{id:h.id,label:h.label}])};async function B(){!s||W||Z(await s.searchMore({title:k.label,search:(h,H)=>e.search(n,h,H)}))}async function g(){!s||W||Z(await s.openRecord(k.relation,{title:k.label}))}v.addEventListener("click",()=>{if(!L)return void B();if(L.isOpen())return L.close();let h=!!s?.canOpen(k.relation);L.open([{label:f.existingItem,lead:(0,Me.drawIcon)(l,"link"),run:()=>{B()}},...h?[{label:f.newItem,lead:(0,Me.drawIcon)(l,"edit"),run:()=>{g()}}]:[]])}),v.addEventListener("keydown",h=>{L&&h.key==="ArrowDown"&&!L.isOpen()&&(h.preventDefault(),v.click())}),Y?.addEventListener("click",()=>{B()});async function M(h){let H=await s?.openRecord(k.relation,{recordId:h.id,title:h.label});H&&H.label!==h.label&&e.setValue(n,J().map(F=>F.id===h.id?{id:F.id,label:H.label}:F))}function _(h){let H=!!s?.canOpen(k.relation),F=H?m("button",{type:"button",class:"fd-links-name"},h.label):m("span",{class:"fd-links-name"},h.label);H&&F.addEventListener("click",()=>{M(h)});let V=m("li",{"data-record":String(h.id)},F);if(!W){let N=m("button",{type:"button",class:"fd-links-remove","aria-label":(0,G.fillIn)(f.remove,{name:h.label}),title:(0,G.fillIn)(f.remove,{name:h.label})}),pe=(0,Me.drawIcon)(l,"close");pe&&N.append(pe),N.addEventListener("click",()=>{let se=ee.indexOf(h);e.setValue(n,J().filter(he=>he.id!==h.id)),queueMicrotask(()=>(R.querySelectorAll(".fd-links-remove")[Math.min(se,ee.length-1)]??v).focus())}),V.append(N)}return V}return{element:X,focus:()=>v.focus(),destroy:()=>L?.close(!1),update(h){let H=h.value??[],F=H!==ee||W!==h.readonly;W=h.readonly,ee=H,(0,G.setHidden)(v,W||!s),A&&(0,G.setHidden)(A,H.length>0),q&&(0,G.setHidden)(q,H.length>0||W||!s),(0,G.setHidden)(R,!H.length),F&&R.replaceChildren(...H.map(_)),(0,G.setAttr)(X,"aria-invalid",String(h.invalid)),(0,G.setAttr)(X,"aria-describedby",h.describedBy||null)}}};return xn(Nn);})();
|
|
23
|
+
return part; }]);
|
|
24
|
+
//# sourceMappingURL=fieldia.text.js.map
|