zerocodejs 1.0.1-beta.4 → 1.0.1-beta.5

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.
Files changed (45) hide show
  1. package/dist/zerocode.es.js +0 -1
  2. package/dist/zerocode.umd.js +0 -1
  3. package/package.json +1 -1
  4. package/dist/__tests__/fixtures/sample-data.d.ts +0 -23
  5. package/dist/__tests__/fixtures/sample-data.d.ts.map +0 -1
  6. package/dist/__tests__/fixtures/sample-templates.d.ts +0 -25
  7. package/dist/__tests__/fixtures/sample-templates.d.ts.map +0 -1
  8. package/dist/core/utils/component-initializer.test.d.ts +0 -2
  9. package/dist/core/utils/component-initializer.test.d.ts.map +0 -1
  10. package/dist/core/utils/field-extractor.test.d.ts +0 -2
  11. package/dist/core/utils/field-extractor.test.d.ts.map +0 -1
  12. package/dist/core/utils/image-utils.test.d.ts +0 -2
  13. package/dist/core/utils/image-utils.test.d.ts.map +0 -1
  14. package/dist/core/utils/path-utils.test.d.ts +0 -2
  15. package/dist/core/utils/path-utils.test.d.ts.map +0 -1
  16. package/dist/core/utils/storage.test.d.ts +0 -2
  17. package/dist/core/utils/storage.test.d.ts.map +0 -1
  18. package/dist/core/utils/template-processor.test.d.ts +0 -2
  19. package/dist/core/utils/template-processor.test.d.ts.map +0 -1
  20. package/dist/core/utils/template-utils.test.d.ts +0 -2
  21. package/dist/core/utils/template-utils.test.d.ts.map +0 -1
  22. package/dist/core/utils/validation.test.d.ts +0 -2
  23. package/dist/core/utils/validation.test.d.ts.map +0 -1
  24. package/dist/css/common.css +0 -677
  25. package/dist/css/docs.css +0 -396
  26. package/dist/css/index.css +0 -1039
  27. package/dist/css/page.css +0 -290
  28. package/dist/css/sample.css +0 -26
  29. package/dist/css/site-common.css +0 -218
  30. package/dist/footer.html +0 -10
  31. package/dist/header.html +0 -10
  32. package/dist/images/customer-avatar.jpg +0 -0
  33. package/dist/images/default-avatar.jpg +0 -0
  34. package/dist/images/default.jpg +0 -0
  35. package/dist/images/hero-bg.jpg +0 -0
  36. package/dist/images/kv_image.jpg +0 -0
  37. package/dist/images/page-specific-hero.jpg +0 -0
  38. package/dist/images/sample-1.jpg +0 -0
  39. package/dist/images/sample-2.jpg +0 -0
  40. package/dist/images/sample-3.jpg +0 -0
  41. package/dist/images/zcode_top_01.png +0 -0
  42. package/dist/js/accordion.js +0 -24
  43. package/dist/js/common.js +0 -1093
  44. package/dist/zerocode.es.js.map +0 -1
  45. package/dist/zerocode.umd.js.map +0 -1
@@ -28727,4 +28727,3 @@ export {
28727
28727
  Gf as ZeroCodePreview,
28728
28728
  cM as renderToHtml
28729
28729
  };
28730
- //# sourceMappingURL=zerocode.es.js.map
@@ -487,4 +487,3 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
487
487
  <`).split(`
488
488
  `),M=[];let A=0;for(const y of T){const E=y.trim();if(!E)continue;const k=/^<\/[^>]+>/.test(E),O=/\/>$/.test(E)||/^<!/.test(E),G=/^<[^/!][^>]*>$/.test(E)&&!O;k&&(A=Math.max(A-1,0)),M.push(" ".repeat(A)+E),G&&A++}return M.join(`
