@chaibuilder/pages 0.13.4 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{2AITGKQY-DpAgk_u8.cjs → 2AITGKQY-BLi5HVHf.cjs} +1 -1
- package/dist/{2AITGKQY-Dx_Cte-P.js → 2AITGKQY-iyhQ7kgG.js} +5 -5
- package/dist/{NCMVHL6D-B6lv7Umq.cjs → NCMVHL6D-CKYg8-AM.cjs} +1 -1
- package/dist/{NCMVHL6D-CT2qHOTS.js → NCMVHL6D-PLvSyK5P.js} +2 -2
- package/dist/{ZDWCUMSJ-C1vrgsti.cjs → ZDWCUMSJ-BJZ_Yi-4.cjs} +1 -1
- package/dist/{ZDWCUMSJ-W9xywtZH.js → ZDWCUMSJ-CuLkdxY-.js} +1 -1
- package/dist/add-new-language-page--ah9yzN3.cjs +1 -0
- package/dist/add-new-language-page-WM_Ve2vH.js +390 -0
- package/dist/add-new-page-Bs_NXM9x.js +30 -0
- package/dist/add-new-page-CnUo6xzd.cjs +1 -0
- package/dist/confetti.module-BuUnQuWk.cjs +2 -0
- package/dist/confetti.module-DCmCkDyV.js +409 -0
- package/dist/delete-page-Cf88UkqJ.cjs +1 -0
- package/dist/delete-page-D8xhYESu.js +38 -0
- package/dist/digital-asset-manager-BAFTqxsM.js +976 -0
- package/dist/digital-asset-manager-D_lcprwY.cjs +1 -0
- package/dist/duplicate-page-BX1gOez-.cjs +1 -0
- package/dist/duplicate-page-CqXTGmWt.js +120 -0
- package/dist/dynamic-page-selector-0TiUnfUg.js +86 -0
- package/dist/dynamic-page-selector-9JIQrcq5.cjs +1 -0
- package/dist/get-seo-defaults-9zHebckY.js +65 -0
- package/dist/get-seo-defaults-Cw7vFt-B.cjs +1 -0
- package/dist/image-compression-DZ9WMmyn.cjs +1 -0
- package/dist/image-compression-DsZ1oqpb.js +37 -0
- package/dist/index-D7kegQ3M.js +5153 -0
- package/dist/index-LU0FTfeN.cjs +5 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +4 -22
- package/dist/index.js +20 -21
- package/dist/json-diff-viewer-Be-PVOZN.cjs +8 -0
- package/dist/json-diff-viewer-C2GK_BDh.js +258 -0
- package/dist/lang-panel-CPFS1ssC.js +218 -0
- package/dist/lang-panel-CePltxo2.cjs +1 -0
- package/dist/mark-as-template-DeB23sWR.cjs +1 -0
- package/dist/mark-as-template-jdwcgRIB.js +146 -0
- package/dist/nested-path-selector-content-D_iF9Sm3.cjs +1 -0
- package/dist/nested-path-selector-content-DvIL_EoN.js +87 -0
- package/dist/no-language-page-content-DUM4KxWu.js +35 -0
- package/dist/no-language-page-content-Dsm2H3pc.cjs +1 -0
- package/dist/page-creator-BjuYmKfc.js +796 -0
- package/dist/page-creator-DG0LwvL1.cjs +1 -0
- package/dist/page-lock-request-B9WPmFcd.cjs +1 -0
- package/dist/page-lock-request-BceB1S-X.js +64 -0
- package/dist/page-locked-by-dialog-2MULM3jh.cjs +1 -0
- package/dist/page-locked-by-dialog-BEWfFLSc.js +63 -0
- package/dist/page-manager-new-BONZN4c5.cjs +1 -0
- package/dist/page-manager-new-DV6A9WFv.js +354 -0
- package/dist/page-manager-search-and-filter-3h4URMP_.cjs +1 -0
- package/dist/page-manager-search-and-filter-DIiowi9F.js +197 -0
- package/dist/page-revisions-content-BIxeZeND.js +446 -0
- package/dist/page-revisions-content-CQbt25XX.cjs +1 -0
- package/dist/publish-pages-content-CdKHrfys.js +178 -0
- package/dist/publish-pages-content-im9dPOBM.cjs +1 -0
- package/dist/save-to-lib-DGII9CEP.js +476 -0
- package/dist/save-to-lib-DOh-850u.cjs +1 -0
- package/dist/seo-panel-2VdpoGSg.cjs +1 -0
- package/dist/seo-panel-Bxo4f-a_.js +667 -0
- package/dist/shared-json-ld-C1OewNgp.cjs +1 -0
- package/dist/shared-json-ld-gbnBFljN.js +337 -0
- package/dist/slug-input-BmcGmc_i.js +87 -0
- package/dist/slug-input-CfuQV97Z.cjs +1 -0
- package/dist/theme-panel-footer-D3SwHqGR.js +25 -0
- package/dist/theme-panel-footer-FrY4U8zn.cjs +1 -0
- package/dist/translation-warning-modal-DalBhNQy.js +26 -0
- package/dist/translation-warning-modal-Kctu12rQ.cjs +1 -0
- package/dist/unmark-as-template-CihtTMOb.cjs +1 -0
- package/dist/unmark-as-template-UwmCCn0u.js +38 -0
- package/dist/unpublish-page-CNwIU6AS.js +26 -0
- package/dist/unpublish-page-DzLtZcNw.cjs +1 -0
- package/dist/use-page-expand-manager-B7JtHdg5.cjs +1 -0
- package/dist/use-page-expand-manager-BCFQnVkT.js +85 -0
- package/package.json +1 -1
- package/dist/index-C4j31Yhz.js +0 -11471
- package/dist/index-DnjETHks.cjs +0 -6
- package/dist/page-revisions-content-Gx-Qf_91.cjs +0 -8
- package/dist/page-revisions-content-_-Nd4U11.js +0 -712
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var xs = Object.defineProperty;
|
|
2
2
|
var ws = (e, t, n) => t in e ? xs(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
|
|
3
3
|
var _e = (e, t, n) => ws(e, typeof t != "symbol" ? t + "" : t, n);
|
|
4
|
-
import {
|
|
4
|
+
import { v as Vn, w as jn, x as K, y as sr, z as H, s as y, D as W, E as oe, S as R, r as O, F as $e, G as Ce, H as G, I as A, J as He, K as ft, M as ve, P as Ro, N as V, O as $s, Q as P, R as wt, T as un, U as k, V as T, W as Cs, X as Kt, Y as Ss, Z as ks, _ as Cn, $ as Es, a0 as Ds, a1 as Ms, a2 as Nt, a3 as As, a4 as Ts, a5 as Fs, a6 as ar, a7 as Hr, a8 as qs, a9 as _t, aa as Ko, ab as Ur, ac as Is, ad as Os, ae as Kn, af as Ls, ag as Ps, ah as _s } from "./index-D7kegQ3M.js";
|
|
5
5
|
var zs = (e) => e != null, Rs = (e) => e.filter(zs);
|
|
6
6
|
function Ks(e) {
|
|
7
7
|
return (...t) => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),M=require("./slug-input-CfuQV97Z.cjs"),t=require("./index-LU0FTfeN.cjs"),H=require("@chaibuilder/sdk"),E=require("@chaibuilder/sdk/ui"),W=require("lodash-es"),us=require("lucide-react"),T=require("react"),J=({edit:a,lang:h,languages:i,name:u,setLang:o,setName:r,primaryPageObject:l})=>e.jsxs("div",{className:"space-y-1",children:[e.jsx(E.Label,{htmlFor:"lang",children:t.CONTENT.LANGUAGE}),e.jsxs("select",{value:a?"":h,disabled:a||!i.length,onChange:s=>{const c=s.target.value;o(c),!a&&(W.startsWith(u,l==null?void 0:l.name)||u.length===0)&&r(`${l==null?void 0:l.name} - ${t.LANGUAGES[c]}`)},className:"col-span-3 flex h-9 w-full rounded-md border border-border bg-background px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",children:[e.jsx("option",{value:"",disabled:!0,children:a?t.LANGUAGES[h]||h:i.length?t.CONTENT.CHOOSE_LANGUAGE:t.CONTENT.ALL_AVAILABLE_LANGUAGE_PAGE}),i.map(s=>e.jsx("option",{value:s,children:t.LANGUAGES[s]||s},s))]})]}),K=({lang:a,name:h,setName:i,parentHasSelectedLanguagePage:u})=>e.jsxs("div",{className:"space-y-1",children:[e.jsx(E.Label,{htmlFor:"name",children:t.CONTENT.PAGE_NAME}),e.jsx(E.Input,{id:"name",value:a?h:"",onChange:o=>i(o.target.value),required:!0,placeholder:a?t.CONTENT.ENTER_PAGE_NAME:t.CONTENT.CHOOSE_LANGUAGE_TO_ADD_SLUG,disabled:!u||!a})]}),ds=({dynamic:a,isNonSlugPageType:h,isRootPage:i,lang:u,useLanguagePrefix:o,setUseLanguagePrefix:r,isHomePage:l,parentSlug:s,parentHasSelectedLanguagePage:c,slug:N,setSlug:d,setIsSlugValid:A,getSlug:x})=>h?null:e.jsxs("div",{className:"space-y-1",children:[i&&u&&e.jsxs("div",{className:"flex items-center space-x-2 pb-1",children:[e.jsx("input",{type:"checkbox",id:"useLanguagePrefix",checked:o,onChange:S=>r(S.target.checked),className:"rounded border-gray-300"}),e.jsxs(E.Label,{htmlFor:"useLanguagePrefix",className:"text-sm font-normal leading-tight",children:["Add language code (",e.jsxs("span",{className:"font-mono text-gray-900",children:["/",u]}),") as slug prefix"]})]}),e.jsx(E.Label,{htmlFor:"slug",children:t.CONTENT.SLUG}),a?e.jsx(E.Alert,{variant:"default",className:"p-2 text-xs font-medium italic text-muted-foreground",children:"This page will use dynamic slug as defined in primary page"}):e.jsx(M.SlugInput,{disabled:!u||!c,value:N,onChange:d,placeholder:u?l&&o?"Leave empty for home page":t.CONTENT.ENTER_PAGE_SLUG:t.CONTENT.CHOOSE_LANGUAGE_TO_ADD_SLUG,parentSlug:s,onValidationChange:A,fullSlug:x()})]}),Q=({parentHasSelectedLanguagePage:a,name:h,lang:i,slug:u,edit:o,id:r,primaryPageObject:l,pages:s,isNonSlugPageType:c,isHomePage:N,useLanguagePrefix:d,isSlugValid:A,isPending:x})=>{const S=x||!h||!i||s.some(f=>(o?f.id!==r:!0)&&f.parent===(l==null?void 0:l.id)&&f.lang===i)||!c&&!(N&&d)&&(!A||!u);return e.jsx(E.DialogFooter,{children:a?e.jsxs(e.Fragment,{children:[e.jsx(E.Button,{type:"submit",disabled:S&&!l.dynamic,children:x?e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"loader mr-2"}),o?t.CONTENT.UPDATING:t.CONTENT.ADDING]}):o?t.CONTENT.UPDATE:t.CONTENT.ADD_NEW_LANGUAGE}),s.some(f=>(o?f.id!==r:!0)&&f.parent===(l==null?void 0:l.id)&&f.lang===i)&&e.jsx("p",{className:"mt-2 text-xs text-red-500",children:"A page for this language already exists."})]}):i&&e.jsx(E.Alert,{variant:"destructive",children:e.jsxs("p",{className:"mx-auto w-5/6 text-center",children:["You need to create the ",e.jsx("span",{className:"font-medium",children:t.LANGUAGES[i]})," page in the parent to add here."]})})})},cs=({onSubmit:a,edit:h,lang:i,languages:u,name:o,setLang:r,setName:l,primaryPageObject:s,parentHasSelectedLanguagePage:c,id:N,pages:d,isNonSlugPageType:A,isHomePage:x,useLanguagePrefix:S,slug:f,isSlugValid:U,isPending:G})=>e.jsxs("form",{onSubmit:a,children:[e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsx(J,{edit:h,lang:i,languages:u,name:o,setLang:r,setName:l,primaryPageObject:s}),e.jsx(K,{lang:i,name:o,setName:l,parentHasSelectedLanguagePage:c})]}),e.jsx(Q,{parentHasSelectedLanguagePage:c,name:o,lang:i,slug:f,edit:h,id:N,primaryPageObject:s,pages:d,isNonSlugPageType:A,isHomePage:x,useLanguagePrefix:S,isSlugValid:U,isPending:G})]}),as=({loading:a,onSubmit:h,edit:i,lang:u,languages:o,name:r,setLang:l,setName:s,primaryPageObject:c,parentHasSelectedLanguagePage:N,isNonSlugPageType:d,isRootPage:A,useLanguagePrefix:x,setUseLanguagePrefix:S,isHomePage:f,parentSlug:U,slug:G,setSlug:_,isSlugValid:D,setIsSlugValid:$,getSlug:I,isPending:F,id:w,pages:v})=>a?e.jsx("div",{className:"flex h-80 items-center justify-center",children:e.jsx(us.Loader,{className:"animate-spin"})}):d?e.jsx(cs,{onSubmit:h,edit:i,lang:u,languages:o,name:r,setLang:l,setName:s,primaryPageObject:c,parentHasSelectedLanguagePage:N,id:w,pages:v,isNonSlugPageType:d,isHomePage:f,useLanguagePrefix:x,slug:G,isSlugValid:D,isPending:F}):e.jsxs("form",{onSubmit:h,children:[e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsx(J,{edit:i,lang:u,languages:o,name:r,setLang:l,setName:s,primaryPageObject:c}),e.jsx(K,{lang:u,name:r,setName:s,parentHasSelectedLanguagePage:N}),e.jsx(ds,{dynamic:c==null?void 0:c.dynamic,isNonSlugPageType:d,isRootPage:A,lang:u,useLanguagePrefix:x,setUseLanguagePrefix:S,isHomePage:f,parentSlug:U,parentHasSelectedLanguagePage:N,slug:G,setSlug:_,isSlugValid:D,setIsSlugValid:$,getSlug:I})]}),e.jsx(Q,{parentHasSelectedLanguagePage:N,name:r,lang:u,slug:G,edit:i,id:w,primaryPageObject:c,pages:v,isNonSlugPageType:d,isHomePage:f,useLanguagePrefix:x,isSlugValid:D,isPending:F})]}),rs=({id:a,isOpen:h,onClose:i,primaryPage:u,edit:o=!1,preselectedLang:r})=>{const{data:l=[]}=t.useWebsitePages(),s=T.useMemo(()=>l.find(n=>n.id===u),[l,u]),[c,N]=T.useState(""),[d,A]=T.useState(""),[x,S]=T.useState(""),[f,U]=T.useState(!0),[G,_]=T.useState(!0),{mutate:D,isPending:$}=t.useCreatePage(),{mutate:I,isPending:F}=t.useUpdatePage(),w=$||F,{data:v,isFetching:X}=t.useWebsiteSetting(),B=t.useFallbackLang(),{data:m,isFetching:Z}=t.useLanguagePages(u),{data:L=[],isFetching:b}=t.useLanguagePages(s==null?void 0:s.parent),{data:V=[],isFetching:y}=t.usePageTypes(),{setSelectedLang:O}=H.useLanguages(),[,P]=t.useSearchParams(),[,ss]=H.useSidebarActivePanel(),es=X||Z||b||y,C=T.useMemo(()=>W.filter(v==null?void 0:v.languages,n=>!W.find(m,{lang:n})),[v,m]),q=T.useMemo(()=>V.find(n=>n.key===(s==null?void 0:s.pageType)),[V,s==null?void 0:s.pageType]),Y=!(q!=null&&q.hasSlug),k=(s==null?void 0:s.slug)==="/";T.useEffect(()=>{if(!o&&s&&r&&(A(r),N(`${s.name} - ${t.LANGUAGES[r]}`)),!o||!s)return;const n=m==null?void 0:m.find(is=>is.id===a);if(!n)return;N(n.name),A(n.lang);const g=n.slug||"",{initSlug:R,prefix:ls}=M.parseSlugForEdit(g,s);S(R),_(ls)},[o,a,m,s,r]),T.useEffect(()=>{if(r)A(r);else if((C==null?void 0:C.length)===1&&!o){const n=C[0];if(!n||!t.LANGUAGES[n])return;A(n),(!c||c===(s==null?void 0:s.name))&&N(`${s==null?void 0:s.name} - ${t.LANGUAGES[n]}`)}},[r,C,o,c,s]);const{parentSlug:j,isRootPage:p}=T.useMemo(()=>{if(k||!d)return{parentSlug:void 0,isRootPage:!(s!=null&&s.parent)};if(!(s!=null&&s.parent))return{parentSlug:G?`/${d}`:void 0,isRootPage:!0};const n=L==null?void 0:L.find(g=>g.lang===d);return{parentSlug:n==null?void 0:n.slug,isRootPage:!1}},[s==null?void 0:s.parent,L,G,d,k]),ns=T.useMemo(()=>p?!0:!!(L!=null&&L.some(n=>(n==null?void 0:n.lang)===d)),[d,L,p]),z=()=>{let n="";return p?n=`/${G?[d,x].filter(Boolean).join("/"):x}`:n=`${M.removeSlugExtension(j)}/${x}`,n.replace(/\/{2,}/g,"/").replace(/\/$/,"")},ts=n=>{const g=new URLSearchParams(window.location.search);B&&n===B?g.delete("lang"):g.set("lang",n),P(g),window.dispatchEvent(new PopStateEvent("popstate"))},os=n=>{n.preventDefault();const g={name:c,lang:d,primaryPage:s==null?void 0:s.id,slug:Y?"":z(),pageType:s==null?void 0:s.pageType,...o&&{id:a}},R=()=>{!o&&d&&(O(d),ts(d)),ss("outline"),i()};o?I(g,{onSuccess:R}):D(g,{onSuccess:R})};return e.jsx(E.Dialog,{open:h,onOpenChange:i,children:h&&e.jsxs(E.DialogContent,{className:"text-slate-600 sm:max-w-[425px]",children:[e.jsxs(E.DialogHeader,{children:[e.jsx(E.DialogTitle,{children:o?t.CONTENT.EDIT_LANGUAGE:t.CONTENT.ADD_NEW_LANGUAGE}),e.jsx(E.DialogDescription,{className:"font-light",children:t.CONTENT.ENTER_LANGUAGE_DETAILS})]}),e.jsx(as,{id:a,pages:l,loading:es,onSubmit:os,edit:o,lang:d,languages:C,name:c,setLang:A,setName:N,primaryPageObject:s,parentHasSelectedLanguagePage:ns,isNonSlugPageType:Y,isRootPage:p,useLanguagePrefix:G,setUseLanguagePrefix:_,isHomePage:k,parentSlug:j,slug:x,setSlug:S,isSlugValid:f,setIsSlugValid:U,getSlug:z,isPending:w})]})})};exports.default=rs;
|
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
import { jsx as t, jsxs as h, Fragment as rn } from "react/jsx-runtime";
|
|
2
|
+
import { p as hn, r as fn, S as An } from "./slug-input-BmcGmc_i.js";
|
|
3
|
+
import { b as Nn, c as mn, d as En, e as Sn, f as gn, g as K, h as xn, i as Gn, L, C as f } from "./index-D7kegQ3M.js";
|
|
4
|
+
import { useLanguages as vn, useSidebarActivePanel as Ln } from "@chaibuilder/sdk";
|
|
5
|
+
import { Dialog as Dn, DialogContent as _n, DialogHeader as Un, DialogTitle as pn, DialogDescription as Fn, Label as k, Input as Tn, Alert as X, DialogFooter as wn, Button as Cn } from "@chaibuilder/sdk/ui";
|
|
6
|
+
import { filter as $n, find as In, startsWith as Rn } from "lodash-es";
|
|
7
|
+
import { Loader as kn } from "lucide-react";
|
|
8
|
+
import { useMemo as F, useState as T, useEffect as Q } from "react";
|
|
9
|
+
const Z = ({
|
|
10
|
+
edit: u,
|
|
11
|
+
lang: r,
|
|
12
|
+
languages: l,
|
|
13
|
+
name: i,
|
|
14
|
+
setLang: e,
|
|
15
|
+
setName: c,
|
|
16
|
+
primaryPageObject: o
|
|
17
|
+
}) => /* @__PURE__ */ h("div", { className: "space-y-1", children: [
|
|
18
|
+
/* @__PURE__ */ t(k, { htmlFor: "lang", children: f.LANGUAGE }),
|
|
19
|
+
/* @__PURE__ */ h(
|
|
20
|
+
"select",
|
|
21
|
+
{
|
|
22
|
+
value: u ? "" : r,
|
|
23
|
+
disabled: u || !l.length,
|
|
24
|
+
onChange: (n) => {
|
|
25
|
+
const a = n.target.value;
|
|
26
|
+
e(a), !u && (Rn(i, o == null ? void 0 : o.name) || i.length === 0) && c(`${o == null ? void 0 : o.name} - ${L[a]}`);
|
|
27
|
+
},
|
|
28
|
+
className: "col-span-3 flex h-9 w-full rounded-md border border-border bg-background px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
|
|
29
|
+
children: [
|
|
30
|
+
/* @__PURE__ */ t("option", { value: "", disabled: !0, children: u ? L[r] || r : l.length ? f.CHOOSE_LANGUAGE : f.ALL_AVAILABLE_LANGUAGE_PAGE }),
|
|
31
|
+
l.map((n) => /* @__PURE__ */ t("option", { value: n, children: L[n] || n }, n))
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
)
|
|
35
|
+
] }), b = ({ lang: u, name: r, setName: l, parentHasSelectedLanguagePage: i }) => /* @__PURE__ */ h("div", { className: "space-y-1", children: [
|
|
36
|
+
/* @__PURE__ */ t(k, { htmlFor: "name", children: f.PAGE_NAME }),
|
|
37
|
+
/* @__PURE__ */ t(
|
|
38
|
+
Tn,
|
|
39
|
+
{
|
|
40
|
+
id: "name",
|
|
41
|
+
value: u ? r : "",
|
|
42
|
+
onChange: (e) => l(e.target.value),
|
|
43
|
+
required: !0,
|
|
44
|
+
placeholder: u ? f.ENTER_PAGE_NAME : f.CHOOSE_LANGUAGE_TO_ADD_SLUG,
|
|
45
|
+
disabled: !i || !u
|
|
46
|
+
}
|
|
47
|
+
)
|
|
48
|
+
] }), Wn = ({
|
|
49
|
+
dynamic: u,
|
|
50
|
+
isNonSlugPageType: r,
|
|
51
|
+
isRootPage: l,
|
|
52
|
+
lang: i,
|
|
53
|
+
useLanguagePrefix: e,
|
|
54
|
+
setUseLanguagePrefix: c,
|
|
55
|
+
isHomePage: o,
|
|
56
|
+
parentSlug: n,
|
|
57
|
+
parentHasSelectedLanguagePage: a,
|
|
58
|
+
slug: A,
|
|
59
|
+
setSlug: d,
|
|
60
|
+
setIsSlugValid: E,
|
|
61
|
+
getSlug: N
|
|
62
|
+
}) => r ? null : /* @__PURE__ */ h("div", { className: "space-y-1", children: [
|
|
63
|
+
l && i && /* @__PURE__ */ h("div", { className: "flex items-center space-x-2 pb-1", children: [
|
|
64
|
+
/* @__PURE__ */ t(
|
|
65
|
+
"input",
|
|
66
|
+
{
|
|
67
|
+
type: "checkbox",
|
|
68
|
+
id: "useLanguagePrefix",
|
|
69
|
+
checked: e,
|
|
70
|
+
onChange: (S) => c(S.target.checked),
|
|
71
|
+
className: "rounded border-gray-300"
|
|
72
|
+
}
|
|
73
|
+
),
|
|
74
|
+
/* @__PURE__ */ h(k, { htmlFor: "useLanguagePrefix", className: "text-sm font-normal leading-tight", children: [
|
|
75
|
+
"Add language code (",
|
|
76
|
+
/* @__PURE__ */ h("span", { className: "font-mono text-gray-900", children: [
|
|
77
|
+
"/",
|
|
78
|
+
i
|
|
79
|
+
] }),
|
|
80
|
+
") as slug prefix"
|
|
81
|
+
] })
|
|
82
|
+
] }),
|
|
83
|
+
/* @__PURE__ */ t(k, { htmlFor: "slug", children: f.SLUG }),
|
|
84
|
+
u ? /* @__PURE__ */ t(X, { variant: "default", className: "p-2 text-xs font-medium italic text-muted-foreground", children: "This page will use dynamic slug as defined in primary page" }) : /* @__PURE__ */ t(
|
|
85
|
+
An,
|
|
86
|
+
{
|
|
87
|
+
disabled: !i || !a,
|
|
88
|
+
value: A,
|
|
89
|
+
onChange: d,
|
|
90
|
+
placeholder: i ? o && e ? "Leave empty for home page" : f.ENTER_PAGE_SLUG : f.CHOOSE_LANGUAGE_TO_ADD_SLUG,
|
|
91
|
+
parentSlug: n,
|
|
92
|
+
onValidationChange: E,
|
|
93
|
+
fullSlug: N()
|
|
94
|
+
}
|
|
95
|
+
)
|
|
96
|
+
] }), y = ({
|
|
97
|
+
parentHasSelectedLanguagePage: u,
|
|
98
|
+
name: r,
|
|
99
|
+
lang: l,
|
|
100
|
+
slug: i,
|
|
101
|
+
edit: e,
|
|
102
|
+
id: c,
|
|
103
|
+
primaryPageObject: o,
|
|
104
|
+
pages: n,
|
|
105
|
+
isNonSlugPageType: a,
|
|
106
|
+
isHomePage: A,
|
|
107
|
+
useLanguagePrefix: d,
|
|
108
|
+
isSlugValid: E,
|
|
109
|
+
isPending: N
|
|
110
|
+
}) => {
|
|
111
|
+
const S = N || !r || !l || n.some((m) => (e ? m.id !== c : !0) && m.parent === (o == null ? void 0 : o.id) && m.lang === l) || !a && !(A && d) && (!E || !i);
|
|
112
|
+
return /* @__PURE__ */ t(wn, { children: u ? /* @__PURE__ */ h(rn, { children: [
|
|
113
|
+
/* @__PURE__ */ t(Cn, { type: "submit", disabled: S && !o.dynamic, children: N ? /* @__PURE__ */ h("span", { className: "flex items-center gap-2", children: [
|
|
114
|
+
/* @__PURE__ */ t("span", { className: "loader mr-2" }),
|
|
115
|
+
e ? f.UPDATING : f.ADDING
|
|
116
|
+
] }) : e ? f.UPDATE : f.ADD_NEW_LANGUAGE }),
|
|
117
|
+
n.some(
|
|
118
|
+
(m) => (e ? m.id !== c : !0) && m.parent === (o == null ? void 0 : o.id) && m.lang === l
|
|
119
|
+
) && /* @__PURE__ */ t("p", { className: "mt-2 text-xs text-red-500", children: "A page for this language already exists." })
|
|
120
|
+
] }) : l && /* @__PURE__ */ t(X, { variant: "destructive", children: /* @__PURE__ */ h("p", { className: "mx-auto w-5/6 text-center", children: [
|
|
121
|
+
"You need to create the ",
|
|
122
|
+
/* @__PURE__ */ t("span", { className: "font-medium", children: L[l] }),
|
|
123
|
+
" page in the parent to add here."
|
|
124
|
+
] }) }) });
|
|
125
|
+
}, Bn = ({
|
|
126
|
+
onSubmit: u,
|
|
127
|
+
edit: r,
|
|
128
|
+
lang: l,
|
|
129
|
+
languages: i,
|
|
130
|
+
name: e,
|
|
131
|
+
setLang: c,
|
|
132
|
+
setName: o,
|
|
133
|
+
primaryPageObject: n,
|
|
134
|
+
parentHasSelectedLanguagePage: a,
|
|
135
|
+
id: A,
|
|
136
|
+
pages: d,
|
|
137
|
+
isNonSlugPageType: E,
|
|
138
|
+
isHomePage: N,
|
|
139
|
+
useLanguagePrefix: S,
|
|
140
|
+
slug: m,
|
|
141
|
+
isSlugValid: U,
|
|
142
|
+
isPending: g
|
|
143
|
+
}) => /* @__PURE__ */ h("form", { onSubmit: u, children: [
|
|
144
|
+
/* @__PURE__ */ h("div", { className: "grid gap-4 py-4", children: [
|
|
145
|
+
/* @__PURE__ */ t(
|
|
146
|
+
Z,
|
|
147
|
+
{
|
|
148
|
+
edit: r,
|
|
149
|
+
lang: l,
|
|
150
|
+
languages: i,
|
|
151
|
+
name: e,
|
|
152
|
+
setLang: c,
|
|
153
|
+
setName: o,
|
|
154
|
+
primaryPageObject: n
|
|
155
|
+
}
|
|
156
|
+
),
|
|
157
|
+
/* @__PURE__ */ t(
|
|
158
|
+
b,
|
|
159
|
+
{
|
|
160
|
+
lang: l,
|
|
161
|
+
name: e,
|
|
162
|
+
setName: o,
|
|
163
|
+
parentHasSelectedLanguagePage: a
|
|
164
|
+
}
|
|
165
|
+
)
|
|
166
|
+
] }),
|
|
167
|
+
/* @__PURE__ */ t(
|
|
168
|
+
y,
|
|
169
|
+
{
|
|
170
|
+
parentHasSelectedLanguagePage: a,
|
|
171
|
+
name: e,
|
|
172
|
+
lang: l,
|
|
173
|
+
slug: m,
|
|
174
|
+
edit: r,
|
|
175
|
+
id: A,
|
|
176
|
+
primaryPageObject: n,
|
|
177
|
+
pages: d,
|
|
178
|
+
isNonSlugPageType: E,
|
|
179
|
+
isHomePage: N,
|
|
180
|
+
useLanguagePrefix: S,
|
|
181
|
+
isSlugValid: U,
|
|
182
|
+
isPending: g
|
|
183
|
+
}
|
|
184
|
+
)
|
|
185
|
+
] }), Mn = ({
|
|
186
|
+
loading: u,
|
|
187
|
+
onSubmit: r,
|
|
188
|
+
edit: l,
|
|
189
|
+
lang: i,
|
|
190
|
+
languages: e,
|
|
191
|
+
name: c,
|
|
192
|
+
setLang: o,
|
|
193
|
+
setName: n,
|
|
194
|
+
primaryPageObject: a,
|
|
195
|
+
parentHasSelectedLanguagePage: A,
|
|
196
|
+
isNonSlugPageType: d,
|
|
197
|
+
isRootPage: E,
|
|
198
|
+
useLanguagePrefix: N,
|
|
199
|
+
setUseLanguagePrefix: S,
|
|
200
|
+
isHomePage: m,
|
|
201
|
+
parentSlug: U,
|
|
202
|
+
slug: g,
|
|
203
|
+
setSlug: w,
|
|
204
|
+
isSlugValid: p,
|
|
205
|
+
setIsSlugValid: W,
|
|
206
|
+
getSlug: B,
|
|
207
|
+
isPending: C,
|
|
208
|
+
id: $,
|
|
209
|
+
pages: v
|
|
210
|
+
}) => u ? /* @__PURE__ */ t("div", { className: "flex h-80 items-center justify-center", children: /* @__PURE__ */ t(kn, { className: "animate-spin" }) }) : d ? /* @__PURE__ */ t(
|
|
211
|
+
Bn,
|
|
212
|
+
{
|
|
213
|
+
onSubmit: r,
|
|
214
|
+
edit: l,
|
|
215
|
+
lang: i,
|
|
216
|
+
languages: e,
|
|
217
|
+
name: c,
|
|
218
|
+
setLang: o,
|
|
219
|
+
setName: n,
|
|
220
|
+
primaryPageObject: a,
|
|
221
|
+
parentHasSelectedLanguagePage: A,
|
|
222
|
+
id: $,
|
|
223
|
+
pages: v,
|
|
224
|
+
isNonSlugPageType: d,
|
|
225
|
+
isHomePage: m,
|
|
226
|
+
useLanguagePrefix: N,
|
|
227
|
+
slug: g,
|
|
228
|
+
isSlugValid: p,
|
|
229
|
+
isPending: C
|
|
230
|
+
}
|
|
231
|
+
) : /* @__PURE__ */ h("form", { onSubmit: r, children: [
|
|
232
|
+
/* @__PURE__ */ h("div", { className: "grid gap-4 py-4", children: [
|
|
233
|
+
/* @__PURE__ */ t(
|
|
234
|
+
Z,
|
|
235
|
+
{
|
|
236
|
+
edit: l,
|
|
237
|
+
lang: i,
|
|
238
|
+
languages: e,
|
|
239
|
+
name: c,
|
|
240
|
+
setLang: o,
|
|
241
|
+
setName: n,
|
|
242
|
+
primaryPageObject: a
|
|
243
|
+
}
|
|
244
|
+
),
|
|
245
|
+
/* @__PURE__ */ t(
|
|
246
|
+
b,
|
|
247
|
+
{
|
|
248
|
+
lang: i,
|
|
249
|
+
name: c,
|
|
250
|
+
setName: n,
|
|
251
|
+
parentHasSelectedLanguagePage: A
|
|
252
|
+
}
|
|
253
|
+
),
|
|
254
|
+
/* @__PURE__ */ t(
|
|
255
|
+
Wn,
|
|
256
|
+
{
|
|
257
|
+
dynamic: a == null ? void 0 : a.dynamic,
|
|
258
|
+
isNonSlugPageType: d,
|
|
259
|
+
isRootPage: E,
|
|
260
|
+
lang: i,
|
|
261
|
+
useLanguagePrefix: N,
|
|
262
|
+
setUseLanguagePrefix: S,
|
|
263
|
+
isHomePage: m,
|
|
264
|
+
parentSlug: U,
|
|
265
|
+
parentHasSelectedLanguagePage: A,
|
|
266
|
+
slug: g,
|
|
267
|
+
setSlug: w,
|
|
268
|
+
isSlugValid: p,
|
|
269
|
+
setIsSlugValid: W,
|
|
270
|
+
getSlug: B
|
|
271
|
+
}
|
|
272
|
+
)
|
|
273
|
+
] }),
|
|
274
|
+
/* @__PURE__ */ t(
|
|
275
|
+
y,
|
|
276
|
+
{
|
|
277
|
+
parentHasSelectedLanguagePage: A,
|
|
278
|
+
name: c,
|
|
279
|
+
lang: i,
|
|
280
|
+
slug: g,
|
|
281
|
+
edit: l,
|
|
282
|
+
id: $,
|
|
283
|
+
primaryPageObject: a,
|
|
284
|
+
pages: v,
|
|
285
|
+
isNonSlugPageType: d,
|
|
286
|
+
isHomePage: m,
|
|
287
|
+
useLanguagePrefix: N,
|
|
288
|
+
isSlugValid: p,
|
|
289
|
+
isPending: C
|
|
290
|
+
}
|
|
291
|
+
)
|
|
292
|
+
] }), Xn = ({
|
|
293
|
+
id: u,
|
|
294
|
+
isOpen: r,
|
|
295
|
+
onClose: l,
|
|
296
|
+
primaryPage: i,
|
|
297
|
+
edit: e = !1,
|
|
298
|
+
preselectedLang: c
|
|
299
|
+
}) => {
|
|
300
|
+
const { data: o = [] } = Nn(), n = F(() => o.find((s) => s.id === i), [o, i]), [a, A] = T(""), [d, E] = T(""), [N, S] = T(""), [m, U] = T(!0), [g, w] = T(!0), { mutate: p, isPending: W } = mn(), { mutate: B, isPending: C } = En(), $ = W || C, { data: v, isFetching: P } = Sn(), q = gn(), { data: D, isFetching: O } = K(i), { data: G = [], isFetching: j } = K(
|
|
301
|
+
n == null ? void 0 : n.parent
|
|
302
|
+
), { data: Y = [], isFetching: nn } = xn(), { setSelectedLang: sn } = vn(), [, en] = Gn(), [, tn] = Ln(), on = P || O || j || nn, _ = F(() => $n(v == null ? void 0 : v.languages, (s) => !In(D, { lang: s })), [v, D]), M = F(
|
|
303
|
+
() => Y.find((s) => s.key === (n == null ? void 0 : n.pageType)),
|
|
304
|
+
[Y, n == null ? void 0 : n.pageType]
|
|
305
|
+
), z = !(M != null && M.hasSlug), V = (n == null ? void 0 : n.slug) === "/";
|
|
306
|
+
Q(() => {
|
|
307
|
+
if (!e && n && c && (E(c), A(`${n.name} - ${L[c]}`)), !e || !n) return;
|
|
308
|
+
const s = D == null ? void 0 : D.find((cn) => cn.id === u);
|
|
309
|
+
if (!s) return;
|
|
310
|
+
A(s.name), E(s.lang);
|
|
311
|
+
const x = s.slug || "", { initSlug: R, prefix: un } = hn(x, n);
|
|
312
|
+
S(R), w(un);
|
|
313
|
+
}, [e, u, D, n, c]), Q(() => {
|
|
314
|
+
if (c)
|
|
315
|
+
E(c);
|
|
316
|
+
else if ((_ == null ? void 0 : _.length) === 1 && !e) {
|
|
317
|
+
const s = _[0];
|
|
318
|
+
if (!s || !L[s]) return;
|
|
319
|
+
E(s), (!a || a === (n == null ? void 0 : n.name)) && A(`${n == null ? void 0 : n.name} - ${L[s]}`);
|
|
320
|
+
}
|
|
321
|
+
}, [c, _, e, a, n]);
|
|
322
|
+
const { parentSlug: H, isRootPage: I } = F(() => {
|
|
323
|
+
if (V || !d)
|
|
324
|
+
return { parentSlug: void 0, isRootPage: !(n != null && n.parent) };
|
|
325
|
+
if (!(n != null && n.parent))
|
|
326
|
+
return {
|
|
327
|
+
parentSlug: g ? `/${d}` : void 0,
|
|
328
|
+
isRootPage: !0
|
|
329
|
+
};
|
|
330
|
+
const s = G == null ? void 0 : G.find((x) => x.lang === d);
|
|
331
|
+
return { parentSlug: s == null ? void 0 : s.slug, isRootPage: !1 };
|
|
332
|
+
}, [n == null ? void 0 : n.parent, G, g, d, V]), ln = F(() => I ? !0 : !!(G != null && G.some((s) => (s == null ? void 0 : s.lang) === d)), [d, G, I]), J = () => {
|
|
333
|
+
let s = "";
|
|
334
|
+
return I ? s = `/${g ? [d, N].filter(Boolean).join("/") : N}` : s = `${fn(H)}/${N}`, s.replace(/\/{2,}/g, "/").replace(/\/$/, "");
|
|
335
|
+
}, dn = (s) => {
|
|
336
|
+
const x = new URLSearchParams(window.location.search);
|
|
337
|
+
q && s === q ? x.delete("lang") : x.set("lang", s), en(x), window.dispatchEvent(new PopStateEvent("popstate"));
|
|
338
|
+
}, an = (s) => {
|
|
339
|
+
s.preventDefault();
|
|
340
|
+
const x = {
|
|
341
|
+
name: a,
|
|
342
|
+
lang: d,
|
|
343
|
+
primaryPage: n == null ? void 0 : n.id,
|
|
344
|
+
slug: z ? "" : J(),
|
|
345
|
+
pageType: n == null ? void 0 : n.pageType,
|
|
346
|
+
...e && { id: u }
|
|
347
|
+
}, R = () => {
|
|
348
|
+
!e && d && (sn(d), dn(d)), tn("outline"), l();
|
|
349
|
+
};
|
|
350
|
+
e ? B(x, { onSuccess: R }) : p(x, { onSuccess: R });
|
|
351
|
+
};
|
|
352
|
+
return /* @__PURE__ */ t(Dn, { open: r, onOpenChange: l, children: r && /* @__PURE__ */ h(_n, { className: "text-slate-600 sm:max-w-[425px]", children: [
|
|
353
|
+
/* @__PURE__ */ h(Un, { children: [
|
|
354
|
+
/* @__PURE__ */ t(pn, { children: e ? f.EDIT_LANGUAGE : f.ADD_NEW_LANGUAGE }),
|
|
355
|
+
/* @__PURE__ */ t(Fn, { className: "font-light", children: f.ENTER_LANGUAGE_DETAILS })
|
|
356
|
+
] }),
|
|
357
|
+
/* @__PURE__ */ t(
|
|
358
|
+
Mn,
|
|
359
|
+
{
|
|
360
|
+
id: u,
|
|
361
|
+
pages: o,
|
|
362
|
+
loading: on,
|
|
363
|
+
onSubmit: an,
|
|
364
|
+
edit: e,
|
|
365
|
+
lang: d,
|
|
366
|
+
languages: _,
|
|
367
|
+
name: a,
|
|
368
|
+
setLang: E,
|
|
369
|
+
setName: A,
|
|
370
|
+
primaryPageObject: n,
|
|
371
|
+
parentHasSelectedLanguagePage: ln,
|
|
372
|
+
isNonSlugPageType: z,
|
|
373
|
+
isRootPage: I,
|
|
374
|
+
useLanguagePrefix: g,
|
|
375
|
+
setUseLanguagePrefix: w,
|
|
376
|
+
isHomePage: V,
|
|
377
|
+
parentSlug: H,
|
|
378
|
+
slug: N,
|
|
379
|
+
setSlug: S,
|
|
380
|
+
isSlugValid: m,
|
|
381
|
+
setIsSlugValid: U,
|
|
382
|
+
getSlug: J,
|
|
383
|
+
isPending: $
|
|
384
|
+
}
|
|
385
|
+
)
|
|
386
|
+
] }) });
|
|
387
|
+
};
|
|
388
|
+
export {
|
|
389
|
+
Xn as default
|
|
390
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as o, jsxs as n } from "react/jsx-runtime";
|
|
2
|
+
import { Dialog as c, DialogContent as a, DialogHeader as t, DialogTitle as p, DialogDescription as m } from "@chaibuilder/sdk/ui";
|
|
3
|
+
import { lazy as h, Suspense as D } from "react";
|
|
4
|
+
const f = h(() => import("./page-creator-BjuYmKfc.js")), N = ({
|
|
5
|
+
addEditPage: e,
|
|
6
|
+
setAddEditPage: r,
|
|
7
|
+
closePanel: s
|
|
8
|
+
}) => {
|
|
9
|
+
const l = !!(e != null && e.id), i = !!e;
|
|
10
|
+
return /* @__PURE__ */ o(c, { open: i, onOpenChange: () => r(void 0), children: i && /* @__PURE__ */ n(a, { className: "sm:max-w-[425px]", children: [
|
|
11
|
+
/* @__PURE__ */ n(t, { children: [
|
|
12
|
+
/* @__PURE__ */ n(p, { children: [
|
|
13
|
+
l ? "Edit" : "Add New",
|
|
14
|
+
" "
|
|
15
|
+
] }),
|
|
16
|
+
/* @__PURE__ */ o(m, { children: l ? "Update your page name" : "Enter details to create a new page" })
|
|
17
|
+
] }),
|
|
18
|
+
/* @__PURE__ */ o(D, { fallback: /* @__PURE__ */ o("div", { className: "min-h-40" }), children: /* @__PURE__ */ o(
|
|
19
|
+
f,
|
|
20
|
+
{
|
|
21
|
+
closePanel: s,
|
|
22
|
+
addEditPage: e,
|
|
23
|
+
close: () => r(void 0)
|
|
24
|
+
}
|
|
25
|
+
) })
|
|
26
|
+
] }) });
|
|
27
|
+
};
|
|
28
|
+
export {
|
|
29
|
+
N as default
|
|
30
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),n=require("@chaibuilder/sdk/ui"),l=require("react"),t=l.lazy(()=>Promise.resolve().then(()=>require("./page-creator-DG0LwvL1.cjs"))),a=({addEditPage:s,setAddEditPage:o,closePanel:c})=>{const r=!!(s!=null&&s.id),i=!!s;return e.jsx(n.Dialog,{open:i,onOpenChange:()=>o(void 0),children:i&&e.jsxs(n.DialogContent,{className:"sm:max-w-[425px]",children:[e.jsxs(n.DialogHeader,{children:[e.jsxs(n.DialogTitle,{children:[r?"Edit":"Add New"," "]}),e.jsx(n.DialogDescription,{children:r?"Update your page name":"Enter details to create a new page"})]}),e.jsx(l.Suspense,{fallback:e.jsx("div",{className:"min-h-40"}),children:e.jsx(t,{closePanel:c,addEditPage:s,close:()=>o(void 0)})})]})})};exports.default=a;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var R={};(function _(M,T,B,I){var k=!!(M.Worker&&M.Blob&&M.Promise&&M.OffscreenCanvas&&M.OffscreenCanvasRenderingContext2D&&M.HTMLCanvasElement&&M.HTMLCanvasElement.prototype.transferControlToOffscreen&&M.URL&&M.URL.createObjectURL),A=typeof Path2D=="function"&&typeof DOMMatrix=="function",V=function(){if(!M.OffscreenCanvas)return!1;var r=new OffscreenCanvas(1,1),e=r.getContext("2d");e.fillRect(0,0,1,1);var a=r.transferToImageBitmap();try{e.createPattern(a,"no-repeat")}catch{return!1}return!0}();function L(){}function P(r){var e=T.exports.Promise,a=e!==void 0?e:M.Promise;return typeof a=="function"?new a(r):(r(L,L),null)}var x=function(r,e){return{transform:function(a){if(r)return a;if(e.has(a))return e.get(a);var t=new OffscreenCanvas(a.width,a.height),o=t.getContext("2d");return o.drawImage(a,0,0),e.set(a,t),t},clear:function(){e.clear()}}}(V,new Map),F=function(){var r=Math.floor(16.666666666666668),e,a,t={},o=0;return typeof requestAnimationFrame=="function"&&typeof cancelAnimationFrame=="function"?(e=function(i){var l=Math.random();return t[l]=requestAnimationFrame(function n(s){o===s||o+r-1<s?(o=s,delete t[l],i()):t[l]=requestAnimationFrame(n)}),l},a=function(i){t[i]&&cancelAnimationFrame(t[i])}):(e=function(i){return setTimeout(i,r)},a=function(i){return clearTimeout(i)}),{frame:e,cancel:a}}(),Z=function(){var r,e,a={};function t(o){function i(l,n){o.postMessage({options:l||{},callback:n})}o.init=function(n){var s=n.transferControlToOffscreen();o.postMessage({canvas:s},[s])},o.fire=function(n,s,u){if(e)return i(n,null),e;var d=Math.random().toString(36).slice(2);return e=P(function(h){function f(m){m.data.callback===d&&(delete a[d],o.removeEventListener("message",f),e=null,x.clear(),u(),h())}o.addEventListener("message",f),i(n,d),a[d]=f.bind(null,{data:{callback:d}})}),e},o.reset=function(){o.postMessage({reset:!0});for(var n in a)a[n](),delete a[n]}}return function(){if(r)return r;if(!B&&k){var o=["var CONFETTI, SIZE = {}, module = {};","("+_.toString()+")(this, module, true, SIZE);","onmessage = function(msg) {"," if (msg.data.options) {"," CONFETTI(msg.data.options).then(function () {"," if (msg.data.callback) {"," postMessage({ callback: msg.data.callback });"," }"," });"," } else if (msg.data.reset) {"," CONFETTI && CONFETTI.reset();"," } else if (msg.data.resize) {"," SIZE.width = msg.data.resize.width;"," SIZE.height = msg.data.resize.height;"," } else if (msg.data.canvas) {"," SIZE.width = msg.data.canvas.width;"," SIZE.height = msg.data.canvas.height;"," CONFETTI = module.exports.create(msg.data.canvas);"," }","}"].join(`
|
|
2
|
+
`);try{r=new Worker(URL.createObjectURL(new Blob([o])))}catch(i){return typeof console!==void 0&&typeof console.warn=="function"&&console.warn("🎊 Could not load worker",i),null}t(r)}return r}}(),q={particleCount:50,angle:90,spread:45,startVelocity:45,decay:.9,gravity:1,drift:0,ticks:200,x:.5,y:.5,shapes:["square","circle"],zIndex:100,colors:["#26ccff","#a25afd","#ff5e7e","#88ff5a","#fcff42","#ffa62d","#ff36ff"],disableForReducedMotion:!1,scalar:1};function H(r,e){return e?e(r):r}function $(r){return r!=null}function v(r,e,a){return H(r&&$(r[e])?r[e]:q[e],a)}function G(r){return r<0?0:Math.floor(r)}function J(r,e){return Math.floor(Math.random()*(e-r))+r}function E(r){return parseInt(r,16)}function K(r){return r.map(Q)}function Q(r){var e=String(r).replace(/[^0-9a-f]/gi,"");return e.length<6&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),{r:E(e.substring(0,2)),g:E(e.substring(2,4)),b:E(e.substring(4,6))}}function X(r){var e=v(r,"origin",Object);return e.x=v(e,"x",Number),e.y=v(e,"y",Number),e}function Y(r){r.width=document.documentElement.clientWidth,r.height=document.documentElement.clientHeight}function ee(r){var e=r.getBoundingClientRect();r.width=e.width,r.height=e.height}function re(r){var e=document.createElement("canvas");return e.style.position="fixed",e.style.top="0px",e.style.left="0px",e.style.pointerEvents="none",e.style.zIndex=r,e}function ae(r,e,a,t,o,i,l,n,s){r.save(),r.translate(e,a),r.rotate(i),r.scale(t,o),r.arc(0,0,1,l,n,s),r.restore()}function ne(r){var e=r.angle*(Math.PI/180),a=r.spread*(Math.PI/180);return{x:r.x,y:r.y,wobble:Math.random()*10,wobbleSpeed:Math.min(.11,Math.random()*.1+.05),velocity:r.startVelocity*.5+Math.random()*r.startVelocity,angle2D:-e+(.5*a-Math.random()*a),tiltAngle:(Math.random()*(.75-.25)+.25)*Math.PI,color:r.color,shape:r.shape,tick:0,totalTicks:r.ticks,decay:r.decay,drift:r.drift,random:Math.random()+2,tiltSin:0,tiltCos:0,wobbleX:0,wobbleY:0,gravity:r.gravity*3,ovalScalar:.6,scalar:r.scalar,flat:r.flat}}function te(r,e){e.x+=Math.cos(e.angle2D)*e.velocity+e.drift,e.y+=Math.sin(e.angle2D)*e.velocity+e.gravity,e.velocity*=e.decay,e.flat?(e.wobble=0,e.wobbleX=e.x+10*e.scalar,e.wobbleY=e.y+10*e.scalar,e.tiltSin=0,e.tiltCos=0,e.random=1):(e.wobble+=e.wobbleSpeed,e.wobbleX=e.x+10*e.scalar*Math.cos(e.wobble),e.wobbleY=e.y+10*e.scalar*Math.sin(e.wobble),e.tiltAngle+=.1,e.tiltSin=Math.sin(e.tiltAngle),e.tiltCos=Math.cos(e.tiltAngle),e.random=Math.random()+2);var a=e.tick++/e.totalTicks,t=e.x+e.random*e.tiltCos,o=e.y+e.random*e.tiltSin,i=e.wobbleX+e.random*e.tiltCos,l=e.wobbleY+e.random*e.tiltSin;if(r.fillStyle="rgba("+e.color.r+", "+e.color.g+", "+e.color.b+", "+(1-a)+")",r.beginPath(),A&&e.shape.type==="path"&&typeof e.shape.path=="string"&&Array.isArray(e.shape.matrix))r.fill(ie(e.shape.path,e.shape.matrix,e.x,e.y,Math.abs(i-t)*.1,Math.abs(l-o)*.1,Math.PI/10*e.wobble));else if(e.shape.type==="bitmap"){var n=Math.PI/10*e.wobble,s=Math.abs(i-t)*.1,u=Math.abs(l-o)*.1,d=e.shape.bitmap.width*e.scalar,h=e.shape.bitmap.height*e.scalar,f=new DOMMatrix([Math.cos(n)*s,Math.sin(n)*s,-Math.sin(n)*u,Math.cos(n)*u,e.x,e.y]);f.multiplySelf(new DOMMatrix(e.shape.matrix));var m=r.createPattern(x.transform(e.shape.bitmap),"no-repeat");m.setTransform(f),r.globalAlpha=1-a,r.fillStyle=m,r.fillRect(e.x-d/2,e.y-h/2,d,h),r.globalAlpha=1}else if(e.shape==="circle")r.ellipse?r.ellipse(e.x,e.y,Math.abs(i-t)*e.ovalScalar,Math.abs(l-o)*e.ovalScalar,Math.PI/10*e.wobble,0,2*Math.PI):ae(r,e.x,e.y,Math.abs(i-t)*e.ovalScalar,Math.abs(l-o)*e.ovalScalar,Math.PI/10*e.wobble,0,2*Math.PI);else if(e.shape==="star")for(var c=Math.PI/2*3,g=4*e.scalar,p=8*e.scalar,y=e.x,w=e.y,C=5,b=Math.PI/C;C--;)y=e.x+Math.cos(c)*p,w=e.y+Math.sin(c)*p,r.lineTo(y,w),c+=b,y=e.x+Math.cos(c)*g,w=e.y+Math.sin(c)*g,r.lineTo(y,w),c+=b;else r.moveTo(Math.floor(e.x),Math.floor(e.y)),r.lineTo(Math.floor(e.wobbleX),Math.floor(o)),r.lineTo(Math.floor(i),Math.floor(l)),r.lineTo(Math.floor(t),Math.floor(e.wobbleY));return r.closePath(),r.fill(),e.tick<e.totalTicks}function oe(r,e,a,t,o){var i=e.slice(),l=r.getContext("2d"),n,s,u=P(function(d){function h(){n=s=null,l.clearRect(0,0,t.width,t.height),x.clear(),o(),d()}function f(){B&&!(t.width===I.width&&t.height===I.height)&&(t.width=r.width=I.width,t.height=r.height=I.height),!t.width&&!t.height&&(a(r),t.width=r.width,t.height=r.height),l.clearRect(0,0,t.width,t.height),i=i.filter(function(m){return te(l,m)}),i.length?n=F.frame(f):h()}n=F.frame(f),s=h});return{addFettis:function(d){return i=i.concat(d),u},canvas:r,promise:u,reset:function(){n&&F.cancel(n),s&&s()}}}function N(r,e){var a=!r,t=!!v(e||{},"resize"),o=!1,i=v(e,"disableForReducedMotion",Boolean),l=k&&!!v(e||{},"useWorker"),n=l?Z():null,s=a?Y:ee,u=r&&n?!!r.__confetti_initialized:!1,d=typeof matchMedia=="function"&&matchMedia("(prefers-reduced-motion)").matches,h;function f(c,g,p){for(var y=v(c,"particleCount",G),w=v(c,"angle",Number),C=v(c,"spread",Number),b=v(c,"startVelocity",Number),ce=v(c,"decay",Number),ue=v(c,"gravity",Number),he=v(c,"drift",Number),W=v(c,"colors",K),de=v(c,"ticks",Number),D=v(c,"shapes"),fe=v(c,"scalar"),ve=!!v(c,"flat"),U=X(c),z=y,O=[],me=r.width*U.x,ge=r.height*U.y;z--;)O.push(ne({x:me,y:ge,angle:w,spread:C,startVelocity:b,color:W[z%W.length],shape:D[J(0,D.length)],ticks:de,decay:ce,gravity:ue,drift:he,scalar:fe,flat:ve}));return h?h.addFettis(O):(h=oe(r,O,s,g,p),h.promise)}function m(c){var g=i||v(c,"disableForReducedMotion",Boolean),p=v(c,"zIndex",Number);if(g&&d)return P(function(b){b()});a&&h?r=h.canvas:a&&!r&&(r=re(p),document.body.appendChild(r)),t&&!u&&s(r);var y={width:r.width,height:r.height};n&&!u&&n.init(r),u=!0,n&&(r.__confetti_initialized=!0);function w(){if(n){var b={getBoundingClientRect:function(){if(!a)return r.getBoundingClientRect()}};s(b),n.postMessage({resize:{width:b.width,height:b.height}});return}y.width=y.height=null}function C(){h=null,t&&(o=!1,M.removeEventListener("resize",w)),a&&r&&(document.body.contains(r)&&document.body.removeChild(r),r=null,u=!1)}return t&&!o&&(o=!0,M.addEventListener("resize",w,!1)),n?n.fire(c,y,C):f(c,y,C)}return m.reset=function(){n&&n.reset(),h&&h.reset()},m}var S;function j(){return S||(S=N(null,{useWorker:!0,resize:!0})),S}function ie(r,e,a,t,o,i,l){var n=new Path2D(r),s=new Path2D;s.addPath(n,new DOMMatrix(e));var u=new Path2D;return u.addPath(s,new DOMMatrix([Math.cos(l)*o,Math.sin(l)*o,-Math.sin(l)*i,Math.cos(l)*i,a,t])),u}function le(r){if(!A)throw new Error("path confetti are not supported in this browser");var e,a;typeof r=="string"?e=r:(e=r.path,a=r.matrix);var t=new Path2D(e),o=document.createElement("canvas"),i=o.getContext("2d");if(!a){for(var l=1e3,n=l,s=l,u=0,d=0,h,f,m=0;m<l;m+=2)for(var c=0;c<l;c+=2)i.isPointInPath(t,m,c,"nonzero")&&(n=Math.min(n,m),s=Math.min(s,c),u=Math.max(u,m),d=Math.max(d,c));h=u-n,f=d-s;var g=10,p=Math.min(g/h,g/f);a=[p,0,0,p,-Math.round(h/2+n)*p,-Math.round(f/2+s)*p]}return{type:"path",path:e,matrix:a}}function se(r){var e,a=1,t="#000000",o='"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", "EmojiOne Color", "Android Emoji", "Twemoji Mozilla", "system emoji", sans-serif';typeof r=="string"?e=r:(e=r.text,a="scalar"in r?r.scalar:a,o="fontFamily"in r?r.fontFamily:o,t="color"in r?r.color:t);var i=10*a,l=""+i+"px "+o,n=new OffscreenCanvas(i,i),s=n.getContext("2d");s.font=l;var u=s.measureText(e),d=Math.ceil(u.actualBoundingBoxRight+u.actualBoundingBoxLeft),h=Math.ceil(u.actualBoundingBoxAscent+u.actualBoundingBoxDescent),f=2,m=u.actualBoundingBoxLeft+f,c=u.actualBoundingBoxAscent+f;d+=f+f,h+=f+f,n=new OffscreenCanvas(d,h),s=n.getContext("2d"),s.font=l,s.fillStyle=t,s.fillText(e,m,c);var g=1/a;return{type:"bitmap",bitmap:n.transferToImageBitmap(),matrix:[g,0,0,g,-d*g/2,-h*g/2]}}T.exports=function(){return j().apply(this,arguments)},T.exports.reset=function(){j().reset()},T.exports.create=N,T.exports.shapeFromPath=le,T.exports.shapeFromText=se})(function(){return typeof window<"u"?window:typeof self<"u"?self:this||{}}(),R,!1);const Me=R.exports;R.exports.create;exports.default=Me;
|