@pure-ds/core 0.7.52 → 0.7.54
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/types/pds.d.ts +21 -7
- package/dist/types/public/assets/pds/components/pds-toaster.d.ts +12 -2
- package/dist/types/public/assets/pds/components/pds-toaster.d.ts.map +1 -1
- package/dist/types/src/js/common/common.d.ts +11 -0
- package/dist/types/src/js/common/common.d.ts.map +1 -1
- package/dist/types/src/js/common/toast.d.ts +20 -10
- package/dist/types/src/js/common/toast.d.ts.map +1 -1
- package/dist/types/src/js/pds.d.ts +5 -0
- package/dist/types/src/js/pds.d.ts.map +1 -1
- package/package.json +1 -1
- package/packages/pds-cli/bin/templates/bootstrap/src/js/app.js +21 -27
- package/public/assets/js/app.js +5 -5
- package/public/assets/js/pds-ask.js +9 -9
- package/public/assets/js/pds-manager.js +79 -79
- package/public/assets/js/pds.js +2 -2
- package/public/assets/pds/components/pds-toaster.js +22 -1
- package/public/assets/pds/core/pds-ask.js +9 -9
- package/public/assets/pds/core/pds-manager.js +79 -79
- package/public/assets/pds/core.js +2 -2
- package/src/js/common/common.js +45 -20
- package/src/js/common/toast.js +14 -5
- package/src/js/pds-core/pds-enhancers-meta.js +135 -135
- package/src/js/pds.d.ts +21 -7
- package/src/js/pds.js +7 -2
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
function
|
|
1
|
+
function N(o){let t=Array.isArray(o?.strings)?o.strings:[],c=Array.isArray(o?.values)?o.values:[],m=new Set,$=[],w=/(\s)(\.[\w-]+)=["']?\s*$/,s=/(\s)(@[\w-]+)=["']?\s*$/,r=/(\s)(\?[\w-]+)=["']?\s*$/,u=/(\s)([\w:-]+)=["']?\s*$/,d=/=["']\s*$/,h=!1;for(let e=0;e<t.length;e+=1){let n=t[e]??"";if(h&&(n=n.replace(/^["']/,""),h=!1),e<c.length){let l=`pds-val-${e}`,b=n.match(w),p=n.match(s),f=n.match(r),C=n.match(u);if(b){let y=b[2].slice(1);h=d.test(t[e]??""),n=n.replace(w,`$1data-pds-bind-${e}="prop:${y}:${l}"`),m.add(e)}else if(p){let y=p[2].slice(1);h=d.test(t[e]??""),n=n.replace(s,`$1data-pds-bind-${e}="event:${y}:${l}"`),m.add(e)}else if(f){let y=f[2].slice(1);h=d.test(t[e]??""),n=n.replace(r,`$1data-pds-bind-${e}="boolean:${y}:${l}"`),m.add(e)}else if(C){let y=C[2];h=d.test(t[e]??""),n=n.replace(u,`$1data-pds-bind-${e}="attr:${y}:${l}"`),m.add(e)}}$.push(n),e<c.length&&!m.has(e)&&$.push(`<!--pds-val-${e}-->`)}let g=document.createElement("template");g.innerHTML=$.join("");let a=(e,n)=>{let l=e.parentNode;if(!l)return;if(n==null){l.removeChild(e);return}let b=p=>{if(p!=null){if(p instanceof Node){l.insertBefore(p,e);return}if(Array.isArray(p)){p.forEach(f=>b(f));return}l.insertBefore(document.createTextNode(String(p)),e)}};b(n),l.removeChild(e)},S=document.createTreeWalker(g.content,NodeFilter.SHOW_COMMENT),E=[];for(;S.nextNode();){let e=S.currentNode;e?.nodeValue?.startsWith("pds-val-")&&E.push(e)}return E.forEach(e=>{let n=Number(e.nodeValue.replace("pds-val-",""));a(e,c[n])}),g.content.querySelectorAll("*").forEach(e=>{[...e.attributes].forEach(n=>{if(!n.name.startsWith("data-pds-bind-"))return;let l=n.value.indexOf(":"),b=n.value.lastIndexOf(":");if(l<=0||b<=l){e.removeAttribute(n.name);return}let p=n.value.slice(0,l),f=n.value.slice(l+1,b),C=n.value.slice(b+1),y=Number(String(C).replace("pds-val-","")),v=c[y];if(!f||!Number.isInteger(y)){e.removeAttribute(n.name);return}p==="prop"?e[f]=v:p==="event"?(typeof v=="function"||v&&typeof v.handleEvent=="function")&&e.addEventListener(f,v):p==="boolean"?v?e.setAttribute(f,""):e.removeAttribute(f):p==="attr"&&(v==null||v===!1?e.removeAttribute(f):e.setAttribute(f,String(v))),e.removeAttribute(n.name)})}),g.content}var T=class extends EventTarget{constructor(){super(),this.mode=null,this.compiled=null,this.log=()=>{},this.logHandler=null}},F="__PURE_DS_PDS_SINGLETON__",L=typeof globalThis<"u"?globalThis:window,x=L?.[F],A=x&&typeof x.addEventListener=="function"?x:new T;L&&(L[F]=A);typeof A.log!="function"&&(A.log=(o="log",t,...c)=>{if(typeof console>"u")return;let m=typeof console[o]=="function"?console[o].bind(console):typeof console.log=="function"?console.log.bind(console):null;m&&(c.length>0?m(t,...c):m(t))});typeof A.logHandler!="function"&&(A.logHandler=null);function M(o,t){if(t==null)return;if(typeof t=="object"&&Array.isArray(t.strings)&&Array.isArray(t.values)){o.appendChild(N(t));return}if(t instanceof Node){o.appendChild(t);return}if(Array.isArray(t)){t.forEach(m=>M(o,m));return}let c=typeof t=="string"?t:String(t);o.appendChild(document.createTextNode(c))}function P(o){if(!o)return!0;let t=!0,c=r=>{if(!r||typeof r!="object")return"<unknown>";let u=r.tagName?String(r.tagName).toLowerCase():"node",d=r.id?`#${r.id}`:"",h=typeof r.getAttribute=="function"?r.getAttribute("name"):null,g=h?`[name="${h}"]`:"";return`${u}${d}${g}`},m=(r,u)=>{if(!r||typeof r.querySelectorAll!="function")return;let d=Array.from(r.querySelectorAll(":invalid"));if(!d.length)return;let h=d.map(g=>{let a=typeof g.validationMessage=="string"?g.validationMessage:"";return`${c(g)}${a?` \u2014 ${a}`:""}`});A.log("warn",`ask.validateDialogFormTree: invalid controls in ${u}:`,h)},$=(r,u)=>{try{let d=typeof r.reportValidity=="function"?r.reportValidity():r.checkValidity?.()??!0;return d||m(r,u),d}catch(d){return A.log("error",`ask.validateDialogFormTree: validation threw in ${u}`,d),!1}};t=$(o,"host dialog form")&&t;let w=Array.from(o.querySelectorAll("form"));for(let r of w){if(r===o)continue;t=$(r,`nested light DOM form ${c(r)}`)&&t}let s=Array.from(o.querySelectorAll("*"));for(let r of s){let u=r?.shadowRoot;if(!u)continue;let d=Array.from(u.querySelectorAll("form"));for(let h of d)t=$(h,`shadow form under ${c(r)}`)&&t}return t}function V(){let o=navigator.userAgent,t=/Safari/i.test(o),c=/(Chrome|Chromium|CriOS|FxiOS|EdgiOS|OPiOS|Opera)/i.test(o);return t&&!c}function k(o){if(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)return;let t=window.matchMedia?.("(max-width: 639px)").matches,c=o.classList.contains("dialog-no-scale-animation")?"pds-dialog-fade-enter":t?"pds-dialog-enter-mobile":"pds-dialog-enter";o.style.animation="none",o.offsetWidth,o.style.animation=`${c} var(--transition-normal) ease`,o.addEventListener("animationend",()=>{o.style.animation=""},{once:!0})}function D(o={}){return o?.liquidGlassEffects===!0}async function j(o,t={}){let c={title:"Confirm",type:"confirm",buttons:{ok:{name:"OK",primary:!0},cancel:{name:"Cancel",cancel:!0}}};t={...c,...t};let m=t.buttons&&typeof t.buttons=="object"?t.buttons:c.buttons,$=s=>{if(s==null)return{actionCode:"dismiss",actionKind:"dismiss",button:null};let r=m?.[s]??null,u=s==="ok"?"ok":s==="dismiss"?"dismiss":r?.cancel||s==="cancel"?"cancel":"custom";return{actionCode:s,actionKind:u,button:r}},w=s=>{if(typeof s>"u"||s===null||s===!0)return{allow:!0};if(s===!1)return{allow:!1};if(typeof s=="object"){let r=Object.prototype.hasOwnProperty.call(s,"result")||Object.prototype.hasOwnProperty.call(s,"value");return{allow:s.allow!==!1,hasResult:r,result:Object.prototype.hasOwnProperty.call(s,"result")?s.result:s.value}}return{allow:!!s}};return new Promise(s=>{let r=!1,u=(i,e,{shouldClose:n=!0}={})=>{if(!r&&(r=!0,s(i),!(!n||!e?.open)))try{e.close()}catch(l){A.log("warn","ask: dialog.close() failed",l)}},d=async i=>{if(i.actionKind!=="ok"||typeof t.beforeClose!="function")return{allow:!0};try{let e=await t.beforeClose(i);return w(e)}catch(e){return A.log("error","ask.beforeClose: validation failed",e),{allow:!1}}},h=({actionKind:i,form:e})=>i==="ok"?t.useForm&&e?new FormData(e):!0:!1,g=async({actionCode:i,form:e,submitter:n,originalEvent:l,bypassValidation:b=!1,shouldClose:p=!0})=>{if(r)return;let{actionKind:f,button:C}=$(i),y=e||a.querySelector("form")||null;if(t.useForm&&f==="ok"&&y&&!b&&!P(y))return;let v=h({actionKind:f,form:y}),O=await d({actionCode:i,actionKind:f,dialog:a,form:y,formData:t.useForm&&f==="ok"&&y?v:null,submitter:n,originalEvent:l,options:t,button:C,defaultResult:v});if(!O.allow)return;let q=O.hasResult?O.result:v;u(q,a,{shouldClose:p})},a=document.createElement("dialog");V()&&a.classList.add("dialog-no-scale-animation"),D(t)&&a.classList.add("liquid-glass"),t.size&&a.classList.add(`dialog-${t.size}`),t.type&&a.classList.add(`dialog-${t.type}`),t.class&&(Array.isArray(t.class)?a.classList.add(...t.class):a.classList.add(t.class)),t.maxHeight&&a.style.setProperty("--dialog-max-height",t.maxHeight);let S=Object.entries(m).map(([i,e])=>{let n=e.primary?"btn-primary btn-sm":"btn-outline btn-sm",l=e.cancel?"button":"submit",b=e.formNoValidate?" formnovalidate":"";return`<button type="${l}" class="${n}" value="${i}"${b}>${e.name}</button>`});if(t.useForm){let i=document.createElement("div");M(i,o);let e=i.querySelector("form");if(e){a.innerHTML=`
|
|
2
2
|
<header>
|
|
3
|
-
<h2>${
|
|
3
|
+
<h2>${t.title}</h2>
|
|
4
4
|
</header>
|
|
5
|
-
`;let
|
|
5
|
+
`;let n=document.createElement("article");for(n.className="dialog-body";e.firstChild;)n.appendChild(e.firstChild);e.appendChild(n);let l=document.createElement("footer");l.innerHTML=S.join(""),e.appendChild(l),a.appendChild(e)}else a.innerHTML=`
|
|
6
6
|
<header>
|
|
7
|
-
<h2>${
|
|
7
|
+
<h2>${t.title}</h2>
|
|
8
8
|
</header>
|
|
9
9
|
<article id="msg-container"></article>
|
|
10
10
|
<footer>
|
|
11
|
-
${
|
|
11
|
+
${S.join("")}
|
|
12
12
|
</footer>
|
|
13
|
-
`,a.querySelector("#msg-container").appendChild(
|
|
13
|
+
`,a.querySelector("#msg-container").appendChild(i)}else{a.innerHTML=`
|
|
14
14
|
<form method="dialog">
|
|
15
15
|
<header>
|
|
16
|
-
<h2>${
|
|
16
|
+
<h2>${t.title}</h2>
|
|
17
17
|
</header>
|
|
18
18
|
|
|
19
19
|
<article id="msg-container"></article>
|
|
20
20
|
|
|
21
21
|
<footer>
|
|
22
|
-
${
|
|
22
|
+
${S.join("")}
|
|
23
23
|
</footer>
|
|
24
24
|
</form>
|
|
25
|
-
`;let
|
|
25
|
+
`;let i=a.querySelector("#msg-container");M(i,o)}a.addEventListener("click",i=>{let e=i.target.closest('button[value="cancel"]');e&&g({actionCode:"cancel",form:a.querySelector("form"),submitter:e,originalEvent:i})});let E=()=>{let i=a.querySelector("form");if(i){if(i.dataset.askSubmitBound==="true")return;i.dataset.askSubmitBound="true",i.addEventListener("submit",e=>{e.preventDefault();let n=e.submitter?.value??(t.useForm?"ok":void 0),l=!!e.submitter?.hasAttribute("formnovalidate");g({actionCode:n,form:i,submitter:e.submitter,originalEvent:e,bypassValidation:l})})}else requestAnimationFrame(E)};a.addEventListener("cancel",i=>{i.preventDefault(),g({actionCode:"dismiss",form:a.querySelector("form"),originalEvent:i})}),a.addEventListener("close",()=>{r||u(!1,a,{shouldClose:!1}),setTimeout(()=>a.remove(),200)}),document.body.appendChild(a),requestAnimationFrame(E),typeof t.rendered=="function"&&t.rendered(a),a.showModal(),requestAnimationFrame(()=>k(a))})}export{j as ask};
|