@brightsideoy/kama 1.0.0-alpha.16 → 1.0.0-alpha.17
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/content/definitions/taxonomies/categories.yaml +5 -2
- package/content/definitions/taxonomies/tags.yaml +5 -2
- package/dist/assets/{AssetEditor-CEHxvQj0.js → AssetEditor-CCNDGlQ_.js} +1 -1
- package/dist/assets/{CmsHelp-Cnr801lx.js → CmsHelp-m9EOY_nE.js} +1 -1
- package/dist/assets/{CmsPublisher-C3fRoBte.js → CmsPublisher-Cs_ys68V.js} +1 -1
- package/dist/assets/{CmsUserCenter-DiuXfjMc.js → CmsUserCenter-D-T6HyWF.js} +1 -1
- package/dist/assets/{EditorSplitPreview-tpZZF1o5.js → EditorSplitPreview-CnWpXZWQ.js} +1 -1
- package/dist/assets/{NodeEditor-Bd89OptF.css → NodeEditor-B1TvB2eW.css} +1 -1
- package/dist/assets/{NodeEditor-DaCIVPGT.js → NodeEditor-CZGnkwvf.js} +3 -3
- package/dist/assets/{TrashWorkspace-CTq0OFA-.js → TrashWorkspace-CERX58Ek.js} +1 -1
- package/dist/assets/{index-CHczMewv.js → index-BpOAL4tE.js} +9 -9
- package/dist/assets/{index-BbV9FaG-.css → index-C-EkPNvq.css} +1 -1
- package/dist/{dist-Ca4GRlV3.js → dist-BGv2bzzF.js} +14 -4
- package/dist/index.html +2 -2
- package/dist/index.js +14 -4
- package/dist/schema-compiler.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,A as t,D as n,F as r,G as i,J as a,K as o,L as s,T as c,Z as l,_ as u,a as d,b as f,bt as ee,d as p,h as m,n as h,st as g,t as _,v,w as y,wt as b,x,y as S,z as C}from"./_plugin-vue_export-helper-CTn6xl4w.js";import{n as te,t as ne}from"./link-Bs_SUS0O.js";import{t as re}from"./layers-D0DLWjff.js";import{t as ie}from"./save-C8e-QRkP.js";import{A as w,N as ae,P as oe,T as se,Y as ce,a as T,at as le,i as E,j as ue,l as de,m as D,nt as fe,o as O,r as k}from"./index-CHczMewv.js";var pe=h(`panel-left-close`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m16 15-3-3 3-3`,key:`14y99z`}]]);t(),g(),a(),d();var me={class:`asset-editor-wrapper canvas`},A={class:`entity-header`},j={class:`top-row`},M={class:`node-info`},N={class:`dynamic-title-group`},P={class:`inline-title-input`},F={key:0},I={key:1},L={class:`meta-row`},R={key:0,class:`slug-badge`},z={class:`actions-group`},he={class:`btn-text`},ge={class:`editor-body`},_e={key:0,class:`loading-state`},ve={key:1,class:`asset-content-scroll`},ye={class:`main-preview-section`},be={key:1,class:`doc-preview`},xe={class:`preview-footer`},Se=[`href`],Ce={class:`data-column`},we={class:`data-header`},Te={class:`data-content`},Ee={class:`form-group`},De={class:`form-group`},Oe={class:`form-group`},ke={class:`usage-and-crops-section`},Ae={class:`usage-section-container`},je={class:`gallery-header-row`},Me={key:0,class:`usage-empty standalone-empty`},Ne={key:1,class:`list-container`},Pe={class:`node-title`},Fe={class:`meta-stack`},Ie={class:`node-field`},Le={key:0,class:`crop-showcase`},Re={class:`crop-name`},ze={key:0,class:`usage-section-container`,style:{"margin-top":`40px`}},Be={class:`gallery-header-row`},Ve={class:`list-container`},He={class:`meta-stack`},Ue={class:`node-field`},We={key:0,class:`crop-showcase`},Ge={class:`crop-item`},Ke={class:`crop-name`},qe=[`onClick`],B=_(n({__name:`AssetEditor`,props:{assetId:{}},setup(t){let n=t,{activeView:a,nodeSchemas:d}=fe(),{confirmDiscard:h}=le(),{navigateToNodeById:g}=ce(),_=l(null),B=l(!0),V=l(!1),H=l({filename:``,title:``,alt:``}),U=l({filename:``,title:``,alt:``}),W=l(!1),G=l(null),K=l(null),Je=()=>{if(W.value){W.value=!1;return}G.value&&(K.value=G.value.getBoundingClientRect()),W.value=!0},Ye=u(()=>{let e=[{key:`copy-url`,label:`Copy Public URL`,icon:oe},{key:`open-tab`,label:`Open in New Tab`,icon:w}];return _.value&&_.value.connectedNodes?.length>0&&(e.push({key:`div-nodes`,label:``,divider:!0}),e.push({key:`show-nodes`,label:`Connected Nodes (${_.value.connectedNodes.length})`,icon:ne})),e.push({key:`div-1`,label:``,divider:!0},{key:`delete`,label:`Delete Asset`,icon:D}),e}),Xe=async e=>{W.value=!1,_.value&&(e===`copy-url`&&_.value.url?await navigator.clipboard.writeText(_.value.url):e===`open-tab`&&_.value.url?window.open(_.value.url,`_blank`):e===`delete`?await h(`Are you sure you want to delete "${_.value.filename||`this asset`}"?`,`Delete Asset?`,`Delete`,`Cancel`)&&await Ze():e===`show-nodes`&&Y())},Ze=async()=>{try{(await fetch(`/api/admin/assets/${n.assetId}`,{method:`DELETE`})).ok&&(window.dispatchEvent(new CustomEvent(`cms-assets-updated`)),a.value={type:`dashboard`})}catch{}},Qe=u(()=>H.value.filename!==U.value.filename||H.value.title!==U.value.title||H.value.alt!==U.value.alt),q=async()=>{B.value=!0;try{let e=await fetch(`/api/admin/assets/${n.assetId}/details`);if(e.ok){let t=await e.json();_.value=t;let n={filename:t.filename||``,title:t.title||``,alt:t.alt||``};H.value={...n},U.value={...n}}}catch{}finally{B.value=!1}},$e=async()=>{V.value=!0;try{(await fetch(`/api/admin/assets/${n.assetId}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(H.value)})).ok&&(U.value={...H.value},window.dispatchEvent(new CustomEvent(`cms-assets-updated`)))}catch{}finally{V.value=!1}},J=async e=>{let t=`Permanently delete orphaned crop "${_.value?.variants?.find(t=>String(t.id)===String(e))?.filename||`variant`}"?`;if(await h(t,`Delete Crop`,`Delete`,`Cancel`))try{(await fetch(`/api/admin/assets/purge/${e}`,{method:`DELETE`})).ok&&(_.value?.variants&&(_.value.variants=_.value.variants.filter(t=>String(t.id)!==String(e))),window.dispatchEvent(new CustomEvent(`cms-assets-updated`)),await q())}catch{}},et=async()=>{let e=$.value;if(e.length===0)return;let t=`Are you sure you want to permanently delete all ${e.length} orphaned crops?`;if(await h(t,`Purge All Orphaned Crops`,`Purge All`,`Cancel`))try{for(let t of e)await fetch(`/api/admin/assets/purge/${t.id}`,{method:`DELETE`});window.dispatchEvent(new CustomEvent(`cms-assets-updated`)),await q()}catch(e){console.error(`Failed to purge crops`,e)}},tt=e=>{a.value={type:`node`},g(String(e)),window.dispatchEvent(new CustomEvent(`cms-switch-sidebar-tab`,{detail:`vault`}))},Y=()=>{sessionStorage.setItem(`cms-vault-asset-filter`,n.assetId),window.dispatchEvent(new CustomEvent(`cms-filter-vault-by-asset`,{detail:n.assetId})),window.dispatchEvent(new CustomEvent(`cms-switch-sidebar-tab`,{detail:`vault`}))},X=u(()=>_.value&&(_.value.mimeType?.startsWith(`image/`)||/\.(jpg|jpeg|png|webp|gif|svg)$/i.test(_.value.filename))),Z=e=>{if(!e)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/t**r).toFixed(1))+` `+n[r]},nt=(e,t)=>{if(!t||t===`Original`||t===`Unknown Crop`)return t||`Original Image`;try{let n=d.value[e];if(!n)return t;let r=null,i=e=>{if(!(!e||r))for(let n of Object.values(e))n.crop&&t===`standard`&&n.crop.label&&(r=n.crop.label),n.crops&&n.crops[t]&&n.crops[t].label&&(r=n.crops[t].label)};return i(n.fields),n.tabs&&Object.values(n.tabs).forEach(e=>i(e.fields)),r||t}catch{return t}},Q=u(()=>{if(!_.value||!_.value.connectedNodes)return[];let e=new Map;for(let t of _.value.connectedNodes){let n=String(t.id),r=t.contentType||t.nodeType,i=t.fieldKey?.split(`.`)[0]||`Content Area`,a=t.fieldKey?.match(/^blocks\[(\d+)\]/);a&&(i=`Block ${parseInt(a[1],10)+1}`);let o=String(t.assetId)!==String(_.value.id),s=null;if(o){let e=_.value.variants?.find(e=>String(e.id)===String(t.assetId));if(e){let n=`Unknown Crop`,i=t.fieldKey?.match(/\.variants\.([^.]+)/);if(i)n=i[1];else{let t=e.filename?.match(/^(.+?)_ast_/);t&&(n=t[1])}s={id:e.id,url:e.url,label:nt(r,n)}}}else s={id:_.value.id,url:_.value.url,label:`Original Image`};if(!e.has(n))e.set(n,{id:t.id,title:t.title,nodeType:r,fieldKeys:new Set([i]),usedAssets:s?[s]:[]});else{let t=e.get(n);t.fieldKeys.add(i),s&&!t.usedAssets.some(e=>e.id===s.id)&&t.usedAssets.push(s)}}return Array.from(e.values()).map(e=>({...e,fieldKey:Array.from(e.fieldKeys).join(`, `)}))}),$=u(()=>{if(!_.value||!_.value.variants)return[];let e=new Set(_.value.connectedNodes?.map(e=>String(e.assetId))||[]);return _.value.variants.filter(t=>!e.has(String(t.id)))}),rt=e=>{let t=e?.match(/^(.+?)_ast_/);return t?t[1]:`Unknown Crop`};return r(()=>q()),(t,n)=>(s(),x(`div`,me,[v(`header`,A,[v(`div`,j,[v(`div`,M,[v(`div`,N,[v(`span`,P,[_.value?(s(),x(`span`,F,b(_.value.filename),1)):(s(),x(`span`,I,`Loading Asset...`))])]),v(`div`,L,[_.value?(s(),x(`span`,R,b(Z(_.value.sizeBytes))+` • `+b(_.value.mimeType),1)):f(``,!0)])]),v(`div`,z,[_.value?(s(),x(`div`,{key:0,class:`context-wrapper`,ref_key:`contextTriggerRef`,ref:G},[c(T,{variant:`secondary`,title:`More Options`,onClick:Je,disabled:V.value,class:`transparent-btn icon-only-btn`},{default:i(()=>[c(e(ue),{size:16})]),_:1},8,[`disabled`]),c(de,{show:W.value,items:Ye.value,"anchor-rect":K.value,onSelect:Xe,onClose:n[0]||=e=>W.value=!1},null,8,[`show`,`items`,`anchor-rect`])],512)):f(``,!0),c(T,{variant:`primary`,class:`save-btn`,disabled:V.value||!Qe.value,onClick:$e},{default:i(()=>[c(e(ie),{size:14,class:`save-icon`}),v(`span`,he,b(V.value?`Saving...`:`Save Metadata`),1)]),_:1},8,[`disabled`])])])]),v(`div`,ge,[B.value?(s(),x(`div`,_e,`Loading asset details...`)):_.value?(s(),x(`div`,ve,[v(`div`,ye,[v(`div`,{class:ee([`preview-container`,{"is-doc":!X.value}])},[X.value?(s(),S(O,{key:0,url:_.value.url,alt:_.value.alt||_.value.filename,width:1200,quality:85,class:`main-preview-wrapper`},null,8,[`url`,`alt`])):(s(),x(`div`,be,[c(e(se),{size:64}),n[4]||=v(`span`,null,`Preview not available for this file type`,-1)]))],2),v(`div`,xe,[v(`span`,null,`Original Upload: `+b(new Date(_.value.createdAt).toLocaleString()),1),v(`a`,{href:_.value.url,target:`_blank`,class:`ext-link`},[n[5]||=y(`Open original file `,-1),c(e(w),{size:12})],8,Se)])]),v(`div`,Ce,[v(`div`,we,[v(`h3`,null,[c(e(te),{size:14,class:`inline-icon`}),n[6]||=y(` Metadata `,-1)])]),v(`div`,Te,[v(`div`,Ee,[n[7]||=v(`label`,null,`Filename`,-1),o(v(`input`,{"onUpdate:modelValue":n[1]||=e=>H.value.filename=e,type:`text`,class:`cms-input`},null,512),[[p,H.value.filename]]),n[8]||=v(`span`,{class:`help-text`},`Changing this does not break the permanent CDN link.`,-1)]),v(`div`,De,[n[9]||=v(`label`,null,`Title (Internal/SEO)`,-1),o(v(`input`,{"onUpdate:modelValue":n[2]||=e=>H.value.title=e,type:`text`,class:`cms-input`},null,512),[[p,H.value.title]])]),v(`div`,Oe,[n[10]||=v(`label`,null,`Alt Text (Accessibility)`,-1),o(v(`textarea`,{"onUpdate:modelValue":n[3]||=e=>H.value.alt=e,class:`cms-input cms-textarea`},null,512),[[p,H.value.alt]])])])]),v(`div`,ke,[v(`div`,Ae,[v(`div`,je,[v(`h3`,null,[c(e(re),{size:16,class:`inline-icon`}),n[11]||=y(` Node Usage `,-1)]),Q.value.length>0?(s(),x(`button`,{key:0,class:`action-btn outline`,onClick:Y,title:`Show these nodes in the left Vault pane`},[c(e(pe),{size:13}),n[12]||=y(` Vault Filter `,-1)])):f(``,!0)]),Q.value.length===0?(s(),x(`div`,Me,[...n[13]||=[v(`span`,{class:`status-dot warning`},null,-1),v(`span`,null,`Asset is not currently used on any nodes.`,-1)]])):(s(),x(`div`,Ne,[(s(!0),x(m,null,C(Q.value,e=>(s(),S(E,{key:e.id,clickable:``,onClick:t=>tt(e.id)},{title:i(()=>[n[14]||=v(`span`,{class:`status-dot success`},null,-1),v(`span`,Pe,b(e.title||`Untitled`),1),c(k,{variant:`type`},{default:i(()=>[y(b(e.nodeType||`page`),1)]),_:2},1024)]),meta:i(()=>[v(`div`,Fe,[v(`span`,Ie,`Used in field: `+b(e.fieldKey),1),X.value?(s(),x(`div`,Le,[(s(!0),x(m,null,C(e.usedAssets,e=>(s(),x(`div`,{key:e.id,class:`crop-item`},[c(O,{url:e.url,alt:e.label,width:200,quality:75,class:`crop-img-fixed-height`},null,8,[`url`,`alt`]),v(`span`,Re,b(e.label),1)]))),128))])):f(``,!0)])]),_:2},1032,[`onClick`]))),128))]))]),$.value.length>0?(s(),x(`div`,ze,[v(`div`,Be,[v(`h3`,null,[c(e(ae),{size:16,class:`inline-icon`}),y(` Orphaned Crops (`+b($.value.length)+`) `,1)]),v(`button`,{class:`action-btn outline text-danger`,onClick:et},[c(e(D),{size:13}),n[15]||=y(` Purge All `,-1)])]),n[18]||=v(`p`,{class:`gallery-desc`},`These crops were generated previously but are no longer attached to any nodes. You can safely delete them to save storage space.`,-1),v(`div`,Ve,[(s(!0),x(m,null,C($.value,t=>(s(),S(E,{key:t.id},{title:i(()=>[n[16]||=v(`span`,{class:`node-title`},`Orphaned Crop`,-1),c(k,{variant:`type`},{default:i(()=>[y(b(Z(t.sizeBytes)),1)]),_:2},1024)]),meta:i(()=>[v(`div`,He,[v(`span`,Ue,`Generated: `+b(new Date(t.createdAt).toLocaleDateString()),1),X.value?(s(),x(`div`,We,[v(`div`,Ge,[c(O,{url:t.url,alt:t.filename,width:200,quality:75,class:`crop-img-fixed-height`},null,8,[`url`,`alt`]),v(`span`,Ke,b(rt(t.filename)),1)])])):f(``,!0)])]),actions:i(()=>[v(`button`,{class:`action-btn outline text-danger`,style:{border:`none`},onClick:e=>J(t.id)},[c(e(D),{size:13}),n[17]||=y(` Purge `,-1)],8,qe)]),_:2},1024))),128))])])):f(``,!0)])])):f(``,!0)])]))}}),[[`__scopeId`,`data-v-cd1f3a28`]]);export{B as default};
|
|
1
|
+
import{$ as e,A as t,D as n,F as r,G as i,J as a,K as o,L as s,T as c,Z as l,_ as u,a as d,b as f,bt as ee,d as p,h as m,n as h,st as g,t as _,v,w as y,wt as b,x,y as S,z as C}from"./_plugin-vue_export-helper-CTn6xl4w.js";import{n as te,t as ne}from"./link-Bs_SUS0O.js";import{t as re}from"./layers-D0DLWjff.js";import{t as ie}from"./save-C8e-QRkP.js";import{A as w,N as ae,P as oe,T as se,Y as ce,a as T,at as le,i as E,j as ue,l as de,m as D,nt as fe,o as O,r as k}from"./index-BpOAL4tE.js";var pe=h(`panel-left-close`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m16 15-3-3 3-3`,key:`14y99z`}]]);t(),g(),a(),d();var me={class:`asset-editor-wrapper canvas`},A={class:`entity-header`},j={class:`top-row`},M={class:`node-info`},N={class:`dynamic-title-group`},P={class:`inline-title-input`},F={key:0},I={key:1},L={class:`meta-row`},R={key:0,class:`slug-badge`},z={class:`actions-group`},he={class:`btn-text`},ge={class:`editor-body`},_e={key:0,class:`loading-state`},ve={key:1,class:`asset-content-scroll`},ye={class:`main-preview-section`},be={key:1,class:`doc-preview`},xe={class:`preview-footer`},Se=[`href`],Ce={class:`data-column`},we={class:`data-header`},Te={class:`data-content`},Ee={class:`form-group`},De={class:`form-group`},Oe={class:`form-group`},ke={class:`usage-and-crops-section`},Ae={class:`usage-section-container`},je={class:`gallery-header-row`},Me={key:0,class:`usage-empty standalone-empty`},Ne={key:1,class:`list-container`},Pe={class:`node-title`},Fe={class:`meta-stack`},Ie={class:`node-field`},Le={key:0,class:`crop-showcase`},Re={class:`crop-name`},ze={key:0,class:`usage-section-container`,style:{"margin-top":`40px`}},Be={class:`gallery-header-row`},Ve={class:`list-container`},He={class:`meta-stack`},Ue={class:`node-field`},We={key:0,class:`crop-showcase`},Ge={class:`crop-item`},Ke={class:`crop-name`},qe=[`onClick`],B=_(n({__name:`AssetEditor`,props:{assetId:{}},setup(t){let n=t,{activeView:a,nodeSchemas:d}=fe(),{confirmDiscard:h}=le(),{navigateToNodeById:g}=ce(),_=l(null),B=l(!0),V=l(!1),H=l({filename:``,title:``,alt:``}),U=l({filename:``,title:``,alt:``}),W=l(!1),G=l(null),K=l(null),Je=()=>{if(W.value){W.value=!1;return}G.value&&(K.value=G.value.getBoundingClientRect()),W.value=!0},Ye=u(()=>{let e=[{key:`copy-url`,label:`Copy Public URL`,icon:oe},{key:`open-tab`,label:`Open in New Tab`,icon:w}];return _.value&&_.value.connectedNodes?.length>0&&(e.push({key:`div-nodes`,label:``,divider:!0}),e.push({key:`show-nodes`,label:`Connected Nodes (${_.value.connectedNodes.length})`,icon:ne})),e.push({key:`div-1`,label:``,divider:!0},{key:`delete`,label:`Delete Asset`,icon:D}),e}),Xe=async e=>{W.value=!1,_.value&&(e===`copy-url`&&_.value.url?await navigator.clipboard.writeText(_.value.url):e===`open-tab`&&_.value.url?window.open(_.value.url,`_blank`):e===`delete`?await h(`Are you sure you want to delete "${_.value.filename||`this asset`}"?`,`Delete Asset?`,`Delete`,`Cancel`)&&await Ze():e===`show-nodes`&&Y())},Ze=async()=>{try{(await fetch(`/api/admin/assets/${n.assetId}`,{method:`DELETE`})).ok&&(window.dispatchEvent(new CustomEvent(`cms-assets-updated`)),a.value={type:`dashboard`})}catch{}},Qe=u(()=>H.value.filename!==U.value.filename||H.value.title!==U.value.title||H.value.alt!==U.value.alt),q=async()=>{B.value=!0;try{let e=await fetch(`/api/admin/assets/${n.assetId}/details`);if(e.ok){let t=await e.json();_.value=t;let n={filename:t.filename||``,title:t.title||``,alt:t.alt||``};H.value={...n},U.value={...n}}}catch{}finally{B.value=!1}},$e=async()=>{V.value=!0;try{(await fetch(`/api/admin/assets/${n.assetId}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(H.value)})).ok&&(U.value={...H.value},window.dispatchEvent(new CustomEvent(`cms-assets-updated`)))}catch{}finally{V.value=!1}},J=async e=>{let t=`Permanently delete orphaned crop "${_.value?.variants?.find(t=>String(t.id)===String(e))?.filename||`variant`}"?`;if(await h(t,`Delete Crop`,`Delete`,`Cancel`))try{(await fetch(`/api/admin/assets/purge/${e}`,{method:`DELETE`})).ok&&(_.value?.variants&&(_.value.variants=_.value.variants.filter(t=>String(t.id)!==String(e))),window.dispatchEvent(new CustomEvent(`cms-assets-updated`)),await q())}catch{}},et=async()=>{let e=$.value;if(e.length===0)return;let t=`Are you sure you want to permanently delete all ${e.length} orphaned crops?`;if(await h(t,`Purge All Orphaned Crops`,`Purge All`,`Cancel`))try{for(let t of e)await fetch(`/api/admin/assets/purge/${t.id}`,{method:`DELETE`});window.dispatchEvent(new CustomEvent(`cms-assets-updated`)),await q()}catch(e){console.error(`Failed to purge crops`,e)}},tt=e=>{a.value={type:`node`},g(String(e)),window.dispatchEvent(new CustomEvent(`cms-switch-sidebar-tab`,{detail:`vault`}))},Y=()=>{sessionStorage.setItem(`cms-vault-asset-filter`,n.assetId),window.dispatchEvent(new CustomEvent(`cms-filter-vault-by-asset`,{detail:n.assetId})),window.dispatchEvent(new CustomEvent(`cms-switch-sidebar-tab`,{detail:`vault`}))},X=u(()=>_.value&&(_.value.mimeType?.startsWith(`image/`)||/\.(jpg|jpeg|png|webp|gif|svg)$/i.test(_.value.filename))),Z=e=>{if(!e)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/t**r).toFixed(1))+` `+n[r]},nt=(e,t)=>{if(!t||t===`Original`||t===`Unknown Crop`)return t||`Original Image`;try{let n=d.value[e];if(!n)return t;let r=null,i=e=>{if(!(!e||r))for(let n of Object.values(e))n.crop&&t===`standard`&&n.crop.label&&(r=n.crop.label),n.crops&&n.crops[t]&&n.crops[t].label&&(r=n.crops[t].label)};return i(n.fields),n.tabs&&Object.values(n.tabs).forEach(e=>i(e.fields)),r||t}catch{return t}},Q=u(()=>{if(!_.value||!_.value.connectedNodes)return[];let e=new Map;for(let t of _.value.connectedNodes){let n=String(t.id),r=t.contentType||t.nodeType,i=t.fieldKey?.split(`.`)[0]||`Content Area`,a=t.fieldKey?.match(/^blocks\[(\d+)\]/);a&&(i=`Block ${parseInt(a[1],10)+1}`);let o=String(t.assetId)!==String(_.value.id),s=null;if(o){let e=_.value.variants?.find(e=>String(e.id)===String(t.assetId));if(e){let n=`Unknown Crop`,i=t.fieldKey?.match(/\.variants\.([^.]+)/);if(i)n=i[1];else{let t=e.filename?.match(/^(.+?)_ast_/);t&&(n=t[1])}s={id:e.id,url:e.url,label:nt(r,n)}}}else s={id:_.value.id,url:_.value.url,label:`Original Image`};if(!e.has(n))e.set(n,{id:t.id,title:t.title,nodeType:r,fieldKeys:new Set([i]),usedAssets:s?[s]:[]});else{let t=e.get(n);t.fieldKeys.add(i),s&&!t.usedAssets.some(e=>e.id===s.id)&&t.usedAssets.push(s)}}return Array.from(e.values()).map(e=>({...e,fieldKey:Array.from(e.fieldKeys).join(`, `)}))}),$=u(()=>{if(!_.value||!_.value.variants)return[];let e=new Set(_.value.connectedNodes?.map(e=>String(e.assetId))||[]);return _.value.variants.filter(t=>!e.has(String(t.id)))}),rt=e=>{let t=e?.match(/^(.+?)_ast_/);return t?t[1]:`Unknown Crop`};return r(()=>q()),(t,n)=>(s(),x(`div`,me,[v(`header`,A,[v(`div`,j,[v(`div`,M,[v(`div`,N,[v(`span`,P,[_.value?(s(),x(`span`,F,b(_.value.filename),1)):(s(),x(`span`,I,`Loading Asset...`))])]),v(`div`,L,[_.value?(s(),x(`span`,R,b(Z(_.value.sizeBytes))+` • `+b(_.value.mimeType),1)):f(``,!0)])]),v(`div`,z,[_.value?(s(),x(`div`,{key:0,class:`context-wrapper`,ref_key:`contextTriggerRef`,ref:G},[c(T,{variant:`secondary`,title:`More Options`,onClick:Je,disabled:V.value,class:`transparent-btn icon-only-btn`},{default:i(()=>[c(e(ue),{size:16})]),_:1},8,[`disabled`]),c(de,{show:W.value,items:Ye.value,"anchor-rect":K.value,onSelect:Xe,onClose:n[0]||=e=>W.value=!1},null,8,[`show`,`items`,`anchor-rect`])],512)):f(``,!0),c(T,{variant:`primary`,class:`save-btn`,disabled:V.value||!Qe.value,onClick:$e},{default:i(()=>[c(e(ie),{size:14,class:`save-icon`}),v(`span`,he,b(V.value?`Saving...`:`Save Metadata`),1)]),_:1},8,[`disabled`])])])]),v(`div`,ge,[B.value?(s(),x(`div`,_e,`Loading asset details...`)):_.value?(s(),x(`div`,ve,[v(`div`,ye,[v(`div`,{class:ee([`preview-container`,{"is-doc":!X.value}])},[X.value?(s(),S(O,{key:0,url:_.value.url,alt:_.value.alt||_.value.filename,width:1200,quality:85,class:`main-preview-wrapper`},null,8,[`url`,`alt`])):(s(),x(`div`,be,[c(e(se),{size:64}),n[4]||=v(`span`,null,`Preview not available for this file type`,-1)]))],2),v(`div`,xe,[v(`span`,null,`Original Upload: `+b(new Date(_.value.createdAt).toLocaleString()),1),v(`a`,{href:_.value.url,target:`_blank`,class:`ext-link`},[n[5]||=y(`Open original file `,-1),c(e(w),{size:12})],8,Se)])]),v(`div`,Ce,[v(`div`,we,[v(`h3`,null,[c(e(te),{size:14,class:`inline-icon`}),n[6]||=y(` Metadata `,-1)])]),v(`div`,Te,[v(`div`,Ee,[n[7]||=v(`label`,null,`Filename`,-1),o(v(`input`,{"onUpdate:modelValue":n[1]||=e=>H.value.filename=e,type:`text`,class:`cms-input`},null,512),[[p,H.value.filename]]),n[8]||=v(`span`,{class:`help-text`},`Changing this does not break the permanent CDN link.`,-1)]),v(`div`,De,[n[9]||=v(`label`,null,`Title (Internal/SEO)`,-1),o(v(`input`,{"onUpdate:modelValue":n[2]||=e=>H.value.title=e,type:`text`,class:`cms-input`},null,512),[[p,H.value.title]])]),v(`div`,Oe,[n[10]||=v(`label`,null,`Alt Text (Accessibility)`,-1),o(v(`textarea`,{"onUpdate:modelValue":n[3]||=e=>H.value.alt=e,class:`cms-input cms-textarea`},null,512),[[p,H.value.alt]])])])]),v(`div`,ke,[v(`div`,Ae,[v(`div`,je,[v(`h3`,null,[c(e(re),{size:16,class:`inline-icon`}),n[11]||=y(` Node Usage `,-1)]),Q.value.length>0?(s(),x(`button`,{key:0,class:`action-btn outline`,onClick:Y,title:`Show these nodes in the left Vault pane`},[c(e(pe),{size:13}),n[12]||=y(` Vault Filter `,-1)])):f(``,!0)]),Q.value.length===0?(s(),x(`div`,Me,[...n[13]||=[v(`span`,{class:`status-dot warning`},null,-1),v(`span`,null,`Asset is not currently used on any nodes.`,-1)]])):(s(),x(`div`,Ne,[(s(!0),x(m,null,C(Q.value,e=>(s(),S(E,{key:e.id,clickable:``,onClick:t=>tt(e.id)},{title:i(()=>[n[14]||=v(`span`,{class:`status-dot success`},null,-1),v(`span`,Pe,b(e.title||`Untitled`),1),c(k,{variant:`type`},{default:i(()=>[y(b(e.nodeType||`page`),1)]),_:2},1024)]),meta:i(()=>[v(`div`,Fe,[v(`span`,Ie,`Used in field: `+b(e.fieldKey),1),X.value?(s(),x(`div`,Le,[(s(!0),x(m,null,C(e.usedAssets,e=>(s(),x(`div`,{key:e.id,class:`crop-item`},[c(O,{url:e.url,alt:e.label,width:200,quality:75,class:`crop-img-fixed-height`},null,8,[`url`,`alt`]),v(`span`,Re,b(e.label),1)]))),128))])):f(``,!0)])]),_:2},1032,[`onClick`]))),128))]))]),$.value.length>0?(s(),x(`div`,ze,[v(`div`,Be,[v(`h3`,null,[c(e(ae),{size:16,class:`inline-icon`}),y(` Orphaned Crops (`+b($.value.length)+`) `,1)]),v(`button`,{class:`action-btn outline text-danger`,onClick:et},[c(e(D),{size:13}),n[15]||=y(` Purge All `,-1)])]),n[18]||=v(`p`,{class:`gallery-desc`},`These crops were generated previously but are no longer attached to any nodes. You can safely delete them to save storage space.`,-1),v(`div`,Ve,[(s(!0),x(m,null,C($.value,t=>(s(),S(E,{key:t.id},{title:i(()=>[n[16]||=v(`span`,{class:`node-title`},`Orphaned Crop`,-1),c(k,{variant:`type`},{default:i(()=>[y(b(Z(t.sizeBytes)),1)]),_:2},1024)]),meta:i(()=>[v(`div`,He,[v(`span`,Ue,`Generated: `+b(new Date(t.createdAt).toLocaleDateString()),1),X.value?(s(),x(`div`,We,[v(`div`,Ge,[c(O,{url:t.url,alt:t.filename,width:200,quality:75,class:`crop-img-fixed-height`},null,8,[`url`,`alt`]),v(`span`,Ke,b(rt(t.filename)),1)])])):f(``,!0)])]),actions:i(()=>[v(`button`,{class:`action-btn outline text-danger`,style:{border:`none`},onClick:e=>J(t.id)},[c(e(D),{size:13}),n[17]||=y(` Purge `,-1)],8,qe)]),_:2},1024))),128))])])):f(``,!0)])])):f(``,!0)])]))}}),[[`__scopeId`,`data-v-cd1f3a28`]]);export{B as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,A as t,D as n,J as r,L as i,T as a,t as o,v as s,w as c,x as l}from"./_plugin-vue_export-helper-CTn6xl4w.js";import{t as u}from"./layers-D0DLWjff.js";import{C as d,G as f,M as p,U as m,X as h,Y as g,w as _,y as v}from"./index-
|
|
1
|
+
import{$ as e,A as t,D as n,J as r,L as i,T as a,t as o,v as s,w as c,x as l}from"./_plugin-vue_export-helper-CTn6xl4w.js";import{t as u}from"./layers-D0DLWjff.js";import{C as d,G as f,M as p,U as m,X as h,Y as g,w as _,y as v}from"./index-BpOAL4tE.js";t(),r();var y={class:`help-canvas`},b={class:`help-container`},x={class:`steps-grid`},S={class:`step-card`},C={class:`card-header`},w={class:`card-icon channel-icon`},T={class:`step-card`},E={class:`card-header`},D={class:`card-icon tree-icon`},O={class:`step-card`},k={class:`card-header`},A={class:`card-icon vault-icon`},j={class:`architecture-guide`},M={class:`guide-header`},N={class:`guide-columns`},P={class:`guide-col-arrow`},F={class:`guide-col-arrow`},I={class:`guide-col-arrow`},L=o(n({__name:`CmsHelp`,setup(t){let{handleAddNewChannel:n}=f(),{handleAddNewTree:r}=h(),{handleAddNewNode:o}=g();return(t,f)=>(i(),l(`main`,y,[s(`div`,b,[f[17]||=s(`header`,{class:`help-header`},[s(`h1`,null,`KAMA`),s(`p`,null,`Build modular content in the Vault, organize it into Navigation Trees, and expose it to your channels via API.`)],-1),s(`div`,x,[s(`div`,S,[s(`div`,C,[s(`div`,w,[a(e(d),{size:20})]),f[3]||=s(`div`,{class:`step-badge`},`Step 1`,-1)]),f[5]||=s(`div`,{class:`card-content`},[s(`h3`,null,`Channels`),s(`p`,null,`Delivery targets that consume your headless API.`)],-1),s(`button`,{class:`card-action-btn`,onClick:f[0]||=(...t)=>e(n)&&e(n)(...t)},[a(e(v),{size:16}),f[4]||=c(` Create Channel `,-1)])]),s(`div`,T,[s(`div`,E,[s(`div`,D,[a(e(_),{size:20})]),f[6]||=s(`div`,{class:`step-badge`},`Step 2`,-1)]),f[8]||=s(`div`,{class:`card-content`},[s(`h3`,null,`Trees`),s(`p`,null,`Decoupled structural hierarchies and navigation menus.`)],-1),s(`button`,{class:`card-action-btn`,onClick:f[1]||=(...t)=>e(r)&&e(r)(...t)},[a(e(v),{size:16}),f[7]||=c(` Create Tree `,-1)])]),s(`div`,O,[s(`div`,k,[s(`div`,A,[a(e(p),{size:20})]),f[9]||=s(`div`,{class:`step-badge`},`Step 3`,-1)]),f[11]||=s(`div`,{class:`card-content`},[s(`h3`,null,`Vault`),s(`p`,null,`Flat, headless content store for reusable content items.`)],-1),s(`button`,{class:`card-action-btn`,onClick:f[2]||=t=>e(o)()},[a(e(v),{size:16}),f[10]||=c(` Create Content `,-1)])])]),s(`section`,j,[s(`div`,M,[a(e(u),{size:18,class:`guide-icon`}),f[12]||=s(`h4`,null,`Architecture Flow`,-1)]),s(`div`,N,[f[13]||=s(`div`,{class:`guide-col`},[s(`strong`,null,`1. Content Vault`),s(`p`,null,`Raw content entities existing independently of routing.`)],-1),s(`div`,P,[a(e(m),{size:16})]),f[14]||=s(`div`,{class:`guide-col`},[s(`strong`,null,`2. Navigation Trees`),s(`p`,null,`Decoupled structures mapping content items to URL hierarchies.`)],-1),s(`div`,F,[a(e(m),{size:16})]),f[15]||=s(`div`,{class:`guide-col`},[s(`strong`,null,`3. Channels`),s(`p`,null,`Delivery targets binding trees and languages to specific contexts.`)],-1),s(`div`,I,[a(e(m),{size:16})]),f[16]||=s(`div`,{class:`guide-col`},[s(`strong`,null,`4. Headless API`),s(`p`,null,`Endpoints serving structured JSON to your frontends.`)],-1)])])])]))}}),[[`__scopeId`,`data-v-c739c397`]]);export{L as default};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{$ as e,A as t,D as n,F as r,G as i,J as a,L as o,T as s,Z as c,_ as l,a as u,b as d,h as f,m as p,st as m,t as h,v as g,w as _,wt as v,x as y,y as b,z as x}from"./_plugin-vue_export-helper-CTn6xl4w.js";import{t as ee}from"./history-XvWNE5zO.js";import{C as te,I as ne,L as S,Y as re,a as C,g as w,i as T,nt as ie,r as E,rt as D,tt as O,w as ae,x as k}from"./index-
|
|
1
|
+
import{$ as e,A as t,D as n,F as r,G as i,J as a,L as o,T as s,Z as c,_ as l,a as u,b as d,h as f,m as p,st as m,t as h,v as g,w as _,wt as v,x as y,y as b,z as x}from"./_plugin-vue_export-helper-CTn6xl4w.js";import{t as ee}from"./history-XvWNE5zO.js";import{C as te,I as ne,L as S,Y as re,a as C,g as w,i as T,nt as ie,r as E,rt as D,tt as O,w as ae,x as k}from"./index-BpOAL4tE.js";t(),a(),m(),u();var oe={class:`publisher-canvas full-width`},se={class:`publisher-container full-width`},ce={class:`publisher-header`},le={class:`header-actions`},ue={key:0,class:`empty-publisher-state`},de={key:1,class:`empty-publisher-state`},fe={key:2,class:`channel-groups-list`},pe={class:`group-header`},A={class:`group-title`},j=[`checked`,`indeterminate`,`onChange`],M={class:`count-badge`},N={class:`nodes-table`},P=[`checked`,`onChange`],F={class:`node-title`},I={key:3,class:`history-section`},L={class:`history-header`},R={class:`history-card`},z={class:`node-title`},B={class:`history-time`},V=h(n({__name:`CmsPublisher`,setup(t){let n=ie(),{loadNodeContent:a}=re(),u=c(!1),m=c(new Set),h=c(null),V=c(!1),H=c([]),U=c([]),W=c(new Set),me=async()=>{if(n.hasLoadedStats.value){H.value=n.vaultStats.value?.pendingNodes||[],U.value=n.vaultStats.value?.recentActivity||[];return}u.value=!0;try{let e=await fetch(`/api/cms/stats`);if(e.ok){let t=await e.json();n.vaultStats.value=t,n.hasLoadedStats.value=!0,H.value=t.pendingNodes||[],U.value=t.recentActivity||[]}}catch{}finally{u.value=!1}},G=l(()=>{let e=new Map;if(H.value.forEach(t=>{let r=String(n.activeNode.value?.id)===String(t.id),i=O(t),a=r&&n.hasUnpublishedChanges.value||i.hasUnpublishedChanges;e.set(String(t.id),{...t,evalState:{...i,hasUnpublishedChanges:a}})}),n.activeNode.value?.id){let t=String(n.activeNode.value.id),r=O(n.activeNode.value),i=n.hasUnpublishedChanges.value||r.hasUnpublishedChanges;(r.isDraft||r.isUnpublishedDraft||i)&&(e.has(t)||e.set(t,{...n.activeNode.value,evalState:{...r,hasUnpublishedChanges:i}}))}return Array.from(e.values())}),he=l(()=>{let e=new Map,t=`Unassigned / Vault Only`;return e.set(t,{channelName:t,nodes:[]}),G.value.forEach(n=>{let r=n.channelNames||[];r.length===0?e.get(t).nodes.push(n):r.forEach(t=>{e.has(t)||e.set(t,{channelName:t,nodes:[]}),e.get(t).nodes.push(n)})}),Array.from(e.values()).filter(e=>e.nodes.length>0)}),K=e=>W.value.has(e),ge=e=>{let t=new Set(W.value);t.has(e)?t.delete(e):t.add(e),W.value=t},q=e=>e.filter(e=>W.value.has(e.id)).length,J=e=>e.length>0&&e.every(e=>W.value.has(e.id)),_e=e=>q(e)>0&&q(e)<e.length,Y=e=>{let t=new Set(W.value),n=J(e);e.forEach(e=>{n?t.delete(e.id):t.add(e.id)}),W.value=t},X=l(()=>W.value.size),Z=e=>{a({id:e.id,title:e.title,slug:e.slug,nodeType:e.contentType||e.nodeType,channelId:e.channelId||``,language:e.language||`en`,children:[]})},Q=e=>{U.value=[{id:e.id,title:e.title||`Untitled Document`,slug:e.slug,contentType:e.contentType||e.nodeType||`page`,updatedAt:new Date().toISOString()},...U.value.filter(t=>String(t.id)!==String(e.id))].slice(0,10)},ve=async e=>{m.value.add(e);try{let t=G.value.find(t=>String(t.id)===String(e));if((await D.publishNode(e)).ok){n.updateNodeInState(e,{status:`published`,hasUnpublishedChanges:!1}),H.value=H.value.filter(t=>String(t.id)!==String(e)),String(n.activeNode.value?.id)===String(e)&&(n.activeNode.value.status=`published`,n.activeNode.value.hasUnpublishedChanges=!1);let r=new Set(W.value);r.delete(e),W.value=r,t&&Q(t),n.invalidateStats(),typeof window<`u`&&window.dispatchEvent(new CustomEvent(`cms-node-updated`))}}finally{m.value.delete(e)}},$=async e=>{if(e.length===0)return;let t=e.map(e=>e.id);t.forEach(e=>m.value.add(e));try{let e=await D.publishNodesBatch(t);if(e.ok){let t=(await e.json()).publishedIds||[];for(let e of t)n.updateNodeInState(e,{status:`published`,hasUnpublishedChanges:!1}),String(n.activeNode.value?.id)===String(e)&&(n.activeNode.value.status=`published`,n.activeNode.value.hasUnpublishedChanges=!1);G.value.filter(e=>t.includes(e.id)).forEach(e=>Q(e)),H.value=H.value.filter(e=>!t.includes(e.id));let r=new Set(W.value);t.forEach(e=>r.delete(e)),W.value=r,n.invalidateStats(),typeof window<`u`&&window.dispatchEvent(new CustomEvent(`cms-node-updated`))}}finally{t.forEach(e=>m.value.delete(e))}},ye=async(e,t)=>{h.value=e;let n=q(t)>0?t.filter(e=>W.value.has(e.id)):t;await $(n),h.value=null},be=async()=>{V.value=!0;let e=X.value>0?G.value.filter(e=>W.value.has(e.id)):G.value;await $(e),V.value=!1},xe=e=>{if(!e)return``;try{return new Date(e).toLocaleString([],{dateStyle:`medium`,timeStyle:`short`})}catch{return e}};return r(()=>me()),(t,n)=>(o(),y(`main`,oe,[g(`div`,se,[g(`header`,ce,[n[2]||=g(`div`,{class:`header-title-group`},[g(`h1`,null,`Publishing Center`),g(`p`,null,`Review and release pending drafts or bulk-publish updates across your distribution channels.`)],-1),g(`div`,le,[G.value.length>0?(o(),b(C,{key:0,variant:`primary`,class:`publish-all-btn`,disabled:V.value||m.value.size>0,onClick:be},{default:i(()=>[V.value?(o(),b(e(k),{key:0,size:16,class:`spin`})):(o(),b(e(w),{key:1,size:16})),g(`span`,null,v(X.value>0?`Publish Selected (${X.value})`:`Publish All
|
|
2
2
|
(${G.value.length})`),1)]),_:1},8,[`disabled`])):d(``,!0)])]),u.value&&G.value.length===0?(o(),y(`div`,ue,[s(e(k),{size:28,class:`spin empty-icon`}),n[3]||=g(`p`,null,`Gathering pending content updates...`,-1)])):G.value.length===0?(o(),y(`div`,de,[s(e(S),{size:36,class:`success-icon`}),n[4]||=g(`h3`,null,`All Content Published!`,-1),n[5]||=g(`p`,null,`No draft changes or pending revisions found. Your delivery channels are fully up to date.`,-1)])):(o(),y(`div`,fe,[(o(!0),y(f,null,x(he.value,t=>(o(),y(`section`,{key:t.channelName,class:`channel-group-card`},[g(`div`,pe,[g(`div`,A,[g(`label`,{class:`checkbox-container`,onClick:n[0]||=p(()=>{},[`stop`])},[g(`input`,{type:`checkbox`,checked:J(t.nodes),indeterminate:_e(t.nodes),onChange:e=>Y(t.nodes)},null,40,j),n[6]||=g(`span`,{class:`checkmark`},null,-1)]),s(e(te),{size:18,class:`channel-icon`}),g(`h2`,null,v(t.channelName),1),g(`span`,M,v(t.nodes.length)+` Pending`,1)]),s(C,{variant:`secondary`,size:`sm`,disabled:h.value===t.channelName||V.value,onClick:e=>ye(t.channelName,t.nodes)},{default:i(()=>[h.value===t.channelName?(o(),b(e(k),{key:0,size:14,class:`spin`})):(o(),b(e(w),{key:1,size:14})),g(`span`,null,v(q(t.nodes)>0?`Publish Selected
|
|
3
3
|
(${q(t.nodes)})`:`Publish Channel Items`),1)]),_:2},1032,[`disabled`,`onClick`])]),g(`div`,N,[(o(!0),y(f,null,x(t.nodes,t=>(o(),b(T,{key:t.id,"is-selected":K(t.id),clickable:``,onClick:e=>Z(t)},{prefix:i(()=>[g(`label`,{class:`checkbox-container`,onClick:n[1]||=p(()=>{},[`stop`])},[g(`input`,{type:`checkbox`,checked:K(t.id),onChange:e=>ge(t.id)},null,40,P),n[7]||=g(`span`,{class:`checkmark`},null,-1)])]),title:i(()=>[g(`span`,F,v(t.title||`Untitled Draft`),1),s(E,{variant:`type`},{default:i(()=>[_(v(t.contentType||t.nodeType||`page`),1)]),_:2},1024)]),meta:i(()=>[s(E,{variant:`slug`},{default:i(()=>[_(`/`+v(t.slug),1)]),_:2},1024),(o(!0),y(f,null,x(t.treeNames,t=>(o(),b(E,{variant:`tree`,key:t},{default:i(()=>[s(e(ae),{size:11}),_(` `+v(t),1)]),_:2},1024))),128))]),actions:i(()=>[s(C,{variant:`secondary`,size:`sm`,class:`icon-only-btn`,title:`Publish Item`,disabled:m.value.has(t.id)||V.value,onClick:p(e=>ve(t.id),[`stop`])},{default:i(()=>[m.value.has(t.id)?(o(),b(e(k),{key:0,size:14,class:`spin`})):(o(),b(e(w),{key:1,size:14}))]),_:2},1032,[`disabled`,`onClick`])]),_:2},1032,[`is-selected`,`onClick`]))),128))])]))),128))])),U.value.length>0?(o(),y(`section`,I,[g(`div`,L,[s(e(ee),{size:18,class:`history-icon`}),n[8]||=g(`h2`,null,`Recently Published`,-1)]),g(`div`,R,[(o(!0),y(f,null,x(U.value,t=>(o(),b(T,{key:t.id,clickable:``,onClick:e=>Z(t)},{prefix:i(()=>[s(e(S),{size:16,class:`published-check`})]),title:i(()=>[g(`span`,z,v(t.title||`Untitled Document`),1),s(E,{variant:`type`},{default:i(()=>[_(v(t.contentType||t.nodeType||`page`),1)]),_:2},1024)]),meta:i(()=>[s(E,{variant:`slug`},{default:i(()=>[_(`/`+v(t.slug),1)]),_:2},1024)]),actions:i(()=>[g(`div`,B,[s(e(ne),{size:12}),g(`span`,null,v(xe(t.updatedAt)),1)])]),_:2},1032,[`onClick`]))),128))])])):d(``,!0)])]))}}),[[`__scopeId`,`data-v-e0e64ba6`]]);export{V as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,A as t,D as n,G as r,J as i,K as a,L as o,T as s,Z as c,a as l,c as u,d,n as f,st as p,t as m,u as h,v as g,w as _,wt as v,x as y}from"./_plugin-vue_export-helper-CTn6xl4w.js";import{t as ee}from"./save-C8e-QRkP.js";import{t as b}from"./smartphone-Wy6xQi_i.js";import{C as x,a as S,f as C,i as w}from"./index-
|
|
1
|
+
import{$ as e,A as t,D as n,G as r,J as i,K as a,L as o,T as s,Z as c,a as l,c as u,d,n as f,st as p,t as m,u as h,v as g,w as _,wt as v,x as y}from"./_plugin-vue_export-helper-CTn6xl4w.js";import{t as ee}from"./save-C8e-QRkP.js";import{t as b}from"./smartphone-Wy6xQi_i.js";import{C as x,a as S,f as C,i as w}from"./index-BpOAL4tE.js";var T=f(`bell`,[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]),E=f(`key`,[[`path`,{d:`m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4`,key:`g0fldk`}],[`path`,{d:`m21 2-9.6 9.6`,key:`1j0ho8`}],[`circle`,{cx:`7.5`,cy:`15.5`,r:`5.5`,key:`yqb3hr`}]]),D=f(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),O=f(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),k=f(`shield`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]]);t(),i(),l(),p();var A={class:`user-center-canvas`},j={class:`user-center-container`},M={class:`settings-grid`},N={class:`settings-column`},P={class:`settings-card`},F={class:`card-header`},I={class:`header-title`},L={class:`card-body dynamic-form`},R={class:`form-row`},z={class:`form-group half-width`},B={class:`form-group half-width`},V={class:`form-group`},H={class:`form-group`},te={class:`form-actions`},U={class:`settings-card`},W={class:`card-header`},G={class:`header-title`},K={class:`card-body`},q={class:`setting-row`},J={class:`setting-info`},Y={class:`setting-row`},X={class:`setting-info`},Z={class:`setting-row toggle-row`},Q={class:`setting-info`},ne={class:`toggle-switch`},re={class:`settings-column`},ie={class:`settings-card`},ae={class:`card-header`},oe={class:`header-title`},se={class:`card-body`},ce={class:`security-block`},le={class:`block-info`},ue={class:`security-block`},de={class:`block-info`},fe={class:`settings-card`},pe={class:`card-header`},$={class:`header-title`},me={class:`card-body p-0`,style:{padding:`0`}},he={class:`session-icon-box current-device`},ge={class:`session-icon-box`},_e={class:`logout-btn`,title:`Revoke session`},ve={class:`form-actions`,style:{padding:`16px`}},ye=m(n({__name:`CmsUserCenter`,setup(t){let n=c({firstName:`Admin`,lastName:`User`,email:`admin@kama-cms.com`,role:`Administrator`}),i=c({theme:`system`,language:`en`,emailNotifications:!0}),l=c(!1),f=()=>{l.value=!0,setTimeout(()=>{l.value=!1},600)};return(t,c)=>(o(),y(`main`,A,[g(`div`,j,[c[31]||=g(`header`,{class:`view-header`},[g(`h1`,null,`User Center`),g(`p`,null,`Manage your personal profile, security settings, and global preferences.`)],-1),g(`div`,M,[g(`div`,N,[g(`section`,P,[g(`header`,F,[g(`div`,I,[s(e(C),{size:18,class:`section-icon`}),c[7]||=g(`h2`,null,`Profile Information`,-1)])]),g(`div`,L,[g(`div`,R,[g(`div`,z,[c[8]||=g(`div`,{class:`label-row`},[g(`label`,null,`First Name`)],-1),a(g(`input`,{type:`text`,"onUpdate:modelValue":c[0]||=e=>n.value.firstName=e},null,512),[[d,n.value.firstName]])]),g(`div`,B,[c[9]||=g(`div`,{class:`label-row`},[g(`label`,null,`Last Name`)],-1),a(g(`input`,{type:`text`,"onUpdate:modelValue":c[1]||=e=>n.value.lastName=e},null,512),[[d,n.value.lastName]])])]),g(`div`,V,[c[10]||=g(`div`,{class:`label-row`},[g(`label`,null,`Email Address`)],-1),a(g(`input`,{type:`email`,"onUpdate:modelValue":c[2]||=e=>n.value.email=e},null,512),[[d,n.value.email]])]),g(`div`,H,[c[11]||=g(`div`,{class:`label-row`},[g(`label`,null,`Role / Access Level`)],-1),a(g(`input`,{type:`text`,"onUpdate:modelValue":c[3]||=e=>n.value.role=e,disabled:``,class:`disabled-input`},null,512),[[d,n.value.role]])]),g(`div`,te,[s(S,{variant:`primary`,onClick:f,disabled:l.value},{default:r(()=>[s(e(ee),{size:14}),g(`span`,null,v(l.value?`Saving...`:`Save Profile`),1)]),_:1},8,[`disabled`])])])]),g(`section`,U,[g(`header`,W,[g(`div`,G,[s(e(T),{size:18,class:`section-icon`}),c[12]||=g(`h2`,null,`Preferences`,-1)])]),g(`div`,K,[g(`div`,q,[g(`div`,J,[s(e(O),{size:16,class:`setting-icon`}),c[13]||=g(`div`,null,[g(`strong`,null,`Interface Theme`),g(`p`,null,`Choose your preferred color mode.`)],-1)]),a(g(`select`,{class:`cms-select`,"onUpdate:modelValue":c[4]||=e=>i.value.theme=e},[...c[14]||=[g(`option`,{value:`light`},`Light`,-1),g(`option`,{value:`dark`},`Dark`,-1),g(`option`,{value:`system`},`System Default`,-1)]],512),[[h,i.value.theme]])]),g(`div`,Y,[g(`div`,X,[s(e(x),{size:16,class:`setting-icon`}),c[15]||=g(`div`,null,[g(`strong`,null,`Language`),g(`p`,null,`CMS interface language.`)],-1)]),a(g(`select`,{class:`cms-select`,"onUpdate:modelValue":c[5]||=e=>i.value.language=e},[...c[16]||=[g(`option`,{value:`en`},`English (US)`,-1),g(`option`,{value:`de`},`German`,-1),g(`option`,{value:`fr`},`French`,-1)]],512),[[h,i.value.language]])]),g(`div`,Z,[g(`div`,Q,[s(e(T),{size:16,class:`setting-icon`}),c[17]||=g(`div`,null,[g(`strong`,null,`Email Notifications`),g(`p`,null,`Receive alerts for workflow changes.`)],-1)]),g(`label`,ne,[a(g(`input`,{type:`checkbox`,"onUpdate:modelValue":c[6]||=e=>i.value.emailNotifications=e},null,512),[[u,i.value.emailNotifications]]),c[18]||=g(`span`,{class:`slider`},null,-1)])])])])]),g(`div`,re,[g(`section`,ie,[g(`header`,ae,[g(`div`,oe,[s(e(k),{size:18,class:`section-icon`}),c[19]||=g(`h2`,null,`Security`,-1)])]),g(`div`,se,[g(`div`,ce,[g(`div`,le,[s(e(E),{size:16}),c[20]||=g(`div`,null,[g(`strong`,null,`Password`),g(`p`,null,`Last changed 3 months ago.`)],-1)]),s(S,{variant:`secondary`,size:`sm`},{default:r(()=>[...c[21]||=[_(`Update`,-1)]]),_:1})]),g(`div`,ue,[g(`div`,de,[s(e(k),{size:16}),c[22]||=g(`div`,null,[g(`strong`,null,`Two-Factor Authentication`),g(`p`,null,`Add an extra layer of security.`)],-1)]),s(S,{variant:`secondary`,size:`sm`},{default:r(()=>[...c[23]||=[_(`Enable 2FA`,-1)]]),_:1})])])]),g(`section`,fe,[g(`header`,pe,[g(`div`,$,[s(e(b),{size:18,class:`section-icon`}),c[24]||=g(`h2`,null,`Active Sessions`,-1)])]),g(`div`,me,[s(w,{"is-selected":!0,style:{"border-radius":`0`}},{prefix:r(()=>[g(`div`,he,[s(e(x),{size:16})])]),title:r(()=>[...c[25]||=[g(`span`,{style:{"font-weight":`600`}},`Mac OS • Chrome`,-1)]]),meta:r(()=>[...c[26]||=[g(`span`,{style:{"font-size":`11.5px`,color:`var(--cms-color-text-muted)`}},`Current session • IP: 192.168.1.1`,-1)]]),actions:r(()=>[...c[27]||=[g(`span`,{class:`active-badge`},`Active Now`,-1)]]),_:1}),s(w,null,{prefix:r(()=>[g(`div`,ge,[s(e(b),{size:16})])]),title:r(()=>[...c[28]||=[g(`span`,{style:{"font-weight":`600`}},`iOS • Safari`,-1)]]),meta:r(()=>[...c[29]||=[g(`span`,{style:{"font-size":`11.5px`,color:`var(--cms-color-text-muted)`}},`Last seen 2 hours ago • IP: 10.0.0.45`,-1)]]),actions:r(()=>[g(`button`,_e,[s(e(D),{size:14})])]),_:1}),g(`div`,ve,[s(S,{variant:`danger-outline`,class:`full-width-btn`},{default:r(()=>[...c[30]||=[_(`Log out of all other devices `,-1)]]),_:1})])])])])])])]))}}),[[`__scopeId`,`data-v-8dc2f1d9`]]);export{ye as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,A as t,D as n,F as r,G as i,H as a,J as o,L as s,N as c,P as ee,T as l,U as u,Z as d,_ as f,b as p,bt as m,h,n as g,st as _,t as v,v as y,w as b,wt as x,x as S,xt as C,y as w}from"./_plugin-vue_export-helper-CTn6xl4w.js";import{t as te}from"./history-XvWNE5zO.js";import{t as ne}from"./smartphone-Wy6xQi_i.js";import{$ as re,A as ie,B as ae,d as oe,l as se,nt as ce,u as T,v as le}from"./index-
|
|
1
|
+
import{$ as e,A as t,D as n,F as r,G as i,H as a,J as o,L as s,N as c,P as ee,T as l,U as u,Z as d,_ as f,b as p,bt as m,h,n as g,st as _,t as v,v as y,w as b,wt as x,x as S,xt as C,y as w}from"./_plugin-vue_export-helper-CTn6xl4w.js";import{t as te}from"./history-XvWNE5zO.js";import{t as ne}from"./smartphone-Wy6xQi_i.js";import{$ as re,A as ie,B as ae,d as oe,l as se,nt as ce,u as T,v as le}from"./index-BpOAL4tE.js";import{n as ue}from"./NodeEditor-CZGnkwvf.js";var de=g(`file-braces`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1`,key:`1oajmo`}],[`path`,{d:`M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1`,key:`mpwhp6`}]]),fe=g(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),pe=g(`minimize-2`,[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]),me=g(`monitor`,[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`,key:`1svkeh`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`,key:`vw1qmm`}]]);t(),o(),_();var he={class:`split-preview-pane`},ge={class:`preview-toolbar`},_e={class:`segmented-control`},ve={class:`device-controls-group`},ye=[`title`],be={class:`trigger-label`},xe=[`title`],Se={class:`toolbar-right`},Ce=[`href`],we=[`href`],Te=[`src`,`title`],E=v(n({__name:`EditorSplitPreview`,props:{paneWidthPx:{}},emits:[`close`],setup(t,{emit:n}){let o=t,g=n,{activeNode:_,selectedChannelId:v,selectedLanguage:E,allChannels:D,activeSnapshotVersion:O,nodeSchemas:Ee}=ce(),k=d(null),A=d(null),j=T(`kama_preview_mode`,`draft`),M=T(`kama_preview_device`,`desktop`),N=T(`kama_preview_orientation`,`portrait`),P=T(`kama_preview_autofit`,!0),F=d({w:800,h:800}),I=d(Date.now()),L=d(``),R=async()=>{let e=_.value?.id;if(!e)return;let t=D.value.find(e=>String(e.id)===String(v.value)),n=!1;if(t)try{let r=t.channelRoot;!r&&t.dataJson&&(r=(typeof t.dataJson==`string`?JSON.parse(t.dataJson):t.dataJson)?.channelRoot),typeof r==`string`&&(r=JSON.parse(r));let i=r?.nodeId??r?.id;i&&String(i)===String(e)&&(n=!0)}catch{}if(n){L.value=`/`;return}try{let n=t?.id||v.value||``,r=await fetch(`/api/cms/nodes.json?id=${e}&channelId=${n}`);if(r.ok){let e=await r.json();if(e.node?.path){L.value=e.node.path;return}}}catch(e){console.error(`Failed to fetch live canonical route`,e)}let r=_.value?.slug||``;L.value=r===`index`?`/`:`/${r.replace(/^\/+|\/+$/g,``)}`};u(()=>_.value?.id,R,{immediate:!0});let z={desktop:{label:`Desktop (100% Fluid)`,width:null,height:null},desktop_4k:{label:`4K UHD (3840 × 2160)`,width:3840,height:2160},desktop_fhd:{label:`Full HD (1920 × 1080)`,width:1920,height:1080},macbook_air:{label:`MacBook Air (1440 × 900)`,width:1440,height:900},laptop_std:{label:`Laptop (1366 × 768)`,width:1366,height:768},ipad_pro:{label:`iPad Pro 12.9" (1024 × 1366)`,width:1024,height:1366},ipad_air:{label:`iPad Air / Mini (820 × 1180)`,width:820,height:1180},ipad_standard:{label:`iPad 10th Gen (810 × 1080)`,width:810,height:1080},iphone_15_pro_max:{label:`iPhone 15 Pro Max (430 × 932)`,width:430,height:932},iphone_15_pro:{label:`iPhone 15 Pro (393 × 852)`,width:393,height:852},iphone_se:{label:`iPhone SE (375 × 667)`,width:375,height:667},samsung_s23:{label:`Samsung Galaxy S23 (360 × 780)`,width:360,height:780}},B=f(()=>{let e=0;return Object.values(z).forEach(t=>{t.label.length>e&&(e=t.label.length)}),`${Math.ceil(e*7.2)+48}px`}),V=d(!1),H=d(null),U=d(null),De=f(()=>Object.entries(z).map(([e,t])=>({key:e,label:t.label,title:t.label,isActive:M.value===e}))),Oe=()=>{if(V.value){V.value=!1;return}H.value&&(U.value=H.value.getBoundingClientRect()),V.value=!0},ke=e=>{M.value=String(e),V.value=!1,X()},Ae=f(()=>z[M.value]?.label||`Select Device`),je=f(()=>{if(!_.value)return`Untitled`;let e=Ee.value?.[_.value.nodeType||``];return re(e,_.value)}),W=f(()=>{let e=D.value.find(e=>String(e.id)===String(v.value)),t=e?.baseUrl||e?.url||(typeof window<`u`?window.location.origin:``);if((t.includes(`localhost:8787`)||t.includes(`127.0.0.1:8787`))&&(t=t.replace(`8787`,`4321`)),t=t.replace(/\/$/,``),!_.value?.id)return t;let n=L.value;n.startsWith(`/`)||(n=`/${n}`);let r=n===`/`?``:n,i=E.value?`/${E.value}`:``,a=`${t}${i}${r}`,o=`_cb=${I.value}`;return O.value?`${a}?preview=true&revisionId=${O.value}&${o}`:`${a}?${j.value===`draft`?`preview=true&`:``}${o}`}),Me=f(()=>{if(!_.value)return`#`;let e=L.value;e.startsWith(`/`)||(e=`/${e}`);let t=e===`/`?``:e,n=E.value?`&lang=${E.value}`:``,r=O.value?`&revisionId=${O.value}`:``,i=j.value===`draft`||!!O.value;return`/api/v1/node${t}?channelId=${v.value}&preview=${i}${n}${r}`}),G=f(()=>M.value!==`desktop`),K=f(()=>{let e=z[M.value];if(!e||!e.width||!e.height)return{w:null,h:null};let t=N.value===`landscape`;return{w:t?e.height:e.width,h:t?e.width:e.height}}),q=f(()=>{let{w:e,h:t}=K.value;return!e||!t||e>t?`landscape`:`portrait`}),J=f(()=>{if(!G.value||!P.value)return 1;let{w:e,h:t}=K.value;if(!e||!t)return 1;let n=Math.max(100,F.value.w-48),r=Math.max(100,F.value.h-48),i=n/e,a=r/t;return Math.max(.15,Math.min(i,a))}),Y=()=>{if(A.value){let e=A.value.clientWidth,t=A.value.clientHeight;if(e>0&&t>0)F.value={w:e,h:t};else{let e=A.value.getBoundingClientRect();e.width>0&&e.height>0&&(F.value={w:e.width,h:e.height})}}},X=()=>{c(()=>{requestAnimationFrame(()=>{Y()})})},Z=()=>{N.value=N.value===`portrait`?`landscape`:`portrait`,X()},Ne=()=>{P.value=!P.value,X()},Pe=()=>{I.value=Date.now()},Fe=()=>{X()},Q=async()=>{let e=W.value;await R(),e===W.value&&k.value?.contentWindow&&k.value.contentWindow.postMessage({type:`kama-preview-update`,url:W.value},`*`)};u(O,e=>{e&&(j.value=`draft`)}),u(()=>o.paneWidthPx,()=>{Y()});let $=null;return r(()=>{typeof window<`u`&&window.addEventListener(`cms-node-updated`,Q),A.value&&(Y(),$=new ResizeObserver(()=>Y()),$.observe(A.value)),X()}),ee(()=>{typeof window<`u`&&window.removeEventListener(`cms-node-updated`,Q),$&&$.disconnect()}),(t,n)=>(s(),S(`div`,he,[y(`header`,ge,[y(`div`,_e,[e(O)?(s(),w(ue,{key:0,variant:`warning`,icon:e(te),title:`Viewing Historical Snapshot`},{default:i(()=>[b(` v`+x(e(O)),1)]),_:1},8,[`icon`])):(s(),S(h,{key:1},[y(`button`,{type:`button`,class:m([`segmented-btn text-btn`,{active:e(j)===`draft`}]),onClick:n[0]||=e=>j.value=`draft`},` Draft `,2),y(`button`,{type:`button`,class:m([`segmented-btn text-btn`,{active:e(j)===`live`}]),onClick:n[1]||=e=>j.value=`live`},` Public `,2)],64))]),y(`div`,ve,[G.value?(s(),S(`button`,{key:0,type:`button`,class:m([`icon-btn zoom-btn`,{active:e(P)}]),title:e(P)?`Auto-Fit Active (Click for 1:1 Real Size)`:`1:1 Real Size Active (Click to Auto-Fit)`,onClick:Ne},[(s(),w(a(e(P)?e(pe):e(fe)),{size:14}))],10,ye)):p(``,!0),y(`div`,{class:`device-menu-wrapper`,ref_key:`deviceTriggerRef`,ref:H,style:C({width:B.value})},[y(`button`,{type:`button`,class:`device-trigger-btn`,onClick:Oe},[l(e(me),{size:13,class:`trigger-icon`}),y(`span`,be,x(Ae.value),1),l(e(ae),{size:12,class:`chevron-icon`})]),l(se,{show:V.value,items:De.value,"anchor-rect":U.value,"min-width":B.value,onSelect:ke,onClose:n[2]||=e=>V.value=!1},null,8,[`show`,`items`,`anchor-rect`,`min-width`])],4),G.value?(s(),S(`button`,{key:1,type:`button`,class:`icon-btn orientation-btn`,title:`Switch to ${q.value===`portrait`?`Landscape`:`Portrait`}`,onClick:Z},[l(e(ne),{size:14,style:C({transform:q.value===`landscape`?`rotate(90deg)`:`rotate(0deg)`,transition:`transform 0.2s`})},null,8,[`style`])],8,xe)):p(``,!0)]),y(`div`,Se,[y(`button`,{type:`button`,class:`icon-btn`,title:`Refresh Preview`,onClick:Pe},[l(e(le),{size:13})]),y(`a`,{href:Me.value,target:`_blank`,class:`icon-btn`,title:`View JSON API Payload`},[l(e(de),{size:13})],8,Ce),y(`a`,{href:W.value,target:`_blank`,class:`icon-btn`,title:`Open Preview in New Tab`},[l(e(ie),{size:13})],8,we),y(`button`,{type:`button`,class:`icon-btn close-btn`,title:`Close Split View`,onClick:n[3]||=e=>g(`close`)},[l(e(oe),{size:14})])])]),y(`div`,{ref_key:`stageRef`,ref:A,class:m([`preview-stage`,{"is-fixed-frame":G.value}])},[y(`div`,{class:`device-frame-wrapper`,style:C(G.value&&K.value.w&&K.value.h?{width:`${K.value.w*J.value}px`,height:`${K.value.h*J.value}px`}:{width:`100%`,height:`100%`})},[y(`div`,{class:`device-frame`,style:C(G.value&&K.value.w&&K.value.h?{width:`${K.value.w}px`,height:`${K.value.h}px`,transform:`scale(${J.value})`,transformOrigin:`top left`}:{width:`100%`,height:`100%`})},[(s(),S(`iframe`,{key:W.value,ref_key:`previewIframeRef`,ref:k,src:W.value,class:`preview-iframe`,title:je.value,onLoad:Fe},null,40,Te))],4)],4)],2)]))}}),[[`__scopeId`,`data-v-f9dd6bd0`]]);export{E as default};
|