489
489
  `)}const g=a.computed(()=>o.value==="page"&&r.value==="html"?b(d.value):m(f.value));a.watch(u,()=>{h()},{deep:!0,immediate:!1}),a.watch(()=>n.cmsData,()=>{h()},{deep:!0}),a.watch(()=>{switch(o.value){case"page":return n.cmsData.page;case"parts":return c.value==="common"?n.cmsData.parts.common:n.cmsData.parts.individual;case"images":return c.value==="common"?n.cmsData.images.common:n.cmsData.images.individual;default:return null}},()=>{h()},{deep:!0}),a.watch(c,()=>{h()}),a.watch(o,()=>{c.value=n.config?.categoryOrder==="individual"?"individual":"common",h()});const x=async()=>{const v=g.value;try{await navigator.clipboard.writeText(v),i.value=!0,setTimeout(()=>{i.value=!1},2e3)}catch(w){console.error("コピーに失敗しました:",w);const T=document.createElement("textarea");T.value=v,T.style.position="fixed",T.style.opacity="0",document.body.appendChild(T),T.select();try{document.execCommand("copy"),i.value=!0,setTimeout(()=>{i.value=!1},2e3)}catch(M){console.error("コピーに失敗しました:",M)}document.body.removeChild(T)}};return h(),e({internalActiveTab:o,activeCategory:c}),(v,w)=>(a.openBlock(),a.createElementBlock("div",WA,[a.createElementVNode("div",GA,[a.createElementVNode("div",qA,[a.createElementVNode("button",{class:a.normalizeClass([{active:o.value==="page"},"zcode-data-viewer-content-tab"]),onClick:w[0]||(w[0]=T=>o.value="page")},a.toDisplayString(v.$t("dataViewer.page")),3),a.createElementVNode("button",{class:a.normalizeClass([{active:o.value==="parts"},"zcode-data-viewer-content-tab"]),onClick:w[1]||(w[1]=T=>o.value="parts")},a.toDisplayString(v.$t("dataViewer.parts")),3),a.createElementVNode("button",{class:a.normalizeClass([{active:o.value==="images"},"zcode-data-viewer-content-tab"]),onClick:w[2]||(w[2]=T=>o.value="images")},a.toDisplayString(v.$t("dataViewer.images")),3)]),a.createElementVNode("div",KA,[o.value==="page"?(a.openBlock(),a.createElementBlock(a.Fragment,{key:0},[a.createElementVNode("button",{class:a.normalizeClass([{active:r.value==="json"},"zcode-data-viewer-tab"]),onClick:w[3]||(w[3]=T=>r.value="json")},a.toDisplayString(v.$t("dataViewer.json")),3),a.createElementVNode("button",{class:a.normalizeClass([{active:r.value==="html"},"zcode-data-viewer-tab"]),onClick:w[4]||(w[4]=T=>r.value="html")},a.toDisplayString(v.$t("dataViewer.html")),3)],64)):(a.openBlock(!0),a.createElementBlock(a.Fragment,{key:1},a.renderList(l.value,T=>(a.openBlock(),a.createElementBlock("button",{key:T,class:a.normalizeClass([{active:c.value===T},"zcode-data-viewer-tab"]),onClick:M=>c.value=T},a.toDisplayString(T==="common"?v.$t("dataViewer.common"):T==="individual"?v.$t("dataViewer.individual"):v.$t("dataViewer.special")),11,JA))),128))])]),a.createElementVNode("div",XA,[a.createElementVNode("div",YA,[a.createElementVNode("pre",QA,a.toDisplayString(g.value),1),a.createElementVNode("button",{class:"zcode-data-viewer-copy-btn",title:i.value?v.$t("common.copied"):v.$t("common.copy"),onClick:x},[i.value?(a.openBlock(),a.createBlock(a.unref(sr),{key:0,size:18})):(a.openBlock(),a.createBlock(a.unref(Xm),{key:1,size:18}))],8,ZA)])])]))}}),tM={class:"zcode-dev-container"},nM={class:"zcode-dev-header"},oM={class:"zcode-dev-tabs"},rM=["title"],iM={key:3,class:"zcode-loading-message"},sM={class:"zcode-loading-message-text"},aM={key:5,class:"zcode-loading-message"},lM={class:"zcode-loading-message-text"},cM={key:6,class:"zcode-save-controls-fixed"},dM={class:"zcode-save-confirm-dialog"},uM={class:"zcode-save-confirm-dialog-header"},fM={class:"zcode-save-confirm-dialog-title"},pM={class:"zcode-save-confirm-dialog-body"},hM={class:"zcode-save-confirm-targets"},mM={class:"zcode-save-confirm-dialog-footer"},vc=a.defineComponent({__name:"ZeroCodeEditor",props:{locale:{type:String},page:{type:String},cssCommon:{type:String},cssIndividual:{type:String},cssSpecial:{type:String},partsCommon:{type:String},partsIndividual:{type:String},partsSpecial:{type:String},imagesCommon:{type:String},imagesIndividual:{type:String},imagesSpecial:{type:String},config:{type:String},endpoints:{type:String},backendData:{type:String},enablePartsManager:{type:Boolean},enableImagesManager:{type:Boolean}},setup(t,{expose:e}){const{t:n}=rn(),o=t,r=a.computed(()=>o.enablePartsManager!==!1),i=a.computed(()=>o.enableImagesManager!==!1),s=a.ref("manage"),l=a.ref("edit"),c=a.ref(null),d=a.ref(null),u=a.ref(null),f=a.ref(null),p=a.ref(!1),h=a.ref(!1),m=a.ref([]),g=(C=>{if(!C)return{};try{return JSON.parse(C)}catch($){return console.warn("[ZeroCodeEditor] Failed to parse config:",$),{}}})(o.config);function x(C){return typeof C=="object"&&C!==null}function v(C){return C==="common"||C==="individual"||C==="special"}function w(C){return C==="page"||C==="parts"||C==="images"}function T(C){if(x(C)&&"value"in C)return C.value}function M(C){const $=T(C);if(typeof $=="boolean")return $;if(typeof C=="boolean")return C}function A(C){const $=T(C);if(typeof $=="string")return $;if(typeof C=="string")return C}function y(C,$){return x(C)&&"value"in C?(C.value=$,!0):!1}function E(C,$){if(x(C))return C[$]}function k(C){const $=E(C,"activeCategory");if(v($))return $;const te=T($);return v(te)?te:void 0}function O(C){const $=E(C,"internalActiveTab");if(w($))return $;const te=T($);return w(te)?te:void 0}function G(){const C=c.value;return!x(C)||!("cmsData"in C)||!("currentMode"in C)||!("switchMode"in C)||!("allowDynamicContentInteraction"in C)||!("settingsPanelOpen"in C)||!("setData"in C)?null:C}const z=(C,$,te)=>{const ge=Mu();return ge[C]!==void 0?ge[C]:te!==void 0?te:$},R=a.ref(z("showDataViewer",!1,g.dev?.showDataViewer)),W=a.ref(z("showSaveConfirm",!0,g.dev?.showSaveConfirm)),{cmsData:H,loadDataFromProps:L}=km(o),j=a.computed(()=>{const C=G();return C?C.cmsData:H}),Z=a.computed(()=>{const C=G();return(C?A(C.currentMode):void 0)??"edit"}),K=C=>{c.value?.switchMode&&c.value.switchMode(C)};function ae(C){l.value=C,(C==="parts"||C==="images"||C==="data")&&(s.value="manage")}function ee(){const C=G();C&&!y(C.settingsPanelOpen,!0)&&(C.settingsPanelOpen=!0)}const X=a.computed(()=>{if(s.value==="preview")return!0;const C=G();if(C){const $=M(C.allowDynamicContentInteraction);if($!==void 0)return $}return h1("allowDynamicContentInteraction",!1)});function Y(C){const $=j.value;if(!C)return $;const te=C.split(".");let ge=$;for(const Re of te)if(!x(ge)||(ge=ge[Re],ge===void 0))return;return ge}function J(C,$){const te=G();return te?te.setData(C,$):!1}a.onMounted(()=>{L()}),a.watch([()=>o.page,()=>o.partsCommon,()=>o.partsIndividual,()=>o.partsSpecial,()=>o.imagesCommon,()=>o.imagesIndividual,()=>o.imagesSpecial,()=>o.cssCommon,()=>o.cssIndividual,()=>o.cssSpecial],()=>{L()}),a.watch(R,C=>{Ba({showDataViewer:C})}),a.watch(W,C=>{Ba({showSaveConfirm:C})}),a.watch(s,(C,$)=>{de("view-mode-changed",{mode:C,previousMode:$})});function Q(C){W.value=C}function de(C,$){const te=document.querySelector("zcode-editor");if(te){const Re=new CustomEvent(C,{detail:$,bubbles:!0,composed:!0});te.dispatchEvent(Re);return}const ge=new CustomEvent(C,{detail:$,bubbles:!0,composed:!0});typeof window<"u"&&window.dispatchEvent(ge)}function ke(){return`req-${Date.now()}-${Math.random().toString(36).slice(2)}`}function Te(){if(!j.value)return[];let C;if(l.value==="edit")C="page";else if(l.value==="parts")if(!d.value)console.warn('[ZeroCode] partsManagerRefが設定されていません。デフォルトで"common"を使用します。'),C="parts-common";else{const te=k(d.value);te==null?(console.warn('[ZeroCode] parts activeCategoryが取得できません。デフォルトで"common"を使用します。'),C="parts-common"):te==="common"?C="parts-common":te==="individual"?C="parts-individual":C="parts-special"}else if(l.value==="images")if(!u.value)console.warn('[ZeroCode] imagesManagerRefが設定されていません。デフォルトで"common"を使用します。'),C="images-common";else{const te=k(u.value);te==null?(console.warn('[ZeroCode] images activeCategoryが取得できません。デフォルトで"common"を使用します。'),C="images-common"):te==="common"?C="images-common":te==="individual"?C="images-individual":C="images-special"}else if(l.value==="data")if(!f.value)console.warn('[ZeroCode] dataViewerRefが設定されていません。デフォルトで"page"を使用します。'),C="page";else{const te=O(f.value),ge=k(f.value);if(te==null)console.warn('[ZeroCode] dataViewer internalActiveTabが取得できません。デフォルトで"page"を使用します。'),C="page";else if(te==="page")C="page";else if(te==="parts")ge==null?(console.warn('[ZeroCode] dataViewer parts activeCategoryが取得できません。デフォルトで"common"を使用します。'),C="parts-common"):ge==="common"?C="parts-common":ge==="individual"?C="parts-individual":C="parts-special";else if(te==="images")ge==null?(console.warn('[ZeroCode] dataViewer images activeCategoryが取得できません。デフォルトで"common"を使用します。'),C="images-common"):ge==="common"?C="images-common":ge==="individual"?C="images-individual":C="images-special";else return console.warn(`[ZeroCode] dataViewer 不明なinternalActiveTab: ${te}`),[]}else return[];let $;return C==="page"?$=["page","images-common","images-individual"]:C==="parts-common"?$=[C,"parts-common-css"]:C==="parts-individual"?$=[C,"parts-individual-css"]:C==="parts-special"?$=[C,"parts-special-css"]:$=[C],$}function $e(){if(!W.value){N();return}const C=Te();if(C.length===0){console.warn(`[ZeroCode] ${n("editor.noSaveTargets")}`);return}m.value=C,h.value=!0}function N(){const C=Te();if(C.length===0){console.warn(`[ZeroCode] ${n("editor.noSaveTargets")}`);return}de("save-request",{requestId:ke(),source:"editor",targets:C,timestamp:Date.now()})}function P(){h.value=!1,N()}function V(){h.value=!1,m.value=[]}function S(C){const{t:$}=rn();return{page:$("saveConfirm.targets.page"),"parts-common":$("saveConfirm.targets.parts-common"),"parts-individual":$("saveConfirm.targets.parts-individual"),"parts-special":$("saveConfirm.targets.parts-special"),"images-common":$("saveConfirm.targets.images-common"),"images-individual":$("saveConfirm.targets.images-individual"),"images-special":$("saveConfirm.targets.images-special"),"parts-common-css":$("saveConfirm.targets.parts-common-css"),"parts-individual-css":$("saveConfirm.targets.parts-individual-css"),"parts-special-css":$("saveConfirm.targets.parts-special-css")}[C]||C}return e({getData:Y,setData:J,allowDynamicContentInteraction:X}),(C,$)=>(a.openBlock(),a.createElementBlock("div",tM,[a.createElementVNode("div",nM,[a.createElementVNode("div",oM,[a.createElementVNode("button",{class:a.normalizeClass([{active:l.value==="edit"},"zcode-dev-tab"]),onClick:$[0]||($[0]=te=>ae("edit"))},[a.createVNode(a.unref(oa),{size:16}),a.createElementVNode("span",null,a.toDisplayString(C.$t("editor.pageManagement")),1)],2),r.value?(a.openBlock(),a.createElementBlock("button",{key:0,class:a.normalizeClass([{active:l.value==="parts"},"zcode-dev-tab"]),onClick:$[1]||($[1]=te=>ae("parts"))},[a.createVNode(a.unref(og),{size:16}),a.createElementVNode("span",null,a.toDisplayString(C.$t("editor.partsManagement")),1)],2)):a.createCommentVNode("",!0),i.value?(a.openBlock(),a.createElementBlock("button",{key:1,class:a.normalizeClass([{active:l.value==="images"},"zcode-dev-tab"]),onClick:$[2]||($[2]=te=>ae("images"))},[a.createVNode(a.unref(Rc),{size:16}),a.createElementVNode("span",null,a.toDisplayString(C.$t("editor.imagesManagement")),1)],2)):a.createCommentVNode("",!0),a.createElementVNode("button",{class:a.normalizeClass([{active:l.value==="data"},"zcode-dev-tab"]),onClick:$[3]||($[3]=te=>ae("data"))},[a.createVNode(a.unref(Ym),{size:16}),a.createElementVNode("span",null,a.toDisplayString(C.$t("editor.dataViewer")),1)],2),a.createElementVNode("button",{class:"zcode-dev-tab zcode-dev-settings-btn",title:C.$t("toolbar.settings"),onClick:$[4]||($[4]=te=>p.value=!0)},[a.createVNode(a.unref($c),{size:16})],8,rM)])]),l.value==="edit"?(a.openBlock(),a.createBlock(rd,{key:0,"current-mode":Z.value,"view-mode":s.value,"allow-dynamic-content-interaction":X.value,onSwitchMode:K,onSwitchViewMode:$[5]||($[5]=te=>s.value=te),onOpenSettings:ee},null,8,["current-mode","view-mode","allow-dynamic-content-interaction"])):a.createCommentVNode("",!0),s.value==="preview"&&j.value?(a.openBlock(),a.createBlock(ma,{key:1,"cms-data":j.value,"allow-dynamic-content-interaction":X.value},null,8,["cms-data","allow-dynamic-content-interaction"])):a.createCommentVNode("",!0),a.withDirectives(a.createVNode(Hs,{ref_key:"cmsRef",ref:c,locale:o.locale,page:o.page,"css-common":o.cssCommon,"css-individual":o.cssIndividual,"css-special":o.cssSpecial,"parts-common":o.partsCommon,"parts-individual":o.partsIndividual,"parts-special":o.partsSpecial,"images-common":o.imagesCommon,"images-individual":o.imagesIndividual,"images-special":o.imagesSpecial,config:o.config,endpoints:o.endpoints,"backend-data":o.backendData},null,8,["locale","page","css-common","css-individual","css-special","parts-common","parts-individual","parts-special","images-common","images-individual","images-special","config","endpoints","backend-data"]),[[a.vShow,s.value==="manage"&&l.value==="edit"]]),s.value==="manage"&&r.value&&l.value==="parts"&&j.value?(a.openBlock(),a.createBlock(rA,{key:2,ref_key:"partsManagerRef",ref:d,"cms-data":j.value,config:a.unref(g)},null,8,["cms-data","config"])):a.createCommentVNode("",!0),s.value==="manage"&&r.value&&l.value==="parts"&&!j.value?(a.openBlock(),a.createElementBlock("div",iM,[a.createElementVNode("div",sM,a.toDisplayString(C.$t("editor.loading")),1)])):a.createCommentVNode("",!0),s.value==="manage"&&i.value&&l.value==="images"&&j.value?(a.openBlock(),a.createBlock(HA,{key:4,ref_key:"imagesManagerRef",ref:u,"cms-data":j.value,config:a.unref(g)},null,8,["cms-data","config"])):a.createCommentVNode("",!0),s.value==="manage"&&i.value&&l.value==="images"&&!j.value?(a.openBlock(),a.createElementBlock("div",aM,[a.createElementVNode("div",lM,a.toDisplayString(C.$t("editor.loading")),1)])):a.createCommentVNode("",!0),a.withDirectives(a.createVNode(eM,{ref_key:"dataViewerRef",ref:f,"cms-data":j.value,config:a.unref(g)},null,8,["cms-data","config"]),[[a.vShow,s.value==="manage"&&l.value==="data"&&j.value]]),a.withDirectives(a.createVNode(Ou,{"is-open":p.value,"view-mode":s.value,mode:"dev-tabs","show-save-confirm":W.value,onClose:$[6]||($[6]=te=>p.value=!1),onToggleSaveConfirm:Q},null,8,["is-open","view-mode","show-save-confirm"]),[[a.vShow,p.value]]),s.value==="manage"?(a.openBlock(),a.createElementBlock("div",cM,[a.createElementVNode("button",{class:"zcode-save-btn",onClick:$e},[a.createVNode(a.unref(Lc),{size:16}),a.createElementVNode("span",null,a.toDisplayString(C.$t("common.save")),1)])])):a.createCommentVNode("",!0),h.value?(a.openBlock(),a.createElementBlock("div",{key:7,class:"zcode-save-confirm-dialog-overlay",onClick:a.withModifiers(V,["self"])},[a.createElementVNode("div",dM,[a.createElementVNode("div",uM,[a.createElementVNode("div",fM,a.toDisplayString(C.$t("saveConfirm.title")),1)]),a.createElementVNode("div",pM,[a.createElementVNode("p",null,a.toDisplayString(C.$t("saveConfirm.message")),1),a.createElementVNode("ul",hM,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(m.value,te=>(a.openBlock(),a.createElementBlock("li",{key:te},a.toDisplayString(S(te)),1))),128))])]),a.createElementVNode("div",mM,[a.createElementVNode("button",{class:"zcode-btn-secondary",onClick:V},a.toDisplayString(C.$t("common.cancel")),1),a.createElementVNode("button",{class:"zcode-btn-primary",onClick:P},a.toDisplayString(C.$t("saveConfirm.saveButton")),1)])])])):a.createCommentVNode("",!0)]))}});Cm();class gM extends HTMLElement{app=null;componentInstance=null;_shadowRoot=null;constructor(){super()}connectedCallback(){if(this.app)return;this.getAttribute("use-shadow-dom")!=="false"?(this.setupShadowDOM(),window.addEventListener("zcode-dom-updated",this.handleDOMUpdated.bind(this))):(this.setupLightDOM(),window.addEventListener("zcode-dom-updated",this.handleLightDOMUpdated.bind(this)))}setupLightDOM(){const e=this.getAttribute("page")||"[]",n=this.getAttribute("css-common"),o=this.getAttribute("css-individual"),r=this.getAttribute("css-special"),i=this.getAttribute("parts-common")||"[]",s=this.getAttribute("parts-individual")||"[]",l=this.getAttribute("parts-special")||"[]",c=this.getAttribute("images-common")||"[]",d=this.getAttribute("images-individual")||"[]",u=this.getAttribute("images-special")||"[]",f=Ws(this);this.app=a.createApp(vc,{locale:f,page:e,cssCommon:n,cssIndividual:o,cssSpecial:r,partsCommon:i,partsIndividual:s,partsSpecial:l,imagesCommon:c,imagesIndividual:d,imagesSpecial:u,config:this.getAttribute("config")||"",endpoints:this.getAttribute("endpoints")||"",backendData:this.getAttribute("backend-data")||"",enablePartsManager:this.getAttribute("enable-parts-manager")!=="false",enableImagesManager:this.getAttribute("enable-images-manager")!=="false"}),Gs(this.app,f),this.componentInstance=this.app.mount(this),this.injectLightDOMCSS()}setupShadowDOM(){const e=this.shadowRoot,n=!!e;e?(this._shadowRoot=e,this.clearScripts()):(this._shadowRoot=this.attachShadow({mode:"open"}),this.injectCSS());const o=this.getAttribute("page")||"[]",r=this.getAttribute("css-common"),i=this.getAttribute("css-individual"),s=this.getAttribute("css-special"),l=this.getAttribute("parts-common")||"[]",c=this.getAttribute("parts-individual")||"[]",d=this.getAttribute("parts-special")||"[]",u=this.getAttribute("images-common")||"[]",f=this.getAttribute("images-individual")||"[]",p=this.getAttribute("images-special")||"[]",h=Ws(this);this.app=a.createApp(vc,{locale:h,page:o,cssCommon:r,cssIndividual:i,cssSpecial:s,partsCommon:l,partsIndividual:c,partsSpecial:d,imagesCommon:u,imagesIndividual:f,imagesSpecial:p,config:this.getAttribute("config")||"",endpoints:this.getAttribute("endpoints")||"",backendData:this.getAttribute("backend-data")||"",enablePartsManager:this.getAttribute("enable-parts-manager")!=="false",enableImagesManager:this.getAttribute("enable-images-manager")!=="false"}),Gs(this.app,h),this.componentInstance=this.app.mount(this._shadowRoot),requestAnimationFrame(()=>{requestAnimationFrame(()=>{setTimeout(()=>{this.injectScript(n)},100)})})}injectCSS(){if(!this._shadowRoot)return;const e=document.createElement("style");e.textContent=Sm,this._shadowRoot.appendChild(e),this.querySelectorAll('[slot="css"]').forEach(o=>{const r=o.cloneNode(!0);r.removeAttribute("slot"),this._shadowRoot.appendChild(r),o.remove()})}injectLightDOMCSS(){this.querySelectorAll('[slot="css"]').forEach(n=>{const o=n.cloneNode(!0);o.removeAttribute("slot"),document.head.appendChild(o)})}clearScripts(){if(!this._shadowRoot)return;this._shadowRoot.querySelectorAll("script").forEach(n=>{n.remove()})}injectScript(e=!1){if(!this._shadowRoot)return;const n=this.querySelectorAll('[slot="script"]'),o=Array.from(n),r=[],i=[];o.forEach(c=>{const d=c;if(!d.src){console.warn("Inline scripts are not allowed. Only external script files with src attribute are supported.");return}d.src.includes("jquery")||d.src.includes("code.jquery.com")?r.push(d):i.push(d)});const s=c=>{let d=c.src;if(e)try{const f=new URL(c.src,window.location.href);f.searchParams.set("_t",Date.now().toString()),d=f.toString()}catch{d=c.src+(c.src.includes("?")?"&":"?")+"_t="+Date.now()}const u=document.createElement("script");return u.src=d,c.type&&(u.type=c.type),c.async&&(u.async=!0),c.defer&&(u.defer=!0),c.integrity&&(u.integrity=c.integrity),c.crossOrigin&&(u.crossOrigin=c.crossOrigin),u.onerror=f=>{console.error(`Failed to load script: ${c.src}`,f)},u},l=()=>{o.forEach(c=>{c.remove()})};if(r.length>0){let c=0;const d=r.length;r.forEach(u=>{const f=s(u);f.onload=()=>{c++,c===d&&(Mo(this._shadowRoot,e),requestAnimationFrame(()=>{i.forEach(p=>{this._shadowRoot.appendChild(s(p))}),l()}))},this._shadowRoot.appendChild(f)})}else Mo(this._shadowRoot,e),i.forEach(c=>{this._shadowRoot.appendChild(s(c))}),l()}injectLightDOMScripts(){const e=this.querySelectorAll('[slot="script"]'),n=[],o=[];e.forEach(i=>{const s=i;if(!s.src){console.warn("Inline scripts are not allowed. Only external script files with src attribute are supported.");return}s.src.includes("jquery")||s.src.includes("code.jquery.com")?n.push(s):o.push(s)});const r=i=>{const s=document.createElement("script");return s.src=i.src,i.type&&(s.type=i.type),i.async&&(s.async=!0),i.defer&&(s.defer=!0),i.integrity&&(s.integrity=i.integrity),i.crossOrigin&&(s.crossOrigin=i.crossOrigin),s.onerror=l=>{console.error(`Failed to load script: ${i.src}`,l)},s};if(n.length>0){let i=0;const s=n.length;n.forEach(l=>{const c=r(l);c.onload=()=>{i++,i===s&&requestAnimationFrame(()=>{o.forEach(d=>{document.body.appendChild(r(d))})})},document.body.appendChild(c)})}else o.forEach(i=>{document.body.appendChild(r(i))})}getData(e){return this.componentInstance&&this.componentInstance.getData?this.componentInstance.getData(e):null}setData(e,n){return this.componentInstance&&this.componentInstance.setData?this.componentInstance.setData(e,n):!1}get allowDynamicContentInteraction(){if(this.componentInstance){const e=this.componentInstance.allowDynamicContentInteraction;if(e!==void 0)return e&&typeof e=="object"&&"value"in e?e.value:e}return!0}set allowDynamicContentInteraction(e){if(this.componentInstance){const n=this.componentInstance.allowDynamicContentInteraction;n!==void 0&&(n&&typeof n=="object"&&"value"in n?n.value=e:this.componentInstance.allowDynamicContentInteraction=e)}}disconnectedCallback(){if(this.app&&(this.app.unmount(),this.app=null),this.componentInstance=null,this._shadowRoot){if(this._shadowRoot.__zecEventListeners){const e=this._shadowRoot.__zecEventListeners,n=this._shadowRoot;e.forEach(o=>{o.forEach(r=>{n.removeEventListener(r.eventName,r.handler,!0)})}),e.clear()}if(window.__zecShadowRoots){const e=window.__zecShadowRoots,n=this._shadowRoot;for(const[o,r]of e.entries())r===n&&e.delete(o)}}this._shadowRoot=null,window.removeEventListener("zcode-dom-updated",this.handleDOMUpdated.bind(this)),window.removeEventListener("zcode-dom-updated",this.handleLightDOMUpdated.bind(this))}handleDOMUpdated(){if(!this._shadowRoot||this.getAttribute("use-shadow-dom")!=="true")return;this._shadowRoot.__zecJQueryExtended&&delete this._shadowRoot.__zecJQueryExtended;const e=this._shadowRoot.querySelector("script[data-zec-shadow-extension]");e&&e.remove(),Mo(this._shadowRoot,!0)}handleLightDOMUpdated(){this.getAttribute("use-shadow-dom")!=="true"&&(this.__lightDOMScriptsLoaded||(this.injectLightDOMScripts(),this.__lightDOMScriptsLoaded=!0))}static get observedAttributes(){return["locale","page","css-common","css-individual","css-special","parts-common","parts-individual","parts-special","images-common","images-individual","images-special","config","endpoints","backend-data","enable-parts-manager","enable-images-manager","use-shadow-dom"]}attributeChangedCallback(e,n,o){if(n!==o){if(e==="use-shadow-dom"){this.app&&(this.app.unmount(),this.app=null),this.componentInstance=null,this._shadowRoot&&(this._shadowRoot.innerHTML="",this._shadowRoot=null),this.connectedCallback();return}this.app&&(this.app.unmount(),this.app=null,this.componentInstance=null,this.connectedCallback())}}}customElements.get("zcode-editor")||customElements.define("zcode-editor",gM);class ni extends Error{constructor(e,n,o){super(o),this.code=e,this.path=n,this.name="RenderError"}}function bM(t,e={}){const{enableEditorAttributes:n=!1}=e,o=t.backendData;if(!t)throw new ni("PARSE_ERROR","","データが提供されていません");const r=t.parts||{common:[],individual:[],special:[]},i=t.images||{common:[],individual:[],special:[]},s=t.page||[];function l(d){return ha(d,r)}function c(d,u="",f=new Set){if(f.has(u))throw new ni("CIRCULAR_REFERENCE",u,`循環参照が検出されました: ${u}`);f.add(u);const p=d.part_id,h=l(p);if(!h)throw new ni("PART_NOT_FOUND",u,`パーツが見つかりません: ${p}`);const m=ui(h.body,d,u,l,(b,g)=>c(b,g,f),n,i.common,i.individual,i.special,o);return n?td(m,{"data-zcode-id":d.id,"data-zcode-path":u,"data-zcode-part":p}):m}return s.map((d,u)=>{try{return c(d,`page.${u}`)}catch(f){if(f instanceof ni)return`<div class="zcode-error-message" data-error-code="${f.code}">${f.message}</div>`;throw f}}).join("")}en.RenderError=ni,en.ZeroCodeCMS=Hs,en.ZeroCodeEditor=vc,en.ZeroCodePreview=ma,en.renderToHtml=bM,Object.defineProperty(en,Symbol.toStringTag,{value:"Module"})}));
490
- //# sourceMappingURL=zerocode.umd.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zerocodejs",
3
- "version": "1.0.1-beta.4",
3
+ "version": "1.0.1-beta.5",
4
4
  "description": "ZeroCode.js - フレームワーク非依存のWeb ComponentsのCMSフロントエンドライブラリ",
5
5
  "type": "module",
6
6
  "main": "./dist/zerocode.umd.js",
@@ -1,23 +0,0 @@
1
- import { ComponentData, PartData, TypeData, ZeroCodeData, ImageData } from '../../types';
2
- export declare const sampleComponentData: ComponentData;
3
- export declare const samplePartData: PartData;
4
- export declare const sampleTypeData: TypeData;
5
- export declare const sampleImageData: ImageData[];
6
- export declare const sampleZeroCodeData: ZeroCodeData;
7
- export declare const sampleBackendData: {
8
- user: {
9
- name: string;
10
- email: string;
11
- profile: {
12
- age: number;
13
- city: string;
14
- };
15
- };
16
- items: {
17
- id: number;
18
- name: string;
19
- price: number;
20
- }[];
21
- shop_id: string;
22
- };
23
- //# sourceMappingURL=sample-data.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sample-data.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/sample-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE9F,eAAO,MAAM,mBAAmB,EAAE,aAUjC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,QAK5B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,QAK5B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,SAAS,EAWtC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,YA2BhC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;CAc7B,CAAC"}
@@ -1,25 +0,0 @@
1
- export declare const sampleTemplates: {
2
- simpleText: string;
3
- optionalField: string;
4
- withValidation: string;
5
- groupedField: string;
6
- richText: string;
7
- optionalRichText: string;
8
- textarea: string;
9
- image: string;
10
- radio: string;
11
- checkbox: string;
12
- select: string;
13
- selectMultiple: string;
14
- zIf: string;
15
- zEmpty: string;
16
- zTag: string;
17
- zFor: string;
18
- zSlot: string;
19
- backendData: string;
20
- nestedBackendData: string;
21
- arrayBackendData: string;
22
- urlPlaceholder: string;
23
- complex: string;
24
- };
25
- //# sourceMappingURL=sample-templates.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sample-templates.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/sample-templates.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;CAgC3B,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=component-initializer.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component-initializer.test.d.ts","sourceRoot":"","sources":["../../../src/core/utils/component-initializer.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=field-extractor.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"field-extractor.test.d.ts","sourceRoot":"","sources":["../../../src/core/utils/field-extractor.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=image-utils.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"image-utils.test.d.ts","sourceRoot":"","sources":["../../../src/core/utils/image-utils.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=path-utils.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"path-utils.test.d.ts","sourceRoot":"","sources":["../../../src/core/utils/path-utils.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=storage.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.test.d.ts","sourceRoot":"","sources":["../../../src/core/utils/storage.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=template-processor.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-processor.test.d.ts","sourceRoot":"","sources":["../../../src/core/utils/template-processor.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=template-utils.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-utils.test.d.ts","sourceRoot":"","sources":["../../../src/core/utils/template-utils.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=validation.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.test.d.ts","sourceRoot":"","sources":["../../../src/core/utils/validation.test.ts"],"names":[],"mappings":""}