@baseplate-dev/project-builder-web 0.2.6 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/-constants-C0cnDlAn.js +4 -0
- package/dist/assets/-constants-C0cnDlAn.js.map +1 -0
- package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib/web-BCejYgPM.js +2 -0
- package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib/{web-CEscUEnR.js.map → web-BCejYgPM.js.map} +1 -1
- package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib-BxDAWgq7.js +2 -0
- package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib-BxDAWgq7.js.map +1 -0
- package/dist/assets/__federation_shared_@baseplate-dev/ui-components-D6OnTPTN.js +46 -0
- package/dist/assets/__federation_shared_@baseplate-dev/ui-components-D6OnTPTN.js.map +1 -0
- package/dist/assets/__federation_shared_@baseplate-dev/utils-DvvrgoSE.js +5 -0
- package/dist/assets/__federation_shared_@baseplate-dev/utils-DvvrgoSE.js.map +1 -0
- package/dist/assets/__federation_shared_@tanstack/react-router-B5c6YNeC.js +19 -0
- package/dist/assets/__federation_shared_@tanstack/react-router-B5c6YNeC.js.map +1 -0
- package/dist/assets/__federation_shared_react-WURrSs1p.js +2 -0
- package/dist/assets/{__federation_shared_react-CTQ9xfiH.js.map → __federation_shared_react-WURrSs1p.js.map} +1 -1
- package/dist/assets/__federation_shared_react-dom-CWagDEjd.js +2 -0
- package/dist/assets/{__federation_shared_react-dom-DPv53nVg.js.map → __federation_shared_react-dom-CWagDEjd.js.map} +1 -1
- package/dist/assets/_commonjsHelpers-CqkleIqs.js +2 -0
- package/dist/assets/_commonjsHelpers-CqkleIqs.js.map +1 -0
- package/dist/assets/_virtual___federation_fn_import-DXu2m-ZE.js +2 -0
- package/dist/assets/{_virtual___federation_fn_import-BLYgPlMt.js.map → _virtual___federation_fn_import-DXu2m-ZE.js.map} +1 -1
- package/dist/assets/admin-Bw70Pql0.js +2 -0
- package/dist/assets/admin-Bw70Pql0.js.map +1 -0
- package/dist/assets/backend-CoqSwiCt.js +2 -0
- package/dist/assets/{backend-hJNcdERv.js.map → backend-CoqSwiCt.js.map} +1 -1
- package/dist/assets/badge-with-type-label-BXoSRTRE.js +2 -0
- package/dist/assets/{badge-with-type-label-CezAtjFy.js.map → badge-with-type-label-BXoSRTRE.js.map} +1 -1
- package/dist/assets/edit._key-CtMMGDWu.js +2 -0
- package/dist/assets/edit._key-CtMMGDWu.js.map +1 -0
- package/dist/assets/edit._sectionKey-CTX9L0j4.js +3 -0
- package/dist/assets/edit._sectionKey-CTX9L0j4.js.map +1 -0
- package/dist/assets/enum-info-form-D5bAsvPH.js +2 -0
- package/dist/assets/{enum-info-form-xlZ2HO8I.js.map → enum-info-form-D5bAsvPH.js.map} +1 -1
- package/dist/assets/graphql-BmA-sAqU.js +2 -0
- package/dist/assets/{graphql-D3J4ZWXL.js.map → graphql-BmA-sAqU.js.map} +1 -1
- package/dist/assets/hierarchy-CZorhmS7.js +2 -0
- package/dist/assets/{hierarchy-DF9lzUjz.js.map → hierarchy-CZorhmS7.js.map} +1 -1
- package/dist/assets/immer-B7fdkLVi.js +2 -0
- package/dist/assets/immer-B7fdkLVi.js.map +1 -0
- package/dist/assets/index-BABen-rU.js +2 -0
- package/dist/assets/index-BABen-rU.js.map +1 -0
- package/dist/assets/index-BGLRovL6.js +2 -0
- package/dist/assets/index-BGLRovL6.js.map +1 -0
- package/dist/assets/index-BPzqpd9P.js +2 -0
- package/dist/assets/{index-DJsZccoO.js.map → index-BPzqpd9P.js.map} +1 -1
- package/dist/assets/index-BUYA3Tes.js +40 -0
- package/dist/assets/index-BUYA3Tes.js.map +1 -0
- package/dist/assets/index-Bl_iRlKL.js +2 -0
- package/dist/assets/index-Bl_iRlKL.js.map +1 -0
- package/dist/assets/index-BpDkQSTy.js +2 -0
- package/dist/assets/{index-BdmJimiZ.js.map → index-BpDkQSTy.js.map} +1 -1
- package/dist/assets/index-CaiaVpxa.js +2 -0
- package/dist/assets/index-CaiaVpxa.js.map +1 -0
- package/dist/assets/index-CsGKSjOd.js +2 -0
- package/dist/assets/index-CsGKSjOd.js.map +1 -0
- package/dist/assets/index-D-dbw3Qx.js +2 -0
- package/dist/assets/{index-1ErFJbDw.js.map → index-D-dbw3Qx.js.map} +1 -1
- package/dist/assets/index-DCiH936w.js +2 -0
- package/dist/assets/{index-Bv8hyN9u.js.map → index-DCiH936w.js.map} +1 -1
- package/dist/assets/index-DDivWD4R.js +2 -0
- package/dist/assets/index-DDivWD4R.js.map +1 -0
- package/dist/assets/index-DpJKJe06.js +2 -0
- package/dist/assets/index-DpJKJe06.js.map +1 -0
- package/dist/assets/{index-B0D_rfGi.js → index-DqHVrEeL.js} +2 -2
- package/dist/assets/{index-B0D_rfGi.js.map → index-DqHVrEeL.js.map} +1 -1
- package/dist/assets/index-PlVWOW99.css +1 -0
- package/dist/assets/index-_mf2naQd.js +2 -0
- package/dist/assets/index-_mf2naQd.js.map +1 -0
- package/dist/assets/{index-9Ra4Lmds.js → index-c0qeY2gs.js} +3 -3
- package/dist/assets/{index-9Ra4Lmds.js.map → index-c0qeY2gs.js.map} +1 -1
- package/dist/assets/index-p--SDqro.js +2 -0
- package/dist/assets/{index-B5-Qczd9.js.map → index-p--SDqro.js.map} +1 -1
- package/dist/assets/index.esm-CTDJ8Wko.js +2 -0
- package/dist/assets/index.esm-CTDJ8Wko.js.map +1 -0
- package/dist/assets/jsx-runtime-D_zvdyIk.js +10 -0
- package/dist/assets/jsx-runtime-D_zvdyIk.js.map +1 -0
- package/dist/assets/model-info-form-pKQBCJu4.js +2 -0
- package/dist/assets/{model-info-form-VtbYsjrH.js.map → model-info-form-pKQBCJu4.js.map} +1 -1
- package/dist/assets/model-merger-vEOkdVdS.js +2 -0
- package/dist/assets/model-merger-vEOkdVdS.js.map +1 -0
- package/dist/assets/new-admin-section-dialog-F58HZ0yO.js +2 -0
- package/dist/assets/new-admin-section-dialog-F58HZ0yO.js.map +1 -0
- package/dist/assets/new-app-dialog-DPQv-mvi.js +2 -0
- package/dist/assets/new-app-dialog-DPQv-mvi.js.map +1 -0
- package/dist/assets/new-enum-dialog-xVvneRQN.js +2 -0
- package/dist/assets/{new-enum-dialog-B0QcIWdY.js.map → new-enum-dialog-xVvneRQN.js.map} +1 -1
- package/dist/assets/new-model-dialog-ApenxGWq.js +2 -0
- package/dist/assets/{new-model-dialog-CM2dJ8Iv.js.map → new-model-dialog-ApenxGWq.js.map} +1 -1
- package/dist/assets/route-1RLqcpwJ.js +2 -0
- package/dist/assets/{route-DmdFbZkw.js.map → route-1RLqcpwJ.js.map} +1 -1
- package/dist/assets/route-9nRSk82v.js +2 -0
- package/dist/assets/route-9nRSk82v.js.map +1 -0
- package/dist/assets/route-B5_zLW88.js +2 -0
- package/dist/assets/{route-CAp89B2q.js.map → route-B5_zLW88.js.map} +1 -1
- package/dist/assets/route-BPsno3Cl.js +2 -0
- package/dist/assets/route-BPsno3Cl.js.map +1 -0
- package/dist/assets/route-BW0F_EH4.js +2 -0
- package/dist/assets/{route-DcsVxxui.js.map → route-BW0F_EH4.js.map} +1 -1
- package/dist/assets/route-C1hyfOXp.js +2 -0
- package/dist/assets/route-C1hyfOXp.js.map +1 -0
- package/dist/assets/route-CH7VQVwb.js +2 -0
- package/dist/assets/route-CH7VQVwb.js.map +1 -0
- package/dist/assets/route-CpoiDvOD.js +2 -0
- package/dist/assets/route-CpoiDvOD.js.map +1 -0
- package/dist/assets/route-Dq2UgkxS.js +2 -0
- package/dist/assets/{route-BsIUCKz1.js.map → route-Dq2UgkxS.js.map} +1 -1
- package/dist/assets/route-z54yq2nP.js +2 -0
- package/dist/assets/route-z54yq2nP.js.map +1 -0
- package/dist/assets/service-Cv-U7NUv.js +2 -0
- package/dist/assets/service-Cv-U7NUv.js.map +1 -0
- package/dist/assets/sortBy-C9bvycg5.js +2 -0
- package/dist/assets/sortBy-C9bvycg5.js.map +1 -0
- package/dist/assets/template-extractor-ElrbBsVj.js +2 -0
- package/dist/assets/{template-extractor-DEU0CX0Y.js.map → template-extractor-ElrbBsVj.js.map} +1 -1
- package/dist/assets/{theme-builder-La1nKR0K.js → theme-builder-Butjmy7L.js} +6 -6
- package/dist/assets/{theme-builder-La1nKR0K.js.map → theme-builder-Butjmy7L.js.map} +1 -1
- package/dist/assets/{use-definition-schema-CuFFJIzk.js → use-definition-schema-e7us6WfR.js} +2 -2
- package/dist/assets/{use-definition-schema-CuFFJIzk.js.map → use-definition-schema-e7us6WfR.js.map} +1 -1
- package/dist/assets/use-enum-form-CEyTBPQn.js +2 -0
- package/dist/assets/{use-enum-form-DKD2EDHZ.js.map → use-enum-form-CEyTBPQn.js.map} +1 -1
- package/dist/assets/use-model-form-Ch_tz0Rd.js +2 -0
- package/dist/assets/{use-model-form-BQa-PiE_.js.map → use-model-form-Ch_tz0Rd.js.map} +1 -1
- package/dist/assets/words-Cs2RBKRm.js +2 -0
- package/dist/assets/words-Cs2RBKRm.js.map +1 -0
- package/dist/index.html +11 -8
- package/package.json +11 -11
- package/dist/assets/-constants-CqYT9Sad.js +0 -4
- package/dist/assets/-constants-CqYT9Sad.js.map +0 -1
- package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib/web-CEscUEnR.js +0 -2
- package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib-CzpSl25Z.js +0 -5
- package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib-CzpSl25Z.js.map +0 -1
- package/dist/assets/__federation_shared_@baseplate-dev/ui-components-Bpztr-cx.js +0 -46
- package/dist/assets/__federation_shared_@baseplate-dev/ui-components-Bpztr-cx.js.map +0 -1
- package/dist/assets/__federation_shared_react-CTQ9xfiH.js +0 -2
- package/dist/assets/__federation_shared_react-dom-DPv53nVg.js +0 -2
- package/dist/assets/_virtual___federation_fn_import-BLYgPlMt.js +0 -2
- package/dist/assets/backend-hJNcdERv.js +0 -2
- package/dist/assets/badge-with-type-label-CezAtjFy.js +0 -2
- package/dist/assets/edit._id-bMpe6S3O.js +0 -2
- package/dist/assets/edit._id-bMpe6S3O.js.map +0 -1
- package/dist/assets/enum-info-form-xlZ2HO8I.js +0 -2
- package/dist/assets/graphql-D3J4ZWXL.js +0 -2
- package/dist/assets/hierarchy-DF9lzUjz.js +0 -2
- package/dist/assets/immer-BOh2djD_.js +0 -2
- package/dist/assets/immer-BOh2djD_.js.map +0 -1
- package/dist/assets/index-1ErFJbDw.js +0 -2
- package/dist/assets/index-37eYMUXo.js +0 -2
- package/dist/assets/index-37eYMUXo.js.map +0 -1
- package/dist/assets/index-B5-Qczd9.js +0 -2
- package/dist/assets/index-BLuLGksP.js +0 -2
- package/dist/assets/index-BLuLGksP.js.map +0 -1
- package/dist/assets/index-BPK2SbiO.js +0 -2
- package/dist/assets/index-BPK2SbiO.js.map +0 -1
- package/dist/assets/index-BdmJimiZ.js +0 -2
- package/dist/assets/index-Bv8hyN9u.js +0 -2
- package/dist/assets/index-C15I7WFi.js +0 -2
- package/dist/assets/index-C15I7WFi.js.map +0 -1
- package/dist/assets/index-C_wN4CIq.js +0 -58
- package/dist/assets/index-C_wN4CIq.js.map +0 -1
- package/dist/assets/index-DBOJRz5n.css +0 -1
- package/dist/assets/index-DJsZccoO.js +0 -2
- package/dist/assets/index-DwyYddxl.js +0 -2
- package/dist/assets/index-DwyYddxl.js.map +0 -1
- package/dist/assets/index-P-wtG1LL.js +0 -2
- package/dist/assets/index-P-wtG1LL.js.map +0 -1
- package/dist/assets/index.esm-DcyGeCKA.js +0 -10
- package/dist/assets/index.esm-DcyGeCKA.js.map +0 -1
- package/dist/assets/model-info-form-VtbYsjrH.js +0 -2
- package/dist/assets/model-merger-qJqD9I2_.js +0 -2
- package/dist/assets/model-merger-qJqD9I2_.js.map +0 -1
- package/dist/assets/new-app-dialog-CTtQ52jO.js +0 -2
- package/dist/assets/new-app-dialog-CTtQ52jO.js.map +0 -1
- package/dist/assets/new-enum-dialog-B0QcIWdY.js +0 -2
- package/dist/assets/new-model-dialog-CM2dJ8Iv.js +0 -2
- package/dist/assets/route-B34jnFQF.js +0 -2
- package/dist/assets/route-B34jnFQF.js.map +0 -1
- package/dist/assets/route-BRBmSLMi.js +0 -2
- package/dist/assets/route-BRBmSLMi.js.map +0 -1
- package/dist/assets/route-BsIUCKz1.js +0 -2
- package/dist/assets/route-CAp89B2q.js +0 -2
- package/dist/assets/route-DcsVxxui.js +0 -2
- package/dist/assets/route-DmdFbZkw.js +0 -2
- package/dist/assets/route-Dpmx4lrA.js +0 -2
- package/dist/assets/route-Dpmx4lrA.js.map +0 -1
- package/dist/assets/route-T4J_Uk-9.js +0 -2
- package/dist/assets/route-T4J_Uk-9.js.map +0 -1
- package/dist/assets/route-w8_2x1VY.js +0 -2
- package/dist/assets/route-w8_2x1VY.js.map +0 -1
- package/dist/assets/service-Bgm1ICPI.js +0 -2
- package/dist/assets/service-Bgm1ICPI.js.map +0 -1
- package/dist/assets/template-extractor-DEU0CX0Y.js +0 -2
- package/dist/assets/use-enum-form-DKD2EDHZ.js +0 -2
- package/dist/assets/use-model-form-BQa-PiE_.js +0 -2
- package/dist/assets/utils-BYjOwi1b.js +0 -2
- package/dist/assets/utils-BYjOwi1b.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const X="[0-9A-Za-z-]+",C=`(?:\\+(${X}(?:\\.${X})*))`,b="0|[1-9]\\d*",w="[0-9]+",F="\\d*[a-zA-Z-][a-zA-Z0-9-]*",q=`(?:${w}|${F})`,D=`(?:-?(${q}(?:\\.${q})*))`,z=`(?:${b}|${F})`,k=`(?:-(${z}(?:\\.${z})*))`,T=`${b}|x|X|\\*`,_=`[v=\\s]*(${T})(?:\\.(${T})(?:\\.(${T})(?:${k})?${C}?)?)?`,J=`^\\s*(${_})\\s+-\\s+(${_})\\s*$`,Q=`(${w})\\.(${w})\\.(${w})`,W=`[v=\\s]*${Q}${D}?${C}?`,P="((?:<|>)?=?)",Y=`(\\s*)${P}\\s*(${W}|${_})`,B="(?:~>?)",j=`(\\s*)${B}\\s+`,G="(?:\\^)",A=`(\\s*)${G}\\s+`,m="(<|>)?=?\\s*\\*",ee=`^${G}${_}$`,re=`(${b})\\.(${b})\\.(${b})`,te=`v?${re}${k}?${C}?`,ne=`^${B}${_}$`,se=`^${P}\\s*${_}$`,ie=`^${P}\\s*(${te})$|^$`,ue="^\\s*>=\\s*0.0.0\\s*$";function o(e){return new RegExp(e)}function $(e){return!e||e.toLowerCase()==="x"||e==="*"}function H(...e){return n=>e.reduce((i,r)=>r(i),n)}function E(e){return e.match(o(ie))}function S(e,n,i,r){const t=`${e}.${n}.${i}`;return r?`${t}-${r}`:t}function $e(e){return e.replace(o(J),(n,i,r,t,s,u,c,a,f,l,R,p)=>($(r)?i="":$(t)?i=`>=${r}.0.0`:$(s)?i=`>=${r}.${t}.0`:i=`>=${i}`,$(f)?a="":$(l)?a=`<${+f+1}.0.0-0`:$(R)?a=`<${f}.${+l+1}.0-0`:p?a=`<=${f}.${l}.${R}-${p}`:a=`<=${a}`,`${i} ${a}`.trim()))}function ce(e){return e.replace(o(Y),"$1$2$3")}function ae(e){return e.replace(o(j),"$1~")}function fe(e){return e.replace(o(A),"$1^")}function le(e){return e.trim().split(/\s+/).map(n=>n.replace(o(ee),(i,r,t,s,u)=>$(r)?"":$(t)?`>=${r}.0.0 <${+r+1}.0.0-0`:$(s)?r==="0"?`>=${r}.${t}.0 <${r}.${+t+1}.0-0`:`>=${r}.${t}.0 <${+r+1}.0.0-0`:u?r==="0"?t==="0"?`>=${r}.${t}.${s}-${u} <${r}.${t}.${+s+1}-0`:`>=${r}.${t}.${s}-${u} <${r}.${+t+1}.0-0`:`>=${r}.${t}.${s}-${u} <${+r+1}.0.0-0`:r==="0"?t==="0"?`>=${r}.${t}.${s} <${r}.${t}.${+s+1}-0`:`>=${r}.${t}.${s} <${r}.${+t+1}.0-0`:`>=${r}.${t}.${s} <${+r+1}.0.0-0`)).join(" ")}function oe(e){return e.trim().split(/\s+/).map(n=>n.replace(o(ne),(i,r,t,s,u)=>$(r)?"":$(t)?`>=${r}.0.0 <${+r+1}.0.0-0`:$(s)?`>=${r}.${t}.0 <${r}.${+t+1}.0-0`:u?`>=${r}.${t}.${s}-${u} <${r}.${+t+1}.0-0`:`>=${r}.${t}.${s} <${r}.${+t+1}.0-0`)).join(" ")}function pe(e){return e.split(/\s+/).map(n=>n.trim().replace(o(se),(i,r,t,s,u,c)=>{const a=$(t),f=a||$(s),l=f||$(u);return r==="="&&l&&(r=""),c="",a?r===">"||r==="<"?"<0.0.0-0":"*":r&&l?(f&&(s=0),u=0,r===">"?(r=">=",f?(t=+t+1,s=0,u=0):(s=+s+1,u=0)):r==="<="&&(r="<",f?t=+t+1:s=+s+1),r==="<"&&(c="-0"),`${r+t}.${s}.${u}${c}`):f?`>=${t}.0.0${c} <${+t+1}.0.0-0`:l?`>=${t}.${s}.0${c} <${t}.${+s+1}.0-0`:i})).join(" ")}function de(e){return e.trim().replace(o(m),"")}function _e(e){return e.trim().replace(o(ue),"")}function h(e,n){return e=+e||e,n=+n||n,e>n?1:e===n?0:-1}function be(e,n){const{preRelease:i}=e,{preRelease:r}=n;if(i===void 0&&r)return 1;if(i&&r===void 0)return-1;if(i===void 0&&r===void 0)return 0;for(let t=0,s=i.length;t<=s;t++){const u=i[t],c=r[t];if(u!==c)return u===void 0&&c===void 0?0:u?c?h(u,c):-1:1}return 0}function v(e,n){return h(e.major,n.major)||h(e.minor,n.minor)||h(e.patch,n.patch)||be(e,n)}function V(e,n){return e.version===n.version}function Re(e,n){switch(e.operator){case"":case"=":return V(e,n);case">":return v(e,n)<0;case">=":return V(e,n)||v(e,n)<0;case"<":return v(e,n)>0;case"<=":return V(e,n)||v(e,n)>0;case void 0:return!0;default:return!1}}function ve(e){return H(le,oe,pe,de)(e)}function we(e){return H($e,ce,ae,fe)(e.trim()).split(/\s+/).join(" ")}function he(e,n){if(!e)return!1;const t=we(n).split(" ").map(p=>ve(p)).join(" ").split(/\s+/).map(p=>_e(p)),s=E(e);if(!s)return!1;const[,u,,c,a,f,l]=s,R={version:S(c,a,f,l),major:c,minor:a,patch:f,preRelease:l?.split(".")};for(const p of t){const y=E(p);if(!y)return!1;const[,M,,I,O,U,L]=y,N={operator:M,version:S(I,O,U,L),major:I,minor:O,patch:U,preRelease:L?.split(".")};if(!Re(N,R))return!1}return!0}const Z={},g={react:{get:()=>()=>d(new URL("__federation_shared_react-CTQ9xfiH.js",import.meta.url).href),import:!0},"react-dom":{get:()=>()=>d(new URL("__federation_shared_react-dom-DPv53nVg.js",import.meta.url).href),import:!0},zod:{get:()=>()=>d(new URL("__federation_shared_zod-DQ8g46gT.js",import.meta.url).href),import:!0},"@baseplate-dev/project-builder-lib":{get:()=>()=>d(new URL("__federation_shared_@baseplate-dev/project-builder-lib-CzpSl25Z.js",import.meta.url).href),import:!0},"@baseplate-dev/project-builder-lib/web":{get:()=>()=>d(new URL("__federation_shared_@baseplate-dev/project-builder-lib/web-CEscUEnR.js",import.meta.url).href),import:!0},"@baseplate-dev/ui-components":{get:()=>()=>d(new URL("__federation_shared_@baseplate-dev/ui-components-Bpztr-cx.js",import.meta.url).href),import:!0}},x=Object.create(null);async function Le(e,n="default"){return x[e]?new Promise(i=>i(x[e])):await ge(e,n)||xe(e)}async function d(e){return Z[e]??=import(e),Z[e]}async function ge(e,n){let i=null;if(globalThis?.__federation_shared__?.[n]?.[e]){const r=globalThis.__federation_shared__[n][e],t=Object.keys(r)[0],s=Object.values(r)[0];g[e]?.requiredVersion?he(t,g[e].requiredVersion)?i=await(await s.get())():console.log(`provider support ${e}(${t}) is not satisfied requiredVersion(\${moduleMap[name].requiredVersion})`):i=await(await s.get())()}if(i)return K(i,e)}async function xe(e){if(g[e]?.import){let n=await(await g[e].get())();return K(n,e)}else console.error("consumer config import=false,so cant use callback shared module")}function K(e,n){return typeof e.default=="function"?(Object.keys(e).forEach(i=>{i!=="default"&&(e.default[i]=e[i])}),x[n]=e.default,e.default):(e.default&&(e=Object.assign({},e.default,e)),x[n]=e,e)}export{Le as i};
|
|
2
|
-
//# sourceMappingURL=_virtual___federation_fn_import-BLYgPlMt.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as s}from"./_virtual___federation_fn_import-BLYgPlMt.js";import{j as e}from"./index.esm-DcyGeCKA.js";import{g as k,s as g}from"./index-C_wN4CIq.js";import{u as v}from"./use-definition-schema-CuFFJIzk.js";const{createBackendAppSchema:L}=await s("@baseplate-dev/project-builder-lib"),{useBlockUnsavedChangesNavigate:E,useProjectDefinition:B,useResettableForm:P}=await s("@baseplate-dev/project-builder-lib/web"),{FormActionBar:w,InputFieldController:l,SectionList:y,SectionListSection:p,SectionListSectionContent:d,SectionListSectionDescription:b,SectionListSectionHeader:m,SectionListSectionTitle:u,SwitchFieldController:i}=await s("@baseplate-dev/ui-components"),N=function(){const{saveDefinitionWithFeedback:x}=B(),{backendDefinition:n}=k.useLoaderData(),j=v(L),o=P({resolver:g(j),values:n}),{control:a,handleSubmit:h,reset:S}=o,t=h(f=>x(r=>{r.apps=r.apps.map(c=>c.id===n.id?f:c)}));return E({control:a,reset:S,onSubmit:t}),e.jsxs("form",{className:"w-full max-w-7xl space-y-4 px-4",onSubmit:t,children:[e.jsxs(y,{children:[e.jsxs(p,{children:[e.jsxs(m,{children:[e.jsx(u,{children:"General"}),e.jsx(b,{children:"Basic configuration for your backend application."})]}),e.jsxs(d,{className:"space-y-6",children:[e.jsx(l,{label:"Name",control:a,name:"name"}),e.jsx(l,{label:"Package Location (optional)",placeholder:"e.g. packages/backend",control:a,name:"packageLocation"})]})]}),e.jsxs(p,{children:[e.jsxs(m,{children:[e.jsx(u,{children:"Configuration"}),e.jsx(b,{children:"Enable or disable external services and features for your backend application."})]}),e.jsx(d,{children:e.jsxs("div",{className:"space-y-4",children:[e.jsx(i,{control:a,name:"enableStripe",label:"Stripe",description:"Enable Stripe for payment processing"}),e.jsx(i,{control:a,name:"enablePostmark",label:"Postmark",description:"Enable Postmark for email delivery"}),e.jsx(i,{control:a,name:"enableRedis",label:"Redis",description:"Enable Redis for caching and session storage"}),e.jsx(i,{control:a,name:"enableBullQueue",label:"Bull Queue",description:"Enable Bull Queue for background job processing"}),e.jsx(i,{control:a,name:"enableSubscriptions",label:"GraphQL Subscriptions",description:"Enable GraphQL Subscriptions for real-time updates"}),e.jsx(i,{control:a,name:"enableAxios",label:"Axios",description:"Enable Axios for HTTP requests"})]})})]})]}),e.jsx(w,{form:o})]})};export{N as component};
|
|
2
|
-
//# sourceMappingURL=backend-hJNcdERv.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as d}from"./_virtual___federation_fn_import-BLYgPlMt.js";import{j as o}from"./index.esm-DcyGeCKA.js";import{c as f}from"./index-C15I7WFi.js";function g(e){const t=/([_\s-]*[A-Z]+(?![^\s\-_A-Z])|[_\s-]*[A-Z]*[^\s\-_A-Z]+)/g;return e.match(t)??[]}function a(e,t){return e.length<=t?e:`${e.slice(0,Math.max(0,t-3))}...`}function p(e,t=20){if(e.length<=t)return e;if(e.length<=3)return"...";const n=g(e);if(n.length===1)return a(e,t);const s=n[0],l=(n.at(-1)??"").replace(/^[_\s-]+/,""),c=l.length;if(s.length+c+3>t)return a(e,t);let i=s;for(let r=1;r<n.length-1;r++){const u=n[r].length;if(i.length+u+c+3>t)break;i+=n[r]}return`${i}...${l}`}const{Badge:m}=await d("@baseplate-dev/ui-components");function b({className:e,children:t,type:n}){return o.jsxs("div",{className:f("flex h-8 w-full items-center justify-between gap-4 rounded-md border bg-muted px-3 text-sm",e),children:[o.jsx("div",{children:t}),o.jsx(m,{variant:"outline",className:"text-muted-foreground",children:p(n,20)})]})}export{b as B};
|
|
2
|
-
//# sourceMappingURL=badge-with-type-label-CezAtjFy.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as o}from"./_virtual___federation_fn_import-BLYgPlMt.js";import{j as e}from"./index.esm-DcyGeCKA.js";import{R as c,c as w,N as P,e as D,l as f}from"./index-C_wN4CIq.js";import{l as v}from"./utils-BYjOwi1b.js";const{pluginEntityType:S,PluginUtils:y,webConfigSpec:m}=await o("@baseplate-dev/project-builder-lib"),{useProjectDefinition:N}=await o("@baseplate-dev/project-builder-lib/web"),{Button:M,DropdownMenu:F,DropdownMenuContent:W,DropdownMenuGroup:A,DropdownMenuItem:E,DropdownMenuTrigger:I,useConfirmDialog:R}=await o("@baseplate-dev/ui-components"),{useMemo:T}=await o("react"),H=function(){const{definitionContainer:s,pluginContainer:u,schemaParserContext:d,saveDefinitionWithFeedbackSync:x,isSavingDefinition:h}=N(),{id:n}=c.useParams(),{requestConfirm:b}=R(),p=w({from:c.fullPath}),{plugin:a}=c.useLoaderData(),l=y.byId(s.definition,n),g=T(()=>{if(!n)return;const t=u.getPluginSpec(m).getWebConfigComponent(n);return t||v(d.pluginStore,a.metadata,s.definition).getPluginSpec(m).getWebConfigComponent(n)},[n,d,s,u,a]),{metadata:i}=a;if(!g)return e.jsx(P,{});function C(){x(r=>{r.plugins=(r.plugins??[]).filter(t=>t.id!==S.idFromKey(i.id))},{successMessage:`Disabled ${i.displayName}!`,onSuccess:()=>{p({to:"/plugins"}).catch(f)}})}function j(){l||p({to:"/plugins"}).catch(f)}return e.jsx("div",{className:"relative flex h-full flex-1 flex-col gap-4 overflow-hidden",children:e.jsxs("div",{className:"flex flex-1 flex-col gap-4 overflow-y-auto p-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("h1",{children:[i.displayName," Plugin"]}),l&&e.jsxs(F,{children:[e.jsx(I,{asChild:!0,children:e.jsx(M,{variant:"ghost",size:"icon",children:e.jsx(D,{"aria-label":"More Actions"})})}),e.jsx(W,{children:e.jsx(A,{children:e.jsx(E,{disabled:h,onSelect:()=>{b({title:"Disable Plugin",content:`Are you sure you want to disable the ${i.displayName} plugin?`,onConfirm:C})},children:"Disable Plugin"})})})]})]}),e.jsx(g,{definition:l,metadata:i,onSave:j})]})})};export{H as component};
|
|
2
|
-
//# sourceMappingURL=edit._id-bMpe6S3O.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"edit._id-bMpe6S3O.js","sources":["../../src/routes/plugins/edit.$id.tsx?tsr-split=component"],"sourcesContent":["import type React from 'react';\n\nimport {\n pluginEntityType,\n PluginUtils,\n webConfigSpec,\n} from '@baseplate-dev/project-builder-lib';\nimport { useProjectDefinition } from '@baseplate-dev/project-builder-lib/web';\nimport {\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuTrigger,\n useConfirmDialog,\n} from '@baseplate-dev/ui-components';\nimport { createFileRoute, notFound, useNavigate } from '@tanstack/react-router';\nimport { useMemo } from 'react';\nimport { HiDotsVertical } from 'react-icons/hi';\n\nimport { NotFoundCard } from '#src/components/index.js';\nimport { logAndFormatError } from '#src/services/error-formatter.js';\n\nimport { loadPluginImplementationStoreWithNewPlugin } from './-components/utils.js';\n\nexport const Route = createFileRoute('/plugins/edit/$id')({\n component: PluginConfigPage,\n beforeLoad: ({ params: { id }, context: { schemaParserContext } }) => {\n const { availablePlugins } = schemaParserContext.pluginStore;\n const plugin = availablePlugins.find((p) => p.metadata.id === id);\n if (!plugin) return {};\n return {\n getTitle: () => plugin.metadata.displayName,\n plugin,\n };\n },\n loader: ({ context: { plugin } }) => {\n if (!plugin) throw notFound();\n return { plugin };\n },\n});\n\nfunction PluginConfigPage(): React.JSX.Element {\n const {\n definitionContainer,\n pluginContainer,\n schemaParserContext,\n saveDefinitionWithFeedbackSync,\n isSavingDefinition,\n } = useProjectDefinition();\n const { id } = Route.useParams();\n const { requestConfirm } = useConfirmDialog();\n const navigate = useNavigate({ from: Route.fullPath });\n const { plugin } = Route.useLoaderData();\n\n const pluginDefinition = PluginUtils.byId(definitionContainer.definition, id);\n\n const Container = useMemo(() => {\n if (!id) {\n return;\n }\n\n const pluginSpec = pluginContainer.getPluginSpec(webConfigSpec);\n const webConfigComponent = pluginSpec.getWebConfigComponent(id);\n if (webConfigComponent) {\n return webConfigComponent;\n }\n const newPluginContainer = loadPluginImplementationStoreWithNewPlugin(\n schemaParserContext.pluginStore,\n plugin.metadata,\n definitionContainer.definition,\n );\n\n return newPluginContainer\n .getPluginSpec(webConfigSpec)\n .getWebConfigComponent(id);\n }, [id, schemaParserContext, definitionContainer, pluginContainer, plugin]);\n\n const { metadata } = plugin;\n\n if (!Container) {\n return <NotFoundCard />;\n }\n\n function onDisablePlugin(): void {\n saveDefinitionWithFeedbackSync(\n (draft) => {\n draft.plugins = (draft.plugins ?? []).filter(\n (p) => p.id !== pluginEntityType.idFromKey(metadata.id),\n );\n },\n {\n successMessage: `Disabled ${metadata.displayName}!`,\n onSuccess: () => {\n navigate({ to: '/plugins' }).catch(logAndFormatError);\n },\n },\n );\n }\n\n function onSave(): void {\n if (!pluginDefinition) {\n navigate({ to: '/plugins' }).catch(logAndFormatError);\n }\n }\n\n return (\n <div className=\"relative flex h-full flex-1 flex-col gap-4 overflow-hidden\">\n <div className=\"flex flex-1 flex-col gap-4 overflow-y-auto p-4\">\n <div className=\"flex items-center justify-between\">\n <h1>{metadata.displayName} Plugin</h1>\n {pluginDefinition && (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\">\n <HiDotsVertical aria-label=\"More Actions\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent>\n <DropdownMenuGroup>\n <DropdownMenuItem\n disabled={isSavingDefinition}\n onSelect={() => {\n requestConfirm({\n title: 'Disable Plugin',\n content: `Are you sure you want to disable the ${metadata.displayName} plugin?`,\n onConfirm: onDisablePlugin,\n });\n }}\n >\n Disable Plugin\n </DropdownMenuItem>\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n </div>\n <Container\n definition={pluginDefinition}\n metadata={metadata}\n onSave={onSave}\n />\n </div>\n </div>\n );\n}\n"],"names":["pluginEntityType","PluginUtils","webConfigSpec","importShared","useProjectDefinition","Button","DropdownMenu","DropdownMenuContent","DropdownMenuGroup","DropdownMenuItem","DropdownMenuTrigger","useConfirmDialog","useMemo","SplitComponent","definitionContainer","pluginContainer","schemaParserContext","saveDefinitionWithFeedbackSync","isSavingDefinition","id","Route","useParams","requestConfirm","navigate","useNavigate","from","fullPath","plugin","useLoaderData","pluginDefinition","byId","definition","Container","webConfigComponent","getPluginSpec","getWebConfigComponent","loadPluginImplementationStoreWithNewPlugin","pluginStore","metadata","NotFoundCard","onDisablePlugin","draft","plugins","filter","p","idFromKey","successMessage","displayName","onSuccess","to","catch","logAndFormatError","onSave","jsxs","jsx","HiDotsVertical","title","content","onConfirm"],"mappings":"0NAEA,KAAA,CAAA,iBAAAA,EAAA,YAAAC,EAAA,cAAAC,CAAA,EAAA,MAAAC,EAAA,oCAAA,EAKA,CAAA,qBAAAC,CAAA,EAAA,MAAAD,EAAA,wCAAA,EACA,CAAA,OAAAE,EAAA,aAAAC,EAAA,oBAAAC,EAAA,kBAAAC,EAAA,iBAAAC,EAAA,oBAAAC,EAAA,iBAAAC,CAAA,EAAA,MAAAR,EAAA,8BAAA,EAUA,CAAA,QAAAS,CAAA,EAAA,MAAAT,EAAA,OAAA,EAMoFU,EAAA,UAmBrC,CACvC,KAAA,CACJC,oBAAAA,EACAC,gBAAAA,EACAC,oBAAAA,EACAC,+BAAAA,EACAC,mBAAAA,GACEd,EAAqB,EACnB,CAAEe,GAAAA,CAAAA,EAAOC,EAAMC,UAAU,EACzB,CAAEC,eAAAA,GAAmBX,EAAiB,EACtCY,EAAWC,EAAY,CAAEC,KAAML,EAAMM,QAAAA,CAAU,EAC/C,CAAEC,OAAAA,CAAAA,EAAWP,EAAMQ,cAAc,EAEjCC,EAAmB5B,EAAY6B,KAAKhB,EAAoBiB,WAAYZ,CAAE,EAEtEa,EAAYpB,EAAQ,IAAM,CAC9B,GAAI,CAACO,EACH,OAIIc,MAAAA,EADalB,EAAgBmB,cAAchC,CAAa,EACxBiC,sBAAsBhB,CAAE,EAC9D,OAAIc,GAGuBG,EACzBpB,EAAoBqB,YACpBV,EAAOW,SACPxB,EAAoBiB,UACtB,EAGGG,cAAchC,CAAa,EAC3BiC,sBAAsBhB,CAAE,CAAA,EAC1B,CAACA,EAAIH,EAAqBF,EAAqBC,EAAiBY,CAAM,CAAC,EAEpE,CAAEW,SAAAA,CAAAA,EAAaX,EAErB,GAAI,CAACK,EACH,aAAQO,EAAe,EAAA,EAGzB,SAASC,GAAwB,CAC/BvB,EACawB,GAAA,CACTA,EAAMC,SAAWD,EAAMC,SAAW,CAAA,GAAIC,OAC7BC,GAAAA,EAAEzB,KAAOnB,EAAiB6C,UAAUP,EAASnB,EAAE,CACxD,CAAA,EAEF,CACE2B,eAAgB,YAAYR,EAASS,WAAW,IAChDC,UAAWA,IAAM,CACNzB,EAAA,CAAE0B,GAAI,UAAA,CAAY,EAAEC,MAAMC,CAAiB,CAAA,CACtD,CAEJ,CAAA,CAGF,SAASC,GAAe,CACjBvB,GACMN,EAAA,CAAE0B,GAAI,UAAA,CAAY,EAAEC,MAAMC,CAAiB,CACtD,CAGF,aACG,MAAI,CAAA,UAAU,6DACb,SAACE,EAAA,KAAA,MAAA,CAAI,UAAU,iDACb,SAAA,CAACA,EAAAA,KAAA,MAAA,CAAI,UAAU,oCACb,SAAA,CAAAA,OAAC,KAAIf,CAAAA,SAAAA,CAASS,EAAAA,YAAY,SAAA,EAAO,EAChClB,UACEvB,EACC,CAAA,SAAA,CAAAgD,MAAC5C,EAAoB,CAAA,QAAO,GAC1B,SAAA4C,EAAA,IAACjD,GAAO,QAAQ,QAAQ,KAAK,OAC3B,SAACiD,EAAAA,IAAAC,EAAA,CAAe,aAAW,cAAA,CAAc,CAC3C,CAAA,EACF,EACAD,EAAAA,IAAC/C,GACC,SAAC+C,EAAAA,IAAA9C,EAAA,CACC,eAACC,EACC,CAAA,SAAUS,EACV,SAAU,IAAM,CACCI,EAAA,CACbkC,MAAO,iBACPC,QAAS,wCAAwCnB,EAASS,WAAW,WACrEW,UAAWlB,CAAAA,CACZ,CACH,EAAE,SAGJ,iBAAA,CAAA,CACF,CACF,CAAA,CAAA,CACF,CAAA,CAAA,EAEJ,EACCc,EAAA,IAAAtB,EAAA,CACC,WAAYH,EACZ,SAAAS,EACA,OAAAc,CAAe,CAAA,CAAA,CAAA,CAEnB,CACF,CAAA,CAEJ"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as t}from"./_virtual___federation_fn_import-BLYgPlMt.js";import{j as e}from"./index.esm-DcyGeCKA.js";import{c as r}from"./index-C15I7WFi.js";const{FeatureComboboxFieldController:s}=await t("@baseplate-dev/project-builder-lib/web"),{InputFieldController:n}=await t("@baseplate-dev/ui-components");function c({className:o,control:a}){return e.jsxs("div",{className:r("max-w-md space-y-4",o),children:[e.jsx(n,{label:"Name",control:a,name:"name",description:"The name of the enum (PascalCase)"}),e.jsx(s,{label:"Feature",control:a,name:"featureRef",description:"The feature this enum belongs to (dash-case)",canCreate:!0})]})}export{c as E};
|
|
2
|
-
//# sourceMappingURL=enum-info-form-xlZ2HO8I.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as o}from"./_virtual___federation_fn_import-BLYgPlMt.js";import{e as m,j as e,u as L}from"./index.esm-DcyGeCKA.js";import{u as y,S as V,E as K}from"./-constants-CqYT9Sad.js";import{u as W}from"./use-model-form-BQa-PiE_.js";import{L as Z,v as Y}from"./index-C_wN4CIq.js";import{E as I,G as P}from"./index-C15I7WFi.js";import{B as w}from"./badge-with-type-label-CezAtjFy.js";const{authConfigSpec:J}=await o("@baseplate-dev/project-builder-lib"),{useProjectDefinition:X}=await o("@baseplate-dev/project-builder-lib/web"),{Alert:ee,AlertDescription:te,AlertTitle:ie,MultiSwitchField:N,SectionListSection:se,SectionListSectionContent:ne,SectionListSectionDescription:le,SectionListSectionHeader:ae,SectionListSectionTitle:oe,SwitchFieldController:R}=await o("@baseplate-dev/ui-components");function ce({control:t,modelKey:a}){const{definition:d,pluginContainer:l}=X(),i=l.getPluginSpecOptional(J)?.getAuthRoles(d).map(b=>({label:b.name,value:b.id})),n=m({control:t,name:"graphql.objectType.enabled"}),c=y(b=>b.service??{}),p=m({control:t,name:"graphql.mutations.create.enabled"}),h=c.create?.enabled,j=m({control:t,name:"graphql.mutations.update.enabled"}),g=c.update?.enabled,u=m({control:t,name:"graphql.mutations.delete.enabled"}),x=c.delete?.enabled;return e.jsxs(se,{children:[e.jsx("div",{children:e.jsxs(ae,{className:"sticky top-2",children:[e.jsx(oe,{children:"Mutations"}),e.jsx(le,{children:"Configure the GraphQL mutations that can be performed on this model."})]})}),e.jsxs(ne,{className:"space-y-8",children:[(!h||!g||!x)&&e.jsxs(ee,{className:"max-w-md",children:[e.jsx(I,{}),e.jsxs(ie,{children:["Service methods disabled (",[!h&&"Create",!g&&"Update",!x&&"Delete"].filter(Boolean).join(", "),")"]}),e.jsxs(te,{children:["Enable the appropriate methods on the"," ",e.jsx(Z,{to:"/data/models/edit/$key/service",params:{key:a},className:"font-semibold",children:"the service tab"})," ","to expose mutations"]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsx(R,{control:t,name:"graphql.mutations.create.enabled",disabled:!n||!h,label:"Create Mutation",description:"Expose the create method in the GraphQL schema, e.g. createUser(input: $input)."}),p&&i&&e.jsx(N.Controller,{control:t,name:"graphql.mutations.create.roles",label:"Allowed Roles",options:i,className:"ml-[52px]"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsx(R,{control:t,name:"graphql.mutations.update.enabled",label:"Update Mutation",disabled:!n||!g,description:"Expose the update method in the GraphQL schema, e.g. updateUser(id: $id, input: $input)."}),j&&i&&e.jsx(N.Controller,{control:t,name:"graphql.mutations.update.roles",label:"Allowed Roles",options:i,className:"ml-[52px]"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(R,{control:t,name:"graphql.mutations.delete.enabled",label:"Delete Mutation",disabled:!n||!x,description:"Expose the delete method in the GraphQL schema, e.g. deleteUser(id: $id)."}),u&&i&&e.jsx(N.Controller,{control:t,name:"graphql.mutations.delete.roles",label:"Allowed Roles",options:i,className:"ml-[52px]"})]})]})]})}function E(t){return P({attr:{viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true"},child:[{tag:"path",attr:{fillRule:"evenodd",d:"M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z",clipRule:"evenodd"},child:[]}]})(t)}function q(t){return P({attr:{viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true"},child:[{tag:"path",attr:{fillRule:"evenodd",d:"M9.47 6.47a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 1 1-1.06 1.06L10 8.06l-3.72 3.72a.75.75 0 0 1-1.06-1.06l4.25-4.25Z",clipRule:"evenodd"},child:[]}]})(t)}const{ModelUtils:de}=await o("@baseplate-dev/project-builder-lib"),{useProjectDefinition:re}=await o("@baseplate-dev/project-builder-lib/web"),{Badge:$,Button:T,Label:D,SectionListSection:pe,SectionListSectionContent:he,SectionListSectionDescription:me,SectionListSectionHeader:ue,SectionListSectionTitle:xe,Switch:F,SwitchFieldController:je}=await o("@baseplate-dev/ui-components"),{useState:M}=await o("react"),be="border-collapse text-left [&_td]:py-1 [&_th]:sticky [&_th]:top-0 [&_th]:bg-background [&_th]:z-10 [&_th]:py-2";function k(t,a,d,l){return d?t.filter(i=>a.includes(i.id)||i.id===l).map(i=>i.id):a.filter(i=>i!==l)}function ge({control:t}){const{definitionContainer:a,definition:d}=re(),l=y(s=>s.id),i=m({control:t,name:"graphql.objectType.enabled"}),n=y(s=>s.model.fields),{field:{value:c=[],onChange:p}}=L({control:t,name:"graphql.objectType.fields"}),h=n.length>10,[j,g]=M(h),u=y(s=>s.model.relations)??[],{field:{value:x=[],onChange:b}}=L({control:t,name:"graphql.objectType.localRelations"}),A=u.length>4,[S,U]=M(A),f=de.getRelationsToModel(d,l),{field:{value:v=[],onChange:B}}=L({control:t,name:"graphql.objectType.foreignRelations"}),O=f.length>4,[C,_]=M(O);return e.jsxs(pe,{children:[e.jsx("div",{children:e.jsxs(ue,{className:"sticky top-2",children:[e.jsx(xe,{children:"Object Type"}),e.jsx(me,{children:"Configure the object type that will be exposed in the GraphQL schema for this model."})]})}),e.jsxs(he,{className:"space-y-4",children:[e.jsx(je,{control:t,name:"graphql.objectType.enabled",label:"Enable Object Type",description:"Must be enabled for queries, mutations, and any relations to this model"}),e.jsxs("table",{className:be,children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:e.jsxs("div",{className:"flex w-80 items-center gap-1",children:[e.jsx(D,{children:"Exposed Fields"}),e.jsxs($,{variant:"outline",className:"mr-5 font-medium text-muted-foreground",children:[c.length,"/",n.length," active"]}),h?e.jsx(T,{onClick:()=>{g(!j)},className:"flex items-center gap-4",title:j?"Expand fields":"Collapse fields",type:"button",variant:"ghost",size:"icon",children:j?e.jsx(E,{}):e.jsx(q,{})}):null]})}),e.jsx("th",{className:"pl-8"})]})}),e.jsxs("tbody",{children:[!j&&n.map(s=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx(w,{type:s.type==="enum"&&s.options?.enumRef?a.nameFromId(s.options.enumRef):V[s.type].label,children:s.name})}),e.jsx("td",{className:"pl-8",children:e.jsx(F,{"aria-label":`Expose ${s.name} field`,disabled:!i,checked:c.includes(s.id),onCheckedChange:r=>{p(k(n,c,r,s.id))}})})]},s.id)),u.length>0?e.jsxs("tr",{children:[e.jsx("th",{children:e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(D,{children:"Exposed Local Relations"}),e.jsxs($,{variant:"outline",className:"mr-5 font-medium text-muted-foreground",children:[x.length,"/",u.length," ","active"]}),A?e.jsx(T,{onClick:()=>{U(!S)},className:"flex items-center gap-4",title:S?"Expand fields":"Collapse fields",type:"button",variant:"ghost",size:"icon",children:S?e.jsx(E,{}):e.jsx(q,{})}):null]})}),e.jsx("th",{})]}):null,!S&&u.map(s=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx(w,{type:a.nameFromId(s.modelRef),children:s.name})}),e.jsx("td",{className:"pl-8",children:e.jsx(F,{"aria-label":`Expose ${s.name} relation`,disabled:!i,checked:x.includes(s.id),onCheckedChange:r=>{b(k(u,x,r,s.id))}})})]},s.id)),f.length>0?e.jsxs("tr",{children:[e.jsx("th",{children:e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(D,{children:"Exposed Foreign Relations"}),e.jsxs($,{variant:"outline",className:"mr-5 font-medium text-muted-foreground",children:[v.length,"/",f.length," ","active"]}),O?e.jsx(T,{onClick:()=>{_(!C)},className:"flex items-center gap-4",title:C?"Expand fields":"Collapse fields",type:"button",variant:"ghost",size:"icon",children:C?e.jsx(E,{}):e.jsx(q,{})}):null]})}),e.jsx("th",{})]}):null,!C&&f.map(({model:s,relation:r})=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx(w,{type:s.name,children:r.foreignRelationName})}),e.jsx("td",{className:"pl-8",children:e.jsx(F,{"aria-label":`Expose ${r.foreignRelationName} relation`,disabled:!i,checked:v.includes(r.foreignId),onCheckedChange:H=>{B(k(f.map(({relation:z})=>({id:z.foreignId})),v,H,r.foreignId))}})})]},r.id))]})]})]})]})}const{authConfigSpec:fe}=await o("@baseplate-dev/project-builder-lib"),{useProjectDefinition:Se}=await o("@baseplate-dev/project-builder-lib/web"),{Alert:Ce,AlertDescription:ye,AlertTitle:ve,MultiSwitchField:G,SectionListSection:Le,SectionListSectionContent:we,SectionListSectionDescription:Ne,SectionListSectionHeader:Re,SectionListSectionTitle:Ee,SwitchFieldController:Q}=await o("@baseplate-dev/ui-components");function qe({control:t}){const{definition:a,pluginContainer:d}=Se(),l=m({control:t,name:"graphql.objectType.enabled"}),i=d.getPluginSpecOptional(fe)?.getAuthRoles(a).map(p=>({label:p.name,value:p.id})),n=m({control:t,name:"graphql.queries.get.enabled"}),c=m({control:t,name:"graphql.queries.list.enabled"});return e.jsxs(Le,{children:[e.jsx("div",{children:e.jsxs(Re,{className:"sticky top-2",children:[e.jsx(Ee,{children:"Queries"}),e.jsx(Ne,{children:"Configure the GraphQL queries that can be performed on this model."})]})}),e.jsxs(we,{className:"space-y-8",children:[!l&&e.jsxs(Ce,{className:"max-w-md",children:[e.jsx(I,{}),e.jsx(ve,{children:"Object type missing"}),e.jsx(ye,{children:"Enable the object type to expose queries and mutations"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsx(Q,{control:t,name:"graphql.queries.get.enabled",label:"Get By ID Query",disabled:!l,description:"Expose method for querying a single instance of this model by its ID, e.g. user(id: $id)."}),n&&i&&e.jsx(G.Controller,{control:t,name:"graphql.queries.get.roles",label:"Allowed Roles",options:i,className:"ml-[52px]"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsx(Q,{control:t,name:"graphql.queries.list.enabled",disabled:!l,label:"List Query",description:"Expose method for querying a list of instances of this model, e.g. users."}),c&&i&&e.jsx(G.Controller,{control:t,name:"graphql.queries.list.roles",label:"Allowed Roles",options:i,className:"ml-[52px]"})]})]})]})}const{useBlockUnsavedChangesNavigate:$e}=await o("@baseplate-dev/project-builder-lib/web"),{FormActionBar:Te,SectionList:De}=await o("@baseplate-dev/ui-components"),Ie=function(){const{key:a}=Y.useParams(),{form:d,onSubmit:l,originalModel:i}=W({omit:["name","featureRef"],modelKey:a}),{control:n,watch:c,getValues:p,reset:h}=d;return $e({control:n,reset:h,onSubmit:l}),e.jsx(K,{originalModel:i,getValues:p,watch:c,children:e.jsx("form",{onSubmit:l,className:"space-y-4 p-4",children:e.jsxs(De,{children:[e.jsx(ge,{control:n}),e.jsx(qe,{control:n}),e.jsx(ce,{control:n,modelKey:a}),e.jsx(Te,{form:d})]})})})};export{Ie as component};
|
|
2
|
-
//# sourceMappingURL=graphql-D3J4ZWXL.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as r}from"./_virtual___federation_fn_import-BLYgPlMt.js";import{b as $,j as e}from"./index.esm-DcyGeCKA.js";import{G as S,I as E,B as z,J as I}from"./index-C15I7WFi.js";import{s as M,U as A,d as B}from"./index-C_wN4CIq.js";import{s as P}from"./immer-BOh2djD_.js";function T(t){return S({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"polyline",attr:{points:"15 10 20 15 15 20"},child:[]},{tag:"path",attr:{d:"M4 4v7a4 4 0 0 0 4 4h12"},child:[]}]})(t)}const{useProjectDefinition:H}=await r("@baseplate-dev/project-builder-lib/web"),{Button:D,ComboboxFieldController:U,Dialog:V,DialogContent:W,DialogFooter:G,DialogHeader:L,DialogTitle:O,InputFieldController:q}=await r("@baseplate-dev/ui-components"),{useEffect:J,useMemo:K}=await r("react"),{z:j}=await r("zod"),Q=j.object({id:j.string(),childName:j.string().min(1).regex(/^[a-z0-9-]+$/,"Must be lowercase, numbers, and dashes only"),parentRef:j.string().optional()});function X({feature:t,open:i,onClose:a}){const{definitionContainer:{definition:p},saveDefinitionWithFeedback:d}=H(),l=K(()=>({id:t?.id??"",childName:t?.name.split("/").pop()??"",parentRef:t?.parentRef}),[t]),{control:f,handleSubmit:w,reset:m,formState:{isSubmitting:v}}=$({resolver:M(Q),values:l});J(()=>{i&&m(l)},[i,l,m]);const y=w(n=>d(c=>{const x=c.features.find(s=>s.id===n.parentRef)?.name,h=n.parentRef?`${x}/${n.childName}`:n.childName;if(c.features.some(s=>s.id!==n.id&&s.name===h))throw new A("Feature with this name already exists");const b=[...c.features.filter(s=>s.id!==n.id),{id:n.id,name:h,parentRef:n.parentRef}];function F(s){const R=b.filter(u=>s?new RegExp(`^${s.name}/[^/]+$`).exec(u.name):!u.name.includes("/"));for(const u of R){const g=u.name.split("/").pop();if(!g)throw new Error("Invalid feature name");u.name=s?`${s.name}/${g}`:g,F(u)}}F(),c.features=P(b,[s=>s.name])},{onSuccess:()=>{a?.()}})),o=[{label:"None",value:void 0},...p.features.filter(n=>n.id!==t?.id).map(n=>({label:n.name,value:n.id}))];return e.jsx(V,{open:i,onOpenChange:n=>{n||a?.()},children:e.jsx(W,{children:e.jsxs("form",{className:"space-y-4",onSubmit:y,children:[e.jsx(L,{children:e.jsxs(O,{children:[t?.name?"Edit":"Add"," Feature"]})}),e.jsx(q,{control:f,name:"childName",label:"Name",autoComplete:"off","data-1p-ignore":!0}),e.jsx(U,{control:f,name:"parentRef",label:"Parent Feature",options:o}),e.jsxs(G,{children:[e.jsx(D,{onClick:a,variant:"secondary",children:"Cancel"}),e.jsx(D,{type:"submit",disabled:v,children:"Save"})]})]})})})}const{featureEntityType:C}=await r("@baseplate-dev/project-builder-lib"),{useProjectDefinition:Y}=await r("@baseplate-dev/project-builder-lib/web"),{Button:N,buttonVariants:Z,cn:_,useConfirmDialog:ee}=await r("@baseplate-dev/ui-components"),{useState:k}=await r("react");function te({feature:t,setFeatureToEdit:i,setShowFeatureForm:a,handleRemoveFeature:p}){const d=t.name.split("/").pop()??"";return e.jsxs("div",{className:"flex space-x-1",children:[e.jsx("button",{className:"mr-1 flex w-full flex-row items-center space-x-3",onClick:()=>{i(t),a(!0)},children:e.jsxs("div",{className:"flex w-full items-center space-x-1 truncate",title:d,children:[t.name.includes("/")&&e.jsxs(e.Fragment,{children:[t.name.split("/").slice(0,-2).map(l=>e.jsx("div",{className:"w-8 shrink-0"},l)),e.jsx(T,{className:"size-8 shrink-0 p-2"})]}),e.jsxs("div",{className:_(Z({variant:"secondary",size:"sm"}),"group w-full"),style:{justifyContent:"flex-start"},children:[d,e.jsx("div",{className:"flex-1"}),e.jsx(E,{className:"opacity-0 transition-opacity group-hover:opacity-100"})]})]})}),e.jsx(N,{className:"shrink-0",variant:"ghost",onClick:()=>{i({id:C.generateNewId(),name:"",parentRef:t.id}),a(!0)},size:"icon",title:`Add Sub-Feature to ${t.name}`,children:e.jsx(z,{})}),e.jsx(N,{className:"shrink-0",variant:"ghost",onClick:()=>{p(t)},size:"icon",title:`Delete ${t.name}`,children:e.jsx(I,{})})]})}const re=function(){const{definitionContainer:i,saveDefinitionWithFeedbackSync:a}=Y(),{requestConfirm:p}=ee(),{showRefIssues:d}=B(),[l,f]=k(),[w,m]=k(!1),{features:v}=i.definition,y=o=>{function n(x){const h=x.features.findIndex(b=>b.id===o.id);if(h===-1)throw new Error("Feature not found");x.features.splice(h,1)}const c=i.fixRefDeletions(n);if(c.type==="failure"){d({issues:c.issues});return}p({title:"Delete Feature",content:`Are you sure you want to delete ${o.name}?`,onConfirm:()=>{a(n,{successMessage:`Feature ${o.name} removed`})}})};return e.jsx("div",{className:"relative h-full max-h-full pb-(--action-bar-height)",children:e.jsxs("div",{className:"flex h-full max-h-full flex-1 flex-col overflow-y-auto px-6",children:[e.jsxs("div",{className:"sticky top-0 space-y-2 border-b bg-background py-6",children:[e.jsx("h1",{children:"Hierarchy"}),e.jsx("p",{className:"max-w-3xl text-muted-foreground",children:"All business logic and features are organized in a hierarchy. The structure of the features in the list below is the way the folder structure will be created in your backend/admin applications."})]}),e.jsxs("div",{className:"py-6",children:[e.jsx("div",{className:"mb-4 flex max-w-md flex-col gap-1",children:v.map(o=>e.jsx(te,{feature:o,setFeatureToEdit:f,setShowFeatureForm:m,handleRemoveFeature:y},o.id))}),e.jsx(N,{onClick:()=>{f({id:C.generateNewId(),name:"",parentRef:void 0}),m(!0)},variant:"secondary",size:"sm",children:"Add Feature"}),e.jsx(X,{feature:l,open:w,onClose:()=>{m(!1)}})]})]})})};export{re as component};
|
|
2
|
-
//# sourceMappingURL=hierarchy-DF9lzUjz.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
function Z(e,t,r){return e<t?r==="asc"?-1:1:e>t?r==="asc"?1:-1:0}function L(e,t,r){return e.slice().sort((n,i)=>{const o=r.length;for(let c=0;c<t.length;c++){const f=o>c?r[c]:r[o-1],s=t[c],g=typeof s=="function",C=g?s(n):n[s],Y=g?s(i):i[s],B=Z(C,Y,f);if(B!==0)return B}return 0})}function ue(e,t){return L(e,t,["asc"])}var H=Symbol.for("immer-nothing"),K=Symbol.for("immer-draftable"),u=Symbol.for("immer-state");function l(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var h=Object.getPrototypeOf;function p(e){return!!e&&!!e[u]}function y(e){return e?X(e)||Array.isArray(e)||!!e[K]||!!e.constructor?.[K]||A(e)||O(e):!1}var V=Object.prototype.constructor.toString();function X(e){if(!e||typeof e!="object")return!1;const t=h(e);if(t===null)return!0;const r=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return r===Object?!0:typeof r=="function"&&Function.toString.call(r)===V}function w(e,t){F(e)===0?Reflect.ownKeys(e).forEach(r=>{t(r,e[r],e)}):e.forEach((r,n)=>t(n,r,e))}function F(e){const t=e[u];return t?t.type_:Array.isArray(e)?1:A(e)?2:O(e)?3:0}function k(e,t){return F(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function $(e,t,r){const n=F(e);n===2?e.set(t,r):n===3?e.add(r):e[t]=r}function ee(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function A(e){return e instanceof Map}function O(e){return e instanceof Set}function _(e){return e.copy_||e.base_}function E(e,t){if(A(e))return new Map(e);if(O(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const r=X(e);if(t===!0||t==="class_only"&&!r){const n=Object.getOwnPropertyDescriptors(e);delete n[u];let i=Reflect.ownKeys(n);for(let o=0;o<i.length;o++){const c=i[o],f=n[c];f.writable===!1&&(f.writable=!0,f.configurable=!0),(f.get||f.set)&&(n[c]={configurable:!0,writable:!0,enumerable:f.enumerable,value:e[c]})}return Object.create(h(e),n)}else{const n=h(e);if(n!==null&&r)return{...e};const i=Object.create(n);return Object.assign(i,e)}}function T(e,t=!1){return D(e)||p(e)||!y(e)||(F(e)>1&&(e.set=e.add=e.clear=e.delete=te),Object.freeze(e),t&&Object.entries(e).forEach(([r,n])=>T(n,!0))),e}function te(){l(2)}function D(e){return Object.isFrozen(e)}var re={};function d(e){const t=re[e];return t||l(0,e),t}var m;function q(){return m}function ne(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function W(e,t){t&&(d("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function R(e){M(e),e.drafts_.forEach(ie),e.drafts_=null}function M(e){e===m&&(m=e.parent_)}function U(e){return m=ne(m,e)}function ie(e){const t=e[u];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function j(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];return e!==void 0&&e!==r?(r[u].modified_&&(R(t),l(4)),y(e)&&(e=z(t,e),t.parent_||S(t,e)),t.patches_&&d("Patches").generateReplacementPatches_(r[u].base_,e,t.patches_,t.inversePatches_)):e=z(t,r,[]),R(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==H?e:void 0}function z(e,t,r){if(D(t))return t;const n=t[u];if(!n)return w(t,(i,o)=>G(e,n,t,i,o,r)),t;if(n.scope_!==e)return t;if(!n.modified_)return S(e,n.base_,!0),n.base_;if(!n.finalized_){n.finalized_=!0,n.scope_.unfinalizedDrafts_--;const i=n.copy_;let o=i,c=!1;n.type_===3&&(o=new Set(i),i.clear(),c=!0),w(o,(f,s)=>G(e,n,i,f,s,r,c)),S(e,i,!1),r&&e.patches_&&d("Patches").generatePatches_(n,r,e.patches_,e.inversePatches_)}return n.copy_}function G(e,t,r,n,i,o,c){if(p(i)){const f=o&&t&&t.type_!==3&&!k(t.assigned_,n)?o.concat(n):void 0,s=z(e,i,f);if($(r,n,s),p(s))e.canAutoFreeze_=!1;else return}else c&&r.add(i);if(y(i)&&!D(i)){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;z(e,i),(!t||!t.scope_.parent_)&&typeof n!="symbol"&&Object.prototype.propertyIsEnumerable.call(r,n)&&S(e,i)}}function S(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&T(t,r)}function oe(e,t){const r=Array.isArray(e),n={type_:r?1:0,scope_:t?t.scope_:q(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let i=n,o=x;r&&(i=[n],o=P);const{revoke:c,proxy:f}=Proxy.revocable(i,o);return n.draft_=f,n.revoke_=c,f}var x={get(e,t){if(t===u)return e;const r=_(e);if(!k(r,t))return ce(e,r,t);const n=r[t];return e.finalized_||!y(n)?n:n===b(e.base_,t)?(v(e),e.copy_[t]=N(n,e)):n},has(e,t){return t in _(e)},ownKeys(e){return Reflect.ownKeys(_(e))},set(e,t,r){const n=J(_(e),t);if(n?.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const i=b(_(e),t),o=i?.[u];if(o&&o.base_===r)return e.copy_[t]=r,e.assigned_[t]=!1,!0;if(ee(r,i)&&(r!==void 0||k(e.base_,t)))return!0;v(e),I(e)}return e.copy_[t]===r&&(r!==void 0||t in e.copy_)||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_[t]=!0),!0},deleteProperty(e,t){return b(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,v(e),I(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const r=_(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:n.enumerable,value:r[t]}},defineProperty(){l(11)},getPrototypeOf(e){return h(e.base_)},setPrototypeOf(){l(12)}},P={};w(x,(e,t)=>{P[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});P.deleteProperty=function(e,t){return P.set.call(this,e,t,void 0)};P.set=function(e,t,r){return x.set.call(this,e[0],t,r,e[0])};function b(e,t){const r=e[u];return(r?_(r):e)[t]}function ce(e,t,r){const n=J(t,r);return n?"value"in n?n.value:n.get?.call(e.draft_):void 0}function J(e,t){if(!(t in e))return;let r=h(e);for(;r;){const n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=h(r)}}function I(e){e.modified_||(e.modified_=!0,e.parent_&&I(e.parent_))}function v(e){e.copy_||(e.copy_=E(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var fe=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(t,r,n)=>{if(typeof t=="function"&&typeof r!="function"){const o=r;r=t;const c=this;return function(s=o,...g){return c.produce(s,C=>r.call(this,C,...g))}}typeof r!="function"&&l(6),n!==void 0&&typeof n!="function"&&l(7);let i;if(y(t)){const o=U(this),c=N(t,void 0);let f=!0;try{i=r(c),f=!1}finally{f?R(o):M(o)}return W(o,n),j(i,o)}else if(!t||typeof t!="object"){if(i=r(t),i===void 0&&(i=t),i===H&&(i=void 0),this.autoFreeze_&&T(i,!0),n){const o=[],c=[];d("Patches").generateReplacementPatches_(t,i,o,c),n(o,c)}return i}else l(1,t)},this.produceWithPatches=(t,r)=>{if(typeof t=="function")return(c,...f)=>this.produceWithPatches(c,s=>t(s,...f));let n,i;return[this.produce(t,r,(c,f)=>{n=c,i=f}),n,i]},typeof e?.autoFreeze=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof e?.useStrictShallowCopy=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy)}createDraft(e){y(e)||l(8),p(e)&&(e=se(e));const t=U(this),r=N(e,void 0);return r[u].isManual_=!0,M(t),r}finishDraft(e,t){const r=e&&e[u];(!r||!r.isManual_)&&l(9);const{scope_:n}=r;return W(n,t),j(void 0,n)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}applyPatches(e,t){let r;for(r=t.length-1;r>=0;r--){const i=t[r];if(i.path.length===0&&i.op==="replace"){e=i.value;break}}r>-1&&(t=t.slice(r+1));const n=d("Patches").applyPatches_;return p(e)?n(e,t):this.produce(e,i=>n(i,t))}};function N(e,t){const r=A(e)?d("MapSet").proxyMap_(e,t):O(e)?d("MapSet").proxySet_(e,t):oe(e,t);return(t?t.scope_:q()).drafts_.push(r),r}function se(e){return p(e)||l(10,e),Q(e)}function Q(e){if(!y(e)||D(e))return e;const t=e[u];let r;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=E(e,t.scope_.immer_.useStrictShallowCopy_)}else r=E(e,!0);return w(r,(n,i)=>{$(r,n,Q(i))}),t&&(t.finalized_=!1),r}var a=new fe,ae=a.produce;a.produceWithPatches.bind(a);a.setAutoFreeze.bind(a);a.setUseStrictShallowCopy.bind(a);a.applyPatches.bind(a);a.createDraft.bind(a);a.finishDraft.bind(a);export{L as o,ae as p,ue as s};
|
|
2
|
-
//# sourceMappingURL=immer-BOh2djD_.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"immer-BOh2djD_.js","sources":["../../../../node_modules/.pnpm/es-toolkit@1.31.0/node_modules/es-toolkit/dist/_internal/compareValues.mjs","../../../../node_modules/.pnpm/es-toolkit@1.31.0/node_modules/es-toolkit/dist/array/orderBy.mjs","../../../../node_modules/.pnpm/es-toolkit@1.31.0/node_modules/es-toolkit/dist/array/sortBy.mjs","../../../../node_modules/.pnpm/immer@10.1.1/node_modules/immer/dist/immer.mjs"],"sourcesContent":["function compareValues(a, b, order) {\n if (a < b) {\n return order === 'asc' ? -1 : 1;\n }\n if (a > b) {\n return order === 'asc' ? 1 : -1;\n }\n return 0;\n}\n\nexport { compareValues };\n","import { compareValues } from '../_internal/compareValues.mjs';\n\nfunction orderBy(arr, criteria, orders) {\n return arr.slice().sort((a, b) => {\n const ordersLength = orders.length;\n for (let i = 0; i < criteria.length; i++) {\n const order = ordersLength > i ? orders[i] : orders[ordersLength - 1];\n const criterion = criteria[i];\n const criterionIsFunction = typeof criterion === 'function';\n const valueA = criterionIsFunction ? criterion(a) : a[criterion];\n const valueB = criterionIsFunction ? criterion(b) : b[criterion];\n const result = compareValues(valueA, valueB, order);\n if (result !== 0) {\n return result;\n }\n }\n return 0;\n });\n}\n\nexport { orderBy };\n","import { orderBy } from './orderBy.mjs';\n\nfunction sortBy(arr, criteria) {\n return orderBy(arr, criteria, ['asc']);\n}\n\nexport { sortBy };\n","// src/utils/env.ts\nvar NOTHING = Symbol.for(\"immer-nothing\");\nvar DRAFTABLE = Symbol.for(\"immer-draftable\");\nvar DRAFT_STATE = Symbol.for(\"immer-state\");\n\n// src/utils/errors.ts\nvar errors = process.env.NODE_ENV !== \"production\" ? [\n // All error codes, starting by 0:\n function(plugin) {\n return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`;\n },\n function(thing) {\n return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`;\n },\n \"This object has been frozen and should not be mutated\",\n function(data) {\n return \"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" + data;\n },\n \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n \"Immer forbids circular references\",\n \"The first or second argument to `produce` must be a function\",\n \"The third argument to `produce` must be a function or undefined\",\n \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n function(thing) {\n return `'current' expects a draft, got: ${thing}`;\n },\n \"Object.defineProperty() cannot be used on an Immer draft\",\n \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n \"Immer only supports deleting array indices\",\n \"Immer only supports setting array indices and the 'length' property\",\n function(thing) {\n return `'original' expects a draft, got: ${thing}`;\n }\n // Note: if more errors are added, the errorOffset in Patches.ts should be increased\n // See Patches.ts for additional errors\n] : [];\nfunction die(error, ...args) {\n if (process.env.NODE_ENV !== \"production\") {\n const e = errors[error];\n const msg = typeof e === \"function\" ? e.apply(null, args) : e;\n throw new Error(`[Immer] ${msg}`);\n }\n throw new Error(\n `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n );\n}\n\n// src/utils/common.ts\nvar getPrototypeOf = Object.getPrototypeOf;\nfunction isDraft(value) {\n return !!value && !!value[DRAFT_STATE];\n}\nfunction isDraftable(value) {\n if (!value)\n return false;\n return isPlainObject(value) || Array.isArray(value) || !!value[DRAFTABLE] || !!value.constructor?.[DRAFTABLE] || isMap(value) || isSet(value);\n}\nvar objectCtorString = Object.prototype.constructor.toString();\nfunction isPlainObject(value) {\n if (!value || typeof value !== \"object\")\n return false;\n const proto = getPrototypeOf(value);\n if (proto === null) {\n return true;\n }\n const Ctor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n if (Ctor === Object)\n return true;\n return typeof Ctor == \"function\" && Function.toString.call(Ctor) === objectCtorString;\n}\nfunction original(value) {\n if (!isDraft(value))\n die(15, value);\n return value[DRAFT_STATE].base_;\n}\nfunction each(obj, iter) {\n if (getArchtype(obj) === 0 /* Object */) {\n Reflect.ownKeys(obj).forEach((key) => {\n iter(key, obj[key], obj);\n });\n } else {\n obj.forEach((entry, index) => iter(index, entry, obj));\n }\n}\nfunction getArchtype(thing) {\n const state = thing[DRAFT_STATE];\n return state ? state.type_ : Array.isArray(thing) ? 1 /* Array */ : isMap(thing) ? 2 /* Map */ : isSet(thing) ? 3 /* Set */ : 0 /* Object */;\n}\nfunction has(thing, prop) {\n return getArchtype(thing) === 2 /* Map */ ? thing.has(prop) : Object.prototype.hasOwnProperty.call(thing, prop);\n}\nfunction get(thing, prop) {\n return getArchtype(thing) === 2 /* Map */ ? thing.get(prop) : thing[prop];\n}\nfunction set(thing, propOrOldValue, value) {\n const t = getArchtype(thing);\n if (t === 2 /* Map */)\n thing.set(propOrOldValue, value);\n else if (t === 3 /* Set */) {\n thing.add(value);\n } else\n thing[propOrOldValue] = value;\n}\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nfunction isMap(target) {\n return target instanceof Map;\n}\nfunction isSet(target) {\n return target instanceof Set;\n}\nfunction latest(state) {\n return state.copy_ || state.base_;\n}\nfunction shallowCopy(base, strict) {\n if (isMap(base)) {\n return new Map(base);\n }\n if (isSet(base)) {\n return new Set(base);\n }\n if (Array.isArray(base))\n return Array.prototype.slice.call(base);\n const isPlain = isPlainObject(base);\n if (strict === true || strict === \"class_only\" && !isPlain) {\n const descriptors = Object.getOwnPropertyDescriptors(base);\n delete descriptors[DRAFT_STATE];\n let keys = Reflect.ownKeys(descriptors);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const desc = descriptors[key];\n if (desc.writable === false) {\n desc.writable = true;\n desc.configurable = true;\n }\n if (desc.get || desc.set)\n descriptors[key] = {\n configurable: true,\n writable: true,\n // could live with !!desc.set as well here...\n enumerable: desc.enumerable,\n value: base[key]\n };\n }\n return Object.create(getPrototypeOf(base), descriptors);\n } else {\n const proto = getPrototypeOf(base);\n if (proto !== null && isPlain) {\n return { ...base };\n }\n const obj = Object.create(proto);\n return Object.assign(obj, base);\n }\n}\nfunction freeze(obj, deep = false) {\n if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj))\n return obj;\n if (getArchtype(obj) > 1) {\n obj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections;\n }\n Object.freeze(obj);\n if (deep)\n Object.entries(obj).forEach(([key, value]) => freeze(value, true));\n return obj;\n}\nfunction dontMutateFrozenCollections() {\n die(2);\n}\nfunction isFrozen(obj) {\n return Object.isFrozen(obj);\n}\n\n// src/utils/plugins.ts\nvar plugins = {};\nfunction getPlugin(pluginKey) {\n const plugin = plugins[pluginKey];\n if (!plugin) {\n die(0, pluginKey);\n }\n return plugin;\n}\nfunction loadPlugin(pluginKey, implementation) {\n if (!plugins[pluginKey])\n plugins[pluginKey] = implementation;\n}\n\n// src/core/scope.ts\nvar currentScope;\nfunction getCurrentScope() {\n return currentScope;\n}\nfunction createScope(parent_, immer_) {\n return {\n drafts_: [],\n parent_,\n immer_,\n // Whenever the modified draft contains a draft from another scope, we\n // need to prevent auto-freezing so the unowned draft can be finalized.\n canAutoFreeze_: true,\n unfinalizedDrafts_: 0\n };\n}\nfunction usePatchesInScope(scope, patchListener) {\n if (patchListener) {\n getPlugin(\"Patches\");\n scope.patches_ = [];\n scope.inversePatches_ = [];\n scope.patchListener_ = patchListener;\n }\n}\nfunction revokeScope(scope) {\n leaveScope(scope);\n scope.drafts_.forEach(revokeDraft);\n scope.drafts_ = null;\n}\nfunction leaveScope(scope) {\n if (scope === currentScope) {\n currentScope = scope.parent_;\n }\n}\nfunction enterScope(immer2) {\n return currentScope = createScope(currentScope, immer2);\n}\nfunction revokeDraft(draft) {\n const state = draft[DRAFT_STATE];\n if (state.type_ === 0 /* Object */ || state.type_ === 1 /* Array */)\n state.revoke_();\n else\n state.revoked_ = true;\n}\n\n// src/core/finalize.ts\nfunction processResult(result, scope) {\n scope.unfinalizedDrafts_ = scope.drafts_.length;\n const baseDraft = scope.drafts_[0];\n const isReplaced = result !== void 0 && result !== baseDraft;\n if (isReplaced) {\n if (baseDraft[DRAFT_STATE].modified_) {\n revokeScope(scope);\n die(4);\n }\n if (isDraftable(result)) {\n result = finalize(scope, result);\n if (!scope.parent_)\n maybeFreeze(scope, result);\n }\n if (scope.patches_) {\n getPlugin(\"Patches\").generateReplacementPatches_(\n baseDraft[DRAFT_STATE].base_,\n result,\n scope.patches_,\n scope.inversePatches_\n );\n }\n } else {\n result = finalize(scope, baseDraft, []);\n }\n revokeScope(scope);\n if (scope.patches_) {\n scope.patchListener_(scope.patches_, scope.inversePatches_);\n }\n return result !== NOTHING ? result : void 0;\n}\nfunction finalize(rootScope, value, path) {\n if (isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n if (!state) {\n each(\n value,\n (key, childValue) => finalizeProperty(rootScope, state, value, key, childValue, path)\n );\n return value;\n }\n if (state.scope_ !== rootScope)\n return value;\n if (!state.modified_) {\n maybeFreeze(rootScope, state.base_, true);\n return state.base_;\n }\n if (!state.finalized_) {\n state.finalized_ = true;\n state.scope_.unfinalizedDrafts_--;\n const result = state.copy_;\n let resultEach = result;\n let isSet2 = false;\n if (state.type_ === 3 /* Set */) {\n resultEach = new Set(result);\n result.clear();\n isSet2 = true;\n }\n each(\n resultEach,\n (key, childValue) => finalizeProperty(rootScope, state, result, key, childValue, path, isSet2)\n );\n maybeFreeze(rootScope, result, false);\n if (path && rootScope.patches_) {\n getPlugin(\"Patches\").generatePatches_(\n state,\n path,\n rootScope.patches_,\n rootScope.inversePatches_\n );\n }\n }\n return state.copy_;\n}\nfunction finalizeProperty(rootScope, parentState, targetObject, prop, childValue, rootPath, targetIsSet) {\n if (process.env.NODE_ENV !== \"production\" && childValue === targetObject)\n die(5);\n if (isDraft(childValue)) {\n const path = rootPath && parentState && parentState.type_ !== 3 /* Set */ && // Set objects are atomic since they have no keys.\n !has(parentState.assigned_, prop) ? rootPath.concat(prop) : void 0;\n const res = finalize(rootScope, childValue, path);\n set(targetObject, prop, res);\n if (isDraft(res)) {\n rootScope.canAutoFreeze_ = false;\n } else\n return;\n } else if (targetIsSet) {\n targetObject.add(childValue);\n }\n if (isDraftable(childValue) && !isFrozen(childValue)) {\n if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n return;\n }\n finalize(rootScope, childValue);\n if ((!parentState || !parentState.scope_.parent_) && typeof prop !== \"symbol\" && Object.prototype.propertyIsEnumerable.call(targetObject, prop))\n maybeFreeze(rootScope, childValue);\n }\n}\nfunction maybeFreeze(scope, value, deep = false) {\n if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n freeze(value, deep);\n }\n}\n\n// src/core/proxy.ts\nfunction createProxyProxy(base, parent) {\n const isArray = Array.isArray(base);\n const state = {\n type_: isArray ? 1 /* Array */ : 0 /* Object */,\n // Track which produce call this is associated with.\n scope_: parent ? parent.scope_ : getCurrentScope(),\n // True for both shallow and deep changes.\n modified_: false,\n // Used during finalization.\n finalized_: false,\n // Track which properties have been assigned (true) or deleted (false).\n assigned_: {},\n // The parent draft state.\n parent_: parent,\n // The base state.\n base_: base,\n // The base proxy.\n draft_: null,\n // set below\n // The base copy with any updated values.\n copy_: null,\n // Called by the `produce` function.\n revoke_: null,\n isManual_: false\n };\n let target = state;\n let traps = objectTraps;\n if (isArray) {\n target = [state];\n traps = arrayTraps;\n }\n const { revoke, proxy } = Proxy.revocable(target, traps);\n state.draft_ = proxy;\n state.revoke_ = revoke;\n return proxy;\n}\nvar objectTraps = {\n get(state, prop) {\n if (prop === DRAFT_STATE)\n return state;\n const source = latest(state);\n if (!has(source, prop)) {\n return readPropFromProto(state, source, prop);\n }\n const value = source[prop];\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (value === peek(state.base_, prop)) {\n prepareCopy(state);\n return state.copy_[prop] = createProxy(value, state);\n }\n return value;\n },\n has(state, prop) {\n return prop in latest(state);\n },\n ownKeys(state) {\n return Reflect.ownKeys(latest(state));\n },\n set(state, prop, value) {\n const desc = getDescriptorFromProto(latest(state), prop);\n if (desc?.set) {\n desc.set.call(state.draft_, value);\n return true;\n }\n if (!state.modified_) {\n const current2 = peek(latest(state), prop);\n const currentState = current2?.[DRAFT_STATE];\n if (currentState && currentState.base_ === value) {\n state.copy_[prop] = value;\n state.assigned_[prop] = false;\n return true;\n }\n if (is(value, current2) && (value !== void 0 || has(state.base_, prop)))\n return true;\n prepareCopy(state);\n markChanged(state);\n }\n if (state.copy_[prop] === value && // special case: handle new props with value 'undefined'\n (value !== void 0 || prop in state.copy_) || // special case: NaN\n Number.isNaN(value) && Number.isNaN(state.copy_[prop]))\n return true;\n state.copy_[prop] = value;\n state.assigned_[prop] = true;\n return true;\n },\n deleteProperty(state, prop) {\n if (peek(state.base_, prop) !== void 0 || prop in state.base_) {\n state.assigned_[prop] = false;\n prepareCopy(state);\n markChanged(state);\n } else {\n delete state.assigned_[prop];\n }\n if (state.copy_) {\n delete state.copy_[prop];\n }\n return true;\n },\n // Note: We never coerce `desc.value` into an Immer draft, because we can't make\n // the same guarantee in ES5 mode.\n getOwnPropertyDescriptor(state, prop) {\n const owner = latest(state);\n const desc = Reflect.getOwnPropertyDescriptor(owner, prop);\n if (!desc)\n return desc;\n return {\n writable: true,\n configurable: state.type_ !== 1 /* Array */ || prop !== \"length\",\n enumerable: desc.enumerable,\n value: owner[prop]\n };\n },\n defineProperty() {\n die(11);\n },\n getPrototypeOf(state) {\n return getPrototypeOf(state.base_);\n },\n setPrototypeOf() {\n die(12);\n }\n};\nvar arrayTraps = {};\neach(objectTraps, (key, fn) => {\n arrayTraps[key] = function() {\n arguments[0] = arguments[0][0];\n return fn.apply(this, arguments);\n };\n});\narrayTraps.deleteProperty = function(state, prop) {\n if (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop)))\n die(13);\n return arrayTraps.set.call(this, state, prop, void 0);\n};\narrayTraps.set = function(state, prop, value) {\n if (process.env.NODE_ENV !== \"production\" && prop !== \"length\" && isNaN(parseInt(prop)))\n die(14);\n return objectTraps.set.call(this, state[0], prop, value, state[0]);\n};\nfunction peek(draft, prop) {\n const state = draft[DRAFT_STATE];\n const source = state ? latest(state) : draft;\n return source[prop];\n}\nfunction readPropFromProto(state, source, prop) {\n const desc = getDescriptorFromProto(source, prop);\n return desc ? `value` in desc ? desc.value : (\n // This is a very special case, if the prop is a getter defined by the\n // prototype, we should invoke it with the draft as context!\n desc.get?.call(state.draft_)\n ) : void 0;\n}\nfunction getDescriptorFromProto(source, prop) {\n if (!(prop in source))\n return void 0;\n let proto = getPrototypeOf(source);\n while (proto) {\n const desc = Object.getOwnPropertyDescriptor(proto, prop);\n if (desc)\n return desc;\n proto = getPrototypeOf(proto);\n }\n return void 0;\n}\nfunction markChanged(state) {\n if (!state.modified_) {\n state.modified_ = true;\n if (state.parent_) {\n markChanged(state.parent_);\n }\n }\n}\nfunction prepareCopy(state) {\n if (!state.copy_) {\n state.copy_ = shallowCopy(\n state.base_,\n state.scope_.immer_.useStrictShallowCopy_\n );\n }\n}\n\n// src/core/immerClass.ts\nvar Immer2 = class {\n constructor(config) {\n this.autoFreeze_ = true;\n this.useStrictShallowCopy_ = false;\n /**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\n this.produce = (base, recipe, patchListener) => {\n if (typeof base === \"function\" && typeof recipe !== \"function\") {\n const defaultBase = recipe;\n recipe = base;\n const self = this;\n return function curriedProduce(base2 = defaultBase, ...args) {\n return self.produce(base2, (draft) => recipe.call(this, draft, ...args));\n };\n }\n if (typeof recipe !== \"function\")\n die(6);\n if (patchListener !== void 0 && typeof patchListener !== \"function\")\n die(7);\n let result;\n if (isDraftable(base)) {\n const scope = enterScope(this);\n const proxy = createProxy(base, void 0);\n let hasError = true;\n try {\n result = recipe(proxy);\n hasError = false;\n } finally {\n if (hasError)\n revokeScope(scope);\n else\n leaveScope(scope);\n }\n usePatchesInScope(scope, patchListener);\n return processResult(result, scope);\n } else if (!base || typeof base !== \"object\") {\n result = recipe(base);\n if (result === void 0)\n result = base;\n if (result === NOTHING)\n result = void 0;\n if (this.autoFreeze_)\n freeze(result, true);\n if (patchListener) {\n const p = [];\n const ip = [];\n getPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip);\n patchListener(p, ip);\n }\n return result;\n } else\n die(1, base);\n };\n this.produceWithPatches = (base, recipe) => {\n if (typeof base === \"function\") {\n return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args));\n }\n let patches, inversePatches;\n const result = this.produce(base, recipe, (p, ip) => {\n patches = p;\n inversePatches = ip;\n });\n return [result, patches, inversePatches];\n };\n if (typeof config?.autoFreeze === \"boolean\")\n this.setAutoFreeze(config.autoFreeze);\n if (typeof config?.useStrictShallowCopy === \"boolean\")\n this.setUseStrictShallowCopy(config.useStrictShallowCopy);\n }\n createDraft(base) {\n if (!isDraftable(base))\n die(8);\n if (isDraft(base))\n base = current(base);\n const scope = enterScope(this);\n const proxy = createProxy(base, void 0);\n proxy[DRAFT_STATE].isManual_ = true;\n leaveScope(scope);\n return proxy;\n }\n finishDraft(draft, patchListener) {\n const state = draft && draft[DRAFT_STATE];\n if (!state || !state.isManual_)\n die(9);\n const { scope_: scope } = state;\n usePatchesInScope(scope, patchListener);\n return processResult(void 0, scope);\n }\n /**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * By default, auto-freezing is enabled.\n */\n setAutoFreeze(value) {\n this.autoFreeze_ = value;\n }\n /**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\n setUseStrictShallowCopy(value) {\n this.useStrictShallowCopy_ = value;\n }\n applyPatches(base, patches) {\n let i;\n for (i = patches.length - 1; i >= 0; i--) {\n const patch = patches[i];\n if (patch.path.length === 0 && patch.op === \"replace\") {\n base = patch.value;\n break;\n }\n }\n if (i > -1) {\n patches = patches.slice(i + 1);\n }\n const applyPatchesImpl = getPlugin(\"Patches\").applyPatches_;\n if (isDraft(base)) {\n return applyPatchesImpl(base, patches);\n }\n return this.produce(\n base,\n (draft) => applyPatchesImpl(draft, patches)\n );\n }\n};\nfunction createProxy(value, parent) {\n const draft = isMap(value) ? getPlugin(\"MapSet\").proxyMap_(value, parent) : isSet(value) ? getPlugin(\"MapSet\").proxySet_(value, parent) : createProxyProxy(value, parent);\n const scope = parent ? parent.scope_ : getCurrentScope();\n scope.drafts_.push(draft);\n return draft;\n}\n\n// src/core/current.ts\nfunction current(value) {\n if (!isDraft(value))\n die(10, value);\n return currentImpl(value);\n}\nfunction currentImpl(value) {\n if (!isDraftable(value) || isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n let copy;\n if (state) {\n if (!state.modified_)\n return state.base_;\n state.finalized_ = true;\n copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_);\n } else {\n copy = shallowCopy(value, true);\n }\n each(copy, (key, childValue) => {\n set(copy, key, currentImpl(childValue));\n });\n if (state) {\n state.finalized_ = false;\n }\n return copy;\n}\n\n// src/plugins/patches.ts\nfunction enablePatches() {\n const errorOffset = 16;\n if (process.env.NODE_ENV !== \"production\") {\n errors.push(\n 'Sets cannot have \"replace\" patches.',\n function(op) {\n return \"Unsupported patch operation: \" + op;\n },\n function(path) {\n return \"Cannot apply patch, path doesn't resolve: \" + path;\n },\n \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n );\n }\n const REPLACE = \"replace\";\n const ADD = \"add\";\n const REMOVE = \"remove\";\n function generatePatches_(state, basePath, patches, inversePatches) {\n switch (state.type_) {\n case 0 /* Object */:\n case 2 /* Map */:\n return generatePatchesFromAssigned(\n state,\n basePath,\n patches,\n inversePatches\n );\n case 1 /* Array */:\n return generateArrayPatches(state, basePath, patches, inversePatches);\n case 3 /* Set */:\n return generateSetPatches(\n state,\n basePath,\n patches,\n inversePatches\n );\n }\n }\n function generateArrayPatches(state, basePath, patches, inversePatches) {\n let { base_, assigned_ } = state;\n let copy_ = state.copy_;\n if (copy_.length < base_.length) {\n ;\n [base_, copy_] = [copy_, base_];\n [patches, inversePatches] = [inversePatches, patches];\n }\n for (let i = 0; i < base_.length; i++) {\n if (assigned_[i] && copy_[i] !== base_[i]) {\n const path = basePath.concat([i]);\n patches.push({\n op: REPLACE,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copy_[i])\n });\n inversePatches.push({\n op: REPLACE,\n path,\n value: clonePatchValueIfNeeded(base_[i])\n });\n }\n }\n for (let i = base_.length; i < copy_.length; i++) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copy_[i])\n });\n }\n for (let i = copy_.length - 1; base_.length <= i; --i) {\n const path = basePath.concat([i]);\n inversePatches.push({\n op: REMOVE,\n path\n });\n }\n }\n function generatePatchesFromAssigned(state, basePath, patches, inversePatches) {\n const { base_, copy_ } = state;\n each(state.assigned_, (key, assignedValue) => {\n const origValue = get(base_, key);\n const value = get(copy_, key);\n const op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD;\n if (origValue === value && op === REPLACE)\n return;\n const path = basePath.concat(key);\n patches.push(op === REMOVE ? { op, path } : { op, path, value });\n inversePatches.push(\n op === ADD ? { op: REMOVE, path } : op === REMOVE ? { op: ADD, path, value: clonePatchValueIfNeeded(origValue) } : { op: REPLACE, path, value: clonePatchValueIfNeeded(origValue) }\n );\n });\n }\n function generateSetPatches(state, basePath, patches, inversePatches) {\n let { base_, copy_ } = state;\n let i = 0;\n base_.forEach((value) => {\n if (!copy_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: REMOVE,\n path,\n value\n });\n inversePatches.unshift({\n op: ADD,\n path,\n value\n });\n }\n i++;\n });\n i = 0;\n copy_.forEach((value) => {\n if (!base_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n value\n });\n inversePatches.unshift({\n op: REMOVE,\n path,\n value\n });\n }\n i++;\n });\n }\n function generateReplacementPatches_(baseValue, replacement, patches, inversePatches) {\n patches.push({\n op: REPLACE,\n path: [],\n value: replacement === NOTHING ? void 0 : replacement\n });\n inversePatches.push({\n op: REPLACE,\n path: [],\n value: baseValue\n });\n }\n function applyPatches_(draft, patches) {\n patches.forEach((patch) => {\n const { path, op } = patch;\n let base = draft;\n for (let i = 0; i < path.length - 1; i++) {\n const parentType = getArchtype(base);\n let p = path[i];\n if (typeof p !== \"string\" && typeof p !== \"number\") {\n p = \"\" + p;\n }\n if ((parentType === 0 /* Object */ || parentType === 1 /* Array */) && (p === \"__proto__\" || p === \"constructor\"))\n die(errorOffset + 3);\n if (typeof base === \"function\" && p === \"prototype\")\n die(errorOffset + 3);\n base = get(base, p);\n if (typeof base !== \"object\")\n die(errorOffset + 2, path.join(\"/\"));\n }\n const type = getArchtype(base);\n const value = deepClonePatchValue(patch.value);\n const key = path[path.length - 1];\n switch (op) {\n case REPLACE:\n switch (type) {\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n die(errorOffset);\n default:\n return base[key] = value;\n }\n case ADD:\n switch (type) {\n case 1 /* Array */:\n return key === \"-\" ? base.push(value) : base.splice(key, 0, value);\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n return base.add(value);\n default:\n return base[key] = value;\n }\n case REMOVE:\n switch (type) {\n case 1 /* Array */:\n return base.splice(key, 1);\n case 2 /* Map */:\n return base.delete(key);\n case 3 /* Set */:\n return base.delete(patch.value);\n default:\n return delete base[key];\n }\n default:\n die(errorOffset + 1, op);\n }\n });\n return draft;\n }\n function deepClonePatchValue(obj) {\n if (!isDraftable(obj))\n return obj;\n if (Array.isArray(obj))\n return obj.map(deepClonePatchValue);\n if (isMap(obj))\n return new Map(\n Array.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n );\n if (isSet(obj))\n return new Set(Array.from(obj).map(deepClonePatchValue));\n const cloned = Object.create(getPrototypeOf(obj));\n for (const key in obj)\n cloned[key] = deepClonePatchValue(obj[key]);\n if (has(obj, DRAFTABLE))\n cloned[DRAFTABLE] = obj[DRAFTABLE];\n return cloned;\n }\n function clonePatchValueIfNeeded(obj) {\n if (isDraft(obj)) {\n return deepClonePatchValue(obj);\n } else\n return obj;\n }\n loadPlugin(\"Patches\", {\n applyPatches_,\n generatePatches_,\n generateReplacementPatches_\n });\n}\n\n// src/plugins/mapset.ts\nfunction enableMapSet() {\n class DraftMap extends Map {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 2 /* Map */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n assigned_: void 0,\n base_: target,\n draft_: this,\n isManual_: false,\n revoked_: false\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(key) {\n return latest(this[DRAFT_STATE]).has(key);\n }\n set(key, value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!latest(state).has(key) || latest(state).get(key) !== value) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_.set(key, true);\n state.copy_.set(key, value);\n state.assigned_.set(key, true);\n }\n return this;\n }\n delete(key) {\n if (!this.has(key)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareMapCopy(state);\n markChanged(state);\n if (state.base_.has(key)) {\n state.assigned_.set(key, false);\n } else {\n state.assigned_.delete(key);\n }\n state.copy_.delete(key);\n return true;\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_ = /* @__PURE__ */ new Map();\n each(state.base_, (key) => {\n state.assigned_.set(key, false);\n });\n state.copy_.clear();\n }\n }\n forEach(cb, thisArg) {\n const state = this[DRAFT_STATE];\n latest(state).forEach((_value, key, _map) => {\n cb.call(thisArg, this.get(key), key, this);\n });\n }\n get(key) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n const value = latest(state).get(key);\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (value !== state.base_.get(key)) {\n return value;\n }\n const draft = createProxy(value, state);\n prepareMapCopy(state);\n state.copy_.set(key, draft);\n return draft;\n }\n keys() {\n return latest(this[DRAFT_STATE]).keys();\n }\n values() {\n const iterator = this.keys();\n return {\n [Symbol.iterator]: () => this.values(),\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value\n };\n }\n };\n }\n entries() {\n const iterator = this.keys();\n return {\n [Symbol.iterator]: () => this.entries(),\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value: [r.value, value]\n };\n }\n };\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.entries();\n }\n }\n function proxyMap_(target, parent) {\n return new DraftMap(target, parent);\n }\n function prepareMapCopy(state) {\n if (!state.copy_) {\n state.assigned_ = /* @__PURE__ */ new Map();\n state.copy_ = new Map(state.base_);\n }\n }\n class DraftSet extends Set {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 3 /* Set */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n base_: target,\n draft_: this,\n drafts_: /* @__PURE__ */ new Map(),\n revoked_: false,\n isManual_: false\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!state.copy_) {\n return state.base_.has(value);\n }\n if (state.copy_.has(value))\n return true;\n if (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n return true;\n return false;\n }\n add(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!this.has(value)) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.add(value);\n }\n return this;\n }\n delete(value) {\n if (!this.has(value)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n markChanged(state);\n return state.copy_.delete(value) || (state.drafts_.has(value) ? state.copy_.delete(state.drafts_.get(value)) : (\n /* istanbul ignore next */\n false\n ));\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.clear();\n }\n }\n values() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.values();\n }\n entries() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.entries();\n }\n keys() {\n return this.values();\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.values();\n }\n forEach(cb, thisArg) {\n const iterator = this.values();\n let result = iterator.next();\n while (!result.done) {\n cb.call(thisArg, result.value, result.value, this);\n result = iterator.next();\n }\n }\n }\n function proxySet_(target, parent) {\n return new DraftSet(target, parent);\n }\n function prepareSetCopy(state) {\n if (!state.copy_) {\n state.copy_ = /* @__PURE__ */ new Set();\n state.base_.forEach((value) => {\n if (isDraftable(value)) {\n const draft = createProxy(value, state);\n state.drafts_.set(value, draft);\n state.copy_.add(draft);\n } else {\n state.copy_.add(value);\n }\n });\n }\n }\n function assertUnrevoked(state) {\n if (state.revoked_)\n die(3, JSON.stringify(latest(state)));\n }\n loadPlugin(\"MapSet\", { proxyMap_, proxySet_ });\n}\n\n// src/immer.ts\nvar immer = new Immer2();\nvar produce = immer.produce;\nvar produceWithPatches = immer.produceWithPatches.bind(\n immer\n);\nvar setAutoFreeze = immer.setAutoFreeze.bind(immer);\nvar setUseStrictShallowCopy = immer.setUseStrictShallowCopy.bind(immer);\nvar applyPatches = immer.applyPatches.bind(immer);\nvar createDraft = immer.createDraft.bind(immer);\nvar finishDraft = immer.finishDraft.bind(immer);\nfunction castDraft(value) {\n return value;\n}\nfunction castImmutable(value) {\n return value;\n}\nexport {\n Immer2 as Immer,\n applyPatches,\n castDraft,\n castImmutable,\n createDraft,\n current,\n enableMapSet,\n enablePatches,\n finishDraft,\n freeze,\n DRAFTABLE as immerable,\n isDraft,\n isDraftable,\n NOTHING as nothing,\n original,\n produce,\n produceWithPatches,\n setAutoFreeze,\n setUseStrictShallowCopy\n};\n//# sourceMappingURL=immer.mjs.map"],"names":["compareValues","a","b","order","orderBy","arr","criteria","orders","ordersLength","i","criterion","criterionIsFunction","valueA","valueB","result","sortBy","NOTHING","DRAFTABLE","DRAFT_STATE","die","error","args","getPrototypeOf","isDraft","value","isDraftable","isPlainObject","isMap","isSet","objectCtorString","proto","Ctor","each","obj","iter","getArchtype","key","entry","index","thing","state","has","prop","set","propOrOldValue","t","is","x","y","target","latest","shallowCopy","base","strict","isPlain","descriptors","keys","desc","freeze","deep","isFrozen","dontMutateFrozenCollections","plugins","getPlugin","pluginKey","plugin","currentScope","getCurrentScope","createScope","parent_","immer_","usePatchesInScope","scope","patchListener","revokeScope","leaveScope","revokeDraft","enterScope","immer2","draft","processResult","baseDraft","finalize","maybeFreeze","rootScope","path","childValue","finalizeProperty","resultEach","isSet2","parentState","targetObject","rootPath","targetIsSet","res","createProxyProxy","parent","isArray","traps","objectTraps","arrayTraps","revoke","proxy","source","readPropFromProto","peek","prepareCopy","createProxy","getDescriptorFromProto","current2","currentState","markChanged","owner","fn","Immer2","config","recipe","defaultBase","self","base2","hasError","p","ip","patches","inversePatches","current","patch","applyPatchesImpl","currentImpl","copy","immer","produce"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as c}from"./_virtual___federation_fn_import-BLYgPlMt.js";import{j as e,f as S,e as j}from"./index.esm-DcyGeCKA.js";import{S as v,n as f,a as L}from"./index-C_wN4CIq.js";import{u as y}from"./use-enum-form-DKD2EDHZ.js";import{K as C,c as N}from"./index-C15I7WFi.js";const{SectionListSection:b,SectionListSectionContent:g,SectionListSectionHeader:w,SectionListSectionTitle:E,SwitchFieldController:V}=await c("@baseplate-dev/ui-components");function F({control:s}){return e.jsxs(b,{children:[e.jsx(w,{children:e.jsx(E,{children:"GraphQL"})}),e.jsx(g,{className:"space-y-4",children:e.jsx(V,{label:"Expose in GraphQL schema",control:s,name:"isExposed",description:"Whether to expose this enum in the GraphQL schema"})})]})}function A(s){return s.split("_").map(n=>n.charAt(0).toUpperCase()+n.slice(1).toLowerCase()).join(" ")}const{modelEnumValueEntityType:T}=await c("@baseplate-dev/project-builder-lib"),{Button:d,InputFieldController:u,Label:p,SectionListSection:$,SectionListSectionContent:I,SectionListSectionDescription:k,SectionListSectionHeader:B,SectionListSectionTitle:D}=await c("@baseplate-dev/ui-components");function G({control:s,setValue:l}){const{fields:t,remove:n,append:r,move:a}=S({control:s,name:"values"}),o=j({control:s,name:"values"}),m="grid grid-cols-[repeat(2,minmax(130px,1fr))_80px] gap-3",x=t.map((h,i)=>({id:h.id,element:e.jsxs("div",{className:m,children:[e.jsx(u,{control:s,name:`values.${i}.name`}),e.jsx(u,{control:s,name:`values.${i}.friendlyName`,onFocus:()=>{!o[i].friendlyName&&o[i].name&&l(`values.${i}.friendlyName`,A(o[i].name))}}),e.jsxs(d,{variant:"ghost",size:"icon",onClick:()=>{n(i)},children:[e.jsx(C,{}),e.jsx("div",{className:"sr-only",children:"Delete Enum"})]})]})}));return e.jsxs($,{children:[e.jsxs(B,{children:[e.jsx(D,{children:"Values"}),e.jsx(k,{children:"Configure the allowed values for this enum."})]}),e.jsxs(I,{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:N(m,"pl-12"),children:[e.jsx(p,{children:"Value Name, e.g. ACTIVE"}),e.jsx(p,{children:"Value Friendly Name, e.g. Active"}),e.jsx("div",{})]}),t.length===0?e.jsx("p",{className:"pt-4 text-style-muted",children:"Add some values to get started"}):e.jsx(v,{listItems:x,sortItems:a})]}),e.jsx(d,{size:"sm",variant:"secondary",onClick:()=>{r({id:T.generateNewId(),name:"",friendlyName:""})},children:"Add Value"})]})]})}const{useBlockUnsavedChangesNavigate:Q}=await c("@baseplate-dev/project-builder-lib/web"),{FormActionBar:H,SectionList:R}=await c("@baseplate-dev/ui-components"),_=function(){const{key:l}=f.useParams(),{form:t,onSubmit:n,isSavingDefinition:r}=y({omit:["name","featureRef"],enumKey:l}),{control:a,setValue:o}=t;return Q({control:a,reset:t.reset,onSubmit:n}),e.jsx(L,{children:e.jsxs("form",{onSubmit:n,className:"mx-4 max-w-7xl min-w-[700px] flex-1 space-y-4 pb-4",children:[e.jsxs(R,{children:[e.jsx(F,{control:a}),e.jsx(G,{control:a,setValue:o})]}),e.jsx(H,{form:t,disabled:r})]})})};export{_ as component};
|
|
2
|
-
//# sourceMappingURL=index-1ErFJbDw.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as s}from"./_virtual___federation_fn_import-BLYgPlMt.js";import{j as e}from"./index.esm-DcyGeCKA.js";import{p as A,s as F}from"./index-C_wN4CIq.js";const{authConfigSpec:L,createWebAppSchema:R}=await s("@baseplate-dev/project-builder-lib"),{useBlockUnsavedChangesNavigate:D,useDefinitionSchema:k,useProjectDefinition:d,useResettableForm:y}=await s("@baseplate-dev/project-builder-lib/web"),{FormActionBar:N,InputFieldController:i,MultiComboboxFieldController:P,SectionList:W,SectionListSection:u,SectionListSectionContent:b,SectionListSectionDescription:h,SectionListSectionHeader:x,SectionListSectionTitle:j,SwitchFieldController:t}=await s("@baseplate-dev/ui-components"),E=function(){const{saveDefinitionWithFeedback:S}=d(),{webDefinition:a}=A.useRouteContext(),f=k(R),l=y({resolver:F(f),values:a}),{control:o,handleSubmit:w,reset:g}=l,{definition:C,pluginContainer:v}=d(),c=w(n=>S(p=>{p.apps=p.apps.map(m=>m.id===a.id?n:m)}));D({control:o,reset:g,onSubmit:c});const r=v.getPluginSpecOptional(L)?.getAuthRoles(C).map(n=>({label:n.name,value:n.id}));return e.jsxs("form",{onSubmit:c,className:"w-full max-w-7xl space-y-4 p-4",children:[e.jsxs(W,{children:[e.jsxs(u,{children:[e.jsxs(x,{children:[e.jsx(j,{children:"General"}),e.jsx(h,{children:"Basic configuration for your web application."})]}),e.jsxs(b,{className:"space-y-6",children:[e.jsx(i,{label:"Name",control:o,name:"name"}),e.jsx(i,{label:"Package Location (optional)",placeholder:"e.g. packages/web",control:o,name:"packageLocation"}),e.jsx(i,{label:"Page Title",control:o,name:"title"}),e.jsx(i,{label:"Description Meta Tag",control:o,name:"description"})]})]}),e.jsxs(u,{children:[e.jsxs(x,{children:[e.jsx(j,{children:"Features"}),e.jsx(h,{children:"Configure optional features for your web application."})]}),e.jsxs(b,{className:"space-y-6",children:[e.jsx(t,{label:"Include Auth?",control:o,name:"includeAuth"}),e.jsx(t,{label:"Include Upload Components?",control:o,name:"includeUploadComponents"}),e.jsx(t,{label:"Enable Subscriptions?",control:o,name:"enableSubscriptions"}),r&&e.jsx(P,{label:"Allowed Roles",description:"Which roles can access the web application",control:o,options:r,name:"allowedRoles"})]})]})]}),e.jsx(N,{form:l})]})};export{E as component};
|
|
2
|
-
//# sourceMappingURL=index-37eYMUXo.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-37eYMUXo.js","sources":["../../src/routes/apps/edit.$key/web/index.tsx?tsr-split=component"],"sourcesContent":["import type React from 'react';\n\nimport {\n authConfigSpec,\n createWebAppSchema,\n} from '@baseplate-dev/project-builder-lib';\nimport {\n useBlockUnsavedChangesNavigate,\n useDefinitionSchema,\n useProjectDefinition,\n useResettableForm,\n} from '@baseplate-dev/project-builder-lib/web';\nimport {\n FormActionBar,\n InputFieldController,\n MultiComboboxFieldController,\n SectionList,\n SectionListSection,\n SectionListSectionContent,\n SectionListSectionDescription,\n SectionListSectionHeader,\n SectionListSectionTitle,\n SwitchFieldController,\n} from '@baseplate-dev/ui-components';\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { createFileRoute } from '@tanstack/react-router';\n\nexport const Route = createFileRoute('/apps/edit/$key/web/')({\n component: WebAppGeneralForm,\n});\n\nfunction WebAppGeneralForm(): React.JSX.Element {\n const { saveDefinitionWithFeedback } = useProjectDefinition();\n const { webDefinition } = Route.useRouteContext();\n\n const webAppSchema = useDefinitionSchema(createWebAppSchema);\n const formProps = useResettableForm({\n resolver: zodResolver(webAppSchema),\n values: webDefinition,\n });\n const { control, handleSubmit, reset } = formProps;\n\n const { definition, pluginContainer } = useProjectDefinition();\n\n const onSubmit = handleSubmit((data) =>\n saveDefinitionWithFeedback((draftConfig) => {\n draftConfig.apps = draftConfig.apps.map((app) =>\n app.id === webDefinition.id ? data : app,\n );\n }),\n );\n\n useBlockUnsavedChangesNavigate({ control, reset, onSubmit });\n\n const roleOptions = pluginContainer\n .getPluginSpecOptional(authConfigSpec)\n ?.getAuthRoles(definition)\n .map((role) => ({\n label: role.name,\n value: role.id,\n }));\n\n return (\n <form onSubmit={onSubmit} className=\"w-full max-w-7xl space-y-4 p-4\">\n <SectionList>\n <SectionListSection>\n <SectionListSectionHeader>\n <SectionListSectionTitle>General</SectionListSectionTitle>\n <SectionListSectionDescription>\n Basic configuration for your web application.\n </SectionListSectionDescription>\n </SectionListSectionHeader>\n <SectionListSectionContent className=\"space-y-6\">\n <InputFieldController label=\"Name\" control={control} name=\"name\" />\n <InputFieldController\n label=\"Package Location (optional)\"\n placeholder=\"e.g. packages/web\"\n control={control}\n name=\"packageLocation\"\n />\n <InputFieldController\n label=\"Page Title\"\n control={control}\n name=\"title\"\n />\n <InputFieldController\n label=\"Description Meta Tag\"\n control={control}\n name=\"description\"\n />\n </SectionListSectionContent>\n </SectionListSection>\n\n <SectionListSection>\n <SectionListSectionHeader>\n <SectionListSectionTitle>Features</SectionListSectionTitle>\n <SectionListSectionDescription>\n Configure optional features for your web application.\n </SectionListSectionDescription>\n </SectionListSectionHeader>\n <SectionListSectionContent className=\"space-y-6\">\n <SwitchFieldController\n label=\"Include Auth?\"\n control={control}\n name=\"includeAuth\"\n />\n <SwitchFieldController\n label=\"Include Upload Components?\"\n control={control}\n name=\"includeUploadComponents\"\n />\n <SwitchFieldController\n label=\"Enable Subscriptions?\"\n control={control}\n name=\"enableSubscriptions\"\n />\n {roleOptions && (\n <MultiComboboxFieldController\n label=\"Allowed Roles\"\n description=\"Which roles can access the web application\"\n control={control}\n options={roleOptions}\n name=\"allowedRoles\"\n />\n )}\n </SectionListSectionContent>\n </SectionListSection>\n </SectionList>\n <FormActionBar form={formProps} />\n </form>\n );\n}\n"],"names":["authConfigSpec","createWebAppSchema","importShared","useBlockUnsavedChangesNavigate","useDefinitionSchema","useProjectDefinition","useResettableForm","FormActionBar","InputFieldController","MultiComboboxFieldController","SectionList","SectionListSection","SectionListSectionContent","SectionListSectionDescription","SectionListSectionHeader","SectionListSectionTitle","SwitchFieldController","SplitComponent","saveDefinitionWithFeedback","webDefinition","Route","useRouteContext","webAppSchema","formProps","resolver","zodResolver","values","control","handleSubmit","reset","definition","pluginContainer","onSubmit","draftConfig","apps","map","app","id","data","roleOptions","getPluginSpecOptional","getAuthRoles","role","label","name","value","jsxs","jsx"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as o}from"./_virtual___federation_fn_import-BLYgPlMt.js";import{j as e}from"./index.esm-DcyGeCKA.js";import{s as d}from"./index-C_wN4CIq.js";const{generalSettingsSchema:h}=await o("@baseplate-dev/project-builder-lib"),{useBlockUnsavedChangesNavigate:f,useProjectDefinition:j,useResettableForm:u}=await o("@baseplate-dev/project-builder-lib/web"),{FormActionBar:g,InputFieldController:s,SectionList:x,SectionListSection:b,SectionListSectionContent:S,SectionListSectionHeader:v,SectionListSectionTitle:w}=await o("@baseplate-dev/ui-components"),L=function(){const{definition:n,saveDefinitionWithFeedback:r}=j(),i=u({resolver:d(h),defaultValues:n.settings.general}),{handleSubmit:l,control:t,reset:c}=i,a=l(p=>r(m=>{m.settings.general=p}));return f({control:t,reset:c,onSubmit:a}),e.jsxs("form",{className:"relative h-full max-h-full pb-(--action-bar-height)",onSubmit:a,children:[e.jsxs("div",{className:"flex h-full max-h-full flex-1 flex-col overflow-y-auto px-6",children:[e.jsx("div",{className:"sticky top-0 border-b bg-background py-6",children:e.jsx("h1",{children:"Project settings"})}),e.jsx(x,{children:e.jsxs(b,{children:[e.jsx(v,{children:e.jsx(w,{children:"Settings"})}),e.jsxs(S,{className:"flex max-w-80 flex-col gap-4",children:[e.jsx(s,{name:"name",label:"Project Name",description:"Lowercase letters and dashes, e.g. my-project",control:t,placeholder:"e.g. my-project"}),e.jsx(s,{name:"portOffset",label:"Port Offset",description:"Multiple of 1000, e.g. 4000. This will offset the ports used by the project, e.g. API at 4001, database at 4432, to avoid conflicts with other projects.",control:t,registerOptions:{valueAsNumber:!0}}),e.jsx(s,{label:"Package Scope",name:"packageScope",description:"The scope for packages in this project, e.g. my-project will result in @my-project/app-name",control:t})]})]})})]}),e.jsx(g,{form:i})]})};export{L as component};
|
|
2
|
-
//# sourceMappingURL=index-B5-Qczd9.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as f}from"./_virtual___federation_fn_import-BLYgPlMt.js";import{j as e,u as I,b as ie,e as le,f as Se}from"./index.esm-DcyGeCKA.js";import{s as te,k as U,e as ne,S as $e,m as Ne,a as Fe,r as se}from"./index-C_wN4CIq.js";import{u as g,S as Me,E as Ie}from"./-constants-CqYT9Sad.js";import{u as Le}from"./use-model-form-BQa-PiE_.js";import{q as Te,c as w,L as Ee,N as Oe,O as Ue,P as qe,I as ve,K as be,B as Ce}from"./index-C15I7WFi.js";import{i as Pe}from"./inflection-C1nKqrJS.js";import{c as Ae}from"./capitalize-gOJXDbsR.js";const Be=/\p{Lu}?\p{Ll}+|[0-9]+|\p{Lu}+(?!\p{Ll})|\p{Emoji_Presentation}|\p{Extended_Pictographic}|\p{L}+/gu;function Ke(d){return Array.from(d.match(Be)??[])}function M(d){const t=Ke(d);if(t.length===0)return"";const[s,...l]=t;return`${s.toLowerCase()}${l.map(r=>Ae(r)).join("")}`}const{modelScalarFieldEntityType:ae}=await f("@baseplate-dev/project-builder-lib"),{Button:re,ButtonGroup:ze,DropdownMenu:ke,DropdownMenuContent:Ve,DropdownMenuItem:He,DropdownMenuTrigger:_e}=await f("@baseplate-dev/ui-components"),{useMemo:We}=await f("react");function Ge({className:d,appendField:t,setValue:s}){const l=g(i=>i.model.fields.map(a=>a.name)),r=g(i=>i.model.primaryKeyFieldRefs.length),n=We(()=>{const i=[];r||i.push({name:"ID (uuid)",fields:[{name:"id",type:"uuid",options:{genUuid:!0},isPrimaryKey:!0}]});const a=l.includes("createdAt"),m=l.includes("updatedAt");return(!a||!m)&&i.push({name:"Timestamps",fields:[{name:"createdAt",type:"dateTime",options:{defaultToNow:!0}},{name:"updatedAt",type:"dateTime",options:{updatedAt:!0,defaultToNow:!0}}]}),i},[l,r]),o=i=>{for(const{isPrimaryKey:a,...m}of i.fields){const c=ae.generateNewId();l.includes(m.name)||t({id:c,...m}),a&&s("model.primaryKeyFieldRefs",[c],{shouldDirty:!0})}};return e.jsxs(ze,{className:d,children:[e.jsx(re,{variant:"secondary",onClick:()=>{t({id:ae.generateNewId(),name:"",type:"string",isOptional:!0,options:{default:""}})},size:"sm",children:"Add Field"}),e.jsxs(ke,{children:[e.jsx(_e,{disabled:n.length===0,asChild:!0,children:e.jsx(re,{variant:"secondary",size:"sm",children:e.jsx(Te,{})})}),e.jsx(Ve,{children:n.map(i=>e.jsx(He,{onClick:()=>{o(i)},children:i.name},i.name))})]})]})}const{Button:de,DialogClose:Ye,DialogFooter:Xe,MultiComboboxFieldController:Je}=await f("@baseplate-dev/ui-components"),{useId:Qe}=await f("react"),{z:W}=await f("zod"),Ze=W.object({fields:W.array(W.string()).min(1,"At least one primary key is required")});function en({className:d,control:t,onSubmitSuccess:s}){const l=g(c=>c.model.fields),{field:{value:r=[],onChange:n}}=I({name:"model.primaryKeyFieldRefs",control:t}),{control:o,handleSubmit:i}=ie({resolver:te(Ze),values:{fields:r}}),a=i(c=>{n(c.fields),s?.()}),m=Qe();return e.jsxs("form",{className:w("space-y-4",d),onSubmit:c=>(c.stopPropagation(),a(c)),id:m,children:[e.jsx(Je,{control:o,name:"fields",options:l.map(c=>({value:c.id,label:c.name})),placeholder:"Select fields to use as primary keys"}),e.jsxs(Xe,{children:[e.jsx(Ye,{asChild:!0,children:e.jsx(de,{variant:"secondary",children:"Cancel"})}),e.jsx(de,{type:"submit",form:m,children:"Save"})]})]})}const{Dialog:nn,DialogContent:tn,DialogDescription:sn,DialogHeader:on,DialogTitle:ln,DialogTrigger:an,useControlledState:rn}=await f("@baseplate-dev/ui-components");function we({control:d,children:t,asChild:s,open:l,onOpenChange:r}){const[n,o]=rn(l,r,!1);return e.jsxs(nn,{open:n,onOpenChange:o,children:[t&&e.jsx(an,{asChild:s,children:t}),e.jsxs(tn,{children:[e.jsxs(on,{children:[e.jsx(ln,{children:"Primary Keys"}),e.jsx(sn,{children:"Select the fields that will be used as the primary key for this model"})]}),e.jsx(en,{control:d,onSubmitSuccess:()=>{o(!1)}})]})]})}const{BadgeWithIcon:dn}=await f("@baseplate-dev/ui-components"),{useState:cn}=await f("react");function mn({className:d,control:t,autoCollapse:s}){const[l,r]=cn(!1),n=!s||l;return e.jsx(we,{control:t,children:e.jsx(dn,{icon:Ee,variant:"secondary",className:d,onMouseEnter:()=>{r(!0)},onMouseLeave:()=>{r(!1)},"aria-label":"Primary Key",title:"Primary Key",children:n&&"Primary"})})}const{createModelRelationFieldSchema:un,ModelFieldUtils:fn,modelForeignRelationEntityType:pn,modelLocalRelationEntityType:hn,ModelUtils:ce}=await f("@baseplate-dev/project-builder-lib"),{useDefinitionSchema:xn,useProjectDefinition:jn}=await f("@baseplate-dev/project-builder-lib/web"),{Button:G,ComboboxField:gn,ComboboxFieldController:Y,DialogClose:yn,DialogFooter:vn,InputFieldController:me,SelectFieldController:bn,toast:ue}=await f("@baseplate-dev/ui-components"),De=await f("react"),{useId:Cn,useMemo:wn}=De;function Dn(d,t,s){if(!s)return;const l=s.replace(/Id$/,""),r=a=>d.models.find(m=>m.id!==t.id&&a(m))?.id,n=r(a=>a.name.toLowerCase()===l.toLowerCase());if(n)return n;const o=r(a=>a.featureRef===a.featureRef&&a.name.toLowerCase().includes(l.toLowerCase()));return o||r(a=>a.name.toLowerCase().includes(l.toLowerCase()))}function fe(d,t,s,l){const r=(()=>{if(s.name)return s.name;if(s.modelRef){const i=ce.byIdOrThrow(d,s.modelRef);return M(i.name)}})(),n=(()=>{if(!s.modelRef)return;const{model:{fields:i,primaryKeyFieldRefs:a},name:m}=ce.byIdOrThrow(d,s.modelRef),c=i.filter(x=>a.includes(x.id)),p=s.references??[];return c.map((x,h)=>{const D=h===0&&l?l:c.length===1?`${M(m)}Id`:x.name;return{localRef:p[h]?.localRef??t.model.fields.find(y=>y.name===D)?.id,foreignRef:x.id}})})(),o=(()=>{if(!n)return;if(s.foreignRelationName)return s.foreignRelationName;const i=n.every(a=>a.localRef)&&fn.areScalarsUnique(t,n.map(a=>a.localRef));return M(i?t.name:Pe.pluralize(t.name))})();return{name:r??"",foreignRelationName:o??"",references:n??[]}}function Rn({className:d,control:t,onSubmitSuccess:s,relationId:l,defaultFieldName:r}){const{definition:n}=jn(),o=g(u=>u),i=o.name,{fields:a}=o.model,{field:{value:m=[],onChange:c}}=I({name:"model.relations",control:t}),p=n.models.map(u=>({label:u.name,value:u.id})),x=l===void 0?void 0:m.find(u=>u.id===l),h=wn(()=>{if(x)return x;const u=Dn(n,o,r);return{id:hn.generateNewId(),foreignId:pn.generateNewId(),modelRef:u??"",onDelete:"Restrict",onUpdate:"Restrict",...fe(n,o,{modelRef:u},r)}},[x,r,n,o]),D=xn(un),{control:b,handleSubmit:y,setError:H,watch:P,setValue:L}=ie({resolver:te(D),defaultValues:h}),S=P(),$=S.modelRef?n.models.find(u=>u.id===S.modelRef):void 0,T=$?.model.fields,_=a.map(u=>({label:u.name,value:u.id})),A=T?.map(u=>({label:u.name,value:u.id}))??[],j=S.references.some(u=>a.find(C=>C.id===u.localRef)?.isOptional),R=()=>{c(m.filter(u=>u.id!==l)),s?.()},Re=y(u=>{const{id:C}=u;if(a.some(v=>v.name===u.name)||m.some(v=>v.name===u.name&&v.id!==u.id)){H("name",{message:"The relation name cannot be the same as a field/relation name"});return}const O=u.references.map(v=>v.localRef);if(new Set(O).size!==O.length){ue.error("Local fields must be unique");return}const B=u.references.map(v=>v.foreignRef);if(new Set(B).size!==B.length){ue.error("Foreign fields must be unique");return}m.some(v=>v.id===C)?c(m.map(v=>v.id===C?u:v)):c([...m,u]),s?.()}),oe=Cn(),E=!!$;return e.jsxs("form",{className:w("space-y-4",d),onSubmit:u=>(u.stopPropagation(),Re(u)),id:oe,children:[e.jsxs("div",{className:"grid grid-cols-2 gap-x-8 gap-y-2",children:[e.jsx(gn,{options:[{label:i,value:i}],value:i,disabled:!0,label:"Local Model"}),e.jsx(Y,{control:b,name:"modelRef",options:p,label:"Foreign Model",onChange:u=>{if(!u)return;const{foreignRelationName:C,name:O,references:B}=fe(n,o,{...S,modelRef:u},r);C&&L("foreignRelationName",C),O&&L("name",O),L("references",B)}})]}),e.jsxs("div",{className:w("grid grid-cols-2 gap-x-8 gap-y-2",!E&&"pointer-events-none opacity-50"),children:[e.jsx(me,{control:b,disabled:!E,name:"name",label:"Local Relation Name",description:e.jsxs("span",{children:["Name of the relation, e.g. ",M(i),".",e.jsx("strong",{children:$?.name?M($.name):"user"})]})}),e.jsx(me,{control:b,disabled:!E,name:"foreignRelationName",label:"Foreign Relation Name",description:e.jsxs("span",{children:["Name of the relation on the foreign model, e.g."," ",M($?.name??"post"),".",e.jsx("strong",{children:h.foreignRelationName||"user"})]})}),e.jsx("div",{className:"text-sm font-medium",children:"Local Field"}),e.jsx("div",{className:"text-sm font-medium",children:"Foreign Field"}),S.references.map((u,C)=>e.jsxs(De.Fragment,{children:[e.jsx(Y,{disabled:!E,control:b,name:`references.${C}.localRef`,options:_}),e.jsx(Y,{control:b,name:`references.${C}.foreignRef`,options:A,disabled:!0})]},C))]}),e.jsx("div",{className:"grid grid-cols-2 gap-x-8 gap-y-2 border-t pt-4",children:e.jsx(bn,{label:"On Delete",control:b,options:[{label:"Cascade (delete entire local row)",value:"Cascade"},{label:"Restrict (throw error)",value:"Restrict"},...j?[{label:"Set Null (set local field to null)",value:"SetNull"}]:[]],name:"onDelete",description:"What to do when the foreign row is deleted"})}),e.jsx(vn,{children:e.jsxs("div",{className:"flex w-full justify-between",children:[l&&e.jsx(G,{variant:"secondary",onClick:u=>{u.preventDefault(),R()},children:"Delete"}),e.jsxs("div",{className:"flex gap-4",children:[e.jsx(yn,{asChild:!0,children:e.jsx(G,{variant:"secondary",children:"Cancel"})}),e.jsx(G,{type:"submit",form:oe,disabled:!E,children:"Save"})]})]})})]})}const{Dialog:Sn,DialogContent:$n,DialogDescription:Nn,DialogHeader:Fn,DialogTitle:Mn,DialogTrigger:In,useControlledState:Ln}=await f("@baseplate-dev/ui-components");function k({control:d,children:t,asChild:s,open:l,onOpenChange:r,relationId:n,defaultFieldName:o}){const[i,a]=Ln(l,r,!1);return e.jsxs(Sn,{open:i,onOpenChange:a,children:[t&&e.jsx(In,{asChild:s,children:t}),e.jsxs($n,{width:"lg",children:[e.jsxs(Fn,{children:[e.jsx(Mn,{children:n?"Edit Relation":"Create Relation"}),e.jsx(Nn,{children:"Set up the relation between this model and another model"})]}),e.jsx(Rn,{control:d,onSubmitSuccess:()=>{a(!1)},relationId:n,defaultFieldName:o})]})]})}const{useProjectDefinition:Tn}=await f("@baseplate-dev/project-builder-lib/web"),{BadgeWithIcon:En}=await f("@baseplate-dev/ui-components"),{useState:On}=await f("react");function Un({className:d,control:t,relation:s,autoCollapse:l}){const{definitionContainer:r}=Tn(),[n,o]=On(!1),i=!l||n;return e.jsx(k,{control:t,relationId:s.id,children:e.jsx(En,{icon:Oe,variant:"secondary",className:w("max-w-[100px]",d),onMouseEnter:()=>{o(!0)},onMouseLeave:()=>{o(!1)},"aria-label":"Relation",title:"Relation",children:i&&`${r.nameFromId(s.modelRef)} ${s.references.length>1?`(${s.references.length})`:""}`})})}const{modelUniqueConstraintEntityType:qn}=await f("@baseplate-dev/project-builder-lib"),{Button:X,DialogClose:Pn,DialogFooter:An,MultiComboboxFieldController:Bn}=await f("@baseplate-dev/ui-components"),{useId:Kn}=await f("react"),{z:K}=await f("zod"),zn=K.object({id:K.string().optional(),fields:K.array(K.string()).min(1,"At least one field is required")});function kn({className:d,control:t,onSubmitSuccess:s,constraintId:l}){const r=g(h=>h.model.fields),{field:{value:n=[],onChange:o}}=I({name:"model.uniqueConstraints",control:t}),i=l===void 0?void 0:n.find(h=>h.id===l),{control:a,handleSubmit:m}=ie({resolver:te(zn),values:i?{id:i.id,fields:i.fields.map(h=>h.fieldRef)}:{fields:[]}}),c=()=>{o(n.filter(h=>h.id!==l)),s?.()},p=m(h=>{const D={id:h.id??qn.generateNewId(),fields:h.fields.map(y=>({fieldRef:y}))},{id:b}=D;n.some(y=>y.id===b)?o(n.map(y=>y.id===b?D:y)):o([...n,D]),s?.()}),x=Kn();return e.jsxs("form",{className:w("space-y-4",d),onSubmit:h=>(h.stopPropagation(),p(h)),id:x,children:[e.jsx(Bn,{control:a,name:"fields",options:r.map(h=>({value:h.id,label:h.name})),placeholder:"Select fields to use as primary keys"}),e.jsx(An,{children:e.jsxs("div",{className:"flex w-full justify-between",children:[l&&e.jsx(X,{variant:"secondary",onClick:h=>{h.preventDefault(),c()},children:"Delete"}),e.jsxs("div",{className:"flex gap-4",children:[e.jsx(Pn,{asChild:!0,children:e.jsx(X,{variant:"secondary",children:"Cancel"})}),e.jsx(X,{type:"submit",form:x,children:"Save"})]})]})})]})}const{Dialog:Vn,DialogContent:Hn,DialogDescription:_n,DialogHeader:Wn,DialogTitle:Gn,DialogTrigger:Yn,useControlledState:Xn}=await f("@baseplate-dev/ui-components");function V({control:d,children:t,asChild:s,open:l,onOpenChange:r,constraintId:n}){const[o,i]=Xn(l,r,!1);return e.jsxs(Vn,{open:o,onOpenChange:i,children:[t&&e.jsx(Yn,{asChild:s,children:t}),e.jsxs(Hn,{children:[e.jsxs(Wn,{children:[e.jsx(Gn,{children:"Unique Constraint"}),e.jsx(_n,{children:"Select the fields that will be part of this unique constraint."})]}),e.jsx(kn,{control:d,onSubmitSuccess:()=>{i(!1)},constraintId:n})]})]})}const{BadgeWithIcon:Jn}=await f("@baseplate-dev/ui-components"),{useState:Qn}=await f("react");function Zn({className:d,control:t,constraintId:s,autoCollapse:l}){const[r,n]=Qn(!1),o=!l||r,i=g(a=>a.model.uniqueConstraints?.find(m=>m.id===s)?.fields.length??0);return e.jsx(V,{control:t,constraintId:s,children:e.jsx(Jn,{variant:"secondary",icon:Ue,className:w("",d),onMouseEnter:()=>{n(!0)},onMouseLeave:()=>{n(!1)},"aria-label":"Unique Constraint",title:"Unique Constraint",children:o&&`Unique ${i>1?`(${i})`:""}`})})}function ei({className:d,control:t,idx:s}){const l=g(c=>c.model.fields[s]),r=g(c=>c.model.primaryKeyFieldRefs.includes(l.id)),n=g(c=>c.model.uniqueConstraints?.filter(p=>p.fields.some(x=>x.fieldRef===l.id)).map(p=>p.id)??[]),o=g(({model:c})=>{const p=c.fields[s];return c.relations?.filter(x=>x.references.some(h=>h.localRef===p.id))??[]}),a=(r?1:0)+n.length+o.length>2,m=[r&&e.jsx(mn,{control:t,autoCollapse:a},"primary"),...n.map(c=>e.jsx(Zn,{control:t,constraintId:c,autoCollapse:a},c)),...o.map(c=>e.jsx(Un,{control:t,relation:c,autoCollapse:a},c.id))];return e.jsx("div",{className:w("flex gap-4",d),children:m})}const{EnumUtils:ni}=await f("@baseplate-dev/project-builder-lib"),{useProjectDefinition:ii}=await f("@baseplate-dev/project-builder-lib/web"),{Button:N,ComboboxField:ti,DropdownMenu:pe,DropdownMenuContent:he,DropdownMenuGroup:xe,DropdownMenuItem:J,DropdownMenuTrigger:je,InputField:ge,InputFieldController:Q,SelectFieldController:si}=await f("@baseplate-dev/ui-components");function oi({control:d,idx:t,setValue:s}){const{definition:l}=ii(),r=le({control:d,name:`model.fields.${t}.type`}),{field:{value:n,onChange:o}}=I({name:`model.fields.${t}.options`,control:d}),i=le({control:d,name:`model.fields.${t}.options.default`});if(r==="boolean")return e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(si,{control:d,className:"flex-1",name:`model.fields.${t}.options.default`,options:[{label:"True",value:"true"},{label:"False",value:"false"}],placeholder:"NULL"}),i&&e.jsx(N,{title:"Reset",onClick:()=>{s(`model.fields.${t}.options.default`,"",{shouldDirty:!0})},variant:"ghost",size:"icon",children:e.jsx(U,{})})]});if(["string","int","float"].includes(r))return e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(Q,{control:d,placeholder:"NULL",name:`model.fields.${t}.options.default`,className:"flex-1"}),i&&e.jsx(N,{title:"Reset",onClick:()=>{s(`model.fields.${t}.options.default`,void 0,{shouldDirty:!0})},variant:"ghost",size:"icon",children:e.jsx(U,{})})]});if(r==="uuid")return n?.genUuid?e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(ge,{disabled:!0,value:"Random UUID v4",className:"flex-1"}),e.jsx(N,{title:"Reset",onClick:()=>{o({...n,genUuid:!1})},variant:"ghost",size:"icon",children:e.jsx(U,{})})]}):e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(Q,{control:d,placeholder:"NULL",name:`model.fields.${t}.options.default`,className:"flex-1"}),e.jsxs(pe,{children:[e.jsx(je,{asChild:!0,children:e.jsx(N,{title:"Options",variant:"ghost",size:"icon",children:e.jsx(ne,{})})}),e.jsx(he,{children:e.jsx(xe,{children:e.jsx(J,{onSelect:()=>{o({...n,genUuid:!0})},children:"Random UUID v4"})})})]})]});if(r==="dateTime"||r==="date"){const{defaultToNow:a,updatedAt:m}=n??{};return a??m?e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(ge,{disabled:!0,value:m?"Last Updated":"Now",className:"flex-1"}),e.jsx(N,{title:"Reset",onClick:()=>{o({...n,defaultToNow:!1,updatedAt:!1})},variant:"ghost",size:"icon",children:e.jsx(U,{})})]}):e.jsxs("div",{className:"flex items-center space-x-1",children:[e.jsx(Q,{placeholder:"NULL",control:d,name:`model.fields.${t}.options.default`,className:"flex-1"}),e.jsxs(pe,{children:[e.jsx(je,{asChild:!0,children:e.jsx(N,{title:"Options",variant:"ghost",size:"icon",children:e.jsx(ne,{})})}),e.jsx(he,{children:e.jsxs(xe,{children:[e.jsx(J,{onSelect:()=>{o({...n,defaultToNow:!0,updatedAt:!1})},children:"Now"}),e.jsx(J,{onSelect:()=>{o({...n,defaultToNow:!0,updatedAt:!0})},children:"Last Updated At"})]})})]})]})}if(r==="enum"&&n?.enumRef){const m=ni.byIdOrThrow(l,n.enumRef).values.map(c=>({label:c.friendlyName,value:c.id}));return e.jsxs("div",{className:"flex items-center space-x-1",children:[e.jsx(ti,{placeholder:"NULL",value:n.defaultEnumValueRef??null,onChange:c=>{o({...n,defaultEnumValueRef:c||void 0})},options:m,className:"flex-1"}),n.defaultEnumValueRef&&e.jsx(N,{title:"Reset",onClick:()=>{o({...n,defaultEnumValueRef:""})},variant:"ghost",size:"icon",children:e.jsx(U,{})})]})}return e.jsx("div",{})}const{SCALAR_FIELD_TYPES:li}=await f("@baseplate-dev/project-builder-lib"),{useProjectDefinition:ai}=await f("@baseplate-dev/project-builder-lib/web"),{ComboboxField:ri}=await f("@baseplate-dev/ui-components");function di({control:d,idx:t}){const{definition:s}=ai(),l=(s.enums??[]).map(p=>({label:p.name,value:`enum-${p.id}`,description:"Enum type"})),r=[...li.filter(p=>p!=="enum").map(p=>Me[p]),...l],{field:{value:n,onChange:o}}=I({name:`model.fields.${t}.type`,control:d}),{field:{value:i,onChange:a}}=I({name:`model.fields.${t}.options`,control:d}),m=p=>{if(p?.startsWith("enum-")){const x=p.replace("enum-","");a({enumRef:x}),o("enum")}else o(p)},c=i?.enumRef;return e.jsx("div",{className:"space-y-2",children:e.jsx(ri,{value:n==="enum"&&c?`enum-${c}`:n,onChange:m,options:r,renderItemLabel:p=>e.jsxs("div",{className:"flex flex-col",children:[e.jsx("div",{children:p.label}),e.jsx("div",{className:"text-xs text-muted-foreground",children:p.description})]})})})}const{modelUniqueConstraintEntityType:ci}=await f("@baseplate-dev/project-builder-lib"),{Button:ye,DropdownMenu:mi,DropdownMenuContent:ui,DropdownMenuGroup:fi,DropdownMenuItem:F,DropdownMenuTrigger:pi,InputFieldController:hi,SwitchFieldController:xi,toast:ji}=await f("@baseplate-dev/ui-components"),{useState:q}=await f("react");function gi({className:d,control:t,idx:s,setValue:l,onRemove:r}){const n=g(j=>j.model.fields[s]),o=g(j=>j.model.relations),i=g(j=>j.model.primaryKeyFieldRefs),a=g(j=>j.model.uniqueConstraints)??[],m=i.includes(n.id),c=i.length>1,p=a.filter(j=>j.fields.some(R=>R.fieldRef===n.id)),x=o?.filter(j=>j.references.some(R=>R.localRef===n.id))??[],h=(()=>{if(x.length>0)return`Unable to remove field as it is being used in relations ${x.map(j=>j.name).join(", ")}`;if(m&&c)return"Unable to remove field as it is being used in in the primary key";if(a.some(j=>j.fields.some(R=>R.fieldRef===n.id)))return"Unable to remove field as it is being used in in a unique constraint"})();function D(){if(h){ji.error(h);return}r(s),m&&!c&&l("model.primaryKeyFieldRefs",[],{shouldDirty:!0})}const[b,y]=q(!1),[H,P]=q(!1),[L,S]=q(),[$,T]=q(!1),[_,A]=q();return e.jsxs("div",{className:w("items-center",d),children:[e.jsx("div",{children:e.jsx(hi,{control:t,name:`model.fields.${s}.name`})}),e.jsx("div",{children:e.jsx(di,{control:t,idx:s})}),e.jsx("div",{children:e.jsx(xi,{control:t,name:`model.fields.${s}.isOptional`})}),e.jsx("div",{className:"mr-4",children:e.jsx(oi,{control:t,idx:s,setValue:l})}),e.jsx("div",{children:e.jsx(ei,{control:t,idx:s})}),e.jsx("div",{children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(mi,{children:[e.jsx(pi,{asChild:!0,children:e.jsx(ye,{variant:"ghost",size:"icon",children:e.jsx(ne,{})})}),e.jsx(ui,{children:e.jsxs(fi,{children:[x.length===0&&e.jsx(F,{onSelect:()=>{T(!0),A(void 0)},children:"Add Relation"}),x.length>0&&x.map(j=>e.jsxs(F,{onSelect:()=>{T(!0),A(j.id)},children:["Edit Relation ",x.length>1&&j.name]},j.id)),!c&&!m&&e.jsx(F,{onSelect:()=>{l("model.primaryKeyFieldRefs",[n.id],{shouldDirty:!0})},children:"Set as Primary Key"}),m&&e.jsx(F,{onSelect:()=>{y(!0)},children:"Edit Primary Key"}),p.length===0&&(c||!m)&&e.jsx(F,{onSelect:()=>{l("model.uniqueConstraints",[...a,{id:ci.generateNewId(),fields:[{fieldRef:n.id}]}],{shouldDirty:!0})},children:"Make Unique"}),p.length>0&&p.map((j,R)=>e.jsxs(F,{onSelect:()=>{S(j.id),P(!0)},children:["Edit Unique Constraint"," ",p.length>1&&R+1]},j.id))]})})]}),e.jsx(we,{control:t,open:b,onOpenChange:y}),e.jsx(V,{control:t,open:H,onOpenChange:P,constraintId:L}),e.jsx(k,{control:t,open:$,onOpenChange:T,relationId:_,defaultFieldName:n.name}),e.jsx(ye,{variant:"ghost",onClick:()=>{D()},size:"icon",children:e.jsx(qe,{})})]})})]})}function yi({className:d,control:t,setValue:s}){const{fields:l,remove:r,append:n,move:o}=Se({control:t,name:"model.fields"}),i="grid grid-cols-[repeat(2,minmax(130px,1fr))_60px_minmax(130px,1fr)_minmax(100px,1fr)_80px] gap-3",a=l.map((m,c)=>({id:m.id,element:e.jsx(gi,{className:i,control:t,setValue:s,idx:c,onRemove:r},m.id)}));return e.jsxs("div",{className:w("space-y-4",d),children:[l.length===0?e.jsx("p",{className:"pt-4 text-style-muted",children:"Add some fields to get started"}):e.jsxs("div",{className:"flex w-full flex-col gap-2 bg-white",children:[e.jsxs("div",{className:w(i,"sticky -top-0 z-10 bg-white py-2 text-sm font-semibold","pl-12"),children:[e.jsx("div",{children:"Name"}),e.jsx("div",{children:"Type"}),e.jsx("div",{children:"Optional"}),e.jsx("div",{children:"Default Value"}),e.jsx("div",{className:"sr-only",children:"Badges"}),e.jsx("div",{className:"sr-only",children:"Actions"})]}),e.jsx($e,{listItems:a,sortItems:o})]}),e.jsx(Ge,{appendField:n,setValue:s})]})}const{useProjectDefinition:vi}=await f("@baseplate-dev/project-builder-lib/web"),{Button:Z,RecordView:bi,RecordViewActions:Ci,RecordViewItem:z,RecordViewItemList:wi,SectionListSection:Di,SectionListSectionContent:Ri,SectionListSectionDescription:Si,SectionListSectionHeader:$i,SectionListSectionTitle:Ni,useConfirmDialog:Fi}=await f("@baseplate-dev/ui-components");function Mi({control:d,setValue:t}){const{requestConfirm:s}=Fi(),{definitionContainer:l}=vi(),r=g(({model:i})=>i.relations??[]),n=g(({model:i})=>Object.fromEntries(i.fields.map(a=>[a.id,a.name])));function o(i){const a=r.find(m=>m.id===i);s({title:"Delete Relation",content:`Are you sure you want to delete the relation "${a?.name??"<invalid>"}"?`,onConfirm:()=>{t("model.relations",r.filter(m=>m.id!==i))}})}return e.jsxs(Di,{children:[e.jsxs($i,{children:[e.jsx(Ni,{children:"Relations"}),e.jsx(Si,{children:"Define relations to enforce uniqueness on one or more fields."})]}),e.jsxs(Ri,{className:"space-y-4",children:[r.map(i=>e.jsxs(bi,{children:[e.jsxs(wi,{children:[e.jsx(z,{title:"Name",children:i.name}),e.jsx(z,{title:"Local Field",children:i.references.map(a=>n[a.localRef]).join(", ")}),e.jsx(z,{title:"Foreign Model",children:l.nameFromId(i.modelRef)}),e.jsx(z,{title:"On Delete",children:i.onDelete})]}),e.jsxs(Ci,{children:[e.jsx(k,{relationId:i.id,control:d,asChild:!0,children:e.jsx(Z,{variant:"ghost",size:"icon",title:"Edit",children:e.jsx(ve,{})})}),e.jsx(Z,{variant:"ghostDestructive",size:"icon",title:"Delete",onClick:()=>{o(i.id)},children:e.jsx(be,{})})]})]},i.id)),e.jsx(k,{control:d,asChild:!0,children:e.jsxs(Z,{variant:"secondary",size:"sm",children:[e.jsx(Ce,{}),"Add Relation"]})})]})]})}const{Button:ee,RecordView:Ii,RecordViewActions:Li,RecordViewItem:Ti,RecordViewItemList:Ei,SectionListSection:Oi,SectionListSectionContent:Ui,SectionListSectionDescription:qi,SectionListSectionHeader:Pi,SectionListSectionTitle:Ai,useConfirmDialog:Bi}=await f("@baseplate-dev/ui-components");function Ki({control:d,setValue:t}){const{requestConfirm:s}=Bi(),l=g(({model:o})=>o.uniqueConstraints??[]),r=g(({model:o})=>Object.fromEntries(o.fields.map(i=>[i.id,i.name])));function n(o){s({title:"Delete Unique Constraint",content:"Are you sure you want to delete this unique constraint?",onConfirm:()=>{t("model.uniqueConstraints",l.filter(i=>i.id!==o))}})}return e.jsxs(Oi,{children:[e.jsxs(Pi,{children:[e.jsx(Ai,{children:"Unique Constraints"}),e.jsx(qi,{children:"Define unique constraints to enforce uniqueness on one or more fields."})]}),e.jsxs(Ui,{className:"space-y-4",children:[l.map(o=>e.jsxs(Ii,{children:[e.jsx(Ei,{children:e.jsx(Ti,{title:"Fields",children:o.fields.map(i=>r[i.fieldRef]??"<invalid>").join(", ")})}),e.jsxs(Li,{children:[e.jsx(V,{constraintId:o.id,control:d,asChild:!0,children:e.jsx(ee,{variant:"ghost",size:"icon",title:"Edit",children:e.jsx(ve,{})})}),e.jsx(ee,{variant:"ghostDestructive",size:"icon",title:"Delete",onClick:()=>{n(o.id)},children:e.jsx(be,{})})]})]},o.id)),e.jsx(V,{control:d,asChild:!0,children:e.jsxs(ee,{variant:"secondary",size:"sm",children:[e.jsx(Ce,{}),"Add Unique Constraint"]})})]})]})}const{modelEntityType:zi,modelLocalRelationEntityType:ki,modelScalarFieldEntityType:Vi}=await f("@baseplate-dev/project-builder-lib"),{useBlockUnsavedChangesNavigate:Hi}=await f("@baseplate-dev/project-builder-lib/web"),{FormActionBar:_i,SectionList:Wi}=await f("@baseplate-dev/ui-components");se(zi,"/data/models/edit/{key}");se(Vi,"/data/models/edit/{parentKey}");se(ki,"/data/models/edit/{parentKey}");const it=function(){const{key:t}=Ne.useParams(),{form:s,onSubmit:l,originalModel:r}=Le({omit:["name","featureRef"],modelKey:t}),{control:n,watch:o,getValues:i,setValue:a,reset:m}=s;return Hi({control:n,reset:m,onSubmit:l}),e.jsx(Fe,{children:e.jsx(Ie,{originalModel:r,getValues:i,watch:o,children:e.jsxs("form",{onSubmit:l,className:"max-w-7xl min-w-[700px] flex-1 space-y-4 px-4 pb-4",children:[e.jsx(yi,{control:n,setValue:a}),e.jsxs(Wi,{children:[e.jsx(Mi,{control:n,setValue:a}),e.jsx(Ki,{control:n,setValue:a})]}),e.jsx(_i,{form:s})]})})})};export{it as component};
|
|
2
|
-
//# sourceMappingURL=index-BLuLGksP.js.map
|